Alsvinn
0.5.3
The fast FVM simulator with UQ support
|
#include <alsfvm/integrator/RungeKutta2.hpp>
Public Member Functions | |
RungeKutta2 (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... | |
Does 2nd order RungeKutta-integrator. In other words, this solves the system
by setting
and then for each , we set
and finally set
alsfvm::integrator::RungeKutta2::RungeKutta2 | ( | alsfvm::shared_ptr< System > | system | ) |
Returns the number of substeps this integrator uses. Since this is second order RK, we need two subtimesteps
|
virtual |
Returns the number of substeps this integrator uses. For ForwardEuler this is 1, for RK4 this is 4, etc.
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.