- fluid_propertiesThe name of the user object for fluid propertiesC++ Type:UserObjectName Controllable:No Description:The name of the user object for fluid properties 
- initial_pressureThe initial pressureC++ Type:FunctionName Unit:(no unit assumed) Controllable:No Description:The initial pressure 
- initial_temperatureThe initial temperatureC++ Type:FunctionName Unit:(no unit assumed) Controllable:No Description:The initial temperature 
- initial_velocityThe initial velocityC++ Type:std::vector<FunctionName> Unit:(no unit assumed) Controllable:No Description:The initial velocity 
- variableThe variable this initial condition is supposed to provide values for.C++ Type:VariableName Unit:(no unit assumed) Controllable:No Description:The variable this initial condition is supposed to provide values for. 
NSFunctionInitialCondition
NSFunctionInitialCondition can be used to initialize variables by evaluating fluid properties, using functions for the pressure, temperature and velocity.
Example input file syntax
In this example, we initialize the density at the desired initial temperature and pressure conditions.
[ICs<<<{"href": "../../syntax/ICs/index.html"}>>>]
  [rho]
    type = NSFunctionInitialCondition<<<{"description": "Sets intial values for all variables.", "href": "NSFunctionInitialCondition.html"}>>>
    fluid_properties<<<{"description": "The name of the user object for fluid properties"}>>> = 'fp'
    initial_pressure<<<{"description": "The initial pressure"}>>> = p_func
    initial_temperature<<<{"description": "The initial temperature"}>>> = T_func
    initial_velocity<<<{"description": "The initial velocity"}>>> = 'vx vy vz'
    variable<<<{"description": "The variable this initial condition is supposed to provide values for."}>>> = 'rho'
  []
[]Input Parameters
- blockThe list of blocks (ids or names) that this object will be appliedC++ Type:std::vector<SubdomainName> Controllable:No Description:The list of blocks (ids or names) that this object will be applied 
- boundaryThe list of boundaries (ids or names) from the mesh where this object appliesC++ Type:std::vector<BoundaryName> Controllable:No Description:The list of boundaries (ids or names) from the mesh where this object applies 
- stateCURRENTThis parameter is used to set old state solutions at the start of simulation. If specifying multiple states at the start of simulation, use one IC object for each state being specified. The states are CURRENT=0 OLD=1 OLDER=2. States older than 2 are not currently supported. When the user only specifies current state, the solution is copied to the old and older states, as expected. This functionality is mainly used for dynamic simulations with explicit time integration schemes, where old solution states are used in the velocity and acceleration approximations.Default:CURRENT C++ Type:MooseEnum Controllable:No Description:This parameter is used to set old state solutions at the start of simulation. If specifying multiple states at the start of simulation, use one IC object for each state being specified. The states are CURRENT=0 OLD=1 OLDER=2. States older than 2 are not currently supported. When the user only specifies current state, the solution is copied to the old and older states, as expected. This functionality is mainly used for dynamic simulations with explicit time integration schemes, where old solution states are used in the velocity and acceleration approximations. 
- variable_typeSpecifies what this variable is in the Navier Stokes namespace of variablesC++ Type:MooseEnum Controllable:No Description:Specifies what this variable is in the Navier Stokes namespace of variables 
Optional Parameters
- 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. 
- enableTrueSet the enabled status of the MooseObject.Default:True C++ Type:bool Controllable:No Description:Set the enabled status of the MooseObject. 
- ignore_uo_dependencyFalseWhen set to true, a UserObject retrieved by this IC will not be executed before the this ICDefault:False C++ Type:bool Controllable:No Description:When set to true, a UserObject retrieved by this IC will not be executed before the this IC 
Advanced Parameters
- prop_getter_suffixAn optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.C++ Type:MaterialPropertyName Unit:(no unit assumed) Controllable:No Description:An optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character. 
- use_interpolated_stateFalseFor the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.Default:False C++ Type:bool Controllable:No Description:For the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.