LinearElastic.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  *
15  * This file is part of the MAteRialMOdellingToolbox (marmot).
16  *
17  * This library is free software; you can redistribute it and/or
18  * modify it under the terms of the GNU Lesser General Public
19  * License as published by the Free Software Foundation; either
20  * version 2.1 of the License, or (at your option) any later version.
21  *
22  * The full text of the license can be found in the file LICENSE.md at
23  * the top level directory of marmot.
24  * ---------------------------------------------------------------------
25  */
26 
27 #pragma once
29 #include "Marmot/MarmotTypedefs.h"
30 #include <iostream>
31 #include <string>
32 #include <vector>
33 
34 namespace Marmot::Materials {
42  public:
43  using MarmotMaterialHypoElastic::MarmotMaterialHypoElastic;
44 
46 
47  protected:
49 
51  enum class Type {
52  Isotropic = 2,
58  Orthotropic = 12
62  } anisotropicType;
65 
70  const double& E1;
71 
73 
78  const double& E2;
79 
81 
88  const double& E3;
89 
91 
98  const double& nu12;
99 
101 
109  const double& nu23;
110 
112 
119  const double& nu13;
120 
122 
129  const double G12;
130 
132 
138  const double G23;
139 
141 
146  const double& G13;
147 
149 
153 
154  void computeStress( double* stress,
155  double* dStressDDStrain,
156 
157  const double* dStrain,
158  const double* timeOld,
159  const double dT,
160  double& pNewDT );
161 
162  StateView getStateView( const std::string& result ) { return { nullptr, 0 }; };
163 
164  int getNumberOfRequiredStateVars() { return 0; }
165  };
166 } // namespace Marmot::Materials
Marmot::Materials::LinearElastic::C
Matrix6d C
Material stiffness tensor.
Definition: LinearElastic.h:152
Marmot::Materials::LinearElastic::Type::Isotropic
@ Isotropic
MarmotMaterialHypoElastic.h
Marmot::Materials::LinearElastic::getStateView
StateView getStateView(const std::string &result)
Definition: LinearElastic.h:162
MarmotTypedefs.h
Marmot::Matrix6d
Eigen::Matrix< double, 6, 6 > Matrix6d
Definition: MarmotTypedefs.h:35
Marmot::Materials
Definition: MarmotKelvinChain.h:33
Marmot::Materials::LinearElastic::Type::TransverseIsotropic
@ TransverseIsotropic
Marmot::Materials::LinearElastic::E2
const double & E2
Young's modulus in x2 - direction.
Definition: LinearElastic.h:78
Marmot::Materials::LinearElastic::E1
const double & E1
Young's modulus in x1 - direction.
Definition: LinearElastic.h:70
Marmot::Materials::LinearElastic::LinearElastic
LinearElastic(const double *materialProperties, int nMaterialProperties, int materialNumber)
Definition: LinearElastic.cpp:15
Marmot::Materials::LinearElastic
Implementation of a linear elastic material for 3D stress states.
Definition: LinearElastic.h:41
StateView
Definition: MarmotUtils.h:29
Marmot::Materials::LinearElastic::Type
Type
Type of anisotropic behavior.
Definition: LinearElastic.h:51
Marmot::Materials::LinearElastic::getNumberOfRequiredStateVars
int getNumberOfRequiredStateVars()
Definition: LinearElastic.h:164
Marmot::Materials::LinearElastic::Type::Orthotropic
@ Orthotropic
Marmot::Materials::LinearElastic::G13
const double & G13
Shear modulus between axis x1 and x3.
Definition: LinearElastic.h:146
Marmot::Materials::LinearElastic::E3
const double & E3
Young's modulus in x3 - direction.
Definition: LinearElastic.h:88
Marmot::Materials::LinearElastic::G12
const double G12
Shear modulus between axis x1 and x2.
Definition: LinearElastic.h:129
Marmot::Materials::LinearElastic::nu12
const double & nu12
Poisson's ratio between axis x1 and x2.
Definition: LinearElastic.h:98
Marmot::Materials::LinearElastic::computeStress
void computeStress(double *stress, double *dStressDDStrain, const double *dStrain, const double *timeOld, const double dT, double &pNewDT)
Definition: LinearElastic.cpp:41
Marmot::Materials::LinearElastic::nu13
const double & nu13
Poisson's ratio between axis x1 and x3.
Definition: LinearElastic.h:119
MarmotMaterial::materialNumber
const int materialNumber
Definition: MarmotMaterial.h:42
MarmotMaterial::nMaterialProperties
const int nMaterialProperties
Definition: MarmotMaterial.h:36
MarmotMaterial::materialProperties
const double * materialProperties
Definition: MarmotMaterial.h:35
Marmot::Materials::LinearElastic::nu23
const double & nu23
Poisson's ratio between axis x2 and x3.
Definition: LinearElastic.h:109
Marmot::Materials::LinearElastic::G23
const double G23
Shear modulus between axis x2 and x3.
Definition: LinearElastic.h:138
MarmotMaterialHypoElastic
Definition: MarmotMaterialHypoElastic.h:54
Marmot::Materials::LinearElastic::anisotropicType
enum Marmot::Materials::LinearElastic::Type anisotropicType