16 static double N_T_RT2_2D_CM[225] = {
17 0,0,0,0,0,0,-1,3,-3,0,0,0,0,0,0,
18 -3,3,-1,-0,0,0,0,0,0,0,0,0,0,0,0,
19 5.5,-7,2.5,5,-2,3,3.5,-13,20.5,180,60,-270,-120,-240,-90,
20 10,-16,6,-0,0,0,0,0,0,0,0,0,0,0,0,
21 0,0,0,0,0,0,6,-16,10,0,0,0,0,0,0,
22 20.5,-13,3.5,3,-2,5,2.5,-7,5.5,60,180,-90,-240,-120,-270,
23 -16.5,28,-11.5,-21.5,8,-6.5,-7,19,-37,-450,-150,810,390,510,180,
24 -8,16,-8,0,0,0,0,0,0,0,0,0,0,0,0,
25 0,0,0,0,0,0,-8,16,-8,0,0,0,0,0,0,
26 -37,19,-7,-6.5,8,-21.5,-11.5,28,-16.5,-150,-450,180,510,390,810,
27 -22,14,-2,-7,4,-17,-5,40,-35,-300,-300,360,420,660,540,
28 -35,40,-5,-17,4,-7,-2,14,-22,-300,-300,540,660,420,360,
29 12,-24,12,19.5,-9,4.5,4.5,-9,19.5,270,90,-540,-270,-270,-90,
30 27,-24,-3,12,6,12,-3,-24,27,360,360,-540,-720,-720,-540,
31 19.5,-9,4.5,4.5,-9,19.5,12,-24,12,90,270,-90,-270,-270,-540
92 static void N_T_RT2_2D_Funct(
double xi,
double eta,
double *values)
96 double mon_x[15]={1,0,xi,0,eta,0,xi*xi,0,eta*eta,0,xi*eta,0,xi*xi*xi, xi*xi*eta,xi*eta*eta};
97 double mon_y[15]={0,1,0,xi,0,eta,0,xi*xi,0,eta*eta,0,xi*eta,xi*xi*eta, xi*eta*eta,eta*eta*eta };
99 memset(values, 0.0, 2*nBF*SizeOfDouble);
100 for(
int i=0; i<nBF; i++)
102 for(
int j=0; j<nBF; j++)
104 values[i ] += N_T_RT2_2D_CM[i+j*nBF]*mon_x[j];
105 values[i+nBF] += N_T_RT2_2D_CM[i+j*nBF]*mon_y[j];
111 static void N_T_RT2_2D_DeriveXi(
double xi,
double eta,
double *values)
116 double mon_x[15]={0,0,1,0,0,0,2*xi,0,0,0,eta,0,3*xi*xi,2*xi*eta,eta*eta};
117 double mon_y[15]={0,0,0,1,0,0,0,2*xi,0,0,0,eta,2*xi*eta,eta*eta,0};
119 memset(values, 0.0, 2*nBF*SizeOfDouble);
120 for(
int i=0; i<nBF; i++)
122 for(
int j=0; j<nBF; j++)
124 values[i ] += N_T_RT2_2D_CM[i+j*nBF]*mon_x[j];
125 values[i+nBF] += N_T_RT2_2D_CM[i+j*nBF]*mon_y[j];
131 static void N_T_RT2_2D_DeriveEta(
double xi,
double eta,
double *values)
135 double mon_x[15]={0,0,0,0,1,0,0,0,2*eta,0,xi,0,0,xi*xi,2*xi*eta};
136 double mon_y[15]={0,0,0,0,0,1,0,0,0,2*eta,0,xi,xi*xi,2*xi*eta,3*eta*eta };
138 memset(values, 0.0, 2*nBF*SizeOfDouble);
139 for(
int i=0; i<nBF; i++)
141 for(
int j=0; j<nBF; j++)
143 values[i ] += N_T_RT2_2D_CM[i+j*nBF]*mon_x[j];
144 values[i+nBF] += N_T_RT2_2D_CM[i+j*nBF]*mon_y[j];
150 static void N_T_RT2_2D_DeriveXiXi(
double xi,
double eta,
double *values)
154 double mon_x[15]={0,0,0,0,0,0,2,0,0,0,0,0,6*xi,2*eta,0};
155 double mon_y[15]={0,0,0,0,0,0,0,2,0,0,0,0,2*eta,0,0};
157 memset(values, 0.0, 2*nBF*SizeOfDouble);
158 for(
int i=0; i<nBF; i++)
160 for(
int j=0; j<nBF; j++)
162 values[i ] += N_T_RT2_2D_CM[i+j*nBF]*mon_x[j];
163 values[i+nBF] += N_T_RT2_2D_CM[i+j*nBF]*mon_y[j];
169 static void N_T_RT2_2D_DeriveEtaEta(
double xi,
double eta,
double *values)
173 double mon_x[15]={0,0,0,0,0,0,0,0,2,0,0,0,0,0,2*xi};
174 double mon_y[15]={0,0,0,0,0,0,0,0,0,2,0,0,0,2*xi,6*eta };
176 memset(values, 0.0, 2*nBF*SizeOfDouble);
177 for(
int i=0; i<nBF; i++)
179 for(
int j=0; j<nBF; j++)
181 values[i ] += N_T_RT2_2D_CM[i+j*nBF]*mon_x[j];
182 values[i+nBF] += N_T_RT2_2D_CM[i+j*nBF]*mon_y[j];
188 static void N_T_RT2_2D_DeriveXiEta(
double xi,
double eta,
double *values)
192 double mon_x[15]={0,0,0,0,0,0,0,0,0,0,1,0,0,2*xi,2*eta};
193 double mon_y[15]={0,0,0,0,0,0,0,0,0,0,0,1,2*xi,2*eta,0};
195 memset(values, 0.0, 2*nBF*SizeOfDouble);
196 for(
int i=0; i<nBF; i++)
198 for(
int j=0; j<nBF; j++)
200 values[i ] += N_T_RT2_2D_CM[i+j*nBF]*mon_x[j];
201 values[i+nBF] += N_T_RT2_2D_CM[i+j*nBF]*mon_y[j];
209 (15, BF_N_T_RT2_2D, BFUnitTriangle,
210 N_T_RT2_2D_Funct, N_T_RT2_2D_DeriveXi,
211 N_T_RT2_2D_DeriveEta, N_T_RT2_2D_DeriveXiXi,
212 N_T_RT2_2D_DeriveXiEta, N_T_RT2_2D_DeriveEtaEta, 3, 2,
Definition: BaseFunct2D.h:27