flow360.Fluid#

class Fluid[source]#

Bases: PDEModelBase

Fluid class for setting up the volume model that contains all the common fields every fluid dynamics zone should have.

Example

>>> fl.Fluid(
...     navier_stokes_solver=fl.NavierStokesSolver(
...         absolute_tolerance=1e-10,
...         linear_solver=fl.LinearSolver(max_iterations=35),
...         low_mach_preconditioner=True,
...     ),
...     turbulence_model_solver=fl.SpalartAllmaras(
...         absolute_tolerance=1e-10,
...         linear_solver=fl.LinearSolver(max_iterations=25)
...     ),
...     transition_model_solver=fl.NoneSolver(),
... )

type: Literal['Fluid'] = 'Fluid'#
navier_stokes_solver: NavierStokesSolver = NavierStokesSolver(absolute_tolerance=1e-10, relative_tolerance=0.0, order_of_accuracy=2, equation_evaluation_frequency=1, linear_solver=LinearSolver(max_iterations=30, absolute_tolerance=None, relative_tolerance=None), private_attribute_dict=None, CFL_multiplier=1.0, kappa_MUSCL=-1.0, numerical_dissipation_factor=1.0, limit_velocity=False, limit_pressure_density=False, type_name='Compressible', low_mach_preconditioner=False, low_mach_preconditioner_threshold=None, update_jacobian_frequency=4, max_force_jac_update_physical_steps=0)#

Navier-Stokes solver settings, see NavierStokesSolver documentation.

turbulence_model_solver: Annotated[NoneSolver | SpalartAllmaras | KOmegaSST, FieldInfo(annotation=NoneType, required=True, discriminator='type_name')] = SpalartAllmaras(absolute_tolerance=1e-08, relative_tolerance=0.0, order_of_accuracy=2, equation_evaluation_frequency=4, linear_solver=LinearSolver(max_iterations=20, absolute_tolerance=None, relative_tolerance=None), private_attribute_dict=None, CFL_multiplier=2.0, type_name='SpalartAllmaras', DDES=False, grid_size_for_LES='maxEdgeLength', reconstruction_gradient_limiter=0.5, quadratic_constitutive_relation=False, modeling_constants=SpalartAllmarasModelConstants(type_name='SpalartAllmarasConsts', C_DES=0.72, C_d=8.0, C_cb1=0.1355, C_cb2=0.622, C_sigma=0.6666666666666666, C_v1=7.1, C_vonKarman=0.41, C_w2=0.3, C_t3=1.2, C_t4=0.5, C_min_rd=10.0), update_jacobian_frequency=4, max_force_jac_update_physical_steps=0, rotation_correction=False)#

Turbulence model solver settings, see SpalartAllmaras, KOmegaSST and NoneSolver documentation.

transition_model_solver: Annotated[NoneSolver | TransitionModelSolver, FieldInfo(annotation=NoneType, required=True, discriminator='type_name')] = NoneSolver(type_name='None')#

Transition solver settings, see TransitionModelSolver documentation.

material: Air = Air(type='air', name='air', dynamic_viscosity=Sutherland(reference_viscosity=unyt_quantity(1.716e-05, 'Pa*s'), reference_temperature=unyt_quantity(273.15, 'K'), effective_temperature=unyt_quantity(110.4, 'K')))#

The material propetry of fluid.

initial_condition: NavierStokesModifiedRestartSolution | NavierStokesInitialCondition = NavierStokesInitialCondition(type_name='NavierStokesInitialCondition', constants=None, rho='rho', u='u', v='v', w='w', p='p')#

The initial condition of the fluid solver.