Alsvinn
0.5.3
The fast FVM simulator with UQ support
|
#include <alsfvm/integrator/RungeKutta3.hpp>
Public Member Functions | |
RungeKutta3 (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 3rd order RungeKutta-integrator. In other words,
alsfvm::integrator::RungeKutta3::RungeKutta3 | ( | alsfvm::shared_ptr< System > | system | ) |
|
virtual |
Returns the number of substeps this integrator uses. For ForwardEuler this is 1, for RK4 this is 4, etc.
Returns the number of substeps this integrator uses. Since this is third order RK, we need three subtimesteps
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) |
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 |
output | where to write the output |
Implements alsfvm::integrator::Integrator.