https://mooseframework.inl.gov
RankFourTensor.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 
11 
12 template class RankFourTensorTempl<Real>;
13 template class RankFourTensorTempl<ADReal>;
14 
15 namespace MathUtils
16 {
17 template <>
18 void
20 {
21  v.zero();
22 }
23 template <>
24 void
26 {
27  v.zero();
28 }
29 }
30 
31 #define RankTwoTensorMultInstantiate(TemplateClass) \
32  template RankTwoTensor RankFourTensor::operator*(const TemplateClass<Real> & a) const; \
33  template ADRankTwoTensor ADRankFourTensor::operator*(const TemplateClass<Real> & a) const; \
34  template ADRankTwoTensor RankFourTensor::operator*(const TemplateClass<ADReal> & a) const; \
35  template ADRankTwoTensor ADRankFourTensor::operator*(const TemplateClass<ADReal> & a) const
36 
38 RankTwoTensorMultInstantiate(TensorValue);
40 
45 
50 
RankFourTensorTempl is designed to handle any N-dimensional fourth order tensor, C.
void mooseSetToZero< ADRankFourTensor >(ADRankFourTensor &v)
RankTwoTensorMultInstantiate(RankTwoTensorTempl)
auto operator*(const Tensor< T2 > &a) const -> typename std::enable_if< TwoTensorMultTraits< Tensor, T2 >::value, RankTwoTensorTempl< decltype(T() *T2())>>::type
C_ijkl*a_kl.
auto operator+(const RankFourTensorTempl< T2 > &a) const -> RankFourTensorTempl< decltype(T()+T2())>
C_ijkl + a_ijkl.
void mooseSetToZero< RankFourTensor >(RankFourTensor &v)
Helper function template specialization to set an object to zero.
RankTwoTensorTempl is designed to handle the Stress or Strain Tensor for a fully anisotropic material...
Definition: RankTwoTensor.h:87
RankFourTensorTempl< T > operator-() const
-C_ijkl