v0.13.0
Public Member Functions | Public Attributes | List of all members
SmallStrainTranverslyIsotropic< TYPE > Struct Template Reference

Hook equation. More...

#include <users_modules/basic_finite_elements/nonlinear_elastic_materials/src/SmallTransverselyIsotropic.hpp>

Inheritance diagram for SmallStrainTranverslyIsotropic< TYPE >:
[legend]
Collaboration diagram for SmallStrainTranverslyIsotropic< TYPE >:
[legend]

Public Member Functions

 SmallStrainTranverslyIsotropic ()
 
MoFEMErrorCode calculateStrain ()
 
MoFEMErrorCode calculateLocalStiffnesMatrix ()
 
MoFEMErrorCode calculateAxisAngleRotationalMatrix ()
 Function to Calculate the Rotation Matrix at a given axis and angle of rotation. More...
 
MoFEMErrorCode stressTransformation ()
 Function to Calculate Stress Transformation Matrix This function computes the stress transformation Matrix at a give axis and angle of rotation
One can also output the axis/angle rotational Matrix. More...
 
MoFEMErrorCode strainTransformation ()
 Function to Calculate Strain Transformation Matrix
This function computes the strain transformation Matrix at a give axis and angle of rotation
One can also output the axis/angle rotational Matrix. More...
 
MoFEMErrorCode calculateGlobalStiffnesMatrix ()
 
virtual MoFEMErrorCode calculateAngles ()
 
virtual MoFEMErrorCode calculateP_PiolaKirchhoffI (const NonlinearElasticElement::BlockData block_data, boost::shared_ptr< const NumeredEntFiniteElement > fe_ptr)
 Calculate global stress. More...
 
virtual MoFEMErrorCode calculateElasticEnergy (const NonlinearElasticElement::BlockData block_data, boost::shared_ptr< const NumeredEntFiniteElement > fe_ptr)
 calculate density of strain energy More...
 
MoFEMErrorCode calculateFibreAngles ()
 
- Public Member Functions inherited from NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >
 FunctionsToCalculatePiolaKirchhoffI ()
 
virtual ~FunctionsToCalculatePiolaKirchhoffI ()=default
 
MoFEMErrorCode calculateC_CauchyDeformationTensor ()
 
MoFEMErrorCode calculateE_GreenStrain ()
 
MoFEMErrorCode calculateS_PiolaKirchhoffII ()
 
virtual MoFEMErrorCode calculateCauchyStress (const BlockData block_data, boost::shared_ptr< const NumeredEntFiniteElement > fe_ptr)
 Function overload to implement user material. More...
 
virtual MoFEMErrorCode setUserActiveVariables (int &nb_active_variables)
 add additional active variables More...
 
virtual MoFEMErrorCode setUserActiveVariables (VectorDouble &activeVariables)
 Add additional independent variables More complex physical models depend on gradient of defamation and some additional variables. For example can depend on temperature. This function adds additional independent variables to the model. More...
 
virtual MoFEMErrorCode calculatesIGma_EshelbyStress (const BlockData block_data, boost::shared_ptr< const NumeredEntFiniteElement > fe_ptr)
 Calculate Eshelby stress. More...
 
virtual MoFEMErrorCode getDataOnPostProcessor (std::map< std::string, std::vector< VectorDouble >> &field_map, std::map< std::string, std::vector< MatrixDouble >> &grad_map)
 Do operations when pre-process. More...
 

Public Attributes

ublas::matrix< TYPEsTrain
 
ublas::vector< TYPEvoightStrain
 
TYPE tR
 
double nu_p
 
double nu_pz
 
double E_p
 
double E_z
 
double G_zp
 
ublas::symmetric_matrix< TYPE, ublas::upper > localStiffnessMatrix
 
ublas::matrix< TYPEaARotMat
 
ublas::vector< TYPEaxVector
 
TYPE axAngle
 
ublas::matrix< TYPEstressRotMat
 
ublas::matrix< TYPEstrainRotMat
 
ublas::matrix< TYPEdR
 
ublas::matrix< TYPEglobalStiffnessMatrix
 
ublas::vector< TYPEvoigtStress
 
VectorDouble normalizedPhi
 
VectorDouble axVectorDouble
 
double axAngleDouble
 
- Public Attributes inherited from NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >
FTensor::Index< 'i', 3 > i
 
FTensor::Index< 'j', 3 > j
 
FTensor::Index< 'k', 3 > k
 
double lambda
 
double mu
 
MatrixBoundedArray< TYPE, 9 > F
 
MatrixBoundedArray< TYPE, 9 > C
 
MatrixBoundedArray< TYPE, 9 > E
 
MatrixBoundedArray< TYPE, 9 > S
 
MatrixBoundedArray< TYPE, 9 > invF
 
MatrixBoundedArray< TYPE, 9 > P
 
MatrixBoundedArray< TYPE, 9 > sIGma
 
MatrixBoundedArray< TYPE, 9 > h
 
MatrixBoundedArray< TYPE, 9 > H
 
MatrixBoundedArray< TYPE, 9 > invH
 
MatrixBoundedArray< TYPE, 9 > sigmaCauchy
 
FTensor::Tensor2< FTensor::PackPtr< TYPE *, 0 >, 3, 3 > t_F
 
FTensor::Tensor2< FTensor::PackPtr< TYPE *, 0 >, 3, 3 > t_C
 
FTensor::Tensor2< FTensor::PackPtr< TYPE *, 0 >, 3, 3 > t_E
 
FTensor::Tensor2< FTensor::PackPtr< TYPE *, 0 >, 3, 3 > t_S
 
FTensor::Tensor2< FTensor::PackPtr< TYPE *, 0 >, 3, 3 > t_invF
 
FTensor::Tensor2< FTensor::PackPtr< TYPE *, 0 >, 3, 3 > t_P
 
FTensor::Tensor2< FTensor::PackPtr< TYPE *, 0 >, 3, 3 > t_sIGma
 
FTensor::Tensor2< FTensor::PackPtr< TYPE *, 0 >, 3, 3 > t_h
 
FTensor::Tensor2< FTensor::PackPtr< TYPE *, 0 >, 3, 3 > t_H
 
FTensor::Tensor2< FTensor::PackPtr< TYPE *, 0 >, 3, 3 > t_invH
 
FTensor::Tensor2< FTensor::PackPtr< TYPE *, 0 >, 3, 3 > t_sigmaCauchy
 
TYPE J
 
TYPE eNergy
 
TYPE detH
 
TYPE detF
 
int gG
 Gauss point number. More...
 
CommonDatacommonDataPtr
 
MoFEM::VolumeElementForcesAndSourcesCore::UserDataOperatoropPtr
 pointer to finite element tetrahedral operator More...
 

Additional Inherited Members

- Static Protected Member Functions inherited from NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >
static auto resizeAndSet (MatrixBoundedArray< TYPE, 9 > &m)
 

Detailed Description

template<typename TYPE>
struct SmallStrainTranverslyIsotropic< TYPE >

Hook equation.

Definition at line 31 of file SmallTransverselyIsotropic.hpp.

Constructor & Destructor Documentation

◆ SmallStrainTranverslyIsotropic()

Member Function Documentation

◆ calculateAngles()

template<typename TYPE >
virtual MoFEMErrorCode SmallStrainTranverslyIsotropic< TYPE >::calculateAngles ( )
virtual

Reimplemented in SmallStrainTranverslyIsotropicDouble.

Definition at line 248 of file SmallTransverselyIsotropic.hpp.

248  {
251  }
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:460
#define MoFEMFunctionBeginHot
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:453

◆ calculateAxisAngleRotationalMatrix()

template<typename TYPE >
MoFEMErrorCode SmallStrainTranverslyIsotropic< TYPE >::calculateAxisAngleRotationalMatrix ( )

Function to Calculate the Rotation Matrix at a given axis and angle of rotation.

This function computes the rotational matrix for a given axis of rotation and angle of rotation about that angle

Parameters
axVectorA vector representing the axis of rotation
axAngleAngle of rotation along the axis (in radians)

Definition at line 94 of file SmallTransverselyIsotropic.hpp.

94  {
96 
97  aARotMat.resize(3,3,false);
98  aARotMat.clear();
99 
100  TYPE norm = sqrt(pow(axVector[0],2) + pow(axVector[1],2) + pow(axVector[2],2));
101 
102  aARotMat(0,0) = 1-((1-cos(axAngle))*(pow(axVector[1],2)+pow(axVector[2],2))/pow(norm,2));
103  aARotMat(1,1) = 1-((1-cos(axAngle))*(pow(axVector[0],2)+pow(axVector[2],2))/pow(norm,2));
104  aARotMat(2,2) = 1-((1-cos(axAngle))*(pow(axVector[0],2)+pow(axVector[1],2))/pow(norm,2));
105 
106  aARotMat(0,1) = ((1-cos(axAngle))*axVector[0]*axVector[1]-norm*axVector[2]*sin(axAngle))/pow(norm,2);
107  aARotMat(1,0) = ((1-cos(axAngle))*axVector[0]*axVector[1]+norm*axVector[2]*sin(axAngle))/pow(norm,2);
108 
109  aARotMat(0,2) = ((1-cos(axAngle))*axVector[0]*axVector[2]+norm*axVector[1]*sin(axAngle))/pow(norm,2);
110  aARotMat(2,0) = ((1-cos(axAngle))*axVector[0]*axVector[2]-norm*axVector[1]*sin(axAngle))/pow(norm,2);
111 
112  aARotMat(1,2) = ((1-cos(axAngle))*axVector[1]*axVector[2]-norm*axVector[0]*sin(axAngle))/pow(norm,2);
113  aARotMat(2,1) = ((1-cos(axAngle))*axVector[1]*axVector[2]+norm*axVector[0]*sin(axAngle))/pow(norm,2);
114 
116  }
@ TYPE
Definition: inflate.h:32

◆ calculateElasticEnergy()

template<typename TYPE >
virtual MoFEMErrorCode SmallStrainTranverslyIsotropic< TYPE >::calculateElasticEnergy ( const NonlinearElasticElement::BlockData  block_data,
boost::shared_ptr< const NumeredEntFiniteElement >  fe_ptr 
)
virtual

calculate density of strain energy

Reimplemented from NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >.

Definition at line 296 of file SmallTransverselyIsotropic.hpp.

299  {
301 
307  axAngle = -axAngle;
311 
312  voigtStress.resize(6,false);
314  this->eNergy = 0.5*inner_prod(voigtStress,voightStrain);
316  }
#define CHKERRG(n)
Check error code of MoFEM/MOAB/PETSc function.
Definition: definitions.h:496
static MoFEMErrorCodeGeneric< PetscErrorCode > ierr
Definition: Exceptions.hpp:87
MoFEMErrorCode stressTransformation()
Function to Calculate Stress Transformation Matrix This function computes the stress transformation M...
MoFEMErrorCode strainTransformation()
Function to Calculate Strain Transformation Matrix This function computes the strain transformation ...
MoFEMErrorCode calculateAxisAngleRotationalMatrix()
Function to Calculate the Rotation Matrix at a given axis and angle of rotation.

◆ calculateFibreAngles()

template<typename TYPE >
MoFEMErrorCode SmallStrainTranverslyIsotropic< TYPE >::calculateFibreAngles ( )

Definition at line 322 of file SmallTransverselyIsotropic.hpp.

322  {
324 
325  try {
326 
327  int gg = this->gG; // number of integration point
328  MatrixDouble &phi = (this->commonDataPtr->gradAtGaussPts["POTENTIAL_FIELD"][gg]);
329  normalizedPhi.resize(3,false);
330  double nrm2_phi = sqrt(pow(phi(0,0),2)+pow(phi(0,1),2)+pow(phi(0,2),2));
331  for(int ii = 0;ii<3;ii++) {
332  normalizedPhi[ii] = -phi(0,ii)/nrm2_phi;
333  }
334 
335  axVectorDouble.resize(3,false);
336  const double zVec[3]={ 0.0,0.0,1.0 };
337  axVectorDouble[0] = normalizedPhi[1]*zVec[2]-normalizedPhi[2]*zVec[1];
338  axVectorDouble[1] = normalizedPhi[2]*zVec[0]-normalizedPhi[0]*zVec[2];
339  axVectorDouble[2] = normalizedPhi[0]*zVec[1]-normalizedPhi[1]*zVec[0];
340  double nrm2_ax_vector = norm_2(axVectorDouble);
341  const double eps = 1e-12;
342  if(nrm2_ax_vector<eps) {
343  axVectorDouble[0] = 0;
344  axVectorDouble[1] = 0;
345  axVectorDouble[2] = 1;
346  nrm2_ax_vector = 1;
347  }
348  axAngleDouble = asin(nrm2_ax_vector);
349 
350  } catch (const std::exception& ex) {
351  std::ostringstream ss;
352  ss << "throw in method: " << ex.what() << std::endl;
353  SETERRQ(PETSC_COMM_SELF,1,ss.str().c_str());
354  }
355 
357  }
static const double eps
UBlasMatrix< double > MatrixDouble
Definition: Types.hpp:88
static double phi
std::map< std::string, std::vector< MatrixDouble > > gradAtGaussPts

◆ calculateGlobalStiffnesMatrix()

template<typename TYPE >
MoFEMErrorCode SmallStrainTranverslyIsotropic< TYPE >::calculateGlobalStiffnesMatrix ( )

Definition at line 237 of file SmallTransverselyIsotropic.hpp.

237  {
239 
240  dR.resize(6,6,false);
241  noalias(dR) = prod(localStiffnessMatrix,strainRotMat);
242  globalStiffnessMatrix.resize(6,6,false);
243  noalias(globalStiffnessMatrix) = prod(stressRotMat,dR);
244 
246  }
ublas::symmetric_matrix< TYPE, ublas::upper > localStiffnessMatrix

◆ calculateLocalStiffnesMatrix()

template<typename TYPE >
MoFEMErrorCode SmallStrainTranverslyIsotropic< TYPE >::calculateLocalStiffnesMatrix ( )

◆ calculateP_PiolaKirchhoffI()

template<typename TYPE >
virtual MoFEMErrorCode SmallStrainTranverslyIsotropic< TYPE >::calculateP_PiolaKirchhoffI ( const NonlinearElasticElement::BlockData  block_data,
boost::shared_ptr< const NumeredEntFiniteElement >  fe_ptr 
)
virtual

Calculate global stress.

This is small strain approach, i.e. Piola stress is like a Cauchy stress, since configurations are notation distinguished.

Reimplemented from NonlinearElasticElement::FunctionsToCalculatePiolaKirchhoffI< TYPE >.

Definition at line 262 of file SmallTransverselyIsotropic.hpp.

265  {
272  axAngle = -axAngle;
276 
277  voigtStress.resize(6,false);
279  this->P.resize(3,3,false);
280  this->P(0,0) = voigtStress[0];
281  this->P(1,1) = voigtStress[1];
282  this->P(2,2) = voigtStress[2];
283  this->P(0,1) = voigtStress[3];
284  this->P(1,2) = voigtStress[4];
285  this->P(0,2) = voigtStress[5];
286  this->P(1,0) = this->P(0,1);
287  this->P(2,1) = this->P(1,2);
288  this->P(2,0) = this->P(0,2);
289 
291  }

◆ calculateStrain()

template<typename TYPE >
MoFEMErrorCode SmallStrainTranverslyIsotropic< TYPE >::calculateStrain ( )

Definition at line 41 of file SmallTransverselyIsotropic.hpp.

41  {
43  sTrain.resize(3,3,false);
44  noalias(sTrain) = this->F;
45  for(int dd = 0;dd<3;dd++) {
46  sTrain(dd,dd) -= 1;
47  }
48  sTrain += trans(sTrain);
49  sTrain *= 0.5;
50  voightStrain.resize(6,false);
51  voightStrain[0] = sTrain(0,0);
52  voightStrain[1] = sTrain(1,1);
53  voightStrain[2] = sTrain(2,2);
54  voightStrain[3] = 2*sTrain(0,1);
55  voightStrain[4] = 2*sTrain(1,2);
56  voightStrain[5] = 2*sTrain(2,0);
58  }
const Tensor2_symmetric_Expr< const ddTensor0< T, Dim, i, j >, typename promote< T, double >::V, Dim, i, j > dd(const Tensor0< T * > &a, const Index< i, Dim > index1, const Index< j, Dim > index2, const Tensor1< int, Dim > &d_ijk, const Tensor1< double, Dim > &d_xyz)
Definition: ddTensor0.hpp:33

◆ strainTransformation()

template<typename TYPE >
MoFEMErrorCode SmallStrainTranverslyIsotropic< TYPE >::strainTransformation ( )

Function to Calculate Strain Transformation Matrix
This function computes the strain transformation Matrix at a give axis and angle of rotation
One can also output the axis/angle rotational Matrix.

Definition at line 183 of file SmallTransverselyIsotropic.hpp.

183  {
185 
186  strainRotMat.resize(6,6,false);
187  strainRotMat.clear();
188 
189  strainRotMat(0, 0) = aARotMat(0,0) * aARotMat(0,0);
190  strainRotMat(0, 1) = aARotMat(1,0) * aARotMat(1,0);
191  strainRotMat(0, 2) = aARotMat(2,0) * aARotMat(2,0);
192  strainRotMat(0, 3) = aARotMat(1,0) * aARotMat(0,0);
193  strainRotMat(0, 4) = aARotMat(2,0) * aARotMat(1,0);
194  strainRotMat(0, 5) = aARotMat(0,0) * aARotMat(2,0);
195 
196  strainRotMat(1, 0) = aARotMat(0,1) * aARotMat(0,1);
197  strainRotMat(1, 1) = aARotMat(1,1) * aARotMat(1,1);
198  strainRotMat(1, 2) = aARotMat(2,1) * aARotMat(2,1);
199  strainRotMat(1, 3) = aARotMat(1,1) * aARotMat(0,1);
200  strainRotMat(1, 4) = aARotMat(2,1) * aARotMat(1,1);
201  strainRotMat(1, 5) = aARotMat(0,1) * aARotMat(2,1);
202 
203  strainRotMat(2, 0) = aARotMat(0,2) * aARotMat(0,2);
204  strainRotMat(2, 1) = aARotMat(1,2) * aARotMat(1,2);
205  strainRotMat(2, 2) = aARotMat(2,2) * aARotMat(2,2);
206  strainRotMat(2, 3) = aARotMat(1,2) * aARotMat(0,2);
207  strainRotMat(2, 4) = aARotMat(2,2) * aARotMat(1,2);
208  strainRotMat(2, 5) = aARotMat(0,2) * aARotMat(2,2);
209 
210  strainRotMat(3, 0) = 2.0 * aARotMat(0,1) * aARotMat(0,0);
211  strainRotMat(3, 1) = 2.0 * aARotMat(1,1) * aARotMat(1,0);
212  strainRotMat(3, 2) = 2.0 * aARotMat(2,1) * aARotMat(2,0);
213  strainRotMat(3, 3) = ( aARotMat(1,1) * aARotMat(0,0) + aARotMat(0,1) * aARotMat(1,0) );
214  strainRotMat(3, 4) = ( aARotMat(2,1) * aARotMat(1,0) + aARotMat(1,1) * aARotMat(2,0) );
215  strainRotMat(3, 5) = ( aARotMat(0,1) * aARotMat(2,0) + aARotMat(2,1) * aARotMat(0,0) );
216 
217  strainRotMat(4, 0) = 2.0 * aARotMat(0,2) * aARotMat(0,1);
218  strainRotMat(4, 1) = 2.0 * aARotMat(1,2) * aARotMat(1,1);
219  strainRotMat(4, 2) = 2.0 * aARotMat(2,2) * aARotMat(2,1);
220  strainRotMat(4, 3) = ( aARotMat(1,2) * aARotMat(0,1) + aARotMat(0,2) * aARotMat(1,1) );
221  strainRotMat(4, 4) = ( aARotMat(2,2) * aARotMat(1,1) + aARotMat(1,2) * aARotMat(2,1) );
222  strainRotMat(4, 5) = ( aARotMat(0,2) * aARotMat(2,1) + aARotMat(2,2) * aARotMat(0,1) );
223 
224  strainRotMat(5, 0) = 2.0 * aARotMat(0,0) * aARotMat(0,2);
225  strainRotMat(5, 1) = 2.0 * aARotMat(1,0) * aARotMat(1,2);
226  strainRotMat(5, 2) = 2.0 * aARotMat(2,0) * aARotMat(2,2);
227  strainRotMat(5, 3) = ( aARotMat(1,0) * aARotMat(0,2) + aARotMat(0,0) * aARotMat(1,2) );
228  strainRotMat(5, 4) = ( aARotMat(2,0) * aARotMat(1,2) + aARotMat(1,0) * aARotMat(2,2) );
229  strainRotMat(5, 5) = ( aARotMat(0,0) * aARotMat(2,2) + aARotMat(2,0) * aARotMat(0,2) );
230 
232  }

◆ stressTransformation()

template<typename TYPE >
MoFEMErrorCode SmallStrainTranverslyIsotropic< TYPE >::stressTransformation ( )

Function to Calculate Stress Transformation Matrix This function computes the stress transformation Matrix at a give axis and angle of rotation
One can also output the axis/angle rotational Matrix.

Definition at line 125 of file SmallTransverselyIsotropic.hpp.

125  {
127 
128  stressRotMat.resize(6,6,false);
129  stressRotMat.clear();
130 
131  stressRotMat(0, 0) = aARotMat(0,0) * aARotMat(0,0);
132  stressRotMat(0, 1) = aARotMat(1,0) * aARotMat(1,0);
133  stressRotMat(0, 2) = aARotMat(2,0) * aARotMat(2,0);
134  stressRotMat(0, 3) = 2.0 * aARotMat(1,0) * aARotMat(0,0);
135  stressRotMat(0, 4) = 2.0 * aARotMat(2,0) * aARotMat(1,0);
136  stressRotMat(0, 5) = 2.0 * aARotMat(0,0) * aARotMat(2,0);
137 
138  stressRotMat(1, 0) = aARotMat(0,1) * aARotMat(0,1);
139  stressRotMat(1, 1) = aARotMat(1,1) * aARotMat(1,1);
140  stressRotMat(1, 2) = aARotMat(2,1) * aARotMat(2,1);
141  stressRotMat(1, 3) = 2.0 * aARotMat(1,1) * aARotMat(0,1);
142  stressRotMat(1, 4) = 2.0 * aARotMat(2,1) * aARotMat(1,1);
143  stressRotMat(1, 5) = 2.0 * aARotMat(0,1) * aARotMat(2,1);
144 
145  stressRotMat(2, 0) = aARotMat(0,2) * aARotMat(0,2);
146  stressRotMat(2, 1) = aARotMat(1,2) * aARotMat(1,2);
147  stressRotMat(2, 2) = aARotMat(2,2) * aARotMat(2,2);
148  stressRotMat(2, 3) = 2.0 * aARotMat(1,2) * aARotMat(0,2);
149  stressRotMat(2, 4) = 2.0 * aARotMat(2,2) * aARotMat(1,2);
150  stressRotMat(2, 5) = 2.0 * aARotMat(0,2) * aARotMat(2,2);
151 
152  stressRotMat(3, 0) = aARotMat(0,1) * aARotMat(0,0);
153  stressRotMat(3, 1) = aARotMat(1,1) * aARotMat(1,0);
154  stressRotMat(3, 2) = aARotMat(2,1) * aARotMat(2,0);
155  stressRotMat(3, 3) = ( aARotMat(1,1) * aARotMat(0,0) + aARotMat(0,1) * aARotMat(1,0) );
156  stressRotMat(3, 4) = ( aARotMat(2,1) * aARotMat(1,0) + aARotMat(1,1) * aARotMat(2,0) );
157  stressRotMat(3, 5) = ( aARotMat(0,1) * aARotMat(2,0) + aARotMat(2,1) * aARotMat(0,0) );
158 
159  stressRotMat(4, 0) = aARotMat(0,2) * aARotMat(0,1);
160  stressRotMat(4, 1) = aARotMat(1,2) * aARotMat(1,1);
161  stressRotMat(4, 2) = aARotMat(2,2) * aARotMat(2,1);
162  stressRotMat(4, 3) = ( aARotMat(1,2) * aARotMat(0,1) + aARotMat(0,2) * aARotMat(1,1) );
163  stressRotMat(4, 4) = ( aARotMat(2,2) * aARotMat(1,1) + aARotMat(1,2) * aARotMat(2,1) );
164  stressRotMat(4, 5) = ( aARotMat(0,2) * aARotMat(2,1) + aARotMat(2,2) * aARotMat(0,1) );
165 
166  stressRotMat(5, 0) = aARotMat(0,0) * aARotMat(0,2);
167  stressRotMat(5, 1) = aARotMat(1,0) * aARotMat(1,2);
168  stressRotMat(5, 2) = aARotMat(2,0) * aARotMat(2,2);
169  stressRotMat(5, 3) = ( aARotMat(1,0) * aARotMat(0,2) + aARotMat(0,0) * aARotMat(1,2) );
170  stressRotMat(5, 4) = ( aARotMat(2,0) * aARotMat(1,2) + aARotMat(1,0) * aARotMat(2,2) );
171  stressRotMat(5, 5) = ( aARotMat(0,0) * aARotMat(2,2) + aARotMat(2,0) * aARotMat(0,2) );
172 
174  }

Member Data Documentation

◆ aARotMat

template<typename TYPE >
ublas::matrix<TYPE> SmallStrainTranverslyIsotropic< TYPE >::aARotMat

Definition at line 81 of file SmallTransverselyIsotropic.hpp.

◆ axAngle

template<typename TYPE >
TYPE SmallStrainTranverslyIsotropic< TYPE >::axAngle

Definition at line 83 of file SmallTransverselyIsotropic.hpp.

◆ axAngleDouble

template<typename TYPE >
double SmallStrainTranverslyIsotropic< TYPE >::axAngleDouble

Definition at line 320 of file SmallTransverselyIsotropic.hpp.

◆ axVector

template<typename TYPE >
ublas::vector<TYPE> SmallStrainTranverslyIsotropic< TYPE >::axVector

Definition at line 82 of file SmallTransverselyIsotropic.hpp.

◆ axVectorDouble

template<typename TYPE >
VectorDouble SmallStrainTranverslyIsotropic< TYPE >::axVectorDouble

Definition at line 319 of file SmallTransverselyIsotropic.hpp.

◆ dR

template<typename TYPE >
ublas::matrix<TYPE> SmallStrainTranverslyIsotropic< TYPE >::dR

Definition at line 234 of file SmallTransverselyIsotropic.hpp.

◆ E_p

template<typename TYPE >
double SmallStrainTranverslyIsotropic< TYPE >::E_p

Definition at line 60 of file SmallTransverselyIsotropic.hpp.

◆ E_z

template<typename TYPE >
double SmallStrainTranverslyIsotropic< TYPE >::E_z

Definition at line 60 of file SmallTransverselyIsotropic.hpp.

◆ G_zp

template<typename TYPE >
double SmallStrainTranverslyIsotropic< TYPE >::G_zp

Definition at line 60 of file SmallTransverselyIsotropic.hpp.

◆ globalStiffnessMatrix

template<typename TYPE >
ublas::matrix<TYPE> SmallStrainTranverslyIsotropic< TYPE >::globalStiffnessMatrix

Definition at line 235 of file SmallTransverselyIsotropic.hpp.

◆ localStiffnessMatrix

template<typename TYPE >
ublas::symmetric_matrix<TYPE,ublas::upper> SmallStrainTranverslyIsotropic< TYPE >::localStiffnessMatrix

Definition at line 61 of file SmallTransverselyIsotropic.hpp.

◆ normalizedPhi

template<typename TYPE >
VectorDouble SmallStrainTranverslyIsotropic< TYPE >::normalizedPhi

Definition at line 318 of file SmallTransverselyIsotropic.hpp.

◆ nu_p

template<typename TYPE >
double SmallStrainTranverslyIsotropic< TYPE >::nu_p

Definition at line 60 of file SmallTransverselyIsotropic.hpp.

◆ nu_pz

template<typename TYPE >
double SmallStrainTranverslyIsotropic< TYPE >::nu_pz

Definition at line 60 of file SmallTransverselyIsotropic.hpp.

◆ sTrain

template<typename TYPE >
ublas::matrix<TYPE> SmallStrainTranverslyIsotropic< TYPE >::sTrain

Definition at line 37 of file SmallTransverselyIsotropic.hpp.

◆ strainRotMat

template<typename TYPE >
ublas::matrix<TYPE> SmallStrainTranverslyIsotropic< TYPE >::strainRotMat

Definition at line 176 of file SmallTransverselyIsotropic.hpp.

◆ stressRotMat

template<typename TYPE >
ublas::matrix<TYPE> SmallStrainTranverslyIsotropic< TYPE >::stressRotMat

Definition at line 118 of file SmallTransverselyIsotropic.hpp.

◆ tR

template<typename TYPE >
TYPE SmallStrainTranverslyIsotropic< TYPE >::tR

Definition at line 39 of file SmallTransverselyIsotropic.hpp.

◆ voightStrain

template<typename TYPE >
ublas::vector<TYPE> SmallStrainTranverslyIsotropic< TYPE >::voightStrain

Definition at line 38 of file SmallTransverselyIsotropic.hpp.

◆ voigtStress

template<typename TYPE >
ublas::vector<TYPE> SmallStrainTranverslyIsotropic< TYPE >::voigtStress

Definition at line 253 of file SmallTransverselyIsotropic.hpp.


The documentation for this struct was generated from the following file: