00001 #ifndef PROBDESCC_H 00002 #define PROBDESCC_H 00003 00004 #include <stdio.h> 00005 #include "aliasc.h" 00006 #include "galias.h" 00007 #include "timecontr.h" 00008 #include "slesolv.h" 00009 #include "iotools.h" 00010 #include "xfile.h" 00011 00012 class gmatrix; 00013 00014 /** 00015 class probdescc 00016 00017 it is one of the 5 most important classes of the program 00018 (probdesc, mechtop, mechmat, mechbclc, mechcrsec) 00019 00020 of thermo-hydro-mechanical problem 00021 */ 00022 class probdescc 00023 { 00024 public: 00025 probdescc (void); 00026 ~probdescc (void); 00027 void read (XFILE *in); 00028 void print (FILE *out); 00029 00030 00031 /// keyword processing option 00032 pkwd_sw kwdsw; 00033 00034 char *path; 00035 char *filename; 00036 char *suffix; 00037 00038 /// problem name 00039 char name[1001]; 00040 /// MEFEL input file name 00041 char minfile[1001]; 00042 /// TRFEL input file name 00043 char tinfile[1001]; 00044 /// output file name 00045 char outfile[1001]; 00046 /// auxiliary output file name 00047 char auxfile[1001]; 00048 00049 /// type of problem 00050 problemtypec tprob; 00051 /// type of transported matter 00052 transmatterc tmatt; 00053 /// number of transported matters=number of row(column) blocks in matrices 00054 //long ntm; 00055 /// names of transported media 00056 mednamesc mednam; 00057 // STORAGE TYPE 00058 /// type of storage of zero-order matrix 00059 storagetype tstord0; 00060 /// type of storage of first-order matrix 00061 storagetype tstord1; 00062 00063 /// data about solver of system of linear equations 00064 slesolv *ssle; 00065 00066 /// type of solver of nonlinear algebraic equation system 00067 nonlinsolvertypec tnlinsol; 00068 00069 /// Matrices cleaning for more memory 00070 /// cleanmatrix = 0 - no 00071 /// cleanmatrix = 1 - yes 00072 coupcleanmatrices cleanmatrix; 00073 00074 /// Ladyzenskaya-Babuska-Brezzi condition 00075 /// lbb=1 - linear app. in mechanics, linear app. in transport 00076 /// lbb=2 - quadratic app. in mechanics, linear app. in transport 00077 /// lbb=3 - quadratic app. in mechanics, quadratic app. in transport 00078 ladbabuskabrezzi lbb; 00079 00080 /// savemode - deals with the number of integration points 00081 /// savemode=0 - greater number of integration points 00082 /// savemode=1 - smaller number of integration points 00083 long savemode; 00084 00085 /// type of fully coupled solver 00086 /// fcsolv = 0 - linear solver (no update of system matrices is required) 00087 /// fcsolv = 1 - full newton method (matrices are recomputed in all internal loops) 00088 /// fcsolv = 2 - modified Newton method (matrices are recomputed only in new increment) 00089 coupsolver fcsolv; 00090 00091 /// type of residuum computation 00092 /// restype = 1 - residuum is computed from internal fluxes and forces 00093 /// restype = 2 - residuum is computed as difference between right and left hand side 00094 residuumtype restype; 00095 00096 /// threshold for rejection from compressed storages 00097 double limit; 00098 /// computer zero 00099 double zero; 00100 00101 00102 /// number of printed unknowns in non-linear solver 00103 long npun; 00104 /// array containing nodes and code numbers of printed values 00105 long *requn; 00106 00107 /// stiffness of material 00108 /// stmat=0 - initial elastic stiffness 00109 /// stmat=1 - tangent stiffness 00110 long stmat; 00111 00112 00113 00114 // NEWTON-RAPHSON METHOD 00115 /// maximum number of iterations in inner loop 00116 /// maximum number of iterations in one increment 00117 long niilnr; 00118 /// required norm of vector of unbalanced forces 00119 double errnr; 00120 00121 /// coefficient in numerical solver of system of ODE 00122 /// alpha=0 - forward Euler method 00123 /// alpha=1 - backward Euler method 00124 double alpha; 00125 /// actual time 00126 double time; 00127 /// time controller 00128 timecontr timecon; 00129 00130 }; 00131 00132 #endif