Melt pool INS residual material

Computes extra residuals from melt pool for the INS equations.

Description

The momentum conservation equations(Wen and Shin, 2010) are described by

The first term on the right is a Darcy term, representing the damping force when fluid passes through mushy zone. is the isotropic permeability given by where and are constants and is fluid mass fraction.

The second and third terms represent surface tension and Marangoni forces at the free surfaces. The surface tension acts in the normal direction while Marangoni force acts in the tangential direction of the free surface. The surface gradient is expressed as

The fourth term is the recoil pressure at the keyhole(Tan et al., 2013).

The mass conservation equation(Wen and Shin, 2010; Esmaeeli and Tryggvason, 2004) is modified to account for the phase change from liquid to vapor: where is mass transfer rate (INSMeltPoolMassTransferMaterial) and and are gas density and liquid density, respectively.

Example Input Syntax

[Materials<<<{"href": "../../syntax/Materials/index.html"}>>>]
  [ins_melt_pool_mat]
    type = INSMeltPoolMaterial<<<{"description": "Computes extra residuals from melt pool for the INS equations.", "href": "INSMeltPoolMaterial.html"}>>>
    level_set_gradient<<<{"description": "Regularized gradient of Level set variable"}>>> = grad_ls
    velocity<<<{"description": "The velocity"}>>> = velocity
    pressure<<<{"description": "The pressure"}>>> = p
    alpha<<<{"description": "Multiplicative factor on the stabilization parameter tau."}>>> = .1
    temperature<<<{"description": "The temperature"}>>> = temp
    curvature<<<{"description": "Regularized curvature variable"}>>> = curvature
    surface_tension<<<{"description": "Surface tension coefficient."}>>> = 1.169
    thermal_capillary<<<{"description": "Thermalcapillary coefficient."}>>> = -4.3e-4
    rho_l<<<{"description": "Liquid density."}>>> = 8000
    rho_g<<<{"description": "Gas density."}>>> = 1.184
    outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = all
    output_properties<<<{"description": "List of material properties, from this material, to output (outputs must also be defined to an output type)"}>>> = melt_pool_mass_rate
    cp_name<<<{"description": "The name of the specific heat capacity"}>>> = specific_heat
    k_name<<<{"description": "the name of the thermal conductivity material property"}>>> = thermal_conductivity
  []
[]
(test/tests/melt_pool_fluid/fluid.i)

Input Parameters

  • curvatureRegularized curvature variable

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Regularized curvature variable

  • level_set_gradientRegularized gradient of Level set variable

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Regularized gradient of Level set variable

  • pressureThe pressure

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The pressure

  • rho_gGas density.

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Gas density.

  • rho_lLiquid density.

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Liquid density.

  • surface_tensionSurface tension coefficient.

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Surface tension coefficient.

  • temperatureThe temperature

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The temperature

  • thermal_capillaryThermalcapillary coefficient.

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Thermalcapillary coefficient.

  • velocityThe velocity

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The velocity

Required Parameters

  • alpha1Multiplicative factor on the stabilization parameter tau.

    Default:1

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Multiplicative factor on the stabilization parameter tau.

  • 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

  • boundaryThe list of boundaries (ids or names) from the mesh where this object applies

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

    Controllable:No

    Description:The list of boundaries (ids or names) from the mesh where this object applies

  • computeTrueWhen false, MOOSE will not call compute methods on this material. The user must call computeProperties() after retrieving the MaterialBase via MaterialBasePropertyInterface::getMaterialBase(). Non-computed MaterialBases are not sorted for dependencies.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:When false, MOOSE will not call compute methods on this material. The user must call computeProperties() after retrieving the MaterialBase via MaterialBasePropertyInterface::getMaterialBase(). Non-computed MaterialBases are not sorted for dependencies.

  • constant_onNONEWhen ELEMENT, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps.When SUBDOMAIN, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps. Evaluations on element qps will be skipped

    Default:NONE

    C++ Type:MooseEnum

    Options:NONE, ELEMENT, SUBDOMAIN

    Controllable:No

    Description:When ELEMENT, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps.When SUBDOMAIN, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps. Evaluations on element qps will be skipped

  • cp_namecpThe name of the specific heat capacity

    Default:cp

    C++ Type:MaterialPropertyName

    Unit:(no unit assumed)

    Controllable:No

    Description:The name of the specific heat capacity

  • declare_suffixAn optional suffix parameter that can be appended to any declared 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 declared properties. The suffix will be prepended with a '_' character.

  • grad_k_namegrad_kthe name of the gradient of the thermal conductivity material property

    Default:grad_k

    C++ Type:MaterialPropertyName

    Unit:(no unit assumed)

    Controllable:No

    Description:the name of the gradient of the thermal conductivity material property

  • k_namekthe name of the thermal conductivity material property

    Default:k

    C++ Type:MaterialPropertyName

    Unit:(no unit assumed)

    Controllable:No

    Description:the name of the thermal conductivity material property

  • mu_namemuThe name of the dynamic viscosity

    Default:mu

    C++ Type:MaterialPropertyName

    Unit:(no unit assumed)

    Controllable:No

    Description:The name of the dynamic viscosity

  • rho_namerhoThe name of the density

    Default:rho

    C++ Type:MaterialPropertyName

    Unit:(no unit assumed)

    Controllable:No

    Description:The name of the density

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: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

  • output_propertiesList of material properties, from this material, to output (outputs must also be defined to an output type)

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

    Controllable:No

    Description:List of material properties, from this material, to output (outputs must also be defined to an output type)

  • outputsnone Vector of output names where you would like to restrict the output of variables(s) associated with this object

    Default:none

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

    Controllable:No

    Description:Vector of output names where you would like to restrict the output of variables(s) associated with this object

Outputs 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

Input Files

References

  1. Asghar Esmaeeli and Grétar Tryggvason. Computations of film boiling. part i: numerical method. International Journal of Heat and Mass Transfer, 47(25):5451 – 5461, 2004. URL: http://www.sciencedirect.com/science/article/pii/S0017931004002947, doi:https://doi.org/10.1016/j.ijheatmasstransfer.2004.07.027.[BibTeX]
  2. Wenda Tan, Neil S Bailey, and Yung C Shin. Investigation of keyhole plume and molten pool based on a three-dimensional dynamic model with sharp interface formulation. Journal of Physics D: Applied Physics, 46(5):055501, 2013.[BibTeX]
  3. Shaoyi Wen and Yung C. Shin. Modeling of transport phenomena during the coaxial laser direct deposition process. Journal of Applied Physics, 108(4):044908, 2010. doi:10.1063/1.3474655.[BibTeX]