00001 00037 #ifndef _MC_BASE_H_ 00038 #define _MC_BASE_H_ 00039 00040 #include <maloc/maloc.h> 00041 #include <punc/punc.h> 00042 00043 /* 00044 * *************************************************************************** 00045 * Some parameters 00046 * *************************************************************************** 00047 */ 00048 00050 #define SPARSE_CUTOFF 1000 00051 00052 /* define SPARSE_CUTOFF 60000 */ 00053 /* define SPARSE_CUTOFF 10000 */ 00054 /* define SPARSE_CUTOFF 1000 */ 00055 /* define SPARSE_CUTOFF 40 */ 00056 /* define SPARSE_CUTOFF 5 */ 00057 00059 #define MAXV 4 00060 00061 #define VMAX_BDTYPE 512 00062 00063 #define LN_MAX_ENTRIES_PER_ROW 1000 00064 00066 #define VMAXO 10 00067 00068 #define VMAXP 20 00069 00070 #define VMAXQ 20 00071 00072 #define VMAXDF 10 00073 00075 #define VPMT_012 0 00076 00077 #define VPMT_021 1 00078 00079 #define VPMT_102 2 00080 00081 #define VPMT_120 3 00082 00083 #define VPMT_201 4 00084 00085 #define VPMT_210 5 00086 00088 typedef struct quadInfo { 00090 double w; 00092 double x[3]; 00094 double phi[VMAXP]; 00096 double phix[VMAXP]; 00098 double phiy[VMAXP]; 00100 double phiz[VMAXP]; 00101 } quadInfo; 00102 00104 typedef struct simHelper { 00106 int color; 00108 int diag; 00110 int faceId[4]; 00112 double mass; 00114 double error; 00116 double bc[3]; 00117 } simHelper; 00118 00120 typedef struct Emat { 00122 int NI[MAXV][VMAXP]; 00124 int TP[MAXV][VMAXP]; 00126 double F[MAXV][VMAXP]; 00128 double A[MAXV][MAXV][VMAXP][VMAXP]; 00130 double M[MAXV][MAXV][VMAXP][VMAXP]; 00132 double J; 00133 } Emat; 00134 00135 /* 00136 * *************************************************************************** 00137 * Inlining via macros for speed 00138 * *************************************************************************** 00139 */ 00140 00141 #if 1 00142 00143 # define VINLINE_APRX 00144 00145 # define VINLINE_BAM 00146 00147 # define VINLINE_GEM 00148 00149 # define VINLINE_MCSH 00150 00151 # define VINLINE_NAM 00152 00153 # define VINLINE_PDE 00154 00155 # define VINLINE_ZBLAS 00156 00157 # define VINLINE_ZSLU 00158 #endif 00159 00160 /* 00161 * *************************************************************************** 00162 * General element support 00163 * *************************************************************************** 00164 */ 00165 00166 #if 1 00167 00168 # define VG_ELEMENT 00169 #endif 00170 00172 #define VBOUNDARY(x) (x) 00173 00174 #define VINTERIOR(x) (!(x)) 00175 00176 #define VDIRICHLET(x) VODD(x) 00177 00178 #define VNEUMANN(x) VEVENP(x) 00179 00180 #endif /* _MC_BASE_H_ */ 00181 00182