146 CSs .delete_objects();
147 Mats .delete_objects();
148 BCs .delete_objects();
150 PVs .delete_objects();
154 NLs .delete_objects();
155 CELs .delete_objects();
156 CFLs .delete_objects();
157 CBLs .delete_objects();
162 NdAts .delete_objects();
163 ElAts .delete_objects();
201 else _errorr(
"Primary model and mesh mismatch");
229 else _errorr (
"Unknown category");
246 for (
long i=0; i<
BCs(); i++)
247 if (BCs[i]->is_identical_with(val)) {
291 for (
int i=0; i<
CSs(); i++) {
292 if (CSs[i]->give_loctype_or_type() == type &&
293 CSs[i]->give_sifid() == id)
302 for (
int i=0; i<
Mats(); i++) {
303 if (Mats[i]->give_loctype() == type &&
304 Mats[i]->give_sifid() == id)
315 if (prop == 0)
errol;
318 for (
int i=0; i<
NdAts(); i++)
319 if (NdAts[i]->give_prop() == prop)
327 if (prop == 0)
errol;
339 for (
int i=0; i<
ElAts(); i++)
340 if (ElAts[i]->give_prop() == prop)
348 for (
int i=0; i<
CSs(); i++)
349 if (CSs[i]->give_type() ==
CST_3d)
355 ((
Problem*)
this)->CSs.wedge(0, csnew);
366 for (
int i=0; i<
Mats(); i++)
368 Mats.delete_object(i);
386 default:
_errorr (
"OPERATION MODE not specified, use \"-OM_design2solver\" or \"-OM_convert\"");
394 bool step_PostProc =
false;
397 case OM_Convert: step_PostProc =
false;
break;
415 FILE *in = fopen (file,
"r");
418 _errorr (
"There are more mesh-input-files then domains");
429 else _errorr(
"Both first model neither first mesh are not primary");
437 if ( mdl &&
IN_mshFiLes()>0)
_errorr(
"OM_Convert supports one mesh only and no model");
438 if (!mdl &&
IN_mshFiLes()>1)
_errorr(
"OM_Convert supports one mesh only and no model");
468 for (i=0; i<
Models(); i++) Models[i]->print_info();
469 for (i=0; i<
Meshes(); i++) Meshes[i]->print_info();
476 for (i=0; i<
Models(); i++)
477 Models[i]->transform_to_mesh();
479 for (i=1; i<
Meshes(); i++) {
480 Meshes[0]->join_geom (Meshes[i]);
481 Meshes[i]->letoff_aa();
482 Meshes.delete_object(i);
489 Meshes[0]->RIGIDmatToRAN();
493 Meshes[0]->cleanup_duplicities ();
494 Meshes[0]->find_slaves ();
504 Meshes[0]->print_geom_info ();
544 default:
_errorr(
"unsuported output file format of conversion mode");
576 Meshes[0]->read_structural_analysis_output();
579 if ( this->
give_adpa() ) Meshes[0]->adaptivity();
586 case FFF_VTU: Meshes[0]->print_results ();
break;
587 default:
_errorr(
"unsuported file format of \"results\" file");
642 fprintf (file,
"%s", this->
args);
655 for (i=0; i<
Meshes(); i++) Meshes[i]->initialize();
656 for (i=0; i<
Models(); i++) Models[i]->initialize();
658 for (i=0; i<
NdAts (); i++) NdAts [i]->initialize();
659 for (i=0; i<
ElAts (); i++) ElAts [i]->initialize();
661 for (i=0; i<
CSs (); i++) CSs [i]->initialize();
662 for (i=0; i<
Mats (); i++) Mats [i]->initialize();
663 for (i=0; i<
BCs (); i++) BCs [i]->initialize();
665 for (i=0; i<
PVs (); i++) PVs [i]->initialize();
666 for (i=0; i<
OOltfs (); i++) OOltfs [i]->initialize();
667 for (i=0; i<
OOextrs (); i++) OOextrs[i]->initialize();
669 for (i=0; i<
NLs (); i++) NLs [i]->initialize();
670 for (i=0; i<
CELs (); i++) CELs [i]->initialize();
671 for (i=0; i<
CFLs (); i++) CFLs [i]->initialize();
672 for (i=0; i<
CBLs (); i++) CBLs [i]->initialize();
673 for (i=0; i<
Fixed (); i++) Fixed [i]->initialize(); Fixed.delete_objects();
676 for (i=0; i<
geomElAt(); i++)
if (geomElAt[i]) geomElAt[i]->initialize();
678 for (i=0; i<
NdAts (); i++) NdAts [i]->initialize();
679 for (i=0; i<
ElAts (); i++) ElAts [i]->initialize();
683 if (
BCs() && ! BCs[0]->is_the_first_BC() ) {
731 for (
int i=0; i<
Meshes(); i++)
732 if (Meshes[i]->give_Master_model() == NULL)
733 _errorr(
"Argument -OUT_print_model_parent can be accepted only if the geometry is given as model.");
765 #ifndef __OOFEM_MODULE
766 _errorr(
"OOFEM binary is given as \"-\", however the module __OOFEM_MODULE is not linked. Activate the module in Makefile please.");
776 if (!
OUT_moFILE)
_errorr(
"Pomocny parametr PDBO_OUT_solverINctrl musi byt pouzit jen s OUT_moFILE");
796 _errorr(
"Primary model[0] is not master of primary mesh[0]");
860 for (
long i=0; i<
NdAts(); i++) {
861 classID ct = NdAts[i]->give_classid();
863 _errorr (
"RAN or HN is nonzero while elimination of duplicities");
898 else if (strcmp(parent->
ToElement()->
Attribute(
"type"),
"UnstructuredGrid") == 0) DATASET=
'U';
917 if ( parent->
Value()[0] !=
'_' )
_errorr(
"There is no character \'_\' at the start of section AppendedData");
940 case BN_COMM:
return "PROBLEM_COMMENT";
break;
941 case BN_OFN:
return "PROBLEM_OUTPUT_FILE_NAME";
break;
942 case BN_ANAL:
return "PROBLEM_ANALYSIS";
break;
943 case BN_DOMN:
return "PROBLEM_TYPE_DOF";
break;
944 case BN_OUTP:
return "PROBLEM_OUTPUT";
break;
946 case BN_CS:
return "LIST_CROSS-SECTIONS";
break;
947 case BN_MAT:
return "LIST_MATERIALS";
break;
948 case BN_BC:
return "LIST_BOUNDARY_CONDITIONS";
break;
949 case BN_PV:
return "LIST_SETS_IDS_PRESCRIBED_VALUES";
break;
951 case BN_NODES:
return "ASSIGN_ATTRIBUTES_TO_NODE_PROP";
break;
952 case BN_ELEMS:
return "ASSIGN_ATTRIBUTES_TO_ELEMENT_PROP";
break;
954 case BN_NL:
return "ASSIGN_NODAL_LOAD";
break;
955 case BN_CEL:
return "ASSIGN_CONST_EDGE_LOAD";
break;
956 case BN_CFL:
return "ASSIGN_CONST_SURFACE_LOAD";
break;
957 case BN_CBL:
return "ASSIGN_CONST_BODY_LOAD";
break;
959 case BN_HN:
return "HANGING_NODE_ATTRIBUTES";
break;
960 case BN_RAN:
return "RIGID_ARM_NODE_ATTRIBUTES";
break;
962 case BN_LTF:
return "LTF";
break;
965 case BN_Void: fprintf (stderr,
"BN_void has assigned no string");
966 default:
_errorr (
"Unknown BLOCK name alias.h");
973 if (strcmp(bn,
"PROBLEM_COMMENT" ) == 0)
return BN_COMM;
974 else if (strcmp(bn,
"PROBLEM_OUTPUT_FILE_NAME" ) == 0)
return BN_OFN;
975 else if (strcmp(bn,
"PROBLEM_ANALYSIS" ) == 0)
return BN_ANAL;
976 else if (strcmp(bn,
"PROBLEM_TYPE_DOF" ) == 0)
return BN_DOMN;
977 else if (strcmp(bn,
"PROBLEM_OUTPUT" ) == 0)
return BN_OUTP;
979 else if (strcmp(bn,
"LIST_CROSS-SECTIONS" ) == 0)
return BN_CS;
980 else if (strcmp(bn,
"LIST_MATERIALS" ) == 0)
return BN_MAT;
981 else if (strcmp(bn,
"LIST_BOUNDARY_CONDITIONS" ) == 0)
return BN_BC;
982 else if (strcmp(bn,
"LIST_PRESCRIBED_VALUES" ) == 0)
return BN_PV;
983 else if (strcmp(bn,
"LIST_SETS_IDS_PRESCRIBED_VALUES" ) == 0)
return BN_PV;
985 else if (strcmp(bn,
"ASSIGN_ATTRIBUTES_TO_NODE_PROP" ) == 0)
return BN_NODES;
986 else if (strcmp(bn,
"ASSIGN_ATTRIBUTES_TO_ELEMENT_PROP") == 0)
return BN_ELEMS;
987 else if (strcmp(bn,
"ASSIGN_FIXED_TO_ELEMENT_ID" ) == 0)
return BN_FIXED;
989 else if (strcmp(bn,
"ASSIGN_NODAL_LOAD" ) == 0)
return BN_NL;
990 else if (strcmp(bn,
"ASSIGN_CONST_EDGE_LOAD" ) == 0)
return BN_CEL;
991 else if (strcmp(bn,
"ASSIGN_CONST_SURFACE_LOAD" ) == 0)
return BN_CFL;
992 else if (strcmp(bn,
"ASSIGN_CONST_BODY_LOAD" ) == 0)
return BN_CBL;
994 else if (strcmp(bn,
"HANGING_NODE_ATTRIBUTES" ) == 0)
return BN_HN;
995 else if (strcmp(bn,
"RIGID_ARM_NODE_ATTRIBUTES" ) == 0)
return BN_RAN;
997 else if (strcmp(bn,
"LTF" ) == 0)
return BN_LTF;
998 else if (strcmp(bn,
"EXTRACT" ) == 0)
return BN_EXTRCT;
1000 else _errorr2 (
"Unknown BLOCK name \"%s\"", bn);
1015 char *file =
new char[255];
1019 stream->open(
STRM_void,
"r", (
const char*&)file);
1022 if (!stream->isFile()) stream->relink_downF();
1038 char WORD[255], LINE[5119];
1041 if (fgets (LINE, 5119, stream->
file()) == NULL)
_errorr(
"There is no line with '###' start sequence in char file");
1046 if (strcmp(WORD,
"END") == 0)
break;
1103 default:
_errorr2 (
"Wrong block name enum \"%s\"", key);
1114 char LINE[4095], WORD[255];
1119 if (
STRCMP(WORD,
"OOFEMrecord") == 0) {
1123 else _errorr2 (
"Unsupported key name \"%s\" in block PROBLEM_OUTPUT", WORD);
1149 if (cr == 0)
return;
1155 case BN_CS:
CSs .reallocup(cr);
break;
1157 case BN_BC:
BCs .reallocup(cr);
break;
1158 case BN_PV:
PVs .reallocup(cr);
break;
1159 case BN_NL:
NLs .reallocup(cr);
break;
1177 for (
long i=0; i<cr; i++) {
1224 switch (IN_mshFiLes[i]->give_ff()) {
1229 case FFF_VTP:
this ->read_geometry_VTK (
Meshes[i], IN_mshFiLes[i]->give_name());
break;
1232 case FFF_OOFEM:
this ->read_mesh_OOFEM (
Meshes[i], IN_mshFiLes[i]->give_name());
break;
1233 case FFF_SIFEL:
this ->read_mesh_SIFEL (
Meshes[i], IN_mshFiLes[i]->give_name());
break;
1235 default:
_errorr2 (
"Unknown type of mesh-input-file %ld", IN_mshFiLes[i]->give_ff());
1247 Models.add(
new Model(i,
this, IN_mdlFiLes[i]->give_mmp()));
1249 switch (IN_mdlFiLes[i]->give_ff()) {
1254 default:
_errorr2 (
"Unknown type of model-input-file %ld", IN_mdlFiLes[i]->give_ff());
1265 char *file =
new char[255];
1267 else sprintf (file,
"%s", filename);
1296 if (strcmp(WORD,
"UNSTRUCTURED_GRID") == 0) DATASET=
'U';
1297 else if (strcmp(WORD,
"POLYDATA") == 0) DATASET=
'P';
1298 else _errorr2 (
"Unsupported DATATYPE \"%s\"", WORD);
1314 char *file =
new char[255];
1316 else sprintf (file,
"%s", filename);
1326 geom->
read_VTK (
'-', stream,
true, sparse);
1335 void read_line (FILE *stream,
char *&dest,
const char *name)
1337 if (dest)
_errorr2 (
"\"%s\" line already given", name);
1352 char WORD[255], LINE[1023];
1378 long nn, ne, ccs, cmat, cbc, nic, cooltf;
1379 ; nn = ne = ccs = cmat = cbc = nic = cooltf = -1;
1381 fgets (LINE, lLINE, in); str=LINE;
1390 else _errorr2 (
"Unsupported key name \"%s\"", WORD);
1392 if (nn<0 || ne<0 || ccs<0 || cmat<0 || cbc<0 || nic<0 || cooltf<0)
_errorr(
"error");
1395 long fpi = ftell (in);
1405 strcpy (LINE,
"OOFEMrecord ");
1406 for (i=0; i<ccs; i++) {
1410 ((
char*)str)[-1] =
'x';
1411 if (i+1 >= 10) ((
char*)str)[-2] =
' ';
1417 if (cmat > 9)
_errorr (
"Count of Mat is > 10");
1418 Mats.reallocup(cmat);
1420 strcpy (LINE,
"OOFEMrecord ");
1421 for (i=0; i<cmat; i++) {
1425 ((
char*)str)[-1] =
'x';
1431 if (cbc > 9)
_errorr (
"Count of BC is > 10");
1434 strcpy (LINE,
"OOFEMrecord ");
1435 for (i=0; i<cbc; i++) {
1439 ((
char*)str)[-1] =
'x';
1445 if (nic != 0)
_errorr (
"nic is not equal to 0");
1448 OOltfs.reallocup(cooltf);
1450 for (i=0; i<cooltf; i++) {
1457 if (getc (in) ==
'#') {
1461 for (i=0; i<cooex; i++) {
1469 fseek(in, fpi, SEEK_SET);
1490 int auxi, ntyp, nptyp;
1508 long fpi = ftell (in);
1518 strcpy (LINE,
"SIFELrecord ");
1519 for (i=0; i<ntyp; i++) {
1520 fscanf (in,
"%d", &auxi);
1521 sprintf (LINE+13,
" %4d ", auxi);
1522 fscanf (in,
"%d", &nptyp);
1523 Mats.reallocplus(nptyp);
1524 for (j=0; j<nptyp; j++) {
1534 strcpy (LINE,
"SIFELrecord ");
1535 for (i=0; i<ntyp; i++) {
1536 fscanf (in,
"%d", &auxi);
1537 sprintf (LINE+11,
" %4d ", auxi);
1538 fscanf (in,
"%d", &nptyp);
1539 CSs.reallocplus(nptyp);
1540 for (j=0; j<nptyp; j++) {
1550 fseek(in, fpi, SEEK_SET);
1552 fseek(in, auxl, SEEK_SET);
1556 switch (
Meshes[0]->give_Pjnt(0)->give_pointAttribs()->give_nDOFs()) {
1563 switch (
Meshes[0]->give_Pjnt(0)->give_pointAttribs()->give_nDOFs()) {
1574 long num, id, interedgeID;
1578 if (auxi != 1)
errol;
1584 for (i=0; i<num; i++) {
1585 fscanf (in,
"%ld", &
id);
id--;
1586 ((
Point*)mesh->
give_Pjnt(
id))->give_pointAttribs()->read_bc(in, fff);
1592 for (i=0; i<num; i++) {
1593 _errorr (
"--------------------------------toto soupni do stejne fce jako noudy---------------------------------------------------------------------------------------------------");
1594 fscanf (in,
"%ld", &
id);
id--;
1596 fscanf (in,
"%d", &auxi);
1598 for (j=0; j<elem->
give_ned(); j++) {
1599 fscanf (in,
"%d", &auxi);
1611 else if (auxi == 1) {
1629 for (i=0; i<num; i++) {
1671 fscanf (in,
"%d", &auxi);
if (auxi)
errol;
1708 if (mdl) geom =
Models[0];
1728 if (!
fulldata)
_errorr(
"Full data (material, support) was not given => we cannot print OOFEM input file");
1738 Meshes[0]->give_Parallel() ==
false)
1743 char suff[33], *end;
1745 else { sprintf (suff,
".oofem.in"); end = suff+9; }
1750 for (did=0; did<
Meshes[0]->give_NumDomains(); did++) {
1751 if (
Meshes[0]->give_Parallel()) sprintf (end,
".%ld", did);
1761 else fprintf (out,
"0\n");
1765 else fprintf (out,
"this is default job comment\n");
1772 else fprintf (out,
"OutputManager tstep_all dofman_all element_all\n");
1775 fprintf (out,
"ndofman %ld",
Meshes[0]->give_NnAtDom(did));
1777 fprintf (out,
" nelem %ld" ,
Meshes[0]->give_NeAtDom(did));
1779 fprintf (out,
" ncrosssect %ld nmat %ld nbc %ld nic 0 nltf %ld\n",
1784 Meshes[0]->print_block_nodes(out, fff, did);
1791 Meshes[0]->print_block_elems(out, fff, did);
1798 for (i=0; i<
CSs (); i++) CSs [i]->print_row (out, fff, did);
1799 for (i=0; i<
Mats (); i++) Mats [i]->print_row (out, fff, did);
1800 for (i=0; i<
BCs (); i++) BCs [i]->print_row (out, fff, did);
1801 for (i=0; i<
OOltfs (); i++) OOltfs [i]->print_row (out, fff, did);
1802 for (i=0; i<
OOextrs(); i++) OOextrs[i]->print_row (out, fff, did);
1815 if (!
fulldata)
_errorr(
"Full data (material, support) was not given => we cannot print SIFEL input file");
1824 else sprintf (suff,
".sifel.in");
1834 else fprintf (out,
"this is default job comment\n");
1842 fprintf (out,
"\n\n%ld\n",
Meshes[0]->give_Npts());
1843 Meshes[0]->print_block_nodes(out, fff, domain);
1846 Meshes[0]->print_block_supported_dofs(out, fff, domain);
1849 fprintf (out,
"\n\n%ld\n",
Meshes[0]->give_Nels());
1850 Meshes[0]->print_block_elems(out, fff, domain);
1855 fprintf (out,
"\n\n# definition of materials\n");
1860 for (j=0; j<
Mats(); j++) {
1861 if (Mats[j]->give_loctype() == i)
1862 Mats[j]->print_row (out, fff, domain);
1867 fprintf (out,
"\n\n# definition of cross-sections\n");
1869 fprintf (out,
"%d\n", auxi);
1871 if (i ==
CST_3d)
continue;
1874 for (j=0; j<
CSs(); j++) {
1875 if (CSs[j]->give_loctype_or_type() == i)
1876 CSs[j]->print_row (out, fff, domain);
1882 fprintf (out,
"\n\n# number of load cases\n");
1883 fprintf (out,
"%d\n", 1);
1888 fprintf (out,
"\n# nodal load\n");
1889 Meshes[0]->print_block_nodal_load(out, fff, domain);
1892 fprintf (out,
"\n# load of elements\n");
1893 for (n=i=0; i<
Meshes[0]->give_Nels(); i++)
if (
Meshes[0]->give_Elem(i)->give_elemAttribs()->is_loaded()) n++;
1894 fprintf (out,
"%ld\n", n);
1895 for (i=0; i<
Meshes[0]->give_Nels(); i++) {
1896 Meshes[0]->give_Elem(i)->give_elemAttribs()->print_Ebc_SIFEL(out);
1897 Meshes[0]->give_Elem(i)->give_elemAttribs()->print_Fbc_SIFEL(out);
1898 Meshes[0]->give_Elem(i)->give_elemAttribs()->print_Bbc_SIFEL(out);
1902 fprintf (out,
"\n# prescribed displacements\n"); fprintf (out,
"%d\n", 0);
1904 fprintf (out,
"\n# temperature load\n"); fprintf (out,
"%d\n", 0);
1906 fprintf (out,
"\n# eigenstrains\n"); fprintf (out,
"%d\n", 0);
1909 fprintf (out,
"\n# text output\n");
1916 fprintf (out,
"#nodes\n");
1922 fprintf (out,
"%d",
ton_react); fprintf (out,
"\n");
1924 fprintf (out,
"#elements\n");
1929 fprintf (out,
"%d",
toe_nevim); fprintf (out,
"\n");
1933 fprintf (out,
"\n# grafic output\n");
1939 for (i=0; i<
BCs(); i++)
1940 if (BCs[i]->give_loctype() ==
BC_PV)
1941 BCs[i]->print_row(out, fff, domain);
1943 fprintf (out,
"\n%d\n\n%d\n\n%d\n\n%d\n\n%d\n\n\n%d\n%d\n", 0, 0, 0, 0, 0, 0, 0);
1960 if (!
fulldata)
_errorr(
"Full data (material, support) was not given => we cannot print ANSYS input file");
1968 else sprintf (suff,
".ansys.in");
1976 fprintf (out,
"!! *************************************************\n");
1977 fprintf (out,
"!! *** This file was generated by MIDAS 0.63 ***\n");
1978 fprintf (out,
"!! *************************************************\n");
1979 fprintf (out,
"\n");
1981 fprintf (out,
"!!!\n");
1982 fprintf (out,
"!!! START\n");
1983 fprintf (out,
"!!!\n");
1985 fprintf (out,
"fini\n");
1986 fprintf (out,
"/CLEAR, start\n\n");
1988 fprintf (out,
"/PREP7\n");
1989 fprintf (out,
"btol, 1.e-6\n");
1991 fprintf (out,
"\n\n");
1994 fprintf (out,
"!!!\n");
1995 fprintf (out,
"!!! Definition of cross sections\n");
1996 fprintf (out,
"!!!\n");
1997 for (i=0; i<
CSs (); i++) CSs [i]->print_row (out, fff, domain);
2000 fprintf (out,
"!!!\n");
2001 fprintf (out,
"!!! Definition of materials properties\n");
2002 fprintf (out,
"!!!\n");
2003 for (i=0; i<
Mats(); i++) Mats[i]->print_row (out, fff, domain);
2004 fprintf (out,
"\n");
2007 fprintf (out,
"!!!\n");
2008 fprintf (out,
"!!! Mesh properties\n");
2009 fprintf (out,
"!!!\n");
2012 fprintf (out,
"\n");
2015 fprintf (out,
"!!!\n");
2016 fprintf (out,
"!!! Nodes\n");
2017 fprintf (out,
"!!!\n");
2018 Meshes[0]->print_block_nodes(out, fff, domain);
2019 fprintf (out,
"\n");
2022 fprintf (out,
"!!!\n");
2023 fprintf (out,
"!!! Constrained dofs\n");
2024 fprintf (out,
"!!!\n");
2025 Meshes[0]->print_block_supported_dofs(out, fff, domain);
2026 fprintf (out,
"\n");
2029 fprintf (out,
"!!!\n");
2030 fprintf (out,
"!!! Elements\n");
2031 fprintf (out,
"!!!\n");
2032 Meshes[0]->print_block_elems(out, fff, domain);
2034 fprintf (out,
"\nnumcmp,all\n\n");
2037 fprintf (out,
"!!!\n");
2038 fprintf (out,
"!!! Nodal load\n");
2039 fprintf (out,
"!!!\n");
2040 Meshes[0]->print_block_nodal_load(out, fff, domain);
2041 fprintf (out,
"\n");
2044 fprintf (out,
"!!!\n");
2045 fprintf (out,
"!!! Gravity load\n");
2046 fprintf (out,
"!!!\n");
2047 Meshes[0]->print_block_gravity_load_ANSYS(out);
2050 fprintf (out,
"!!!\n");
2051 fprintf (out,
"!!! Solution statika\n");
2052 fprintf (out,
"!!!\n");
2053 fprintf (out,
"FINISH\n");
2054 fprintf (out,
"ALLSEL,ALL\n");
2055 fprintf (out,
"\n");
2056 fprintf (out,
"/SOLUTION\n");
2057 fprintf (out,
"ANTYPE,STATIC\n");
2058 fprintf (out,
"SOLVE\n");
2059 fprintf (out,
"\n");
2060 fprintf (out,
"\n");
2061 fprintf (out,
"\n");
2062 fprintf (out,
"!!!\n");
2063 fprintf (out,
"!!! Solution stability\n");
2064 fprintf (out,
"!!!\n");
2065 fprintf (out,
"FINISH\n");
2066 fprintf (out,
"ALLSEL,ALL\n");
2067 fprintf (out,
"\n");
2068 fprintf (out,
"/SOLUTION\n");
2069 fprintf (out,
"pstres,on\n");
2070 fprintf (out,
"SOLVE\n");
2071 fprintf (out,
"FINISH\n");
2072 fprintf (out,
"\n");
2073 fprintf (out,
"/SOLUTION\n");
2074 fprintf (out,
"ANTYPE,BUCKLE\n");
2075 fprintf (out,
"BUCOPT,LANB,1\n");
2076 fprintf (out,
"MXPAND,1,0,0,0,0.001,\n");
2077 fprintf (out,
"SOLVE\n");
2078 fprintf (out,
"FINISH\n");
2079 fprintf (out,
"\n");
2080 fprintf (out,
"\n");
2081 fprintf (out,
"!!!\n");
2082 fprintf (out,
"!!! Output\n");
2083 fprintf (out,
"!!!\n");
2084 fprintf (out,
"FINISH\n");
2085 fprintf (out,
"NSEL,ALL\n");
2086 fprintf (out,
"\n");
2087 fprintf (out,
"/POST1\n");
2088 fprintf (out,
"SET,LIST\n");
2089 fprintf (out,
"SET,FIRST\n");
2090 fprintf (out,
"\n");
2091 fprintf (out,
"/POST1\n");
2092 fprintf (out,
"/output,this.ansys.dat\n");
2093 fprintf (out,
"prnsol,u,z\n");
2094 fprintf (out,
"/output\n");
2109 Meshes[0]->print_control (conout);
2112 fprintf (conout,
"\n\n\n");
2113 fprintf (conout,
" PPPPP OOOO L YY YY L II N N EEEEE SSSS \n");
2114 fprintf (conout,
" P P O O L YY YY L II NN N E S S \n");
2115 fprintf (conout,
" P P O O L YYYY L II N N N EEE SS \n");
2116 fprintf (conout,
" PPPPP O O L YY L II N N N EEE SS \n");
2117 fprintf (conout,
" PP O O L YY L II N NN E S S \n");
2118 fprintf (conout,
" PP OOOO LLLLL YY LLLLL II N N EEEEE SSSS \n");
2120 for (
long i=0; i<
Models(); i++)
FiLe * IN_file_results_addataVTK
DOFsPerNode DOFsPerNode_s2e(const char *val)
DOFsPerNode give_DOFsPerNode(void)
const CrossSection * give_3dCS(void)
long GP_scan_line(Stream *stream, char *dest)
... line; return value is length of the line
bool give_PDBO(ProbDescBoolOpt pdbo) const
const char * DOFsPerNode2OOFEMdomain(DOFsPerNode od)
void set_DOFspnod(DOFsPerNode val)
void solve(void)
solve the problem - main function
int FP_scan_word(FILE *src, char *dest)
... word; return value is length of the word
void read_meshes(void)
reading of files with model/mesh and possibly info about solving
void set_empty_name_from_base(FiLe *src)
const BoundaryCond * add_uniq_BC(BoundaryCond *val)
add new BC
DOFsPerNode give_dpn(void) const
int MaterialType_e2i_SIFEL(MaterialType val, PAGroup pg)
const XMLElement * XP_give_unique_expected_elem(const XMLNode *xelem, const char *name, bool uniq)
PAGroup give_analgroup(void) const
void FP_skip_line_commented(FILE *stream)
move file descriptor to the start of the new noncommented line, without checking of EOF ...
void FP_skip_line_fast_skip_commented(FILE *stream, int n)
move file descriptor to the start of the n-th new line, without checking of EOF
PointAttribs * give_NdAt_with_prop(long prop) const
long give_nsteps(void) const
void FEM_solve_OOFEM(Problem *pd)
ProblemAnalysis * ProbAnal
GPA< ElemAttribs > geomElAt
void print_input_ANSYS(void) const
virtual XMLComment * ToComment()
Safely cast to a Comment, or null.
long SP_scan_word(const char *&src, char *dest)
... word; return value is length of the word
AdaptivityParameters * give_adpa(void) const
long FP_number_of_lines(FILE *stream, bool rwd)
count number of lines in file
FILE * file(void)
*** GET ***
void XP_check_expected_attribute(const XMLNode *xelem, const char *name, const char *value)
virtual void initialize(void)
initialize yourself
void initialization(void)
initiate/sets data
#define SP_scan_expected_word_exit(_1, _2, _3, _4)
void TF_GPA_shake_down_reid(GPA< T > &list)
clear out NULL components
long FP_scan_line_skip_emptyORcommented(FILE *stream, char *dest)
*** *** *** SCANNING *** *** *** scanning == scan ...
void read_mesh_OOFEM(Mesh *mesh, const char *filename)
read native input file to OOFEM
const BoundaryCond * switch_BC(const BoundaryCond *bc, DOFsPerNode dpn_old, DOFsPerNode dpn_new)
Interface to library T3D.
#define SP_scan_expected_number_exit(_1, _2, _3)
void read_geometry_VTK(Geometry *geom, const char *filename)
#define _warningg3(_1, _2, _3)
void print_info_message(SODenum flag, const char *format,...) const
bool SP_skip_word(const char *&src, int n)
... word and space before
const XMLNode * FirstChild() const
Get the first child node, or null if none exists.
void read_block(Stream *stream, BlockName bn)
#define _openFilePN(_1, _2, _3, _4)
const BoundaryCond * give_bcbr(void) const
void print_info_message_core(SODenum flag, ETCLR color=ETC_DEFAULT, const char *buffer=NULL) const
void read_mesh_SIFEL(Mesh *mesh, const char *filename)
read native input file to SIFEL
const char * give_path(void) const
PAType give_loctype(void) const
void read_addata(bool mdl)
void set_geomElAt(CellGeometry cg, DOFsPerNode val)
void rm_MAT_RIGID(void)
rm material MAT_RIGID
CellGeometry give_cellGeom(void) const
long give_ned(void) const
void read_characteristics(Stream *stream)
PAGroup give_group(void) const
initialize yourself
Classes Cell, Facedge, Edge, Face, Element, Gelement, PolyLine, Line, PolygonMdl, FElement...
void switch_node_pointer(Point *oldnod, Point *newnod)
clean up duplicity components
void checkConsistency(void) const
Checks data consistency.
int ECN_convert_e2i(int id, int compdim, int ord, CellGeometry cg, femFileFormat fff)
External to Internal conversion.
const char * give_base(void) const
void read_addata_VTK(Geometry *geom, const char *filename, bool sparse)
PAType give_analloctype(void) const
const Point * give_point(long i) const
int CrossSectType_e2i_SIFEL(CrossSectType val, PAGroup pg)
long give_nsteps(void) const
void set_lcs(LCSdirection dir, LCStype typ, long num)
virtual bool initialize_from(const char *&str, femFileFormat ff, bool all=true)
initialize form input string
const XMLNode * Parent() const
Get the parent of this node on the DOM.
long GP_scan_line_alloc(Stream *stream, char *&dest)
... line; return value is length of the line; dest is NULL and allocated here
PointAttribs * give_pointAttribs(void)
long SP_scan_line_alloc(const char *&src, char *&dest)
... line; return value is length of the line; dest is NULL and allocated here
const char * give_name(void) const
void skip_commnet(void)
if this XMLnode is XMLComment, skip to next noncomment
const Edge * give_edge(long i) const
XMLNode is a base class for every object that is in the XML Document Object Model (DOM)...
const char * Value() const
The meaning of 'value' changes for the specific type.
void set_approx(FEApproximation val)
long give_nnoed(int i) const
const char * Attribute(const char *name, const char *value=0) const
Given an attribute name, Attribute() returns the value for the attribute of that name, or null if none exists.
bool FP_skip_line(FILE *stream, int n)
move file descriptor to the start of the n-th new line //[former read_line]
void addGlobPath(const char *globpath)
long FP_scan_line(FILE *stream, char *dest)
scan/copy line == string without ' ' from stream
PointAttribs * givealloc_NdAt_with_prop(long prop)
Geometry * give_primary_geometry(void) const
Interface to library OOFEM.
AdaptivityParameters * adpa
Material * give_Mat_of_type(MaterialType type, int id) const
void open(Stream_type t, const char *rw, const char *&fn, XMLNode *node=NULL)
*** SET ***
GPA< LoadTimeFunction > OOltfs
void print_input_SIFEL(void) const
void copy_bcbr(const BoundaryCond *bc, DOFsPerNode dpn_old, DOFsPerNode dpn_new)
void read_VTK(char DATASET, Stream *stream, bool addata=false, bool sparse=false)
CORE read of VTK file.
Lvctr * resize_ignore_vals(long newsize)
resize, ignore values
void setadd_loctype_sifif(BCType loct, int locid)
bool is_empty(void) const
void main_OM_testing(void)
main process of mode OM_Test
const char * BN_enum2char(BlockName bn)
void read_line(FILE *stream, char *&dest, const char *name)
reading of line from file
femFileFormat give_ff(void) const
void read_head_and_chars(Stream *stream, char &DATASET)
zkontroluje hlavicku xml souboru a zpracuje pripadnou char sekci vraci XMLElement s vlastnimi geom da...
Derived class for management of boundary conditions and physical meanings of DOFs (Degrees Of Freedom...
void set_FETS(const char *skupina, const char *str)
Finite Element Type Settings.
SStype
type of stress/strain state of element; especially results depends on this variable => described at M...
void read_characteristics_core(Stream *stream, const char *key)
const StdoutDriver * sodriver(void) const
void print_control(void) const
Function prints contol data.
void read_block_output(Stream *stream)
DOFsPerNode OOFEMdomain2DOFsPerNode(const char *od)
void set_readedchars(bool val)
void main_OM_design2solver2design(void)
main process of mode OM_Design2solver2design
void print_block_SIFEL(FILE *stream) const
print analysis block of SIFEL input file
Auxiliary functions; classes FiLe, LocalCoordSystem, AdaptivityParameters and StdoutDriver.
Problem(StdoutDriver *sodrv)
CONSTRUCTOR.
long give_number_of_nonzeros(void) const
void TF_GPA_reid(GPA< T > &list)
reset ids ascending
GPA< PointAttribs > NdAts
void read_mesh_SIFEL(FILE *stream)
read native input file to SIFEL
XMLError QueryIntAttribute(const char *name, int *value) const
bool SP_scan_expected_word(const char *&src, const char *expctd, bool cs)
... word and compare with expected one
const Element * give_Elem(long i) const
bool SP_scan_number(const char *&src, int &dest)
... number of type int/long/double
bool scan_components(FILE *stream, int ncmp)
void DeleteChild(XMLNode *node)
Delete a child of this node.
long give_nno(void) const
void finitialization(void)
finalize preprocessing
void print_input_OOFEM(void)
#define _warningg5(_1, _2, _3, _4, _5)
void set_domainElAt(FEApproximation val)
void print_row_OOFEM(FILE *stream) const
print analysis row of OOFEM input file
void set_Geom(const Geometry *owner)
#define FP_scan_expected_word_exit(_1, _2, _3, _4)
void initialize_the_first_BC(void)
ElemAttribs * give_ElAt_with_prop(long prop) const
void read_mesh_OOFEM(FILE *stream, long nn, long ne)
read native input file to OOFEM
#define _openFilePNS(_1, _2, _3, _4, _5)
BlockName BN_char2enum(const char *bn)
double IN_meshGen_elemSize
void set_lcs(LCSdirection dir, LCStype typ, long num)
void set_defautlt_meshGen_elemSize(void)
void alloc_geomElAt(CellGeometry cg)
long FP_scan_line_alloc(FILE *stream, char *&dest)
scan/copy line == string without ' ' from stream; dest is NULL and allocated here ...
PAType give_analtype(void) const
const BoundaryCond * add_find_BC(BoundaryCond *val)
find identical or add new BC
classID
Type introduced to distinguish between classes.
virtual bool initialize_from(const char *&str, femFileFormat ff, bool all=true)
initialize form input string
void deallocateCheck(ArgType *p, bool check=true)
*** *** *** *** DEALLOCATE TEMPLATES *** *** *** ***
CrossSection * give_CS_of_type(CrossSectType type, int id) const
bool SP_cutcomment(char *src)
cut of comment == end of line starting by '#'
virtual XMLDeclaration * ToDeclaration()
Safely cast to a Declaration, or null.
MIDAS input native ff - for mesh of polylines.
virtual XMLElement * ToElement()
Safely cast to an Element, or null.
virtual bool initialize_from(const char *&str, femFileFormat ff, bool all=true)
initialize form input string
const XMLNode * NextSibling() const
Get the next (right) sibling node of this node.
const Point * give_Pjnt(long i) const
assignment of attributes to element
PAGroup
The group of problem analysis.
special one time format for bridge in Melnik
PAType give_type(void) const
int give_nDOFs(void) const
FEApproximation
finite element approximation
void read_geometry_VTK_core(Geometry *geom, Stream *stream)
const char * FETSet_e2s_ANSYS(FiniteElementType fet)
void geomElAt_initialize_from(const char *str, CellGeometry cg)
MIDAS input native ff - pro specialni potreby.
bool FP_skip_comment(FILE *stream)
*** *** *** *** FILE PROCESSING *** *** *** *** general rules for file processing: ...
void domainElAt_initialize_from(const char *str)