101 static double N_Q_RT1_2D_CM[144] = {
102 0,0,0,0,-0,0,0,0,0.5,0,0.5,0,
103 0,0,0,0,0,0,0,0,0,0.5,0,0.5,
104 0,0,0.125,0.125,-0,0,0.125,0.125,0,0,0,0,
105 0,0,0,0,0,0,0,0,0,0.7071067812,0,-0.7071067812,
106 0,0,0,0,0,0,0,0,-0.7071067812,0,0.7071067812,0,
107 0.125,0.125,0,0,0.125,0.125,0,0,0,0,0,0,
108 0,0,-0.1767766953,0.1767766953,0,0,0.1767766953,-0.1767766953,0,0,0,0,
109 -0.1767766953,0.1767766953,0,0,0.1767766953,-0.1767766953,0,0,0,0,0,0,
110 0,0,0.125,0.125,0,0,-0.125,-0.125,-0.5,0,-0.5,0,
111 -0.125,-0.125,0,0,0.125,0.125,0,0,0,-0.5,0,-0.5,
112 0,0,-0.1767766953,0.1767766953,0,0,-0.1767766953,0.1767766953,0.7071067812,0,-0.7071067812,0,
113 0.1767766953,-0.1767766953,0,0,0.1767766953,-0.1767766953,0,0,0,-0.7071067812,0,0.7071067812
117 static void N_Q_RT1_2D_Funct(
double xi,
double eta,
double *values)
121 double mon_x[]={1,0,xi,0 ,eta,0 ,xi*eta,0 ,xi*xi,0 ,xi*xi*eta,0};
122 double mon_y[]={0,1,0 ,xi,0 ,eta,0 ,xi*eta,0 ,eta*eta,0,xi*eta*eta};
124 memset(values, 0.0, 2*nBF*SizeOfDouble);
125 for(
int i=0; i<nBF; i++)
127 for(
int j=0; j<nBF; j++)
129 values[i ] += N_Q_RT1_2D_CM[i+j*nBF]*mon_x[j];
130 values[i+nBF] += N_Q_RT1_2D_CM[i+j*nBF]*mon_y[j];
136 static void N_Q_RT1_2D_DeriveXi(
double xi,
double eta,
double *values)
140 double mon_x[]={0,0,1,0,0,0,eta,0 ,2*xi,0,2*xi*eta,0};
141 double mon_y[]={0,0,0,1,0,0,0 ,eta,0 ,0,0 ,eta*eta};
143 memset(values, 0.0, 2*nBF*SizeOfDouble);
144 for(
int i=0; i<nBF; i++)
146 for(
int j=0; j<nBF; j++)
148 values[i ] += N_Q_RT1_2D_CM[i+j*nBF]*mon_x[j];
149 values[i+nBF] += N_Q_RT1_2D_CM[i+j*nBF]*mon_y[j];
155 static void N_Q_RT1_2D_DeriveEta(
double xi,
double eta,
double *values)
159 double mon_x[]={0,0,0,0,1,0,xi,0 ,0,0 ,xi*xi,0};
160 double mon_y[]={0,0,0,0,0,1,0 ,xi,0,2*eta,0 ,2*xi*eta};
162 memset(values, 0.0, 2*nBF*SizeOfDouble);
163 for(
int i=0; i<nBF; i++)
165 for(
int j=0; j<nBF; j++)
167 values[i ] += N_Q_RT1_2D_CM[i+j*nBF]*mon_x[j];
168 values[i+nBF] += N_Q_RT1_2D_CM[i+j*nBF]*mon_y[j];
174 static void N_Q_RT1_2D_DeriveXiXi(
double xi,
double eta,
double *values)
178 double mon_x[]={0,0,0,0,0,0,0,0,2,0,2*eta,0};
179 double mon_y[]={0,0,0,0,0,0,0,0,0,0,0 ,0};
181 memset(values, 0.0, 2*nBF*SizeOfDouble);
182 for(
int i=0; i<nBF; i++)
184 for(
int j=0; j<nBF; j++)
186 values[i ] += N_Q_RT1_2D_CM[i+j*nBF]*mon_x[j];
187 values[i+nBF] += N_Q_RT1_2D_CM[i+j*nBF]*mon_y[j];
193 static void N_Q_RT1_2D_DeriveEtaEta(
double xi,
double eta,
double *values)
197 double mon_x[]={0,0,0,0,0,0,0,0,0,0,0,0};
198 double mon_y[]={0,0,0,0,0,0,0,0,0,2,0,2*xi};
200 memset(values, 0.0, 2*nBF*SizeOfDouble);
201 for(
int i=0; i<nBF; i++)
203 for(
int j=0; j<nBF; j++)
205 values[i ] += N_Q_RT1_2D_CM[i+j*nBF]*mon_x[j];
206 values[i+nBF] += N_Q_RT1_2D_CM[i+j*nBF]*mon_y[j];
212 static void N_Q_RT1_2D_DeriveXiEta(
double xi,
double eta,
double *values)
216 double mon_x[]={0,0,0,0,0,0,1,0,0,0,2*xi,0};
217 double mon_y[]={0,0,0,0,0,0,0,1,0,0,0 ,2*eta};
219 memset(values, 0.0, 2*nBF*SizeOfDouble);
220 for(
int i=0; i<nBF; i++)
222 for(
int j=0; j<nBF; j++)
224 values[i ] += N_Q_RT1_2D_CM[i+j*nBF]*mon_x[j];
225 values[i+nBF] += N_Q_RT1_2D_CM[i+j*nBF]*mon_y[j];
233 (12, BF_N_Q_RT1_2D, BFUnitSquare,
234 N_Q_RT1_2D_Funct, N_Q_RT1_2D_DeriveXi,
235 N_Q_RT1_2D_DeriveEta, N_Q_RT1_2D_DeriveXiXi,
236 N_Q_RT1_2D_DeriveXiEta, N_Q_RT1_2D_DeriveEtaEta, 3, 2,
Definition: BaseFunct2D.h:27