Source code for fluidsim.solvers.ad1d.init_fields

"""Initialization of the field (:mod:`fluidsim.solvers.ad1d.init_fields`)
=========================================================================

.. autoclass:: InitFieldsAD1D
   :members:

.. autoclass:: InitFieldsCos
   :members:

.. autoclass:: InitFieldsGaussian
   :members:

"""

import numpy as np

from fluidsim.base.init_fields import InitFieldsBase, SpecificInitFields


[docs] class InitFieldsCos(SpecificInitFields): tag = "cos" @classmethod def _complete_params_with_default(cls, params): super()._complete_params_with_default(params) # params.init_fields._set_child(cls.tag, attribs={}) def __call__(self): oper = self.sim.oper s = np.cos(2 * np.pi * oper.xs / oper.Lx) self.sim.state.state_phys[0] = s
[docs] class InitFieldsGaussian(SpecificInitFields): tag = "gaussian" @classmethod def _complete_params_with_default(cls, params): super()._complete_params_with_default(params) # params.init_fields._set_child(cls.tag, attribs={}) def __call__(self): oper = self.sim.oper s = np.exp(-((10 * (oper.xs - oper.Lx / 2.0)) ** 2)) self.sim.state.state_phys[0] = s if hasattr(self.sim.state, "statespect_from_statephys"): self.sim.state.statespect_from_statephys()
[docs] class InitFieldsAD1D(InitFieldsBase): """Init the fields for the solver AD1D.""" @staticmethod def _complete_info_solver(info_solver): """Complete the ParamContainer info_solver.""" InitFieldsBase._complete_info_solver( info_solver, classes=[InitFieldsCos, InitFieldsGaussian] )