modules
core
MarmotFiniteStrainMechanicsCore
include
Marmot
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
29
#include "
Marmot/MarmotFastorTensorBasics.h
"
30
31
namespace
Marmot::ContinuumMechanics
{
32
33
namespace
DeformationMeasures {
34
35
using namespace
FastorIndices;
36
using namespace
FastorStandardTensors;
37
38
template
<
typename
T >
39
Tensor33t< T >
CauchyGreen
(
const
Tensor33t< T >
F_ )
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