Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ > Class Template Reference#

DiFfRG: DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ > Class Template Reference
DiFfRG
Discretization Framework for functional Renormalization Group flows
DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ > Class Template Reference

#include <KurganovTadmor.hh>

Inheritance diagram for DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >:
DiFfRG::AbstractAssembler< Discretization_::VectorType, Discretization_::SparseMatrixType, Discretization_::dim >

Classes

struct  AssemblyFaceGeometryProvider
 
struct  CellTopologyCacheEntry
 
struct  FaceJacobianDependencyCacheEntry
 
struct  FaceReconstructionDescriptor
 
struct  ReadoutSolution
 

Public Types

using Discretization = Discretization_
 
using Model = Model_
 
using Reconstructor = Reconstructor_
 
using WaveSpeedStrategy = WaveSpeedStrategy_
 
using JacobianReconstructor = JacobianReconstructor_
 
using NumberType = typename Discretization::NumberType
 
using VectorType = typename Discretization::VectorType
 
using SparseMatrixType = typename Discretization::SparseMatrixType
 
using Components = typename Discretization::Components
 
using GradientType = internal::GradientType<dim, NumberType, n_components>
 
using ThirdDerivativeType = internal::ThirdDerivativeType<dim, NumberType, n_components>
 
using Iterator = typename DoFHandler<Discretization::dim>::active_cell_iterator
 
using Point = dealii::Point<dim>
 
using Scratch = internal::ScratchData<dim, NumberType, n_components>
 
using CellData = internal::CellData<dim, NumberType, n_components>
 
using NeighborData = internal::NeighborData<dim, NumberType, n_components>
 
using CellStencilData = internal::CellStencilData<dim, NumberType, n_components>
 
using CellGeometryDofs = internal::CellGeometryDofs<dim, n_components>
 
using CellStencilTopologyData = internal::CellStencilTopologyData<dim, n_components>
 
using FaceReconstructionState = internal::FaceReconstructionState<dim, NumberType, n_components>
 
using SolutionReconstructionCache = internal::SolutionReconstructionCache<dim, NumberType, n_components>
 
template<typename NT >
using CellStencilDataT = internal::CellStencilData<dim, NT, n_components>
 
- Public Types inherited from DiFfRG::AbstractAssembler< Discretization_::VectorType, Discretization_::SparseMatrixType, Discretization_::dim >
using NumberType
 

Public Member Functions

 Assembler (Discretization &discretization, Model &model, const ConfigTree &config)
 
virtual void reinit_vector (VectorType &vec) const override
 
virtual void reinit_matrix (SparseMatrixType &matrix) const override
 
virtual MPI_Comm get_communicator () const override
 The communicator this assembler's linear algebra lives on.
 
virtual void reinit_solution_view (SolutionView< VectorType > &view) const override
 
virtual IndexSet get_differential_indices () const override
 Obtain the dofs which contain time derivatives.
 
virtual void attach_data_output (OutputFrame< dim, VectorType > &data_out, const VectorType &solution, const VectorType &variables, const VectorType &dt_solution=VectorType(), const VectorType &residual=VectorType()) override
 
virtual void reinit () override
 Reinitialize the assembler. This is necessary if the mesh has changed, e.g. after a mesh refinement.
 
virtual void set_time (double t) override
 Set the current time. The assembler should usually just forward this to the numerical model.
 
virtual const get_type::SparsityPattern< SparseMatrixType > & get_sparsity_pattern_jacobian () const override
 Obtain the sparsity pattern of the jacobian matrix.
 
virtual const SparseMatrixType & get_mass_matrix () const override
 Obtain the mass matrix.
 
virtual void residual_variables (VectorType &residual, const VectorType &variables, const VectorType &spatial_solution) override
 
virtual void jacobian_variables (FullMatrix< NumberType > &jacobian, const VectorType &variables, const VectorType &) override
 
void readouts (OutputFrame< dim, VectorType > &data_out, const VectorType &solution_global, const VectorType &variables) const
 
std::pair< Point, Iterator > resolve_extractor_point (const Point &EoM_point, const Iterator &EoM_cell_, const VectorType &solution_global) const
 Where the model wants its extractors evaluated, and the cell holding that point.
 
ReadoutSolution reconstruct_readout_solution (const Iterator &cell, const VectorType &solution_global, const Point &x, bool with_hessians=false) const
 
auto extractor_raw_potential (const VectorType &solution_global) const
 Evaluate the model's extractors at the EoM point.
 
void extract (std::array< NumberType, Components::count_extractors()> &data, const VectorType &solution_global, const VectorType &variables, bool search_EoM, bool set_EoM, bool postprocess) const
 
virtual void mass (VectorType &mass, const VectorType &solution_global, const VectorType &solution_global_dot, NumberType weight) override
 
auto make_assembly_context_view (const SolutionReconstructionCache &cache) const
 
auto make_assembly_context_view (SolutionReconstructionCache &&cache) const =delete
 
template<HasAssemblyContextView Context>
void run_fv_kt_pre_assembly_hook (const AssemblyStage stage, const Context &context)
 
void fill_cell_data_from_topology (const CellGeometryDofs &topology, const VectorType &solution_global, CellData &data) const
 
template<int boundary_dim, typename BoundaryNumberType >
internal::BoundaryStencilData< boundary_dim, BoundaryNumberType, n_components > build_boundary_stencil_from_cache_impl (const Iterator &cell, const unsigned int boundary_face_no, const VectorType &solution_global) const
 
template<typename BoundaryNumberType >
internal::BoundaryStencilData< dim, BoundaryNumberType, n_components > build_boundary_stencil_from_cache (const Iterator &cell, const unsigned int boundary_face_no, const VectorType &solution_global) const
 
template<typename BoundaryNumberType >
internal::BoundaryReconstructionStencilData< dim, BoundaryNumberType, n_components > build_boundary_reconstruction_stencil_from_cache (const Iterator &cell, const unsigned int boundary_face_no, const VectorType &solution_global) const
 
void fill_cell_stencil (const Iterator &cell, const VectorType &solution_global, CellStencilData &stencil) const
 
CellStencilDataT< autodiff::Real< 1, NumberType > > tag_cell_stencil_dofs_from_cache (const Iterator &cell, const CellStencilData &cell_stencil, const VectorType &solution_global, const types::global_dof_index dof_j) const
 
unsigned int find_neighbor_face (const Iterator &cell, const Iterator &neighbor) const
 
template<def::HasReconstructor ActiveReconstructor>
void rebuild_solution_reconstruction_cache (const VectorType &solution_global, SolutionReconstructionCache &cache) const
 
void ensure_solution_reconstruction_cache_shape (SolutionReconstructionCache &cache) const
 
void initialize_solution_reconstruction_cache_topology (SolutionReconstructionCache &cache) const
 
void initialize_cell_stencil_topology (const unsigned int cell_index, CellStencilData &stencil) const
 
void refresh_solution_reconstruction_cache_values (const VectorType &solution_global, SolutionReconstructionCache &cache) const
 
void refresh_cell_stencil_values (const unsigned int cell_index, const VectorType &solution_global, CellStencilData &stencil) const
 
void rebuild_face_reconstruction_descriptors ()
 
const FaceReconstructionState & get_cached_face_reconstruction (const SolutionReconstructionCache &cache, const Iterator &cell, const unsigned int face_index) const
 
auto compute_interior_face_reconstruction_from_cache (const Iterator &cell, const Iterator &ncell, const VectorType &solution_global, const Point &x_q, Scratch &scratch_data) const
 
auto compute_boundary_face_reconstruction_from_cache (const Iterator &cell, const unsigned int face_no, const VectorType &solution_global, const Point &x_q) const
 
auto compute_interior_jacobian_face_reconstruction_from_cache (const Iterator &cell, const Iterator &ncell, const VectorType &solution_global, const Point &x_q, Scratch &scratch_data) const
 
auto compute_boundary_jacobian_face_reconstruction_from_cache (const Iterator &cell, const unsigned int face_no, const VectorType &solution_global, const Point &x_q) const
 
template<typename ExtractorArray >
void probe_diffusion_flux_conditioning (const SolutionReconstructionCache &reconstruction_cache, const ExtractorArray &extractors, const VectorType &variables) const
 One-shot conditioning check on the model's diffusion flux.
 
void fill_constant_quadrature_values (const Iterator &cell, const VectorType &solution_global, const VectorType &solution_global_dot, Scratch &scratch_data) const
 
virtual void residual (VectorType &residual, const VectorType &solution_global, NumberType weight, const VectorType &solution_global_dot, NumberType weight_mass, const VectorType &variables=VectorType()) override
 
virtual void jacobian_mass (SparseMatrixType &jacobian, const VectorType &solution_global, const VectorType &solution_global_dot, NumberType alpha=1., NumberType beta=1.) override
 
virtual void jacobian (SparseMatrixType &jacobian, const VectorType &solution_global, NumberType weight, const VectorType &solution_global_dot, NumberType alpha, NumberType beta, const VectorType &variables=VectorType()) override
 
virtual void refinement_indicator (Vector< double > &indicator, const VectorType &solution_global)
 
void append_reconstruction_neighbor_dofs (std::vector< types::global_dof_index > &from_dofs, const Iterator &root_cell) const
 
void append_boundary_reconstruction_dofs (std::vector< types::global_dof_index > &from_dofs, const unsigned int cell_index, const unsigned int face_index) const
 
void build_face_jacobian_dependency_cache (const Iterator &cell, const unsigned int face_index, FaceJacobianDependencyCacheEntry &dependencies) const
 
void build_source_jacobian_dependency_cache (const Iterator &cell, FaceJacobianDependencyCacheEntry &dependencies) const
 The dofs the nonlocal part of the source jacobian writes to and reads from.
 
void build_sparsity (get_type::SparsityPattern< SparseMatrixType > &sparsity_pattern, const DoFHandler< dim > &to_dofh, const DoFHandler< dim > &from_dofh, const int stencil=2, bool add_extractor_dofs=false) const
 
void build_cached_jacobian_sparsity (get_type::SparsityPattern< SparseMatrixType > &sparsity_pattern) const
 
void fill_boundary_topology (internal::BoundaryStencilTopologyData< dim, n_components > &boundary_topology, const Iterator &cell, const unsigned int boundary_face_no, std::vector< types::global_dof_index > &dof_indices) const
 
void rebuild_cell_topology_cache ()
 
const CellTopologyCacheEntry & get_cell_topology (const Iterator &cell) const
 
SummaryEvent summary () const override
 
double average_time_reinit () const
 
uint num_reinits () const
 
double average_time_residual_assembly () const
 
uint num_residuals () const
 
double average_time_jacobian_assembly () const
 
uint num_jacobians () const
 
- Public Member Functions inherited from DiFfRG::AbstractAssembler< Discretization_::VectorType, Discretization_::SparseMatrixType, Discretization_::dim >
virtual void attach_data_output (OutputFrame< dim, VectorType > &data_out, const VectorType &solution, const VectorType &variables=VectorType(), const VectorType &dt_solution=VectorType(), const VectorType &residual=VectorType())=0
 Contribute the assembler's fields and model readouts to one scoped output frame.
 
virtual void attach_data_output (DataOutput< dim, VectorType > &, const VectorType &, const VectorType &=VectorType(), const VectorType &=VectorType(), const VectorType &=VectorType())=delete
 
virtual void reinit_vector (VectorType &vector) const=0
 Reinitialize an arbitrary vector so that it has the correct size and structure.
 
virtual void reinit_matrix (SparseMatrixType &matrix) const=0
 Reinitialize a matrix to the jacobian's sparsity pattern.
 
virtual void reinit_solution_view (SolutionView< VectorType > &view) const=0
 Establish the layout of a fully-replicated read-only view of the solution.
 
virtual void residual_variables (VectorType &residual, const VectorType &variables, const VectorType &spatial_solution)
 When coupling the spatial discretization to additional variables, this function should calculate the residual for the additional variables.
 
virtual void jacobian_variables (FullMatrix< NumberType > &jacobian, const VectorType &variables, const VectorType &spatial_solution)
 When coupling the spatial discretization to additional variables, this function should calculate the jacobian for the additional variables.
 
void mass (VectorType &mass, const VectorType &solution_global, NumberType weight)
 Calculates the mass \(m_i(u)\) for an ODE.
 
virtual void mass (VectorType &mass, const VectorType &solution_global, const VectorType &solution_global_dot, NumberType weight)=0
 Calculates the mass \(m(u, \partial_t u)\) for a DAE.
 
void residual (VectorType &residual, const VectorType &solution_global, NumberType weight, NumberType weight_mass, const VectorType &variables=VectorType())
 Calculates the residual for an ODE.
 
virtual void residual (VectorType &residual, const VectorType &solution_global, NumberType weight, const VectorType &solution_global_dot, NumberType weight_mass, const VectorType &variables=VectorType())=0
 Calculates the residual for a DAE.
 
void jacobian_mass (SparseMatrixType &jacobian, const VectorType &solution_global, NumberType mass_weight=1.)
 Calculates the jacobian of the mass function for an ODE.
 
virtual void jacobian_mass (SparseMatrixType &jacobian, const VectorType &solution_global, const VectorType &solution_global_dot, NumberType alpha=1., NumberType beta=1.)=0
 Calculates the jacobian of the mass function for a DAE.
 
void jacobian (SparseMatrixType &jacobian, const VectorType &solution_global, NumberType weight, NumberType mass_weight, const VectorType &variables=VectorType())
 Calculates the jacobian of the residual function for an ODE.
 
virtual void jacobian (SparseMatrixType &jacobian, const VectorType &solution_global, NumberType weight, const VectorType &solution_global_dot, NumberType alpha, NumberType beta, const VectorType &variables=VectorType())=0
 Calculates the jacobian of the residual function for a DAE.
 

Static Public Member Functions

static void fill_cell_data (const Iterator &cell, const VectorType &solution_global, std::vector< types::global_dof_index > &scratch_dof_indices, CellData &data)
 
static bool is_physical_boundary_face (const Iterator &cell, const unsigned int face_index)
 
static Iterator face_neighbor (const Iterator &cell, const unsigned int face_index)
 
static void fill_cell_stencil (const Iterator &cell, const VectorType &solution_global, const Model &model, std::vector< types::global_dof_index > &scratch_dof_indices, CellStencilData &stencil)
 
template<typename BoundaryNumberType >
requires (dim == 1)
static internal::BoundaryStencilData< dim, BoundaryNumberType, n_components > build_boundary_stencil (const Iterator &cell, const unsigned int boundary_face_no, const VectorType &solution_global, std::vector< types::global_dof_index > &scratch_dof_indices)
 
template<def::HasReconstructor ActiveReconstructor>
static GradientType source_gradient (const CellStencilData &stencil, const Point &x_q)
 The "fe_derivatives" slot of fv_tie(), i.e. the gradient model.source() sees at x_q.
 
static std::array< internal::GradientType< dim, NumberType, n_components >, n_faces > compute_neighbor_gradients (const Iterator &cell, const VectorType &solution_global, const Model &model, std::vector< types::global_dof_index > &scratch_dof_indices, CellStencilData &temporary_stencil)
 
static Tensor< 1, dim > face_normal_from_cell (const Iterator &cell, const unsigned int face_no)
 
static double face_jxw (const Iterator &cell, const unsigned int face_no)
 
template<typename DoFContainer >
static void append_dofs (std::vector< types::global_dof_index > &target, const DoFContainer &source)
 
template<typename DoFContainer >
static void append_valid_dofs (std::vector< types::global_dof_index > &target, const DoFContainer &source)
 
static void sort_unique_dofs (std::vector< types::global_dof_index > &dofs)
 

Static Public Attributes

static constexpr uint dim = Discretization::dim
 
static constexpr uint n_components = Components::count_fe_functions(0)
 
static constexpr uint n_faces = GeometryInfo<dim>::faces_per_cell
 

Protected Member Functions

template<typename... T>
auto fv_tie (T &&...t)
 The named tuple handed to model.source(), the FV counterpart of CG's fe_tie().
 
AssemblySchedule schedule_for (const double cost_ns) const
 
void update_assembly_schedules ()
 

Static Protected Member Functions

template<typename... T>
static constexpr auto v_tie (T &&...t)
 
template<typename... T>
static constexpr auto e_tie (T &&...t)
 

Protected Attributes

Discretization & discretization
 
Model & model
 
ReportPort report_port
 
const DoFHandler< dim > & dof_handler
 
const Mapping< dim > & mapping
 
const Triangulation< dim > & triangulation
 
const FiniteElement< dim > & fe
 
uint n_owned_cells = 0
 
const AssemblyScheduleOverrides schedule_overrides
 
Point EoM
 
Iterator EoM_cell
 
Iterator old_EoM_cell
 
const Config::EoMConfig EoM_config
 
std::optional< Point > EoM_minimum_guess
 
DiFfRG::internal::PotentialSystemCache< dim, NumberType > potential_cache
 Mesh-dependent half of the potential reconstructions, built once and reused; see PotentialSystemCache.
 
const QGauss< dim > quadrature
 
const QGauss< dim - 1 > quadrature_face
 
get_type::SparsityPattern< SparseMatrixType > sparsity_pattern_mass
 
get_type::SparsityPattern< SparseMatrixType > sparsity_pattern_jacobian
 
SparseMatrixType mass_matrix
 
std::vector< double > timings_reinit
 
std::vector< double > timings_residual
 
std::vector< double > timings_jacobian
 
std::array< unsigned int, n_components > local_component_of_dof {}
 
std::vector< CellTopologyCacheEntry > cell_topology_cache
 
std::vector< FaceReconstructionDescriptor > face_reconstruction_descriptors
 
SolutionReconstructionCache residual_reconstruction_cache
 
SolutionReconstructionCache jacobian_reconstruction_cache
 
double domain_diameter = 0.0
 
const bool diagnose_flux_conditioning
 
bool flux_conditioning_probed = false
 

Static Protected Attributes

static constexpr int nothing = 0
 
static constexpr double flux_conditioning_warn_threshold = 1e-9
 
static constexpr unsigned int flux_conditioning_max_samples = 512
 

Member Typedef Documentation

◆ CellData

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
using DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::CellData = internal::CellData<dim, NumberType, n_components>

◆ CellGeometryDofs

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
using DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::CellGeometryDofs = internal::CellGeometryDofs<dim, n_components>

◆ CellStencilData

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
using DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::CellStencilData = internal::CellStencilData<dim, NumberType, n_components>

◆ CellStencilDataT

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
template<typename NT >
using DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::CellStencilDataT = internal::CellStencilData<dim, NT, n_components>

◆ CellStencilTopologyData

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
using DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::CellStencilTopologyData = internal::CellStencilTopologyData<dim, n_components>

◆ Components

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
using DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::Components = typename Discretization::Components

◆ Discretization

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
using DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::Discretization = Discretization_

◆ FaceReconstructionState

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
using DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::FaceReconstructionState = internal::FaceReconstructionState<dim, NumberType, n_components>

◆ GradientType

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
using DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::GradientType = internal::GradientType<dim, NumberType, n_components>

◆ Iterator

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
using DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::Iterator = typename DoFHandler<Discretization::dim>::active_cell_iterator

◆ JacobianReconstructor

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
using DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::JacobianReconstructor = JacobianReconstructor_

◆ Model

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
using DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::Model = Model_

◆ NeighborData

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
using DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::NeighborData = internal::NeighborData<dim, NumberType, n_components>

◆ NumberType

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
using DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::NumberType = typename Discretization::NumberType

◆ Point

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
using DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::Point = dealii::Point<dim>

◆ Reconstructor

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
using DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::Reconstructor = Reconstructor_

◆ Scratch

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
using DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::Scratch = internal::ScratchData<dim, NumberType, n_components>

◆ SolutionReconstructionCache

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
using DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::SolutionReconstructionCache = internal::SolutionReconstructionCache<dim, NumberType, n_components>

◆ SparseMatrixType

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
using DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::SparseMatrixType = typename Discretization::SparseMatrixType

◆ ThirdDerivativeType

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
using DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::ThirdDerivativeType = internal::ThirdDerivativeType<dim, NumberType, n_components>

◆ VectorType

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
using DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::VectorType = typename Discretization::VectorType

◆ WaveSpeedStrategy

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
using DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::WaveSpeedStrategy = WaveSpeedStrategy_

Constructor & Destructor Documentation

◆ Assembler()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::Assembler ( Discretization & discretization,
Model & model,
const ConfigTree & config )
inline

Member Function Documentation

◆ append_boundary_reconstruction_dofs()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::append_boundary_reconstruction_dofs ( std::vector< types::global_dof_index > & from_dofs,
const unsigned int cell_index,
const unsigned int face_index ) const
inline

◆ append_dofs()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
template<typename DoFContainer >
static void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::append_dofs ( std::vector< types::global_dof_index > & target,
const DoFContainer & source )
inlinestatic

◆ append_reconstruction_neighbor_dofs()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::append_reconstruction_neighbor_dofs ( std::vector< types::global_dof_index > & from_dofs,
const Iterator & root_cell ) const
inline

◆ append_valid_dofs()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
template<typename DoFContainer >
static void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::append_valid_dofs ( std::vector< types::global_dof_index > & target,
const DoFContainer & source )
inlinestatic

◆ attach_data_output()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
virtual void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::attach_data_output ( OutputFrame< dim, VectorType > & data_out,
const VectorType & solution,
const VectorType & variables,
const VectorType & dt_solution = VectorType(),
const VectorType & residual = VectorType() )
inlineoverridevirtual

◆ average_time_jacobian_assembly()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
double DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::average_time_jacobian_assembly ( ) const
inline

◆ average_time_reinit()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
double DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::average_time_reinit ( ) const
inline

◆ average_time_residual_assembly()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
double DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::average_time_residual_assembly ( ) const
inline

◆ build_boundary_reconstruction_stencil_from_cache()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
template<typename BoundaryNumberType >
internal::BoundaryReconstructionStencilData< dim, BoundaryNumberType, n_components > DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::build_boundary_reconstruction_stencil_from_cache ( const Iterator & cell,
const unsigned int boundary_face_no,
const VectorType & solution_global ) const
inline

◆ build_boundary_stencil()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
template<typename BoundaryNumberType >
requires (dim == 1)
static internal::BoundaryStencilData< dim, BoundaryNumberType, n_components > DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::build_boundary_stencil ( const Iterator & cell,
const unsigned int boundary_face_no,
const VectorType & solution_global,
std::vector< types::global_dof_index > & scratch_dof_indices )
inlinestatic

◆ build_boundary_stencil_from_cache()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
template<typename BoundaryNumberType >
internal::BoundaryStencilData< dim, BoundaryNumberType, n_components > DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::build_boundary_stencil_from_cache ( const Iterator & cell,
const unsigned int boundary_face_no,
const VectorType & solution_global ) const
inline

◆ build_boundary_stencil_from_cache_impl()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
template<int boundary_dim, typename BoundaryNumberType >
internal::BoundaryStencilData< boundary_dim, BoundaryNumberType, n_components > DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::build_boundary_stencil_from_cache_impl ( const Iterator & cell,
const unsigned int boundary_face_no,
const VectorType & solution_global ) const
inline

◆ build_cached_jacobian_sparsity()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::build_cached_jacobian_sparsity ( get_type::SparsityPattern< SparseMatrixType > & sparsity_pattern) const
inline

◆ build_face_jacobian_dependency_cache()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::build_face_jacobian_dependency_cache ( const Iterator & cell,
const unsigned int face_index,
FaceJacobianDependencyCacheEntry & dependencies ) const
inline

◆ build_source_jacobian_dependency_cache()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::build_source_jacobian_dependency_cache ( const Iterator & cell,
FaceJacobianDependencyCacheEntry & dependencies ) const
inline

The dofs the nonlocal part of the source jacobian writes to and reads from.

Radius 1, tighter than the face dependencies: the gradient handed to model.source() is reconstructed from the cell and its 2*dim face neighbours only. Across a physical boundary face that neighbour is a model ghost, so the boundary stencil's dofs take its place.

◆ build_sparsity()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::build_sparsity ( get_type::SparsityPattern< SparseMatrixType > & sparsity_pattern,
const DoFHandler< dim > & to_dofh,
const DoFHandler< dim > & from_dofh,
const int stencil = 2,
bool add_extractor_dofs = false ) const
inline

◆ compute_boundary_face_reconstruction_from_cache()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
auto DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::compute_boundary_face_reconstruction_from_cache ( const Iterator & cell,
const unsigned int face_no,
const VectorType & solution_global,
const Point & x_q ) const
inline

◆ compute_boundary_jacobian_face_reconstruction_from_cache()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
auto DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::compute_boundary_jacobian_face_reconstruction_from_cache ( const Iterator & cell,
const unsigned int face_no,
const VectorType & solution_global,
const Point & x_q ) const
inline

◆ compute_interior_face_reconstruction_from_cache()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
auto DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::compute_interior_face_reconstruction_from_cache ( const Iterator & cell,
const Iterator & ncell,
const VectorType & solution_global,
const Point & x_q,
Scratch & scratch_data ) const
inline

◆ compute_interior_jacobian_face_reconstruction_from_cache()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
auto DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::compute_interior_jacobian_face_reconstruction_from_cache ( const Iterator & cell,
const Iterator & ncell,
const VectorType & solution_global,
const Point & x_q,
Scratch & scratch_data ) const
inline

◆ compute_neighbor_gradients()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
static std::array< internal::GradientType< dim, NumberType, n_components >, n_faces > DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::compute_neighbor_gradients ( const Iterator & cell,
const VectorType & solution_global,
const Model & model,
std::vector< types::global_dof_index > & scratch_dof_indices,
CellStencilData & temporary_stencil )
inlinestatic

◆ e_tie()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
template<typename... T>
static constexpr auto DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::e_tie ( T &&... t)
inlinestaticconstexprprotected

◆ ensure_solution_reconstruction_cache_shape()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::ensure_solution_reconstruction_cache_shape ( SolutionReconstructionCache & cache) const
inline

◆ extract()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::extract ( std::array< NumberType, Components::count_extractors()> & data,
const VectorType & solution_global,
const VectorType & variables,
bool search_EoM,
bool set_EoM,
bool postprocess ) const
inline

◆ extractor_raw_potential()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
auto DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::extractor_raw_potential ( const VectorType & solution_global) const
inline

Evaluate the model's extractors at the EoM point.

This is the FV counterpart of DiFfRG::FEMAssembler::extract, and exists for the same reason: it is the only bridge by which a model's FE (field-space) solution reaches its Variables. Models that couple the two – e.g. an effective potential whose flux depends on momentum-dependent dressings which in turn flow with the potential's derivatives at the EoM – cannot be assembled without it.

The reconstruction is the same one readouts() uses: the EoM point is found from the cell-averaged solution, then values and gradients are reconstructed there by the Reconstructor. Hessians are additionally reconstructed here (and ONLY here – see reconstruct_readout_solution): one extra three-point difference at a single point per step is free, whereas doing it per cell in the flux path would be neither cheap nor meaningful.

Parameters
dataOutput: the extractor values.
search_EoMRe-locate the EoM point instead of reusing the cached one.
set_EoMStore the located point/cell as the new cache.
postprocessApply the model's EoM_postprocess to the located point.

The raw potential for the extractors, or an inert placeholder if the model does not read it.

Reconstructing it is a direct solve over the whole mesh, and extract() runs on every residual and every jacobian – so a model that never touches the potential slots should say so and skip it.

◆ face_jxw()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
static double DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::face_jxw ( const Iterator & cell,
const unsigned int face_no )
inlinestatic

◆ face_neighbor()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
static Iterator DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::face_neighbor ( const Iterator & cell,
const unsigned int face_index )
inlinestatic

◆ face_normal_from_cell()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
static Tensor< 1, dim > DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::face_normal_from_cell ( const Iterator & cell,
const unsigned int face_no )
inlinestatic

◆ fill_boundary_topology()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::fill_boundary_topology ( internal::BoundaryStencilTopologyData< dim, n_components > & boundary_topology,
const Iterator & cell,
const unsigned int boundary_face_no,
std::vector< types::global_dof_index > & dof_indices ) const
inline

◆ fill_cell_data()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
static void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::fill_cell_data ( const Iterator & cell,
const VectorType & solution_global,
std::vector< types::global_dof_index > & scratch_dof_indices,
CellData & data )
inlinestatic

◆ fill_cell_data_from_topology()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::fill_cell_data_from_topology ( const CellGeometryDofs & topology,
const VectorType & solution_global,
CellData & data ) const
inline

◆ fill_cell_stencil() [1/2]

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::fill_cell_stencil ( const Iterator & cell,
const VectorType & solution_global,
CellStencilData & stencil ) const
inline

◆ fill_cell_stencil() [2/2]

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
static void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::fill_cell_stencil ( const Iterator & cell,
const VectorType & solution_global,
const Model & model,
std::vector< types::global_dof_index > & scratch_dof_indices,
CellStencilData & stencil )
inlinestatic

◆ fill_constant_quadrature_values()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::fill_constant_quadrature_values ( const Iterator & cell,
const VectorType & solution_global,
const VectorType & solution_global_dot,
Scratch & scratch_data ) const
inline

◆ find_neighbor_face()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
unsigned int DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::find_neighbor_face ( const Iterator & cell,
const Iterator & neighbor ) const
inline

◆ fv_tie()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
template<typename... T>
auto DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::fv_tie ( T &&... t)
inlineprotected

The named tuple handed to model.source(), the FV counterpart of CG's fe_tie().

"fe_derivatives" is the Reconstructor's gradient at the quadrature point, not an FE derivative – at the default single quadrature point (the cell centre) that is the scheme's own limited slope.

There is deliberately no "fe_hessians" slot: the only curvature the 2*dim stencil can produce is the unlimited quadratic fit of reconstruct_readout_solution(), which is not fit for a per-cell residual path. Omitting the slot makes a model that reads it fail to compile rather than silently receive zeros.

◆ get_cached_face_reconstruction()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
const FaceReconstructionState & DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::get_cached_face_reconstruction ( const SolutionReconstructionCache & cache,
const Iterator & cell,
const unsigned int face_index ) const
inline

◆ get_cell_topology()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
const CellTopologyCacheEntry & DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::get_cell_topology ( const Iterator & cell) const
inline

◆ get_communicator()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
virtual MPI_Comm DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::get_communicator ( ) const
inlineoverridevirtual

The communicator this assembler's linear algebra lives on.

MPI_COMM_SELF for a serial discretization, so callers never branch on the build type.

Implements DiFfRG::AbstractAssembler< Discretization_::VectorType, Discretization_::SparseMatrixType, Discretization_::dim >.

◆ get_differential_indices()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
virtual IndexSet DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::get_differential_indices ( ) const
inlineoverridevirtual

Obtain the dofs which contain time derivatives.

Returns
IndexSet The indices of the dofs which contain time derivatives

Implements DiFfRG::AbstractAssembler< Discretization_::VectorType, Discretization_::SparseMatrixType, Discretization_::dim >.

◆ get_mass_matrix()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
virtual const SparseMatrixType & DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::get_mass_matrix ( ) const
inlineoverridevirtual

Obtain the mass matrix.

Returns
const SparseMatrixType& The mass matrix

Implements DiFfRG::AbstractAssembler< Discretization_::VectorType, Discretization_::SparseMatrixType, Discretization_::dim >.

◆ get_sparsity_pattern_jacobian()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
virtual const get_type::SparsityPattern< SparseMatrixType > & DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::get_sparsity_pattern_jacobian ( ) const
inlineoverridevirtual

Obtain the sparsity pattern of the jacobian matrix.

Returns
const SparsityPattern<VectorType>& The sparsity pattern of the jacobian matrix

Implements DiFfRG::AbstractAssembler< Discretization_::VectorType, Discretization_::SparseMatrixType, Discretization_::dim >.

◆ initialize_cell_stencil_topology()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::initialize_cell_stencil_topology ( const unsigned int cell_index,
CellStencilData & stencil ) const
inline

◆ initialize_solution_reconstruction_cache_topology()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::initialize_solution_reconstruction_cache_topology ( SolutionReconstructionCache & cache) const
inline

◆ is_physical_boundary_face()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
static bool DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::is_physical_boundary_face ( const Iterator & cell,
const unsigned int face_index )
inlinestatic

◆ jacobian()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
virtual void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::jacobian ( SparseMatrixType & jacobian,
const VectorType & solution_global,
NumberType weight,
const VectorType & solution_global_dot,
NumberType alpha,
NumberType beta,
const VectorType & variables = VectorType() )
inlineoverridevirtual

◆ jacobian_mass()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
virtual void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::jacobian_mass ( SparseMatrixType & jacobian,
const VectorType & solution_global,
const VectorType & solution_global_dot,
NumberType alpha = 1.,
NumberType beta = 1. )
inlineoverridevirtual

◆ jacobian_variables()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
virtual void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::jacobian_variables ( FullMatrix< NumberType > & jacobian,
const VectorType & variables,
const VectorType &  )
inlineoverridevirtual

◆ make_assembly_context_view() [1/2]

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
auto DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::make_assembly_context_view ( const SolutionReconstructionCache & cache) const
inline

◆ make_assembly_context_view() [2/2]

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
auto DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::make_assembly_context_view ( SolutionReconstructionCache && cache) const
delete

◆ mass()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
virtual void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::mass ( VectorType & mass,
const VectorType & solution_global,
const VectorType & solution_global_dot,
NumberType weight )
inlineoverridevirtual

◆ num_jacobians()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
uint DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::num_jacobians ( ) const
inline

◆ num_reinits()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
uint DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::num_reinits ( ) const
inline

◆ num_residuals()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
uint DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::num_residuals ( ) const
inline

◆ probe_diffusion_flux_conditioning()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
template<typename ExtractorArray >
void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::probe_diffusion_flux_conditioning ( const SolutionReconstructionCache & reconstruction_cache,
const ExtractorArray & extractors,
const VectorType & variables ) const
inline

One-shot conditioning check on the model's diffusion flux.

The FV residual differences the diffusion flux between a cell's faces. Any part of the flux that does not depend on the gradient therefore cancels analytically — but not in floating point, where it leaves its round-off, |F|·eps, behind. When that gradient-independent baseline dwarfs the gradient-dependent part, the residual loses the corresponding number of digits, and an implicit solver asked for a tight tolerance will grind its step size down trying to resolve pure noise.

This is the standard failure mode for fRG loop integrals at large RG scale: a flux c·k^n·g(k² + ∂u) carries an O(k^(n-1)) baseline, so the relative noise is ~eps·k²/Δ(∂u) and blows up as the UV cutoff grows.

The fix belongs in the model, not here: return the flux with its zero-gradient value already subtracted, F - F|_{∂u = 0}, written in a cancellation-free form. Subtracting a gradient-independent constant leaves the residual unchanged (a constant flux has zero divergence and cancels on the ghost side of boundary faces too).

◆ readouts()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::readouts ( OutputFrame< dim, VectorType > & data_out,
const VectorType & solution_global,
const VectorType & variables ) const
inline

◆ rebuild_cell_topology_cache()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::rebuild_cell_topology_cache ( )
inline

◆ rebuild_face_reconstruction_descriptors()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::rebuild_face_reconstruction_descriptors ( )
inline

◆ rebuild_solution_reconstruction_cache()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
template<def::HasReconstructor ActiveReconstructor>
void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::rebuild_solution_reconstruction_cache ( const VectorType & solution_global,
SolutionReconstructionCache & cache ) const
inline

◆ reconstruct_readout_solution()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
ReadoutSolution DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::reconstruct_readout_solution ( const Iterator & cell,
const VectorType & solution_global,
const Point & x,
bool with_hessians = false ) const
inline

◆ refinement_indicator()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
virtual void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::refinement_indicator ( Vector< double > & indicator,
const VectorType & solution_global )
inlinevirtual

◆ refresh_cell_stencil_values()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::refresh_cell_stencil_values ( const unsigned int cell_index,
const VectorType & solution_global,
CellStencilData & stencil ) const
inline

◆ refresh_solution_reconstruction_cache_values()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::refresh_solution_reconstruction_cache_values ( const VectorType & solution_global,
SolutionReconstructionCache & cache ) const
inline

◆ reinit()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
virtual void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::reinit ( )
inlineoverridevirtual

Reinitialize the assembler. This is necessary if the mesh has changed, e.g. after a mesh refinement.

Implements DiFfRG::AbstractAssembler< Discretization_::VectorType, Discretization_::SparseMatrixType, Discretization_::dim >.

◆ reinit_matrix()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
virtual void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::reinit_matrix ( SparseMatrixType & matrix) const
inlineoverridevirtual

◆ reinit_solution_view()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
virtual void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::reinit_solution_view ( SolutionView< VectorType > & view) const
inlineoverridevirtual

◆ reinit_vector()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
virtual void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::reinit_vector ( VectorType & vec) const
inlineoverridevirtual

◆ residual()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
virtual void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::residual ( VectorType & residual,
const VectorType & solution_global,
NumberType weight,
const VectorType & solution_global_dot,
NumberType weight_mass,
const VectorType & variables = VectorType() )
inlineoverridevirtual

◆ residual_variables()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
virtual void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::residual_variables ( VectorType & residual,
const VectorType & variables,
const VectorType & spatial_solution )
inlineoverridevirtual

◆ resolve_extractor_point()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
std::pair< Point, Iterator > DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::resolve_extractor_point ( const Point & EoM_point,
const Iterator & EoM_cell_,
const VectorType & solution_global ) const
inline

Where the model wants its extractors evaluated, and the cell holding that point.

Parameters
with_hessiansAlso fill ReadoutSolution::hessians. Off by default and intended ONLY for the single EoM-point evaluation in extract(): it is a plain unlimited difference, not part of the scheme, and must not be wired into the flux path.

The EoM itself when the model does not define extractor_point – and then this costs nothing, because building the SolutionSample is inside the if constexpr.

Values are read straight off the dofs – with one dof per cell they are the cell averages already – and gradients are recovered by central differences afterwards. Deliberately not the Reconstructor's limited slopes: reconstructing per cell means a stencil fill over the whole mesh on every residual evaluation, which is serial work that dominates the assembly (it cost a factor of four here). The limited slope stays where it belongs, in the flux path. The FE path in make_solution_sample() is no use for either, since DG0 shape functions have zero gradient.

◆ run_fv_kt_pre_assembly_hook()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
template<HasAssemblyContextView Context>
void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::run_fv_kt_pre_assembly_hook ( const AssemblyStage stage,
const Context & context )
inline

◆ schedule_for()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
AssemblySchedule DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::schedule_for ( const double cost_ns) const
inlineprotected

◆ set_time()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
virtual void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::set_time ( double t)
inlineoverridevirtual

Set the current time. The assembler should usually just forward this to the numerical model.

Parameters
tThe current time

Implements DiFfRG::AbstractAssembler< Discretization_::VectorType, Discretization_::SparseMatrixType, Discretization_::dim >.

◆ sort_unique_dofs()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
static void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::sort_unique_dofs ( std::vector< types::global_dof_index > & dofs)
inlinestatic

◆ source_gradient()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
template<def::HasReconstructor ActiveReconstructor>
static GradientType DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::source_gradient ( const CellStencilData & stencil,
const Point & x_q )
inlinestatic

The "fe_derivatives" slot of fv_tie(), i.e. the gradient model.source() sees at x_q.

The same reconstruction the readout path and the face fluxes use. At the default single quadrature point – the cell centre – compute_gradient_at_point falls through to the limiter, so this is the scheme's own limited slope; with overintegration it becomes one-sided towards x_q.

Boundary cells need no special case: the stencil's neighbour slot across a physical boundary face already holds the model's ghost value (see refresh_cell_stencil_values).

◆ summary()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
SummaryEvent DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::summary ( ) const
inlineoverridevirtual

Return aggregate assembly statistics for the run summary.

Reimplemented from DiFfRG::AbstractAssembler< Discretization_::VectorType, Discretization_::SparseMatrixType, Discretization_::dim >.

◆ tag_cell_stencil_dofs_from_cache()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
CellStencilDataT< autodiff::Real< 1, NumberType > > DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::tag_cell_stencil_dofs_from_cache ( const Iterator & cell,
const CellStencilData & cell_stencil,
const VectorType & solution_global,
const types::global_dof_index dof_j ) const
inline

◆ update_assembly_schedules()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
void DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::update_assembly_schedules ( )
inlineprotected

◆ v_tie()

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
template<typename... T>
static constexpr auto DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::v_tie ( T &&... t)
inlinestaticconstexprprotected

Member Data Documentation

◆ cell_topology_cache

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
std::vector<CellTopologyCacheEntry> DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::cell_topology_cache
protected

◆ diagnose_flux_conditioning

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
const bool DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::diagnose_flux_conditioning
protected

◆ dim

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
uint DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::dim = Discretization::dim
staticconstexpr

◆ discretization

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
Discretization& DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::discretization
protected

◆ dof_handler

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
const DoFHandler<dim>& DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::dof_handler
protected

◆ domain_diameter

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
double DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::domain_diameter = 0.0
protected

◆ EoM

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
Point DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::EoM
mutableprotected

◆ EoM_cell

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
Iterator DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::EoM_cell
mutableprotected

◆ EoM_config

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
const Config::EoMConfig DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::EoM_config
protected

◆ EoM_minimum_guess

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
std::optional<Point> DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::EoM_minimum_guess
mutableprotected

◆ face_reconstruction_descriptors

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
std::vector<FaceReconstructionDescriptor> DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::face_reconstruction_descriptors
protected

◆ fe

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
const FiniteElement<dim>& DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::fe
protected

◆ flux_conditioning_max_samples

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
unsigned int DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::flux_conditioning_max_samples = 512
staticconstexprprotected

◆ flux_conditioning_probed

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
bool DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::flux_conditioning_probed = false
mutableprotected

◆ flux_conditioning_warn_threshold

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
double DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::flux_conditioning_warn_threshold = 1e-9
staticconstexprprotected

◆ jacobian_reconstruction_cache

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
SolutionReconstructionCache DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::jacobian_reconstruction_cache
protected

◆ local_component_of_dof

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
std::array<unsigned int, n_components> DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::local_component_of_dof {}
protected

◆ mapping

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
const Mapping<dim>& DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::mapping
protected

◆ mass_matrix

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
SparseMatrixType DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::mass_matrix
protected

◆ model

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
Model& DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::model
protected

◆ n_components

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
uint DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::n_components = Components::count_fe_functions(0)
staticconstexpr

◆ n_faces

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
uint DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::n_faces = GeometryInfo<dim>::faces_per_cell
staticconstexpr

◆ n_owned_cells

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
uint DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::n_owned_cells = 0
protected

◆ nothing

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
int DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::nothing = 0
staticconstexprprotected

◆ old_EoM_cell

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
Iterator DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::old_EoM_cell
protected

◆ potential_cache

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
DiFfRG::internal::PotentialSystemCache<dim, NumberType> DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::potential_cache
mutableprotected

Mesh-dependent half of the potential reconstructions, built once and reused; see PotentialSystemCache.

◆ quadrature

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
const QGauss<dim> DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::quadrature
protected

◆ quadrature_face

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
const QGauss<dim - 1> DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::quadrature_face
protected

◆ report_port

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
ReportPort DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::report_port
protected

◆ residual_reconstruction_cache

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
SolutionReconstructionCache DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::residual_reconstruction_cache
protected

◆ schedule_overrides

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
const AssemblyScheduleOverrides DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::schedule_overrides
protected

◆ sparsity_pattern_jacobian

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
get_type::SparsityPattern<SparseMatrixType> DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::sparsity_pattern_jacobian
protected

◆ sparsity_pattern_mass

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
get_type::SparsityPattern<SparseMatrixType> DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::sparsity_pattern_mass
protected

◆ timings_jacobian

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
std::vector<double> DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::timings_jacobian
protected

◆ timings_reinit

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
std::vector<double> DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::timings_reinit
protected

◆ timings_residual

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
std::vector<double> DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::timings_residual
protected

◆ triangulation

template<typename Discretization_ , typename Model_ = typename DiFfRG::internal::assembler_model_of<Discretization_>::type, def::HasReconstructor Reconstructor_ = def::TVDReconstructor<Discretization_::dim, def::MinModLimiter, double>, def::HasWaveSpeed WaveSpeedStrategy_ = MaxEigenvalueWaveSpeed, def::HasReconstructor JacobianReconstructor_ = Reconstructor_>
const Triangulation<dim>& DiFfRG::FV::KurganovTadmor::Assembler< Discretization_, Model_, Reconstructor_, WaveSpeedStrategy_, JacobianReconstructor_ >::triangulation
protected

The documentation for this class was generated from the following file:
  • /home/runner/work/DiFfRG_current/DiFfRG_current/DiFfRG/include/DiFfRG/discretization/FV/assembler/KurganovTadmor.hh