MarmotDeformationMeasures.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  * Alexander Dummer alexander.dummer@uibk.ac.at
15  *
16  * This file is part of the MAteRialMOdellingToolbox (marmot).
17  *
18  * This library is free software; you can redistribute it and/or
19  * modify it under the terms of the GNU Lesser General Public
20  * License as published by the Free Software Foundation; either
21  * version 2.1 of the License, or (at your option) any later version.
22  *
23  * The full text of the license can be found in the file LICENSE.md at
24  * the top level directory of marmot.
25  * ---------------------------------------------------------------------
26  */
27 
28 #pragma once
30 
32 
33  namespace DeformationMeasures {
34 
35  using namespace FastorIndices;
36  using namespace FastorStandardTensors;
37 
38  template < typename T >
40  {
41  // C = F ^ T * F; C_IJ = F_iI F_iJ
42  Tensor33t< T > C = einsum< iI, iJ >( F_, F_ );
43  return C;
44  }
45 
46  namespace FirstOrderDerived {
47 
48  template < typename T >
49  std::pair< Tensor33t< T >, Tensor3333t< T > > CauchyGreen( const Tensor33t< T > F )
50  {
51  Tensor33t< T > C = einsum< iI, iJ >( F, F );
52 
53  // dC_IJ / dF_F_KL = dF_iI / dF_KL * F_iJ + F_iI * dF_iJ / dF_F_KL
54  const Tensor3333t< T > dC_dF = einsum< IK, kJ, to_IJkK >( Spatial3D::I, F ) +
55  einsum< kI, JK, to_IJkK >( F, Spatial3D::I );
56 
57  return { C, dC_dF };
58  }
59 
60  } // namespace FirstOrderDerived
61 
62  } // namespace DeformationMeasures
63 } // namespace Marmot::ContinuumMechanics
Marmot::ContinuumMechanics::DeformationMeasures::CauchyGreen
Tensor33t< T > CauchyGreen(const Tensor33t< T > F_)
Definition: MarmotDeformationMeasures.h:39
MarmotFastorTensorBasics.h
Marmot::FastorStandardTensors::Tensor3333t
Fastor::Tensor< T, 3, 3, 3, 3 > Tensor3333t
Definition: MarmotFastorTensorBasics.h:49
Marmot::FastorStandardTensors::Spatial3D::I
const Tensor33d I
Definition: MarmotFastorTensorBasics.h:57
Marmot::ContinuumMechanics
Definition: MarmotDeformationMeasures.h:31
Marmot::FiniteElement::EAS::F
Eigen::MatrixXd F(const Eigen::MatrixXd &J)
Marmot::FastorStandardTensors::Tensor33t
Fastor::Tensor< T, 3, 3 > Tensor33t
Definition: MarmotFastorTensorBasics.h:45