LCOV - code coverage report
Current view: top level - src/materials - MushyZoneMaterial.C (source / functions) Hit Total Coverage
Test: idaholab/malamute: 0e4c8a Lines: 28 31 90.3 %
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 "MushyZoneMaterial.h"
      11             : 
      12             : registerMooseObject("MalamuteApp", MushyZoneMaterial);
      13             : 
      14             : InputParameters
      15          20 : MushyZoneMaterial::validParams()
      16             : {
      17          20 :   InputParameters params = ADMaterial::validParams();
      18          20 :   params.addClassDescription("Computes material properties in the mushy zone.");
      19          40 :   params.addRequiredCoupledVar("temperature", "Temperature variable");
      20          40 :   params.addRequiredParam<Real>("rho_s", "Solid density.");
      21          40 :   params.addRequiredParam<Real>("rho_l", "Liquid density.");
      22          40 :   params.addRequiredParam<Real>("solidus_temperature", "Solidus temperature.");
      23          40 :   params.addRequiredParam<Real>("liquidus_temperature", "Liquidus temperature.");
      24          20 :   return params;
      25           0 : }
      26             : 
      27          15 : MushyZoneMaterial::MushyZoneMaterial(const InputParameters & parameters)
      28             :   : ADMaterial(parameters),
      29          15 :     _temp(adCoupledValue("temperature")),
      30          30 :     _solidus_temperature(getParam<Real>("solidus_temperature")),
      31          30 :     _liquidus_temperature(getParam<Real>("liquidus_temperature")),
      32          15 :     _f_l(declareADProperty<Real>("liquid_mass_fraction")),
      33          15 :     _f_s(declareADProperty<Real>("solid_mass_fraction")),
      34          15 :     _g_l(declareADProperty<Real>("liquid_volume_fraction")),
      35          15 :     _g_s(declareADProperty<Real>("solid_volume_fraction")),
      36          30 :     _rho_s(getParam<Real>("rho_s")),
      37          45 :     _rho_l(getParam<Real>("rho_l"))
      38             : {
      39          15 : }
      40             : 
      41             : void
      42      490800 : MushyZoneMaterial::computeQpProperties()
      43             : {
      44      490800 :   _f_l[_qp] = 1;
      45             : 
      46      490800 :   if (_temp[_qp] < _solidus_temperature)
      47      490800 :     _f_l[_qp] = 0;
      48           0 :   else if (_temp[_qp] >= _solidus_temperature && _temp[_qp] <= _liquidus_temperature)
      49             :     _f_l[_qp] =
      50           0 :         (_temp[_qp] - _solidus_temperature) / (_liquidus_temperature - _solidus_temperature);
      51             : 
      52      981600 :   _f_s[_qp] = 1.0 - _f_l[_qp];
      53             : 
      54     1963200 :   _g_l[_qp] = _f_l[_qp] / _rho_l / ((1 - _f_l[_qp]) / _rho_s + _f_l[_qp] / _rho_l);
      55      981600 :   _g_s[_qp] = 1.0 - _g_l[_qp];
      56      490800 : }

Generated by: LCOV version 1.14