|
| | AbstractEulerFVSmooth () |
| |
| virtual void | flux (const double *__restrict__ Q, const tarch::la::Vector< Dimensions, double > &x, int normal, double *__restrict__ F) final |
| |
| virtual void | maxEigenvalue (const double *__restrict__ Q, const tarch::la::Vector< Dimensions, double > &x, int normal, double *__restrict__ lambdaMax) final |
| |
| virtual void | initPointWisely (const tarch::la::Vector< Dimensions, double > &x, double *__restrict__ Q) final |
| |
| | Solver () |
| | The min and max time stamp and the time step size all start at 0, so the very first time step does not advance the solution.
|
| |
| virtual double | getMinTimeStamp () const |
| |
| virtual double | getMaxTimeStamp () const |
| |
| virtual double | getMinTimeStepSize () const |
| |
| virtual double | getMaxTimeStepSize () const |
| |
| virtual double | getAdmissibleTimeStepSize () const |
| | The time step size the solver would use if enforceTimeStepSize() had not been called, i.e.
|
| |
| virtual void | startTimeStep (double globalMinTimeStamp, double globalMaxTimeStamp, double globalMinTimeStepSize, double globalMaxTimeStepSize) |
| | Default implementation: rolls the previous sweep's accumulated _minTimeStampUpdatedThisTimeStep/_maxTimeStampUpdatedThisTimeStep, _minTimeStepSizeUpdatedThisTimeStep/_maxTimeStepSizeUpdatedThisTimeStep and _minVolumeHUpdatedThisTimeStep/_maxVolumeHUpdatedThisTimeStep over into the corresponding global attributes, and resets the UpdatedThisTimeStep accumulators (and _cellUpdates) so the new sweep about to start can accumulate its own contributions via updateCell().
|
| |
| virtual void | finishTimeStep () |
| | Default implementation: MPI-all-reduces the UpdatedThisTimeStep accumulators (min via MPI_MIN, max via MPI_MAX, _cellUpdates via MPI_SUM) across ranks, so every rank's startTimeStep() rolls over the same, globally synchronised values.
|
| |
| virtual void | startPlottingStep (double globalMinTimeStamp, double globalMaxTimeStamp, double globalMinTimeStepSize, double globalMaxTimeStepSize) |
| | Not pure virtual, unlike the other lifecycle hooks above: overriding it is optional.
|
| |
| virtual void | finishPlottingStep () |
| | Not pure virtual -.
|
| |
| virtual double | getMaxMeshSize () const |
| |
| virtual double | getMinMeshSize () const |
| |
| virtual std::string | toCheckpointMetaData () const |
| | Solver state for the header of a checkpoint.
|
| |
| virtual void | fromCheckpointMetaData (const std::string &metaData) |
| | Restore the solver state from the header of a checkpoint.
|
| |
| virtual bool | cellCanUseStatelessPDETerms (const tarch::la::Vector< Dimensions, double > &cellCentre, const tarch::la::Vector< Dimensions, double > &cellH, double t, double dt) const |
| | Default implementation: always returns true, i.e.
|
| |
| void | updateCell (double timeStepSize, double timeStamp) |
| | Thread-safely fold one cell's contribution into this time step's running time stamp and time step size bounds (protected by _semaphore).
|
| |
| void | enforceTimeStepSize (double timeStepSize) |
| | Thread-safely overwrite the current minimum and maximum time step size (protected by _semaphore), i.e.
|
| |
| void | resetTimeStepSize () |
| | Restart the time stepping with a time step size of zero.
|
| |
|
| static GPUCallableMethod void | flux (const double *__restrict__ Q, const tarch::la::Vector< Dimensions, double > &x, int normal, double *__restrict__ F, Offloadable) |
| |
| static GPUCallableMethod void | maxEigenvalue (const double *__restrict__ Q, const tarch::la::Vector< Dimensions, double > &x, int normal, double *__restrict__ lambdaMax, Offloadable) |
| |
| static std::string | toCheckpointMetaDataEntry (const std::string &key, double value) |
| | One line of toCheckpointMetaData()
|
| |
| static bool | getCheckpointMetaDataEntry (const std::string &metaData, const std::string &key, double &value) |
| | Find one entry of a checkpoint's meta data.
|
| |
Definition at line 33 of file AbstractEulerFVSmooth.h.