dune-pdelab  2.0.0
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, V &x, LS &ls, typename V::ElementType reduction, typename V::ElementType min_defect=1e-99, int verbose=1)
 
 StationaryLinearProblemSolver (const GO &go, LS &ls, V &x, typename V::ElementType reduction, typename V::ElementType min_defect=1e-99, int verbose=1)
 
 StationaryLinearProblemSolver (const GO &go, LS &ls, typename V::ElementType reduction, typename V::ElementType 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)
 
void apply ()
 
void discardMatrix ()
 Discard the stored Jacobian matrix. More...
 
const
Dune::PDELab::LinearSolverResult
< double > & 
ls_result () const
 

Member Typedef Documentation

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

Constructor & Destructor Documentation

template<typename GO , typename LS , typename V >
Dune::PDELab::StationaryLinearProblemSolver< GO, LS, V >::StationaryLinearProblemSolver ( const GO &  go,
V &  x,
LS &  ls,
typename V::ElementType  reduction,
typename V::ElementType  min_defect = 1e-99,
int  verbose = 1 
)
inline
Deprecated:
"Use StationaryLinearProblemSolver(const GO&, LS&, V&, ...) instead."
template<typename GO , typename LS , typename V >
Dune::PDELab::StationaryLinearProblemSolver< GO, LS, V >::StationaryLinearProblemSolver ( const GO &  go,
LS &  ls,
V &  x,
typename V::ElementType  reduction,
typename V::ElementType  min_defect = 1e-99,
int  verbose = 1 
)
inline
template<typename GO , typename LS , typename V >
Dune::PDELab::StationaryLinearProblemSolver< GO, LS, V >::StationaryLinearProblemSolver ( const GO &  go,
LS &  ls,
typename V::ElementType  reduction,
typename V::ElementType  min_defect = 1e-99,
int  verbose = 1 
)
inline
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.

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

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

Discard the stored Jacobian matrix.

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.

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().

template<typename GO , typename LS , typename V >
const Dune::PDELab::LinearSolverResult<double>& Dune::PDELab::StationaryLinearProblemSolver< GO, LS, V >::ls_result ( ) const
inline
template<typename GO , typename LS , typename V >
const Result& Dune::PDELab::StationaryLinearProblemSolver< GO, LS, V >::result ( ) const
inline
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.

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().


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