15 #if !defined(KRATOS_PARTICLE_MECHANICS_MATH_UTILITIES_H_INCLUDED)
16 #define KRATOS_PARTICLE_MECHANICS_MATH_UTILITIES_H_INCLUDED
23 #define FIND_MAX(a, b) ((a)>(b)?(a):(b))
37 #if !defined(INITIAL_CURRENT)
38 #define INITIAL_CURRENT
44 template<
class TDataType>
83 const unsigned int Dimension
87 if (rRotationMatrix.size1() != 2 && rRotationMatrix.size2() != 2)
88 rRotationMatrix.
resize(2,2,
false);
91 double aux = rNormalVector[0]*rNormalVector[0] + rNormalVector[1]*rNormalVector[1];
93 if (std::abs(aux) < std::numeric_limits<double>::epsilon()) aux = std::numeric_limits<double>::epsilon();
95 rRotationMatrix(0,0) = rNormalVector[0]/aux;
96 rRotationMatrix(0,1) = rNormalVector[1]/aux;
97 rRotationMatrix(1,0) = -rNormalVector[1]/aux;
98 rRotationMatrix(1,1) = rNormalVector[0]/aux;
100 else if (Dimension == 3){
101 if (rRotationMatrix.size1() != 3 && rRotationMatrix.size2() != 3)
102 rRotationMatrix.
resize(2,2,
false);
105 double aux = rNormalVector[0]*rNormalVector[0] + rNormalVector[1]*rNormalVector[1] + rNormalVector[2]*rNormalVector[2];
106 aux = std::sqrt(aux);
107 if (std::abs(aux) < std::numeric_limits<double>::epsilon()) aux = std::numeric_limits<double>::epsilon();
109 rRotationMatrix(0,0) = rNormalVector[0]/aux;
110 rRotationMatrix(0,1) = rNormalVector[1]/aux;
111 rRotationMatrix(0,2) = rNormalVector[2]/aux;
119 double dot = rRotationMatrix(0,0);
123 if ( std::abs(dot) > 0.99 )
129 dot = rRotationMatrix(0,1);
133 rT1[0] -= dot*rRotationMatrix(0,0);
134 rT1[1] -= dot*rRotationMatrix(0,1);
135 rT1[2] -= dot*rRotationMatrix(0,2);
138 rRotationMatrix(1,0) = rT1[0];
139 rRotationMatrix(1,0) = rT1[1];
140 rRotationMatrix(1,0) = rT1[2];
143 rRotationMatrix(2,0) = rRotationMatrix(0,1)*rT1[2] - rRotationMatrix(0,2)*rT1[1];
144 rRotationMatrix(2,1) = rRotationMatrix(0,2)*rT1[0] - rRotationMatrix(0,0)*rT1[2];
145 rRotationMatrix(2,2) = rRotationMatrix(0,0)*rT1[1] - rRotationMatrix(0,1)*rT1[0];
148 KRATOS_ERROR <<
"Dimension given is wrong!" << std::endl;
163 const IndexType IntegrationPointIndex = 0
168 for (
unsigned int iNode = 0; iNode < Geom.
size(); iNode++)
171 if (ThisConfiguration ==
Current)
173 const array_1d<double, 3 >& delta_displacement = Geom[iNode].FastGetSolutionStepValue(DISPLACEMENT);
177 radius += current_position[0] * rN(IntegrationPointIndex, iNode);
182 radius += reference_position[0] * rN(IntegrationPointIndex, iNode);
201 if (ThisConfiguration ==
Current)
203 const array_1d<double, 3 >& delta_displacement = Geom[0].FastGetSolutionStepValue(DISPLACEMENT);
207 return current_position[0];
212 return reference_position[0];
226 if(
A.size1()!=
A.size2())
227 KRATOS_ERROR<<
" GIVEN MATRIX IS NOT A SQUARE MATRIX: QRFactorization calculation"<<std::endl;
278 normy= std::sqrt(normy);
280 double l= std::sqrt((normy*(normy+std::abs(
y(
iteration))))/2);
327 Q(
i,
j)+= HelpQ[(
k-1)](
i,
l)*HelpQ[
k](
l,
j);
370 bool is_converged=
false;
371 unsigned int max_iters = 10;
372 unsigned int iter = 0;
374 while(is_converged ==
false && iter<max_iters )
380 HelpA(
i,
i) = HelpA(
i,
i)- shift;
394 HelpA(
i,
j) += HelpR(
i,
k)*HelpQ(
k,
j);
405 Convergence(0,
i)=Convergence(1,
i);
406 Convergence(1,
i)=HelpA(
i,
i);
407 delta+= (Convergence(1,
i)-Convergence(0,
i))*(Convergence(1,
i)-Convergence(0,
i));
408 abs+=(Convergence(1,
i))*(Convergence(1,
i));
415 if(abs < rZeroTolerance)
418 if(
delta < rZeroTolerance || (
delta/abs) < rTolerance)
427 Result[
i]= HelpA(
i,
i);
429 if(std::abs(Result[
i]) <rZeroTolerance)
450 const double p1 =
A(0,1)*
A(0,1) +
A(0,2)*
A(0,2) +
A(1,2)*
A(1,2);
459 const double q = (
A(0,0) +
A(1,1) +
A(2,2)) / 3.0;
460 const double p2 = (
A(0,0) -
q) * (
A(0,0) -
q) + (
A(1,1) -
q) * (
A(1,1) -
q) + (
A(2,2) -
q) * (
A(2,2) -
q) + 2.0 * p1;
461 const double p = std::sqrt(p2 / 6.0);
464 const double inv_p = 1.0/
p;
467 B(0,0) = inv_p * (
A(0,0) -
q);
468 B(1,1) = inv_p * (
A(1,1) -
q);
469 B(2,2) = inv_p * (
A(2,2) -
q);
470 B(0,1) = inv_p *
A(0,1);
471 B(1,0) = inv_p *
A(1,0);
472 B(0,2) = inv_p *
A(0,2);
473 B(2,0) = inv_p *
A(2,0);
474 B(1,2) = inv_p *
A(1,2);
475 B(2,1) = inv_p *
A(2,1);
478 double r = 0.5 * (
B(0,0)*
B(1,1)*
B(2,2) +
B(0,1)*
B(1,2)*
B(2,0) +
B(1,0)*
B(2,1)*
B(0,2) -
B(2,0)*
B(1,1)*
B(0,2) -
B(1,0)*
B(0,1)*
B(2,2) -
B(0,0)*
B(2,1)*
B(1,2) );
484 else if (r >= 1) {
phi = 0.0; }
485 else {
phi = acos(r) / 3.0;}
488 Result[0] =
q + 2.0 *
p * cos(
phi);
490 Result[1] = 3.0 *
q - Result[0] - Result[2];
509 const double rZeroTolerance = 1
e-9,
510 const unsigned int rMaxIteration = 10)
512 if(
A.size1()!=3 ||
A.size2()!=3)
513 KRATOS_ERROR<<
" GIVEN MATRIX IS NOT 3x3: Eigenvectors calculation"<<std::endl;
517 for(
unsigned int i=0;
i<3;
i++)
518 for(
unsigned int j=0;
j<3;
j++)
519 Help(
i,
j)= Help(
i,
j);
522 rEigenVectors.
resize(Help.size1(),Help.size2(),
false);
524 rEigenValues.
resize(Help.size1(),
false);
526 Matrix HelpDummy(Help.size1(),Help.size2());
528 bool is_converged =
false;
530 Matrix unity(Help.size1(),Help.size2());
533 for(
unsigned int i=0;
i< Help.size1();
i++)
538 Matrix VDummy(Help.size1(),Help.size2());
540 Matrix Rotation(Help.size1(),Help.size2());
543 for(
unsigned int iterations=0; iterations<rMaxIteration; iterations++)
550 unsigned int index1= 0;
552 unsigned int index2= 1;
554 for(
unsigned int i=0;
i< Help.size1();
i++)
556 for(
unsigned int j=(
i+1);
j< Help.size2();
j++)
558 if((std::abs(Help(
i,
j)) >
a ) && (std::abs(Help(
i,
j)) > rZeroTolerance))
560 a= std::abs(Help(
i,
j));
575 double gamma= (Help(index2,index2)-Help(index1,index1))/(2*Help(index1,index2));
579 if(std::abs(
gamma) > rZeroTolerance && std::abs(
gamma)< (1/rZeroTolerance))
585 if (std::abs(
gamma)>= (1.0/rZeroTolerance))
589 double c= 1.0/(std::sqrt(1.0+
u*
u));
593 double teta= s/(1.0+
c);
598 HelpDummy(index2,index2)= Help(index2,index2)+
u*Help(index1,index2);
599 HelpDummy(index1,index1)= Help(index1,index1)-
u*Help(index1,index2);
600 HelpDummy(index1,index2)= 0.0;
601 HelpDummy(index2,index1)= 0.0;
603 for(
unsigned int i=0;
i<Help.size1();
i++)
605 if((
i!= index1) && (
i!= index2))
607 HelpDummy(index2,
i)=Help(index2,
i)+s*(Help(index1,
i)- teta*Help(index2,
i));
608 HelpDummy(
i,index2)=Help(index2,
i)+s*(Help(index1,
i)- teta*Help(index2,
i));
610 HelpDummy(index1,
i)=Help(index1,
i)-s*(Help(index2,
i)+ teta*Help(index1,
i));
611 HelpDummy(
i,index1)=Help(index1,
i)-s*(Help(index2,
i)+ teta*Help(index1,
i));
620 Rotation(index2,index1)=-s;
621 Rotation(index1,index2)=s;
622 Rotation(index1,index1)=
c;
623 Rotation(index2,index2)=
c;
627 for(
unsigned int i=0;
i< Help.size1();
i++)
629 for(
unsigned int j=0;
j< Help.size1();
j++)
631 for(
unsigned int k=0;
k< Help.size1();
k++)
633 VDummy(
i,
j) +=
V(
i,
k)*Rotation(
k,
j);
643 KRATOS_WARNING(
"ParticleMechanicsMathUtilities")<<
"########################################################"<<std::endl;
644 KRATOS_WARNING(
"ParticleMechanicsMathUtilities")<<
"rMaxIteration exceed in Jacobi-Seidel-Iteration (eigenvectors)"<<std::endl;
645 KRATOS_WARNING(
"ParticleMechanicsMathUtilities")<<
"########################################################"<<std::endl;
648 for(
unsigned int i=0;
i< Help.size1();
i++)
650 for(
unsigned int j=0;
j< Help.size1();
j++)
652 rEigenVectors(
i,
j)=
V(
j,
i);
656 for(
unsigned int i=0;
i<Help.size1();
i++)
657 rEigenValues[
i]= Help(
i,
i);
666 template<
class TVectorType >
682 for(
unsigned int i=0;
i< rTensor.size1();
i++)
683 for(
unsigned int j=0;
j< rTensor.size2();
j++)
684 result += rTensor(
i,
j)*rTensor(
i,
j);
686 result = std::sqrt(result);
699 if (rTensor[0].size()== 3)
701 if(rMatrix.size1()!=6 || rMatrix.size2()!=6)
702 rMatrix.
resize(6,6,
false);
704 rMatrix(0,0) = rTensor[0][0](0,0);
705 rMatrix(0,1) = rTensor[0][0](1,1);
706 rMatrix(0,2) = rTensor[0][0](2,2);
707 rMatrix(0,3) = rTensor[0][0](0,1);
708 rMatrix(0,4) = rTensor[0][0](0,2);
709 rMatrix(0,5) = rTensor[0][0](1,2);
711 rMatrix(1,0) = rTensor[1][1](0,0);
712 rMatrix(1,1) = rTensor[1][1](1,1);
713 rMatrix(1,2) = rTensor[1][1](2,2);
714 rMatrix(1,3) = rTensor[1][1](0,1);
715 rMatrix(1,4) = rTensor[1][1](0,2);
716 rMatrix(1,5) = rTensor[1][1](1,2);
718 rMatrix(2,0) = rTensor[2][2](0,0);
719 rMatrix(2,1) = rTensor[2][2](1,1);
720 rMatrix(2,2) = rTensor[2][2](2,2);
721 rMatrix(2,3) = rTensor[2][2](0,1);
722 rMatrix(2,4) = rTensor[2][2](0,2);
723 rMatrix(2,5) = rTensor[2][2](1,2);
725 rMatrix(3,0) = rTensor[0][1](0,0);
726 rMatrix(3,1) = rTensor[0][1](1,1);
727 rMatrix(3,2) = rTensor[0][1](2,2);
728 rMatrix(3,3) = rTensor[0][1](0,1);
729 rMatrix(3,4) = rTensor[0][1](0,2);
730 rMatrix(3,5) = rTensor[0][1](1,2);
732 rMatrix(4,0) = rTensor[0][2](0,0);
733 rMatrix(4,1) = rTensor[0][2](1,1);
734 rMatrix(4,2) = rTensor[0][2](2,2);
735 rMatrix(4,3) = rTensor[0][2](0,1);
736 rMatrix(4,4) = rTensor[0][2](0,2);
737 rMatrix(4,5) = rTensor[0][2](1,2);
739 rMatrix(5,0) = rTensor[1][2](0,0);
740 rMatrix(5,1) = rTensor[1][2](1,1);
741 rMatrix(5,2) = rTensor[1][2](2,2);
742 rMatrix(5,3) = rTensor[1][2](0,1);
743 rMatrix(5,4) = rTensor[1][2](0,2);
744 rMatrix(5,5) = rTensor[1][2](1,2);
748 if(rMatrix.size1()!=3 || rMatrix.size2()!=3)
749 rMatrix.
resize(3,3,
false);
751 rMatrix(0,0) = rTensor[0][0](0,0);
752 rMatrix(0,1) = rTensor[0][0](1,1);
753 rMatrix(0,2) = rTensor[0][0](0,1);
754 rMatrix(1,0) = rTensor[1][1](0,0);
755 rMatrix(1,1) = rTensor[1][1](1,1);
756 rMatrix(1,2) = rTensor[1][1](0,1);
757 rMatrix(2,0) = rTensor[0][1](0,0);
758 rMatrix(2,1) = rTensor[0][1](1,1);
759 rMatrix(2,2) = rTensor[0][1](0,1);
779 for(
unsigned int i=0;
i<3;
i++)
781 rTensor[
i].resize(3);
782 for(
unsigned int j=0;
j<3;
j++)
784 rTensor[
i][
j].resize(3,3,
false);
786 for(
unsigned int k=0;
k<3;
k++)
787 for(
unsigned int l=0;
l<3;
l++)
792 if((
i==0 &&
j==1) || (
i==1 &&
j==0)) help1= 3;
793 if((
i==1 &&
j==2) || (
i==2 &&
j==1)) help1= 4;
794 if((
i==2 &&
j==0) || (
i==0 &&
j==2)) help1= 5;
804 if((
k==0 &&
l==1) || (
k==1 &&
l==0)) help2= 3;
805 if((
k==1 &&
l==2) || (
k==2 &&
l==1)) help2= 4;
806 if((
k==2 &&
l==0) || (
k==0 &&
l==2)) help2= 5;
828 std::fill(rTensor.
begin(), rTensor.
end(), 0.0);
829 for(
unsigned int i=0;
i<3;
i++)
831 for(
unsigned int j=0;
j<3;
j++)
833 for(
unsigned int k=0;
k<3;
k++)
834 for(
unsigned int l=0;
l<3;
l++)
839 if((
i==0 &&
j==1) || (
i==1 &&
j==0)) help1= 3;
840 if((
i==1 &&
j==2) || (
i==2 &&
j==1)) help1= 4;
841 if((
i==2 &&
j==0) || (
i==0 &&
j==2)) help1= 5;
851 if((
k==0 &&
l==1) || (
k==1 &&
l==0)) help2= 3;
852 if((
k==1 &&
l==2) || (
k==2 &&
l==1)) help2= 4;
853 if((
k==2 &&
l==0) || (
k==0 &&
l==2)) help2= 5;
856 rTensor[
i*27+
j*9+
k*3+
l]=
A(help1,help2)*
coeff;
876 if(rMatrix.size1()!=6 || rMatrix.size2()!=6)
877 rMatrix.
resize(6,6,
false);
879 for(
unsigned int i=0;
i<6;
i++)
880 for(
unsigned int j=0;
j<6;
j++)
932 rMatrix(
i,
j)= rTensor[help1][help2](help3,help4)*
coeff;
945 if(rMatrix.size1()!=6 || rMatrix.size2()!=6)
946 rMatrix.
resize(6,6,
false);
948 rMatrix(0,0) = rTensor[0];
949 rMatrix(0,1) = rTensor[4];
950 rMatrix(0,2) = rTensor[8];
951 rMatrix(0,3) = 2.0*rTensor[1];
952 rMatrix(0,4) = 2.0*rTensor[5];
953 rMatrix(0,5) = 2.0*rTensor[6];
955 rMatrix(1,0) = rTensor[36];
956 rMatrix(1,1) = rTensor[40];
957 rMatrix(1,2) = rTensor[44];
958 rMatrix(1,3) = 2.0*rTensor[37];
959 rMatrix(1,4) = 0.0*rTensor[41];
960 rMatrix(1,5) = 0.0*rTensor[42];
962 rMatrix(2,0) = rTensor[72];
963 rMatrix(2,1) = rTensor[76];
964 rMatrix(2,2) = rTensor[80];
965 rMatrix(2,3) = 2.0*rTensor[73];
966 rMatrix(2,4) = 2.0*rTensor[77];
967 rMatrix(2,5) = 2.0*rTensor[78];
969 rMatrix(3,0) = rTensor[9];
970 rMatrix(3,1) = rTensor[13];
971 rMatrix(3,2) = rTensor[18];
972 rMatrix(3,3) = 2.0*rTensor[10];
973 rMatrix(3,4) = 2.0*rTensor[14];
974 rMatrix(3,5) = 2.0*rTensor[15];
976 rMatrix(4,0) = rTensor[45];
977 rMatrix(4,1) = rTensor[49];
978 rMatrix(4,2) = rTensor[53];
979 rMatrix(4,3) = 2.0*rTensor[46];
980 rMatrix(4,4) = 0.0*rTensor[50];
981 rMatrix(4,5) = 0.0*rTensor[51];
983 rMatrix(5,0) = rTensor[54];
984 rMatrix(5,1) = rTensor[58];
985 rMatrix(5,2) = rTensor[62];
986 rMatrix(5,3) = 2.0*rTensor[55];
987 rMatrix(5,4) = 2.0*rTensor[59];
988 rMatrix(5,5) = 2.0*rTensor[60];
Geometry base class.
Definition: geometry.h:71
SizeType size() const
Definition: geometry.h:518
void resize(std::size_t NewSize1, std::size_t NewSize2, bool preserve=0)
Definition: amatrix_interface.h:224
Various mathematical utilitiy functions.
Definition: math_utils.h:62
static double Norm(const Vector &a)
Calculates the norm of vector "a".
Definition: math_utils.h:703
This class defines the node.
Definition: node.h:65
Definition: particle_mechanics_math_utilities.h:46
DenseMatrix< Second_Order_Tensor > Matrix_Second_Tensor
Definition: particle_mechanics_math_utilities.h:72
unsigned int IndexType
Definition: particle_mechanics_math_utilities.h:56
static void Normalize(TVectorType &v)
Normalises a vector. Vector is scaled by .
Definition: particle_mechanics_math_utilities.h:667
static Vector EigenValues(const Matrix &A, const double rTolerance=1e-9, const double rZeroTolerance=1e-9)
Calculates Eigenvalues of given square matrix A. The QR Algorithm with shifts is used.
Definition: particle_mechanics_math_utilities.h:345
static double NormTensor(Matrix &rTensor)
Builds the norm of a given second order tensor.
Definition: particle_mechanics_math_utilities.h:679
static void MatrixToTensor(const MatrixType &A, std::vector< std::vector< Matrix > > &rTensor)
Transforms a given 6*6 Matrix to a corresponing 4th order tensor.
Definition: particle_mechanics_math_utilities.h:771
DenseVector< Vector > Second_Order_Tensor
Definition: particle_mechanics_math_utilities.h:66
Node NodeType
Definition: particle_mechanics_math_utilities.h:62
Matrix MatrixType
Definition: particle_mechanics_math_utilities.h:52
static void GetRotationMatrix(MatrixType &rRotationMatrix, const VectorType &rNormalVector, const unsigned int Dimension)
Definition: particle_mechanics_math_utilities.h:80
static void TensorToMatrix(const Fourth_Order_Tensor &rTensor, Matrix &rMatrix)
Transforms a given fourth order tensor to a corresponing Matrix.
Definition: particle_mechanics_math_utilities.h:697
unsigned int SizeType
Definition: particle_mechanics_math_utilities.h:58
DenseVector< Second_Order_Tensor > Third_Order_Tensor
Definition: particle_mechanics_math_utilities.h:68
static void TensorToMatrix(const array_1d< double, 81 > &rTensor, Matrix &rMatrix)
Transforms a given 4th order Tensor to a corresponing 6*6 Matrix.
Definition: particle_mechanics_math_utilities.h:943
static double CalculateRadiusPoint(GeometryType &Geom, const Configuration ThisConfiguration=Current)
Definition: particle_mechanics_math_utilities.h:195
static double CalculateRadius(const Matrix &rN, GeometryType &Geom, const Configuration ThisConfiguration=Current, const IndexType IntegrationPointIndex=0)
Definition: particle_mechanics_math_utilities.h:159
static void MatrixToTensor(const MatrixType &A, array_1d< double, 81 > &rTensor)
Transforms a given 6*6 Matrix to a corresponing 4th order tensor.
Definition: particle_mechanics_math_utilities.h:823
Geometry< Node > GeometryType
Definition: particle_mechanics_math_utilities.h:64
static void TensorToMatrix(const std::vector< std::vector< Matrix > > &rTensor, Matrix &rMatrix)
Transforms a given 4th order tensor to a corresponing 6*6 Matrix.
Definition: particle_mechanics_math_utilities.h:868
MathUtils< TDataType > MathUtilsType
Definition: particle_mechanics_math_utilities.h:60
Vector VectorType
Definition: particle_mechanics_math_utilities.h:54
static void EigenVectors(const MatrixType &A, MatrixType &rEigenVectors, VectorType &rEigenValues, const double rZeroTolerance=1e-9, const unsigned int rMaxIteration=10)
Calculates the Eigenvectors and Eigenvalues of given symmetric matrix A. The eigenvectors and eigenva...
Definition: particle_mechanics_math_utilities.h:506
static void QRFactorization(const MatrixType &A, MatrixType &Q, MatrixType &R)
Calculates the QR Factorization of given square matrix A=QR. The Factorization is performed using the...
Definition: particle_mechanics_math_utilities.h:223
static Vector EigenValuesDirectMethod(const Matrix &A)
Calculates the Eigenvalues using a direct method.
Definition: particle_mechanics_math_utilities.h:443
DenseVector< DenseVector< Matrix > > Fourth_Order_Tensor
Definition: particle_mechanics_math_utilities.h:70
BOOST_UBLAS_INLINE const_iterator end() const
Definition: array_1d.h:611
BOOST_UBLAS_INLINE const_iterator begin() const
Definition: array_1d.h:606
#define KRATOS_ERROR
Definition: exception.h:161
#define KRATOS_WARNING(label)
Definition: logger.h:265
iteration
Definition: DEM_benchmarks.py:172
constexpr double Pi
Definition: global_variables.h:25
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
KratosZeroVector< double > ZeroVector
Definition: amatrix_interface.h:561
Configuration
Definition: structural_mechanics_math_utilities.hpp:30
@ Current
Definition: structural_mechanics_math_utilities.hpp:30
AMatrix::IdentityMatrix< double > IdentityMatrix
Definition: amatrix_interface.h:564
KratosZeroMatrix< double > ZeroMatrix
Definition: amatrix_interface.h:559
T & noalias(T &TheMatrix)
Definition: amatrix_interface.h:484
list coeff
Definition: bombardelli_test.py:41
y
Other simbols definition.
Definition: generate_axisymmetric_navier_stokes_element.py:54
v
Definition: generate_convection_diffusion_explicit_element.py:114
w
Definition: generate_convection_diffusion_explicit_element.py:108
q
Definition: generate_convection_diffusion_explicit_element.py:109
V
Definition: generate_droplet_dynamics.py:256
a
Definition: generate_stokes_twofluid_element.py:77
u
Definition: generate_total_lagrangian_mixed_volumetric_strain_element.py:30
float gamma
Definition: generate_two_fluid_navier_stokes.py:131
c
Definition: generate_weakly_compressible_navier_stokes_element.py:108
int dimension
Definition: isotropic_damage_automatic_differentiation.py:123
phi
Definition: isotropic_damage_automatic_differentiation.py:168
R
Definition: isotropic_damage_automatic_differentiation.py:172
tuple Q
Definition: isotropic_damage_automatic_differentiation.py:235
float radius
Definition: mesh_to_mdpa_converter.py:18
int k
Definition: quadrature.py:595
int j
Definition: quadrature.py:648
A
Definition: sensitivityMatrix.py:70
p
Definition: sensitivityMatrix.py:52
B
Definition: sensitivityMatrix.py:76
integer i
Definition: TensorModule.f:17
double precision, dimension(3, 3), public delta
Definition: TensorModule.f:16
integer l
Definition: TensorModule.f:17
e
Definition: run_cpp_mpi_tests.py:31
Configuration
Definition: particle_mechanics_math_utilities.h:39
@ Current
Definition: particle_mechanics_math_utilities.h:39
@ Initial
Definition: particle_mechanics_math_utilities.h:39