NSFVPhaseChangeSource

Computes the energy source due to solidification/melting.

The power source is computed as:

where is the liquid density, is the latent heat, and is the liquid fraction.

Example

For an example on how to use this object see the model of the Gallium melting experiment below Gau and Viskanta (1986)

##########################################################
# Simulation of Gallium Melting Experiment
# Ref: Gau, C., & Viskanta, R. (1986). Melting and solidification of a pure metal on a vertical wall.
# Key physics: melting/solidification, convective heat transfer, natural convection
##########################################################

mu = 1.81e-3
rho_solid = 6093
rho_liquid = 6093
k_solid = 32
k_liquid = 32
cp_solid = 381.5
cp_liquid = 381.5
L = 80160
alpha_b = 1.2e-4
T_solidus = 302.93
T_liquidus = '${fparse T_solidus + 0.1}'
advected_interp_method = 'upwind'
velocity_interp_method = 'rc'
T_cold = 301.15
T_hot = 311.15
Nx = 100
Ny = 50

[GlobalParams<<<{"href": "../../syntax/GlobalParams/index.html"}>>>]
  rhie_chow_user_object = 'rc'
[]

[UserObjects<<<{"href": "../../syntax/UserObjects/index.html"}>>>]
  [rc]
    type = INSFVRhieChowInterpolator<<<{"description": "Computes the Rhie-Chow velocity based on gathered 'a' coefficient data.", "href": "../userobjects/INSFVRhieChowInterpolator.html"}>>>
    u<<<{"description": "The x-component of velocity"}>>> = vel_x
    v<<<{"description": "The y-component of velocity"}>>> = vel_y
    pressure<<<{"description": "The pressure variable."}>>> = pressure
  []
[]

[Mesh<<<{"href": "../../syntax/Mesh/index.html"}>>>]
  [gen]
    type = GeneratedMeshGenerator<<<{"description": "Create a line, square, or cube mesh with uniformly spaced or biased elements.", "href": "../meshgenerators/GeneratedMeshGenerator.html"}>>>
    dim<<<{"description": "The dimension of the mesh to be generated"}>>> = 2
    xmin<<<{"description": "Lower X Coordinate of the generated mesh"}>>> = 0
    xmax<<<{"description": "Upper X Coordinate of the generated mesh"}>>> = 88.9e-3
    ymin<<<{"description": "Lower Y Coordinate of the generated mesh"}>>> = 0
    ymax<<<{"description": "Upper Y Coordinate of the generated mesh"}>>> = 63.5e-3
    nx<<<{"description": "Number of elements in the X direction"}>>> = ${Nx}
    ny<<<{"description": "Number of elements in the Y direction"}>>> = ${Ny}
  []
[]

[AuxVariables<<<{"href": "../../syntax/AuxVariables/index.html"}>>>]
  [U]
    type = MooseVariableFVReal<<<{"description": "Base class for Moose variables. This should never be the terminal object type", "href": "../variables/MooseVariableFV.html"}>>>
  []
  [fl]
    type = MooseVariableFVReal<<<{"description": "Base class for Moose variables. This should never be the terminal object type", "href": "../variables/MooseVariableFV.html"}>>>
    initial_condition<<<{"description": "Specifies a constant initial condition for this variable"}>>> = 0.0
  []
  [density]
    type = MooseVariableFVReal<<<{"description": "Base class for Moose variables. This should never be the terminal object type", "href": "../variables/MooseVariableFV.html"}>>>
  []
  [th_cond]
    type = MooseVariableFVReal<<<{"description": "Base class for Moose variables. This should never be the terminal object type", "href": "../variables/MooseVariableFV.html"}>>>
  []
  [cp_var]
    type = MooseVariableFVReal<<<{"description": "Base class for Moose variables. This should never be the terminal object type", "href": "../variables/MooseVariableFV.html"}>>>
  []
  [darcy_coef]
    type = MooseVariableFVReal<<<{"description": "Base class for Moose variables. This should never be the terminal object type", "href": "../variables/MooseVariableFV.html"}>>>
  []
  [fch_coef]
    type = MooseVariableFVReal<<<{"description": "Base class for Moose variables. This should never be the terminal object type", "href": "../variables/MooseVariableFV.html"}>>>
  []
[]

[AuxKernels<<<{"href": "../../syntax/AuxKernels/index.html"}>>>]
  [mag]
    type = VectorMagnitudeAux<<<{"description": "Creates a field representing the magnitude of three coupled variables using an Euclidean norm.", "href": "../auxkernels/VectorMagnitudeAux.html"}>>>
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = U
    x<<<{"description": "x-component of the vector"}>>> = vel_x
    y<<<{"description": "y-component of the vector"}>>> = vel_y
  []
  [compute_fl]
    type = NSLiquidFractionAux<<<{"description": "Computes liquid fraction $f_l$ given the temperature.", "href": "../auxkernels/NSLiquidFractionAux.html"}>>>
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = fl
    temperature<<<{"description": "The temperature. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = T
    T_liquidus<<<{"description": "The liquidus temperature. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = '${T_liquidus}'
    T_solidus<<<{"description": "The solidus temperature. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = '${T_solidus}'
    execute_on<<<{"description": "The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html."}>>> = 'TIMESTEP_END'
  []
  [rho_out]
    type = FunctorAux<<<{"description": "Evaluates a functor (variable, function or functor material property) on the current element, quadrature point, or node.", "href": "../auxkernels/FunctorAux.html"}>>>
    functor<<<{"description": "The functor to evaluate. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = 'rho_mixture'
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = 'density'
  []
  [th_cond_out]
    type = FunctorAux<<<{"description": "Evaluates a functor (variable, function or functor material property) on the current element, quadrature point, or node.", "href": "../auxkernels/FunctorAux.html"}>>>
    functor<<<{"description": "The functor to evaluate. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = 'k_mixture'
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = 'th_cond'
  []
  [cp_out]
    type = FunctorAux<<<{"description": "Evaluates a functor (variable, function or functor material property) on the current element, quadrature point, or node.", "href": "../auxkernels/FunctorAux.html"}>>>
    functor<<<{"description": "The functor to evaluate. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = 'cp_mixture'
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = 'cp_var'
  []
  [darcy_out]
    type = FunctorAux<<<{"description": "Evaluates a functor (variable, function or functor material property) on the current element, quadrature point, or node.", "href": "../auxkernels/FunctorAux.html"}>>>
    functor<<<{"description": "The functor to evaluate. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = 'Darcy_coefficient'
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = 'darcy_coef'
  []
  [fch_out]
    type = FunctorAux<<<{"description": "Evaluates a functor (variable, function or functor material property) on the current element, quadrature point, or node.", "href": "../auxkernels/FunctorAux.html"}>>>
    functor<<<{"description": "The functor to evaluate. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = 'Forchheimer_coefficient'
    variable<<<{"description": "The name of the variable that this object applies to"}>>> = 'fch_coef'
  []
[]

[Variables<<<{"href": "../../syntax/Variables/index.html"}>>>]
  [vel_x]
    type = INSFVVelocityVariable<<<{"description": "Base class for Moose variables. This should never be the terminal object type", "href": "../variables/INSFVVelocityVariable.html"}>>>
    initial_condition<<<{"description": "Specifies a constant initial condition for this variable"}>>> = 0.0
  []
  [vel_y]
    type = INSFVVelocityVariable<<<{"description": "Base class for Moose variables. This should never be the terminal object type", "href": "../variables/INSFVVelocityVariable.html"}>>>
    initial_condition<<<{"description": "Specifies a constant initial condition for this variable"}>>> = 0.0
  []
  [pressure]
    type = INSFVPressureVariable<<<{"description": "Base class for Moose variables. This should never be the terminal object type", "href": "../variables/INSFVPressureVariable.html"}>>>
  []
  [lambda]
    family<<<{"description": "Specifies the family of FE shape functions to use for this variable"}>>> = SCALAR
    order<<<{"description": "Specifies the order of the FE shape function to use for this variable (additional orders not listed are allowed)"}>>> = FIRST
  []
  [T]
    type = INSFVEnergyVariable<<<{"description": "Base class for Moose variables. This should never be the terminal object type", "href": "../variables/INSFVEnergyVariable.html"}>>>
    initial_condition<<<{"description": "Specifies a constant initial condition for this variable"}>>> = '${T_cold}'
    scaling<<<{"description": "Specifies a scaling factor to apply to this variable"}>>> = 1e-4
  []
[]

[FVKernels<<<{"href": "../../syntax/FVKernels/index.html"}>>>]
  [mass]
    type = INSFVMassAdvection<<<{"description": "Object for advecting mass, e.g. rho", "href": "INSFVMassAdvection.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = pressure
    advected_interp_method<<<{"description": "The interpolation to use for the advected quantity. Options are 'upwind', 'average', 'sou' (for second-order upwind), 'min_mod', 'vanLeer', 'quick', 'venkatakrishnan', and 'skewness-corrected' with the default being 'upwind'."}>>> = ${advected_interp_method}
    velocity_interp_method<<<{"description": "The interpolation to use for the velocity. Options are 'average' and 'rc' which stands for Rhie-Chow. The default is Rhie-Chow."}>>> = ${velocity_interp_method}
    rho<<<{"description": "Density functor. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = rho_mixture
  []
  [mean_zero_pressure]
    type = FVIntegralValueConstraint<<<{"description": "This class is used to enforce integral of phi = volume * phi_0 with a Lagrange multiplier approach.", "href": "FVIntegralValueConstraint.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = pressure
    lambda<<<{"description": "Lagrange multiplier variable"}>>> = lambda
    phi0<<<{"description": "What we want the average value of the primal variable to be."}>>> = 0.0
  []

  [u_time]
    type = INSFVMomentumTimeDerivative<<<{"description": "Adds the time derivative term to the incompressible Navier-Stokes momentum equation.", "href": "INSFVMomentumTimeDerivative.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = vel_x
    rho<<<{"description": "The density functor. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = rho_mixture
    momentum_component<<<{"description": "The component of the momentum equation that this kernel applies to."}>>> = 'x'
  []
  [u_advection]
    type = INSFVMomentumAdvection<<<{"description": "Object for advecting momentum, e.g. rho*u", "href": "INSFVMomentumAdvection.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = vel_x
    advected_interp_method<<<{"description": "The interpolation to use for the advected quantity. Options are 'upwind', 'average', 'sou' (for second-order upwind), 'min_mod', 'vanLeer', 'quick', 'venkatakrishnan', and 'skewness-corrected' with the default being 'upwind'."}>>> = ${advected_interp_method}
    velocity_interp_method<<<{"description": "The interpolation to use for the velocity. Options are 'average' and 'rc' which stands for Rhie-Chow. The default is Rhie-Chow."}>>> = ${velocity_interp_method}
    rho<<<{"description": "Density functor. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = rho_mixture
    momentum_component<<<{"description": "The component of the momentum equation that this kernel applies to."}>>> = 'x'
  []
  [u_viscosity]
    type = INSFVMomentumDiffusion<<<{"description": "Implements the Laplace form of the viscous stress in the Navier-Stokes equation.", "href": "INSFVMomentumDiffusion.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = vel_x
    mu<<<{"description": "The viscosity. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = ${mu}
    momentum_component<<<{"description": "The component of the momentum equation that this kernel applies to."}>>> = 'x'
  []
  [u_pressure]
    type = INSFVMomentumPressure<<<{"description": "Introduces the coupled pressure term into the Navier-Stokes momentum equation.", "href": "INSFVMomentumPressure.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = vel_x
    momentum_component<<<{"description": "The component of the momentum equation that this kernel applies to."}>>> = 'x'
    pressure<<<{"description": "The pressure. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = pressure
  []
  [u_friction]
    type = PINSFVMomentumFriction<<<{"description": "Computes a friction force term on fluid in porous media in the Navier Stokes i-th momentum equation in Rhie-Chow (incompressible) contexts.", "href": "PINSFVMomentumFriction.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = vel_x
    momentum_component<<<{"description": "The component of the momentum equation that this kernel applies to."}>>> = 'x'
    u<<<{"description": "The velocity in the x direction. Superficial in the case of porous treatment, interstitial otherwise. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = vel_x
    v<<<{"description": "The velocity in the y direction. Superficial in the case of porous treatment, interstitial otherwise. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = vel_y
    Darcy_name<<<{"description": "Name of the Darcy coefficients property. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = 'Darcy_coeff'
    Forchheimer_name<<<{"description": "Name of the Forchheimer coefficients property. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = 'Forchheimer_coeff'
    rho<<<{"description": "The density. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = ${rho_liquid}
    mu<<<{"description": "The dynamic viscosity. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = ${mu}
    standard_friction_formulation<<<{"description": "Boolean to choose the type of friction formulation."}>>> = false
  []
  [u_buoyancy]
    type = INSFVMomentumBoussinesq<<<{"description": "Computes a body force for natural convection buoyancy.", "href": "INSFVMomentumBoussinesq.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = vel_x
    T_fluid<<<{"description": "the fluid temperature. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = T
    gravity<<<{"description": "Direction of the gravity vector"}>>> = '0 -9.81 0'
    rho<<<{"description": "The value for the density. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = '${rho_liquid}'
    ref_temperature<<<{"description": "The value for the reference temperature."}>>> = ${T_cold}
    momentum_component<<<{"description": "The component of the momentum equation that this kernel applies to."}>>> = 'x'
  []
  [u_gravity]
    type = INSFVMomentumGravity<<<{"description": "Computes a body force due to gravity in Rhie-Chow based simulations.", "href": "INSFVMomentumGravity.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = vel_x
    gravity<<<{"description": "Direction of the gravity vector"}>>> = '0 -9.81 0'
    rho<<<{"description": "The value for the density. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = '${rho_liquid}'
    momentum_component<<<{"description": "The component of the momentum equation that this kernel applies to."}>>> = 'x'
  []

  [v_time]
    type = INSFVMomentumTimeDerivative<<<{"description": "Adds the time derivative term to the incompressible Navier-Stokes momentum equation.", "href": "INSFVMomentumTimeDerivative.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = vel_y
    rho<<<{"description": "The density functor. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = rho_mixture
    momentum_component<<<{"description": "The component of the momentum equation that this kernel applies to."}>>> = 'y'
  []
  [v_advection]
    type = INSFVMomentumAdvection<<<{"description": "Object for advecting momentum, e.g. rho*u", "href": "INSFVMomentumAdvection.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = vel_y
    advected_interp_method<<<{"description": "The interpolation to use for the advected quantity. Options are 'upwind', 'average', 'sou' (for second-order upwind), 'min_mod', 'vanLeer', 'quick', 'venkatakrishnan', and 'skewness-corrected' with the default being 'upwind'."}>>> = ${advected_interp_method}
    velocity_interp_method<<<{"description": "The interpolation to use for the velocity. Options are 'average' and 'rc' which stands for Rhie-Chow. The default is Rhie-Chow."}>>> = ${velocity_interp_method}
    rho<<<{"description": "Density functor. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = rho_mixture
    momentum_component<<<{"description": "The component of the momentum equation that this kernel applies to."}>>> = 'y'
  []
  [v_viscosity]
    type = INSFVMomentumDiffusion<<<{"description": "Implements the Laplace form of the viscous stress in the Navier-Stokes equation.", "href": "INSFVMomentumDiffusion.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = vel_y
    mu<<<{"description": "The viscosity. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = ${mu}
    momentum_component<<<{"description": "The component of the momentum equation that this kernel applies to."}>>> = 'y'
  []
  [v_pressure]
    type = INSFVMomentumPressure<<<{"description": "Introduces the coupled pressure term into the Navier-Stokes momentum equation.", "href": "INSFVMomentumPressure.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = vel_y
    momentum_component<<<{"description": "The component of the momentum equation that this kernel applies to."}>>> = 'y'
    pressure<<<{"description": "The pressure. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = pressure
  []
  [v_friction]
    type = PINSFVMomentumFriction<<<{"description": "Computes a friction force term on fluid in porous media in the Navier Stokes i-th momentum equation in Rhie-Chow (incompressible) contexts.", "href": "PINSFVMomentumFriction.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = vel_y
    momentum_component<<<{"description": "The component of the momentum equation that this kernel applies to."}>>> = 'y'
    u<<<{"description": "The velocity in the x direction. Superficial in the case of porous treatment, interstitial otherwise. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = vel_x
    v<<<{"description": "The velocity in the y direction. Superficial in the case of porous treatment, interstitial otherwise. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = vel_y
    Darcy_name<<<{"description": "Name of the Darcy coefficients property. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = 'Darcy_coeff'
    Forchheimer_name<<<{"description": "Name of the Forchheimer coefficients property. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = 'Forchheimer_coeff'
    rho<<<{"description": "The density. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = ${rho_liquid}
    mu<<<{"description": "The dynamic viscosity. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = ${mu}
    standard_friction_formulation<<<{"description": "Boolean to choose the type of friction formulation."}>>> = false
  []
  [v_buoyancy]
    type = INSFVMomentumBoussinesq<<<{"description": "Computes a body force for natural convection buoyancy.", "href": "INSFVMomentumBoussinesq.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = vel_y
    T_fluid<<<{"description": "the fluid temperature. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = T
    gravity<<<{"description": "Direction of the gravity vector"}>>> = '0 -9.81 0'
    rho<<<{"description": "The value for the density. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = '${rho_liquid}'
    ref_temperature<<<{"description": "The value for the reference temperature."}>>> = ${T_cold}
    momentum_component<<<{"description": "The component of the momentum equation that this kernel applies to."}>>> = 'y'
  []
  [v_gravity]
    type = INSFVMomentumGravity<<<{"description": "Computes a body force due to gravity in Rhie-Chow based simulations.", "href": "INSFVMomentumGravity.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = vel_y
    gravity<<<{"description": "Direction of the gravity vector"}>>> = '0 -9.81 0'
    rho<<<{"description": "The value for the density. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = '${rho_liquid}'
    momentum_component<<<{"description": "The component of the momentum equation that this kernel applies to."}>>> = 'y'
  []

  [T_time]
    type = INSFVEnergyTimeDerivative<<<{"description": "Adds the time derivative term to the incompressible Navier-Stokes energy equation.", "href": "INSFVEnergyTimeDerivative.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = T
    rho<<<{"description": "Density. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = rho_mixture
    dh_dt<<<{"description": "The time derivative of the specific enthalpy. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = dh_dt
  []
  [energy_advection]
    type = INSFVEnergyAdvection<<<{"description": "Advects energy, e.g. rho*cp*T. A user may still override what quantity is advected, but the default is rho*cp*T", "href": "INSFVEnergyAdvection.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = T
    velocity_interp_method<<<{"description": "The interpolation to use for the velocity. Options are 'average' and 'rc' which stands for Rhie-Chow. The default is Rhie-Chow."}>>> = ${velocity_interp_method}
    advected_interp_method<<<{"description": "The interpolation to use for the advected quantity. Options are 'upwind', 'average', 'sou' (for second-order upwind), 'min_mod', 'vanLeer', 'quick', 'venkatakrishnan', and 'skewness-corrected' with the default being 'upwind'."}>>> = ${advected_interp_method}
  []
  [energy_diffusion]
    type = FVDiffusion<<<{"description": "Computes residual for diffusion operator for finite volume method.", "href": "FVDiffusion.html"}>>>
    coeff<<<{"description": "diffusion coefficient. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = k_mixture
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = T
  []
  [energy_source]
    type = NSFVPhaseChangeSource<<<{"description": "Computes the energy source due to solidification/melting.", "href": "NSFVPhaseChangeSource.html"}>>>
    variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = T
    L<<<{"description": "Latent heat. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = ${L}
    liquid_fraction<<<{"description": "Liquid Fraction Functor. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = fl
    T_liquidus<<<{"description": "The liquidus temperature. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = ${T_liquidus}
    T_solidus<<<{"description": "The solidus temperature. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = ${T_solidus}
    rho<<<{"description": "The mixture density. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = 'rho_mixture'
  []
[]

[FVBCs<<<{"href": "../../syntax/FVBCs/index.html"}>>>]
  [walls-u]
    type = INSFVNoSlipWallBC<<<{"description": "Implements a no slip boundary condition.", "href": "../fvbcs/INSFVNoSlipWallBC.html"}>>>
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = 'left right top bottom'
    variable<<<{"description": "The name of the variable that this boundary condition applies to"}>>> = vel_x
    function<<<{"description": "The exact solution function."}>>> = 0
  []
  [walls-v]
    type = INSFVNoSlipWallBC<<<{"description": "Implements a no slip boundary condition.", "href": "../fvbcs/INSFVNoSlipWallBC.html"}>>>
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = 'left right top bottom'
    variable<<<{"description": "The name of the variable that this boundary condition applies to"}>>> = vel_y
    function<<<{"description": "The exact solution function."}>>> = 0
  []
  [hot_wall]
    type = FVDirichletBC<<<{"description": "Defines a Dirichlet boundary condition for finite volume method.", "href": "../fvbcs/FVDirichletBC.html"}>>>
    variable<<<{"description": "The name of the variable that this boundary condition applies to"}>>> = T
    value<<<{"description": "value to enforce at the boundary face"}>>> = '${T_hot}'
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = 'left'
  []
  [cold_wall]
    type = FVDirichletBC<<<{"description": "Defines a Dirichlet boundary condition for finite volume method.", "href": "../fvbcs/FVDirichletBC.html"}>>>
    variable<<<{"description": "The name of the variable that this boundary condition applies to"}>>> = T
    value<<<{"description": "value to enforce at the boundary face"}>>> = '${T_cold}'
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = 'right'
  []
[]

[FunctorMaterials<<<{"href": "../../syntax/FunctorMaterials/index.html"}>>>]
  [ins_fv]
    type = INSFVEnthalpyFunctorMaterial<<<{"description": "This is the material class used to compute enthalpy for the incompressible/weakly-compressible finite-volume implementation of the Navier-Stokes equations.", "href": "../functormaterials/INSFVEnthalpyFunctorMaterial.html"}>>>
    rho<<<{"description": "The value for the density. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = rho_mixture
    cp<<<{"description": "The constant value for the specific heat capacity. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = cp_mixture
    temperature<<<{"description": "the temperature. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = 'T'
  []
  [eff_cp]
    type = NSFVMixtureFunctorMaterial<<<{"description": "Compute the arithmetic mean of material properties using a phase fraction.", "href": "../functormaterials/NSFVMixtureFunctorMaterial.html"}>>>
    phase_2_names<<<{"description": "The names of the properties for phase 2. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = '${cp_solid} ${k_solid} ${rho_solid}'
    phase_1_names<<<{"description": "The names of the properties for phase 1. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = '${cp_liquid} ${k_liquid} ${rho_liquid}'
    prop_names<<<{"description": "The name of the mixture properties output from the material. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = 'cp_mixture k_mixture rho_mixture'
    phase_1_fraction<<<{"description": "Phase 1 fraction. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = fl
  []
  [mushy_zone_resistance]
    type = INSFVMushyPorousFrictionFunctorMaterial<<<{"description": "Computes the mushy zone porous resistance for solidification/melting problems.", "href": "../functormaterials/INSFVMushyPorousFrictionFunctorMaterial.html"}>>>
    liquid_fraction<<<{"description": "Liquid Fraction Functor. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = 'fl'
    mu<<<{"description": "The liquid dynamic viscosity. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = '${mu}'
    rho_l<<<{"description": "The liquid density (not the mixture one). A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = '${rho_liquid}'
    dendrite_spacing_scaling<<<{"description": "The dendrite spacing scaling. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = 1e-1
  []
  [friction]
    type = ADGenericVectorFunctorMaterial<<<{"description": "FunctorMaterial object for declaring vector properties that are populated by evaluation of functor (constants, functions, variables, matprops) object.", "href": "../functormaterials/GenericVectorFunctorMaterial.html"}>>>
    prop_names<<<{"description": "The names of the properties this material will have"}>>> = 'Darcy_coeff Forchheimer_coeff'
    prop_values<<<{"description": "The corresponding names of the functors that are going to provide the values for the vector material properties. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = 'darcy_coef darcy_coef darcy_coef fch_coef fch_coef fch_coef'
  []
  [const_functor]
    type = ADGenericFunctorMaterial<<<{"description": "FunctorMaterial object for declaring properties that are populated by evaluation of a Functor (a constant, variable, function or functor material property) objects.", "href": "../functormaterials/GenericFunctorMaterial.html"}>>>
    prop_names<<<{"description": "The names of the properties this material will have"}>>> = 'alpha_b'
    prop_values<<<{"description": "The corresponding names of the functors that are going to provide the values for the variables. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = '${alpha_b}'
  []
[]

[Executioner<<<{"href": "../../syntax/Executioner/index.html"}>>>]
  type = Transient

  # Time-stepping parameters
  start_time = 0.0
  end_time = 200.0
  num_steps = 2

  [TimeStepper<<<{"href": "../../syntax/Executioner/TimeStepper/index.html"}>>>]
    type = IterationAdaptiveDT
    # Raise time step often but not by as much
    # There's a rough spot for convergence near 10% fluid fraction
    optimal_iterations = 15
    growth_factor = 1.5
    dt = 0.1
  []

  solve_type = 'NEWTON'
  petsc_options_iname = '-pc_type -pc_factor_shift_type'
  petsc_options_value = 'lu NONZERO'
  nl_rel_tol = 1e-6
  nl_max_its = 30
  line_search = 'none'
[]

[Postprocessors<<<{"href": "../../syntax/Postprocessors/index.html"}>>>]
  [ave_p]
    type = ElementAverageValue<<<{"description": "Computes the volumetric average of a variable", "href": "../postprocessors/ElementAverageValue.html"}>>>
    variable<<<{"description": "The name of the variable that this object operates on"}>>> = 'pressure'
    execute_on<<<{"description": "The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html."}>>> = 'INITIAL TIMESTEP_END'
  []
  [ave_fl]
    type = ElementAverageValue<<<{"description": "Computes the volumetric average of a variable", "href": "../postprocessors/ElementAverageValue.html"}>>>
    variable<<<{"description": "The name of the variable that this object operates on"}>>> = 'fl'
    execute_on<<<{"description": "The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html."}>>> = 'INITIAL TIMESTEP_END'
  []
  [ave_T]
    type = ElementAverageValue<<<{"description": "Computes the volumetric average of a variable", "href": "../postprocessors/ElementAverageValue.html"}>>>
    variable<<<{"description": "The name of the variable that this object operates on"}>>> = 'T'
    execute_on<<<{"description": "The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html."}>>> = 'INITIAL TIMESTEP_END'
  []
[]

[VectorPostprocessors<<<{"href": "../../syntax/VectorPostprocessors/index.html"}>>>]
  [vel_x]
    type = ElementValueSampler<<<{"description": "Samples values of variables on elements.", "href": "../vectorpostprocessors/ElementValueSampler.html"}>>>
    variable<<<{"description": "The names of the variables that this VectorPostprocessor operates on"}>>> = 'vel_x fl'
    sort_by<<<{"description": "What to sort the samples by"}>>> = 'x'
  []
[]

[Outputs<<<{"href": "../../syntax/Outputs/index.html"}>>>]
  exodus<<<{"description": "Output the results using the default settings for Exodus output."}>>> = true
  csv<<<{"description": "Output the scalar variable and postprocessors to a *.csv file using the default CSV output."}>>> = true
[]
(moose/modules/navier_stokes/examples/solidification/gallium_melting.i)

Input Parameters

  • LLatent heat. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

    C++ Type:MooseFunctorName

    Unit:(no unit assumed)

    Controllable:No

    Description:Latent heat. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

  • T_liquidusThe liquidus temperature. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

    C++ Type:MooseFunctorName

    Unit:(no unit assumed)

    Controllable:No

    Description:The liquidus temperature. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

  • T_solidusThe solidus temperature. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

    C++ Type:MooseFunctorName

    Unit:(no unit assumed)

    Controllable:No

    Description:The solidus temperature. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

  • liquid_fractionLiquid Fraction Functor. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

    C++ Type:MooseFunctorName

    Unit:(no unit assumed)

    Controllable:No

    Description:Liquid Fraction Functor. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

  • rhoThe mixture density. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

    C++ Type:MooseFunctorName

    Unit:(no unit assumed)

    Controllable:No

    Description:The mixture density. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

  • variableThe name of the variable that this residual object operates on

    C++ Type:NonlinearVariableName

    Unit:(no unit assumed)

    Controllable:No

    Description:The name of the variable that this residual object operates on

Required Parameters

  • blockThe list of blocks (ids or names) that this object will be applied

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

    Controllable:No

    Description:The list of blocks (ids or names) that this object will be applied

  • matrix_onlyFalseWhether this object is only doing assembly to matrices (no vectors)

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether this object is only doing assembly to matrices (no vectors)

Optional Parameters

  • absolute_value_vector_tagsThe tags for the vectors this residual object should fill with the absolute value of the residual contribution

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

    Controllable:No

    Description:The tags for the vectors this residual object should fill with the absolute value of the residual contribution

  • extra_matrix_tagsThe extra tags for the matrices this Kernel should fill

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

    Controllable:No

    Description:The extra tags for the matrices this Kernel should fill

  • extra_vector_tagsThe extra tags for the vectors this Kernel should fill

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

    Controllable:No

    Description:The extra tags for the vectors this Kernel should fill

  • matrix_tagssystemThe tag for the matrices this Kernel should fill

    Default:system

    C++ Type:MultiMooseEnum

    Options:nontime, system

    Controllable:No

    Description:The tag for the matrices this Kernel should fill

  • vector_tagsnontimeThe tag for the vectors this Kernel should fill

    Default:nontime

    C++ Type:MultiMooseEnum

    Options:nontime, time

    Controllable:No

    Description:The tag for the vectors this Kernel should fill

Contribution To Tagged Field Data 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:Yes

    Description:Set the enabled status of the MooseObject.

  • implicitTrueDetermines whether this object is calculated using an implicit or explicit form

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Determines whether this object is calculated using an implicit or explicit form

  • seed0The seed for the master random number generator

    Default:0

    C++ Type:unsigned int

    Controllable:No

    Description:The seed for the master random number generator

  • use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.

Advanced Parameters

  • ghost_layers1The number of layers of elements to ghost.

    Default:1

    C++ Type:unsigned short

    Controllable:No

    Description:The number of layers of elements to ghost.

  • use_point_neighborsFalseWhether to use point neighbors, which introduces additional ghosting to that used for simple face neighbors.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to use point neighbors, which introduces additional ghosting to that used for simple face neighbors.

Parallel Ghosting 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.

Material Property Retrieval Parameters

References

  1. Chie Gau and Rc Viskanta. Melting and solidification of a pure metal on a vertical wall. Journal of Heat and Mass Transfer, 108:174–181, 1986.[BibTeX]