Loading [MathJax]/extensions/tex2jax.js
www.mooseframework.org
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends
ElasticityTensorTools.h
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 #pragma once
11 
12 template <typename>
15 namespace libMesh
16 {
17 template <typename>
18 class VectorValue;
20 }
22 
24 {
25 
30 Real elasticJacobian(const RankFourTensor & r4t,
31  unsigned int i,
32  unsigned int k,
33  const RealGradient & grad_test,
34  const RealGradient & grad_phi);
35 
41 Real elasticJacobianWC(const RankFourTensor & r4t,
42  unsigned int i,
43  unsigned int k,
44  const RealGradient & grad_test,
45  Real phi);
46 
51 Real momentJacobian(const RankFourTensor & r4t,
52  unsigned int i,
53  unsigned int k,
54  Real test,
55  const RealGradient & grad_phi);
56 
62 Real
63 momentJacobianWC(const RankFourTensor & r4t, unsigned int i, unsigned int k, Real test, Real phi);
64 
69 template <typename T>
70 T
72 {
73  return elasticity_tensor(0, 1, 0, 1);
74 }
75 
80 template <typename T>
81 T
83 {
84  const T shear_modulus = getIsotropicShearModulus(elasticity_tensor);
85  // dilatational modulus is defined as lambda plus two mu
86  const T dilatational_modulus = elasticity_tensor(0, 0, 0, 0);
87  const T lambda = dilatational_modulus - 2.0 * shear_modulus;
88  const T bulk_modulus = lambda + 2.0 * shear_modulus / 3.0;
89  return bulk_modulus;
90 }
91 
96 template <typename T>
97 T
99 {
100  const T shear_modulus = getIsotropicShearModulus(elasticity_tensor);
101  // dilatational modulus is defined as lambda plus two mu
102  const T dilatational_modulus = elasticity_tensor(0, 0, 0, 0);
103  const T lambda = dilatational_modulus - 2.0 * shear_modulus;
104  const T youngs_modulus =
105  shear_modulus * (3.0 * lambda + 2.0 * shear_modulus) / (lambda + shear_modulus);
106  return youngs_modulus;
107 }
108 
113 template <typename T>
114 T
116 {
117  const T poissons_ratio = elasticity_tensor(1, 1, 0, 0) /
118  (elasticity_tensor(1, 1, 1, 1) + elasticity_tensor(1, 1, 0, 0));
119  return poissons_ratio;
120 }
121 
122 }
ElasticityTensorTools::elasticJacobian
Real elasticJacobian(const RankFourTensor &r4t, unsigned int i, unsigned int k, const RealGradient &grad_test, const RealGradient &grad_phi)
This is used for the standard kernel stress_ij*d(test)/dx_j, when varied wrt u_k Jacobian entry: d(st...
Definition: ElasticityTensorTools.C:21
ElasticityTensorTools
Definition: ElasticityTensorTools.h:23
libMesh::RealGradient
VectorValue< Real > RealGradient
Definition: GrainForceAndTorqueInterface.h:17
libMesh
Definition: RANFSNormalMechanicalContact.h:24
ElasticityTensorTools::momentJacobian
Real momentJacobian(const RankFourTensor &r4t, unsigned int i, unsigned int k, Real test, const RealGradient &grad_phi)
This is used for the moment-balancing kernel eps_ijk*stress_jk*test, when varied wrt u_k Jacobian ent...
Definition: ElasticityTensorTools.C:85
ElasticityTensorTools::getIsotropicBulkModulus
T getIsotropicBulkModulus(const RankFourTensorTempl< T > &elasticity_tensor)
Get the bulk modulus for an isotropic elasticity tensor param elasticity_tensor the tensor (must be i...
Definition: ElasticityTensorTools.h:82
ElasticityTensorTools::momentJacobianWC
Real momentJacobianWC(const RankFourTensor &r4t, unsigned int i, unsigned int k, Real test, Real phi)
This is used for the moment-balancing kernel eps_ijk*stress_jk*test, when varied wrt w_k (the cossera...
Definition: ElasticityTensorTools.C:102
libMesh::VectorValue
Definition: GrainForceAndTorqueInterface.h:17
ElasticityTensorTools::getIsotropicPoissonsRatio
T getIsotropicPoissonsRatio(const RankFourTensorTempl< T > &elasticity_tensor)
Get the Poisson's modulus for an isotropic elasticity tensor param elasticity_tensor the tensor (must...
Definition: ElasticityTensorTools.h:115
RankFourTensor
RankFourTensorTempl< Real > RankFourTensor
Definition: ElasticityTensorTools.h:13
ElasticityTensorTools::getIsotropicYoungsModulus
T getIsotropicYoungsModulus(const RankFourTensorTempl< T > &elasticity_tensor)
Get the Young's modulus for an isotropic elasticity tensor param elasticity_tensor the tensor (must b...
Definition: ElasticityTensorTools.h:98
ElasticityTensorTools::elasticJacobianWC
Real elasticJacobianWC(const RankFourTensor &r4t, unsigned int i, unsigned int k, const RealGradient &grad_test, Real phi)
This is used for the standard kernel stress_ij*d(test)/dx_j, when varied wrt w_k (the cosserat rotati...
Definition: ElasticityTensorTools.C:68
ElasticityTensorTools::getIsotropicShearModulus
T getIsotropicShearModulus(const RankFourTensorTempl< T > &elasticity_tensor)
Get the shear modulus for an isotropic elasticity tensor param elasticity_tensor the tensor (must be ...
Definition: ElasticityTensorTools.h:71
RankFourTensorTempl
Definition: ACGrGrElasticDrivingForce.h:20