Mechanics of Defect Evolution Library
Loading...
Searching...
No Matches
ElasticDeformationFEM.h
Go to the documentation of this file.
1/* This file is part of MoDELib, the Mechanics Of Defects Evolution Library.
2 *
3 *
4 * MoDELib is distributed without any warranty under the
5 * GNU General Public License (GPL) v2 <http://www.gnu.org/licenses/>.
6 */
7
8#ifndef model_ElasticDeformationFEM_H_
9#define model_ElasticDeformationFEM_H_
10
11
14#include <Math/VoigtTraits.h>
15
16
17namespace model
18{
19
20 template<int dim>
22 {
30 typedef Eigen::Matrix<double,dim*(dim+1)/2,dim*(dim+1)/2> CmatrixType;
31 typedef Constant<CmatrixType,dim*(dim+1)/2,dim*(dim+1)/2> CconstantType;
36 typedef Eigen::SparseMatrix<double> SparseMatrixType;
37
39
40
41
43// const SymmetricVoigtTraits<dim>& voigtTraits;
44
45 CmatrixType C; // matrix of elastic moduli
46 std::shared_ptr<TrialFunctionType> u; // displacement u=[u1 u2 u3]'
47 std::shared_ptr<TrialGradType> b; // displacement gradient b=[u1,1 u1,2 u1,3 u2,1 u2,2 u2,3 u3,1 u3,2 u3,3]'
48 std::shared_ptr<TrialDefType> e; // strain s=[e11 e22 e33 e12 e23 e13]'
49 std::shared_ptr<TrialStressType> s; // stress s=[s11 s22 s33 s12 s23 s13]'
50 IntegrationDomainType dV; // volume element
51 std::shared_ptr<BilinearWeakFormType> bWF; // bilinear weak form (test(e),s)*dV
52
53 std::shared_ptr<DiffusiveTrialType> z; // diffusive displacement
54
56
57 CmatrixType get_C(const double& mu, const double& nu) const;
58
59 };
60
61}
62#endif
63
LagrangeElement< 3, 2 > ElementType
Eigen::Matrix< double, dim, dim > MatrixDim
Eigen::Matrix< double, dim, 1 > VectorDim
Eigen::Matrix< double, dim *(dim+1)/2, dim *(dim+1)/2 > CmatrixType
Eigen::SparseMatrix< double > SparseMatrixType
TrialDef< TrialFunctionType > TrialDefType
IntegrationDomain< FiniteElementType, 0, 4, GaussLegendre > IntegrationDomainType
TrialProd< CconstantType, TrialDefType > TrialStressType
std::shared_ptr< TrialDefType > e
std::shared_ptr< BilinearWeakFormType > bWF
FiniteElement< ElementType > FiniteElementType
DefectiveCrystalBase< dim >::MatrixDim MatrixDim
DefectiveCrystalBase< dim > & ddBase
std::shared_ptr< TrialFunctionType > u
BilinearForm< TrialDefType, TrialStressType > BilinearFormType
DefectiveCrystalBase< dim >::ElementType ElementType
std::shared_ptr< TrialStressType > s
BilinearWeakForm< BilinearFormType, IntegrationDomainType > BilinearWeakFormType
std::shared_ptr< DiffusiveTrialType > z
DefectiveCrystalBase< dim >::VectorDim VectorDim
std::shared_ptr< TrialGradType > b
TrialGrad< TrialFunctionType > TrialGradType
Constant< CmatrixType, dim *(dim+1)/2, dim *(dim+1)/2 > CconstantType
TrialFunction< 'z', dim, FiniteElementType > DiffusiveTrialType
ElasticDeformationFEM(DefectiveCrystalBase< dim > &ddBase_in)
TrialFunction< 'u', dim, FiniteElementType > TrialFunctionType
CmatrixType get_C(const double &mu, const double &nu) const
const double mu
const double nu