www.mooseframework.org
peridynamics
src
postprocessors
NodalFunctionsL2NormPD.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 "
NodalFunctionsL2NormPD.h
"
11
#include "Function.h"
12
13
registerMooseObject
(
"PeridynamicsApp"
,
NodalFunctionsL2NormPD
);
14
15
template
<>
16
InputParameters
17
validParams<NodalFunctionsL2NormPD>
()
18
{
19
InputParameters params =
validParams<NodalIntegralPostprocessorBasePD>
();
20
params.addClassDescription(
"Class for computing the L2 norm of functions"
);
21
22
params.addRequiredParam<std::vector<FunctionName>>(
"functions"
,
"The known functions"
);
23
24
return
params;
25
}
26
27
NodalFunctionsL2NormPD::NodalFunctionsL2NormPD
(
const
InputParameters & parameters)
28
:
NodalIntegralPostprocessorBasePD
(parameters)
29
{
30
const
std::vector<FunctionName> & func_names(getParam<std::vector<FunctionName>>(
"functions"
));
31
32
_n_funcs
= func_names.size();
33
34
for
(
unsigned
int
i = 0; i <
_n_funcs
; ++i)
35
_funcs
.push_back(&getFunctionByName(func_names[i]));
36
}
37
38
Real
39
NodalFunctionsL2NormPD::getValue
()
40
{
41
return
std::sqrt(
NodalIntegralPostprocessorBasePD::getValue
());
42
}
43
44
Real
45
NodalFunctionsL2NormPD::computeNodalValue
()
46
{
47
Real func_val = 0;
48
49
for
(
unsigned
int
i = 0; i <
_n_funcs
; ++i)
50
func_val +=
_funcs
[i]->value(_t, *_current_node) *
_funcs
[i]->value(_t, *_current_node);
51
52
return
func_val;
53
}
NodalFunctionsL2NormPD.h
validParams< NodalFunctionsL2NormPD >
InputParameters validParams< NodalFunctionsL2NormPD >()
Definition:
NodalFunctionsL2NormPD.C:17
NodalFunctionsL2NormPD::_n_funcs
unsigned int _n_funcs
Known functions.
Definition:
NodalFunctionsL2NormPD.h:34
NodalFunctionsL2NormPD::getValue
virtual Real getValue() override
Definition:
NodalFunctionsL2NormPD.C:39
NodalFunctionsL2NormPD
Postprocessor class to compute L2 norm of a given function for peridynamic discretization.
Definition:
NodalFunctionsL2NormPD.h:23
registerMooseObject
registerMooseObject("PeridynamicsApp", NodalFunctionsL2NormPD)
NodalFunctionsL2NormPD::_funcs
std::vector< const Function * > _funcs
Definition:
NodalFunctionsL2NormPD.h:35
NodalIntegralPostprocessorBasePD::getValue
virtual Real getValue() override
Definition:
NodalIntegralPostprocessorBasePD.C:41
validParams< NodalIntegralPostprocessorBasePD >
InputParameters validParams< NodalIntegralPostprocessorBasePD >()
Definition:
NodalIntegralPostprocessorBasePD.C:14
NodalFunctionsL2NormPD::computeNodalValue
virtual Real computeNodalValue() override
Function to evaluate the given function at each material point.
Definition:
NodalFunctionsL2NormPD.C:45
NodalFunctionsL2NormPD::NodalFunctionsL2NormPD
NodalFunctionsL2NormPD(const InputParameters ¶meters)
Definition:
NodalFunctionsL2NormPD.C:27
NodalIntegralPostprocessorBasePD
Postprocessor class to compute a volume integral of the specified variable Note that specializations ...
Definition:
NodalIntegralPostprocessorBasePD.h:24
Generated on Sat Jan 25 2020 12:04:38 for www.mooseframework.org by
1.8.16