79 if (status > 0) printf(
"\n ERROR %d examples differs\n\n", status);
80 if (status == 0) printf(
"\n OK all examples are ok\n\n");
90 if (fabs( (f1[n] - f2[n]) / f1[n]) > eps)
97 int diff_fields (
int numDisp,
int numStrain,
int numStress,
const double *d1,
const double *d2,
const double *e1,
const double *e2,
const double *s1,
const double *s2,
double eps)
117 int l = strlen(file1);
118 char *file3 =
new char[l+4];
119 strcpy(file3, file1);
120 sprintf(file3+l-4,
".OK");
121 strcpy(file3+l-1, file1+l-4);
131 return (status ? 1 : 0);
142 int l = strlen(file1);
143 char *file3 =
new char[l+4];
144 strcpy(file3, file1);
145 sprintf(file3+l-4,
".OK");
146 strcpy(file3+l-1, file1+l-4);
156 return (status ? 1 : 0);
169 char vtkTopoFile[] =
"verified/x2D_1I_Ellipse.topo.vtk";
172 char vtkMeshFileOutPert[] =
"verified/x2D_1I_Ellipse.rslt.pert";
173 char vtkMeshFileOutTotl[] =
"verified/x2D_1I_Ellipse.rslt.totl";
175 char vtkRsltFile[255];
207 double p1[3] = { 5.0, 2.0, 0.0};
208 double p2[3] = {-3.0, -6.0, 0.0};
209 long n[3] = { 8, 8, 0};
217 for (
int i=0; i<p->
give_nLC(); i++) {
218 sprintf(vtkRsltFile,
"%s.%02d.vtk", vtkMeshFileOutPert, i);
226 for (
int i=0; i<p->
give_nLC(); i++) {
227 sprintf(vtkRsltFile,
"%s.%02d.vtk", vtkMeshFileOutTotl, i);
242 char vtkAmndFile[] =
"verified/x3D_1I_Ellipsoid.amnd.vtk";
243 char vtkMeshFileOutPert[] =
"verified/x3D_1I_Ellipsoid.rslt.pert";
244 char vtkMeshFileOutTotl[] =
"verified/x3D_1I_Ellipsoid.rslt.totl";
246 char vtkRsltFile[255];
261 double rs1[] = { 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; p->
set_RemoteStrain(0, rs1);
262 double rs2[] = { 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0 }; p->
set_RemoteStrain(1, rs2);
263 double rs3[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0 }; p->
set_RemoteStrain(2, rs3);
264 double rs4[] = { 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; p->
set_RemoteStrain(3, rs4);
265 double rs5[] = { 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0 }; p->
set_RemoteStrain(4, rs5);
266 double rs6[] = { 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0 }; p->
set_RemoteStrain(5, rs6);
267 double rs7[] = { 1.0, 4.0, 6.0, 4.0, 2.0, 5.0, 6.0, 5.0, 3.0 }; p->
set_RemoteStrain(6, rs7);
286 double p1[3] = { 5.0, 2.0, 8.0};
287 double p2[3] = {-3.0, -6.0, 0.0};
288 long n[3] = { 8, 8, 8};
296 for (
int i=0; i<p->
give_nLC(); i++) {
297 sprintf(vtkRsltFile,
"%s.%02d.vtk", vtkMeshFileOutPert, i);
305 for (
int i=0; i<p->
give_nLC(); i++) {
306 sprintf(vtkRsltFile,
"%s.%02d.vtk", vtkMeshFileOutTotl, i);
321 char vtkGeomFile[] =
"verified/x3D_1I_Ellipsoid.geom.vtk";
322 char vtkAmndFile[] =
"verified/x3D_1I_Ellipsoid.amnd.vtk";
323 char vtkMeshFileOut[] =
"verified/x3D_1I_Ellipsoid.rslt.pert";
325 char vtkRsltFile[255];
330 double p1[3] = { 5.0, 2.0, 8.0};
331 double p2[3] = {-3.0, -6.0, 0.0};
332 long n[3] = { 8, 8, 8};
340 for (
int i=0; i<p->
give_nLC(); i++) {
341 sprintf(vtkRsltFile,
"%s.%02d.vtk", vtkMeshFileOut, i);
354 char vtkAmndFile[] =
"verified/grid_2d_3x3_3d.amnd.vtk";
355 char vtkTopoFile[] =
"verified/grid_2d_3x3_3d.topo.vtk";
356 char vtkMeshFile[] =
"verified/grid_2d_3x3_3d.rslt";
357 char vtkMeshFileOut[] =
"verified/grid_2d_3x3_3d.rslt.00.vtk";
366 double rs [] = { 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
373 p->
set_inclusion_all (0, 0.0, 0.0, 0.0, 10, 0.4, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0);
374 p->
set_inclusion_all (1, 4.0, 0.0, 0.0, 10, 0.4, 1.0, 0.8, 0.5, 0.0, 0.0, 0.0);
375 p->
set_inclusion_all (2, 8.0, 0.0, 0.0, 10, 0.4, 1.0, 0.7, 0.4, 30.0, 40.0, 50.0);
376 p->
set_inclusion_all (3, 0.0, 4.0, 0.0, 10, 0.4, 1.0, 1.0, 0.5, 0.0, 70.0, 0.0);
377 p->
set_inclusion_all (4, 4.0, 4.0, 0.0, 10, 0.4, 1.0, 1.0, 0.6, 70.0, 40.0, 0.0);
378 p->
set_inclusion_all (5, 8.0, 4.0, 0.0, 10, 0.4, 1.0, 0.5, 0.5, 0.0, 0.0, 90.0);
379 p->
set_inclusion_all (6, 0.0, 8.0, 0.0, 10, 0.4, 1.0, 0.5, 0.3, 30.0, 30.0, 30.0);
380 p->
set_inclusion_all (7, 4.0, 8.0, 0.0, 10, 0.4, 1.0, 1.0, 0.3, 0.0, 0.0, 0.0);
381 p->
set_inclusion_all (8, 8.0, 8.0, 0.0, 10, 0.4, 1.0, 0.8, 0.5, 90.0, 0.0, 0.0);
391 double p1[3] = {-4.0, -4.0, 0.0 };
392 double p2[3] = {12.0, 12.0, 0.0 };
393 long nn[3] = {100, 100, 0 };
408 char vtkAmndFile[] =
"verified/grid_2d_3x3_3dF.amnd.vtk";
409 char vtkMeshFile[] =
"verified/grid_2d_3x3_3dF.rslt";
410 char vtkMeshFileOut[] =
"verified/grid_2d_3x3_3dF.rslt.00.vtk";
419 double rs [] = { 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
426 p->
set_inclusion_all (0, 0.0, 0.0, 0.0, 10, 0.4, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0);
427 p->
set_inclusion_all (1, 4.0, 0.0, 0.0, 10, 0.4, 1.0, 0.8, 0.5, 0.0, 0.0, 0.0);
428 p->
set_inclusion_all (2, 8.0, 0.0, 0.0, 10, 0.4, 1.0, 0.7, 0.4, 30.0, 40.0, 50.0);
429 p->
set_inclusion_all (3, 0.0, 4.0, 0.0, 10, 0.4, 1.0, 1.0, 0.5, 0.0, 70.0, 0.0);
430 p->
set_inclusion_all (4, 4.0, 4.0, 0.0, 10, 0.4, 1.0, 1.0, 0.6, 70.0, 40.0, 0.0);
431 p->
set_inclusion_all (5, 8.0, 4.0, 0.0, 10, 0.4, 1.0, 0.5, 0.5, 0.0, 0.0, 90.0);
432 p->
set_inclusion_all (6, 0.0, 8.0, 0.0, 10, 0.4, 1.0, 0.5, 0.3, 30.0, 30.0, 30.0);
433 p->
set_inclusion_all (7, 4.0, 8.0, 0.0, 10, 0.4, 1.0, 1.0, 0.3, 0.0, 0.0, 0.0);
434 p->
set_inclusion_all (8, 8.0, 8.0, 0.0, 10, 0.4, 1.0, 0.8, 0.5, 90.0, 0.0, 0.0);
444 double p1[3] = {-4.0, -4.0, 0.0 };
445 double p2[3] = {12.0, 12.0, 0.0 };
446 long nn[3] = {100, 100, 0 };
471 double rs [] = { 1.0, 0.0, 0.0, 0.0 };
492 double coords1[3] = { 2.0, 0.0, 0.0};
493 double coords2[3] = { 0.0, 0.0, 0.0};
496 const int numDisp = 2;
497 const int numStrain = 4;
498 const int numStress = 4;
500 double d1ok[numDisp], d1[numDisp], d2ok[numDisp], d2[numDisp];
501 double e1ok[numStrain], e1[numStrain], e2ok[numStrain], e2[numStrain];
502 double s1ok[numStrain], s1[numStrain], s2ok[numStrain], s2[numStrain];
504 char vtkAmndFile [] =
"verified/plstrain_2I_2d.vtk";
521 if (
diff_fields (numDisp, numStrain, numStress, d1ok, d1, e1ok, e1, s1ok, s1, 1
e-7)) {
522 _warningg(
"2 ellipses results differs"); status++;
524 if (
diff_fields (numDisp, numStrain, numStress, d2ok, d2, e2ok, e2, s2ok, s2, 1
e-7)) {
525 _warningg(
"2 ellipses results differs"); status++;
544 double rs [] = { 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
565 double coords1[3] = { 2.0, 0.0, 0.0};
566 double coords2[3] = { 0.0, 0.0, 0.0};
569 const int numDisp = 3;
570 const int numStrain = 9;
571 const int numStress = 9;
573 double d1ok[numDisp], d1[numDisp], d2ok[numDisp], d2[numDisp];
574 double e1ok[numStrain], e1[numStrain], e2ok[numStrain], e2[numStrain];
575 double s1ok[numStrain], s1[numStrain], s2ok[numStrain], s2[numStrain];
577 char vtkAmndFile [] =
"verified/plstrain_2I_3d.vtk";
595 if (
diff_fields (numDisp, numStrain, numStress, d1ok, d1, e1ok, e1, s1ok, s1, 1
e-7)) {
_warningg(
"2 ellipses results differs"); status++; }
596 if (
diff_fields (numDisp, numStrain, numStress, d2ok, d2, e2ok, e2, s2ok, s2, 1
e-7)) {
_warningg(
"2 ellipses results differs"); status++; }
607 char rsltsFile[] =
"verified/homogenization_1I_2d.txt";
631 FILE *file = fopen(rsltsFile,
"w");
634 p->
matrix_giveFullStiffMatrix(sm); fprintf (file,
"%s:\t\t",
"Matrix" );
for (
int i=0; i<9; i++) fprintf (file,
" %15.8lf", sm[i]); fprintf (file,
"\n");
649 fprintf (file,
"Fraction volume: %6.2lf\n", 100*fv);
665 char rsltsFile[] =
"verified/homogenization_1I_3d.txt";
677 p->
set_inclusion_all(0, 0.0, 0.0, 0.0, 1.0, 0.2, 4.0, 2.0, 1.0, 0.0, 90.0, 90.0);
690 FILE *file = fopen(rsltsFile,
"w");
693 p->
matrix_giveFullStiffMatrix(sm); fprintf (file,
"%s:\t\t\t",
"Matrix" );
for (
int i=0; i<36; i++) fprintf (file,
" %15.8lf", sm[i]); fprintf (file,
"\n");
694 h = p->
give_new_homogenization (
HT_VoightBound); h->
set_boundingBox (-x, -y, -z, x, y, z); h->
giveHomogenizedStiffnessMatrix (sm); fprintf (file,
"%s:\t\t", h->
giveClassName());
for (
int i=0; i<36; i++) fprintf (file,
" %15.8lf", sm[i]); fprintf (file,
"\n");
695 h = p->
give_new_homogenization (
HT_RegGrid); h->
set_boundingBox (-x, -y, -z, x, y, z); h->
giveHomogenizedStiffnessMatrix (sm); fprintf (file,
"%s:\t\t", h->
giveClassName());
for (
int i=0; i<36; i++) fprintf (file,
" %15.8lf", sm[i]); fprintf (file,
"\n");
696 h = p->
give_new_homogenization (
HT_DifferentialScheme); h->
set_boundingBox (-x, -y, -z, x, y, z); h->
giveHomogenizedStiffnessMatrix (sm); fprintf (file,
"%s:\t", h->
giveClassName());
for (
int i=0; i<36; i++) fprintf (file,
" %15.8lf", sm[i]); fprintf (file,
"\n");
697 h = p->
give_new_homogenization (
HT_MoriTanaka); h->
set_boundingBox (-x, -y, -z, x, y, z); h->
giveHomogenizedStiffnessMatrix (sm); fprintf (file,
"%s:\t\t", h->
giveClassName());
for (
int i=0; i<36; i++) fprintf (file,
" %15.8lf", sm[i]); fprintf (file,
"\n");
698 h = p->
give_new_homogenization (
HT_Dilute); h->
set_boundingBox (-x, -y, -z, x, y, z); h->
giveHomogenizedStiffnessMatrix (sm); fprintf (file,
"%s:\t\t\t", h->
giveClassName());
for (
int i=0; i<36; i++) fprintf (file,
" %15.8lf", sm[i]); fprintf (file,
"\n");
699 h = p->
give_new_homogenization (
HT_ReussBound); h->
set_boundingBox (-x, -y, -z, x, y, z); h->
giveHomogenizedStiffnessMatrix (sm); fprintf (file,
"%s:\t\t", h->
giveClassName());
for (
int i=0; i<36; i++) fprintf (file,
" %15.8lf", sm[i]); fprintf (file,
"\n");
703 fprintf (file,
"Fraction volume: %6.2lf\n", 100*fv);
730 char vtkGeomFile[] =
"verified/four_3d_icls.geom.vtk";
731 char vtkAmndFile[] =
"verified/four_3d_icls.amnd.vtk";
732 char vtkTopoFile[] =
"verified/four_3d_icls.topo.vtk";
733 char vtkRsltFileA[] =
"verified/four_3d_icls.rsltA";
734 char vtkRsltFileD[] =
"verified/four_3d_icls.rsltD";
735 char vtkRsltFilevtkA[] =
"verified/four_3d_icls.rsltA.00.vtk";
736 char vtkRsltFilevtkD[] =
"verified/four_3d_icls.rsltD.00.vtk";
739 double p1[3] = { -5.0, -8.0, -5.0 };
740 double p2[3] = { 10.0, 8.0, 9.0 };
741 long nn[3] = { 30, 30, 30};
788 char vtkGeomFile[] =
"verified/Ellipse.geom.vtk";
789 char vtkGeomFileField[] =
"verified/Ellipse.geom.field.vtk";
792 char vtkAmndFile[] =
"verified/Ellipse.amnd.vtk";
801 double coords1[3] = { 1.4, 2.4, 0.0};
802 double coords2[3] = {-1.1, 4.1, 0.0};
807 const int numDisp = 2;
808 const int numStrain = 4;
809 const int numStress = 4;
811 double d1ok[numDisp], d1[numDisp], d2ok[numDisp], d2[numDisp];
812 double e1ok[numStrain], e1[numStrain], e2ok[numStrain], e2[numStrain];
813 double s1ok[numStrain], s1[numStrain], s2ok[numStrain], s2[numStrain];
858 if (
diff_fields (numDisp, numStrain, numStress, d1ok, d1, e1ok, e1, s1ok, s1, 1
e-7)) {
_warningg(
"Ellipsoid results differs"); status++; }
859 if (
diff_fields (numDisp, numStrain, numStress, d2ok, d2, e2ok, e2, s2ok, s2, 1
e-7)) {
_warningg(
"Ellipsoid results differs"); status++; }
870 char vtkGeomFile[] =
"verified/Ellipsoid.geom.vtk";
871 char vtkGeomFileField[] =
"verified/Ellipsoid.geom.field.vtk";
872 char vtuGeomFile[] =
"verified/Ellipsoid.geom.vtu";
873 char vtuGeomFileField[] =
"verified/Ellipsoid.geom.field.vtu";
874 char vtkAmndFile[] =
"verified/Ellipsoid.amnd.vtk";
882 double coords1[3] = { 1.4, 2.4, 5.4};
883 double coords2[3] = {-1.1, 4.1, 2.9};
888 const int numDisp = 3;
889 const int numStrain = 9;
890 const int numStress = 9;
892 double d1ok[numDisp], d1[numDisp], d2ok[numDisp], d2[numDisp];
893 double e1ok[numStrain], e1[numStrain], e2ok[numStrain], e2[numStrain];
894 double s1ok[numStrain], s1[numStrain], s2ok[numStrain], s2[numStrain];
940 if (
diff_fields (numDisp, numStrain, numStress, d1ok, d1, e1ok, e1, s1ok, s1, 1
e-7)) {
_warningg(
"Ellipsoid results differs"); status++; }
941 if (
diff_fields (numDisp, numStrain, numStress, d2ok, d2, e2ok, e2, s2ok, s2, 1
e-7)) {
_warningg(
"Ellipsoid results differs"); status++; }
956 if (
diff_fields (numDisp, numStrain, numStress, d1ok, d1, e1ok, e1, s1ok, s1, 1
e-7)) {
_warningg(
"Ellipsoid results differs"); status++; }
957 if (
diff_fields (numDisp, numStrain, numStress, d2ok, d2, e2ok, e2, s2ok, s2, 1
e-7)) {
_warningg(
"Ellipsoid results differs"); status++; }
971 if (
diff_fields (numDisp, numStrain, numStress, d1ok, d1, e1ok, e1, s1ok, s1, 1
e-7)) {
_warningg(
"Ellipsoid results differs"); status++; }
972 if (
diff_fields (numDisp, numStrain, numStress, d2ok, d2, e2ok, e2, s2ok, s2, 1
e-7)) {
_warningg(
"Ellipsoid results differs"); status++; }
988 if (
diff_fields (numDisp, numStrain, numStress, d1ok, d1, e1ok, e1, s1ok, s1, 1
e-7)) {
_warningg(
"Ellipsoid results differs"); status++; }
989 if (
diff_fields (numDisp, numStrain, numStress, d2ok, d2, e2ok, e2, s2ok, s2, 1
e-7)) {
_warningg(
"Ellipsoid results differs"); status++; }
1019 if (
diff_fields (numDisp, numStrain, numStress, d1ok, d1, e1ok, e1, s1ok, s1, 1
e-7)) {
_warningg(
"Ellipsoid results differs"); status++; }
1020 if (
diff_fields (numDisp, numStrain, numStress, d2ok, d2, e2ok, e2, s2ok, s2, 1
e-7)) {
_warningg(
"Ellipsoid results differs"); status++; }
1042 if (
diff_fields (numDisp, numStrain, numStress, d1ok, d1, e1ok, e1, s1ok, s1, 1
e-7)) {
_warningg(
"Ellipsoid results differs"); status++; }
1043 if (
diff_fields (numDisp, numStrain, numStress, d2ok, d2, e2ok, e2, s2ok, s2, 1
e-7)) {
_warningg(
"Ellipsoid results differs"); status++; }
1058 if (
diff_fields (numDisp, numStrain, numStress, d1ok, d1, e1ok, e1, s1ok, s1, 1
e-7)) {
_warningg(
"Ellipsoid results differs"); status++; }
1059 if (
diff_fields (numDisp, numStrain, numStress, d2ok, d2, e2ok, e2, s2ok, s2, 1
e-7)) {
_warningg(
"Ellipsoid results differs"); status++; }
1073 if (
diff_fields (numDisp, numStrain, numStress, d1ok, d1, e1ok, e1, s1ok, s1, 1
e-7)) {
_warningg(
"Ellipsoid results differs"); status++; }
1074 if (
diff_fields (numDisp, numStrain, numStress, d2ok, d2, e2ok, e2, s2ok, s2, 1
e-7)) {
_warningg(
"Ellipsoid results differs"); status++; }
1090 if (
diff_fields (numDisp, numStrain, numStress, d1ok, d1, e1ok, e1, s1ok, s1, 1
e-7)) {
_warningg(
"Ellipsoid results differs"); status++; }
1091 if (
diff_fields (numDisp, numStrain, numStress, d2ok, d2, e2ok, e2, s2ok, s2, 1
e-7)) {
_warningg(
"Ellipsoid results differs"); status++; }
1103 char vtkGeomFile[] =
"verified/X2D_3incl.geom.vtk";
1104 char vtkMeshFile[] =
"verified/X2D_3incl.mesh.vtk";
1105 char vtkMeshFileOut[] =
"verified/X2D_3incl.mesh.out";
1106 char vtkMeshFileOut0[] =
"verified/X2D_3incl.mesh.out.00.vtk";
1107 char vtkMeshFileOut1[] =
"verified/X2D_3incl.mesh.out.01.vtk";
1128 char vtkGeomFile[] =
"verified/X3D_3incl.geom.vtk";
1130 char vtkTopoFile3d[] =
"verified/X3D_3incl.topo3d.vtk";
1131 char vtkMeshFile[] =
"verified/X3D_3incl.mesh.vtk";
1132 char vtkMeshFileOut[] =
"verified/X3D_3incl.mesh.out";
1133 char vtkMeshFileOut0[] =
"verified/X3D_3incl.mesh.out.00.vtk";
int x3D_1I_Ellipsoid(void)
Single inclusion of type ellipsoid.
int plstrain_2I_3d(void)
Two inclusions of type ellipse by 3d.
void input_data_initialize_and_check_consistency(void)
Initializes and checks consistency of all input data. This function has to be called after data input...
int grid_2d_3x3_3d_F(void)
Nine 3d inclusions in 2d grid 3x3.
void set_dimension(int d)
file of various types and symbolic constant definitions
int x2D_1I_Ellipse_homog(void)
Single inclusion of type ellipse.
virtual int give_nLC(void) const
Give number of load cases, e.i. number of load cases, i.e. number of Remote_strain fields...
void set_inclusion_semiaxesDimensions(long id, double a1, double a2, double a3=0.0)
Sets the id -th inclusion sorted semiaxes dimensions [a1,a2,a3]. The a3 dimension is ignored in the c...
Problem * read_inclusions_plus_initialize_and_print(const char *inclusion_file, const char *equiv_file, DiffTypes dt)
Original Honza Novak's balancing.
void give_StiffnessMatrixFull(double *answer) const
Copy stiffness tensor into full matrix answer.
void set_inclusion_E_nu(long id, double E, double nu)
Sets the id -th inclusion material properties, Young's modulus E and Poissons ratio nu...
void print_equivalent_problem(const char *filename)
Prints the equivalent problem record into the VTK file.
Class of function for homogenization of stress fields.
Inclusion * give_inclusion(long i) const
debug, for one function in tools
void set_inclusion_EulerAnglesDEG(long id, double e1, double e2=0.0, double e3=0.0)
Sets the id -th inclusion Euler angles [e1,e2,e3] given in degrees. The e2 and e3 angles are ignored ...
Class mElement, mesh element.
void tests_verified(void)
int grid_2d_3x3_3d(void)
Nine 3d inclusions in 2d grid 3x3.
void set_RemoteStrain(int id, const double *rs)
Sets the id -th remote strain, rs is row-by-row matrix of dimensions 2x2 or 3x3 for 2d or 3d problem...
int compare_fields(int n, const double *f1, const double *f2, double eps)
Compare two fields.
void set_inclusion_centroids(long id, double x, double y, double z=0.0)
Sets the id -th inclusion centroids [x,y,z]. The z coordinate is ignored in the case of 2 dimensions...
int diff_fields(int numDisp, int numStrain, int numStress, const double *d1, const double *d2, const double *e1, const double *e2, const double *s1, const double *s2, double eps)
void set_boundingBox(double x1, double y1, double x2, double y2)
int x2D_1I_Ellipse_direct_API(void)
Single inclusion of type ellipse.
void set_SBA_optimized(bool val)
Set type of self-balancing algorithm.
int x3D_1I_Ellipsoid_homog(void)
Single inclusion of type ellipse.
int cmp_txt_file_delete_first(const char *file1, const char *file2)
void matrix_giveFullStiffMatrix(double *m) const
void set_number_of_inclusions(long n)
Sets number of inclusions.
void set_SBAM(SBAtype val)
int cmp_vtk_file_delete_first(const char *file1, const char *file2)
void set_data_set(void)
Function switches bool flag data_set on true. That indicates start of the process of data input...
void set_matrix_E_nu(double E, double nu)
Sets problem dimension.
void set_DataDimDiff(int dim, DiffTypes dt)
Function agregates set_data_set, set_dimension and set_diffType functions.
double giveTotalVolumeFractionOfInclusions(void) const
bool FP_cmp_files(const char *file1, const char *file2)
Return false if no differences.
void set_diffType(DiffTypes val)
Sets type of differentiation, analytical by default.
Homogenization * give_new_homogenization(HomogenizationType ht)
int Four_3d_inclusions(void)
Four 3d inclusion.
bool file_delete_if_exist(const char *name)
void set_inclusion_all(long id, double x, double y, double e, double n, double a1, double a2, double e1)
Agregates ...
void printFieldsOnMeshGrid(const char *mesh_file_out, const double *p1, const double *p2, const long *n, char ptFlag, int rs, int nrs, PFCmode pfcMode=PFCM_OPTIMIZED) const
Function computes all fields (displacements, strains and stresses) in nodes a regular orthogonal mesh...
virtual void giveHomogenizedStiffnessMatrix(double *answer)=0
Function returning the homogenized stiffness matrix according the defined method termitovo pridat par...
void print_visualization(const char *filename, int n, int dim=0, bool refined=false)
Triangulates inclusions surfaces and prints filename VTK file.
void read_input_file(const char *filename)
Reads filename VTK input file containing inclusion geometry and topology.
bool cmp_vtk_file(const char *file1, const char *file2, int verbose)
Compare two VTK files. Return false if same. [ return hodnota byly kdysi opacna ].
void printFieldsOnMeshVTK(const char *mesh_file_out, const char *mesh_file, char ptFlag, int rs, int nrs, PFCmode pfcMode=PFCM_OPTIMIZED) const
Function computes all fields (displacements, strains and stresses) in nodes a mesh given via VTK file...
void file_delete_if_exist_exit(const char *name)
virtual const char * giveClassName()
Function returning class name.
int x3D_1I_Ellipsoid_direct_API(void)
Single inclusion of type ellipsoid.
void set_intFieldsShape(int val)
int plstrain_2I_2d(void)
Two inclusions of type ellipse.
void set_UnitRemoteStrains(void)
Function sets a set of unit remote strains.
void set_numberOfRemoteStrains(int n)
Sets number of remote strains.
long giveFieldsOfPointOneRS(double *displc, double *strain, double *stress, const double *coords, char ptFlag, int rs, PFCmode pfcMode=PFCM_OPTIMIZED, long reqIncl=-3, STRNotation tn=STRN_THEORETICAL_ROW) const
Function gives results for only one remote strain. See function giveFieldsOfPoint().
void convert_to_equivalent_problem(void)
Converts the given heterogeneous problem to the equivalent problem.