PRISMS-PF Manual v3.0-pre
All Classes Functions Variables Enumerations Pages
nonexplicitBase< dim, degree > Class Template Referenceabstract

Base class for nonexplicit solves. More...

#include <nonexplicit_base.h>

Inheritance diagram for nonexplicitBase< dim, degree >:
nonexplicitAuxiliarySolver< dim, degree > nonexplicitLinearSolver< dim, degree > nonexplicitSelfNonlinearSolver< dim, degree >

Public Types

using SystemMatrixType = customPDE< dim, degree, double >
 

Public Member Functions

 nonexplicitBase (const userInputParameters< dim > &_user_inputs, const matrixfreeHandler< dim > &_matrix_free_handler, const triangulationHandler< dim > &_triangulation_handler, const invmHandler< dim, degree > &_invm_handler, const constraintHandler< dim > &_constraint_handler, const dofHandler< dim > &_dof_handler, const dealii::MappingQ1< dim > &_mapping, dealii::MGLevelObject< matrixfreeHandler< dim, float > > &_mg_matrix_free_handler, solutionHandler< dim > &_solution_handler)
 Constructor.
 
 ~nonexplicitBase ()=default
 Destructor.
 
virtual void init ()=0
 Initialize system.
 
virtual void solve ()=0
 Solve a single update step.
 

Protected Member Functions

void compute_subset_attributes (const fieldSolveType &field_solve_type)
 Compute the subset of variableAttributes that belongs to a given fieldSolveType. This function should only be used for nonexplicit fieldSolveTypes, such as NONEXPLICIT_LINEAR, NONEXPLICIT_SELF_NONLINEAR, NONEXPLICIT_AUXILIARY, and NONEXPLICIT_CO_NONLINEAR.
 
void compute_shared_dependencies ()
 Compute the shared dependency set and copy it to all eval_flag_set_RHS. Also do something similar with dependency_set_RHS so that all the FEEvaluation objects are initialized. This should only be called for concurrent nonexplicit fieldSolveTypes like NONEXPLICIT_CO_NONLINEAR.
 
void set_initial_condition ()
 Set the initial condition according to subset_attributes. This only applies for PDEType IMPLICIT_TIME_DEPENDENT fields.
 
void print ()
 Print dependency_set_RHS to summary.log.
 

Protected Attributes

const userInputParameters< dim > & user_inputs
 User-inputs.
 
const matrixfreeHandler< dim > & matrix_free_handler
 Matrix-free object handler for non-multigrid data.
 
const triangulationHandler< dim > & triangulation_handler
 Triangulation handler.
 
const invmHandler< dim, degree > & invm_handler
 invm handler.
 
const constraintHandler< dim > & constraint_handler
 Constraint handler.
 
const dofHandler< dim > & dof_handler
 DoF handler.
 
const dealii::MappingQ1< dim > & mapping
 Mappings to and from reference cell.
 
dealii::MGLevelObject< matrixfreeHandler< dim, float > > & mg_matrix_free_handler
 Matrix-free object handler for multigrid data.
 
solutionHandler< dim > & solution_handler
 Solution handler.
 
std::map< unsigned int, variableAttributessubset_attributes
 Subset of variable attributes for fields.
 
std::map< unsigned int, std::unique_ptr< SystemMatrixType > > system_matrix
 PDE operator for the residual side.
 
std::map< unsigned int, std::unique_ptr< SystemMatrixType > > update_system_matrix
 PDE operator for the newton update side.
 

Detailed Description

template<int dim, int degree>
class nonexplicitBase< dim, degree >

Base class for nonexplicit solves.

Member Function Documentation

◆ init()

template<int dim, int degree>
virtual void nonexplicitBase< dim, degree >::init ( )
pure virtual

◆ solve()

template<int dim, int degree>
virtual void nonexplicitBase< dim, degree >::solve ( )
pure virtual

The documentation for this class was generated from the following file: