Assembler< Discretization_, Model_ > Class Template Reference#
|
DiFfRG
|
Public Types |
Public Member Functions |
Static Public Attributes |
Protected Attributes |
Private Types |
List of all members
DiFfRG::CG::Assembler< Discretization_, Model_ > Class Template Reference
The basic assembler that can be used for any standard CG scheme with flux and source. More...
#include <cg.hh>
Inheritance diagram for DiFfRG::CG::Assembler< Discretization_, Model_ >:
Public Types | |
| using | Discretization = Discretization_ |
| using | Model = Model_ |
| using | NumberType = typename Discretization::NumberType |
| using | VectorType = typename Discretization::VectorType |
| using | Components = typename Discretization::Components |
Public Types inherited from DiFfRG::FEMAssembler< Discretization_, Model_ > | |
| using | Discretization = Discretization_ |
| using | Model = Model_ |
| using | NumberType = typename Discretization::NumberType |
| using | VectorType = typename Discretization::VectorType |
| using | Components = typename Discretization::Components |
Public Types inherited from DiFfRG::AbstractAssembler< Discretization_::VectorType, Discretization_::SparseMatrixType, Discretization_::dim > | |
| using | NumberType |
Public Member Functions | |
| Assembler (Discretization &discretization, Model &model, const JSONValue &json) | |
| virtual void | reinit_vector (VectorType &vec) const override |
| virtual void | reinit () override |
| Reinitialize the assembler. This is necessary if the mesh has changed, e.g. after a mesh refinement. | |
| virtual void | rebuild_jacobian_sparsity () override |
| virtual const SparsityPattern & | get_sparsity_pattern_jacobian () const override |
| Obtain the sparsity pattern of the jacobian matrix. | |
| virtual const SparseMatrix< NumberType > & | get_mass_matrix () const override |
| Obtain the mass matrix. | |
| virtual void | refinement_indicator (Vector< double > &indicator, const VectorType &solution_global) override |
| refinement indicator for adaptivity. Only calls the model's cell_indicator function, as in CG schemes the cell boundary is not discontinuous. | |
| virtual void | mass (VectorType &mass, const VectorType &solution_global, const VectorType &solution_global_dot, NumberType weight) override |
| 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 (SparseMatrix< NumberType > &jacobian, const VectorType &solution_global, const VectorType &solution_global_dot, NumberType alpha, NumberType beta) override |
| virtual void | jacobian (SparseMatrix< NumberType > &jacobian, const VectorType &solution_global, NumberType weight, const VectorType &solution_global_dot, NumberType alpha, NumberType beta, const VectorType &variables=VectorType()) override |
| void | log (const std::string logger) |
| double | average_time_reinit () const |
| uint | num_reinits () const |
| double | average_time_residual_assembly () |
| uint | num_residuals () const |
| double | average_time_jacobian_assembly () |
| uint | num_jacobians () const |
Public Member Functions inherited from DiFfRG::FEMAssembler< Discretization_, Model_ > | |
| FEMAssembler (Discretization &discretization, Model &model, const JSONValue &json) | |
| virtual IndexSet | get_differential_indices () const override |
| Obtain the dofs which contain time derivatives. | |
| virtual void | attach_data_output (DataOutput< dim, VectorType > &data_out, const VectorType &solution, const VectorType &variables, const VectorType &dt_solution=VectorType(), const VectorType &residual=VectorType()) override |
| const auto & | get_discretization () const |
| auto & | get_discretization () |
| virtual void | set_time (double t) override |
| Set the current time. The assembler should usually just forward this to the numerical model. | |
| virtual void | refinement_indicator (Vector< double > &, const VectorType &)=0 |
| 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 &spatial_solution) override |
| void | readouts (DataOutput< dim, VectorType > &data_out, const VectorType &solution_global, const VectorType &variables) const |
| 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 |
| bool | jacobian_extractors (FullMatrix< NumberType > &extractor_jacobian, const VectorType &solution_global, const VectorType &variables) |
| double | average_time_variable_residual_assembly () |
| uint | num_variable_residuals () const |
| double | average_time_variable_jacobian_assembly () |
| uint | num_variable_jacobians () const |
Public Member Functions inherited from DiFfRG::AbstractAssembler< Discretization_::VectorType, Discretization_::SparseMatrixType, Discretization_::dim > | |
| virtual void | attach_data_output (DataOutput< dim, VectorType > &data_out, const VectorType &solution, const VectorType &variables=VectorType(), const VectorType &dt_solution=VectorType(), const VectorType &residual=VectorType())=0 |
| Attach any data output to the DataOutput object provided. This can be used to extract additional data from the solution and write it to the output file. This includes both derivatives and other spatial functions, as well as single values that can be appended to the .csv file. | |
| virtual void | reinit_vector (VectorType &vector) const=0 |
| Reinitialize an arbitrary vector so that it has the correct size and structure. | |
| 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 Attributes | |
| static constexpr uint | dim = Discretization::dim |
Static Public Attributes inherited from DiFfRG::FEMAssembler< Discretization_, Model_ > | |
| static constexpr uint | dim = Discretization::dim |
Protected Attributes | |
| QGauss< dim > | quadrature |
| QGauss< dim - 1 > | quadrature_face |
| SparsityPattern | sparsity_pattern_mass |
| SparsityPattern | sparsity_pattern_jacobian |
| SparseMatrix< NumberType > | mass_matrix |
| std::vector< double > | timings_reinit |
| std::vector< double > | timings_residual |
| std::vector< double > | timings_jacobian |
| Discretization & | discretization |
| const DoFHandler< dim > & | dof_handler |
| const FiniteElement< dim > & | fe |
| const Mapping< dim > & | mapping |
| Model & | model |
| uint | batch_size |
| uint | threads |
| std::vector< types::global_dof_index > | extractor_dof_indices |
Protected Attributes inherited from DiFfRG::FEMAssembler< Discretization_, Model_ > | |
| Discretization & | discretization |
| Model & | model |
| const FiniteElement< dim > & | fe |
| const DoFHandler< dim > & | dof_handler |
| const Mapping< dim > & | mapping |
| uint | threads |
| uint | batch_size |
| DoFHandler< dim >::cell_iterator | EoM_cell |
| DoFHandler< dim >::cell_iterator | old_EoM_cell |
| const double | EoM_abs_tol |
| const uint | EoM_max_iter |
| Point< dim > | EoM |
| FullMatrix< NumberType > | extractor_jacobian |
| FullMatrix< NumberType > | extractor_jacobian_u |
| FullMatrix< NumberType > | extractor_jacobian_du |
| FullMatrix< NumberType > | extractor_jacobian_ddu |
| std::vector< types::global_dof_index > | extractor_dof_indices |
| std::vector< double > | timings_variable_residual |
| std::vector< double > | timings_variable_jacobian |
Private Types | |
| using | Base = FEMAssembler<Discretization_, Model_> |
Additional Inherited Members | |
Static Protected Member Functions inherited from DiFfRG::FEMAssembler< Discretization_, Model_ > | |
| template<typename... T> | |
| static constexpr auto | v_tie (T &&...t) |
| template<typename... T> | |
| static constexpr auto | e_tie (T &&...t) |
Static Protected Attributes inherited from DiFfRG::FEMAssembler< Discretization_, Model_ > | |
| static constexpr int | nothing = 0 |
Detailed Description
template<typename Discretization_, typename Model_>
class DiFfRG::CG::Assembler< Discretization_, Model_ >
class DiFfRG::CG::Assembler< Discretization_, Model_ >
The basic assembler that can be used for any standard CG scheme with flux and source.
- Template Parameters
-
Model The model class which contains the physical equations.
Member Typedef Documentation
◆ Base
template<typename Discretization_ , typename Model_ >
|
private |
◆ Components
template<typename Discretization_ , typename Model_ >
| using DiFfRG::CG::Assembler< Discretization_, Model_ >::Components = typename Discretization::Components |
◆ Discretization
template<typename Discretization_ , typename Model_ >
| using DiFfRG::CG::Assembler< Discretization_, Model_ >::Discretization = Discretization_ |
◆ Model
template<typename Discretization_ , typename Model_ >
| using DiFfRG::CG::Assembler< Discretization_, Model_ >::Model = Model_ |
◆ NumberType
template<typename Discretization_ , typename Model_ >
| using DiFfRG::CG::Assembler< Discretization_, Model_ >::NumberType = typename Discretization::NumberType |
◆ VectorType
template<typename Discretization_ , typename Model_ >
| using DiFfRG::CG::Assembler< Discretization_, Model_ >::VectorType = typename Discretization::VectorType |
Constructor & Destructor Documentation
◆ Assembler()
template<typename Discretization_ , typename Model_ >
|
inline |
Member Function Documentation
◆ average_time_jacobian_assembly()
template<typename Discretization_ , typename Model_ >
|
inline |
◆ average_time_reinit()
template<typename Discretization_ , typename Model_ >
|
inline |
◆ average_time_residual_assembly()
template<typename Discretization_ , typename Model_ >
|
inline |
◆ get_mass_matrix()
template<typename Discretization_ , typename Model_ >
|
inlineoverridevirtual |
Obtain the mass matrix.
- Returns
- const SparseMatrixType& The mass matrix
◆ get_sparsity_pattern_jacobian()
template<typename Discretization_ , typename Model_ >
|
inlineoverridevirtual |
Obtain the sparsity pattern of the jacobian matrix.
- Returns
- const SparsityPattern<VectorType>& The sparsity pattern of the jacobian matrix
◆ jacobian()
template<typename Discretization_ , typename Model_ >
|
inlineoverridevirtual |
◆ jacobian_mass()
template<typename Discretization_ , typename Model_ >
|
inlineoverridevirtual |
◆ log()
template<typename Discretization_ , typename Model_ >
|
inline |
◆ mass()
template<typename Discretization_ , typename Model_ >
|
inlineoverridevirtual |
◆ num_jacobians()
template<typename Discretization_ , typename Model_ >
|
inline |
◆ num_reinits()
template<typename Discretization_ , typename Model_ >
|
inline |
◆ num_residuals()
template<typename Discretization_ , typename Model_ >
|
inline |
◆ rebuild_jacobian_sparsity()
template<typename Discretization_ , typename Model_ >
|
inlineoverridevirtual |
Implements DiFfRG::FEMAssembler< Discretization_, Model_ >.
◆ refinement_indicator()
template<typename Discretization_ , typename Model_ >
|
inlineoverridevirtual |
refinement indicator for adaptivity. Only calls the model's cell_indicator function, as in CG schemes the cell boundary is not discontinuous.
- Parameters
-
indicator The vector to store the refinement indicator in. solution_global The global solution vector.
◆ reinit()
template<typename Discretization_ , typename Model_ >
|
inlineoverridevirtual |
Reinitialize the assembler. This is necessary if the mesh has changed, e.g. after a mesh refinement.
Reimplemented from DiFfRG::FEMAssembler< Discretization_, Model_ >.
◆ reinit_vector()
template<typename Discretization_ , typename Model_ >
|
inlineoverridevirtual |
◆ residual()
template<typename Discretization_ , typename Model_ >
|
inlineoverridevirtual |
Member Data Documentation
◆ batch_size
template<typename Discretization_ , typename Model_ >
|
protected |
◆ dim
template<typename Discretization_ , typename Model_ >
|
staticconstexpr |
◆ discretization
template<typename Discretization_ , typename Model_ >
|
protected |
◆ dof_handler
template<typename Discretization_ , typename Model_ >
|
protected |
◆ extractor_dof_indices
template<typename Discretization_ , typename Model_ >
|
protected |
◆ fe
template<typename Discretization_ , typename Model_ >
|
protected |
◆ mapping
template<typename Discretization_ , typename Model_ >
|
protected |
◆ mass_matrix
template<typename Discretization_ , typename Model_ >
|
protected |
◆ model
template<typename Discretization_ , typename Model_ >
|
protected |
◆ quadrature
template<typename Discretization_ , typename Model_ >
|
protected |
◆ quadrature_face
template<typename Discretization_ , typename Model_ >
|
protected |
◆ sparsity_pattern_jacobian
template<typename Discretization_ , typename Model_ >
|
protected |
◆ sparsity_pattern_mass
template<typename Discretization_ , typename Model_ >
|
protected |
◆ threads
template<typename Discretization_ , typename Model_ >
|
protected |
◆ timings_jacobian
template<typename Discretization_ , typename Model_ >
|
protected |
◆ timings_reinit
template<typename Discretization_ , typename Model_ >
|
protected |
◆ timings_residual
template<typename Discretization_ , typename Model_ >
|
protected |
The documentation for this class was generated from the following file:
- /home/runner/work/DiFfRG_current/DiFfRG_current/DiFfRG/include/DiFfRG/discretization/FEM/assembler/cg.hh
Generated by
Public Types inherited from