MIDAS  0.75
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Friends Macros
main.cpp
Go to the documentation of this file.
1 #include "alias.h"
2 #include "problem.h"
3 #include "taux.h"
4 #include "geometry.h"
5 
6 #include "librw.h"
7 #include "arrays.h"
8 
9 #include <stdio.h>
10 #include <stdlib.h>
11 #include <time.h>
12 
13 //##########################################################
14 // OO OO OOO OOOOOOO OOOOOO OOOOOO
15 // OOO OOO OOO OOOOOOOO OOOOOOOO OOO OOO
16 // OOOOOOOO OOO OOO OOO OOO OOO OOO
17 // OOOOOOOO OOO OOO OOO OOO OOO OOOOOO
18 // OOO OOO OOO OOO OOO OOOOOOOO OOO
19 // OOO OOO OOO OOOOOOOO OOO OOO OOO OOO
20 // OOO OOO OOO OOOOOOO OOO OOO OOOOOO
21 //##########################################################
22 //##########################################################
23 // OO OO OOO OOOOOOO OOOOOO OOOOOO
24 // OOO OOO OOO OOOOOOOO OOOOOOOO OOO OOO
25 // OOOOOOOO OOO OOO OOO OOO OOO OOO
26 // OOOOOOOO OOO OOO OOO OOO OOO OOOOOO
27 // OOO OOO OOO OOO OOO OOOOOOOO OOO
28 // OOO OOO OOO OOOOOOOO OOO OOO OOO OOO
29 // OOO OOO OOO OOOOOOO OOO OOO OOOOOO
30 //##########################################################
31 
33 #define VERSION 0.77
34 
35 /*
36  STABNI KULTURA
37  ==============
38  * ULOHY
39  - momentalne podporuju jen jednu ulohu = problem
40  - jeden problem je celej schovanej v jednom probdescu
41  charakteristiky jsou nacteny z jednoho ctrl file
42  pokud je tam vice meshi, tak privni je hlavni a dalsi do ni budou integrovany
43 
44  * CONSTRUCTOR COPY - tenhle constructor pouzivat opatrne !!!
45  ----------------
46  - CC kopiruje zcela vsechny atributy, co nechci zkopirovat tak musim explicitne prepsat
47  - v miste kde ho pouzivam (new object(src-object)) dat komentar // CONSTRUCTOR COPY
48  at to muzu casem kontrolovat, jestli prepisuju vsechny atributy
49  - zatim ho pouzivam je pri rozdeleni quady na 2 trojuhelniky
50 
51 
52  Obecne ToDo:
53  ============
54  - pri printu vystupniho souboru spocitej polohu hangingnode of na edgi znovu z natural coords
55  - udelat kontrolu delka polylineu = suma delek malych proutku
56  - az to nebude aktualni, tak smazat vse s klicovym slovem vlna
57 
58  Help:
59  =====
60  vstupy jsou nacteny do vnitrni struktury
61  pole uzlu Nodes, jsou prvky poskladany libovolne, ne podle id
62  pole elementu Elements, jsou prvky poskladany libovolne, ne podle id
63 
64 
65  Aktualni ToDo:
66  ==============
67 
68  Pozn:
69  =====
70  grep hangingnode `ls -1 *.{h,cpp} | grep -v -e alias -e pp.cpp -e input.cpp`
71 */
72 
73 
74 using namespace midaspace;
75 
76 void help (void);
77 bool parameters (int argc, char *argv[], Problem *&Pd, StdoutDriver *sodriver);
78 
82 #ifdef _MIDAS_LIB
83 int midas (int argc, char **argv)
84 #else
85 int main (int argc, char *argv[])
86 #endif
87 {
88 // VectoR v1, v2;
89 // v1.x = 2700;
90 // v1.y = -2160;
91 // v1.z = -2880;
92 //
93 // printf("%lf\n", v1.give_length());
94 // v2 = v1;
95 // v2.tms(4000/v1.give_length());
96 //
97 // v1.sub(&v2);
98 // v2.printYourself();
99 //
100 // v2.x = 1350 ;
101 // v2.y = 520;
102 // v2.z = -2640;
103 //
104 // v1.tms(0.5);
105 // v2.sub(&v1);
106 // v2.printYourself();
107 //
108 //
109 // exit (0);
110 
111  StdoutDriver sodriver;
112 
114  if (AP_find_option (argc, argv, "--version")) \
115  { fprintf (stdout, "%.2f\n", VERSION); return 0; }
116 
117  sodriver.print_info_message (SODE_row, " ------------------------------------------------------------------------------");
118  sodriver.print_info_message (SODE_row, " *************************** MIDAS %.2f ****************************", VERSION);
119  sodriver.print_info_message (SODE_row, " ------------------------------------------------------------------------------");
121  long hod,min;
122  double sec = clock();
124 
126  int retval = 0;
127  Problem *Pd = NULL;
128 
130  try {
131  if (parameters (argc, argv, Pd, &sodriver)) Pd->solve();
132  else help();
133  }
134  catch (int e) { retval = e; }
135  catch (...) {
136  _warningg("unknown exception");
137  }
138 
140  if (Pd) delete Pd;
141 
142 
144  sec = (clock() - sec) / (double)CLOCKS_PER_SEC;
145  hod = (long)sec/3600; sec -= hod*3600;
146  min = (long)sec/60; sec -= min*60;
148  sodriver.print_info_message (SODE_row, " ------------------------------------------------------------------------------");
149  sodriver.print_info_message (SODE_row, " ******************* MIDAS - consumed time %2ld:%02ld:%05.2f *******************",hod,min,sec);
150  sodriver.print_info_message (SODE_row, " ------------------------------------------------------------------------------");
151 
152  return retval;
153 }
155 
156 
158 void help (void)
159 {
160  fprintf (stdout,"\
161  Multifunctional Interface between Design And mechanical response Solver \n\
162  Copyright (C) 2004-2011 Ladislav Termit Svoboda \n\
163  \n\
164  SYNTAX midas [--help|--version] \n\
165  midas -f file \n\
166  midas -OM_... [options] \n\
167  \n\
168  DESCRIPTION \n\
169  \n\
170  --help ... print this help \n\
171  --version ... print this help \n\
172  \n\
173  -f FILE ... file with parameters \n\
174  \n\
175  OPERATION MODE \n\
176  -OM_convert \n\
177  -OM_design2solver \n\
178  -OM_solver2design \n\
179  \n\
180  INPUT SECTION \n\
181  -IN_path path ... path for input files \n\
182  -IN_ctrl FILE ... file with characteristics for input file to OOFEM \n\
183  -IN_mmff format ... model/mesh file format \n\
184  vtk ... VTK file format (automatic detection of legacy x XML version)\n\
185  unv ... I-DEAS file format \n\
186  t3d ... native format of output file from T3d mesh generator \n\
187  ansys ... native format of input file to ANSYS package \n\
188  oofem ... native format of input file to OOFEM package \n\
189  polyline ... native format of input file to MIDAS with rod reinforcement \n\
190  (automatic detection of legacy x XML version) \n\
191  -IN_mesh FILE ... file with geometry of FEM mesh \n\
192  -IN_model FILE ... file with geometry of FEM model \n\
193  -IN_ndom # ... number of domains, used for multiple output (parallel) \n\
194  -IN_eltype_beam_lbeam ... beam elements will be 'linear beam element' \n\
195  -IN_eltype_beam_truss ... beam elements will be 'truss element' \n\
196  -IN_LCS_xy_NodeID # ... \n\
197  -IN_LCS_xy_NodeProp # .. \n\
198  -IN_rslt FILE ... file with analysis output \n\
199  \n\
200  PROCESS SECTION \n\
201  -P_multinode ... elimination of multiple nodes \n\
202  -P_multielem ... elimination of multiple elements \n\
203  -P_RigidBodyToRigidArm ... conversion beams with RigidBody mat. to Rigid Arm \n\
204  \n\
205  OUTPUT SECTION \n\
206  -OUT_path path ... path for output files (default is equal to -IN_path path)\n\
207  -OUT_fn FILE ... name of output file \n\
208  -OUT_sif ... input file to OOFEMU will be exported \n\
209  -OUT_meshqual ... VTK file with mesh quality will be exported \n\n");
210 }
211 
212 void ffstrcat (char *commpar, femFileFormat FF)
213 {
214  strcat (commpar, " -IO_ff ");
215  strcat (commpar, femFileFormatEtoS(FF));
216 }
217 
218 // *****************************************************************************************
219 // *** *** *** *** *** DETECTION OF PARAMETRES *** *** *** *** ***
220 // *****************************************************************************************
221 bool parameters (int argc, char *argv[], Problem *&Pd, StdoutDriver *sodriver)
222 {
223  // ***
224  // *** HELP PARAMETER
225  // ***
226  if (argc==1 || AP_find_option (argc,argv,"--help")) return false;
227 
228  // ***
229  // *** find file with PARAMETERS
230  // ***
231  long cmdl_argc = 0;
232  if (long pos = AP_find_option (argc, argv, "-f")) {
233  FILE *par = _openFileN ("r", "File with options", argv[pos+1]);
234 
235  cmdl_argc = argc;
236  long file_argc = FP_number_of_words (par); rewind(par);
237 
238  if (file_argc) {
239  char **cmdl_argv = argv;
240  argv = new char*[cmdl_argc + file_argc];
241 
242  for (argc=0; argc<cmdl_argc; argc++)
243  argv[argc] = cmdl_argv[argc];
244 
245  for (; argc<cmdl_argc + file_argc; argc++) {
246  FP_skip_nonword (par);
248  if (!FP_skip_nonword (par)) break;
249  argv[argc] = new char[1023];
250  FP_scan_word (par, argv[argc]);
251  }
252  }
253  fclose (par);
254  }
255 
256 
258  sodriver->print_info_message (SODE_start_blue_arrow, "Detection of command line parameters");
259 
261  Pd = new Problem(sodriver);
262 
264  femFileFormat FF = FFF_Void; // actual model/mesh file format
265 
267  char commparOM[1023]; commparOM[0] = '\0';
268  char commparIN[1023]; commparIN[0] = '\0';
269  char commparPS[1023]; commparPS[0] = '\0';
270  char commparOT[1023]; commparOT[0] = '\0';
271 
272  char auxs[1023];
273 
274  for (int i=1; i<argc; i++) {
275  if (!strcasecmp("-f", argv[i])) i++;
276  // ***
277  // *** OPERATION MODE
278  // ***
279  else if (!strcasecmp("-OM_convert", argv[i])) { Pd->set_OM(OM_Convert); strcat (commparOM," -OM_convert"); }
280  else if (!strcasecmp("-OM_design2design", argv[i])) { Pd->set_OM(OM_Design2design); strcat (commparOM," -OM_design2design"); }
281  else if (!strcasecmp("-OM_design2solver", argv[i])) { Pd->set_OM(OM_Design2solver); strcat (commparOM," -OM_design2solver"); }
282  else if (!strcasecmp("-OM_solver2design", argv[i])) { Pd->set_OM(OM_Solver2design); strcat (commparOM," -OM_solver2design"); }
283  else if (!strcasecmp("-OM_test", argv[i])) { Pd->set_OM(OM_Test); strcat (commparOM," -OM_test"); }
284 
285 
286  // *** INPUT/OUTPUT FILE FORMAT
287  else if (!strcasecmp("-IO_ff", argv[i])) { FF = femFileFormatStoE(argv[++i]) ; }
288 
289 
290  // ***
291  // *** INPUT PARAMETERS
292  // ***
293  else if (!strcasecmp("-IN_path", argv[i])) { Pd->set_IN_Path ( pathstrdupl (argv[++i])); sprint_param (commparIN, argv+i, 2); }
294  else if (!strcasecmp("-IN_ctrl", argv[i])) { Pd->set_IN_ctrlfile (new FiLe(FFF_Void, NULL, argv[++i])); sprint_param (commparIN, argv+i, 2); }
295  else if (!strcasecmp("-IN_model", argv[i])) { Pd->add_IN_mdlFiLe (new FiLe(FF, "primary", argv[++i])); ffstrcat (commparIN, FF); sprint_param (commparIN, argv+i, 2); }
296  else if (!strcasecmp("-IN_mesh", argv[i])) { Pd->add_IN_mshFiLe (new FiLe(FF, "primary", argv[++i])); ffstrcat (commparIN, FF); sprint_param (commparIN, argv+i, 2); }
297  else if (!strcasecmp("-IN_Smodel", argv[i])) { Pd->add_IN_mdlFiLe (new FiLe(FF, argv[++i], argv[++i])); ffstrcat (commparIN, FF); sprint_param (commparIN, argv+i, 3); }
298  else if (!strcasecmp("-IN_Smesh", argv[i])) { Pd->add_IN_mshFiLe (new FiLe(FF, argv[++i], argv[++i])); ffstrcat (commparIN, FF); sprint_param (commparIN, argv+i, 3); }
299  else if (!strcasecmp("-IN_VTKaddata", argv[i])) { Pd->set_IN_VTKaddata (new FiLe(FFF_VTK, NULL, argv[++i])); sprint_param (commparIN, argv+i, 2); }
300  else if (!strcasecmp("-IN_VTKaddatasprs", argv[i])) { Pd->set_IN_VTKaddatasprs (new FiLe(FFF_VTK, NULL, argv[++i])); sprint_param (commparIN, argv+i, 2); }
301  else if (!strcasecmp("-IN_rslts", argv[i])) { Pd->set_IN_file_results (new FiLe(FF, NULL, argv[++i])); ffstrcat (commparIN, FF); sprint_param (commparIN, argv+i, 2); }
302  else if (!strcasecmp("-IN_rslts_addataVTK", argv[i])) { Pd->set_IN_file_results_addataVTK (new FiLe(FFF_VTK, NULL, argv[++i])); sprint_param (commparIN, argv+i, 2); }
303  else if (!strcasecmp("-IN_bgm", argv[i])) { Pd->set_IN_bgm (new FiLe(FFF_T3d, NULL, argv[++i])); sprint_param (commparIN, argv+i, 2); }
304  // ///
305  else if (!strcasecmp("-IN_meshGen_elemSize", argv[i])) { Pd->set_IN_meshGen_elemSize ( atof(argv[++i])); sprint_param (commparIN, argv+i, 2); }
306  else if (!strcasecmp("-IN_meshGen_elemCount", argv[i])) { Pd->set_IN_meshGen_elemCount( atol(argv[++i])); sprint_param (commparIN, argv+i, 2); }
307  else if (!strcasecmp("-IN_ndom", argv[i])) { Pd->set_IN_numdom ( atol(argv[++i])); sprint_param (commparIN, argv+i, 2); }
308  else if (!strcasecmp("-IN_LCS_xy_NodeID", argv[i])) { Pd->set_lcs (LCSd_xy, LCSt_NodeID, atol(argv[++i])); sprint_param (commparIN, argv+i, 2); }
309  else if (!strcasecmp("-IN_LCS_xy_NodeProp", argv[i])) { Pd->set_lcs (LCSd_xy, LCSt_NodeProp, atol(argv[++i])); sprint_param (commparIN, argv+i, 2); }
310  // ///
311  else if (!strcasecmp("-IN_bondEndRFran", argv[i])) { Pd->set_PDBO (PDBO_BondEndRFran, true); sprint_param (commparIN, argv+i, 1); }
312  else if (!strcasecmp("-IN_allElemsProp1", argv[i])) { Pd->set_PDBO (PDBO_allElemsProp1, true); sprint_param (commparIN, argv+i, 1); }
313  // ///
314  else if (!strcasecmp("-IN_FETS", argv[i])) { Pd->set_FETS(argv[i+1], strcat(strcat(strcpy(auxs, argv[i+2]), " "), argv[i+3])); i+=3; sprint_param (commparIN, argv+i, 3); }
315  // *** ///
318  // *** PROCESS PARAMETERS ///
319  // *** ///
320  else if (!strcasecmp("-P_tmpFileWrite2hdd", argv[i])) { Pd->set_PDBO (PDBO_tmpFileWrite2hdd, true); sprint_param (commparPS, argv+i, 1); }
321  else if (!strcasecmp("-P_multinode", argv[i])) { Pd->set_PDBO (PDBO_MultipNode, true); sprint_param (commparPS, argv+i, 1); }
322  else if (!strcasecmp("-P_multielem", argv[i])) { Pd->set_PDBO (PDBO_MultipElem, true); sprint_param (commparPS, argv+i, 1); }
323  else if (!strcasecmp("-P_RigidBodyToRigidArm", argv[i])) { Pd->set_PDBO (PDBO_RIGIDmatToRAN, true); sprint_param (commparPS, argv+i, 1); }
324  else if (!strcasecmp("-P_divideQuads", argv[i])) { Pd->set_PDBO (PDBO_divideQuads, true); sprint_param (commparPS, argv+i, 1); }
325  else if (!strcasecmp("-P_hingedBeamToTruss", argv[i])) { Pd->set_PDBO (PDBO_hingedBeamToTruss,true); sprint_param (commparPS, argv+i, 1); }
326  else if (!strcasecmp("-P_uncfrd", argv[i])) { Pd->set_PDBO (PDBO_uncfrd, true); sprint_param (commparPS, argv+i, 1); }
327  else if (!strcasecmp("-P_preserveGeometry", argv[i])) { Pd->set_PDBO (PDBO_preserveGeom, true); sprint_param (commparPS, argv+i, 1); }
328  else if (!strcasecmp("-P_solverOOFEM", argv[i])) { Pd->set_P_binary_solver (new FiLe(FFF_Void, NULL, argv[++i]), SOL_OOFEM); sprint_param (commparPS, argv+i, 2); }
329  else if (!strcasecmp("-P_mesherT3d", argv[i])) { Pd->set_P_binary_mesher (new FiLe(FFF_Void, NULL, argv[++i]), MGT_T3d); sprint_param (commparPS, argv+i, 2); }
330  else if (!strcasecmp("-P_adaptivity", argv[i])) { int auxi = Pd->set_adpa (argv+i+1); i += auxi; sprint_param (commparPS, argv+i, auxi); }
331  else if (!strcasecmp("-P_ansys", argv[i])) { Pd->set_PDBO (PDBO_ansys, true); sprint_param (commparPS, argv+i, 1); }
332  else if (!strcasecmp("-P_stability", argv[i])) { Pd->set_PDBO (PDBO_stability, true); sprint_param (commparPS, argv+i, 1); }
333  else if (!strcasecmp("-P_rershell", argv[i])) { Pd->set_PDBO (PDBO_P_rershell, true); sprint_param (commparPS, argv+i, 1); }
334  else if (!strcasecmp("-P_dw", argv[i])) { Pd->set_PDBO (PDBO_P_dw, true); sprint_param (commparPS, argv+i, 1); }
335  else if (!strcasecmp("-P_refder", argv[i])) { Pd->set_PDBO (PDBO_P_refder, true); sprint_param (commparPS, argv+i, 1); }
336  //
337  else if (!strcasecmp("-P_mesh_quads", argv[i])) { Pd->set_PDBO (PDBO_P_mesh_quads, true); sprint_param (commparPS, argv+i, 1); }
338  // ///
339  else if (!strcasecmp("-P_melnik", argv[i])) { Pd->set_PDBO (PDBO_melnik, true); Pd->set_melnik(atof(argv[++i])); sprint_param (commparPS, argv+i, 2); }
340  //else if (!strcasecmp("-P_vlna", argv[i])) { Pd->set_PDBO (PDBO_Vlna, true); mmFF = MFT_VLNA; sprint_param (commparPS, argv+i, 1); } ///
343  // *** ///
344  // *** OUTPUT PARAMETERS ///
345  // *** ///
346  else if (!strcasecmp("-OUT_path", argv[i])) { Pd->set_OUT_Path ( pathstrdupl(argv[++i])); sprint_param (commparOT, argv+i, 2); }
347  else if (!strcasecmp("-OUT_moBFN", argv[i])) { Pd->set_OUT_moFILE (new FiLe(FF, NULL, argv[++i])); ffstrcat (commparOT, FF); sprint_param (commparOT, argv+i, 2); }
348  // ///
349  else if (!strcasecmp("-OUT_printStep", argv[i])) { Pd->set_OUT_printStep ( atol(argv[++i])); sprint_param (commparOT, argv+i, 2); }
350  // ///
351  else if (!strcasecmp("-OUT_print_property", argv[i])) { Pd->set_PDBO (PDBO_OUT_print_property, true); sprint_param (commparOT, argv+i, 1); }
352  else if (!strcasecmp("-OUT_print_parent_property", argv[i])) { Pd->set_PDBO (PDBO_OUT_print_parent_property,true); sprint_param (commparOT, argv+i, 1); }
353  else if (!strcasecmp("-OUT_print_model_parent", argv[i])) { Pd->set_PDBO (PDBO_OUT_print_model_parent, true); sprint_param (commparOT, argv+i, 1); }
354  else if (!strcasecmp("-OUT_print_CSusage", argv[i])) { Pd->set_PDBO (PDBO_OUT_print_CSusage, true); sprint_param (commparOT, argv+i, 1); }
355  else if (!strcasecmp("-OUT_test", argv[i])) { Pd->set_PDBO (PDBO_OUT_Test, true); sprint_param (commparOT, argv+i, 1); }
356  else if (!strcasecmp("-OUT_meshqual", argv[i])) { Pd->set_PDBO (PDBO_OUT_MeshQual, true); sprint_param (commparOT, argv+i, 1); }
357  else if (!strcasecmp("-OUT_MeshStats", argv[i])) { Pd->set_PDBO (PDBO_OUT_MeshStats, true); sprint_param (commparOT, argv+i, 1); }
358  else if (!strcasecmp("-OUT_CheckCableTensileOnly", argv[i])) { Pd->set_PDBO (PDBO_OUT_CabTenOnly, true); sprint_param (commparOT, argv+i, 1); }
359  else if (!strcasecmp("-OUT_origelemid", argv[i])) { Pd->set_PDBO (PDBO_OUT_origelemid, true); sprint_param (commparOT, argv+i, 1); }
360  else if (!strcasecmp("-OUT_ctrl_vtk", argv[i])) { Pd->set_PDBO (PDBO_OUT_charVTK, true); sprint_param (commparOT, argv+i, 1); }
361  else if (!strcasecmp("-OUT_solverINctrl", argv[i])) { Pd->set_PDBO (PDBO_OUT_solverINctrl, true); sprint_param (commparOT, argv+i, 1); }
362  else if (!strcasecmp("-OUT_args", argv[i])) { Pd->set_PDBO (PDBO_OUT_args, true); sprint_param (commparOT, argv+i, 1); }
363 
364  // unknown non-empty parameter
365  else if (argv[i][0] != '\0') _errorr2 ("unknown parameter \"%s\"", argv[i]);
366  }
367 
369 
370  // ***
371  // *** PRINT OF PARAMETERS
372  // ***
373  fprintf (stdout," OPERATION MODE : %s\n", commparOM);
374  fprintf (stdout," INPUT parameters: %s\n", commparIN);
375  fprintf (stdout," PROCESS parameters: %s\n", commparPS);
376  fprintf (stdout," OUTPUT parameters: %s\n\n", commparOT);
377 
378  if (Pd->give_PDBO(PDBO_OUT_args)) {
379  Pd->args = new char [4000];
380  sprintf (Pd->args, "# %s %s %s %s\n\n", commparOM, commparIN, commparPS, commparOT);
381  sprintf (Pd->args+strlen(Pd->args),"# OPERATION MODE :\n%s\n", commparOM);
382  sprintf (Pd->args+strlen(Pd->args),"# INPUT parameters:\n%s\n", commparIN);
383  sprintf (Pd->args+strlen(Pd->args),"# PROCESS parameters:\n%s\n", commparPS);
384  sprintf (Pd->args+strlen(Pd->args),"# OUTPUT parameters:\n%s\n", commparOT);
385  }
386 
387 
388  // deallocation
389  if (cmdl_argc) {
390  for (int i=cmdl_argc; i<argc; i++)
391  delete [] argv[i];
392 
393  delete [] argv;
394  }
395 
396  return true;
397 }
398 
399 //} // namespace midaspace
400 
401 
402 // testy
403 // PoinT P0; P0.x = 3.0; P0.y = 0.0; P0.z = 0.0;
404 // PoinT P1; P1.x = 0.0; P1.y = 2.0; P1.z = 0.0;
405 //
406 // PoinT V0; V0.x = 0.0; V0.y = 1.0; V0.z = 0.0;
407 // PoinT V1; V1.x = 0.0; V1.y = 1.0; V1.z = 0.0;
408 // PoinT V2; V2.x = 0.0; V2.y = 0.0; V2.z = 1.0;
409 //
410 // PoinT I;
411 //
412 // int vv = intersect_RayTriangle (1e-9, &P0, &P1, &V0, &V1, &V2, &I);
413 //
414 // printf ("vysledek %d, I=[%.2lf,%.2lf,%.2lf]\n", vv, I.x, I.y, I.z);
415 //
416 //
417 // return 0;
418 //
419 //
420 //
femFileFormat
Definition: alias.h:632
#define _warningg(_1)
Definition: gelib.h:154
void ffstrcat(char *commpar, femFileFormat FF)
Definition: main.cpp:212
bool give_PDBO(ProbDescBoolOpt pdbo) const
Definition: problem.h:187
void solve(void)
solve the problem - main function
Definition: problem.cpp:378
int FP_scan_word(FILE *src, char *dest)
... word; return value is length of the word
Definition: librw.cpp:356
void set_OM(OperationMode val)
Definition: problem.h:144
void add_IN_mshFiLe(FiLe *val)
Definition: problem.h:157
void set_IN_Path(char *val)
Definition: problem.h:146
void FP_skip_line_commented(FILE *stream)
move file descriptor to the start of the new noncommented line, without checking of EOF ...
Definition: librw.cpp:145
void set_P_binary_solver(FiLe *val, Solver val2)
Definition: problem.h:170
#define _openFileN(_1, _2, _3)
Definition: gelib.h:173
Input / output function.
void sprint_param(char *s, char *argv[], int n)
Definition: librw.cpp:661
void print_info_message(SODenum flag, const char *format,...) const
Definition: taux.cpp:240
void print_info_message_core(SODenum flag, ETCLR color=ETC_DEFAULT, const char *buffer=NULL) const
Definition: taux.cpp:280
Alias.
void set_OUT_Path(char *val)
Definition: problem.h:159
const char * femFileFormatEtoS(femFileFormat fff)
Definition: alias.h:673
void set_IN_numdom(long val)
Definition: problem.h:155
void set_IN_VTKaddata(FiLe *val)
Definition: problem.h:148
void set_IN_meshGen_elemSize(double val)
Definition: problem.h:153
#define _errorr2(_1, _2)
Definition: gelib.h:145
char * pathstrdupl(const char *src)
Definition: librw.cpp:73
int midas(int argc, char **argv)
void set_melnik(int val)
Definition: problem.h:163
Structs Elem3D, PoinT and VectoR; classes Array, Array1d, Xscal, Dscal, Xvctr, Lvctr, Dvctr, Xmtrx, Lmtrx and Dmtrx.
void set_IN_VTKaddatasprs(FiLe *val)
Definition: problem.h:149
void set_lcs(LCSdirection dir, LCStype typ, long num)
Definition: problem.cpp:232
t3d i/o native ff
Definition: alias.h:641
long FP_number_of_words(FILE *stream)
count number of words (see isWordChar) in file
Definition: librw.cpp:220
void set_IN_file_results(FiLe *val)
Definition: problem.h:150
void set_OUT_printStep(long val)
Definition: problem.h:161
void add_IN_mdlFiLe(FiLe *val)
Definition: problem.h:156
void set_IN_meshGen_elemCount(int val)
Definition: problem.h:154
#define VERSION
TWO DIGITS behind dot are required, not 0.6 but 0.60.
Definition: main.cpp:33
void set_IN_ctrlfile(FiLe *val)
Definition: problem.h:147
MIDAS i/o vtk ff.
Definition: alias.h:635
void set_IN_bgm(FiLe *val)
Definition: problem.h:152
void set_FETS(const char *skupina, const char *str)
Finite Element Type Settings.
Definition: problem.cpp:222
void set_P_binary_mesher(FiLe *val, MeshGenerator val2)
Definition: problem.h:172
Auxiliary functions; classes FiLe, LocalCoordSystem, AdaptivityParameters and StdoutDriver.
long set_adpa(char **argv)
Definition: problem.h:174
bool FP_skip_nonword(FILE *stream)
*** *** *** SKIPING *** *** *** skiping == shift stream pointer at the first char which is not ...
Definition: librw.cpp:264
void set_OUT_moFILE(FiLe *val)
Definition: problem.h:160
void help(void)
*** END OF MAIN ***
Definition: main.cpp:158
long AP_find_option(int argc, char *argv[], const char *s)
*** *** *** *** ARGUMENTS PROCESSING *** *** *** *** terminology: tar -cz -f archiv.tgz archiv/ /// fce name | arguments /// fce name | options | parameters /// fce name | opt | opt | opt argum.
Definition: librw.cpp:97
bool parameters(int argc, char *argv[], Problem *&Pd, StdoutDriver *sodriver)
Definition: main.cpp:221
void set_IN_file_results_addataVTK(FiLe *val)
Definition: problem.h:151
Class Geometry, Model and Mesh.
int main(int argc, char *argv[])
*** *** *** *** MAIN *** *** *** ***
Definition: main.cpp:85
Problem description.
Definition: problem.h:74
Class Problem.
femFileFormat femFileFormatStoE(const char *fff)
Definition: alias.h:653
void set_PDBO(ProbDescBoolOpt pdbo, bool val)
Definition: problem.h:142