00001 // copyright by benedikt oswald, all rights reserved, 2002-2006. 00002 // project - aqhdes2003 00003 // file name - vtk.h 00004 // file type - C include file 00005 // objective - define class and functions for aqhdes output in vtk format 00006 // modified - 2004 apr 14, creation 00007 // modified - 2004 apr 14, 00008 // required software - UG 3.1 or higher 00009 // inheritance - based on datatexplorer interface implemented in 00010 // inheritance - $UGROOT/ui 00011 // feature - provide NUMPROC for vtk file format output both 00012 // feature - in serial and parallel mode, wich is achieved through 00013 // feature - using the functionality provided by pfile.h and pfile.c 00014 // feature - pfile functionality automatically adapts to serial and parallel 00015 // feature - program execution. 00016 00017 /****************************************************************************/ 00018 /* */ 00019 /* include files */ 00020 /* system include files */ 00021 /* application include files */ 00022 /* */ 00023 /****************************************************************************/ 00024 00025 #ifndef __VTK__ 00026 #define __VTK__ 00027 00028 // include standard header files 00029 #include <math.h> 00030 #include <stdlib.h> 00031 #include <stdio.h> 00032 #include <string.h> 00033 #include <time.h> 00034 #include <string> 00035 00036 // include UG header files 00037 #include "gm.h" /* for data structure */ 00038 #include "ugstruct.h" /* for GetStringValue */ 00039 #include "misc.h" /* for MIN, MAX, PI, ... */ 00040 #include "ugdevices.h" /* for UserWrite, PrintErrorMessage */ 00041 #include "commands.h" /* for GetCurrentMultigrid */ 00042 #include "cmdint.h" /* for CreateCommand */ 00043 #include "cmdint.h" /* for CreateCommand */ 00044 #include "cmdline.h" /* for command line processing */ 00045 #include "general.h" /* for general desclarations */ 00046 #include "np.h" /* for NUMPROC implementation */ 00047 #include "assemble.h" /* for CreateCLASS implementation */ 00048 #include "pfile.h" /* header file for parallel file access */ 00049 #include "parallel.h" /* include parallel support */ 00050 #include "compiler.h" 00051 #include "namespace.h" 00052 00053 // include proprietary header files 00054 #include "disconst.h" /* discretization parameters */ 00055 #include "whitney.h" /* get base function stuff */ 00056 #include "linmaterials.h" /* include NUMPROC definitions for linear, non-dispersive materials */ 00057 #include "aqhdSysParams.h" /* get system parameters from standard include file */ 00058 #include "aqhdReleaseInfo.h" /* get release information */ 00059 #include "aqhdPhysicoMath.h" /* get release information */ 00060 00061 00062 USING_UG_NAMESPACE 00063 USING_UGDIM_NAMESPACE 00064 00065 00066 /****************************************************************************/ 00067 /* */ 00068 /* defines in the following order */ 00069 /* */ 00070 /* compile time constants defining static data size (i.e. arrays) */ 00071 /* other constants */ 00072 /* macros */ 00073 /* */ 00074 /****************************************************************************/ 00075 00076 #define T_VTK_CLASS_NAME "vtkclass" 00077 00078 /****************************************************************************/ 00079 /* */ 00080 /* data structures used in this source file (exported data structures are */ 00081 /* in the corresponding include file!) */ 00082 /* */ 00083 /****************************************************************************/ 00084 00085 /* declare NUMPROC class and methods for 'NP_EXPLICIT_TIME_DOMAIN_INTEGRATION' */ 00086 00087 typedef struct 00088 { 00089 NP_BASE base; // inherits base class 00090 00091 NP_LINEAR_MATERIALS *linmat; // pointer to NUMPROC that provides material properties, used when storing the computational mesh 00092 00093 INT fl; // from level with respect to multigrid 00094 INT tl; // to level with respect to multigrid 00095 INT timestep; // time index used for file naming 00096 00097 char meshfilename[MAX_NUM_CHAR_FILENAME]; // name of file where 3d mesh is stored 00098 char fieldfilename[MAX_NUM_CHAR_FILENAME]; // name of file where 3d field is stored 00099 INT nspe; // preset number of field samples per finite element 00100 00101 VECDATA_DESC* efld; // pointer to electric field vector at t_(n+1) 00102 00103 INT (*PreProcess)(NP_BASE *base, INT, char**); // pointer to PreProcessing function 00104 INT (*PostProcess)(NP_BASE *base, INT, char**); // pointer to PostProcessing function 00105 00106 } NP_VTK; 00107 00108 /****************************************************************************/ 00109 /* */ 00110 /* definition of exported global variables */ 00111 /* */ 00112 /****************************************************************************/ 00113 00114 /****************************************************************************/ 00115 /* */ 00116 /* definition of variables global to this source file only (static!) */ 00117 /* */ 00118 /****************************************************************************/ 00119 00120 /****************************************************************************/ 00121 /* */ 00122 /* forward declarations of functions used before they are defined */ 00123 /* */ 00124 /****************************************************************************/ 00125 00126 /****************************************************************************/ 00127 /****************************************************************************/ 00128 /* Discretization */ 00129 /****************************************************************************/ 00130 /****************************************************************************/ 00131 00132 INT InitVTK(void); /* check class & methods into UG */ 00133 #endif 00134