![]() |
PRISMS-PF Manual v3.0-pre
|
Base class for nonexplicit solves. More...
#include <nonexplicit_base.h>
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, variableAttributes > | subset_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. | |
Base class for nonexplicit solves.
|
pure virtual |
Initialize system.
Implemented in nonexplicitAuxiliarySolver< dim, degree >, nonexplicitLinearSolver< dim, degree >, and nonexplicitSelfNonlinearSolver< dim, degree >.
|
pure virtual |
Solve a single update step.
Implemented in nonexplicitAuxiliarySolver< dim, degree >, nonexplicitLinearSolver< dim, degree >, and nonexplicitSelfNonlinearSolver< dim, degree >.