00001
00037 #ifndef _RE_H_
00038 #define _RE_H_
00039
00040 #include <mc/mc_base.h>
00041
00042 #include <mc/bam.h>
00043
00049 struct sRe {
00050
00052 int dim;
00053
00055 int dimIS[4];
00057 int numDF[4];
00058
00060 int qorder;
00065 int numP;
00069 int numPS;
00071 int offIS[4];
00072
00074 double c[VMAXP][VMAXP];
00076 double cx[VMAXP][VMAXP];
00078 double cy[VMAXP][VMAXP];
00080 double cz[VMAXP][VMAXP];
00081
00083 int q;
00085 int qs;
00086
00088 int qhi;
00090 int qshi;
00091
00093 quadInfo v[VMAXQ];
00095 quadInfo s[VMAXQ][4];
00100 int spmt[6][VMAXQ];
00101
00103 quadInfo vhi[VMAXQ];
00105 quadInfo shi[VMAXQ][4];
00107 int spmthi[6][VMAXQ];
00108
00110 int (*simplexBasisInit)(int key, int dim, int comp,
00111 int *ndof, int dof[]);
00112
00114 void (*simplexBasisForm)(int key, int dim, int comp,
00115 int pdkey, double xq[], double basis[]);
00116
00117 };
00118
00125 typedef struct sRe Re;
00126
00127
00128
00129
00130
00131
00132
00133 #if !defined(VINLINE_APRX)
00134 #else
00135 #endif
00136
00142 Re* Re_ctor(int key, int dim,
00143 int (*simplexBasisInit)(int key, int dim, int comp,
00144 int *ndof, int dof[]),
00145 void (*simplexBasisForm)(int key, int dim, int comp,
00146 int pdkey, double xq[], double basis[]),int qorder);
00147
00156 void Re_dtor(Re **thee);
00157
00166 int Re_dim(Re *thee);
00167
00176 int Re_dimV(Re *thee);
00177
00186 int Re_dimE(Re *thee);
00187
00196 int Re_dimF(Re *thee);
00197
00206 int Re_dimS(Re *thee);
00207
00216 int Re_numVDF(Re *thee);
00217
00226 int Re_numEDF(Re *thee);
00227
00236 int Re_numFDF(Re *thee);
00237
00246 int Re_numSDF(Re *thee);
00247
00256 int Re_qorder(Re *thee);
00257
00272 int Re_numP(Re *thee, int f);
00273
00283 int Re_numQ(Re *thee, int f);
00284
00295 double Re_w(Re *thee, int m, int f);
00296
00310 double Re_x(Re *thee, int m, int i, int f);
00311
00323 double Re_phi(Re *thee, int m, int i, int f);
00324
00336 double Re_phix(Re *thee, int m, int i, int f);
00337
00349 double Re_phiy(Re *thee, int m, int i, int f);
00350
00362 double Re_phiz(Re *thee, int m, int i, int f);
00363
00376 double Re_phix2(Re *thee, int m, int i, int j, int f);
00377
00387 int Re_numQ_hi(Re *thee, int f);
00388
00401 double Re_w_hi(Re *thee, int m, int f);
00402
00414 double Re_x_hi(Re *thee, int m, int i, int f);
00415
00427 double Re_phi_hi(Re *thee, int m, int i, int f);
00428
00440 double Re_phix_hi(Re *thee, int m, int i, int f);
00441
00453 double Re_phiy_hi(Re *thee, int m, int i, int f);
00454
00466 double Re_phiz_hi(Re *thee, int m, int i, int f);
00467
00480 double Re_phix2_hi(Re *thee, int m, int i, int j, int f);
00481
00492 int Re_sqPmt(Re *thee, int vxn_pmt, int m);
00493
00504 int Re_sqPmt_hi(Re *thee, int vxn_pmt, int m);
00505
00506
00507
00513 struct sFES {
00514
00516 int dim;
00517
00519 int dimV;
00520
00522 int numDF;
00523
00525 Re *re[MAXV];
00526
00527 };
00528
00532 typedef struct sFES FES;
00533
00534
00535 #endif
00536
00537