www.mooseframework.org
ComputeElasticityTensor.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 
11 #include "RotationTensor.h"
12 
13 registerMooseObject("TensorMechanicsApp", ComputeElasticityTensor);
14 
16 
17 InputParameters
19 {
20  InputParameters params = ComputeRotatedElasticityTensorBase::validParams();
21  params.addClassDescription("Compute an elasticity tensor.");
22  params.addRequiredParam<std::vector<Real>>("C_ijkl", "Stiffness tensor for material");
23  params.addParam<MooseEnum>(
24  "fill_method", RankFourTensor::fillMethodEnum() = "symmetric9", "The fill method");
25  return params;
26 }
27 
28 ComputeElasticityTensor::ComputeElasticityTensor(const InputParameters & parameters)
30  _Cijkl(getParam<std::vector<Real>>("C_ijkl"),
31  (RankFourTensor::FillMethod)(int)getParam<MooseEnum>("fill_method"))
32 {
33  if (!isParamValid("elasticity_tensor_prefactor"))
35 
36  if (_Cijkl.isIsotropic())
38  else
39  {
40  // Define a rotation according to Euler angle parameters
41  RotationTensor R(_Euler_angles); // R type: RealTensorValue
42 
43  // rotate elasticity tensor
44  _Cijkl.rotate(R);
45  }
46 }
47 
48 void
50 {
51  // Assign elasticity tensor at a given quad point
53 }
ComputeElasticityTensor
ComputeElasticityTensor defines an elasticity tensor material object with a given base name.
Definition: ComputeElasticityTensor.h:22
ComputeElasticityTensor::ComputeElasticityTensor
ComputeElasticityTensor(const InputParameters &parameters)
Definition: ComputeElasticityTensor.C:28
ComputeElasticityTensor::_Cijkl
RankFourTensor _Cijkl
Individual material information.
Definition: ComputeElasticityTensor.h:33
ComputeRotatedElasticityTensorBase
ComputeRotatedElasticityTensorBase is an intermediate base class that rotates an elasticity tensor ba...
Definition: ComputeRotatedElasticityTensorBase.h:23
defineLegacyParams
defineLegacyParams(ComputeElasticityTensor)
ComputeElasticityTensor::computeQpElasticityTensor
virtual void computeQpElasticityTensor() override
Definition: ComputeElasticityTensor.C:49
ComputeRotatedElasticityTensorBase::validParams
static InputParameters validParams()
Definition: ComputeRotatedElasticityTensorBase.C:16
GuaranteeProvider::issueGuarantee
void issueGuarantee(const MaterialPropertyName &prop_name, Guarantee guarantee)
Definition: GuaranteeProvider.C:27
ComputeElasticityTensor::validParams
static InputParameters validParams()
Definition: ComputeElasticityTensor.C:18
Guarantee::CONSTANT_IN_TIME
ComputeElasticityTensor.h
RotationTensor
This is a RealTensor version of a rotation matrix It is instantiated with the Euler angles,...
Definition: RotationTensor.h:29
ComputeElasticityTensorBase::_elasticity_tensor
MaterialProperty< RankFourTensor > & _elasticity_tensor
Definition: ComputeElasticityTensorBase.h:40
ComputeRotatedElasticityTensorBase::_Euler_angles
RealVectorValue _Euler_angles
Definition: ComputeRotatedElasticityTensorBase.h:31
RankFourTensorTempl< Real >
ComputeElasticityTensorBase::_elasticity_tensor_name
std::string _elasticity_tensor_name
Definition: ComputeElasticityTensorBase.h:38
RotationTensor.h
registerMooseObject
registerMooseObject("TensorMechanicsApp", ComputeElasticityTensor)
Guarantee::ISOTROPIC