tud_lbm.operators.macroscopic ============================= .. py:module:: tud_lbm.operators.macroscopic .. autoapi-nested-parse:: 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. .. rubric:: 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 ------- .. autoapisummary:: tud_lbm.operators.macroscopic.MultiphaseParams Functions --------- .. autoapisummary:: tud_lbm.operators.macroscopic.build_macroscopic_fn tud_lbm.operators.macroscopic.build_multiphase_params Package Contents ---------------- .. py:class:: MultiphaseParams Bases: :py:obj:`NamedTuple` Equation-of-state and surface-tension parameters. All fields are Python scalars (compile-time constants). .. py:attribute:: eos :type: str .. py:attribute:: kappa :type: float .. py:attribute:: rho_l :type: float .. py:attribute:: rho_v :type: float .. py:attribute:: interface_width :type: int .. py:attribute:: g :type: float | None :value: None .. py:function:: build_macroscopic_fn(scheme: str = 'standard') -> tud_lbm.operators.protocols.MacroscopicOperator Return a macroscopic operator satisfying MacroscopicOperator protocol. :param 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. .. rubric:: Examples >>> from operators.macroscopic import build_macroscopic_fn >>> macroscopic = build_macroscopic_fn("standard") >>> rho, u = macroscopic(f, lattice) .. py:function:: build_multiphase_params(config: tud_lbm.config.SimulationConfig) -> MultiphaseParams Construct :class:`MultiphaseParams` from a configuration object. :param config: An object with multiphase attributes (``eos``, ``kappa``, ``rho_l``, ``rho_v``, ``interface_width``, …). :returns: A :class:`MultiphaseParams` NamedTuple. :raises ValueError: If required multiphase fields are missing.