MarmotElasticity.h
Go to the documentation of this file.
1 /* ---------------------------------------------------------------------
2  * _
3  * _ __ ___ __ _ _ __ _ __ ___ ___ | |_
4  * | '_ ` _ \ / _` | '__| '_ ` _ \ / _ \| __|
5  * | | | | | | (_| | | | | | | | | (_) | |_
6  * |_| |_| |_|\__,_|_| |_| |_| |_|\___/ \__|
7  *
8  * Unit of Strength of Materials and Structural Analysis
9  * University of Innsbruck,
10  * 2020 - today
11  *
12  * festigkeitslehre@uibk.ac.at
13  *
14  * Matthias Neuner matthias.neuner@uibk.ac.at
15  * Thomas Mader thomas.mader@uibk.ac.at
16  * Magdalena Schreter magdalena.schreter@uibk.ac.at
17  *
18  * This file is part of the MAteRialMOdellingToolbox (marmot).
19  *
20  * This library is free software; you can redistribute it and/or
21  * modify it under the terms of the GNU Lesser General Public
22  * License as published by the Free Software Foundation; either
23  * version 2.1 of the License, or (at your option) any later version.
24  *
25  * The full text of the license can be found in the file LICENSE.md at
26  * the top level directory of marmot.
27  * ---------------------------------------------------------------------
28  */
29 
30 #pragma once
31 #include "Marmot/MarmotVoigt.h"
32 
33 namespace Marmot {
34 
35  namespace ContinuumMechanics {
36 
40  namespace Elasticity::Isotropic {
41 
48  double constexpr E( const double K, const double G )
49  {
50  return 9. * K * G / ( 3. * K + G );
51  }
52 
59  double constexpr nu( const double K, const double G )
60  {
61  return ( 3 * K - 2 * G ) / ( 6 * K + 2 * G );
62  }
63 
70  double constexpr shearModulus( const double E, const double nu )
71  {
72  return E / ( 2 * ( 1 + nu ) );
73  }
74 
82  double constexpr lameParameter( const double E, const double nu )
83  {
84  return E * nu / ( ( 1 + nu ) * ( 1 - 2 * nu ) );
85  }
86 
106  Matrix6d complianceTensor( const double E, const double nu );
107 
123  Matrix6d stiffnessTensor( const double E, const double nu );
124 
128  Matrix6d stiffnessTensorKG( const double K, const double G );
129 
130  } // namespace Elasticity::Isotropic
131 
135  namespace Elasticity::TransverseIsotropic {
136 
160  Matrix6d complianceTensor( const double E1,
161  const double E2,
162  const double nu12,
163  const double nu23,
164  const double G12 );
169  Matrix6d stiffnessTensor( const double E1,
170  const double E2,
171  const double nu12,
172  const double nu23,
173  const double G12 );
174  } // namespace Elasticity::TransverseIsotropic
175 
179  namespace Elasticity::Orthotropic {
207  Matrix6d complianceTensor( const double E1,
208  const double E2,
209  const double E3,
210  const double nu12,
211  const double nu23,
212  const double nu13,
213  const double G12,
214  const double G23,
215  const double G31 );
220  Matrix6d stiffnessTensor( const double E1,
221  const double E2,
222  const double E3,
223  const double nu12,
224  const double nu23,
225  const double nu13,
226  const double G12,
227  const double G23,
228  const double G31 );
229 
230  } // namespace Elasticity::Orthotropic
231  } // namespace ContinuumMechanics
232 } // namespace Marmot
Marmot::ContinuumMechanics::Elasticity::Isotropic::nu
constexpr double nu(const double K, const double G)
Definition: MarmotElasticity.h:59
Marmot::ContinuumMechanics::Elasticity::Orthotropic::complianceTensor
Matrix6d complianceTensor(const double E1, const double E2, const double E3, const double nu12, const double nu23, const double nu13, const double G12, const double G23, const double G31)
Definition: MarmotElasticity.cpp:89
Marmot::ContinuumMechanics::Elasticity::Isotropic::E
constexpr double E(const double K, const double G)
Definition: MarmotElasticity.h:48
Marmot::ContinuumMechanics::Elasticity::TransverseIsotropic::complianceTensor
Matrix6d complianceTensor(const double E1, const double E2, const double nu12, const double nu23, const double G12)
Definition: MarmotElasticity.cpp:50
Marmot::ContinuumMechanics::Elasticity::TransverseIsotropic::stiffnessTensor
Matrix6d stiffnessTensor(const double E1, const double E2, const double nu12, const double nu23, const double G12)
Definition: MarmotElasticity.cpp:69
Marmot::Matrix6d
Eigen::Matrix< double, 6, 6 > Matrix6d
Definition: MarmotTypedefs.h:35
MarmotVoigt.h
Marmot::ContinuumMechanics::Elasticity::Isotropic::stiffnessTensor
Matrix6d stiffnessTensor(const double E, const double nu)
Definition: MarmotElasticity.cpp:10
Marmot::ContinuumMechanics::Elasticity::Isotropic::lameParameter
constexpr double lameParameter(const double E, const double nu)
Definition: MarmotElasticity.h:82
Marmot
This file includes functions needed for calculations with stress and strain tensors written in voigt ...
Definition: MarmotTesting.h:30
Marmot::ContinuumMechanics::Elasticity::Isotropic::shearModulus
constexpr double shearModulus(const double E, const double nu)
Definition: MarmotElasticity.h:70
Marmot::ContinuumMechanics::Elasticity::Isotropic::complianceTensor
Matrix6d complianceTensor(const double E, const double nu)
Definition: MarmotElasticity.cpp:32
Marmot::ContinuumMechanics::Elasticity::Orthotropic::stiffnessTensor
Matrix6d stiffnessTensor(const double E1, const double E2, const double E3, const double nu12, const double nu23, const double nu13, const double G12, const double G23, const double G31)
Definition: MarmotElasticity.cpp:111
Marmot::ContinuumMechanics::Elasticity::Isotropic::stiffnessTensorKG
Matrix6d stiffnessTensorKG(const double K, const double G)
Definition: MarmotElasticity.cpp:25