zoomy_core.model.initial_conditions#
Initial conditions (constant, Riemann problems, radial dam break, user function, 3-D projection, restart) applied to the state array of a Model.
Module Contents#
Classes#
Abstract base of initial conditions; subclasses implement |
|
Spatially constant initial state given by |
|
1-D Riemann problem: |
|
2-D Riemann problem: |
|
3-D Riemann problem: |
|
Radial dam break: |
|
Initial state from a user callable |
|
Initial condition from a 3-D profile through the model’s own |
|
Restart from an HDF5 snapshot; a runtime operation handled by the solver, so |
Functions#
Default constant state |
|
Default low (right) state |
|
Default high (left) state |
|
Default user function, identically zero. |
API#
- zoomy_core.model.initial_conditions.default_constant_func(n_variables: int) zoomy_core.misc.custom_types.FArray#
Default constant state
[1, 0, 0, ...].
- zoomy_core.model.initial_conditions.default_low_state(n_variables: int) zoomy_core.misc.custom_types.FArray#
Default low (right) state
[1, 0, ...].
- zoomy_core.model.initial_conditions.default_high_state(n_variables: int) zoomy_core.misc.custom_types.FArray#
Default high (left) state
[2, 0, ...].
- zoomy_core.model.initial_conditions.default_user_function(x: zoomy_core.misc.custom_types.FArray) zoomy_core.misc.custom_types.FArray#
Default user function, identically zero.
- class zoomy_core.model.initial_conditions.InitialConditions(**params)#
Bases:
param.ParameterizedAbstract base of initial conditions; subclasses implement
applyandget_definition.Initialization
- apply(X, Q)#
Abstract: fill
QfromX.
- get_definition(X, p, n_variables)#
Symbolic initial state for C++ code generation; the default is a zero state that the solver overwrites at runtime.
- class zoomy_core.model.initial_conditions.Constant(constants=None, **params)#
Bases:
zoomy_core.model.initial_conditions.InitialConditionsSpatially constant initial state given by
constants(n_variables).Initialization
Set
constants(callablen_variables -> state) if given.- constants#
‘Callable(…)’
- apply(X, Q)#
Fill
Q(shape(n_variables, n_cells)) in place from the cell coordinatesX(shape(dim, n_cells)).Returns
The filled
Q.
- get_definition(X, p, n_variables)#
Symbolic initial state
ZArrayof lengthn_variablesfor code generation.
- class zoomy_core.model.initial_conditions.RP(**params)#
Bases:
zoomy_core.model.initial_conditions.InitialConditions1-D Riemann problem:
highstate forx < jump_position_x,lowstate otherwise.Initialization
- low#
‘Callable(…)’
- high#
‘Callable(…)’
- jump_position_x#
‘Number(…)’
- apply(X, Q)#
Fill
Q(shape(n_variables, n_cells)) in place from the cell coordinatesX(shape(dim, n_cells)).Returns
The filled
Q.
- get_definition(X, p, n_variables)#
Symbolic initial state
ZArrayof lengthn_variablesfor code generation.
- class zoomy_core.model.initial_conditions.RP2d(**params)#
Bases:
zoomy_core.model.initial_conditions.InitialConditions2-D Riemann problem:
highstate in the quadrantx < jump_position_xandy < jump_position_y,lowotherwise.Initialization
- low#
‘Callable(…)’
- high#
‘Callable(…)’
- jump_position_x#
‘Number(…)’
- jump_position_y#
‘Number(…)’
- apply(X, Q)#
Fill
Q(shape(n_variables, n_cells)) in place from the cell coordinatesX(shape(dim, n_cells)).Returns
The filled
Q.
- get_definition(X, p, n_variables)#
Symbolic initial state
ZArrayof lengthn_variablesfor code generation.
- class zoomy_core.model.initial_conditions.RP3d(**params)#
Bases:
zoomy_core.model.initial_conditions.InitialConditions3-D Riemann problem:
highstate in the octant below all three jump positions,lowotherwise.Initialization
- low#
‘Callable(…)’
- high#
‘Callable(…)’
- jump_position_x#
‘Number(…)’
- jump_position_y#
‘Number(…)’
- jump_position_z#
‘Number(…)’
- apply(X, Q)#
Fill
Q(shape(n_variables, n_cells)) in place from the cell coordinatesX(shape(dim, n_cells)).Returns
The filled
Q.
- get_definition(X, p, n_variables)#
Symbolic initial state
ZArrayof lengthn_variablesfor code generation.
- class zoomy_core.model.initial_conditions.RadialDambreak(**params)#
Bases:
zoomy_core.model.initial_conditions.InitialConditionsRadial dam break:
highstate withinradiusof the mesh centroid,lowoutside.Initialization
- low#
‘Callable(…)’
- high#
‘Callable(…)’
- radius#
‘Number(…)’
- apply(X, Q)#
Fill
Q(shape(n_variables, n_cells)) in place from the cell coordinatesX(shape(dim, n_cells)).Returns
The filled
Q.
- get_definition(X, p, n_variables)#
Symbolic initial state, with the circle centred at the origin (unlike
apply, which uses the centroid).
- class zoomy_core.model.initial_conditions.UserFunction(function=None, **params)#
Bases:
zoomy_core.model.initial_conditions.InitialConditionsInitial state from a user callable
function(x) -> stateevaluated per cell.Initialization
Set
functionif given.- function#
‘Callable(…)’
- apply(X, Q)#
Fill
Q(shape(n_variables, n_cells)) in place from the cell coordinatesX(shape(dim, n_cells)).Returns
The filled
Q.
- get_definition(X, p, n_variables)#
Symbolic initial state obtained by calling
functionon symbolicX; a zero state if it is not symbolic.
- class zoomy_core.model.initial_conditions.Project3D(model, height, velocity, bed=None, **params)#
Bases:
zoomy_core.model.initial_conditions.InitialConditionsInitial condition from a 3-D profile through the model’s own
project_from_3dmap, sampled at its projection nodes. Covers the horizontal-velocity moments (SME family); the profile is given asheight(x), optionalbed(x)andvelocity(x, zeta).Args
model: the Model providingproject_from_3d.height: callablex -> h.velocity: callable(x, zeta) -> u, the vertical velocity profile.bed: callablex -> b; defaults to a flat bed at zero.
Initialization
Store the model and the profile callables.
- apply(X, Q)#
Fill
Q(shape(n_variables, n_cells)) in place from the cell coordinatesX(shape(dim, n_cells)).Returns
The filled
Q.
- class zoomy_core.model.initial_conditions.RestartFromHdf5(**params)#
Bases:
zoomy_core.model.initial_conditions.InitialConditionsRestart from an HDF5 snapshot; a runtime operation handled by the solver, so
applyis a no-op.Initialization
- path_to_fields#
‘String(…)’
- mesh_new#
‘ClassSelector(…)’
- mesh_identical#
‘Boolean(…)’
- path_to_old_mesh#
‘String(…)’
- snapshot#
‘Integer(…)’
- map_fields#
‘Dict(…)’
- apply(X, Q)#
No-op placeholder; the solver performs the HDF5 load.
- get_definition(X, p, n_variables)#
Zero state for the compiled model; the solver overwrites it from the HDF5 file.