www.mooseframework.org
MooseParsedGradFunction.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 
12 
13 registerMooseObjectAliased("MooseApp", MooseParsedGradFunction, "ParsedGradFunction");
14 
16 
19 {
22  params.addParam<std::string>("value", "0", "User defined function.");
23  params.addParam<std::string>("grad_x", "0", "Partial with respect to x.");
24  params.addParam<std::string>("grad_y", "0", "Partial with respect to y.");
25  params.addParam<std::string>("grad_z", "0", "Partial with respect to z.");
26  return params;
27 }
28 
30  : Function(parameters),
31  MooseParsedFunctionBase(parameters),
32  _value(verifyFunction(getParam<std::string>("value"))),
33  _grad_value(verifyFunction(std::string("{") + getParam<std::string>("grad_x") + "}{" +
34  getParam<std::string>("grad_y") + "}{" +
35  getParam<std::string>("grad_z") + "}"))
36 {
37 }
38 
40 
41 Real
42 MooseParsedGradFunction::value(Real t, const Point & p) const
43 {
44  // Return a scalar value
45  return _function_ptr->evaluate<Real>(t, p);
46 }
47 
48 RealGradient
49 MooseParsedGradFunction::gradient(Real t, const Point & p) const
50 {
51  // Return gradient (RealGradient = RealVectorValue)
52  return _grad_function_ptr->evaluate<RealVectorValue>(t, p);
53 }
54 
56 MooseParsedGradFunction::vectorValue(Real /*t*/, const Point & /*p*/) const
57 {
58  mooseError("The vectorValue method is not defined in ParsedGradFunction");
59 }
60 
61 void
63 {
64  THREAD_ID tid = 0;
65  if (isParamValid("_tid"))
66  tid = getParam<THREAD_ID>("_tid");
67 
68  if (!_function_ptr)
70  libmesh_make_unique<MooseParsedFunctionWrapper>(_pfb_feproblem, _value, _vars, _vals, tid);
71 
72  if (!_grad_function_ptr)
73  _grad_function_ptr = libmesh_make_unique<MooseParsedFunctionWrapper>(
75 }
MooseParsedFunctionBase::validParams
static InputParameters validParams()
Class constructor for the interface.
Definition: MooseParsedFunctionBase.C:20
THREAD_ID
unsigned int THREAD_ID
Definition: MooseTypes.h:196
MooseParsedGradFunction::validParams
static InputParameters validParams()
Class constructor.
Definition: MooseParsedGradFunction.C:18
MooseParsedFunctionBase::_pfb_feproblem
FEProblemBase & _pfb_feproblem
Reference to the FEProblemBase class for this object.
Definition: MooseParsedFunctionBase.h:69
MooseObject::mooseError
void mooseError(Args &&... args) const
Definition: MooseObject.h:141
MooseObject::isParamValid
bool isParamValid(const std::string &name) const
Test if the supplied parameter is valid.
Definition: MooseObject.h:100
MooseParsedGradFunction::initialSetup
virtual void initialSetup() override
Creates two libMesh::ParsedFunction objects for returning a vector via the 'gradient' method and a sc...
Definition: MooseParsedGradFunction.C:62
MooseParsedFunctionBase::_function_ptr
std::unique_ptr< MooseParsedFunctionWrapper > _function_ptr
Pointer to the Parsed function wrapper object for the scalar.
Definition: MooseParsedFunctionBase.h:78
MooseParsedFunctionWrapper.h
InputParameters::addParam
void addParam(const std::string &name, const S &value, const std::string &doc_string)
These methods add an option parameter and a documentation string to the InputParameters object.
Definition: InputParameters.h:1198
libMesh::RealVectorValue
VectorValue< Real > RealVectorValue
Definition: Assembly.h:30
MooseParsedGradFunction::gradient
virtual RealGradient gradient(Real t, const Point &p) const override
Compute the gradient of the function.
Definition: MooseParsedGradFunction.C:49
InputParameters
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
Definition: InputParameters.h:53
MooseParsedGradFunction::_value
std::string _value
String for the scalar function string.
Definition: MooseParsedGradFunction.h:74
defineLegacyParams
defineLegacyParams(MooseParsedGradFunction)
MooseParsedFunctionBase::_vals
const std::vector< std::string > _vals
Values passed by the user, they may be Reals for Postprocessors.
Definition: MooseParsedFunctionBase.h:75
MooseParsedGradFunction::vectorValue
virtual RealVectorValue vectorValue(Real t, const Point &p) const override
Method invalid for ParsedGradFunction.
Definition: MooseParsedGradFunction.C:56
MooseParsedGradFunction::MooseParsedGradFunction
MooseParsedGradFunction(const InputParameters &parameters)
Definition: MooseParsedGradFunction.C:29
MooseParsedGradFunction
This class is similar to ParsedFunction except it also supports returning the gradient of the functio...
Definition: MooseParsedGradFunction.h:29
MooseParsedFunctionBase
Adds user facing parameters for parsed function.
Definition: MooseParsedFunctionBase.h:41
Function::validParams
static InputParameters validParams()
Class constructor.
Definition: Function.C:15
registerMooseObjectAliased
registerMooseObjectAliased("MooseApp", MooseParsedGradFunction, "ParsedGradFunction")
std
Definition: TheWarehouse.h:80
MooseParsedGradFunction::_grad_value
std::string _grad_value
String for the gradient, vector function string.
Definition: MooseParsedGradFunction.h:77
MooseParsedGradFunction.h
MooseParsedGradFunction::~MooseParsedGradFunction
virtual ~MooseParsedGradFunction()
Destructor necessary for std::unique_ptr usage.
Definition: MooseParsedGradFunction.C:39
MooseParsedGradFunction::_grad_function_ptr
std::unique_ptr< MooseParsedFunctionWrapper > _grad_function_ptr
Pointer to the Parsed function wrapper object for the gradient.
Definition: MooseParsedGradFunction.h:80
Function
Base class for function objects.
Definition: Function.h:40
MooseParsedGradFunction::value
virtual Real value(Real t, const Point &p) const override
Return a scalar value from the function.
Definition: MooseParsedGradFunction.C:42
MooseParsedFunctionBase::_vars
const std::vector< std::string > _vars
Variables passed to libMesh::ParsedFunction.
Definition: MooseParsedFunctionBase.h:72