|
IFEM
90A354
|
Explicit linear multistep time stepping for SIM classes. More...
#include <SIMExplicitLMM.h>

Public Member Functions | |
| SIMExplicitLMM (Solver &solv, Method type, bool standalone=true, const std::string &solField="") | |
| Constructor. More... | |
| ~SIMExplicitLMM () | |
| Destructor frees up the load vectors. | |
| const ProcessAdm & | getProcessAdm () const |
| Returns the parallel process administrator. More... | |
| bool | solveStep (TimeStep &tp) |
| Computes the solution for the current time step. More... | |
| bool | advanceStep (TimeStep &tp) |
| Advances the time step one step forward. More... | |
| bool | saveModel (char *fileName, int &geoBlk, int &nBlock) |
| Opens a new VTF-file and writes the model geometry to it. More... | |
| bool | saveStep (const TimeStep &tp, int &nBlock) |
| Saves the converged results of a given time step to VTF file. More... | |
| void | registerFields (DataExporter &exporter) |
| Registers fields for output to a data exporter. More... | |
| bool | serialize (std::map< std::string, std::string > &data) |
| Serialize internal state for restarting purposes. More... | |
| bool | deSerialize (const std::map< std::string, std::string > &data) |
| Set internal state from a serialized state. More... | |
| void | setLinear (bool enable) |
| Mark operator as linear to avoid repeated assembly and factorization. | |
Protected Attributes | |
| Solver & | solver |
| Reference to simulator. | |
| std::vector< SystemVector * > | loads |
| Unscaled load vectors. | |
| int | order |
| Order of method. | |
| bool | alone |
| If true, this is a standalone solver. | |
| const std::string | fieldName |
| Name of primary solution fields (for ICs) | |
| bool | hasICs = false |
| If true, start with full order. | |
| bool | linear = false |
| If true, mass matrix is constant. | |
Explicit linear multistep time stepping for SIM classes.
Template can be instanced over any SIM implementing ISolver,
|
inline |
Constructor.
| solv | The simulator to do time stepping for |
| type | The linear multistep scheme to use |
| standalone | If true, this is a standalone solver |
| solField | Name of primary solution fields (for ICs) |
References TimeIntegration::AB2, TimeIntegration::AB3, TimeIntegration::AB4, TimeIntegration::AB5, TimeIntegration::SIMExplicitLMM< Solver >::loads, and TimeIntegration::SIMExplicitLMM< Solver >::order.
|
inline |
Advances the time step one step forward.
References TimeDomain::dt, TimeIntegration::SIMExplicitLMM< Solver >::fieldName, TimeIntegration::SIMExplicitLMM< Solver >::hasICs, TimeIntegration::SIMExplicitLMM< Solver >::loads, TimeIntegration::SIMExplicitLMM< Solver >::order, TimeIntegration::SIMExplicitLMM< Solver >::solver, TimeStep::step, TimeDomain::t, and TimeStep::time.
|
inline |
Set internal state from a serialized state.
| [in] | data | Container for serialized data |
References TimeIntegration::SIMExplicitLMM< Solver >::solver.
|
inline |
Returns the parallel process administrator.
References TimeIntegration::SIMExplicitLMM< Solver >::solver.
|
inline |
Registers fields for output to a data exporter.
References TimeIntegration::SIMExplicitLMM< Solver >::solver.
|
inline |
Opens a new VTF-file and writes the model geometry to it.
| [in] | fileName | File name used to construct the VTF-file name from |
| [out] | geoBlk | Running geometry block counter |
| [out] | nBlock | Running result block counter |
References TimeIntegration::SIMExplicitLMM< Solver >::solver.
|
inline |
Saves the converged results of a given time step to VTF file.
| [in] | tp | Time stepping parameters |
| [in] | nBlock | Running VTF block counter |
References TimeIntegration::SIMExplicitLMM< Solver >::solver.
|
inline |
Serialize internal state for restarting purposes.
| data | Container for serialized data |
References TimeIntegration::SIMExplicitLMM< Solver >::solver.
|
inline |
Computes the solution for the current time step.
References TimeIntegration::SIMExplicitLMM< Solver >::alone, TimeDomain::dt, TimeIntegration::SIMExplicitLMM< Solver >::hasICs, TimeIntegration::SIMExplicitLMM< Solver >::linear, TimeIntegration::SIMExplicitLMM< Solver >::loads, TimeIntegration::SIMExplicitLMM< Solver >::order, TimeIntegration::SIMExplicitLMM< Solver >::solver, TimeStep::step, TimeDomain::t, and TimeStep::time.