106 static double N_Q_RT2_2D_CM[576] = {
107 0,0,0,-0,-0.25,0,0,0,0,0,0.25,-0,0,0,0,0,-0,0,0,1,-0,-0,1,0,
108 0,0.25,-0,0,0,0,0,-0.25,-0,0,0,0,0,1,-0,0,1,0,0,-0,0,0,0,0,
109 0,0,0,0,-0.25,0,0,0,0,0,-0.25,0,0,0,0,0,-0,0,0,1.4142135624,-0,0,-1.4142135624,0,
110 -0.1443375673,0,0.1443375673,0,0,0,-0.1443375673,0,0.1443375673,0,0,0,-0.5773502692,0,0.5773502692,-0.5773502692,-0,0.5773502692,0,0,0,0,0,0,
111 0,0,0,0.1443375673,0,-0.1443375673,0,0,0,0.1443375673,0,-0.1443375673,0,0,0,0,-0,0,-0.5773502692,0,0.5773502692,-0.5773502692,0,0.5773502692,
112 0,-0.25,-0,0,0,0,-0,-0.25,-0,0,0,0,-0,-1.4142135624,-0,0,1.4142135624,0,0,0,0,0,0,0,
113 0,0,0,-0,0.5,0,0,0,0,-0,-0.5,0,0,0,0,0,-0,0,-0,-1,0,0,-1,-0,
114 0.1666666667,-0.3333333333,0.1666666667,0,0,0,-0.1666666667,0.3333333333,-0.1666666667,0,0,0,0.6666666667,-1.3333333333,0.6666666667,0.6666666667,-1.3333333333,0.6666666667,0,0,0,0,0,0,
115 0,0,0,-0.1666666667,0.3333333333,-0.1666666667,0,0,0,0.1666666667,-0.3333333333,0.1666666667,0,0,0,0,-0,0,0.6666666667,-1.3333333333,0.6666666667,0.6666666667,-1.3333333333,0.6666666667,
116 -0,-0.5,0,0,0,0,0,0.5,0,0,0,0,0,-1,0,-0,-1,0,0,0,0,0,0,0,
117 0,0,0,0.1443375673,0,-0.1443375673,0,0,0,-0.1443375673,0,0.1443375673,0,0,0,0,-0,0,-0.8164965809,0,0.8164965809,0.8164965809,0,-0.8164965809,
118 0.1443375673,-0,-0.1443375673,0,0,0,-0.1443375673,0,0.1443375673,0,0,0,0.8164965809,-0,-0.8164965809,-0.8164965809,-0,0.8164965809,0,0,0,0,0,0,
119 0,0,0,0,0.5,-0,0,0,0,-0,0.5,-0,0,0,0,0,-0,0,0,-1.4142135624,0,-0,1.4142135624,-0,
120 -0,0.5,0,0,0,0,0,0.5,0,0,0,0,0,1.4142135624,0,-0,-1.4142135624,-0,0,0,0,0,0,0,
121 0,0,0,-0.2886751346,0,0.2886751346,0,0,0,-0.2886751346,0,0.2886751346,0,0,0,0,-0,0,0.5773502692,0,-0.5773502692,0.5773502692,0,-0.5773502692,
122 -0.1666666667,0.3333333333,-0.1666666667,0,0,0,-0.1666666667,0.3333333333,-0.1666666667,0,0,0,-0.9428090416,1.8856180832,-0.9428090416,0.9428090416,-1.8856180832,0.9428090416,0,0,0,0,0,0,
123 0,0,0,-0.1666666667,0.3333333333,-0.1666666667,0,0,0,-0.1666666667,0.3333333333,-0.1666666667,0,0,0,0,-0,0,0.9428090416,-1.8856180832,0.9428090416,-0.9428090416,1.8856180832,-0.9428090416,
124 0.2886751346,-0,-0.2886751346,0,0,0,0.2886751346,-0,-0.2886751346,0,0,0,0.5773502692,-0,-0.5773502692,0.5773502692,0,-0.5773502692,0,0,0,0,0,0,
125 0,0,0,-0.2886751346,0,0.2886751346,0,0,0,0.2886751346,0,-0.2886751346,0,0,0,0,-0,0,0.8164965809,0,-0.8164965809,-0.8164965809,0,0.8164965809,
126 -0.2886751346,-0,0.2886751346,0,0,0,0.2886751346,-0,-0.2886751346,0,0,0,-0.8164965809,0,0.8164965809,0.8164965809,0,-0.8164965809,0,-0,0,0,0,0,
127 0,0,0,0.3333333333,-0.6666666667,0.3333333333,0,0,0,-0.3333333333,0.6666666667,-0.3333333333,0,0,0,0,-0,0,-0.6666666667,1.3333333333,-0.6666666667,-0.6666666667,1.3333333333,-0.6666666667,
128 -0.3333333333,0.6666666667,-0.3333333333,0,0,0,0.3333333333,-0.6666666667,0.3333333333,0,0,0,-0.6666666667,1.3333333333,-0.6666666667,-0.6666666667,1.3333333333,-0.6666666667,0,0,0,0,0,0,
129 0,0,0,0.3333333333,-0.6666666667,0.3333333333,0,0,0,0.3333333333,-0.6666666667,0.3333333333,0,0,0,0,0,0,-0.9428090416,1.8856180832,-0.9428090416,0.9428090416,-1.8856180832,0.9428090416,
130 0.3333333333,-0.6666666667,0.3333333333,0,0,0,0.3333333333,-0.6666666667,0.3333333333,0,0,0,0.9428090416,-1.8856180832,0.9428090416,-0.9428090416,1.8856180832,-0.9428090416,0,0,0,0,0,0
134 static void N_Q_RT2_2D_Funct(
double xi,
double eta,
double *values)
138 double mon_x[24]={1,0,xi,0 ,eta,0 ,xi*xi,0, eta*eta, 0, xi*eta, 0, xi*xi*xi, 0, xi*xi*eta, 0, xi*eta*eta, 0, xi*xi*xi*eta, 0, xi*xi*eta*eta, 0, xi*xi*xi*eta*eta, 0};
139 double mon_y[24]={0, 1, 0, xi, 0, eta, 0, xi*xi, 0, eta*eta, 0, xi*eta, 0, eta*eta*eta, 0, xi*xi*eta, 0, xi*eta*eta, 0, xi*eta*eta*eta, 0, xi*xi*eta*eta, 0, xi*xi*eta*eta*eta};
141 memset(values, 0.0, 2*nBF*SizeOfDouble);
142 for(
int i=0; i<nBF; i++)
144 for(
int j=0; j<nBF; j++)
146 values[i ] += N_Q_RT2_2D_CM[i+j*nBF]*mon_x[j];
147 values[i+nBF] += N_Q_RT2_2D_CM[i+j*nBF]*mon_y[j];
153 static void N_Q_RT2_2D_DeriveXi(
double xi,
double eta,
double *values)
157 double mon_x[24]={0,0,1,0,0,0,2*xi,0,0,0,eta,0,3*xi*xi,0,2*xi*eta,0,eta*eta, 0,3*xi*xi*eta,0,2*xi*eta*eta,0,3*xi*xi*eta*eta,0};
158 double mon_y[24]={0,0,0,1,0,0,0,2*xi,0,0,0,eta,0,0,0,2*xi*eta,0,eta*eta,0, eta*eta*eta,0,2*xi*eta*eta,0,2*xi*eta*eta*eta};
160 memset(values, 0.0, 2*nBF*SizeOfDouble);
161 for(
int i=0; i<nBF; i++)
163 for(
int j=0; j<nBF; j++)
165 values[i ] += N_Q_RT2_2D_CM[i+j*nBF]*mon_x[j];
166 values[i+nBF] += N_Q_RT2_2D_CM[i+j*nBF]*mon_y[j];
172 static void N_Q_RT2_2D_DeriveEta(
double xi,
double eta,
double *values)
176 double mon_x[24]={0,0,0,0,1,0,0,0,2*eta,0,xi,0,0,0,xi*xi,0,2*xi*eta,0, xi*xi*xi,0,2*xi*xi*eta,0,2*xi*xi*xi*eta, 0};
177 double mon_y[24]={0,0,0,0,0,1,0,0,0,2*eta,0,xi,0,3*eta*eta,0,xi*xi,0, 2*xi*eta,0,3*xi*eta*eta,0,2*xi*xi*eta,0,3*xi*xi*eta*eta};
179 memset(values, 0.0, 2*nBF*SizeOfDouble);
180 for(
int i=0; i<nBF; i++)
182 for(
int j=0; j<nBF; j++)
184 values[i ] += N_Q_RT2_2D_CM[i+j*nBF]*mon_x[j];
185 values[i+nBF] += N_Q_RT2_2D_CM[i+j*nBF]*mon_y[j];
191 static void N_Q_RT2_2D_DeriveXiXi(
double xi,
double eta,
double *values)
195 double mon_x[24]={0,0,0,0,0,0,2,0,0,0,0,0,6*xi,0,2*eta,0,0,0,6*xi*eta,0,2*eta*eta, 0,6*xi*eta*eta,0};
196 double mon_y[24]={0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2*eta,0,0,0,0,0,2*eta*eta,0, 2*eta*eta*eta};
198 memset(values, 0.0, 2*nBF*SizeOfDouble);
199 for(
int i=0; i<nBF; i++)
201 for(
int j=0; j<nBF; j++)
203 values[i ] += N_Q_RT2_2D_CM[i+j*nBF]*mon_x[j];
204 values[i+nBF] += N_Q_RT2_2D_CM[i+j*nBF]*mon_y[j];
210 static void N_Q_RT2_2D_DeriveEtaEta(
double xi,
double eta,
double *values)
214 double mon_x[24]={0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2*xi,0,0,0,2*xi*xi,0, 2*xi*xi*xi, 0};
215 double mon_y[24]={0,0,0,0,0,0,0,0,0,2,0,0,0,6*eta,0,0,0,2*xi,0,6*xi*eta,0, 2*xi*xi,0,6*xi*xi*eta};
217 memset(values, 0.0, 2*nBF*SizeOfDouble);
218 for(
int i=0; i<nBF; i++)
220 for(
int j=0; j<nBF; j++)
222 values[i ] += N_Q_RT2_2D_CM[i+j*nBF]*mon_x[j];
223 values[i+nBF] += N_Q_RT2_2D_CM[i+j*nBF]*mon_y[j];
229 static void N_Q_RT2_2D_DeriveXiEta(
double xi,
double eta,
double *values)
233 double mon_x[24]={0,0,0,0,0,0,0,0,0,0,1,0,0,0,2*xi,0,2*eta,0,3*xi*xi,0,4*xi*eta, 0,6*xi*xi*eta,0};
234 double mon_y[24]={0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2*xi,0,2*eta,0,3*eta*eta,0, 4*xi*eta,0,6*xi*eta*eta};
236 memset(values, 0.0, 2*nBF*SizeOfDouble);
237 for(
int i=0; i<nBF; i++)
239 for(
int j=0; j<nBF; j++)
241 values[i ] += N_Q_RT2_2D_CM[i+j*nBF]*mon_x[j];
242 values[i+nBF] += N_Q_RT2_2D_CM[i+j*nBF]*mon_y[j];
251 (24, BF_N_Q_RT2_2D, BFUnitSquare,
252 N_Q_RT2_2D_Funct, N_Q_RT2_2D_DeriveXi,
253 N_Q_RT2_2D_DeriveEta, N_Q_RT2_2D_DeriveXiXi,
254 N_Q_RT2_2D_DeriveXiEta, N_Q_RT2_2D_DeriveEtaEta, 4, 3,
Definition: BaseFunct2D.h:27