www.mooseframework.org
XFEMMarkerAux.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 "XFEMMarkerAux.h"
11 
12 #include "XFEM.h"
13 
15 
16 template <>
17 InputParameters
19 {
20  InputParameters params = validParams<AuxKernel>();
21  return params;
22 }
23 
24 XFEMMarkerAux::XFEMMarkerAux(const InputParameters & parameters) : AuxKernel(parameters)
25 {
26  FEProblemBase * fe_problem = dynamic_cast<FEProblemBase *>(&_subproblem);
27  if (fe_problem == NULL)
28  mooseError("Problem casting _subproblem to FEProblemBase in XFEMMarkerAux");
29  _xfem = MooseSharedNamespace::dynamic_pointer_cast<XFEM>(fe_problem->getXFEM());
30  if (_xfem == nullptr)
31  mooseError("Problem casting to XFEM in XFEMMarkerAux");
32  if (isNodal())
33  mooseError("XFEMMarkerAux can only be run on an element variable");
34 }
35 
36 Real
38 {
39  bool isCTE = _xfem->isElemAtCrackTip(_current_elem);
40  Real value = 0.0;
41  if (isCTE)
42  {
43  value = 1.0;
44  }
45 
46  return value;
47 }
XFEMMarkerAux.h
XFEMMarkerAux::_xfem
std::shared_ptr< XFEM > _xfem
Definition: XFEMMarkerAux.h:27
XFEMMarkerAux::computeValue
virtual Real computeValue()
Definition: XFEMMarkerAux.C:37
validParams< XFEMMarkerAux >
InputParameters validParams< XFEMMarkerAux >()
Definition: XFEMMarkerAux.C:18
registerMooseObject
registerMooseObject("XFEMApp", XFEMMarkerAux)
XFEM.h
XFEMMarkerAux::XFEMMarkerAux
XFEMMarkerAux(const InputParameters &parameters)
Definition: XFEMMarkerAux.C:24
XFEMMarkerAux
Definition: XFEMMarkerAux.h:16