https://mooseframework.inl.gov
Loading...
Searching...
No Matches
NSLiquidFractionAux.C
Go to the documentation of this file.
1//* This file is part of the MOOSE framework
2//* https://mooseframework.inl.gov
3//*
4//* All rights reserved, see COPYRIGHT for full restrictions
5//* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6//*
7//* Licensed under LGPL 2.1, please see LICENSE for details
8//* https://www.gnu.org/licenses/lgpl-2.1.html
9
10#include "NSLiquidFractionAux.h"
11#include "MooseMesh.h"
12#include "NS.h"
13
15
18{
20 params.addClassDescription("Computes liquid fraction $f_l$ given the temperature.");
21 params.addRequiredParam<MooseFunctorName>(NS::temperature, "The temperature.");
22 params.addRequiredParam<MooseFunctorName>("T_solidus", "The solidus temperature.");
23 params.addRequiredParam<MooseFunctorName>("T_liquidus", "The liquidus temperature.");
24 return params;
25}
26
28 : AuxKernel(parameters),
29 _T(getFunctor<Real>(NS::temperature)),
30 _T_solidus(getFunctor<Real>("T_solidus")),
31 _T_liquidus(getFunctor<Real>("T_liquidus"))
32{
33}
34
35Real
37{
38 using namespace MetaPhysicL;
39
40 const auto elem_arg = makeElemArg(_current_elem);
41 const auto state = determineState();
42
43 if (_T_liquidus(elem_arg, state) < _T_solidus(elem_arg, state))
44 mooseError("The specified liquidus temperature is smaller than the solidus temperature.");
45
46 Real fl = (_T(elem_arg, state) - _T_solidus(elem_arg, state)) /
47 (_T_liquidus(elem_arg, state) - _T_solidus(elem_arg, state));
48
49 fl = (fl > 1.0) ? 1.0 : fl;
50 fl = (fl < 0.0) ? 0.0 : fl;
51
52 return fl;
53}
registerMooseObject("NavierStokesApp", NSLiquidFractionAux)
const Elem *const & _current_elem
static InputParameters validParams()
Moose::ElemArg makeElemArg(const Elem *elem, bool correct_skewnewss=false) const
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
void mooseError(Args &&... args) const
Computes liquid fraction based on temperature fields.
const Moose::Functor< Real > & _T
The temperature.
const Moose::Functor< Real > & _T_liquidus
The liquidus temperture.
const Moose::Functor< Real > & _T_solidus
The solidus temperature.
virtual Real computeValue()
NSLiquidFractionAux(const InputParameters &parameters)
static InputParameters validParams()
Moose::StateArg determineState() const
static const std::string temperature
Definition NS.h:60