1 /*********************************************************************** 2 * 3 * ***** *** *** 4 * * * * * * 5 * * *** *** 6 * * * * * * 7 * ***** *** *** 8 * 9 * A FREE Finite Elements Analysis Program in ANSI C for the Windows 10 * and UNIX OS. 11 * 12 * Composed and edited and copyright by 13 * Professor Dr.-Ing. Frank Rieg, University of Bayreuth, Germany 14 * 15 * eMail: 16 * frank.rieg@uni-bayreuth.de 17 * dr.frank.rieg@t-online.de 18 * 19 * V15.0 November 18, 2015 20 * 21 * This program is free software; you can redistribute it and/or modify 22 * it under the terms of the GNU General Public License as published by 23 * the Free Software Foundation; either version 2, or (at your option) 24 * any later version. 25 * 26 * This program is distributed in the hope that it will be useful, 27 * but WITHOUT ANY WARRANTY; without even the implied warranty of 28 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 29 * GNU General Public License for more details. 30 * 31 * You should have received a copy of the GNU General Public License 32 * along with this program; see the file COPYING. If not, write to 33 * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. 34 ***********************************************************************/ 35 /*********************************************************************** 36 * z88r.h fuer UNIX und Windows 37 * 3.8.2011 Rieg 38 ***********************************************************************/ 39 40 /*********************************************************************** 41 * Datentypen fuer Windows und UNIX 42 ***********************************************************************/ 43 #ifdef FR_XINT 44 #define FR_INT4AY int * /* Pointer auf int */ 45 #define FR_INT4 int /* int */ 46 #define FR_CALLOC calloc /* calloc */ 47 #define FR_SIZERW size_t /* Size fuer fread, fwrite */ 48 #endif 49 50 #ifdef FR_XLONG 51 #define FR_INT4AY long * /* Pointer auf long */ 52 #define FR_INT4 long /* long */ 53 #define FR_CALLOC calloc /* calloc */ 54 #define FR_SIZERW size_t /* Size fuer fread, fwrite */ 55 #endif 56 57 #ifdef FR_XLOLO 58 #define FR_INT4AY long long * /* Pointer auf long */ 59 #define FR_INT4 long long /* long */ 60 #define FR_CALLOC calloc /* calloc */ 61 #define FR_SIZERW size_t /* Size fuer fread, fwrite */ 62 #endif 63 64 #ifdef FR_XDOUB 65 #define FR_SQRT sqrt /* sqrt */ 66 #define FR_POW pow /* pow */ 67 #define FR_FABS fabs /* fabs */ 68 #define FR_SIN sin /* sin */ 69 #define FR_COS cos /* cos */ 70 #define FR_ACOS acos /* acos */ 71 #define FR_ATAN atan /* atan */ 72 #define FR_DOUBLEAY double * /* Pointer auf double */ 73 #define FR_DOUBLE double /* double */ 74 #endif 75 76 #ifdef FR_XQUAD 77 #define FR_SQRT sqrtl /* sqrtl */ 78 #define FR_POW powl /* powl */ 79 #define FR_FABS fabsl /* fabsl */ 80 #define FR_SIN sinl /* sinl */ 81 #define FR_COS cosl /* cosl */ 82 #define FR_ACOS acosl /* acos */ 83 #define FR_ATAN atanl /* atanl */ 84 #define FR_DOUBLEAY long double * /* Pointer auf long double */ 85 #define FR_DOUBLE long double /* long double */ 86 #endif 87 88 #include <z88math.h> 89 90 /*********************************************************************** 91 * Daten 92 ***********************************************************************/ 93 #define ICO_Z88R 10 94 #define CUR_Z88R 20 95 #define BMP_Z88R 30 96 97 /*********************************************************************** 98 * Menue-IDs 99 ***********************************************************************/ 100 #define IDM_WER 100 101 #define IDM_XIT 110 102 #define IDM_LINA 120 103 #define IDM_TEST 130 104 #define IDM_CHOLY 140 105 #define IDM_SRSIC 150 106 #define IDM_SRSOR 160 107 #define IDM_GO 170 108 109 /*********************************************************************** 110 * Toolbar-IDs 111 ***********************************************************************/ 112 #define ITC_HELP 200 113 #define ITC_XIT 210 114 #define ITC_LINA 220 115 #define ITC_TEST 230 116 #define ITC_CHOLY 240 117 #define ITC_SRSIC 250 118 #define ITC_SRSOR 260 119 #define ITC_GO 270 120 121 /*********************************************************************** 122 * Alerts 123 ***********************************************************************/ 124 #define AL_NOLOG 3000 /* kein Z88R.LOG */ 125 #define AL_NODYN 3010 /* kein Z88.DYN */ 126 #define AL_WRONGDYN 3020 /* Fehler in Z88.DYN */ 127 #define AL_NOMEMY 3030 /* nicht genug Memory */ 128 #define AL_NOI1 3040 /* Fehler Oeffnen z88i1.txt */ 129 #define AL_NOI2 3050 /* Fehler Oeffnen z88i2.txt */ 130 #define AL_NOI5 3060 /* Fehler Oeffnen z88i5.txt */ 131 #define AL_NOO0 3070 /* Fehler Oeffnen z88o0.txt */ 132 #define AL_NOO1 3160 /* Fehler Oeffnen z88o1.txt */ 133 #define AL_NOO2 3170 /* Fehler Oeffnen z88o2.txt */ 134 #define AL_NOO3 3180 /* Fehler Oeffnen z88o3.txt */ 135 #define AL_NOO4 3190 /* Fehler Oeffnen z88o4.txt */ 136 #define AL_NOO5 3200 /* Fehler Oeffnen z88o5.txt */ 137 #define AL_NOO8 3210 /* Fehler Oeffnen z88o8.txt */ 138 #define AL_NOMAN 3220 /* kein Z88MAN.TXT */ 139 #define AL_WRONGMAN 3230 /* falsche Z88MANAGE.TXT */ 140 #define AL_NOMAT 3240 /* keine Z88MAT.TXT da */ 141 #define AL_NOELP 3250 /* keine Z88ELP.TXT da */ 142 #define AL_NOINT 3260 /* keine Z88INT.TXT da */ 143 #define AL_NOMATCSV 3270 /* .CSV-File nicht gefunden */ 144 #define AL_WRONDIM 3280 /* NDIM falsch */ 145 #define AL_EXMAXK 3290 /* zuviele Knoten */ 146 #define AL_EXMAXE 3300 /* zuviele Elemente */ 147 #define AL_EXMAXKOI 3310 /* Koinzidenzvektor zu klein */ 148 #define AL_EXMAXNFG 3320 /* zuviele Freiheitsgrade */ 149 #define AL_EXMAXMAT 3330 /* zuviele Materialgesetze */ 150 #define AL_EXMAXINT 3340 /* zuviele Integrationsgesetze */ 151 #define AL_EXMAXPEL 3350 /* zuviele Elementparameter */ 152 #define AL_EXMAXPR 3360 /* NOI zu klein */ 153 #define AL_WROKFLAG 3370 /* KFLAG falsch */ 154 #define AL_WROETYP 3380 /* falscher Elementtyp */ 155 #define AL_EXGS 3390 /* MAXGS exhausted */ 156 #define AL_EXKOI 3400 /* MAXKOI exhausted */ 157 #define AL_EXMAXIEZ 3410 /* MAXIEZ exhausted */ 158 #define AL_JACNEG 3420 /* Jacobi-Determinate null/negativ */ 159 #define AL_JACLOA 3430 /* Jacobi-Determinate null/negativ */ 160 #define AL_DIAGNULL 3440 /* Diagonalele null/negativ */ 161 #define AL_WROCFLAG 3450 /* Steuerflag Z88R falsch */ 162 #define AL_NOCFLAG 3460 /* kein Steuerflag Z88R */ 163 #define AL_NOCI 3470 /* Probleme bei NH und SG */ 164 #define AL_NOACROBAT 3480 /* kein PDF-Viewer */ 165 166 /*********************************************************************** 167 * Texte 168 ***********************************************************************/ 169 #define TX_REAI1 4000 /* Z88I1.TXT einlesen */ 170 #define TX_REAI2 4010 /* Z88I2.TXT einlesen */ 171 #define TX_REAMAT 4020 /* Z88MAT.TXT einlesen */ 172 #define TX_REAMAN 4030 /* Z88MAN.TXT einlesen */ 173 #define TX_REAELP 4040 /* Z88ELP.TXT einlesen */ 174 #define TX_REAINT 4050 /* Z88INT.TXT einlesen */ 175 #define TX_REAI5 4060 /* Z88I5.TXT einlesen */ 176 #define TX_REAI2P2 4070 /* Z88I2.TXT zum 2.mal einlesen */ 177 #define TX_WRIO0 4090 /* Z88O0.TXT beschreiben */ 178 #define TX_WRIO1 4100 /* Z88O1.TXT beschreiben */ 179 #define TX_WRIO2 4110 /* Z88O2.TXT beschreiben */ 180 #define TX_ELE 4120 /* Element I */ 181 #define TX_KOOR 4130 /* Koordinaten einlesen */ 182 #define TX_POLAR 4140 /* Polarkoordinaten umr. */ 183 #define TX_KOIN 4150 /* Koinzidenz einlesen */ 184 #define TX_Z88A 4160 /* Start Z88A */ 185 #define TX_Z88AI 4170 /* Start Z88AI */ 186 #define TX_EXITZ88A 4180 /* Ende Z88A */ 187 #define TX_EXITZ88AI 4190 /* Ende Z88AI */ 188 #define TX_GSERF 4200 /* GS erfordert n */ 189 #define TX_KOIERF 4210 /* KOI erfordert n */ 190 #define TX_GSSO 4220 /* Pointer assembliert */ 191 #define TX_Z88B 4230 /* Start Z88BR */ 192 #define TX_SUMMEMY 4240 /* Summe angeforderter Speicher */ 193 #define TX_COMPI 4250 /* Compilieren */ 194 #define TX_Z88CC 4260 /* Start Z88CR */ 195 #define TX_ERBPA 4270 /* Einarbeiten RB */ 196 #define TX_SCAL88 4280 /* Start SCAL88 */ 197 #define TX_CHOY88 4290 /* CHOY88 starten */ 198 #define TX_SICCG88 4300 /* Start SICCG88 */ 199 #define TX_SORCG88 4310 /* Start SORCG88 */ 200 #define TX_NFG 4320 /* Anzahl nfg */ 201 #define TX_CHOJ 4330 /* J = */ 202 #define TX_JACOOK 4340 /* Epsilon erreicht */ 203 #define TX_JACONOTOK 4350 /* Epsilon nicht erreicht */ 204 #define TX_ITERA 4360 /* n-te Iteration */ 205 #define TX_PART88 4370 /* n-te partielle Cholesky-Z. */ 206 #define TX_CR 4380 /* neue Zeile */ 207 #define TX_DYNMEMY 4390 /* Zusatzspeicher Z88AI */ 208 #define TX_SPANNU 4400 /* Spannungen */ 209 #define TX_EXITZ88D 4410 /* Ende Z88DR */ 210 #define TX_KNOTENK 4420 /* Knotenkraefte */ 211 #define TX_EXITZ88E 4430 /* Ende Z88ER */ 212 #define TX_VORW 4440 /* Vorwaertseinsetzen */ 213 #define TX_RUECKW 4450 /* Vorwaertseinsetzen */ 214 #define TX_IFNILI0 4460 /* ifnili = 0 : lineare Ber. */ 215 #define TX_IFNILI9 4470 /* ifnili = 9 : Testmode */ 216 #define TX_ICFLAG0 4480 /* ICFLAG = 0 : Cholesky */ 217 #define TX_ICFLAG1 4490 /* ICFLAG = 1 : SICCG */ 218 #define TX_ICFLAG2 4500 /* ICFLAG = 2 : SORCG */ 219 #define TX_MEMORY 4510 /* Hauptspeicher fuer Solver */ 220 #define TX_EGES 4520 /* Einlesen E-Gesetze */ 221 #define TX_NONZ 4530 /* Elemente in IJ entdeckt */ 222 #define TX_FORMA 4540 /* Formatieren */ 223 224 225 /*********************************************************************** 226 * LOGs 227 ***********************************************************************/ 228 #define LOG_OPENZ88DYN 5000 /* Oeffnen Z88.DYN */ 229 #define LOG_NODYN 5010 /* kann Z88.DYN nicht oeffnen */ 230 #define LOG_WRONGDYN 5020 /* Z88.DYN nicht o.k. */ 231 #define LOG_MAXIEZ 5030 /* MAXIEZ */ 232 #define LOG_MAXGS 5040 /* MAXGS */ 233 #define LOG_MAXKOI 5050 /* MAXKOI */ 234 #define LOG_MAXK 5060 /* MAXK */ 235 #define LOG_MAXE 5070 /* MAXE */ 236 #define LOG_MAXNFG 5080 /* MAXNFG */ 237 #define LOG_MAXMAT 5090 /* MAXMAT */ 238 #define LOG_MAXPEL 5100 /* MAXPEL */ 239 #define LOG_MAXINT 5110 /* MAXINT */ 240 #define LOG_MAXESM 5120 /* MAXESM */ 241 #define LOG_MAXPR 5130 /* MAXPR fuer NOI */ 242 #define LOG_OKDYN 5140 /* Z88.DYN scheint o.k. zu sein */ 243 #define LOG_ALLOCMEMY 5150 /* Memory anlegen */ 244 #define LOG_ARRAYNOTOK 5160 /* Memory Kennung I nicht o.k. */ 245 #define LOG_ARRAYOK 5170 /* Memory Kennung I angelegt */ 246 #define LOG_SUMMEMY 5180 /* Memory angefordert */ 247 #define LOG_BRI188 5190 /* Start RI188R */ 248 #define LOG_NOI1 5200 /* kein Z88I1.TXT */ 249 #define LOG_WRONGDIM 5210 /* ndim falsch */ 250 #define LOG_EXMAXK 5220 /* MAXK ueberschritten */ 251 #define LOG_EXMAXE 5230 /* MAXE ueberschritten */ 252 #define LOG_EXMAXKOI 5240 /* Koinzidenzvektor zu klein */ 253 #define LOG_EXMAXNFG 5250 /* MAXNFG ueberschritten */ 254 #define LOG_EXMAXPR 5260 /* MAXPR ueberschritten */ 255 #define LOG_WROKFLAG 5270 /* KFLAG falsch */ 256 #define LOG_KOOR 5280 /* Einlesen Koordinaten */ 257 #define LOG_KOIN 5290 /* Einlesen Koinzidenz */ 258 #define LOG_EXITRI188 5300 /* Verlassen RI188R */ 259 #define LOG_EXITRI588 5310 /* Verlassen RI588I */ 260 #define LOG_BWRIA88F 5320 /* Start WRIA88R */ 261 #define LOG_GSERF 5330 /* GS erforderlich */ 262 #define LOG_KOIERF 5340 /* KOI erforderlich */ 263 #define LOG_EXITWRIA88F 5350 /* Verlassen WRIA88R */ 264 #define LOG_Z88A 5360 /* Start Z88A */ 265 #define LOG_Z88AI 5370 /* Start Z88AI */ 266 #define LOG_WROETYP 5380 /* falscher Elementtyp */ 267 #define LOG_EXITZ88A 5390 /* Verlassen Z88A */ 268 #define LOG_EXITZ88AI 5400 /* Verlassen Z88AI */ 269 #define LOG_Z88B 5410 /* Start Z88BR */ 270 #define LOG_EXGS 5420 /* MAXGS ueberschritten */ 271 #define LOG_EXKOI 5430 /* MAXKOI ueberschritten */ 272 #define LOG_EXMAXIEZ 5440 /* MAXIEZ ueberschritten */ 273 #define LOG_COMPI 5450 /* Compilation */ 274 #define LOG_EXITZ88B 5460 /* Verlassen Z88BR */ 275 #define LOG_Z88CC 5470 /* Start Z88CR */ 276 #define LOG_NOI2 5480 /* kein Z88I2.TXT */ 277 #define LOG_NOI5 5490 /* kein Z88I5.TXT */ 278 #define LOG_BRI588 5500 /* Start RI588I */ 279 #define LOG_NOO1 5510 /* kein Z88O1.TXT */ 280 #define LOG_NOO2 5520 /* kein Z88O2.TXT */ 281 #define LOG_REAI2 5530 /* Einlesen Z88I2.TXT */ 282 #define LOG_WRIO1 5540 /* Beschreiben Z88O1.TXT */ 283 #define LOG_ERBPA 5550 /* Einarbeiten RB */ 284 #define LOG_SCAL88 5560 /* Start SCAL88 */ 285 #define LOG_CHOY88 5570 /* Start CHOY88 */ 286 #define LOG_SICCG88 5580 /* Start SICCG88 */ 287 #define LOG_SORCG88 5590 /* Start SORCG88 */ 288 #define LOG_WRIO2 5600 /* Beschreiben Z88O2.TXT */ 289 #define LOG_EXITZ88CC 5610 /* Verlassen Z88CC */ 290 #define LOG_VORW 5620 /* Vorwaertseinsetzen */ 291 #define LOG_RUECKW 5630 /* Rueckwaertseinsetzen */ 292 #define LOG_DIAGNULL 5640 /* Diagonalelement <= 0 */ 293 #define LOG_JACNEG 5650 /* Jacobi- Determinate <= 0 */ 294 #define LOG_JACLOA 5660 /* Jacobi- Determinate <= 0 */ 295 #define LOG_CFLAG0 5670 /* ICFLAG = 0: Cholesky */ 296 #define LOG_CFLAG1 5680 /* ICFLAG = 1: SICCG */ 297 #define LOG_CFLAG2 5690 /* ICFLAG = 2: SORCG */ 298 #define LOG_MAXIT 5700 /* max. Anzahl von Iterationen */ 299 #define LOG_CFLAGS 5710 /* gewaehlter Mode */ 300 301 #define LOG_ITERA 5720 /* Anzahl Iterationen */ 302 #define LOG_NOO3 5730 /* kein Z88O3.TXT */ 303 #define LOG_NOO4 5740 /* kein Z88O4.TXT */ 304 #define LOG_NOO5 5750 /* kein Z88O5.TXT */ 305 #define LOG_NOO8 5760 /* kein Z88O8.TXT */ 306 #define LOG_SPANNU 5770 /* Spannungen */ 307 #define LOG_NOCI 5780 /* Probleme bei NH und SG */ 308 #define LOG_EXITZ88D 5790 /* Ende Z88DR */ 309 #define LOG_KNOTENK 5800 /* Knotenkraefte */ 310 #define LOG_EXITZ88E 5810 /* Ende Z88ER */ 311 #define LOG_EXITDYN88J 5820 /* Ende DYN88R */ 312 #define LOG_NOO0 5830 /* Z88O0.TXT */ 313 #define LOG_WRIO0 5840 /* Fehler bei Z88O0.TXT */ 314 #define LOG_BZ88D 5850 /* Start Z88DR */ 315 #define LOG_BZ88E 5860 /* Start Z88ER */ 316 #define LOG_MEMORY 5870 /* Hauptspeicher fuer Solver */ 317 #define LOG_NOMAN 5880 /* kein Z88MAN.TXT */ 318 #define LOG_WRONGMAN 5890 /* falsche Z88MAN.TXT */ 319 #define LOG_NOMAT 5900 /* keine Z88MAT.TXT da */ 320 #define LOG_NOELP 5910 /* keine Z88ELP.TXT da */ 321 #define LOG_NOINT 5920 /* keine Z88INT.TXT da */ 322 #define LOG_NOMATCSV 5930 /* .CSV-File nicht gefunden */ 323 #define LOG_BZ88R 5940 /* Start Z88R */ 324 #define LOG_NOACROBAT 5950 /* kein PDF-Viewer */ 325 326 327