SAMRAI::algs::ImplicitEquationStrategy< DIM > Class Template Reference

Abstract base class defining the interface between ImplicitIntegrator<DIM> object and routines specific to the system of equations to be solved. More...

#include <source/algorithm/implicit/ImplicitEquationStrategy.h>

List of all members.

Public Member Functions

 ImplicitEquationStrategy ()
virtual ~ImplicitEquationStrategy ()
virtual void setupSolutionVector (tbox::Pointer< solv::SAMRAIVectorReal< DIM, double > > solution)=0
virtual double getInitialDt ()=0
virtual double getNextDt (const bool good_solution, const int solver_retcode)=0
virtual void setInitialGuess (const bool first_step, const double current_time, const double current_dt, const double old_dt)=0
virtual bool checkNewSolution (const int solver_retcode)=0
virtual void updateSolution (const double new_time)=0


Detailed Description

template<int DIM>
class SAMRAI::algs::ImplicitEquationStrategy< DIM >

Abstract base class defining the interface between ImplicitIntegrator<DIM> object and routines specific to the system of equations to be solved.

This is an abstract base class defining the interface between ImplicitIntegrator<DIM> object and routines specific to the system of equations to be solved. These methods include defining the components which comprise the state of the nonlinear solution vector, computing time increments used in the implicit integration process, testing whether a newly computed solution is acceptable, etc. The interface follows the Strategy design pattern. The methods declared in the interface are provided in a user-supplied concrete equation class derived from this base class.

See also:
algs::ImplicitIntegrator


Constructor & Destructor Documentation

template<int DIM>
SAMRAI::algs::ImplicitEquationStrategy< DIM >::ImplicitEquationStrategy (  ) 

Empty constructor for ImplicitEquationStrategy<DIM>.

template<int DIM>
SAMRAI::algs::ImplicitEquationStrategy< DIM >::~ImplicitEquationStrategy (  )  [virtual]

Empty destructor for ImplicitEquationStrategy<DIM>


Member Function Documentation

template<int DIM>
virtual void SAMRAI::algs::ImplicitEquationStrategy< DIM >::setupSolutionVector ( tbox::Pointer< solv::SAMRAIVectorReal< DIM, double > >  solution  )  [pure virtual]

Add components to the solution vector to define the state of the solution for the implicit time integrator.

template<int DIM>
virtual double SAMRAI::algs::ImplicitEquationStrategy< DIM >::getInitialDt (  )  [pure virtual]

Return time increment for advancing the solution at the first timestep.

template<int DIM>
virtual double SAMRAI::algs::ImplicitEquationStrategy< DIM >::getNextDt ( const bool  good_solution,
const int  solver_retcode 
) [pure virtual]

Return time increment for next solution advance based on the arguments provided. The boolean argument good_solution is the return value from the checkNewSolution() routine. It should be assumed that that routine is invoked prior to a call to this function. The integer argument solver_retcode is the return code generated by the nonlinear solver package that computed the solution. It is the responsibility of the subclass of this base class to interpret the arguments properly when determining the time step.

template<int DIM>
virtual void SAMRAI::algs::ImplicitEquationStrategy< DIM >::setInitialGuess ( const bool  first_step,
const double  current_time,
const double  current_dt,
const double  old_dt 
) [pure virtual]

Set initial guess for time advanced solution vector. The first_step is true if the subsequent time advance is the first in the simulation, or if it immediately follows a regridding of the patch hierarchy. In either case, extrapolation of the solution may not be possible since there may be no old solution to use. Otherwise, first_step is false. The current_time argument is the current solution time. The current_dt and old_dt arguments represent the time increments used in the cuurent and previous advances, respectively. Thus, the new integration time to which we will attempt to advance the solution will be current_time + current_dt.

template<int DIM>
virtual bool SAMRAI::algs::ImplicitEquationStrategy< DIM >::checkNewSolution ( const int  solver_retcode  )  [pure virtual]

Return true if the most recently computed time advanced solution is acceptable. Otherwise, return false. The integer argument is the return code generated by the nonlinear solver package that computed the solution. It is the responsibility of the subclass of this base class to interpret that return code properly.

template<int DIM>
virtual void SAMRAI::algs::ImplicitEquationStrategy< DIM >::updateSolution ( const double  new_time  )  [pure virtual]

Assuming that an acceptable time advanced solution has been found, update the state of the solution (e.g., reset solution pointers) and all dependent variables. The argument is the integration time to which the new solution corresponds.


The documentation for this class was generated from the following files:
Generated on Thu Jun 18 11:28:20 2009 for SAMRAI by  doxygen 1.5.1