www.mooseframework.org
SumTensorIncrements.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 "SumTensorIncrements.h"
11 #include "libmesh/quadrature.h"
12 
13 registerMooseObject("TensorMechanicsApp", SumTensorIncrements);
14 
16 
17 InputParameters
19 {
20  InputParameters params = Material::validParams();
21  params.addClassDescription("Compute tensor property by summing tensor increments");
22  params.addRequiredParam<MaterialPropertyName>("tensor_name", "Name of strain property");
23  params.addParam<std::vector<MaterialPropertyName>>("coupled_tensor_increment_names",
24  "Name of strain increment properties");
25  return params;
26 }
27 
28 SumTensorIncrements::SumTensorIncrements(const InputParameters & parameters)
29  : DerivativeMaterialInterface<Material>(parameters),
30  _property_names(getParam<std::vector<MaterialPropertyName>>("coupled_tensor_increment_names")),
31  _tensor(declareProperty<RankTwoTensor>(getParam<MaterialPropertyName>("tensor_name"))),
32  _tensor_old(
33  getMaterialPropertyOld<RankTwoTensor>(getParam<MaterialPropertyName>("tensor_name"))),
34  _tensor_increment(declareProperty<RankTwoTensor>(getParam<MaterialPropertyName>("tensor_name") +
35  "_increment"))
36 {
38 
39  if (_num_property > 0)
40  {
42 
43  for (unsigned int i = 0; i < _num_property; ++i)
44  _coupled_tensor_increments[i] = &getMaterialProperty<RankTwoTensor>(_property_names[i]);
45  }
46 }
47 
48 void
50 {
51  _tensor[_qp].zero();
52  _tensor_increment[_qp].zero();
53 }
54 
55 void
57 {
58  _tensor_increment[_qp].zero();
59 
60  for (unsigned int i = 0; i < _num_property; ++i)
62 
63  _tensor[_qp] = _tensor_old[_qp] + _tensor_increment[_qp];
64 }
SumTensorIncrements::validParams
static InputParameters validParams()
Definition: SumTensorIncrements.C:18
registerMooseObject
registerMooseObject("TensorMechanicsApp", SumTensorIncrements)
SumTensorIncrements
SumTensorIncrements update a tensor by summing tensor increments passed as property.
Definition: SumTensorIncrements.h:24
SumTensorIncrements::SumTensorIncrements
SumTensorIncrements(const InputParameters &parameters)
Definition: SumTensorIncrements.C:28
SumTensorIncrements.h
SumTensorIncrements::_num_property
unsigned int _num_property
Definition: SumTensorIncrements.h:36
SumTensorIncrements::_tensor
MaterialProperty< RankTwoTensor > & _tensor
Definition: SumTensorIncrements.h:38
SumTensorIncrements::initQpStatefulProperties
virtual void initQpStatefulProperties()
Definition: SumTensorIncrements.C:49
defineLegacyParams
defineLegacyParams(SumTensorIncrements)
SumTensorIncrements::_coupled_tensor_increments
std::vector< const MaterialProperty< RankTwoTensor > * > _coupled_tensor_increments
Definition: SumTensorIncrements.h:42
validParams
InputParameters validParams()
SumTensorIncrements::_tensor_old
const MaterialProperty< RankTwoTensor > & _tensor_old
Definition: SumTensorIncrements.h:39
SumTensorIncrements::_property_names
std::vector< MaterialPropertyName > _property_names
Definition: SumTensorIncrements.h:35
SumTensorIncrements::computeQpProperties
virtual void computeQpProperties()
Definition: SumTensorIncrements.C:56
SumTensorIncrements::_tensor_increment
MaterialProperty< RankTwoTensor > & _tensor_increment
Definition: SumTensorIncrements.h:40
RankTwoTensorTempl< Real >