50 static double N_Q_BDM1_2D_CM[64] = {
51 -0.088388348,0.088388348,0.125,0.125,0.088388348,-0.088388348,-0.125,-0.125,
52 -0.125,-0.125,-0.088388348,0.088388348,0.125,0.125,0.088388348,-0.088388348,
53 -0,0,0.125,0.125,0,0,0.125,0.125,
54 0.1767767,-0.1767767,0,0,0.1767767,-0.1767767,0,0,
55 -0,0,-0.1767767,0.1767767,0,0,-0.1767767,0.1767767,
56 0.125,0.125,0,0,0.125,0.125,0,0,
57 0.088388348,-0.088388348,0,0,-0.088388348,0.088388348,0,0,
58 0,0,-0.088388348,0.088388348,0,0,0.088388348,-0.088388348
61 static void N_Q_BDM1_2D_Funct(
double xi,
double eta,
double *values)
65 double mon_x[]={1,0,xi,0 , eta, 0 , xi*xi , 2*xi*eta};
66 double mon_y[]={0,1,0 ,xi, 0 , eta, -2*xi*eta, -eta*eta};
68 memset(values, 0.0, 2*nBF*SizeOfDouble);
69 for(
int i=0; i<nBF; i++)
71 for(
int j=0; j<nBF; j++)
73 values[i ] += N_Q_BDM1_2D_CM[i+j*nBF]*mon_x[j];
74 values[i+nBF] += N_Q_BDM1_2D_CM[i+j*nBF]*mon_y[j];
80 static void N_Q_BDM1_2D_DeriveXi(
double xi,
double eta,
double *values)
84 double mon_x[]={0,0,1,0,0,0, 2*xi , 2*eta};
85 double mon_y[]={0,0,0,1,0,0,-2*eta, 0 };
87 memset(values, 0.0, 2*nBF*SizeOfDouble);
88 for(
int i=0; i<nBF; i++)
90 for(
int j=0; j<nBF; j++)
92 values[i ] += N_Q_BDM1_2D_CM[i+j*nBF]*mon_x[j];
93 values[i+nBF] += N_Q_BDM1_2D_CM[i+j*nBF]*mon_y[j];
99 static void N_Q_BDM1_2D_DeriveEta(
double xi,
double eta,
double *values)
103 double mon_x[]={0,0,0,0,1,0, 0 ,2*xi };
104 double mon_y[]={0,0,0,0,0,1,-2*xi ,-2*eta};
106 memset(values, 0.0, 2*nBF*SizeOfDouble);
107 for(
int i=0; i<nBF; i++)
109 for(
int j=0; j<nBF; j++)
111 values[i ] += N_Q_BDM1_2D_CM[i+j*nBF]*mon_x[j];
112 values[i+nBF] += N_Q_BDM1_2D_CM[i+j*nBF]*mon_y[j];
118 static void N_Q_BDM1_2D_DeriveXiXi(
double xi,
double eta,
double *values)
122 double mon_x[]={0,0,0,0,0,0,2,0};
123 double mon_y[]={0,0,0,0,0,0,0,0};
125 memset(values, 0.0, 2*nBF*SizeOfDouble);
126 for(
int i=0; i<nBF; i++)
128 for(
int j=0; j<nBF; j++)
130 values[i ] += N_Q_BDM1_2D_CM[i+j*nBF]*mon_x[j];
131 values[i+nBF] += N_Q_BDM1_2D_CM[i+j*nBF]*mon_y[j];
137 static void N_Q_BDM1_2D_DeriveEtaEta(
double xi,
double eta,
double *values)
141 double mon_x[]={0,0,0,0,0,0,0, 0};
142 double mon_y[]={0,0,0,0,0,0,0,-2};
144 memset(values, 0.0, 2*nBF*SizeOfDouble);
145 for(
int i=0; i<nBF; i++)
147 for(
int j=0; j<nBF; j++)
149 values[i ] += N_Q_BDM1_2D_CM[i+j*nBF]*mon_x[j];
150 values[i+nBF] += N_Q_BDM1_2D_CM[i+j*nBF]*mon_y[j];
156 static void N_Q_BDM1_2D_DeriveXiEta(
double xi,
double eta,
double *values)
160 double mon_x[]={0,0,0,0,0,0,0,2};
161 double mon_y[]={0,0,0,0,0,0,-2,0};
163 memset(values, 0.0, 2*nBF*SizeOfDouble);
164 for(
int i=0; i<nBF; i++)
166 for(
int j=0; j<nBF; j++)
168 values[i ] += N_Q_BDM1_2D_CM[i+j*nBF]*mon_x[j];
169 values[i+nBF] += N_Q_BDM1_2D_CM[i+j*nBF]*mon_y[j];
177 (8, BF_N_Q_BDM1_2D, BFUnitSquare,
178 N_Q_BDM1_2D_Funct, N_Q_BDM1_2D_DeriveXi,
179 N_Q_BDM1_2D_DeriveEta, N_Q_BDM1_2D_DeriveXiXi,
180 N_Q_BDM1_2D_DeriveXiEta, N_Q_BDM1_2D_DeriveEtaEta, 6, 2,
Definition: BaseFunct2D.h:27