https://mooseframework.inl.gov
solid_mechanics
src
postprocessors
MaterialTensorAverage.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
#include "
MaterialTensorAverage.h
"
11
12
registerMooseObject
(
"SolidMechanicsApp"
,
MaterialTensorAverage
);
13
registerMooseObject
(
"SolidMechanicsApp"
,
ADMaterialTensorAverage
);
14
15
template
<
bool
is_ad>
16
InputParameters
17
MaterialTensorAverageTempl<is_ad>::validParams
()
18
{
19
InputParameters
params =
MaterialTensorIntegralTempl<is_ad>::validParams
();
20
params.
addClassDescription
(
"Computes the average of a RankTwoTensor component over a volume."
);
21
return
params;
22
}
23
24
template
<
bool
is_ad>
25
MaterialTensorAverageTempl<is_ad>::MaterialTensorAverageTempl
(
const
InputParameters
& parameters)
26
:
MaterialTensorIntegralTempl
<is_ad>(parameters), _volume(0.0)
27
{
28
}
29
30
template
<
bool
is_ad>
31
void
32
MaterialTensorAverageTempl<is_ad>::initialize
()
33
{
34
MaterialTensorIntegralTempl<is_ad>::initialize
();
35
36
_volume = 0.0;
37
}
38
39
template
<
bool
is_ad>
40
void
41
MaterialTensorAverageTempl<is_ad>::execute
()
42
{
43
MaterialTensorIntegralTempl<is_ad>::execute
();
44
45
_volume += this->_current_elem_volume;
46
}
47
48
template
<
bool
is_ad>
49
Real
50
MaterialTensorAverageTempl<is_ad>::getValue
()
const
51
{
52
return
_integral_value / _volume;
53
}
54
55
template
<
bool
is_ad>
56
void
57
MaterialTensorAverageTempl<is_ad>::finalize
()
58
{
59
MaterialTensorIntegralTempl<is_ad>::gatherSum
(_volume);
60
MaterialTensorIntegralTempl<is_ad>::gatherSum
(_integral_value);
61
}
62
63
template
<
bool
is_ad>
64
void
65
MaterialTensorAverageTempl<is_ad>::threadJoin
(
const
UserObject
&
y
)
66
{
67
MaterialTensorIntegralTempl<is_ad>::threadJoin
(
y
);
68
69
const
auto
& pps =
static_cast<
const
MaterialTensorAverageTempl<is_ad>
&
>
(
y
);
70
_volume += pps.
_volume
;
71
}
72
73
template
class
MaterialTensorAverageTempl<false>
;
74
template
class
MaterialTensorAverageTempl<true>
;
MaterialTensorAverageTempl::validParams
static InputParameters validParams()
Definition:
MaterialTensorAverage.C:17
y
const std::vector< double > y
Definition:
EquilibriumConstantFitTest.C:18
registerMooseObject
registerMooseObject("SolidMechanicsApp", MaterialTensorAverage)
MaterialTensorAverageTempl::MaterialTensorAverageTempl
MaterialTensorAverageTempl(const InputParameters ¶meters)
Definition:
MaterialTensorAverage.C:25
MaterialTensorAverageTempl::initialize
virtual void initialize() override
Definition:
MaterialTensorAverage.C:32
ElementIntegralPostprocessor::threadJoin
virtual void threadJoin(const UserObject &y) override
MaterialTensorAverageTempl::finalize
virtual void finalize() override
Definition:
MaterialTensorAverage.C:57
InputParameters
ElementIntegralPostprocessor::gatherSum
void gatherSum(T &value)
ElementIntegralPostprocessor::execute
virtual void execute() override
MaterialTensorAverageTempl::_volume
Real _volume
Domain volume.
Definition:
MaterialTensorAverage.h:34
MaterialTensorAverageTempl::getValue
virtual Real getValue() const override
Definition:
MaterialTensorAverage.C:50
Real
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
MaterialTensorAverageTempl
This postprocessor computes the volume average of a component of a RankTwoTensor as specified by the ...
Definition:
MaterialTensorAverage.h:19
ElementIntegralPostprocessor::initialize
virtual void initialize() override
MaterialTensorAverageTempl::execute
virtual void execute() override
Definition:
MaterialTensorAverage.C:41
InputParameters::addClassDescription
void addClassDescription(const std::string &doc_string)
MaterialTensorAverageTempl::threadJoin
virtual void threadJoin(const UserObject &y) override
Definition:
MaterialTensorAverage.C:65
MaterialTensorIntegralTempl
This postprocessor computes an element integral of a component of a material tensor as specified by t...
Definition:
MaterialTensorIntegral.h:20
MaterialTensorAverage.h
UserObject
MaterialTensorIntegralTempl::validParams
static InputParameters validParams()
Definition:
MaterialTensorIntegral.C:20
Generated on Fri Jul 18 2025 13:43:47 for https://mooseframework.inl.gov by
1.8.14