Alsvinn
0.5.3
The fast FVM simulator with UQ support
|
#include <alsfvm/integrator/ForwardEuler.hpp>
Public Member Functions | |
ForwardEuler (alsfvm::shared_ptr< System > system) | |
virtual size_t | getNumberOfSubsteps () const |
virtual real | performSubstep (std::vector< alsfvm::shared_ptr< volume::Volume > > &inputConserved, rvec3 spatialCellSizes, real dt, real cfl, volume::Volume &output, size_t substep, const simulator::TimestepInformation ×tepInformation) |
![]() | |
virtual | ~Integrator () |
real | computeTimestep (const rvec3 &waveSpeeds, const rvec3 &cellLengths, real cfl, const simulator::TimestepInformation ×tepInformation) const |
void | addTimestepAdjuster (alsfvm::shared_ptr< TimestepAdjuster > &adjuster) |
addTimestepAdjuster adds a timestep adjuster More... | |
void | addWaveSpeedAdjuster (WaveSpeedAdjusterPtr adjuster) |
Additional Inherited Members | |
![]() | |
real | adjustTimestep (real dt, const simulator::TimestepInformation ×tepInformation) const |
adjustTimestep adjusts the timesteps according to the timestepsadjusters More... | |
This is the classical ForwardEuler integrator
For each call to performSubstep it computes
where is computed by the numerical flux.
alsfvm::integrator::ForwardEuler::ForwardEuler | ( | alsfvm::shared_ptr< System > | system | ) |
Constructs a new instance.
system | the ODE system to use |
|
virtual |
Implements alsfvm::integrator::Integrator.
|
virtual |
Performs one substep and stores the result to output.
inputConserved | should have the output from the previous invocations in this substep, if this is the first invocation, then this will have one element, second timestep 2 elements, etc. |
spatialCellSizes | should be the cell size in each direction |
dt | is the timestep |
substep | is the currently computed substep, starting at 0. |
output | where to write the output |
cfl | the cfl number to use. |
timestepInformation | the current timestepInformation (needed for current time) |
Implements alsfvm::integrator::Integrator.