zoomy_core.model.derivation.transformations

zoomy_core.model.derivation.transformations#

Coordinate transformations applied to a Model: the vertical sigma map z -> zeta and a channel-fitted (s, n) map. Both are Model-level rewrites that sit between the 3-D Model and the depth-projection that builds the SystemModel.

Module Contents#

Classes#

PDETransformation

Sigma map z = b + h*zeta that rewrites every field f(t, x, z) to a decorated f~(t, x, zeta) via the chain rule on Derivative nodes. Model-level only (model.apply(...)); it also sigma-maps stored boundary conditions and records the map on the model.

ParametrizedGeometry

Orthogonal map X(s, n) = r(s) + n N(s) of a Cartesian pair (x, y) onto coordinates fitted to a planar centreline r(s). Curvature, metric m = 1 - kappa n and the chain rule on Derivative nodes are all derived from the curve; kappa = 0 is the identity.

API#

class zoomy_core.model.derivation.transformations.PDETransformation(coord_map, *, decorate='tilde', name='pde_transformation', description=None)#

Bases: zoomy_core.model.operations.Operation

Sigma map z = b + h*zeta that rewrites every field f(t, x, z) to a decorated f~(t, x, zeta) via the chain rule on Derivative nodes. Model-level only (model.apply(...)); it also sigma-maps stored boundary conditions and records the map on the model.

Initialization

Build the map from {z: (zeta, Eq(z, b + h*zeta))}; decorate picks the accent (tilde, hat, bar, check).

transforms_bcs#

True

whole_model_op#

True

property jacobian#

Vertical Jacobian dz/dzeta = h.

decorated(field)#

Return the decorated counterpart u~(t, x, zeta) of a physical field application, or the field itself if its head was never decorated.

apply_to_model(model)#

Rewrite coordinates, all equations and stored assumptions, then publish the decoration map and move the unknowns to the decorated heads.

class zoomy_core.model.derivation.transformations.ParametrizedGeometry(centreline, coords, new_coords, *, decorate='tilde', name='parametrized_geometry', description=None)#

Bases: zoomy_core.model.operations.Operation

Orthogonal map X(s, n) = r(s) + n N(s) of a Cartesian pair (x, y) onto coordinates fitted to a planar centreline r(s). Curvature, metric m = 1 - kappa n and the chain rule on Derivative nodes are all derived from the curve; kappa = 0 is the identity.

Initialization

Derive speed, curvature, tangent, normal and metric from centreline (2-vector in the new parameter) and the old/new coordinate pairs.

property kappa#

Signed curvature of the centreline.

property metric#

Streamwise scale factor m = 1 - kappa n.

property jacobian#

Area element factor m (dA = m dn ds).

admissible(half_width)#

Condition m > 0 across a section of the given half width.