https://mooseframework.inl.gov
Loading...
Searching...
No Matches
LevelSetOlssonReinitialization.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// MOOSE includes
12
14
17{
19 params.addClassDescription("The re-initialization equation defined by Olsson et. al. (2007).");
21 "phi_0", "The level set variable to be reinitialized as signed distance function.");
22 params.addParam<bool>(
23 "use_modified_reinitilization_formulation",
24 false,
25 "Use the modified reinitilization formulation (Olsson et. al. (2007), section 2.2.1).");
26 params.addRequiredParam<PostprocessorName>(
27 "epsilon", "The epsilon coefficient to be used in the reinitialization calculation.");
28 return params;
29}
30
32 : ADKernelGrad(parameters),
33 _grad_levelset_0(adCoupledGradient("phi_0")),
34 _epsilon(getPostprocessorValue("epsilon")),
35 _use_modified_reinitilization_formulation(
36 getParam<bool>("use_modified_reinitilization_formulation"))
37{
38}
39
42{
43 ADReal s = _grad_levelset_0[_qp].norm() + std::numeric_limits<ADReal>::epsilon();
45 ADRealVectorValue f = _u[_qp] * (1 - _u[_qp]) * n_hat;
47 return (-f + _epsilon * (_grad_u[_qp] * n_hat) * n_hat);
48 else
49 return (-f + _epsilon * _grad_u[_qp]);
50}
DualNumber< Real, DNDerivativeType, true > ADReal
Real f(Real x)
Test function for Brents method.
registerMooseObject("LevelSetApp", LevelSetOlssonReinitialization)
static InputParameters validParams()
const ADTemplateVariableValue< T > & _u
const ADTemplateVariableGradient< T > & _grad_u
void addRequiredCoupledVar(const std::string &name, const std::string &doc_string)
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
unsigned int _qp
Implements the re-initialization equation proposed by Olsson et.
const PostprocessorValue & _epsilon
Interface thickness.
LevelSetOlssonReinitialization(const InputParameters &parameters)
virtual ADRealVectorValue precomputeQpResidual() override
const bool _use_modified_reinitilization_formulation
Use modified reinitilization formulation (see Olsson et. al. (2007), section 2.2.1)
const ADVariableGradient & _grad_levelset_0
Gradient of the level set variable at time, \tau = 0.