00001 #ifndef OUTDRIVERM_H
00002 #define OUTDRIVERM_H
00003
00004 #include <stdio.h>
00005 #include "galias.h"
00006 #include "selection.h"
00007 #include "xfile.h"
00008 #include "alias.h"
00009 #include "outdiagm.h"
00010 #include "matrix.h"
00011 #include "siftop.h"
00012
00013 #ifndef FNAMELEN
00014 #define FNAMELEN 1001
00015 #endif
00016
00017
00018
00019
00020
00021
00022
00023 class matrix;
00024
00025
00026 class nodeoutm
00027 {
00028 public :
00029
00030 nodeoutm();
00031
00032 ~nodeoutm();
00033
00034 long read(XFILE *in);
00035
00036 void print(FILE *out);
00037
00038 void print_out(FILE *out, long lcid);
00039
00040 void print_disp(FILE *out, long lcid);
00041
00042 void print_stra(FILE *out, long lcid);
00043
00044 void print_stre(FILE *out, long lcid);
00045
00046 void print_other(FILE *out);
00047
00048 void print_react(FILE *out, long lcid);
00049
00050 void conv_sel_prop(siftop *top);
00051
00052
00053 sel dstep;
00054
00055 sel sellc;
00056
00057
00058 sel selndisp;
00059
00060 sel *seldisp;
00061
00062
00063 sel selnstra;
00064
00065 sel *selstra;
00066
00067 long *transtra;
00068
00069
00070 sel selnstre;
00071
00072 sel *selstre;
00073
00074 long *transtre;
00075
00076
00077 sel selnoth;
00078
00079 sel *seloth;
00080
00081
00082 long react;
00083 };
00084
00085
00086
00087 class nodeoutgm
00088 {
00089 public :
00090
00091 nodeoutgm ();
00092
00093 ~nodeoutgm ();
00094
00095 long read(XFILE *in);
00096
00097 void print(FILE *out);
00098
00099 void print_graphics(FILE *out, long lcid, const char *desclcid, graphfmt gf, double *ifor);
00100
00101 void print_graphics(const char *outfn, const char *mode, long lcid, const char *desclcid, graphfmt gf, double *ifor);
00102
00103
00104 void print_gr_stra_scal(FILE *out, long lcid, const char *desclcid, graphfmt gf);
00105
00106 void print_gr_stre_scal(FILE *out, long lcid, const char *desclcid, graphfmt gf);
00107
00108 void print_gr_oth_scal(FILE *out, long lcid, const char *desclcid, graphfmt gf);
00109
00110
00111 void print_gr_stra_vec(FILE *out, long lcid, const char *desclcid, graphfmt gf);
00112
00113 void print_gr_stre_vec(FILE *out, long lcid, const char *desclcid, graphfmt gf);
00114
00115 void print_gr_oth_vec(FILE *out, long lcid, const char *desclcid, graphfmt gf);
00116
00117
00118 void print_gr_stra_mtx(FILE *out, long lcid, const char *desclcid, graphfmt gf);
00119
00120 void print_gr_stre_mtx(FILE *out, long lcid, const char *desclcid, graphfmt gf);
00121
00122 void print_gr_oth_mtx(FILE *out, long lcid, const char *desclcid, graphfmt gf);
00123
00124
00125 void print_gr_stra_scal(const char *outfn, const char *mode, long lcid, const char *desclcid);
00126
00127 void print_gr_stre_scal(const char *outfn, const char *mode, long lcid, const char *desclcid);
00128
00129 void print_gr_oth_scal(const char *outfn, const char *mode, long lcid, const char *desclcid);
00130
00131
00132 void print_gr_stra_vec(const char *outfn, const char *mode, long lcid, const char *desclcid);
00133
00134 void print_gr_stre_vec(const char *outfn, const char *mode, long lcid, const char *desclcid);
00135
00136 void print_gr_oth_vec(const char *outfn, const char *mode, long lcid, const char *desclcid);
00137
00138
00139 void print_gr_stra_mtx(const char *outfn, const char *mode, long lcid, const char *desclcid);
00140
00141 void print_gr_stre_mtx(const char *outfn, const char *mode, long lcid, const char *desclcid);
00142
00143 void print_gr_oth_mtx(const char *outfn, const char *mode, long lcid, const char *desclcid);
00144
00145
00146 void conv_sel_prop(siftop *top);
00147
00148
00149 sel dstep;
00150
00151
00152 sel sellc;
00153
00154
00155 sel selndisp;
00156
00157 sel *seldisp;
00158
00159
00160 sel selnstra;
00161
00162 sel *selstra;
00163
00164 long *transtra;
00165
00166
00167 sel selnstre;
00168
00169 sel *selstre;
00170
00171 long *transtre;
00172
00173
00174 sel selnoth;
00175
00176 sel *seloth;
00177
00178 sel selnforce;
00179
00180 sel *selforce;
00181 };
00182
00183
00184
00185 class elemoutm
00186 {
00187 public :
00188
00189 elemoutm();
00190
00191 ~elemoutm();
00192
00193 long read(XFILE *in);
00194
00195 void print(FILE *out);
00196
00197 void print_out(FILE *out, long lcid);
00198
00199 void print_stra(FILE *out, long lcid);
00200
00201 void print_stre(FILE *out, long stre);
00202
00203 void print_other(FILE *out);
00204
00205 void conv_sel_prop(siftop *top);
00206
00207
00208 sel dstep;
00209
00210
00211 sel sellc;
00212
00213
00214 sel selestra;
00215
00216 sel *selstra;
00217
00218 long *transtra;
00219
00220
00221 sel selestre;
00222
00223 sel *selstre;
00224
00225 long *transtre;
00226
00227
00228 sel seleoth;
00229
00230 sel *seloth;
00231 };
00232
00233
00234
00235 class elemoutgm
00236 {
00237 public :
00238
00239 elemoutgm ();
00240
00241 ~elemoutgm ();
00242
00243 long read(XFILE *in);
00244
00245 void print(FILE *out);
00246
00247 void print_graphics(FILE *out, long lcid, const char *desclcid, graphfmt gf, long idelem1);
00248
00249 void print_graphics(const char *outfn, const char *mode, long lcid, const char *desclcid, graphfmt gf, long idelem1);
00250
00251
00252 void print_gr_stra_scal(FILE *out, long lcid, const char *desclcid, graphfmt gf);
00253
00254 void print_gr_stre_scal(FILE *out, long lcid, const char *desclcid, graphfmt gf);
00255
00256 void print_gr_oth_scal(FILE *out, long lcid, const char *desclcid, graphfmt gf);
00257
00258
00259 void print_gr_stra_vec(FILE *out, long lcid, const char *desclcid, graphfmt gf);
00260
00261 void print_gr_stre_vec(FILE *out, long lcid, const char *desclcid, graphfmt gf);
00262
00263 void print_gr_oth_vec(FILE *out, long lcid, const char *desclcid, graphfmt gf);
00264
00265
00266 void print_gr_stra_mtx(FILE *out, long lcid, const char *desclcid, graphfmt gf);
00267
00268 void print_gr_stre_mtx(FILE *out, long lcid, const char *desclcid, graphfmt gf);
00269
00270 void print_gr_oth_mtx(FILE *out, long lcid, const char *desclcid, graphfmt gf);
00271
00272
00273 void print_gr_stra_scal(const char *outfn, const char *mode, long lcid, const char *desclcid);
00274
00275 void print_gr_stre_scal(const char *outfn, const char *mode, long lcid, const char *desclcid);
00276
00277 void print_gr_oth_scal(const char *outfn, const char *mode, long lcid, const char *desclcid);
00278
00279
00280 void print_gr_stra_vec(const char *outfn, const char *mode, long lcid, const char *desclcid);
00281
00282 void print_gr_stre_vec(const char *outfn, const char *mode, long lcid, const char *desclcid);
00283
00284 void print_gr_oth_vec(const char *outfn, const char *mode, long lcid, const char *desclcid);
00285
00286
00287 void print_gr_stra_mtx(const char *outfn, const char *mode, long lcid, const char *desclcid);
00288
00289 void print_gr_stre_mtx(const char *outfn, const char *mode, long lcid, const char *desclcid);
00290
00291 void print_gr_oth_mtx(const char *outfn, const char *mode, long lcid, const char *desclcid);
00292
00293
00294 void conv_sel_prop(siftop *top);
00295
00296
00297 sel dstep;
00298
00299
00300 sel sellc;
00301
00302
00303 sel selestra;
00304
00305 sel *selstra;
00306
00307 long *transtra;
00308
00309
00310 sel selestre;
00311
00312 sel *selstre;
00313
00314 long *transtre;
00315
00316
00317 sel seleoth;
00318
00319 sel *seloth;
00320
00321
00322 long ide1;
00323
00324
00325 long nlcs;
00326
00327 matrix *lcs;
00328 };
00329
00330
00331
00332 class pointoutm
00333 {
00334 public :
00335
00336 pointoutm();
00337
00338 ~pointoutm();
00339
00340 long read(XFILE *in);
00341
00342 void print(FILE *out);
00343
00344 void print_out(FILE *out, long lcid);
00345
00346 void print_stra(FILE *out, long lcid);
00347
00348 void print_stre(FILE *out, long lcid);
00349
00350 void print_other(FILE *out, long pid);
00351
00352
00353 sel dstep;
00354
00355
00356 long npnt;
00357
00358
00359 double *ksi;
00360
00361 double *eta;
00362
00363 double *zeta;
00364
00365
00366 sel selelem;
00367
00368
00369 sel sellc;
00370
00371
00372 sel *selpnt;
00373
00374
00375 sel *selstra;
00376
00377 long *transtra;
00378
00379
00380 sel *selstre;
00381
00382 long *transtre;
00383
00384
00385 sel *seloth;
00386 };
00387
00388
00389
00390 class outdriverm
00391 {
00392 public :
00393
00394 outdriverm();
00395
00396 ~outdriverm();
00397
00398 long read(XFILE *in);
00399
00400 void print(FILE *out);
00401
00402 void print_header(FILE *out);
00403
00404 void print_newstep(FILE *out, long lcid, long istep, double time);
00405
00406 void print_out(FILE *out, long lcid, long istep, double time);
00407
00408 void print_out_forced(FILE *out, long lcid, long istep, double time);
00409
00410 void print_diags(long lcid, double lambda, long istep, double *fi);
00411
00412 void print_diags_forced(long lcid, double lambda, long istep, double *fi);
00413
00414 void print_graphics(FILE *out, long lcid, double lambda, long istep, double *fi);
00415
00416 void print_graphics_forced(FILE *out, long lcid, double lambda, long istep, double *fi);
00417
00418 void create_files_gidsp(const char *mode);
00419
00420
00421 void print_default_vtk(FILE *fname, long lcid, long istep, double lambda);
00422
00423
00424 void write_vtk_unkn(FILE *fname, long lcid, const char *desclcid);
00425
00426 long testlcs();
00427
00428 void conv_sel_prop(siftop *top);
00429
00430
00431 char outfn[FNAMELEN];
00432
00433 char outdiagfn[FNAMELEN];
00434
00435 char outgrfn[FNAMELEN];
00436
00437 char outgrfngs[FNAMELEN+50];
00438
00439
00440 flagsw textout;
00441
00442 FILE *outf;
00443
00444 FILE **outdiagf;
00445
00446 FILE *outgr;
00447
00448
00449 nodeoutm no;
00450
00451 elemoutm eo;
00452
00453 pointoutm po;
00454
00455
00456 nodeoutgm nog;
00457
00458 elemoutgm eog;
00459
00460
00461
00462 long nlcs;
00463
00464
00465
00466
00467
00468 gfmatrix *lcs;
00469
00470
00471 graphfmt gf;
00472
00473 long ncut;
00474
00475 long idn1;
00476
00477 long ide1;
00478
00479
00480 long ndiag;
00481
00482 outdiagm *odiag;
00483
00484
00485 long vtk_num;
00486 };
00487
00488 #endif