Diffpack Documentation


Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

NonLinEqSolvers Class Reference

switching of various nonlinear solvers to improve convergence. More...

#include <NonLinEqSolvers.h>

Inheritance diagram for NonLinEqSolvers::

HandleId List of all members.

Public Methods

 NonLinEqSolvers (NonLinEqSolvers_prm &parameters)
bool redim (NonLinEqSolvers_prm &parameters)
NonLinEqSolveroperator() (int i)
const NonLinEqSolveroperator() (int i) const
NonLinEqSolvercurrentSolver ()
void setCurrentSolver (int i)
int getCurrentSolver () const
bool converged ()
real getEps () const
int getTotalNoIter () const
void attachUserCode (NonLinEqSolverUDC &user_code)
void attachNonLinSol (LinEqVector &nonlinear_solution)
void attachNonLinSol (Vector(NUMT) &nonlinear_solution)
void attachLinSol (LinEqVector &linear_subproblem_solution)
void attachLinSol (Vector(NUMT) &linear_subproblem_solution)
void attachResidual (LinEqVector &residual)
void attachResidual (Vector(NUMT) &residual)
void attachMatrix (LinEqMatrix &coeff_matrix)
void attachMatrix (Matrix(NUMT) &coeff_matrix)
bool solve ()
void initSingleStep ()
bool singleStep ()
void plotEps (CurvePlotFile &file)
void plotResidualNorm (CurvePlotFile &file)
void writeResults (StringList &results)
void writeExtendedResults (MultipleReporter &rep, VerbosityLevel level, CurvePlotFile &cplotfile)
 NonLinEqSolvers ()

Static Public Methods

void writeHeadings (StringList &headings)

Public Attributes

bool continuation_stop

Protected Attributes

VecSimplest(Handle(NonLinEqSolver)) nlsolver
Handle(NonLinEqSolvers_prmnlsolver_prm
int current
real eps
int total_niter

Detailed Description

switching of various nonlinear solvers to improve convergence.

NAME: NonLinEqSolvers - switching of various nonlinear solvers to improve convergence

DESCRIPTION:

The class allows a nonlinear problem to be solved by a collection of standard nonlinear solvers such as the Newton-Raphson method or the successive substitution method (also known as Picard iteration). For example, one can employ the more robust successive substitution method during the first iterations and when convergence is within reach, one can switch to the faster Newton-Raphson scheme. If the iterations diverge, one can switch back again and so on.

The class behaves very much like "NonLinEqSolver" (in fact, a simulation code will hardly distinguish the use of the two).


Constructor & Destructor Documentation

NonLinEqSolvers::NonLinEqSolvers ( NonLinEqSolvers_prm & parameters )
 

There is one constrcutor accepting a "NonLinEqSolvers_prm" object that will do the initialization. There is also a default constructor without arguments, but this should not be used and will result in an error message.

NonLinEqSolvers::NonLinEqSolvers ( )
 

See documentation of one of the overloaded constructor.


Member Function Documentation

void NonLinEqSolvers::attachLinSol ( Vector(NUMT) & linear_subproblem_solution )
 

void NonLinEqSolvers::attachLinSol ( LinEqVector & linear_subproblem_solution )
 

void NonLinEqSolvers::attachMatrix ( Matrix(NUMT) & coeff_matrix )
 

void NonLinEqSolvers::attachMatrix ( LinEqMatrix & coeff_matrix )
 

void NonLinEqSolvers::attachNonLinSol ( Vector(NUMT) & nonlinear_solution )
 

void NonLinEqSolvers::attachNonLinSol ( LinEqVector & nonlinear_solution )
 

void NonLinEqSolvers::attachResidual ( Vector(NUMT) & residual )
 

void NonLinEqSolvers::attachResidual ( LinEqVector & residual )
 

void NonLinEqSolvers::attachUserCode ( NonLinEqSolverUDC & user_code )
 

bool NonLinEqSolvers::converged ( )
 

NonLinEqSolver & NonLinEqSolvers::currentSolver ( ) [inline]
 

int NonLinEqSolvers::getCurrentSolver ( ) const [inline]
 

real NonLinEqSolvers::getEps ( ) const [inline]
 

int NonLinEqSolvers::getTotalNoIter ( ) const [inline]
 

void NonLinEqSolvers::initSingleStep ( )
 

const NonLinEqSolver & NonLinEqSolvers::operator() ( int i ) const [inline]
 

NonLinEqSolver & NonLinEqSolvers::operator() ( int i ) [inline]
 

void NonLinEqSolvers::plotEps ( CurvePlotFile & file )
 

void NonLinEqSolvers::plotResidualNorm ( CurvePlotFile & file )
 

bool NonLinEqSolvers::redim ( NonLinEqSolvers_prm & parameters )
 

void NonLinEqSolvers::setCurrentSolver ( int i ) [inline]
 

bool NonLinEqSolvers::singleStep ( ) [inline]
 

bool NonLinEqSolvers::solve ( )
 

void NonLinEqSolvers::writeExtendedResults ( MultipleReporter & rep,
VerbosityLevel level,
CurvePlotFile & cplotfile )
 

void NonLinEqSolvers::writeHeadings ( StringList & headings ) [static]
 

void NonLinEqSolvers::writeResults ( StringList & results )
 


Member Data Documentation

bool NonLinEqSolvers::continuation_stop
 

int NonLinEqSolvers::current [protected]
 

real NonLinEqSolvers::eps [protected]
 

VecSimplest(Handle(NonLinEqSolver)) NonLinEqSolvers::nlsolver [protected]
 

Handle(NonLinEqSolvers_prm) NonLinEqSolvers::nlsolver_prm [protected]
 

int NonLinEqSolvers::total_niter [protected]
 


The documentation for this class was generated from the following file:
Copyright © 2003 inuTech GmbH. All rights reserved.