IFEM  90A354
Public Member Functions | Protected Member Functions | Private Attributes | List of all members
SIMSolverTS< T1 > Class Template Reference

Template class for time-slab adaptive simulator drivers. More...

#include <SIMSolverTS.h>

Inheritance diagram for SIMSolverTS< T1 >:
Inheritance graph
[legend]
Collaboration diagram for SIMSolverTS< T1 >:
Collaboration graph
[legend]

Public Member Functions

 SIMSolverTS (T1 &s1)
 The constructor forwards to the parent class constructor.
 
virtual ~SIMSolverTS ()
 Empty destructor.
 
virtual bool read (const char *file)
 Reads solver data from the specified input file.
 
virtual int solveProblem (char *infile, const char *heading)
 Solves the problem up to the final time.
 
virtual bool serialize (HDF5Restart::SerializeData &data)
 Serialize internal state for restarting purposes. More...
 
- Public Member Functions inherited from SIMSolver< T1 >
 SIMSolver (T1 &s1)
 The constructor initializes the reference to the actual solver.
 
virtual ~SIMSolver ()
 The destructor deletes the restart data handler.
 
const TimeStepgetTimePrm () const
 Returns a const reference to the time stepping information.
 
bool advanceStep ()
 Advances the time step one step forward.
 
void handleDataOutput (const std::string &hdf5file, const ProcessAdm &modelAdm, int saveInterval=1, int restartInterval=0)
 Handles application data output. More...
 
virtual bool deSerialize (const HDF5Restart::SerializeData &data)
 Set internal state from a serialized state. More...
 
int restart (const std::string &restartFile, int restartStep)
 Handles application restarts by reading a serialized solver state. More...
 
- Public Member Functions inherited from SIMSolverStat< T1 >
 SIMSolverStat (T1 &s1, const char *head=nullptr)
 The constructor initializes the reference to the actual solver.
 
virtual ~SIMSolverStat ()
 The destructor deletes the results data exporter object.
 
void handleDataOutput (const std::string &hdf5file, const ProcessAdm &modelAdm, int saveInterval=1)
 Handles application data output. More...
 
- Public Member Functions inherited from SIMadmin
virtual ~SIMadmin ()
 Empty destructor.
 
virtual bool preprocess (const IntVec &ignored={}, bool fixDup=false)
 Performs some pre-processing tasks on the FE model.
 
virtual bool preprocessC (const IntVec &, bool, double=0.0)
 Performs some pre-processing tasks on the FE model.
 
const ProcessAdmgetProcessAdm () const
 Returns the parallel process administrator.
 
int getGlobalProcessID () const
 Returns the global process ID. More...
 
const std::string & getHeading () const
 Returns the simulator heading.
 
void setHeading (const std::string &heading)
 Defines the simulator heading.
 
void printHeading (int &supStep) const
 Prints the heading of this simulator, if any, to IFEM::cout.
 
- Public Member Functions inherited from XMLInputBase
bool readXML (const char *fileName, bool verbose=true)
 Reads an XML input file. More...
 
bool loadXML (const char *xml)
 Loads data from an XML-formatted text string. More...
 

Protected Member Functions

virtual bool parse (const tinyxml2::XMLElement *elem)
 Parses a data section from an XML element.
 
bool dumpMesh (char *infile, bool done=true) const
 Dumps the refined LR-mesh to file.
 
- Protected Member Functions inherited from SIMSolver< T1 >
virtual bool parse (char *keyw, std::istream &is)
 Parses a data section from an input stream.
 
bool saveState (int &geoBlk, int &nBlock, bool newMesh=false, char *infile=nullptr, bool saveRes=true)
 Saves geometry and results to VTF and HDF5 for current time step.
 
- Protected Member Functions inherited from SIMSolverStat< T1 >
void printHeading (const char *heading)
 Writes an application-specific heading, if provided.
 
- Protected Member Functions inherited from SIMadmin
 SIMadmin (const char *heading=nullptr)
 The default constructor initializes the process administrator.
 
 SIMadmin (SIMadmin &anotherSIM)
 Copy constructor.
 
- Protected Member Functions inherited from XMLInputBase
const tinyxml2::XMLElement * loadFile (tinyxml2::XMLDocument &doc, const char *fileName, bool verbose=false)
 Loads an XML input file into a tinyxml2::XMLDocument object. More...
 
virtual const char ** getPrioritizedTags () const
 Returns a list of prioritized XML-tags.
 

Private Attributes

size_t nForward
 Number of steps to advance on new mesh.
 
size_t nPredict
 Number of steps to use for prediction.
 
int maxPred
 Maximum number of prediction cycles.
 
int maxRef
 Number of refinements to allow for a single element.
 
int preRef
 Number of pre-refinement cycles.
 
double refTol
 Pre-refinement threshold.
 
double minFrac
 Element-level refinement threshold.
 
double beta
 Percentage of elements to refine.
 
double aStart
 Time from where to check for mesh adaptation.
 
char dumpGrid
 Option for mesh output: 0=none, 1=last, 2=all.
 
int lastRLev
 Restart time level for last mesh refinement.
 

Additional Inherited Members

- Public Attributes inherited from SIMadmin
SIMoptionsopt
 Simulation control parameters.
 
- Static Public Attributes inherited from SIMadmin
static int msgLevel = 2
 Controls the console output amount during solving.
 
- Protected Types inherited from SIMadmin
using IntVec = std::vector< int >
 Convenience alias.
 
- Protected Attributes inherited from SIMSolver< T1 >
bool dumpLog
 Set to true, to print out dump time levels.
 
TimeStep tp
 Time stepping information.
 
HDF5RestartrestartAdm
 Administrator for restart output.
 
ProcessAdmrestartProcAdm
 Process admin used for restart output.
 
int startRstLevel
 Initial time level for the restart output.
 
- Protected Attributes inherited from SIMSolverStat< T1 >
T1S1
 The actual solver.
 
DataExporterexporter
 Administrator for result output to HDF5 file.
 
int startExpLevel
 Initial time level for the DataExporter.
 
- Protected Attributes inherited from SIMadmin
ProcessAdm adm
 Parallel administrator.
 
int myPid
 Processor ID in parallel simulations.
 
int nProc
 Number of processors in parallel simulations.
 
std::string myHeading
 Heading written before reading the input file.
 

Detailed Description

template<class T1>
class SIMSolverTS< T1 >

Template class for time-slab adaptive simulator drivers.

This template can be instantiated over any type implementing the ISolver interface. It provides a time stepping loop with data output, with mesh refinements at fixed time intervals. The refinement is based on the solution state a given number of increments ahead of the refinement time. The solution is then recomputed on the refined mesh after each refinement, starting from the time at which the refinement took place.

Member Function Documentation

◆ serialize()

template<class T1 >
virtual bool SIMSolverTS< T1 >::serialize ( HDF5Restart::SerializeData data)
inlinevirtual

Serialize internal state for restarting purposes.

Parameters
dataContainer for serialized data

Reimplemented from SIMSolver< T1 >.

References SIMSolverTS< T1 >::lastRLev, SIMSolverStat< T1 >::S1, and SIMSolver< T1 >::serialize().


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