5 static double N_T_BDDF1_3D_CM[144] = {
6 0,-0,0,0,0,-0,0,0,-0,-1.666666667,0.3333333333,0.3333333333,
7 0,0,0,-1.666666667,0.3333333333,0.3333333333,0,0,0,0,0,-0,
8 -1.666666667,0.3333333333,0.3333333333,0,0,0,0,0,0,0,0,-0,
9 -0.3333333333,1.666666667,-0.3333333333,-0.3333333333,-0.3333333333,1.666666667,-0.3333333333,1.666666667,-0.3333333333,1.666666667,-0.3333333333,-0.3333333333,
10 0,0,0,2,0,-2,0,0,0,0,0,-0,
11 2,-2,0,0,0,0,0,0,0,0,0,-0,
12 -0,-0,0,0,-0,-0,0,-0,-0,2,-2,-0,
13 -0.3333333333,-0.3333333333,1.666666667,1.666666667,-0.3333333333,-0.3333333333,1.666666667,-0.3333333333,-0.3333333333,-0.3333333333,1.666666667,-0.3333333333,
14 2,0,-2,0,0,0,0,0,0,0,0,-0,
15 0,0,0,0,0,0,0,0,0,2,0,-2,
16 0,0,0,2,-2,0,0,0,0,0,0,-0,
17 1.666666667,-0.3333333333,-0.3333333333,-0.3333333333,1.666666667,-0.3333333333,-0.3333333333,-0.3333333333,1.666666667,-0.3333333333,-0.3333333333,1.666666667
20 static void N_T_BDDF1_3D_Funct(
double xi,
double eta,
double zeta,
25 double mon_x[]={1,0,0,xi,0,0,eta,0,0,zeta,0,0};
26 double mon_y[]={0,1,0,0,xi,0,0,eta,0,0,zeta,0};
27 double mon_z[]={0,0,1,0,0,xi,0,0,eta,0,0,zeta};
29 memset(values, 0.0, 3*nBF*SizeOfDouble);
30 for(
int i=0; i<nBF; i++)
32 for(
int j=0; j<nBF; j++)
34 values[i ] += N_T_BDDF1_3D_CM[i+j*nBF]*mon_x[j];
35 values[i+ nBF] += N_T_BDDF1_3D_CM[i+j*nBF]*mon_y[j];
36 values[i+2*nBF] += N_T_BDDF1_3D_CM[i+j*nBF]*mon_z[j];
41 static void N_T_BDDF1_3D_DeriveXi(
double xi,
double eta,
double zeta,
46 double mon_x[]={0,0,0,1,0,0,0,0,0,0,0,0};
47 double mon_y[]={0,0,0,0,1,0,0,0,0,0,0,0};
48 double mon_z[]={0,0,0,0,0,1,0,0,0,0,0,0};
50 memset(values, 0.0, 3*nBF*SizeOfDouble);
51 for(
int i=0; i<nBF; i++)
53 for(
int j=0; j<nBF; j++)
55 values[i ] += N_T_BDDF1_3D_CM[i+j*nBF]*mon_x[j];
56 values[i+ nBF] += N_T_BDDF1_3D_CM[i+j*nBF]*mon_y[j];
57 values[i+2*nBF] += N_T_BDDF1_3D_CM[i+j*nBF]*mon_z[j];
62 static void N_T_BDDF1_3D_DeriveEta(
double xi,
double eta,
double zeta,
67 double mon_x[]={0,0,0,0,0,0,1,0,0,0,0,0};
68 double mon_y[]={0,0,0,0,0,0,0,1,0,0,0,0};
69 double mon_z[]={0,0,0,0,0,0,0,0,1,0,0,0};
71 memset(values, 0.0, 3*nBF*SizeOfDouble);
72 for(
int i=0; i<nBF; i++)
74 for(
int j=0; j<nBF; j++)
76 values[i ] += N_T_BDDF1_3D_CM[i+j*nBF]*mon_x[j];
77 values[i+ nBF] += N_T_BDDF1_3D_CM[i+j*nBF]*mon_y[j];
78 values[i+2*nBF] += N_T_BDDF1_3D_CM[i+j*nBF]*mon_z[j];
83 static void N_T_BDDF1_3D_DeriveZeta(
double xi,
double eta,
double zeta,
88 double mon_x[]={0,0,0,0,0,0,0,0,0,1,0,0};
89 double mon_y[]={0,0,0,0,0,0,0,0,0,0,1,0};
90 double mon_z[]={0,0,0,0,0,0,0,0,0,0,0,1};
92 memset(values, 0.0, 3*nBF*SizeOfDouble);
93 for(
int i=0; i<nBF; i++)
95 for(
int j=0; j<nBF; j++)
97 values[i ] += N_T_BDDF1_3D_CM[i+j*nBF]*mon_x[j];
98 values[i+ nBF] += N_T_BDDF1_3D_CM[i+j*nBF]*mon_y[j];
99 values[i+2*nBF] += N_T_BDDF1_3D_CM[i+j*nBF]*mon_z[j];
104 static void N_T_BDDF1_3D_DeriveXiXi(
double xi,
double eta,
double zeta,
108 memset(values, 0.0, 3*nBF*SizeOfDouble);
111 static void N_T_BDDF1_3D_DeriveXiEta(
double xi,
double eta,
double zeta,
115 memset(values, 0.0, 3*nBF*SizeOfDouble);
118 static void N_T_BDDF1_3D_DeriveXiZeta(
double xi,
double eta,
double zeta,
122 memset(values, 0.0, 3*nBF*SizeOfDouble);
125 static void N_T_BDDF1_3D_DeriveEtaEta(
double xi,
double eta,
double zeta,
129 memset(values, 0.0, 3*nBF*SizeOfDouble);
132 static void N_T_BDDF1_3D_DeriveEtaZeta(
double xi,
double eta,
double zeta,
136 memset(values, 0.0, 3*nBF*SizeOfDouble);
139 static void N_T_BDDF1_3D_DeriveZetaZeta(
double xi,
double eta,
double zeta,
143 memset(values, 0.0, 3*nBF*SizeOfDouble);
147 new TBaseFunct3D(12, BF_N_T_BDDF1_3D, BFUnitTetrahedron,
148 N_T_BDDF1_3D_Funct, N_T_BDDF1_3D_DeriveXi,
149 N_T_BDDF1_3D_DeriveEta, N_T_BDDF1_3D_DeriveZeta,
150 N_T_BDDF1_3D_DeriveXiXi, N_T_BDDF1_3D_DeriveXiEta,
151 N_T_BDDF1_3D_DeriveXiZeta, N_T_BDDF1_3D_DeriveEtaEta,
152 N_T_BDDF1_3D_DeriveEtaZeta, N_T_BDDF1_3D_DeriveZetaZeta,
Definition: BaseFunct3D.h:27