52 static double N_T_RT1_2D_CM[64] = {
53 0,0,0,0,0.2071067812,-1.2071067812,0,0,
54 -1.2071067812,0.2071067812,0,0,0,0,0,0,
55 1.2071067812,-0.2071067812,-1,-1,0.5857864376,3.4142135624,6,3,
56 1.4142135624,-1.4142135624,0,0,0,0,0,0,
57 0,0,0,0,-1.4142135624,1.4142135624,0,0,
58 3.4142135624,0.5857864376,-1,-1,-0.2071067812,1.2071067812,3,6,
59 -1.4142135624,1.4142135624,2.2071067812,0.7928932188,-0.7928932188,-2.2071067812,-6,-3,
60 -2.2071067812,-0.7928932188,0.7928932188,2.2071067812,1.4142135624,-1.4142135624,-3,-6
62 static void N_T_RT1_2D_Funct(
double xi,
double eta,
double *values)
66 double mon_x[]={1,0,xi,0 ,eta,0 ,xi*xi ,xi*eta };
67 double mon_y[]={0,1,0 ,xi,0 ,eta,xi*eta,eta*eta};
69 memset(values, 0.0, 2*nBF*SizeOfDouble);
70 for(
int i=0; i<nBF; i++)
72 for(
int j=0; j<nBF; j++)
74 values[i ] += N_T_RT1_2D_CM[i+j*nBF]*mon_x[j];
75 values[i+nBF] += N_T_RT1_2D_CM[i+j*nBF]*mon_y[j];
81 static void N_T_RT1_2D_DeriveXi(
double xi,
double eta,
double *values)
85 double mon_x[]={0,0,1,0,0,0,2*xi,eta };
86 double mon_y[]={0,0,0,1,0,0,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_T_RT1_2D_CM[i+j*nBF]*mon_x[j];
93 values[i+nBF] += N_T_RT1_2D_CM[i+j*nBF]*mon_y[j];
99 static void N_T_RT1_2D_DeriveEta(
double xi,
double eta,
double *values)
103 double mon_x[]={0,0,0,0,1,0,0 ,xi };
104 double mon_y[]={0,0,0,0,0,1,xi,2*eta};
105 memset(values, 0.0, 2*nBF*SizeOfDouble);
106 for(
int i=0; i<nBF; i++)
108 for(
int j=0; j<nBF; j++)
110 values[i ] += N_T_RT1_2D_CM[i+j*nBF]*mon_x[j];
111 values[i+nBF] += N_T_RT1_2D_CM[i+j*nBF]*mon_y[j];
117 static void N_T_RT1_2D_DeriveXiXi(
double xi,
double eta,
double *values)
121 double mon_x[]={0,0,0,0,0,0,2,0};
122 double mon_y[]={0,0,0,0,0,0,0,0};
123 memset(values, 0.0, 2*nBF*SizeOfDouble);
124 for(
int i=0; i<nBF; i++)
126 for(
int j=0; j<nBF; j++)
128 values[i ] += N_T_RT1_2D_CM[i+j*nBF]*mon_x[j];
129 values[i+nBF] += N_T_RT1_2D_CM[i+j*nBF]*mon_y[j];
135 static void N_T_RT1_2D_DeriveEtaEta(
double xi,
double eta,
double *values)
139 double mon_x[]={0,0,0,0,0,0,0,0};
140 double mon_y[]={0,0,0,0,0,0,0,2};
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_T_RT1_2D_CM[i+j*nBF]*mon_x[j];
147 values[i+nBF] += N_T_RT1_2D_CM[i+j*nBF]*mon_y[j];
153 static void N_T_RT1_2D_DeriveXiEta(
double xi,
double eta,
double *values)
157 double mon_x[]={0,0,0,0,0,0,0,1};
158 double mon_y[]={0,0,0,0,0,0,1,0};
159 memset(values, 0.0, 2*nBF*SizeOfDouble);
160 for(
int i=0; i<nBF; i++)
162 for(
int j=0; j<nBF; j++)
164 values[i ] += N_T_RT1_2D_CM[i+j*nBF]*mon_x[j];
165 values[i+nBF] += N_T_RT1_2D_CM[i+j*nBF]*mon_y[j];
173 (8, BF_N_T_RT1_2D, BFUnitTriangle,
174 N_T_RT1_2D_Funct, N_T_RT1_2D_DeriveXi,
175 N_T_RT1_2D_DeriveEta, N_T_RT1_2D_DeriveXiXi,
176 N_T_RT1_2D_DeriveXiEta, N_T_RT1_2D_DeriveEtaEta, 2, 1,
Definition: BaseFunct2D.h:27