"""G3DFlow solver definitions (G3DFlow, G2DFlow, G2DAxiFlow, Q1DFlow, Q3DFlow)"""
from typing import Any
from g3d.defs import G3DWorld
from g3d.defs import CodeType
from g3d.defs import DIMMode
from g3d.flow.senv import SolverEnv
[docs]
class G3DFlow(SolverEnv):
def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
def _set_code_type(self) -> None:
super()._set_code_type()
g3d_world = G3DWorld()
g3d_world.options.dim_mode = DIMMode.G3D
[docs]
class G2DFlow(SolverEnv):
def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
def _set_code_type(self) -> None:
super()._set_code_type()
g3d_world = G3DWorld()
g3d_world.info.code_type = CodeType.G2D_SOLVER
g3d_world.info.code_name = 'g2dflow.py'
g3d_world.info.code_description = 'a python-based solver for 2D compressible flows'
g3d_world.options.dim_mode = DIMMode.G2D
[docs]
class G2DAxiFlow(G2DFlow):
def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
def _set_code_type(self) -> None:
super()._set_code_type()
g3d_world = G3DWorld()
g3d_world.info.code_description = 'a python-based solver for 2D axisymmetric compressible flows'
g3d_world.options.dim_mode = DIMMode.G2D_AXISYMM
[docs]
class Q1DFlow(SolverEnv):
def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
def _set_code_type(self) -> None:
super()._set_code_type()
g3d_world = G3DWorld()
g3d_world.info.code_type = CodeType.Q1D_SOLVER
g3d_world.info.code_name = 'q1dflow.py'
g3d_world.info.code_description = 'a python-based quasi-1D solver for compressible flows'
g3d_world.options.dim_mode = DIMMode.Q1D
[docs]
class Q3DFlow(SolverEnv):
def __init__(self, *args: Any, **kwargs: Any) -> None:
super().__init__(*args, **kwargs)
def _set_code_type(self) -> None:
super()._set_code_type()
g3d_world = G3DWorld()
g3d_world.info.code_type = CodeType.Q3D_SOLVER
g3d_world.info.code_name = 'q3dflow.py'
g3d_world.info.code_description = 'a python-based quasi-3D solver for compressible flows'
g3d_world.options.dim_mode = DIMMode.Q3D