21 #define FIND_MAX(a, b) ((a)>(b)?(a):(b))
36 template<
class TDataType>
86 std::cout<<
"This is not a cubic equation: CardanoFormula"<<std::endl;
91 double p= (3.0*
a*
c-
b*
b)/(3.0*
a*
a);
95 double discriminante=
p*
p*
p/27.0+
q*
q/4.0;
114 if(
p < 0)
return false;
117 solution(1) = sqrt(-4.0/3.0*
p)*cos(1.0/3.0*acos(-
q/2.0*sqrt(-27.0/(
p*
p*
p))))-
b/(3*
a);
165 bool is_converged=
false;
166 unsigned int max_iters = 10;
167 unsigned int iter = 0;
169 while(is_converged ==
false && iter<max_iters )
171 double shift= HelpA((
dim-1),(
dim-1));
175 HelpA(
i,
i) = HelpA(
i,
i)- shift;
189 HelpA(
i,
j) += HelpR(
i,
k)*HelpQ(
k,
j);
200 Convergence(0,
i)=Convergence(1,
i);
201 Convergence(1,
i)=HelpA(
i,
i);
202 delta+= (Convergence(1,
i)-Convergence(0,
i))*(Convergence(1,
i)-Convergence(0,
i));
203 abs+=(Convergence(1,
i))*(Convergence(1,
i));
222 Result(
i)= HelpA(
i,
i);
224 if(fabs(Result(
i)) <
zero)
248 const double p1 =
A(0,1)*
A(0,1) +
A(0,2)*
A(0,2) +
A(1,2)*
A(1,2);
257 const double q = (
A(0,0) +
A(1,1) +
A(2,2)) / 3.0;
258 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;
259 const double p = sqrt(p2 / 6.0);
262 const double inv_p = 1.0/
p;
265 B(0,0) = inv_p * (
A(0,0) -
q);
266 B(1,1) = inv_p * (
A(1,1) -
q);
267 B(2,2) = inv_p * (
A(2,2) -
q);
268 B(0,1) = inv_p *
A(0,1);
269 B(1,0) = inv_p *
A(1,0);
270 B(0,2) = inv_p *
A(0,2);
271 B(2,0) = inv_p *
A(2,0);
272 B(1,2) = inv_p *
A(1,2);
273 B(2,1) = inv_p *
A(2,1);
276 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) );
282 else if (r >= 1) {
phi = 0.0; }
283 else {
phi = acos(r) / 3.0;}
286 Result[0] =
q + 2.0 *
p * cos(
phi);
288 Result[1] = 3.0 *
q - Result[0] - Result[2];
332 std::vector<Matrix> HelpQ(
dim-1);
334 std::vector<Matrix> HelpR(
dim-1);
336 for(
int i=0;
i<
dim-1;
i++)
338 HelpQ[
i].resize(
dim,
dim,
false);
339 HelpR[
i].resize(
dim,
dim,
false);
359 double l= sqrt((normy*(normy+fabs(
y(
iteration))))/2);
393 for(
int k=0;
k<
dim-1;
k++)
402 for(
int k=1;
k<
dim-1;
k++)
407 Q(
i,
j)+= HelpQ[(
k-1)](
i,
l)*HelpQ[
k](
l,
j);
433 double zero_tolerance =1
e-9,
438 for(
int i=0;
i<3;
i++)
439 for(
int j=0;
j<3;
j++)
440 Help(
i,
j)= Help(
i,
j);
443 vectors.
resize(Help.size1(),Help.size2(),
false);
445 lambda.
resize(Help.size1(),
false);
447 Matrix HelpDummy(Help.size1(),Help.size2());
449 bool is_converged =
false;
451 Matrix unity(Help.size1(),Help.size2());
454 for(
unsigned int i=0;
i< Help.size1();
i++)
459 Matrix VDummy(Help.size1(),Help.size2());
461 Matrix Rotation(Help.size1(),Help.size2());
471 unsigned int index1= 0;
473 unsigned int index2= 1;
475 for(
unsigned int i=0;
i< Help.size1();
i++)
477 for(
unsigned int j=(
i+1);
j< Help.size2();
j++)
479 if((fabs(Help(
i,
j)) >
a ) && (fabs(Help(
i,
j)) > zero_tolerance))
498 double gamma= (Help(index2,index2)-Help(index1,index1))/(2*Help(index1,index2));
502 if(fabs(
gamma) > zero_tolerance && fabs(
gamma)< (1/zero_tolerance))
508 if (fabs(
gamma)>= (1.0/zero_tolerance))
512 double c= 1.0/(sqrt(1.0+
u*
u));
516 double teta= s/(1.0+
c);
521 HelpDummy(index2,index2)= Help(index2,index2)+
u*Help(index1,index2);
522 HelpDummy(index1,index1)= Help(index1,index1)-
u*Help(index1,index2);
523 HelpDummy(index1,index2)= 0.0;
524 HelpDummy(index2,index1)= 0.0;
526 for(
unsigned int i=0;
i<Help.size1();
i++)
528 if((
i!= index1) && (
i!= index2))
530 HelpDummy(index2,
i)=Help(index2,
i)+s*(Help(index1,
i)- teta*Help(index2,
i));
531 HelpDummy(
i,index2)=Help(index2,
i)+s*(Help(index1,
i)- teta*Help(index2,
i));
533 HelpDummy(index1,
i)=Help(index1,
i)-s*(Help(index2,
i)+ teta*Help(index1,
i));
534 HelpDummy(
i,index1)=Help(index1,
i)-s*(Help(index2,
i)+ teta*Help(index1,
i));
543 Rotation(index2,index1)=-s;
544 Rotation(index1,index2)=s;
545 Rotation(index1,index1)=
c;
546 Rotation(index2,index2)=
c;
553 for(
unsigned int i=0;
i< Help.size1();
i++)
555 for(
unsigned int j=0;
j< Help.size1();
j++)
557 for(
unsigned int k=0;
k< Help.size1();
k++)
559 VDummy(
i,
j) +=
V(
i,
k)*Rotation(
k,
j);
593 std::cout<<
"########################################################"<<std::endl;
594 std::cout<<
"Max_Iterations exceed in Jacobi-Seidel-Iteration (eigenvectors)"<<std::endl;
595 std::cout<<
"########################################################"<<std::endl;
598 for(
unsigned int i=0;
i< Help.size1();
i++)
600 for(
unsigned int j=0;
j< Help.size1();
j++)
602 vectors(
i,
j)=
V(
j,
i);
606 for(
unsigned int i=0;
i<Help.size1();
i++)
607 lambda(
i)= Help(
i,
i);
642 if (Strains.size()==3)
644 StrainTensor.
resize(2,2,
false);
646 StrainTensor(0,0) = Strains[0];
647 StrainTensor(0,1) = 0.5*Strains[2];
648 StrainTensor(1,0) = 0.5*Strains[2];
649 StrainTensor(1,1) = Strains[1];
651 else if (Strains.size()==6)
653 StrainTensor.
resize(3,3,
false);
654 StrainTensor(0,0) = Strains[0];
655 StrainTensor(0,1) = 0.5*Strains[3];
656 StrainTensor(0,2) = 0.5*Strains[5];
657 StrainTensor(1,0) = 0.5*Strains[3];
658 StrainTensor(1,1) = Strains[1];
659 StrainTensor(1,2) = 0.5*Strains[4];
660 StrainTensor(2,0) = 0.5*Strains[5];
661 StrainTensor(2,1) = 0.5*Strains[4];
662 StrainTensor(2,2) = Strains[2];
676 if (Tensor.size1()==2)
680 StrainVector(0) = Tensor(0,0);
681 StrainVector(1) = Tensor(1,1);
682 StrainVector(2) = 2.00*Tensor(0,1);
684 else if (Tensor.size1()==3)
686 StrainVector.resize(6);
688 StrainVector(0) = Tensor(0,0);
689 StrainVector(1) = Tensor(1,1);
690 StrainVector(2) = Tensor(2,2);
691 StrainVector(3) = 2.00*Tensor(0,1);
692 StrainVector(4) = 2.00*Tensor(1,2);
693 StrainVector(5) = 2.00*Tensor(0,2);
711 for(
unsigned int i=0;
i< Tensor.size1();
i++)
712 for(
unsigned int j=0;
j< Tensor.size2();
j++)
713 result+= Tensor(
i,
j)*Tensor(
i,
j);
715 result= sqrt(result);
759 unsigned int dim = Tensor.size1();
787 if (Tensor[0].size()== 3)
792 Matrix(0,0) = Tensor[0][0](0,0);
793 Matrix(0,1) = Tensor[0][0](1,1);
794 Matrix(0,2) = Tensor[0][0](2,2);
795 Matrix(0,3) = Tensor[0][0](0,1);
796 Matrix(0,4) = Tensor[0][0](0,2);
797 Matrix(0,5) = Tensor[0][0](1,2);
799 Matrix(1,0) = Tensor[1][1](0,0);
800 Matrix(1,1) = Tensor[1][1](1,1);
801 Matrix(1,2) = Tensor[1][1](2,2);
802 Matrix(1,3) = Tensor[1][1](0,1);
803 Matrix(1,4) = Tensor[1][1](0,2);
804 Matrix(1,5) = Tensor[1][1](1,2);
806 Matrix(2,0) = Tensor[2][2](0,0);
807 Matrix(2,1) = Tensor[2][2](1,1);
808 Matrix(2,2) = Tensor[2][2](2,2);
809 Matrix(2,3) = Tensor[2][2](0,1);
810 Matrix(2,4) = Tensor[2][2](0,2);
811 Matrix(2,5) = Tensor[2][2](1,2);
813 Matrix(3,0) = Tensor[0][1](0,0);
814 Matrix(3,1) = Tensor[0][1](1,1);
815 Matrix(3,2) = Tensor[0][1](2,2);
816 Matrix(3,3) = Tensor[0][1](0,1);
817 Matrix(3,4) = Tensor[0][1](0,2);
818 Matrix(3,5) = Tensor[0][1](1,2);
820 Matrix(4,0) = Tensor[0][2](0,0);
821 Matrix(4,1) = Tensor[0][2](1,1);
822 Matrix(4,2) = Tensor[0][2](2,2);
823 Matrix(4,3) = Tensor[0][2](0,1);
824 Matrix(4,4) = Tensor[0][2](0,2);
825 Matrix(4,5) = Tensor[0][2](1,2);
827 Matrix(5,0) = Tensor[1][2](0,0);
828 Matrix(5,1) = Tensor[1][2](1,1);
829 Matrix(5,2) = Tensor[1][2](2,2);
830 Matrix(5,3) = Tensor[1][2](0,1);
831 Matrix(5,4) = Tensor[1][2](0,2);
832 Matrix(5,5) = Tensor[1][2](1,2);
839 Matrix(0,0) = Tensor[0][0](0,0);
840 Matrix(0,1) = Tensor[0][0](1,1);
841 Matrix(0,2) = Tensor[0][0](0,1);
842 Matrix(1,0) = Tensor[1][1](0,0);
843 Matrix(1,1) = Tensor[1][1](1,1);
844 Matrix(1,2) = Tensor[1][1](0,1);
845 Matrix(2,0) = Tensor[0][1](0,0);
846 Matrix(2,1) = Tensor[0][1](1,1);
847 Matrix(2,2) = Tensor[0][1](0,1);
866 for(
unsigned int i=0;
i<3;
i++)
869 for(
unsigned int j=0;
j<3;
j++)
871 Tensor[
i][
j].resize(3,3,
false);
873 for(
unsigned int k=0;
k<3;
k++)
874 for(
unsigned int l=0;
l<3;
l++)
879 if((
i==0 &&
j==1) || (
i==1 &&
j==0)) help1= 3;
880 if((
i==1 &&
j==2) || (
i==2 &&
j==1)) help1= 4;
881 if((
i==2 &&
j==0) || (
i==0 &&
j==2)) help1= 5;
891 if((
k==0 &&
l==1) || (
k==1 &&
l==0)) help2= 3;
892 if((
k==1 &&
l==2) || (
k==2 &&
l==1)) help2= 4;
893 if((
k==2 &&
l==0) || (
k==0 &&
l==2)) help2= 5;
913 std::fill(Tensor.
begin(), Tensor.
end(), 0.0);
914 for(
unsigned int i=0;
i<3;
i++)
916 for(
unsigned int j=0;
j<3;
j++)
918 for(
unsigned int k=0;
k<3;
k++)
919 for(
unsigned int l=0;
l<3;
l++)
924 if((
i==0 &&
j==1) || (
i==1 &&
j==0)) help1= 3;
925 if((
i==1 &&
j==2) || (
i==2 &&
j==1)) help1= 4;
926 if((
i==2 &&
j==0) || (
i==0 &&
j==2)) help1= 5;
936 if((
k==0 &&
l==1) || (
k==1 &&
l==0)) help2= 3;
937 if((
k==1 &&
l==2) || (
k==2 &&
l==1)) help2= 4;
938 if((
k==2 &&
l==0) || (
k==0 &&
l==2)) help2= 5;
964 for(
unsigned int i=0;
i<6;
i++)
965 for(
unsigned int j=0;
j<6;
j++)
1035 Matrix(0,3) = 2.0*Tensor[1];
1036 Matrix(0,4) = 2.0*Tensor[5];
1037 Matrix(0,5) = 2.0*Tensor[6];
1039 Matrix(1,0) = Tensor[36];
1040 Matrix(1,1) = Tensor[40];
1041 Matrix(1,2) = Tensor[44];
1042 Matrix(1,3) = 2.0*Tensor[37];
1043 Matrix(1,4) = 0.0*Tensor[41];
1044 Matrix(1,5) = 0.0*Tensor[42];
1046 Matrix(2,0) = Tensor[72];
1047 Matrix(2,1) = Tensor[76];
1048 Matrix(2,2) = Tensor[80];
1049 Matrix(2,3) = 2.0*Tensor[73];
1050 Matrix(2,4) = 2.0*Tensor[77];
1051 Matrix(2,5) = 2.0*Tensor[78];
1054 Matrix(3,1) = Tensor[13];
1055 Matrix(3,2) = Tensor[18];
1056 Matrix(3,3) = 2.0*Tensor[10];
1057 Matrix(3,4) = 2.0*Tensor[14];
1058 Matrix(3,5) = 2.0*Tensor[15];
1060 Matrix(4,0) = Tensor[45];
1061 Matrix(4,1) = Tensor[49];
1062 Matrix(4,2) = Tensor[53];
1063 Matrix(4,3) = 2.0*Tensor[46];
1064 Matrix(4,4) = 0.0*Tensor[50];
1065 Matrix(4,5) = 0.0*Tensor[51];
1067 Matrix(5,0) = Tensor[54];
1068 Matrix(5,1) = Tensor[58];
1069 Matrix(5,2) = Tensor[62];
1070 Matrix(5,3) = 2.0*Tensor[55];
1071 Matrix(5,4) = 2.0*Tensor[59];
1072 Matrix(5,5) = 2.0*Tensor[60];
1085 for(
unsigned int i=0;
i<3;
i++)
1090 for(
unsigned int i=0;
i<3;
i++)
1093 for(
unsigned int j=0;
j<3;
j++)
1095 Unity[
i][
j].resize(3,3,
false);
1098 for(
unsigned int k=0;
k<3;
k++)
1100 for(
unsigned int l=0;
l<3;
l++)
1102 Unity[
i][
j](
k,
l)=kronecker(
i,
k)*kronecker(
j,
l)
1103 -1.0/3.0*kronecker(
i,
j)*kronecker(
k,
l);
1118 for(
unsigned int i=0;
i<3;
i++)
1123 for(
unsigned int i=0;
i<3;
i++)
1124 for(
unsigned int j=0;
j<3;
j++)
1125 for(
unsigned int k=0;
k<3;
k++)
1126 for(
unsigned int l=0;
l<3;
l++)
1127 Unity[27*
i+9*
j+3*
k+
l]=kronecker(
i,
k)*kronecker(
j,
l)
1128 -1.0/3.0*kronecker(
i,
j)*kronecker(
k,
l);
1141 static bool Clipping(std::vector<Point* >& clipping_points,std::vector<Point* >& subjected_points, std::vector<Point* >& result_points,
double tolerance)
1143 result_points= subjected_points;
1146 std::vector<Point* > temp_results;
1147 bool is_visible=
false;
1148 for(
unsigned int clipp_edge=0; clipp_edge<clipping_points.size(); clipp_edge++)
1150 temp_results.clear();
1151 unsigned int index_clipp_2=0;
1152 if(clipp_edge< (clipping_points.size()-1))
1153 index_clipp_2= clipp_edge+1;
1155 noalias(actual_edge)= *(clipping_points[clipp_edge])-*(clipping_points[index_clipp_2]);
1159 if(clipp_edge< (clipping_points.size()-2))
1160 actual_normal=*(clipping_points[clipp_edge+2])-(*(clipping_points[clipp_edge])+actual_edge*
inner_prod((*(clipping_points[clipp_edge+2])-*(clipping_points[clipp_edge])),actual_edge));
1161 else if(clipp_edge< (clipping_points.size()-1))
1162 actual_normal=*(clipping_points[0])-(*(clipping_points[clipp_edge])+actual_edge*
inner_prod((*(clipping_points[0])-*(clipping_points[clipp_edge])),actual_edge));
1164 actual_normal=*(clipping_points[1])-(*(clipping_points[clipp_edge])+actual_edge*
inner_prod((*(clipping_points[1])-*(clipping_points[clipp_edge])),actual_edge));
1166 noalias(actual_normal)=actual_normal/(sqrt(
inner_prod(actual_normal,actual_normal)));
1169 if(
inner_prod((*(result_points[0])-*(clipping_points[clipp_edge])), actual_normal)> tolerance)
1178 for(
unsigned int subj_edge=0; subj_edge< result_points.size(); subj_edge++)
1180 unsigned int index_subj_2=0;
1182 if(subj_edge< (result_points.size()-1))
1183 index_subj_2= subj_edge+1;
1186 if(fabs(
inner_prod((*(result_points[subj_edge])-(*(clipping_points[clipp_edge]))), actual_normal))<= tolerance)
1188 temp_results.push_back(result_points[subj_edge]);
1189 if(
inner_prod((*(result_points[index_subj_2])-*(clipping_points[clipp_edge])), actual_normal)> tolerance)
1198 b(0)= -
inner_prod((*(result_points[index_subj_2])-*(result_points[subj_edge])),(*(result_points[subj_edge])-*(clipping_points[clipp_edge])));
1199 b(1)=
inner_prod((*(clipping_points[index_clipp_2])-*(clipping_points[clipp_edge])),(*(result_points[subj_edge])-*(clipping_points[clipp_edge])));
1201 A(0,0)=
inner_prod((*(result_points[index_subj_2])-*(result_points[subj_edge])),(*(result_points[index_subj_2])-*(result_points[subj_edge])));
1202 A(0,1)=-
inner_prod((*(result_points[index_subj_2])-*(result_points[subj_edge])),(*(clipping_points[index_clipp_2])-*(clipping_points[clipp_edge])));
1204 A(1,1)=
inner_prod(*(clipping_points[index_clipp_2])-*(clipping_points[clipp_edge]),*(clipping_points[index_clipp_2])-*(clipping_points[clipp_edge]));
1206 coeff(0)=1.0/
A(0,0)*(
b(0)-
A(0,1)/(
A(1,1)-
A(0,1)*
A(1,0)/
A(0,0))*(
b(1)-
b(0)*
A(1,0)/
A(0,0)));
1207 coeff(1)=1.0/(
A(1,1)-
A(0,1)*
A(1,0)/
A(0,0))*(
b(1)-
b(0)*
A(1,0)/
A(0,0));
1212 noalias(dist_vec)= *(result_points[subj_edge])+
coeff(0)*(*(result_points[index_subj_2])-*(result_points[subj_edge]))-(*(clipping_points[clipp_edge])+
coeff(1)*(*(clipping_points[index_clipp_2])-*(clipping_points[clipp_edge])));
1214 if(
coeff(0) > tolerance &&
coeff(0) < (1-tolerance)&& (sqrt(
inner_prod(dist_vec,dist_vec))< tolerance))
1217 temp_results.push_back(result_points[subj_edge]);
1219 temp_results.push_back(
new Point((*(clipping_points[clipp_edge])+
coeff(1)*(*(clipping_points[index_clipp_2])-*(clipping_points[clipp_edge])))));
1221 is_visible= !is_visible;
1226 temp_results.push_back(result_points[subj_edge]);
1228 result_points=temp_results;
1230 if(result_points.size()==0)
Definition: math_utilities.hpp:38
Vector VectorType
Definition: math_utilities.hpp:46
static void VectorToTensor(const Vector &Stress, Matrix &Tensor)
Definition: math_utilities.hpp:725
static bool CardanoFormula(double a, double b, double c, double d, Vector &solution)
Definition: math_utilities.hpp:79
static Vector EigenValues(const Matrix &A, double tolerance, double zero)
Definition: math_utilities.hpp:140
static double NormTensor(Matrix &Tensor)
Definition: math_utilities.hpp:708
static void MatrixToTensor(MatrixType &A, std::vector< std::vector< Matrix > > &Tensor)
Definition: math_utilities.hpp:858
unsigned int SizeType
Definition: math_utilities.hpp:50
static void DeviatoricUnity(std::vector< std::vector< Matrix > > &Unity)
Definition: math_utilities.hpp:1079
DenseVector< Second_Order_Tensor > Third_Order_Tensor
Definition: math_utilities.hpp:56
static void DeviatoricUnity(array_1d< double, 81 > &Unity)
Definition: math_utilities.hpp:1114
static void EigenVectors(const MatrixType &A, MatrixType &vectors, VectorType &lambda, double zero_tolerance=1e-9, int max_iterations=10)
Definition: math_utilities.hpp:430
MathUtils< TDataType > MathUtilsType
Definition: math_utilities.hpp:52
static void TensorToMatrix(std::vector< std::vector< Matrix > > &Tensor, Matrix &Matrix)
Definition: math_utilities.hpp:953
static bool Clipping(std::vector< Point * > &clipping_points, std::vector< Point * > &subjected_points, std::vector< Point * > &result_points, double tolerance)
Definition: math_utilities.hpp:1141
static Vector EigenValuesDirectMethod(const Matrix &A)
Definition: math_utilities.hpp:241
matrix< Second_Order_Tensor > Matrix_Second_Tensor
Definition: math_utilities.hpp:60
static void TensorToMatrix(const array_1d< double, 81 > &Tensor, Matrix &Matrix)
Definition: math_utilities.hpp:1027
static Vector TensorToStrainVector(const Matrix &Tensor)
Definition: math_utilities.hpp:670
DenseVector< Vector > Second_Order_Tensor
Definition: math_utilities.hpp:54
unsigned int IndexType
Definition: math_utilities.hpp:48
static void MatrixToTensor(MatrixType &A, array_1d< double, 81 > &Tensor)
Definition: math_utilities.hpp:908
static void QRFactorization(const MatrixType &A, MatrixType &Q, MatrixType &R)
Definition: math_utilities.hpp:305
Matrix MatrixType
Definition: math_utilities.hpp:44
static MatrixType StrainVectorToTensor(const VectorType &Strains)
Definition: math_utilities.hpp:636
DenseVector< DenseVector< Matrix > > Fourth_Order_Tensor
Definition: math_utilities.hpp:58
static void TensorToVector(const Matrix &Tensor, Vector &Vector)
Definition: math_utilities.hpp:756
static void TensorToMatrix(Fourth_Order_Tensor &Tensor, Matrix &Matrix)
Definition: math_utilities.hpp:780
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
Point class.
Definition: point.h:59
Short class definition.
Definition: array_1d.h:61
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_CATCH(MoreInfo)
Definition: define.h:110
#define KRATOS_TRY
Definition: define.h:109
iteration
Definition: DEM_benchmarks.py:172
constexpr double Pi
Definition: global_variables.h:25
solution
Definition: KratosDEM.py:9
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
KratosZeroVector< double > ZeroVector
Definition: amatrix_interface.h:561
Internals::Matrix< double, AMatrix::dynamic, 1 > Vector
Definition: amatrix_interface.h:472
KratosZeroMatrix< double > ZeroMatrix
Definition: amatrix_interface.h:559
Internals::Matrix< double, AMatrix::dynamic, AMatrix::dynamic > Matrix
Definition: amatrix_interface.h:470
TExpression1Type::data_type inner_prod(AMatrix::MatrixExpression< TExpression1Type, TCategory1 > const &First, AMatrix::MatrixExpression< TExpression2Type, TCategory2 > const &Second)
Definition: amatrix_interface.h:592
T & noalias(T &TheMatrix)
Definition: amatrix_interface.h:484
int max_iterations
Definition: ProjectParameters.py:53
list coeff
Definition: bombardelli_test.py:41
y
Other simbols definition.
Definition: generate_axisymmetric_navier_stokes_element.py:54
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
b
Definition: generate_total_lagrangian_mixed_volumetric_strain_element.py:31
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
phi
Definition: isotropic_damage_automatic_differentiation.py:168
R
Definition: isotropic_damage_automatic_differentiation.py:172
Stress
Definition: isotropic_damage_automatic_differentiation.py:135
tuple Q
Definition: isotropic_damage_automatic_differentiation.py:235
int d
Definition: ode_solve.py:397
int k
Definition: quadrature.py:595
int j
Definition: quadrature.py:648
A
Definition: sensitivityMatrix.py:70
p
Definition: sensitivityMatrix.py:52
int dim
Definition: sensitivityMatrix.py:25
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
zero
Definition: test_pureconvectionsolver_benchmarking.py:94
e
Definition: run_cpp_mpi_tests.py:31