https://mooseframework.inl.gov
Loading...
Searching...
No Matches
HillConstants.h
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#pragma once
11
12#include "Material.h"
13#include "Function.h"
14#include "RotationTensor.h"
15
20template <bool is_ad>
22{
23public:
25
27
28protected:
29 virtual void computeQpProperties() override;
30
31 virtual void initQpStatefulProperties() override;
32
33 virtual void rotateHillConstants(const std::vector<Real> & hill_constants_input);
34
36 const std::string _base_name;
37
40
45
48
50 const std::vector<Real> _hill_constants_input;
51 DenseMatrix<Real> _hill_tensor;
52
55
58
60 RealVectorValue _zxz_angles;
61
63 DenseMatrix<Real> _transformation_tensor;
64
66 const bool _has_temp;
67
70
72 const std::vector<FunctionName> _function_names;
73
75 const unsigned int _num_functions;
76
78 std::vector<const Function *> _functions;
79
80 // Initial rigid body rotation of the structural element
82};
83
HillConstantsTempl< true > ADHillConstants
HillConstantsTempl< false > HillConstants
typename GenericMaterialPropertyStruct< T, is_ad >::type GenericMaterialProperty
This class defines a Hill tensor material object with a given base name.
RealVectorValue _zxz_angles
Euler angles for transformation of hill tensor.
MaterialProperty< std::vector< Real > > & _hill_constant_material
Material property for storing hill constants (unrotated)
const bool _use_large_rotation
Flag to determine whether to rotate Hill's tensor with large strain kinematics.
const std::vector< Real > _hill_constants_input
Hill constants for orthotropic inelasticity.
DenseMatrix< Real > _transformation_tensor
Transformation matrix.
const bool _has_temp
Flag to determine if temperature is supplied by the user.
virtual void rotateHillConstants(const std::vector< Real > &hill_constants_input)
static InputParameters validParams()
const VariableValue & _temperature
Temperature variable value.
const std::string _base_name
Base name of the material system.
RotationTensor _rigid_body_rotation_tensor
const std::vector< FunctionName > _function_names
Function names.
const MaterialProperty< RankTwoTensor > * _rotation_total_hill_old
Rotation up to "n - 1" (previous) step to compute Hill tensor.
MaterialProperty< DenseMatrix< Real > > * _hill_tensor_material
Material property for storing transformed Hill tensor.
DenseMatrix< Real > _hill_tensor
std::vector< const Function * > _functions
The functions describing the temperature dependence.
virtual void initQpStatefulProperties() override
virtual void computeQpProperties() override
const unsigned int _num_functions
Number of function names.
const GenericMaterialProperty< RankTwoTensor, is_ad > * _rotation_increment
Strain increment material property.
GenericMaterialProperty< RankTwoTensor, is_ad > * _rotation_total_hill
Rotation up to current step "n" to compute Hill tensor.
const InputParameters & parameters() const
This is a RealTensor version of a rotation matrix It is instantiated with the Euler angles,...
VariableValueTempl< false > VariableValue