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

Explicit Runge-Kutta based time stepping for SIM classes. More...

#include <SIMExplicitRK.h>

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

Public Member Functions

 SIMExplicitRK (Solver &solv, Method type, bool standalone=true)
 Constructor. More...
 
const ProcessAdmgetProcessAdm () const
 Returns the parallel process administrator. More...
 
virtual bool solveStep (TimeStep &tp)
 Computes the solution for the current time step. More...
 
bool solveRK (Vectors &stages, const TimeStep &tp)
 Applies the Runge-Kutta scheme. 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.
 
RKTableaux RK
 Tableaux of Runge-Kutta coefficients.
 
bool alone
 If true, this is a standalone solver.
 
bool linear = false
 If true mass matrix is constant.
 

Detailed Description

template<class Solver>
class TimeIntegration::SIMExplicitRK< Solver >

Explicit Runge-Kutta based time stepping for SIM classes.

Template can be instanced over any SIM implementing ISolver, and which derive from SIMbase.

Constructor & Destructor Documentation

◆ SIMExplicitRK()

template<class Solver >
TimeIntegration::SIMExplicitRK< Solver >::SIMExplicitRK ( Solver &  solv,
Method  type,
bool  standalone = true 
)
inline

Member Function Documentation

◆ advanceStep()

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

Advances the time step one step forward.

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

◆ deSerialize()

template<class Solver >
bool TimeIntegration::SIMExplicitRK< 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::SIMExplicitRK< Solver >::solver.

◆ getProcessAdm()

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

Returns the parallel process administrator.

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

◆ registerFields()

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

Registers fields for output to a data exporter.

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

◆ saveModel()

template<class Solver >
bool TimeIntegration::SIMExplicitRK< 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::SIMExplicitRK< Solver >::solver.

◆ saveStep()

template<class Solver >
bool TimeIntegration::SIMExplicitRK< 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::SIMExplicitRK< Solver >::solver.

◆ serialize()

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

Serialize internal state for restarting purposes.

Parameters
dataContainer for serialized data

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

◆ solveRK()

template<class Solver >
bool TimeIntegration::SIMExplicitRK< Solver >::solveRK ( Vectors stages,
const TimeStep tp 
)
inline

◆ solveStep()

template<class Solver >
virtual bool TimeIntegration::SIMExplicitRK< Solver >::solveStep ( TimeStep tp)
inlinevirtual

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