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

This class handles the explicit solves of all explicit fields. More...

#include <newton_solver.h>

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

Public Member Functions

 NewtonSolver (SolveGroup _solve_group, const SolveContext< dim, degree, number > &_solve_context)
 Constructor.
 
void init (const std::list< DependencyMap > &all_dependeny_sets) override
 Initialize the solver.
 
void reinit () override
 Reinitialize the solver.
 
void solve_level (unsigned int relative_level) override
 Solve for a single update step.
 
- Public Member Functions inherited from LinearSolver< dim, degree, number >
 LinearSolver (SolveGroup _solve_group, const SolveContext< dim, degree, number > &_solve_context)
 Constructor.
 
int do_linear_solve (BlockVector< number > &b_vector, MFOperator< dim, degree, number > &lhs_operator, BlockVector< number > &x_vector)
 
- Public Member Functions inherited from SolverBase< dim, degree, number >
 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 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

std::vector< BlockVector< number > > newton_updates
 
NonlinearSolverParameters newton_params
 
- Protected Attributes inherited from LinearSolver< dim, degree, number >
std::vector< MFOperator< dim, degree, number > > rhs_operators
 Matrix free operators for each level.
 
std::vector< MFOperator< dim, degree, number > > lhs_operators
 
std::vector< BlockVector< number > > rhs_vector
 
- Protected Attributes inherited from SolverBase< dim, degree, number >
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
 

Additional Inherited Members

- Protected Member Functions inherited from LinearSolver< dim, degree, number >
double normalization_value ()
 

Detailed Description

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

This class handles the explicit solves of all explicit fields.

Constructor & Destructor Documentation

◆ NewtonSolver()

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

Constructor.

Member Function Documentation

◆ init()

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

Initialize the solver.

Reimplemented from LinearSolver< dim, degree, number >.

◆ reinit()

template<unsigned int dim, unsigned int degree, typename number >
void NewtonSolver< dim, degree, number >::reinit ( )
inlineoverridevirtual

Reinitialize the solver.

Reimplemented from LinearSolver< dim, degree, number >.

◆ solve_level()

template<unsigned int dim, unsigned int degree, typename number >
void NewtonSolver< dim, degree, number >::solve_level ( unsigned int  relative_level)
inlineoverridevirtual

Solve for a single update step.

Reimplemented from LinearSolver< dim, degree, number >.

Member Data Documentation

◆ newton_params

template<unsigned int dim, unsigned int degree, typename number >
NonlinearSolverParameters NewtonSolver< dim, degree, number >::newton_params
protected

◆ newton_updates

template<unsigned int dim, unsigned int degree, typename number >
std::vector<BlockVector<number> > NewtonSolver< dim, degree, number >::newton_updates
protected

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