SAMRAI::algs::ImplicitIntegrator< DIM > Class Template Reference
Manage implicit time integration over an AMR patch hierarchy.
More...
#include <source/algorithm/implicit/ImplicitIntegrator.h>
Inheritance diagram for SAMRAI::algs::ImplicitIntegrator< DIM >:
[legend]List of all members.
Detailed Description
template<int DIM>
class SAMRAI::algs::ImplicitIntegrator< DIM >
Manage implicit time integration over an AMR patch hierarchy.
Class ImplicitIntegrator<DIM> manages implicit time integration over an AMR patch hierarchy. It maintains references to ImplicitEquationStrategy<DIM> and solv::NonlinearSolverStrategy<DIM> objects, which provide operations describing the implicit equations and solving the problem at each time step, respectively. When a time step is performed, data on all levels is integrated through the same time increment.
Initialization of an ImplicitIntegrator<DIM> object is performed via a combination of default parameters and values read from input. Data read from input is summarized as follows:
Required input keys and data types:
- Parameters:
-
| initial_time | double value for the initial simulation time. |
| final_time | double value for the final simulation time. |
| max_integrator_steps | integer value for the maximum number of timesteps allowed. |
All input data items described above, except for initial_time, may be overwritten by new input values when continuing from restart.
A sample input file entry might look like:
initial_time = 0.0
final_time = 1.0
max_integrator_steps = 100
- See also:
- algs::ImplicitEquationStrategy
solv::NonlinearSolverStrategy
Constructor & Destructor Documentation
|
The constructor for ImplicitIntegrator<DIM> initializes the default state of the integrator. The integrator is configured with the concrete strategy objects in the argument list that provide operations related to the nonlinear solver and implicit equations to solve. Data members are initialized from the input and restart databases.
Note that no vectors are created in the constructor. Vectors are created and the nonlinear solver is initialized in the initialize() member function.
If assertion checking is turned on, an unrecoverable assertion will result if any of the database, strategy, or hierarchy pointers is null. Exceptions may also be thrown if any checks for consistency among input parameters fail. |
|
Empty destructor for ImplicitIntegrator<DIM> |
Member Function Documentation
|
Initialize state of time integrator. This includes creating solution vector and initializing solver components. |
|
Integrate entire patch hierarchy through the specified time increment.
Integrate entire patch hierarchy through the specified time increment. The time advance assumes the use of a nonlinear solver to implicitly integrate the discrete equations. The integer return value is the return code generated by the particular solver package in use. It is the user's responsibility to interpret this code in a manner consistent with the solver she is using.
The boolean first_step argument is true when this is the very first call to the advance function or if the call occurs immediately after the hierarchy has changed due to regridding. Otherwise it is false. Note that, when the argument is true, the use of extrapolation to construct the initial guess for the advanced solution may not be possible.
- Parameters:
-
| dt | Time step size |
| first_step | Whether this is the first step after grid change |
- Returns:
- value is the return code generated by the particular solver package in use
|
|
Return time increment for next solution advance. Timestep selection is generally based on whether the nonlinear solution iteration converged and, if so, whether the solution meets some user-defined criteria. This routine assumes that, before it is called, the routine checkNewSolution() was called. The boolean argument is the return value from that call. The integer argument is the return code generated by the nonlinear solver package that computed the solution. |
|
Check time advanced solution to determine whether it is acceptable. Return true if the solution is acceptable; return false otherwise. The integer argument is the return code generated by the call to the nonlinear solver "solve" routine. The meaning of this value depends on the particular nonlinear solver in use and must be intepreted properly by the user-supplied solution checking routine. |
|
Update solution (e.g., reset pointers for solution data, update dependent variables, etc.) after time advance. It is assumed that when this routine is invoked, an acceptable new solution has been computed. The double return value is the simulation time corresponding to the advanced solution. |
|
Return initial integration time. |
|
Return final integration time. |
|
Return current integration time. |
|
Return current integration step number. |
|
Return maximum number of integration steps. |
|
Return true if the number of integration steps performed by the integrator has not reached the specified maximum; return false otherwise. |
|
Print out all members of integrator instance to given output stream. |
|
Write out state of object to given database.
When assertion checking is active, the database pointer must be non-null. |
The documentation for this class was generated from the following files:
Generated on Fri Dec 2 11:22:39 2005 for SAMRAI by
1.4.2