|
IFEM
90A354
|
Explicit embedded Runge-Kutta based time stepping for SIM classes. More...
#include <SIMExplicitRKE.h>


Public Member Functions | |
| SIMExplicitRKE (Solver &solv, Method type, double tol) | |
| Constructor. More... | |
| virtual bool | solveStep (TimeStep &tp) |
| Computes the solution for the current time step. More... | |
Public Member Functions inherited from TimeIntegration::SIMExplicitRK< Solver > | |
| SIMExplicitRK (Solver &solv, Method type, bool standalone=true) | |
| Constructor. More... | |
| const ProcessAdm & | getProcessAdm () const |
| Returns the parallel process administrator. 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. | |
Private Attributes | |
| RealArray | bs |
| Runge-Kutta coefficients for embedded method. | |
| double | errTol |
| Truncation error tolerance. | |
Additional Inherited Members | |
Protected Attributes inherited from TimeIntegration::SIMExplicitRK< Solver > | |
| 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. | |
Explicit embedded Runge-Kutta based 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 Runge-Kutta scheme to use |
| tol | Tolerance for ERK truncation error control |
References TimeIntegration::RKTableaux::A, TimeIntegration::RKTableaux::b, TimeIntegration::BOGACKISHAMPINE, TimeIntegration::SIMExplicitRKE< Solver >::bs, TimeIntegration::RKTableaux::c, TimeIntegration::FEHLBERG, TimeIntegration::HEUNEULER, TimeIntegration::RKTableaux::order, utl::matrix< T >::resize(), and TimeIntegration::SIMExplicitRK< Solver >::RK.
|
inlinevirtual |
Computes the solution for the current time step.
Reimplemented from TimeIntegration::SIMExplicitRK< Solver >.
References TimeIntegration::SIMExplicitRKE< Solver >::bs, TimeStep::cutback(), TimeDomain::dt, error(), TimeIntegration::SIMExplicitRKE< Solver >::errTol, TimeIntegration::RKTableaux::order, TimeIntegration::SIMExplicitRK< Solver >::RK, TimeIntegration::SIMExplicitRK< Solver >::solver, TimeIntegration::SIMExplicitRK< Solver >::solveRK(), TimeStep::step, TimeDomain::t, and TimeStep::time.