00001 #ifndef OUTDRIVERT_H
00002 #define OUTDRIVERT_H
00003
00004 #include <stdio.h>
00005 #include "galias.h"
00006 #include "selection.h"
00007 #include "xfile.h"
00008 #include "aliast.h"
00009 #include "outdiagt.h"
00010
00011 #define FNAMELEN 1001
00012
00013
00014
00015
00016
00017
00018
00019 class nodeoutt
00020 {
00021 public :
00022
00023 nodeoutt();
00024
00025 ~nodeoutt();
00026
00027 long read(XFILE *in);
00028
00029 void print(FILE *out);
00030
00031 void print_out(FILE *out, long lcid);
00032
00033 void print_unkn(FILE *out, long lcid);
00034
00035 void print_grad(FILE *out, long lcid);
00036
00037 void print_flux(FILE *out, long lcid);
00038
00039 void print_other(FILE *out);
00040
00041 void print_eqother(FILE *out);
00042
00043 void print_forcet(FILE *out);
00044
00045
00046 sel dstep;
00047
00048
00049 sel selnunkn;
00050
00051 sel *selunkn;
00052
00053
00054 sel selngrad;
00055
00056 sel *selgrad;
00057
00058
00059 sel selnflux;
00060
00061 sel *selflux;
00062
00063
00064 sel selnoth;
00065
00066 sel *seloth;
00067
00068
00069 sel selneqoth;
00070
00071 sel *seleqoth;
00072
00073
00074 sel selnforcet;
00075
00076 sel *selforcet;
00077 };
00078
00079
00080 class nodeoutgt
00081 {
00082 public :
00083
00084 nodeoutgt();
00085
00086 ~nodeoutgt();
00087
00088 long read(XFILE *in);
00089
00090 void print(FILE *out);
00091
00092 void print_graphics(FILE *out, long lcid, char *desclcid, graphftt gf, double *ifor);
00093
00094 void print_graphics(char *outfn, char *mode, long lcid, char *desclcid, graphftt gf, double *ifor, hflagsw hf);
00095
00096
00097 sel dstep;
00098
00099
00100 sel selnunkn;
00101
00102 sel *selunkn;
00103
00104
00105 sel selngrad;
00106
00107 sel *selgrad;
00108
00109
00110 sel selnflux;
00111
00112 sel *selflux;
00113
00114
00115 sel selnoth;
00116
00117 sel *seloth;
00118
00119
00120 sel selneqoth;
00121
00122 sel *seleqoth;
00123
00124
00125 sel selnforcet;
00126
00127 sel *selforcet;
00128 };
00129
00130
00131 class elemoutt
00132 {
00133 public :
00134
00135 elemoutt();
00136
00137 ~elemoutt();
00138
00139 long read(XFILE *in);
00140
00141 void print(FILE *out);
00142
00143 void print_out(FILE *out, long lcid);
00144
00145 void print_unkn(FILE *out, long lcid);
00146
00147 void print_grad(FILE *out, long lcid);
00148
00149 void print_flux(FILE *out, long lcid);
00150
00151 void print_other(FILE *out);
00152
00153 void print_eqother(FILE *out);
00154
00155
00156 sel dstep;
00157
00158
00159 sel selegrad;
00160
00161 sel *selgrad;
00162
00163
00164 sel seleflux;
00165
00166 sel *selflux;
00167
00168
00169 sel seleoth;
00170
00171 sel *seloth;
00172
00173
00174 sel seleeqoth;
00175
00176 sel *seleqoth;
00177 };
00178
00179
00180
00181 class elemoutgt
00182 {
00183 public :
00184
00185 elemoutgt();
00186
00187 ~elemoutgt();
00188
00189 long read(XFILE *in);
00190
00191 void print(FILE *out);
00192
00193 void print_graphics(FILE *out, long lcid, const char *desclcid, graphftt gf, long idelem1);
00194
00195 void print_gr_grad_scal(FILE *out, const char *desclcid, graphftt gf);
00196
00197 void print_gr_flux_scal(FILE *out, const char *desclcid, graphftt gf);
00198
00199 void print_gr_oth_scal(FILE *out, long lcid, const char *desclcid, graphftt gf);
00200
00201 void print_gr_eqoth_scal(FILE *out, long lcid, const char *desclcid, graphftt gf);
00202
00203 void print_gr_grad_vec(FILE *out, long lcid, const char *desclcid, graphftt gf);
00204
00205 void print_gr_flux_vec (FILE *out, long lcid, const char *desclcid, graphftt gf);
00206
00207 void print_gr_oth_vec (FILE *out, long lcid, const char *desclcid, graphftt gf);
00208
00209 void print_gr_eqoth_vec (FILE *out, long lcid, const char *desclcid, graphftt gf);
00210
00211
00212 void print_graphics(const char *outfn, const char *mode, long lcid, const char *desclcid, graphftt gf, hflagsw hf, long idelem1);
00213
00214 void print_gr_grad_scal(const char *outfn, const char *mode, const char *desclcid, hflagsw hf);
00215
00216 void print_gr_flux_scal(const char *outfn, const char *mode, const char *desclcid, hflagsw hf);
00217
00218 void print_gr_oth_scal(const char *outfn, const char *mode, long lcid, const char *desclcid, hflagsw hf);
00219
00220 void print_gr_eqoth_scal(const char *outfn, const char *mode, long lcid, const char *desclcid, hflagsw hf);
00221
00222 void print_gr_grad_vec(const char *outfn, const char *mode, long lcid, const char *desclcid, hflagsw hf);
00223
00224 void print_gr_flux_vec(const char *outfn, const char *mode, long lcid, const char *desclcid, hflagsw hf);
00225
00226 void print_gr_oth_vec(const char *outfn, const char *mode, long lcid, const char *desclcid, hflagsw hf);
00227
00228 void print_gr_eqoth_vec(const char *outfn, const char *mode, long lcid, const char *desclcid, hflagsw hf);
00229
00230
00231 sel dstep;
00232
00233
00234 sel selegrad;
00235
00236 sel *selgrad;
00237
00238
00239 sel seleflux;
00240
00241 sel *selflux;
00242
00243
00244 sel seleoth;
00245
00246 sel *seloth;
00247
00248
00249 sel seleeqoth;
00250
00251 sel *seleqoth;
00252
00253
00254 long ide1;
00255 };
00256
00257
00258 class pointoutt
00259 {
00260 public :
00261
00262 pointoutt();
00263
00264 ~pointoutt();
00265
00266 long read(XFILE *in);
00267
00268 void print(FILE *out);
00269
00270 void print_out(FILE *out, long lcid);
00271
00272 void print_grad(FILE *out, long lcid);
00273
00274 void print_flux(FILE *out, long lcid);
00275
00276 void print_other(FILE *out, long pid);
00277
00278 void print_eqother(FILE *out, long pid);
00279
00280
00281 sel dstep;
00282
00283 long npnt;
00284
00285
00286 double *ksi;
00287
00288 double *eta;
00289
00290 double *zeta;
00291
00292
00293 sel selelem;
00294
00295
00296 sel sellc;
00297
00298
00299 sel *selpnt;
00300
00301
00302 sel *selgrad;
00303
00304
00305 sel *selflux;
00306
00307
00308 sel *seloth;
00309
00310
00311 sel *seleqoth;
00312 };
00313
00314
00315 class outdrivert
00316 {
00317 public :
00318
00319 outdrivert();
00320
00321 ~outdrivert();
00322
00323 long read(XFILE *in);
00324
00325 void print(FILE *out);
00326
00327 void print_header(FILE *out);
00328
00329 void print_newstep(FILE *out, long lcid, long istep, double time);
00330
00331 void print_out(FILE *out, long lcid, long istep, double time);
00332
00333 void print_out_forced(FILE *out, long lcid, long istep, double time);
00334
00335 void print_diags(long lcid, double lambda, long istep, double *fi);
00336
00337 void print_diags_forced(long lcid, double lambda, long istep, double *fi);
00338
00339 void print_graphics(FILE *out, long lcid, double lambda, long istep, double *fi);
00340
00341 void print_graphics_forced(FILE *out, long lcid, double lambda, long istep, double *fi);
00342
00343 void create_files_gidsp(char *mode);
00344
00345 void close_files_gidsp();
00346
00347 char outfn[FNAMELEN];
00348
00349 char outdiagfn[FNAMELEN];
00350
00351 char outgrfn[FNAMELEN];
00352
00353 char outgrfngs[FNAMELEN+50];
00354
00355
00356 flagsw textout;
00357
00358 FILE *outf;
00359
00360 FILE **outdiagf;
00361
00362 FILE *outgr;
00363
00364
00365 nodeoutt no;
00366
00367 elemoutt eo;
00368
00369 pointoutt po;
00370
00371
00372 nodeoutgt nog;
00373
00374 elemoutgt eog;
00375
00376
00377 long nlcs;
00378
00379 long *nclcs;
00380
00381 double **bvlcs;
00382
00383
00384 graphftt gf;
00385
00386 long ncut;
00387
00388 long idn1;
00389
00390 long ide1;
00391
00392
00393 long vtk_num;
00394
00395
00396 long ndiag;
00397
00398 outdiagt *odiag;
00399 };
00400
00401 #endif