LCOV - code coverage report
Current view: top level - src/materials - LevelSetFluidMaterial.C (source / functions) Hit Total Coverage
Test: idaholab/malamute: 0e4c8a Lines: 34 35 97.1 %
Date: 2025-08-02 07:01:39 Functions: 3 3 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /****************************************************************************/
       2             : /*                        DO NOT MODIFY THIS HEADER                         */
       3             : /*                                                                          */
       4             : /* MALAMUTE: MOOSE Application Library for Advanced Manufacturing UTilitiEs */
       5             : /*                                                                          */
       6             : /*           Copyright 2021 - 2024, Battelle Energy Alliance, LLC           */
       7             : /*                           ALL RIGHTS RESERVED                            */
       8             : /****************************************************************************/
       9             : 
      10             : #include "LevelSetFluidMaterial.h"
      11             : 
      12             : registerADMooseObject("MalamuteApp", LevelSetFluidMaterial);
      13             : 
      14             : InputParameters
      15          16 : LevelSetFluidMaterial::validParams()
      16             : {
      17          16 :   InputParameters params = ADMaterial::validParams();
      18          16 :   params.addClassDescription("Computes fluid properties in melt pool heat equations.");
      19          32 :   params.addRequiredParam<Real>("rho_g", "Gas density.");
      20          32 :   params.addRequiredParam<Real>("rho_s", "Solid density.");
      21          32 :   params.addRequiredParam<Real>("rho_l", "Liquid density.");
      22          32 :   params.addRequiredParam<Real>("mu_g", "Gas viscosity.");
      23          32 :   params.addRequiredParam<Real>("mu_l", "Liquid viscosity.");
      24          32 :   params.addRequiredParam<Real>("permeability_constant", "Permeability constant");
      25          16 :   return params;
      26           0 : }
      27             : 
      28          12 : LevelSetFluidMaterial::LevelSetFluidMaterial(const InputParameters & parameters)
      29             :   : ADMaterial(parameters),
      30          12 :     _heaviside_function(getADMaterialProperty<Real>("heaviside_function")),
      31          12 :     _rho(declareADProperty<Real>("rho")),
      32          12 :     _mu(declareADProperty<Real>("mu")),
      33          24 :     _rho_g(getParam<Real>("rho_g")),
      34          24 :     _rho_l(getParam<Real>("rho_l")),
      35          24 :     _rho_s(getParam<Real>("rho_s")),
      36          24 :     _mu_g(getParam<Real>("mu_g")),
      37          24 :     _mu_l(getParam<Real>("mu_l")),
      38          24 :     _f_l(getADMaterialProperty<Real>("liquid_mass_fraction")),
      39          24 :     _f_s(getADMaterialProperty<Real>("solid_mass_fraction")),
      40          24 :     _g_l(getADMaterialProperty<Real>("liquid_volume_fraction")),
      41          24 :     _g_s(getADMaterialProperty<Real>("solid_volume_fraction")),
      42          12 :     _permeability(declareADProperty<Real>("permeability")),
      43          36 :     _K0(getParam<Real>("permeability_constant"))
      44             : {
      45          12 : }
      46             : 
      47             : void
      48      362800 : LevelSetFluidMaterial::computeQpProperties()
      49             : {
      50      725600 :   ADReal rho_m = _g_s[_qp] * _rho_s + _g_l[_qp] * _rho_l;
      51     1088400 :   _rho[_qp] = (1 - _heaviside_function[_qp]) * rho_m + _heaviside_function[_qp] * _rho_g;
      52             : 
      53      362800 :   ADReal mu_m = _mu_l * rho_m / _rho_l;
      54     1088400 :   _mu[_qp] = (1 - _heaviside_function[_qp]) * mu_m + _heaviside_function[_qp] * _mu_g;
      55             : 
      56     1088400 :   ADReal f_l = _f_l[_qp] * (1 - _heaviside_function[_qp]);
      57             : 
      58     1088400 :   _permeability[_qp] = mu_m / _K0 * Utility::pow<2>(1 - f_l) / (Utility::pow<3>(f_l) + 1.0e-3);
      59      362800 : }

Generated by: LCOV version 1.14