00001 #ifndef CAGEINIT_H
00002 #define CAGEINIT_H
00003
00011 #ifdef SINGLE
00012 #define real float
00013 #else
00014 #define real double
00015 #endif
00016
00017
00018 #include <iostream>
00019 #include <string>
00020 #include <cmath>
00021 #include <vector>
00022 using namespace std;
00023
00031 class cageInit {
00032
00033 public:
00037 cageInit();
00038
00045 void solve(int numberOfCage,
00046 int cellNumberPerPatch,
00047 int dimension,
00048
00049 real ****u,
00050 int **pointNumberMeshU,
00051 int ****uCagePoint,
00052
00053 real ****v,
00054 int **pointNumberMeshV,
00055 int ****vCagePoint,
00056
00057 real ****w,
00058 int **pointNumberMeshW,
00059 int ****wCagePoint
00060 );
00061
00065 ~cageInit();
00066
00067 private:
00068
00069 void setNVariableCage(int &nVariableCage,
00070 int ** pointNumberMeshVariable,
00071 int **** variableCagePoint);
00072 void setIndex(int **** indexVariableCage,
00073 int * indexIVariableCage,
00074 int * indexJVariableCage,
00075 int * indexKVariableCage,
00076
00077 int ** pointNumberMeshVariable,
00078 int **** variableCagePoint);
00079
00080 int * allocate1dArray(int size);
00081 void delete1dArray(int * x);
00082
00083 int **** allocate4dIntArrayCage(int nMeshes, int **pointNumberMesh);
00084 void delete4dArrayCage(int ****x, int nMeshes, int **pointNumberMesh);
00085
00086 int i, j, k, m;
00087
00088
00089 int nCage;
00090 int nMeshes;
00091 int nCellPerPatch;
00092 int dim;
00093
00094 int **** indexUCage;
00095 int * indexIUCage;
00096 int * indexJUCage;
00097 int * indexKUCage;
00098 int nUCage;
00099
00100 int **** indexVCage;
00101 int * indexIVCage;
00102 int * indexJVCage;
00103 int * indexKVCage;
00104 int nVCage;
00105
00106 int **** indexWCage;
00107 int * indexIWCage;
00108 int * indexJWCage;
00109 int * indexKWCage;
00110 int nWCage;
00111
00112
00113 };
00114
00115 #endif