 #
  # FLUID DYNAMICS.
  #
  - &physicsFluidDynamics
    key: &physicsKey physicsFluidDynamics
    name: &physicsName Fluid Dynamics
    description: #Fixme
    arguments: &argFluidDynamics

    physicalProperties:
      - &propVelocity
        key: velocity
        name: Velocity
        symbol: U
        units: "m/s"
        baseUnit: siVelocity

      - &propPressure
        key: pressure
        name: Pressure
        symbol: p
        units: "Pa"
        baseUnit: siPressure

      - &propViscosity
        key: nu
        name: Viscosity
        symbol: "\\nu"
        units: "\\frac{m}{s^2}"
        baseUnit: siViscosity
        min: 0
        minExclude: false
       
      - &propDensity
        key: rho
        name: Density
        symbol: "\\rho"
        units: "\\frac{kg}{m^3}"
        baseUnits: siDensity
        min: 0
        minExclude: false

      - &modelLaminar
        value: laminar
        name: Laminar
        default: true

      - &modelKEpsilon
        value: kepsilon
        name: 'k-\(\epsilon\)'

      - &modelKOmega
        value: komega
        name: 'k-\(\omega\)'

      - &dropTurbulence
        key: turbulence
        name: Turbulence model
        style: dropdown
        valueKind: string
        options:
          - *modelLaminar
          - *modelKEpsilon
          - *modelKOmega
        
    boundaryTypes:
      - &inlet
        id: 1
        key: inlet
        name: Inlet
        description: Inlet boundary condition
        properties:
          -
            <<: *propVelocity
            name: Velocity X
            key: velocity_x
          -
            <<: *propVelocity
            name: Velocity Y
            key: velocity_y
          -
            <<: *propVelocity
            name: Velocity Z
            key: velocity_z
            
      - &outlet
        id: 2
        key: outlet
        name: Outlet
        description: Outlet boundary condition
        properties:
          -
            <<: *propPressure
            default: 0

      - &wall
        id: 3
        key: wall
        name: Wall
        description: No slip boundary condition

    domainTypes:
      - &domainFluid
        id: 1
        key: fluid
        name: Fluid domain
        properties:
          - *dropTurbulence  
        material:
          properties:
            - *propViscosity
            - *propDensity
            
        boundaryTypes:
          - *inlet
          - *outlet
          - *wall

    subPhysicsParts:
      #
      # Fluid dynamics general
      #
      - &subPhysicsFluidGeneral
        key: subPhysicsFluidGeneral
        name: Fluid Dynamics
        description: "Solves Fluid dynamics"
        physicsKey: *physicsKey
        physicsName: *physicsName
        arguments: *argFluidDynamics

        timeTypes:
          - *timeTransient
          - *timeSteady_iterations

        domainTypes:
          - *domainFluid


    subPhysics:
      - key: subPhysicsFluidDynamics
        name: Fluid Dynamics
        description: "Solver for fluid dynamics"

        basisList:
          -
            key: subPhysicsFluidDynamics2D
            basis: *mesh2D
            name: Fluid Dynamics
            description: "Solver for fluid dynamics"
            physicsList:
              - *subPhysicsFluidGeneral

          -
            key: subPhysicsFluidDynamics3D
            basis: *mesh3D
            name: Fluid Dynamics
            description: "Solver for fluid dynamics"
            physicsList:
              - *subPhysicsFluidGeneral
