INSAction

This class allows us to have a section of the input file for setting up incompressible Navier-Stokes equations.

Overview

This action is used for setting up incompressible Navier-Stokes equation over a subdomain. Boundary conditions must cover the entire boundaries that enclose the subdomain. This action is triggered with Modules/IncompressibleNavierStokes input syntax.

Example Input File Syntax

Input Parameters

  • active__all__ If specified only the blocks named will be visited and made active

    Default:__all__

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:If specified only the blocks named will be visited and made active

  • add_standard_velocity_variables_for_adTrueTrue to convert vector velocity variables into standard aux variables

    Default:True

    C++ Type:bool

    Controllable:No

    Description:True to convert vector velocity variables into standard aux variables

  • ambient_convection_alphaThe heat transfer coefficient from from ambient surroundings

    C++ Type:double

    Controllable:No

    Description:The heat transfer coefficient from from ambient surroundings

  • ambient_temperatureThe ambient temperature

    C++ Type:double

    Controllable:No

    Description:The ambient temperature

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • coupled_force_varThe variable(s) providing the coupled force(s)

    C++ Type:std::vector<VariableName>

    Controllable:No

    Description:The variable(s) providing the coupled force(s)

  • coupled_force_vector_functionThe function(s) standing in as a coupled force

    C++ Type:std::vector<FunctionName>

    Controllable:No

    Description:The function(s) standing in as a coupled force

  • has_ambient_convectionFalseWhether for the energy equation there is a heat source/sink due to convection from ambient surroundings

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether for the energy equation there is a heat source/sink due to convection from ambient surroundings

  • has_coupled_forceFalseWhether the simulation has a force due to a coupled vector variable/vector function

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether the simulation has a force due to a coupled vector variable/vector function

  • has_heat_sourceFalseWhether there is a heat source function object in the simulation

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether there is a heat source function object in the simulation

  • heat_source_functionThe function describing the heat source

    C++ Type:FunctionName

    Controllable:No

    Description:The function describing the heat source

  • heat_source_varThe coupled variable describing the heat source

    C++ Type:std::vector<VariableName>

    Controllable:No

    Description:The coupled variable describing the heat source

  • inactiveIf specified blocks matching these identifiers will be skipped.

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:If specified blocks matching these identifiers will be skipped.

  • nl_sysnl0The nonlinear system that this action belongs to.

    Default:nl0

    C++ Type:NonlinearSystemName

    Controllable:No

    Description:The nonlinear system that this action belongs to.

  • pressure_variable_nameA name for the pressure variable. If this is not provided, a sensible default will be used.

    C++ Type:std::string

    Controllable:No

    Description:A name for the pressure variable. If this is not provided, a sensible default will be used.

Optional Parameters

  • add_temperature_equationFalseTrue to add temperature equation

    Default:False

    C++ Type:bool

    Controllable:No

    Description:True to add temperature equation

  • fixed_temperature_boundaryDirichlet boundaries for temperature equation

    C++ Type:std::vector<BoundaryName>

    Controllable:No

    Description:Dirichlet boundaries for temperature equation

  • initial_temperature0The initial temperature, assumed constant everywhere

    Default:0

    C++ Type:double

    Controllable:No

    Description:The initial temperature, assumed constant everywhere

  • natural_temperature_boundaryNatural boundaries for temperature equation

    C++ Type:std::vector<BoundaryName>

    Controllable:No

    Description:Natural boundaries for temperature equation

  • specific_heat_namecpThe name of the specific heat

    Default:cp

    C++ Type:MaterialPropertyName

    Controllable:No

    Description:The name of the specific heat

  • temperature_functionTemperature on Dirichlet boundaries

    C++ Type:std::vector<FunctionName>

    Controllable:No

    Description:Temperature on Dirichlet boundaries

  • temperature_scaling1Scaling for the temperature variable

    Default:1

    C++ Type:double

    Controllable:No

    Description:Scaling for the temperature variable

  • temperature_variabletemperatureTemperature variable name

    Default:temperature

    C++ Type:VariableName

    Controllable:No

    Description:Temperature variable name

  • thermal_conductivity_namekThe name of the thermal conductivity

    Default:k

    C++ Type:MaterialPropertyName

    Controllable:No

    Description:The name of the thermal conductivity

Temperature Parameters

  • alpha1Multiplicative factor on the stabilization parameter tau

    Default:1

    C++ Type:double

    Controllable:No

    Description:Multiplicative factor on the stabilization parameter tau

  • convective_termTrueWhether to include the convective term in Jacobian

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Whether to include the convective term in Jacobian

  • integrate_p_by_partsTrueWhether to integrate the pressure term by parts

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Whether to integrate the pressure term by parts

  • laplaceTrueWhether the viscous term of the momentum equations is in laplace form

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Whether the viscous term of the momentum equations is in laplace form

  • pspgFalseWhether to perform PSPG stabilization of the mass equation

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to perform PSPG stabilization of the mass equation

  • supgFalseWhether to perform SUPG stabilization of the momentum residuals

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to perform SUPG stabilization of the momentum residuals

  • use_adFalseTrue to use AD

    Default:False

    C++ Type:bool

    Controllable:No

    Description:True to use AD

Weakformcontrol Parameters

  • blockThe list of block ids (SubdomainID) on which NS equation is defined on

    C++ Type:std::vector<SubdomainName>

    Controllable:No

    Description:The list of block ids (SubdomainID) on which NS equation is defined on

  • boussinesq_approximationFalseTrue to have Boussinesq approximation

    Default:False

    C++ Type:bool

    Controllable:No

    Description:True to have Boussinesq approximation

  • density_namerhoThe name of the density

    Default:rho

    C++ Type:MaterialPropertyName

    Controllable:No

    Description:The name of the density

  • dynamic_viscosity_namemuThe name of the dynamic viscosity

    Default:mu

    C++ Type:MaterialPropertyName

    Controllable:No

    Description:The name of the dynamic viscosity

  • equation_typesteady-stateNavier-Stokes equation type

    Default:steady-state

    C++ Type:MooseEnum

    Options:steady-state, transient

    Controllable:No

    Description:Navier-Stokes equation type

  • gravity0 0 0Direction of the gravity vector

    Default:0 0 0

    C++ Type:libMesh::VectorValue<double>

    Controllable:No

    Description:Direction of the gravity vector

  • reference_temperature_nametemp_refMaterial property name for reference temperature

    Default:temp_ref

    C++ Type:MaterialPropertyName

    Controllable:No

    Description:Material property name for reference temperature

  • thermal_expansion_namealphaThe name of the thermal expansion

    Default:alpha

    C++ Type:MaterialPropertyName

    Controllable:No

    Description:The name of the thermal expansion

Base Parameters

  • familyLAGRANGESpecifies the family of FE shape functions to use for this variable

    Default:LAGRANGE

    C++ Type:MooseEnum

    Options:LAGRANGE

    Controllable:No

    Description:Specifies the family of FE shape functions to use for this variable

  • initial_pressure0The initial pressure, assumed constant everywhere

    Default:0

    C++ Type:double

    Controllable:No

    Description:The initial pressure, assumed constant everywhere

  • initial_velocity1e-15 1e-15 1e-15The initial velocity, assumed constant everywhere

    Default:1e-15 1e-15 1e-15

    C++ Type:libMesh::VectorValue<double>

    Controllable:No

    Description:The initial velocity, assumed constant everywhere

  • orderFIRSTSpecifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)

    Default:FIRST

    C++ Type:MooseEnum

    Options:CONSTANT, FIRST, SECOND, THIRD, FOURTH

    Controllable:No

    Description:Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)

  • pressure_scaling1Scaling for the pressure variable

    Default:1

    C++ Type:double

    Controllable:No

    Description:Scaling for the pressure variable

  • velocity_scaling1 1 1Scaling for the velocity variables

    Default:1 1 1

    C++ Type:libMesh::VectorValue<double>

    Controllable:No

    Description:Scaling for the velocity variables

Variable Parameters

  • no_bc_boundaryThe so-called no-bc Boundaries

    C++ Type:std::vector<BoundaryName>

    Controllable:No

    Description:The so-called no-bc Boundaries

  • pressure_boundaryBoundaries with given pressures

    C++ Type:std::vector<BoundaryName>

    Controllable:No

    Description:Boundaries with given pressures

  • pressure_functionFunctions for boundary pressures

    C++ Type:std::vector<FunctionName>

    Controllable:No

    Description:Functions for boundary pressures

  • pressure_pinned_nodeThe node where pressure needs to be pinned

    C++ Type:unsigned int

    Controllable:No

    Description:The node where pressure needs to be pinned

  • velocity_boundaryBoundaries with given velocities

    C++ Type:std::vector<BoundaryName>

    Controllable:No

    Description:Boundaries with given velocities

  • velocity_functionFunctions for boundary velocities

    C++ Type:std::vector<FunctionName>

    Controllable:No

    Description:Functions for boundary velocities

Boundarycondition Parameters