|
| Assembler (Discretization &discretization, Model &model, const JSONValue &json) |
|
virtual void | reinit_vector (VectorType &vec) const override |
|
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 |
| Attach all intermediate (ldg) vectors to the data output.
|
|
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 void | refinement_indicator (Vector< double > &indicator, const VectorType &solution_global) override |
|
virtual const BlockSparsityPattern & | get_sparsity_pattern_jacobian () const override |
| Obtain the sparsity pattern of the jacobian matrix.
|
|
virtual const BlockSparseMatrix< NumberType > & | get_mass_matrix () const override |
| Obtain the mass matrix.
|
|
virtual void | mass (VectorType &residual, const VectorType &solution_global, const VectorType &solution_global_dot, NumberType weight) override |
| Construct the mass.
|
|
virtual void | residual (VectorType &residual, const VectorType &solution_global, NumberType weight, const VectorType &solution_global_dot, NumberType weight_mass, const VectorType &variables=VectorType()) override |
| Construct the system residual, i.e. Res = grad(flux) - source.
|
|
virtual void | jacobian_mass (BlockSparseMatrix< NumberType > &jacobian, const VectorType &solution_global, const VectorType &solution_global_dot, NumberType alpha=1., NumberType beta=1.) override |
|
virtual void | jacobian (BlockSparseMatrix< NumberType > &jacobian, const VectorType &solution_global, NumberType weight, const VectorType &solution_global_dot, NumberType alpha, NumberType beta, const VectorType &variables=VectorType()) override |
| Construct the system jacobian, i.e. dRes/du.
|
|
void | log (const std::string logger) |
|
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 |
|
| LDGAssemblerBase (Discretization &discretization, Model &model, const JSONValue &json) |
|
virtual IndexSet | get_differential_indices () const override |
| Obtain the dofs which contain time derivatives.
|
|
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.
|
|
double | average_time_variable_residual_assembly () |
|
uint | num_variable_residuals () const |
|
double | average_time_variable_jacobian_assembly () |
|
uint | num_variable_jacobians () const |
|
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.
|
|
|
void | rebuild_ldg_vectors (const VectorType &sol) const |
|
template<int k> |
void | rebuild_ldg_jacobian (const VectorType &sol) const |
|
template<int from, int to, typename VectorType , typename VectorTypeldg > |
void | build_ldg_vector (const VectorType &solution_global, VectorTypeldg &ldg_vector, VectorTypeldg &ldg_vector_tmp) const |
| Build the LDG vector at level 'to', which takes information from level 'from'.
|
|
template<int from, int to, typename VectorType > |
void | build_ldg_jacobian (const VectorType &solution_global, BlockSparseMatrix< NumberType > &ldg_jacobian, BlockSparseMatrix< NumberType > &ldg_jacobian_tmp) const |
| Build the LDG jacobian at level 'to', which takes information from level 'from'.
|
|
void | build_ldg_sparsity (BlockSparsityPattern &sparsity_pattern, const DoFHandler< dim > &to_dofh, const DoFHandler< dim > &from_dofh, const int stencil=1, bool add_extractor_dofs=false) const |
| Create a sparsity pattern for matrices between the DoFs of two DoFHandlers, with given stencil size.
|
|
void | build_inverse (const SparseMatrix< NumberType > &in, SparseMatrix< NumberType > &out) const |
| Build the inverse of matrix in and save the result to out.
|
|
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) |
|
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 |
|
|
QGauss< dim > | quadrature |
|
QGauss< dim - 1 > | quadrature_face |
|
std::vector< const DoFHandler< dim > * > | dof_handler_list |
|
array< BlockVector< NumberType >, Components::count_fe_subsystems()> | sol_vector |
|
array< BlockVector< NumberType >, Components::count_fe_subsystems()> | sol_vector_tmp |
|
array< Vector< NumberType >, Components::count_fe_subsystems()> | sol_vector_vec_tmp |
|
BlockSparsityPattern | sparsity_pattern_jacobian |
|
BlockSparsityPattern | sparsity_pattern_mass |
|
array< BlockSparsityPattern, Components::count_fe_subsystems()> | sparsity_pattern_ug |
|
array< BlockSparsityPattern, Components::count_fe_subsystems()> | sparsity_pattern_gu |
|
array< BlockSparsityPattern, Components::count_fe_subsystems()> | sparsity_pattern_wg |
|
array< BlockSparseMatrix< NumberType >, Components::count_fe_subsystems()> | jacobian_tmp |
|
BlockSparseMatrix< NumberType > | mass_matrix |
|
SparseMatrix< NumberType > | component_mass_matrix_inverse |
|
array< BlockSparseMatrix< NumberType >, Components::count_fe_subsystems()> | j_ug |
|
array< BlockSparseMatrix< NumberType >, Components::count_fe_subsystems()> | j_gu |
|
array< BlockSparseMatrix< NumberType >, Components::count_fe_subsystems()> | j_wg |
|
array< BlockSparseMatrix< NumberType >, Components::count_fe_subsystems()> | j_wg_tmp |
|
std::vector< double > | timings_reinit |
|
std::vector< double > | timings_residual |
|
std::vector< double > | timings_jacobian |
|
array< bool, Components::count_fe_subsystems()> | ldg_matrix_built |
|
array< bool, Components::count_fe_subsystems()> | jacobian_tmp_built |
|
Discretization & | discretization |
|
const DoFHandler< dim > & | dof_handler |
|
const FiniteElement< dim > & | fe |
|
const Mapping< dim > & | mapping |
|
Model & | model |
|
uint | batch_size |
|
uint | threads |
|
const double | EoM_abs_tol |
|
const uint | EoM_max_iter |
|
std::vector< types::global_dof_index > | extractor_dof_indices |
|
Point< dim > | EoM |
|
DoFHandler< dim >::cell_iterator | EoM_cell |
|
FullMatrix< NumberType > | extractor_jacobian_u |
|
DoFHandler< dim >::cell_iterator | old_EoM_cell |
|
std::vector< double > | timings_variable_jacobian |
|
std::vector< double > | timings_variable_residual |
|
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 |
|
template<typename Discretization_, typename Model_>
class DiFfRG::LDG::Assembler< Discretization_, Model_ >
The LDG assembler that can be used for any LDG scheme, with as many levels as one wants.
- Template Parameters
-