Explicit Runge-Kutta temporal solver Note: Dormand45 currently will not work correctly with limiters on (limiters overwrite the stage variable data in-place)
More...
Explicit Runge-Kutta temporal solver Note: Dormand45 currently will not work correctly with limiters on (limiters overwrite the stage variable data in-place)
|
| def | __init__ (self, name, scheme, spatial_solvers=[], variable_adjusters=[]) |
| |
| def | name (self, stage=None) |
| |
| def | attrs (self, stage=None) |
| |
| def | generate (self, start=None, stop=None, stride=1, explode_name=True, explode_args=True) |
| |
| def | create_integrating_controller (self, patch_process_integrator_creator, integrator_app_creator, init_dt=1e-2, max_dt=None, max_growth=None, error_tol=1, max_error=1, kappa=0.9, stability_limit=False) |
| | Helper for creating an error-adaptive integrating controller for this ERK scheme.
|
| |
| def | __init__ (self, name, req_attrs, opt_attrs=None, variables=None) |
| |
| def | variables (self) |
| |
◆ __init__()
| def warpy.host_actions.erk.erk.__init__ |
( |
|
self, |
|
|
|
name, |
|
|
|
scheme, |
|
|
|
spatial_solvers = [], |
|
|
|
variable_adjusters = [] |
|
) |
| |
◆ attrs()
| def warpy.host_actions.erk.erk.attrs |
( |
|
self, |
|
|
|
stage = None |
|
) |
| |
◆ create_integrating_controller()
| def warpy.host_actions.erk.erk.create_integrating_controller |
( |
|
self, |
|
|
|
patch_process_integrator_creator, |
|
|
|
integrator_app_creator, |
|
|
|
init_dt = 1e-2, |
|
|
|
max_dt = None, |
|
|
|
max_growth = None, |
|
|
|
error_tol = 1, |
|
|
|
max_error = 1, |
|
|
|
kappa = 0.9, |
|
|
|
stability_limit = False |
|
) |
| |
Helper for creating an error-adaptive integrating controller for this ERK scheme.
Note that currently this function is only defined for the Dormand45 scheme. This helper assumes all variables/components will be using the same type of metric for computing an error estimate.
- Parameters
-
| patch_process_integrator_creator | functor which creates a patch_process_integrator. Has the signature patch_process_integrator_creator(name, spatial_order, applications, on_subdomains) |
| integrator_app_creator | functor which creates an integrator app. Has the signature integrator_app_creator(name, variables, stage_a, stage_b, variables_components) |
| init_dt | |
| init_dt | initial time step |
| max_dt | maximum allowed time step |
| max_growth | maximum rate the time step is allowed to grow |
| error_tol | what the desired error tolerance level is |
| max_error | what error level the controller should retry a timestep with a smaller timestep |
| kappa | specific controller parameter. Use the default value unless you know why you want to change it. |
| stability_limit | True if the integrating controller should take the min of the stability-based timestep and error-based timestep, or false if only the error-based timestep should be used. |
◆ generate()
| def warpy.host_actions.erk.erk.generate |
( |
|
self, |
|
|
|
start = None, |
|
|
|
stop = None, |
|
|
|
stride = 1, |
|
|
|
explode_name = True, |
|
|
|
explode_args = True |
|
) |
| |
◆ name()
| def warpy.host_actions.erk.erk.name |
( |
|
self, |
|
|
|
stage = None |
|
) |
| |
◆ num_copies
| warpy.host_actions.erk.erk.num_copies |
◆ output_stage
| warpy.host_actions.erk.erk.output_stage |
◆ rk_num_copies
| dict warpy.host_actions.erk.erk.rk_num_copies |
|
static |
Initial value:= {
"RK1": 2,
"RK2": 3,
"TVDRK2": 3,
"RK3": 4,
"RK4": 5,
"SSPRK3": 4,
"Dormand45": 8
}
◆ rk_output_stage
| dict warpy.host_actions.erk.erk.rk_output_stage |
|
static |
Initial value:= {
"RK1": 1,
"RK2": 2,
"TVDRK2": 2,
"RK3": 3,
"RK4": 4,
"SSPRK3": 3,
"Dormand45": 6
}
◆ scheme
| warpy.host_actions.erk.erk.scheme |
◆ spatial_solvers
| warpy.host_actions.erk.erk.spatial_solvers |
◆ variable_adjusters
| warpy.host_actions.erk.erk.variable_adjusters |
The documentation for this class was generated from the following file:
- tools/warpy/host_actions/erk.py