PRISMS-PF Manual
Loading...
Searching...
No Matches
Problem< dim, degree, number > Class Template Reference

This is the main class that handles the construction and solving of user-specified PDEs. More...

#include <problem.h>

Public Member Functions

 Problem (const std::vector< FieldAttributes > &field_attributes, const std::vector< SolveGroup > &solve_groups, const UserInputParameters< dim > &_user_inputs, PhaseFieldTools< dim > &_pf_tools, const PDEOperatorBase< dim, degree, number > &_pde_operator)
 Constructor.
 
void solve ()
 Main time-stepping loop that calls solve_increment, reinit_system, output_results, etc...
 

Private Member Functions

void solve_increment (SimulationTimer &sim_timer)
 Solve a single increment of the given PDEs.
 
void init_system ()
 Initialize the system.
 
void reinit_system ()
 Reinitialize the system.
 

Private Attributes

std::vector< FieldAttributesfield_attributes
 Field attributes.
 
std::vector< SolveGroupsolve_groups
 Solve groups.
 
const UserInputParameters< dim > * user_inputs_ptr
 User-inputs.
 
PhaseFieldTools< dim > * pf_tools
 Phase field tools.
 
TriangulationManager< dimtriangulation_manager
 Triangulation handler.
 
DoFManager< dim, degree > dof_manager
 DoF manager.
 
ConstraintManager< dim, degree, numberconstraint_manager
 Constraint handler.
 
SolveContext< dim, degree, numbersolve_context
 Solver context.
 
std::vector< std::shared_ptr< SolverBase< dim, degree, number > > > solvers
 Solvers.
 
SolutionIndexer< dim, numbersolution_indexer
 Solution indexer.
 
RefinementManager< dim, degree, numbergrid_refiner
 Grid refiner.
 

Detailed Description

template<unsigned int dim, unsigned int degree, typename number>
class Problem< dim, degree, number >

This is the main class that handles the construction and solving of user-specified PDEs.

Constructor & Destructor Documentation

◆ Problem()

template<unsigned int dim, unsigned int degree, typename number >
Problem< dim, degree, number >::Problem ( const std::vector< FieldAttributes > &  field_attributes,
const std::vector< SolveGroup > &  solve_groups,
const UserInputParameters< dim > &  _user_inputs,
PhaseFieldTools< dim > &  _pf_tools,
const PDEOperatorBase< dim, degree, number > &  _pde_operator 
)

Constructor.

Member Function Documentation

◆ init_system()

template<unsigned int dim, unsigned int degree, typename number >
void Problem< dim, degree, number >::init_system ( )
private

Initialize the system.

◆ reinit_system()

template<unsigned int dim, unsigned int degree, typename number >
void Problem< dim, degree, number >::reinit_system ( )
private

Reinitialize the system.

◆ solve()

template<unsigned int dim, unsigned int degree, typename number >
void Problem< dim, degree, number >::solve ( )

Main time-stepping loop that calls solve_increment, reinit_system, output_results, etc...

◆ solve_increment()

template<unsigned int dim, unsigned int degree, typename number >
void Problem< dim, degree, number >::solve_increment ( SimulationTimer sim_timer)
private

Solve a single increment of the given PDEs.

Member Data Documentation

◆ constraint_manager

template<unsigned int dim, unsigned int degree, typename number >
ConstraintManager<dim, degree, number> Problem< dim, degree, number >::constraint_manager
private

Constraint handler.

◆ dof_manager

template<unsigned int dim, unsigned int degree, typename number >
DoFManager<dim, degree> Problem< dim, degree, number >::dof_manager
private

DoF manager.

◆ field_attributes

template<unsigned int dim, unsigned int degree, typename number >
std::vector<FieldAttributes> Problem< dim, degree, number >::field_attributes
private

Field attributes.

◆ grid_refiner

template<unsigned int dim, unsigned int degree, typename number >
RefinementManager<dim, degree, number> Problem< dim, degree, number >::grid_refiner
private

Grid refiner.

◆ pf_tools

template<unsigned int dim, unsigned int degree, typename number >
PhaseFieldTools<dim>* Problem< dim, degree, number >::pf_tools
private

Phase field tools.

◆ solution_indexer

template<unsigned int dim, unsigned int degree, typename number >
SolutionIndexer<dim, number> Problem< dim, degree, number >::solution_indexer
private

Solution indexer.

◆ solve_context

template<unsigned int dim, unsigned int degree, typename number >
SolveContext<dim, degree, number> Problem< dim, degree, number >::solve_context
private

Solver context.

◆ solve_groups

template<unsigned int dim, unsigned int degree, typename number >
std::vector<SolveGroup> Problem< dim, degree, number >::solve_groups
private

Solve groups.

◆ solvers

template<unsigned int dim, unsigned int degree, typename number >
std::vector<std::shared_ptr<SolverBase<dim, degree, number> > > Problem< dim, degree, number >::solvers
private

Solvers.

◆ triangulation_manager

template<unsigned int dim, unsigned int degree, typename number >
TriangulationManager<dim> Problem< dim, degree, number >::triangulation_manager
private

Triangulation handler.

◆ user_inputs_ptr

template<unsigned int dim, unsigned int degree, typename number >
const UserInputParameters<dim>* Problem< dim, degree, number >::user_inputs_ptr
private

User-inputs.


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