www.mooseframework.org
RankFourTensor.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 "DualRealOps.h"
12 
13 template class RankFourTensorTempl<Real>;
14 template class RankFourTensorTempl<DualReal>;
15 
16 namespace MathUtils
17 {
18 template <>
19 void
21 {
22  v.zero();
23 }
24 template <>
25 void
27 {
28  v.zero();
29 }
30 }
31 
32 #define RankTwoTensorMultInstantiate(TemplateClass) \
33  template RankTwoTensor RankFourTensor::operator*(const TemplateClass<Real> & a) const; \
34  template ADRankTwoTensor ADRankFourTensor::operator*(const TemplateClass<Real> & a) const; \
35  template ADRankTwoTensor RankFourTensor::operator*(const TemplateClass<DualReal> & a) const; \
36  template ADRankTwoTensor ADRankFourTensor::operator*(const TemplateClass<DualReal> & a) const
37 
39 RankTwoTensorMultInstantiate(TensorValue);
41 
46 
51 
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:79
RankFourTensorTempl< T > operator-() const
-C_ijkl