https://mooseframework.inl.gov
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).");
20  params.addRequiredCoupledVar(
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 }
const bool _use_modified_reinitilization_formulation
Use modified reinitilization formulation (see Olsson et. al. (2007), section 2.2.1) ...
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
static InputParameters validParams()
const ADTemplateVariableValue< T > & _u
registerMooseObject("LevelSetApp", LevelSetOlssonReinitialization)
DualNumber< Real, DNDerivativeType, true > ADReal
void addRequiredParam(const std::string &name, const std::string &doc_string)
Real f(Real x)
Test function for Brents method.
const PostprocessorValue & _epsilon
Interface thickness.
const ADVariableGradient & _grad_levelset_0
Gradient of the level set variable at time, = 0.
Implements the re-initialization equation proposed by Olsson et.
LevelSetOlssonReinitialization(const InputParameters &parameters)
void addRequiredCoupledVar(const std::string &name, const std::string &doc_string)
const ADTemplateVariableGradient< T > & _grad_u
virtual ADRealVectorValue precomputeQpResidual() override
void addClassDescription(const std::string &doc_string)
unsigned int _qp