dune-pdelab  2.5-dev
Public Types | Public Member Functions | List of all members
Dune::PDELab::StationaryLinearProblemSolver< GO, LS, V > Class Template Reference

#include <dune/pdelab/stationary/linearproblem.hh>

Public Types

typedef StationaryLinearProblemSolverResult< double > Result
 

Public Member Functions

 StationaryLinearProblemSolver (const GO &go, LS &ls, V &x, Real reduction, Real min_defect=1e-99, int verbose=1)
 
 StationaryLinearProblemSolver (const GO &go, LS &ls, Real reduction, Real min_defect=1e-99, int verbose=1)
 
 StationaryLinearProblemSolver (const GO &go, LS &ls, V &x, const ParameterTree &params)
 Construct a StationaryLinearProblemSolver for the given objects and read parameters from a ParameterTree. More...
 
 StationaryLinearProblemSolver (const GO &go, LS &ls, const ParameterTree &params)
 Construct a StationaryLinearProblemSolver for the given objects and read parameters from a ParameterTree. More...
 
void setHangingNodeModifications (bool b)
 Set whether the solver should apply the necessary transformations for calculations on hanging nodes. More...
 
bool hangingNodeModifications () const
 Return whether the solver performs the necessary transformations for calculations on hanging nodes. More...
 
void setKeepMatrix (bool b)
 Set whether the jacobian matrix should be kept across calls to apply(). More...
 
bool keepMatrix () const
 Return whether the jacobian matrix is kept across calls to apply(). More...
 
const Resultresult () const
 
void apply (V &x, bool reuse_matrix=false)
 
void apply (bool reuse_matrix=false)
 
void discardMatrix ()
 Discard the stored Jacobian matrix. More...
 
const Dune::PDELab::LinearSolverResult< double > & ls_result () const
 
Real reduction () const
 
void setReduction (Real reduction)
 

Member Typedef Documentation

◆ Result

template<typename GO , typename LS , typename V >
typedef StationaryLinearProblemSolverResult<double> Dune::PDELab::StationaryLinearProblemSolver< GO, LS, V >::Result

Constructor & Destructor Documentation

◆ StationaryLinearProblemSolver() [1/4]

template<typename GO , typename LS , typename V >
Dune::PDELab::StationaryLinearProblemSolver< GO, LS, V >::StationaryLinearProblemSolver ( const GO &  go,
LS &  ls,
V &  x,
Real  reduction,
Real  min_defect = 1e-99,
int  verbose = 1 
)
inline

◆ StationaryLinearProblemSolver() [2/4]

template<typename GO , typename LS , typename V >
Dune::PDELab::StationaryLinearProblemSolver< GO, LS, V >::StationaryLinearProblemSolver ( const GO &  go,
LS &  ls,
Real  reduction,
Real  min_defect = 1e-99,
int  verbose = 1 
)
inline

◆ StationaryLinearProblemSolver() [3/4]

template<typename GO , typename LS , typename V >
Dune::PDELab::StationaryLinearProblemSolver< GO, LS, V >::StationaryLinearProblemSolver ( const GO &  go,
LS &  ls,
V &  x,
const ParameterTree &  params 
)
inline

Construct a StationaryLinearProblemSolver for the given objects and read parameters from a ParameterTree.

This constructor reads the parameter controlling its operation from a passed-in ParameterTree instead of requiring the user to specify all of them as individual constructor parameters. Currently the following parameters are read:

Name Default Value Explanation
reduction Required relative defect reduction
min_defect 1e-99 minimum absolute defect at which to stop
hanging_node_modifications false perform required transformations for hanging nodes
keep_matrix true keep matrix between calls to apply() (but reassemble values every time)
verbosity 1 control amount of debug output

Apart from reduction, all parameters have a default value and are optional. The actual reduction for a call to apply() is calculated as r = max(reduction,min_defect/start_defect), where start defect is the norm of the residual of x.

◆ StationaryLinearProblemSolver() [4/4]

template<typename GO , typename LS , typename V >
Dune::PDELab::StationaryLinearProblemSolver< GO, LS, V >::StationaryLinearProblemSolver ( const GO &  go,
LS &  ls,
const ParameterTree &  params 
)
inline

Construct a StationaryLinearProblemSolver for the given objects and read parameters from a ParameterTree.

This constructor reads the parameter controlling its operation from a passed-in ParameterTree instead of requiring the user to specify all of them as individual constructor parameters. Currently the following parameters are read:

Name Default Value Explanation
reduction Required relative defect reduction
min_defect 1e-99 minimum absolute defect at which to stop
hanging_node_modifications false perform required transformations for hanging nodes
keep_matrix true keep matrix between calls to apply() (but reassemble values every time)
verbosity 1 control amount of debug output

Apart from reduction, all parameters have a default value and are optional. The actual reduction for a call to apply() is calculated as r = max(reduction,min_defect/start_defect), where start defect is the norm of the residual of x.

Member Function Documentation

◆ apply() [1/2]

template<typename GO , typename LS , typename V >
void Dune::PDELab::StationaryLinearProblemSolver< GO, LS, V >::apply ( V &  x,
bool  reuse_matrix = false 
)
inline

◆ apply() [2/2]

template<typename GO , typename LS , typename V >
void Dune::PDELab::StationaryLinearProblemSolver< GO, LS, V >::apply ( bool  reuse_matrix = false)
inline

◆ discardMatrix()

template<typename GO , typename LS , typename V >
void Dune::PDELab::StationaryLinearProblemSolver< GO, LS, V >::discardMatrix ( )
inline

Discard the stored Jacobian matrix.

◆ hangingNodeModifications()

template<typename GO , typename LS , typename V >
bool Dune::PDELab::StationaryLinearProblemSolver< GO, LS, V >::hangingNodeModifications ( ) const
inline

Return whether the solver performs the necessary transformations for calculations on hanging nodes.

◆ keepMatrix()

template<typename GO , typename LS , typename V >
bool Dune::PDELab::StationaryLinearProblemSolver< GO, LS, V >::keepMatrix ( ) const
inline

Return whether the jacobian matrix is kept across calls to apply().

◆ ls_result()

template<typename GO , typename LS , typename V >
const Dune::PDELab::LinearSolverResult<double>& Dune::PDELab::StationaryLinearProblemSolver< GO, LS, V >::ls_result ( ) const
inline

◆ reduction()

template<typename GO , typename LS , typename V >
Real Dune::PDELab::StationaryLinearProblemSolver< GO, LS, V >::reduction ( ) const
inline

◆ result()

template<typename GO , typename LS , typename V >
const Result& Dune::PDELab::StationaryLinearProblemSolver< GO, LS, V >::result ( ) const
inline

◆ setHangingNodeModifications()

template<typename GO , typename LS , typename V >
void Dune::PDELab::StationaryLinearProblemSolver< GO, LS, V >::setHangingNodeModifications ( bool  b)
inline

Set whether the solver should apply the necessary transformations for calculations on hanging nodes.

◆ setKeepMatrix()

template<typename GO , typename LS , typename V >
void Dune::PDELab::StationaryLinearProblemSolver< GO, LS, V >::setKeepMatrix ( bool  b)
inline

Set whether the jacobian matrix should be kept across calls to apply().

◆ setReduction()

template<typename GO , typename LS , typename V >
void Dune::PDELab::StationaryLinearProblemSolver< GO, LS, V >::setReduction ( Real  reduction)
inline

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