IFEM  90A354
Public Member Functions | Protected Attributes | List of all members
TimeIntegration::SIMExplicitLMM< Solver > Class Template Reference

Explicit linear multistep time stepping for SIM classes. More...

#include <SIMExplicitLMM.h>

Collaboration diagram for TimeIntegration::SIMExplicitLMM< Solver >:
Collaboration graph
[legend]

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

Detailed Description

template<class Solver>
class TimeIntegration::SIMExplicitLMM< Solver >

Explicit linear multistep time stepping for SIM classes.

Template can be instanced over any SIM implementing ISolver,

Constructor & Destructor Documentation

◆ SIMExplicitLMM()

template<class Solver >
TimeIntegration::SIMExplicitLMM< Solver >::SIMExplicitLMM ( Solver &  solv,
Method  type,
bool  standalone = true,
const std::string &  solField = "" 
)
inline

Constructor.

Parameters
solvThe simulator to do time stepping for
typeThe linear multistep scheme to use
standaloneIf true, this is a standalone solver
solFieldName of primary solution fields (for ICs)

References TimeIntegration::AB2, TimeIntegration::AB3, TimeIntegration::AB4, TimeIntegration::AB5, TimeIntegration::SIMExplicitLMM< Solver >::loads, and TimeIntegration::SIMExplicitLMM< Solver >::order.

Member Function Documentation

◆ advanceStep()

template<class Solver >
bool TimeIntegration::SIMExplicitLMM< Solver >::advanceStep ( TimeStep tp)
inline

◆ deSerialize()

template<class Solver >
bool TimeIntegration::SIMExplicitLMM< Solver >::deSerialize ( const std::map< std::string, std::string > &  data)
inline

Set internal state from a serialized state.

Parameters
[in]dataContainer for serialized data

References TimeIntegration::SIMExplicitLMM< Solver >::solver.

◆ getProcessAdm()

template<class Solver >
const ProcessAdm& TimeIntegration::SIMExplicitLMM< Solver >::getProcessAdm ( ) const
inline

Returns the parallel process administrator.

References TimeIntegration::SIMExplicitLMM< Solver >::solver.

◆ registerFields()

template<class Solver >
void TimeIntegration::SIMExplicitLMM< Solver >::registerFields ( DataExporter exporter)
inline

Registers fields for output to a data exporter.

References TimeIntegration::SIMExplicitLMM< Solver >::solver.

◆ saveModel()

template<class Solver >
bool TimeIntegration::SIMExplicitLMM< Solver >::saveModel ( char *  fileName,
int &  geoBlk,
int &  nBlock 
)
inline

Opens a new VTF-file and writes the model geometry to it.

Parameters
[in]fileNameFile name used to construct the VTF-file name from
[out]geoBlkRunning geometry block counter
[out]nBlockRunning result block counter

References TimeIntegration::SIMExplicitLMM< Solver >::solver.

◆ saveStep()

template<class Solver >
bool TimeIntegration::SIMExplicitLMM< Solver >::saveStep ( const TimeStep tp,
int &  nBlock 
)
inline

Saves the converged results of a given time step to VTF file.

Parameters
[in]tpTime stepping parameters
[in]nBlockRunning VTF block counter

References TimeIntegration::SIMExplicitLMM< Solver >::solver.

◆ serialize()

template<class Solver >
bool TimeIntegration::SIMExplicitLMM< Solver >::serialize ( std::map< std::string, std::string > &  data)
inline

Serialize internal state for restarting purposes.

Parameters
dataContainer for serialized data

References TimeIntegration::SIMExplicitLMM< Solver >::solver.

◆ solveStep()

template<class Solver >
bool TimeIntegration::SIMExplicitLMM< Solver >::solveStep ( TimeStep tp)
inline

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