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