ParMooN
 All Classes Functions Variables Friends Pages
BF_C_H_Q1_3D.h
1 // ***********************************************************************
2 // Q1 element, conforming, 3D
3 // ***********************************************************************
4 
5 static void C_H_Q1_3D_Funct(double xi, double eta, double zeta,
6  double *values)
7 {
8  double t1, t2, t4, t6, t9, t12, t14, t15, t17;
9 
10  t1 = 1.0/2.0-xi/2;
11  t2 = 1.0/2.0-eta/2;
12  t4 = 1.0/2.0-zeta/2;
13  t6 = xi/2+1.0/2.0;
14  t9 = eta/2+1.0/2.0;
15  t12 = t6*t9;
16  t14 = -1.0/2.0+xi/2;
17  t15 = -1.0/2.0+eta/2;
18  t17 = zeta/2+1.0/2.0;
19 
20  values[0] = t1*t2*t4;
21  values[1] = t6*t2*t4;
22  values[2] = t1*t9*t4;
23  values[3] = t12*t4;
24  values[4] = t14*t15*t17;
25  values[5] = -t6*t15*t17;
26  values[6] = -t14*t9*t17;
27  values[7] = t12*t17;
28 }
29 
30 static void C_H_Q1_3D_DeriveXi(double xi, double eta, double zeta,
31  double *values)
32 {
33  double t2, t3, t4, t5, t7, t8, t9;
34 
35  t2 = 1.0/2.0-zeta/2;
36  t3 = (1.0/2.0-eta/2)*t2;
37  t4 = eta/2+1.0/2.0;
38  t5 = t4*t2;
39  t7 = zeta/2+1.0/2.0;
40  t8 = (-1.0/2.0+eta/2)*t7;
41  t9 = t7*t4;
42 
43  values[0] = -t3/2;
44  values[1] = t3/2;
45  values[2] = -t5/2;
46  values[3] = t5/2;
47  values[4] = t8/2;
48  values[5] = -t8/2;
49  values[6] = -t9/2;
50  values[7] = t9/2;
51 }
52 
53 static void C_H_Q1_3D_DeriveEta(double xi, double eta, double zeta,
54  double *values)
55 {
56  double t2, t3, t4, t5, t7, t8, t9;
57 
58  t2 = 1.0/2.0-zeta/2;
59  t3 = (1.0/2.0-xi/2)*t2;
60  t4 = xi/2+1.0/2.0;
61  t5 = t4*t2;
62  t7 = zeta/2+1.0/2.0;
63  t8 = (-1.0/2.0+xi/2)*t7;
64  t9 = t7*t4;
65 
66  values[0] = -t3/2;
67  values[1] = -t5/2;
68  values[2] = t3/2;
69  values[3] = t5/2;
70  values[4] = t8/2;
71  values[5] = -t9/2;
72  values[6] = -t8/2;
73  values[7] = t9/2;
74 }
75 
76 static void C_H_Q1_3D_DeriveZeta(double xi, double eta, double zeta,
77  double *values)
78 {
79  double t1, t2, t4, t6, t8, t9, t10;
80 
81  t1 = 1.0/2.0-xi/2;
82  t2 = 1.0/2.0-eta/2;
83  t4 = xi/2+1.0/2.0;
84  t6 = eta/2+1.0/2.0;
85  t8 = t4*t6;
86  t9 = -1.0/2.0+xi/2;
87  t10 = -1.0/2.0+eta/2;
88 
89  values[0] = -t1*t2/2;
90  values[1] = -t4*t2/2;
91  values[2] = -t1*t6/2;
92  values[3] = -t8/2;
93  values[4] = t9*t10/2;
94  values[5] = -t10*t4/2;
95  values[6] = -t6*t9/2;
96  values[7] = t8/2;
97 }
98 
99 static void C_H_Q1_3D_DeriveXiXi(double xi, double eta, double zeta,
100  double *values)
101 {
102  values[0] = 0.0;
103  values[1] = 0.0;
104  values[2] = 0.0;
105  values[3] = 0.0;
106  values[4] = 0.0;
107  values[5] = 0.0;
108  values[6] = 0.0;
109  values[7] = 0.0;
110 }
111 
112 static void C_H_Q1_3D_DeriveXiEta(double xi, double eta, double zeta,
113  double *values)
114 {
115  double t1, t2, t3, t4;
116 
117  t1 = 1.0/8.0-zeta/8;
118  t2 = -1.0/8.0+zeta/8;
119  t3 = zeta/8+1.0/8.0;
120  t4 = -zeta/8-1.0/8.0;
121 
122  values[0] = t1;
123  values[1] = t2;
124  values[2] = t2;
125  values[3] = t1;
126  values[4] = t3;
127  values[5] = t4;
128  values[6] = t4;
129  values[7] = t3;
130 }
131 
132 static void C_H_Q1_3D_DeriveXiZeta(double xi, double eta, double zeta,
133  double *values)
134 {
135  double t1, t2, t3, t4;
136 
137  t1 = 1.0/8.0-eta/8;
138  t2 = -1.0/8.0+eta/8;
139  t3 = eta/8+1.0/8.0;
140  t4 = -eta/8-1.0/8.0;
141 
142  values[0] = t1;
143  values[1] = t2;
144  values[2] = t3;
145  values[3] = t4;
146  values[4] = t2;
147  values[5] = t1;
148  values[6] = t4;
149  values[7] = t3;
150 }
151 
152 static void C_H_Q1_3D_DeriveEtaEta(double xi, double eta, double zeta,
153  double *values)
154 {
155  values[0] = 0.0;
156  values[1] = 0.0;
157  values[2] = 0.0;
158  values[3] = 0.0;
159  values[4] = 0.0;
160  values[5] = 0.0;
161  values[6] = 0.0;
162  values[7] = 0.0;
163 }
164 
165 static void C_H_Q1_3D_DeriveEtaZeta(double xi, double eta, double zeta,
166  double *values)
167 {
168  double t1, t2, t3, t4;
169 
170  t1 = 1.0/8.0-xi/8;
171  t2 = xi/8+1.0/8.0;
172  t3 = -1.0/8.0+xi/8;
173  t4 = -xi/8-1.0/8.0;
174 
175  values[0] = t1;
176  values[1] = t2;
177  values[2] = t3;
178  values[3] = t4;
179  values[4] = t3;
180  values[5] = t4;
181  values[6] = t1;
182  values[7] = t2;
183 }
184 
185 static void C_H_Q1_3D_DeriveZetaZeta(double xi, double eta, double zeta,
186  double *values)
187 {
188  values[0] = 0.0;
189  values[1] = 0.0;
190  values[2] = 0.0;
191  values[3] = 0.0;
192  values[4] = 0.0;
193  values[5] = 0.0;
194  values[6] = 0.0;
195  values[7] = 0.0;
196 }
197 
198 TBaseFunct3D *BF_C_H_Q1_3D_Obj =
199 new TBaseFunct3D(8, BF_C_H_Q1_3D, BFUnitHexahedron,
200  C_H_Q1_3D_Funct, C_H_Q1_3D_DeriveXi,
201  C_H_Q1_3D_DeriveEta, C_H_Q1_3D_DeriveZeta,
202  C_H_Q1_3D_DeriveXiXi, C_H_Q1_3D_DeriveXiEta,
203  C_H_Q1_3D_DeriveXiZeta, C_H_Q1_3D_DeriveEtaEta,
204  C_H_Q1_3D_DeriveEtaZeta, C_H_Q1_3D_DeriveZetaZeta,
205  1, 1,
206  0, NULL);
Definition: BaseFunct3D.h:27