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

#include <solver_base.h>

Inheritance diagram for SolverBase< dim, degree, number >:
[legend]
Collaboration diagram for SolverBase< dim, degree, number >:
[legend]

Public Member Functions

 SolverBase (SolveGroup _solve_group, const SolveContext< dim, degree, number > &_solve_context)
 Constructor.
 
virtual ~SolverBase ()=default
 Destructor.
 
 SolverBase (const SolverBase &solver_base)=delete
 Copy constructor.
 
SolverBaseoperator= (const SolverBase &solver_base)=delete
 Copy assignment.
 
 SolverBase (SolverBase &&solver_base) noexcept=delete
 Move constructor.
 
SolverBaseoperator= (SolverBase &&solver_base) noexcept=delete
 Move assignment.
 
virtual void init (const std::list< DependencyMap > &all_dependeny_sets)
 Initialize the solver.
 
virtual void reinit ()
 Reinitialize the solution vectors & apply constraints.
 
virtual void solve_level (unsigned int relative_level=0)
 Solve one level.
 
virtual void solve ()
 Solve for a single update step.
 
virtual void update ()
 Update the fields.
 
virtual void update_ghosts ()
 Update the ghosts.
 
void prepare_for_solution_transfer ()
 Prepare for solution transfer (for AMR).
 
void execute_solution_transfer ()
 Execute solution transfer (for AMR).
 
virtual void print ()
 Print information about the solver to summary.log.
 
void set_initial_condition ()
 Set the initial conditions.
 
const GroupSolutionHandler< dim, number > & get_solution_manager () const
 Get the solution handler.
 
GroupSolutionHandler< dim, number > & get_solution_manager ()
 Get the solution handler.
 
const SolveGroupget_solve_group () const
 Get the solver context.
 

Protected Attributes

SolveGroup solve_group
 Information about the solve group this handler is responsible for.
 
const SolveContext< dim, degree, number > * solve_context
 Solver context provides access to external information.
 
GroupSolutionHandler< dim, numbersolutions
 Solution vectors for fields handled by this solver.
 
std::vector< SolverBase< dim, degree, number > * > aux_solvers
 

Constructor & Destructor Documentation

◆ SolverBase() [1/3]

template<unsigned int dim, unsigned int degree, typename number >
SolverBase< dim, degree, number >::SolverBase ( SolveGroup  _solve_group,
const SolveContext< dim, degree, number > &  _solve_context 
)
inline

Constructor.

◆ ~SolverBase()

template<unsigned int dim, unsigned int degree, typename number >
virtual SolverBase< dim, degree, number >::~SolverBase ( )
virtualdefault

Destructor.

◆ SolverBase() [2/3]

template<unsigned int dim, unsigned int degree, typename number >
SolverBase< dim, degree, number >::SolverBase ( const SolverBase< dim, degree, number > &  solver_base)
delete

Copy constructor.

Deleted so solver instances aren't copied.

◆ SolverBase() [3/3]

template<unsigned int dim, unsigned int degree, typename number >
SolverBase< dim, degree, number >::SolverBase ( SolverBase< dim, degree, number > &&  solver_base)
deletenoexcept

Move constructor.

Deleted so solver instances aren't moved.

Member Function Documentation

◆ execute_solution_transfer()

template<unsigned int dim, unsigned int degree, typename number >
void SolverBase< dim, degree, number >::execute_solution_transfer ( )
inline

Execute solution transfer (for AMR).

◆ get_solution_manager() [1/2]

template<unsigned int dim, unsigned int degree, typename number >
GroupSolutionHandler< dim, number > & SolverBase< dim, degree, number >::get_solution_manager ( )
inline

Get the solution handler.

◆ get_solution_manager() [2/2]

template<unsigned int dim, unsigned int degree, typename number >
const GroupSolutionHandler< dim, number > & SolverBase< dim, degree, number >::get_solution_manager ( ) const
inline

Get the solution handler.

◆ get_solve_group()

template<unsigned int dim, unsigned int degree, typename number >
const SolveGroup & SolverBase< dim, degree, number >::get_solve_group ( ) const
inline

Get the solver context.

◆ init()

template<unsigned int dim, unsigned int degree, typename number >
virtual void SolverBase< dim, degree, number >::init ( const std::list< DependencyMap > &  all_dependeny_sets)
inlinevirtual

◆ operator=() [1/2]

template<unsigned int dim, unsigned int degree, typename number >
SolverBase & SolverBase< dim, degree, number >::operator= ( const SolverBase< dim, degree, number > &  solver_base)
delete

Copy assignment.

Deleted so solver instances aren't copied.

◆ operator=() [2/2]

template<unsigned int dim, unsigned int degree, typename number >
SolverBase & SolverBase< dim, degree, number >::operator= ( SolverBase< dim, degree, number > &&  solver_base)
deletenoexcept

Move assignment.

Deleted so solver instances aren't moved.

◆ prepare_for_solution_transfer()

template<unsigned int dim, unsigned int degree, typename number >
void SolverBase< dim, degree, number >::prepare_for_solution_transfer ( )
inline

Prepare for solution transfer (for AMR).

◆ print()

template<unsigned int dim, unsigned int degree, typename number >
virtual void SolverBase< dim, degree, number >::print ( )
inlinevirtual

Print information about the solver to summary.log.

◆ reinit()

template<unsigned int dim, unsigned int degree, typename number >
virtual void SolverBase< dim, degree, number >::reinit ( )
inlinevirtual

Reinitialize the solution vectors & apply constraints.

Reimplemented in LinearSolver< dim, degree, number >, and NewtonSolver< dim, degree, number >.

◆ set_initial_condition()

template<unsigned int dim, unsigned int degree, typename number >
void SolverBase< dim, degree, number >::set_initial_condition ( )
inline

Set the initial conditions.

◆ solve()

template<unsigned int dim, unsigned int degree, typename number >
virtual void SolverBase< dim, degree, number >::solve ( )
inlinevirtual

Solve for a single update step.

◆ solve_level()

template<unsigned int dim, unsigned int degree, typename number >
virtual void SolverBase< dim, degree, number >::solve_level ( unsigned int  relative_level = 0)
inlinevirtual

◆ update()

template<unsigned int dim, unsigned int degree, typename number >
virtual void SolverBase< dim, degree, number >::update ( )
inlinevirtual

Update the fields.

◆ update_ghosts()

template<unsigned int dim, unsigned int degree, typename number >
virtual void SolverBase< dim, degree, number >::update_ghosts ( )
inlinevirtual

Update the ghosts.

Member Data Documentation

◆ aux_solvers

template<unsigned int dim, unsigned int degree, typename number >
std::vector<SolverBase<dim, degree, number> *> SolverBase< dim, degree, number >::aux_solvers
protected

◆ solutions

template<unsigned int dim, unsigned int degree, typename number >
GroupSolutionHandler<dim, number> SolverBase< dim, degree, number >::solutions
protected

Solution vectors for fields handled by this solver.

◆ solve_context

template<unsigned int dim, unsigned int degree, typename number >
const SolveContext<dim, degree, number>* SolverBase< dim, degree, number >::solve_context
protected

Solver context provides access to external information.

◆ solve_group

template<unsigned int dim, unsigned int degree, typename number >
SolveGroup SolverBase< dim, degree, number >::solve_group
protected

Information about the solve group this handler is responsible for.


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