tud_lbm.operators.macroscopic
Macroscopic operators — implementations of MacroscopicOperator protocol.
Public API: build_macroscopic_fn(), MultiphaseParams, build_multiphase_params
Implementation modules (_single_phase.py, _multiphase.py) are internal; use the factory to access.
Example
from operators.macroscopic import build_macroscopic_fn, MultiphaseParams, build_multiphase_params
macro = build_macroscopic_fn(“standard”) rho, u = macro(f, lattice)
mp = build_multiphase_params(config)
Classes
Equation-of-state and surface-tension parameters. |
Functions
|
Return a macroscopic operator satisfying MacroscopicOperator protocol. |
|
Construct |
Package Contents
- class tud_lbm.operators.macroscopic.MultiphaseParams[source]
Bases:
NamedTupleEquation-of-state and surface-tension parameters.
All fields are Python scalars (compile-time constants).
- tud_lbm.operators.macroscopic.build_macroscopic_fn(scheme: str = 'standard') tud_lbm.operators.protocols.MacroscopicOperator[source]
Return a macroscopic operator satisfying MacroscopicOperator protocol.
- Parameters:
scheme – Macroscopic model name (“standard” or others). Defaults to “standard” (single-phase density and velocity).
- Returns:
A callable satisfying the MacroscopicOperator protocol. Can be called as: operator(f, lattice, force=None) → (rho, u)
- Type-checkers see this as a MacroscopicOperator, so:
op: MacroscopicOperator = build_macroscopic_fn(“standard”)
Type-checkers will verify any use of op matches the protocol.
- Raises:
ValueError – If scheme is not registered.
Examples
>>> from operators.macroscopic import build_macroscopic_fn >>> macroscopic = build_macroscopic_fn("standard") >>> rho, u = macroscopic(f, lattice)
- tud_lbm.operators.macroscopic.build_multiphase_params(config: tud_lbm.config.SimulationConfig) MultiphaseParams[source]
Construct
MultiphaseParamsfrom a configuration object.- Parameters:
config – An object with multiphase attributes (
eos,kappa,rho_l,rho_v,interface_width, …).- Returns:
A
MultiphaseParamsNamedTuple.- Raises:
ValueError – If required multiphase fields are missing.