def Namespace Reference#

DiFfRG: DiFfRG::def Namespace Reference
DiFfRG
Discretization Framework for functional Renormalization Group flows
DiFfRG::def Namespace Reference

Default implementations and building blocks for user models, see model.hh. More...

Namespaces

namespace  BoundaryStencilIndex
 Positions in the boundary stencil, from lower to upper along the axis normal to the boundary face.
 
namespace  limiter_utils
 

Classes

class  AbstractModel
 Base class of every model: declares all hooks an assembler may call, with defaults. More...
 
class  AD
 All jacobians by forward-mode AD, including the dependence through the extractors and the variables' jacobian from dt_variables(). The default choice. More...
 
class  ADjacobian_extractors
 AD jacobian of extract() with respect to the FE values (to = 0), gradients (1) or hessians (2) at the extractor point. More...
 
class  ADjacobian_mass
 AD jacobian of mass() with respect to \(u\) (dot = 0) or \(\partial_t u\) (dot = 1), per point. More...
 
class  ADjacobian_variables
 AD jacobian of dt_variables() with respect to the variables. More...
 
struct  BatchADJacobians
 Marker: flux, source and numerical-flux jacobians are the AD of evaluate_batch (and of the batched numerical fluxes built on it). Inherited through def::AD and def::FE_AD; a model without it provides the per-point jacobian_* callbacks itself. More...
 
class  CentralLimiter
 No limiting: the central slope \(\tfrac12(a + b)\) of the backward and forward slopes \(a, b\). More...
 
class  ConstrainOriginBoundaryPointToZero
 Constrain the boundary dofs of scalar FE function component_name closest to the origin to zero. More...
 
class  ConstrainOriginSupportPointToZero
 As ConstrainOriginBoundaryPointToZero, but among all dofs of the component, not only boundary ones. More...
 
class  CorrectedWeightedLeastSquaresDiffusionReconstructor
 The gradients the KT diffusion flux sees at a face between cells \(K\) (side -) and \(N\) (side +). More...
 
struct  DefaultIndicator
 Return type of AbstractModel's cell_indicator and face_indicator, by which HAdaptivity tells them apart. More...
 
struct  DiffusionFaceState
 The inputs of the diffusion flux at one face: cell averages and corrected gradients of both cells, and means. More...
 
class  FE_AD
 As def::AD, but only with respect to the FE functions: extractors are frozen and no variables jacobian is computed. Cheaper per Newton step when extractors or variables are expensive. More...
 
class  FirstOrderReconstructor
 Piecewise constant reconstruction: every gradient and third derivative is zero. More...
 
class  FlowBoundaries
 Boundary flux = the model's own flux of the inner trace, i.e. the boundary does not constrain the flow (outflow). Also for the LDG levels, with ldg_flux. More...
 
struct  FlowDirections
 Per component of an LDG level: the direction \(d_i\) (0 to dim - 1) of its flux. More...
 
class  fRG
 Keeps the RG time \(t\) and the scale \(k = \Lambda e^{-t}\) with its powers, as protected members t, k, k2, ..., k6 and Lambda. Use either this or def::Time. More...
 
struct  FrozenExtractors
 Marker: the extractors are frozen within a Newton step; the AD jacobians skip their directions (def::FE_AD). More...
 
class  FVDefaultBoundaries
 Affine extrapolation on both boundaries: the ghosts continue the straight line through the boundary cell and the first interior cell. 1D and 2D. More...
 
class  LDGUpDownFluxes
 One-sided (up/down-wind) numerical fluxes for the LDG levels. More...
 
class  LLFFlux
 Local Lax-Friedrichs (Rusanov) numerical flux on interior faces: More...
 
class  MinModLimiter
 MinMod limiter, \(\tfrac12(\mathrm{sgn}\,a + \mathrm{sgn}\,b)\min(|a|, |b|)\) for the backward and forward slopes \(a, b\). More...
 
class  NoAffineConstraints
 No affine constraints (same as inheriting nothing). More...
 
class  NoJacobians
 Every jacobian callback is defined and does nothing, i.e. the jacobians are zero. A model using it shadows the callbacks it can provide by hand (e.g. KT's per-point jacobian_source*). More...
 
class  NoNumFlux
 Zero numerical flux on interior faces. More...
 
class  OriginOddLinearExtrapolationBoundaries
 Lower boundary: odd reflection about the centre of the boundary cell, which is meant to sit at the origin \(\sigma = 0\); that cell's value is set to 0 in the stencil. Upper boundary: affine extrapolation. More...
 
class  OriginShiftedOddLinearExtrapolationBoundaries
 As OriginOddLinearExtrapolationBoundaries, but \(u_c - b_c\) is odd: the boundary cell takes the value \(b_c\). 1D only. More...
 
struct  ReconstructionDerivativeData
 The derivatives of a reconstructed value, gradient and third derivatives by one stencil value. More...
 
class  SuperbeeLimiter
 Superbee limiter (Roe): for backward and forward slopes \(a, b\) of the same sign, \(\mathrm{sgn}\,a\, \max\big(\min(2|a|, |b|), \min(|a|, 2|b|)\big)\), else 0. More...
 
class  Time
 Keeps the time \(t\) for models that are not RG flows. Use either this or def::fRG. More...
 
class  TVDReconstructor
 Slope-limited linear reconstruction on a rectangular mesh. More...
 
struct  UpDown
 Per component of an LDG level: def::from_right or def::from_left. More...
 
struct  UpDownFlux
 The numerical flux of one LDG level: UpDownFlux<FlowDirections<...>, UpDown<...>>. More...
 
class  VanAlbadaLimiter
 van Albada limiter: for backward and forward slopes \(a, b\) of the same sign, \(ab(a + b)/(a^2 + b^2)\), else 0. More...
 

Concepts

concept  HasSlopeLimiter
 Concept of a slope limiter, the Limiter template parameter of def::TVDReconstructor.
 
concept  HasReconstructor
 Concept of a slope reconstruction, the Reconstructor_ / JacobianReconstructor_ of FV::KurganovTadmor::Assembler. Implementations: TVDReconstructor, FirstOrderReconstructor.
 
concept  HasWaveSpeed
 Concept of a wave-speed strategy, the WaveSpeedStrategy_ of FV::KurganovTadmor::Assembler.
 
concept  HasAbsTolerances
 Whether a model provides per-component absolute tolerances for the IDA timesteppers.
 

Typedefs

template<int dim, typename NumberType , size_t n_components>
using GradientType = std::array<dealii::Tensor<1, dim, NumberType>, n_components>
 One gradient per component.
 
template<int dim, typename NumberType , size_t n_components>
using ThirdDerivativeType = std::array<dealii::Tensor<3, dim, NumberType>, n_components>
 One tensor of third derivatives per component.
 
template<int dim, typename NumberType , std::size_t n_components>
using BoundaryStencilValues = std::array<std::array<NumberType, n_components>, 2 * dim + 3>
 Cell averages of the boundary stencil: [stencil index][component], see fv_boundaries.hh.
 
template<int dim>
using BoundaryStencilPoints = std::array<Point<dim>, 2 * dim + 3>
 Cell centres of the boundary stencil, see fv_boundaries.hh.
 

Variables

template<int dim>
constexpr std::size_t n_faces = 2 * dim
 Faces of a rectangular cell in dim dimensions.
 
constexpr int no_wave_speed = -1
 Block id for a component that carries no hyperbolic flux.
 
constexpr uint from_right = 0
 LDGUpDownFluxes: take the flux from the cell on the + side (larger coordinate) of the face.
 
constexpr uint from_left = 1
 LDGUpDownFluxes: take the flux from the cell on the - side (smaller coordinate) of the face.
 

Detailed Description

Default implementations and building blocks for user models, see model.hh.

Typedef Documentation

◆ BoundaryStencilPoints

template<int dim>
using BoundaryStencilPoints = std::array<Point<dim>, 2 * dim + 3>

Cell centres of the boundary stencil, see fv_boundaries.hh.

◆ BoundaryStencilValues

template<int dim, typename NumberType , std::size_t n_components>
using BoundaryStencilValues = std::array<std::array<NumberType, n_components>, 2 * dim + 3>

Cell averages of the boundary stencil: [stencil index][component], see fv_boundaries.hh.

◆ GradientType

template<int dim, typename NumberType , size_t n_components>
using GradientType = std::array<dealii::Tensor<1, dim, NumberType>, n_components>

One gradient per component.

◆ ThirdDerivativeType

template<int dim, typename NumberType , size_t n_components>
using ThirdDerivativeType = std::array<dealii::Tensor<3, dim, NumberType>, n_components>

One tensor of third derivatives per component.

Variable Documentation

◆ from_left

uint from_left = 1
constexpr

LDGUpDownFluxes: take the flux from the cell on the - side (smaller coordinate) of the face.

◆ from_right

uint from_right = 0
constexpr

LDGUpDownFluxes: take the flux from the cell on the + side (larger coordinate) of the face.

◆ n_faces

template<int dim>
std::size_t n_faces = 2 * dim
inlineconstexpr

Faces of a rectangular cell in dim dimensions.

◆ no_wave_speed

int no_wave_speed = -1
inlineconstexpr

Block id for a component that carries no hyperbolic flux.

See also
AbstractModel::wave_speed_blocks.