13 D(0,0) = -1.0; D(0,1) = -1.0;
14 D(1,0) = 1.0; D(1,1) = 0.0;
15 D(2,0) = 0.0; D(2,1) = 1.0;
17 void tri3::dX_shape_functions(Epetra_SerialDenseMatrix & D, Epetra_SerialDenseMatrix & DX,
double & jac, Epetra_SerialDenseMatrix & JacobianMatrix){
19 Epetra_SerialDenseMatrix InverseJacobianMatrix(2,2);
20 InverseJacobianMatrix(0,0) = (1.0/jac)*JacobianMatrix(1,1);
21 InverseJacobianMatrix(1,1) = (1.0/jac)*JacobianMatrix(0,0);
22 InverseJacobianMatrix(0,1) = -(1.0/jac)*JacobianMatrix(0,1);
23 InverseJacobianMatrix(1,0) = -(1.0/jac)*JacobianMatrix(1,0);
25 DX.Multiply(
'N',
'N',1.0,D,InverseJacobianMatrix,0.0);
29 N(0) = (1.0/4.0)*(1.0-xi)*(1.0-eta);
30 N(1) = (1.0/4.0)*(1.0+xi)*(1.0-eta);
31 N(2) = (1.0/4.0)*(1.0+xi)*(1.0+eta);
32 N(3) = (1.0/4.0)*(1.0-xi)*(1.0+eta);
35 D(0,0) = -(1.0/4.0)*(1.0-
eta); D(0,1) = -(1.0/4.0)*(1.0-xi);
36 D(1,0) = (1.0/4.0)*(1.0-
eta); D(1,1) = -(1.0/4.0)*(1.0+xi);
37 D(2,0) = (1.0/4.0)*(1.0+
eta); D(2,1) = (1.0/4.0)*(1.0+xi);
38 D(3,0) = -(1.0/4.0)*(1.0+
eta); D(3,1) = (1.0/4.0)*(1.0-xi);
40 void quad4::dX_shape_functions(Epetra_SerialDenseMatrix & D, Epetra_SerialDenseMatrix & DX,
double & jac, Epetra_SerialDenseMatrix & JacobianMatrix){
42 Epetra_SerialDenseMatrix InverseJacobianMatrix(2,2);
43 InverseJacobianMatrix(0,0) = (1.0/jac)*JacobianMatrix(1,1);
44 InverseJacobianMatrix(1,1) = (1.0/jac)*JacobianMatrix(0,0);
45 InverseJacobianMatrix(0,1) = -(1.0/jac)*JacobianMatrix(0,1);
46 InverseJacobianMatrix(1,0) = -(1.0/jac)*JacobianMatrix(1,0);
48 DX.Multiply(
'N',
'N',1.0,D,InverseJacobianMatrix,0.0);
52 double lambda = 1.0 - xi -
eta;
53 N(0) = lambda*(2.0*lambda-1.0);
54 N(1) = xi*(2.0*xi-1.0);
55 N(2) = eta*(2.0*eta-1.0);
58 N(5) = 4.0*lambda*
eta;
62 D(0,0) = 4.0*xi + 4.0*eta - 3.0;
63 D(1,0) = 4.0*xi - 1.0;
65 D(3,0) = 4.0 - 8.0*xi - 4.0*
eta;
69 D(0,1) = 4.0*eta + 4.0*xi - 3.0;
71 D(2,1) = 4.0*eta - 1.0;
74 D(5,1) = 4.0 - 4.0*xi - 8.0*
eta;
77 void tri6::dX_shape_functions(Epetra_SerialDenseMatrix & D, Epetra_SerialDenseMatrix & DX,
double & jac, Epetra_SerialDenseMatrix & JacobianMatrix){
79 Epetra_SerialDenseMatrix InverseJacobianMatrix(2,2);
80 InverseJacobianMatrix(0,0) = (1.0/jac)*JacobianMatrix(1,1);
81 InverseJacobianMatrix(1,1) = (1.0/jac)*JacobianMatrix(0,0);
82 InverseJacobianMatrix(0,1) = -(1.0/jac)*JacobianMatrix(0,1);
83 InverseJacobianMatrix(1,0) = -(1.0/jac)*JacobianMatrix(1,0);
85 DX.Multiply(
'N',
'N',1.0,D,InverseJacobianMatrix,0.0);
89 N(0) = (1.0/8.0)*(1.0-xi)*(1.0-eta)*(1.0-zeta);
90 N(1) = (1.0/8.0)*(1.0+xi)*(1.0-eta)*(1.0-zeta);
91 N(2) = (1.0/8.0)*(1.0+xi)*(1.0+eta)*(1.0-zeta);
92 N(3) = (1.0/8.0)*(1.0-xi)*(1.0+eta)*(1.0-zeta);
93 N(4) = (1.0/8.0)*(1.0-xi)*(1.0-eta)*(1.0+zeta);
94 N(5) = (1.0/8.0)*(1.0+xi)*(1.0-eta)*(1.0+zeta);
95 N(6) = (1.0/8.0)*(1.0+xi)*(1.0+eta)*(1.0+zeta);
96 N(7) = (1.0/8.0)*(1.0-xi)*(1.0+eta)*(1.0+zeta);
100 D(0,0) = -(1.0/8.0)*(1.0-
eta)*(1.0-zeta); D(0,1) = -(1.0/8.0)*(1.0-xi)*(1.0-zeta); D(0,2) = -(1.0/8.0)*(1.0-xi)*(1.0-eta);
101 D(1,0) = (1.0/8.0)*(1.0-
eta)*(1.0-zeta); D(1,1) = -(1.0/8.0)*(1.0+xi)*(1.0-zeta); D(1,2) = -(1.0/8.0)*(1.0+xi)*(1.0-eta);
102 D(2,0) = (1.0/8.0)*(1.0+
eta)*(1.0-zeta); D(2,1) = (1.0/8.0)*(1.0+xi)*(1.0-zeta); D(2,2) = -(1.0/8.0)*(1.0+xi)*(1.0+eta);
103 D(3,0) = -(1.0/8.0)*(1.0+
eta)*(1.0-zeta); D(3,1) = (1.0/8.0)*(1.0-xi)*(1.0-zeta); D(3,2) = -(1.0/8.0)*(1.0-xi)*(1.0+eta);
104 D(4,0) = -(1.0/8.0)*(1.0-
eta)*(1.0+zeta); D(4,1) = -(1.0/8.0)*(1.0-xi)*(1.0+zeta); D(4,2) = (1.0/8.0)*(1.0-xi)*(1.0-eta);
105 D(5,0) = (1.0/8.0)*(1.0-
eta)*(1.0+zeta); D(5,1) = -(1.0/8.0)*(1.0+xi)*(1.0+zeta); D(5,2) = (1.0/8.0)*(1.0+xi)*(1.0-eta);
106 D(6,0) = (1.0/8.0)*(1.0+
eta)*(1.0+zeta); D(6,1) = (1.0/8.0)*(1.0+xi)*(1.0+zeta); D(6,2) = (1.0/8.0)*(1.0+xi)*(1.0+eta);
107 D(7,0) = -(1.0/8.0)*(1.0+
eta)*(1.0+zeta); D(7,1) = (1.0/8.0)*(1.0-xi)*(1.0+zeta); D(7,2) = (1.0/8.0)*(1.0-xi)*(1.0+eta);
111 double lambda = 1 - xi - eta - zeta;
119 D(0,0) = -1.0; D(0,1) = -1.0; D(0,2) = -1.0;
120 D(1,0) = 1.0; D(1,1) = 0.0; D(1,2) = 0.0;
121 D(2,0) = 0.0; D(2,1) = 1.0; D(2,2) = 0.0;
122 D(3,0) = 0.0; D(3,1) = 0.0; D(3,2) = 1.0;
126 double lambda = 1 - xi - eta - zeta;
127 N(0) = lambda*(2.0*lambda-1.0);
128 N(1) = xi*(2.0*xi-1.0);
129 N(2) = eta*(2.0*eta-1.0);
130 N(3) = zeta*(2.0*zeta-1.0);
134 N(7) = 4*zeta*lambda;
140 D(0,0) = 4.0*eta + 4.0*xi + 4.0*zeta - 3.0; D(0,1) = 4.0*eta + 4.0*xi + 4.0*zeta - 3.0; D(0,2) = 4.0*eta + 4.0*xi + 4.0*zeta - 3.0;
141 D(1,0) = 4.0*xi - 1.0; D(1,1) = 0.0; D(1,2) = 0.0;
142 D(2,0) = 0.0; D(2,1) = 4.0*eta - 1.0; D(2,2) = 0.0;
143 D(3,0) = 0.0; D(3,1) = 0.0; D(3,2) = 4.0*zeta - 1.0;
144 D(4,0) = 4.0 - 8.0*xi - 4.0*zeta - 4.0*
eta; D(4,1) = -4.0*xi; D(4,2) = -4.0*xi;
145 D(5,0) = 4.0*
eta; D(5,1) = 4.0*xi; D(5,2) = 0.0;
146 D(6,0) = -4.0*
eta; D(6,1) = 4.0 - 4.0*xi - 4.0*zeta - 8.0*
eta; D(6,2) = -4.0*
eta;
147 D(7,0) = -4.0*zeta; D(7,1) = -4.0*zeta; D(7,2) = 4.0 - 4.0*xi - 8.0*zeta - 4.0*
eta;
148 D(8,0) = 0.0; D(8,1) = 4.0*zeta; D(8,2) = 4.0*
eta;
149 D(9,0) = 4.0*zeta; D(9,1) = 0.0; D(9,2) = 4.0*xi;
152 void dX_shape_functions(Epetra_SerialDenseMatrix & D, Epetra_SerialDenseMatrix JacobianMatrix,
double & jac, Epetra_SerialDenseMatrix & DX)
154 Epetra_SerialDenseMatrix InverseJacobianMatrix(3,3);
156 InverseJacobianMatrix(0,0) = (1.0/jac)*(JacobianMatrix(1,1)*JacobianMatrix(2,2)-JacobianMatrix(1,2)*JacobianMatrix(2,1));
157 InverseJacobianMatrix(0,1) = (1.0/jac)*(JacobianMatrix(0,2)*JacobianMatrix(2,1)-JacobianMatrix(0,1)*JacobianMatrix(2,2));
158 InverseJacobianMatrix(0,2) = (1.0/jac)*(JacobianMatrix(0,1)*JacobianMatrix(1,2)-JacobianMatrix(0,2)*JacobianMatrix(1,1));
160 InverseJacobianMatrix(1,0) = (1.0/jac)*(JacobianMatrix(1,2)*JacobianMatrix(2,0)-JacobianMatrix(1,0)*JacobianMatrix(2,2));
161 InverseJacobianMatrix(1,1) = (1.0/jac)*(JacobianMatrix(0,0)*JacobianMatrix(2,2)-JacobianMatrix(0,2)*JacobianMatrix(2,0));
162 InverseJacobianMatrix(1,2) = (1.0/jac)*(JacobianMatrix(0,2)*JacobianMatrix(1,0)-JacobianMatrix(0,0)*JacobianMatrix(1,2));
164 InverseJacobianMatrix(2,0) = (1.0/jac)*(JacobianMatrix(1,0)*JacobianMatrix(2,1)-JacobianMatrix(1,1)*JacobianMatrix(2,0));
165 InverseJacobianMatrix(2,1) = (1.0/jac)*(JacobianMatrix(0,1)*JacobianMatrix(2,0)-JacobianMatrix(0,0)*JacobianMatrix(2,1));
166 InverseJacobianMatrix(2,2) = (1.0/jac)*(JacobianMatrix(0,0)*JacobianMatrix(1,1)-JacobianMatrix(0,1)*JacobianMatrix(1,0));
168 DX.Multiply(
'N',
'N',1.0,D,InverseJacobianMatrix,0.0);
171 void jacobian_matrix(Epetra_SerialDenseMatrix &
X, Epetra_SerialDenseMatrix & D, Epetra_SerialDenseMatrix & JacobianMatrix){
172 JacobianMatrix.Multiply(
'N',
'N',1.0,X,D,0.0);
175 void jacobian_det(Epetra_SerialDenseMatrix & JacobianMatrix,
double & jac){
176 jac = fabs(JacobianMatrix(0,0)*JacobianMatrix(1,1)*JacobianMatrix(2,2)-JacobianMatrix(0,0)*JacobianMatrix(1,2)*JacobianMatrix(2,1)-JacobianMatrix(0,1)*JacobianMatrix(1,0)*JacobianMatrix(2,2)+JacobianMatrix(0,1)*JacobianMatrix(1,2)*JacobianMatrix(2,0)+JacobianMatrix(0,2)*JacobianMatrix(1,0)*JacobianMatrix(2,1)-JacobianMatrix(0,2)*JacobianMatrix(1,1)*JacobianMatrix(2,0) );
180 jac = fabs(JacobianMatrix(0,0)*JacobianMatrix(1,1) - JacobianMatrix(0,1)*JacobianMatrix(0,1));
183 void gauss_points_tri1(Epetra_SerialDenseVector & weight, Epetra_SerialDenseVector & xi, Epetra_SerialDenseVector &
eta){
184 weight.Resize(1); xi.Resize(1); eta.Resize(1);
189 void gauss_points_tri3(Epetra_SerialDenseVector & weight, Epetra_SerialDenseVector & xi, Epetra_SerialDenseVector &
eta){
190 weight.Resize(3); xi.Resize(3); eta.Resize(3);
191 weight(0) = 1.0/6.0; weight(1) = 1.0/6.0; weight(2) = 1.0/6.0;
192 xi(0) = 1.0/6.0; xi(1) = 2.0/3.0; xi(2) = 1.0/6.0;
193 eta(0) = 1.0/6.0;
eta(1) = 1.0/6.0;
eta(2) = 2.0/3.0;
195 void gauss_points_tri4(Epetra_SerialDenseVector & weight, Epetra_SerialDenseVector & xi, Epetra_SerialDenseVector &
eta){
196 weight.Resize(4); xi.Resize(4); eta.Resize(4);
197 weight(0) = -27.0/96.0; weight(1) = 25.0/96.0; weight(2) = 25.0/96.0; weight(3) = 25.0/96.0;
198 xi(0) = 1.0/3.0; xi(1) = 1.0/5.0; xi(2) = 3.0/5.0; xi(3) = 1.0/5.0;
199 eta(0) = 1.0/3.0;
eta(1) = 1.0/5.0;
eta(2) = 1.0/5.0;
eta(3) = 3.0/5.0;
202 void gauss_points_quad1(Epetra_SerialDenseVector & weight, Epetra_SerialDenseVector & xi, Epetra_SerialDenseVector &
eta){
203 weight.Resize(1); xi.Resize(1); eta.Resize(1);
208 void gauss_points_quad4(Epetra_SerialDenseVector & weight, Epetra_SerialDenseVector & xi, Epetra_SerialDenseVector &
eta){
209 weight.Resize(4); xi.Resize(4); eta.Resize(4);
210 double a = 1.0/std::sqrt(3.0);
211 weight(0) = 1.0; weight(1) = 1.0; weight(2) = 1.0; weight(3) = 1.0;
212 xi(0) = -a; xi(1) = a; xi(2) = -a; xi(3) = a;
215 void gauss_points_quad9(Epetra_SerialDenseVector & weight, Epetra_SerialDenseVector & xi, Epetra_SerialDenseVector &
eta){
216 weight.Resize(9); xi.Resize(9); eta.Resize(9);
217 double a = std::sqrt(3.0/5.0);
218 weight(0) = 25.0/81.0; weight(1) = 40.0/81.0; weight(2) = 25.0/81.0; weight(3) = 40.0/81.0; weight(4) = 64.0/81.0; weight(5) = 40.0/81.0; weight(6) = 25.0/81.0; weight(7) = 40.0/81.0; weight(8) = 25.0/81.0;
219 xi(0) = -a; xi(1) = 0.0; xi(2) = a; xi(3) = -a; xi(4) = 0.0; xi(5) = a; xi(6) = -a; xi(7) = 0.0; xi(8) = a;
223 void gauss_points_hexa4(Epetra_SerialDenseVector & weight, Epetra_SerialDenseVector & xi, Epetra_SerialDenseVector &
eta, Epetra_SerialDenseVector & zeta){
224 weight.Resize(4); xi.Resize(4); eta.Resize(4); zeta.Resize(4);
225 double alpha = std::sqrt(2.0/3.0);
226 double beta = std::sqrt(1.0/3.0);
227 weight(0) = 2.0; weight(1) = 2.0; weight(2) = 2.0; weight(3) = 2.0;
228 xi(0) = 0.0;
eta(0) = alpha; zeta(0) = -
beta;
229 xi(1) = 0.0;
eta(1) = -alpha; zeta(1) = -
beta;
230 xi(2) = alpha;
eta(2) = 0.0; zeta(2) =
beta;
231 xi(3)= -alpha;
eta(3) = 0.0; zeta(3) =
beta;
234 void gauss_points_hexa8(Epetra_SerialDenseVector & weight, Epetra_SerialDenseVector & xi, Epetra_SerialDenseVector &
eta, Epetra_SerialDenseVector & zeta){
235 weight.Resize(8); xi.Resize(8); eta.Resize(8); zeta.Resize(8);
237 double a = 1.0/std::sqrt(3.0);
238 xi(0)=-a;
eta(0)=-a; zeta(0)=-a; weight(0)=1.0;
239 xi(1)=-a;
eta(1)=-a; zeta(1)=a; weight(1)=1.0;
240 xi(2)=-a;
eta(2)=a; zeta(2)=-a; weight(2)=1.0;
241 xi(3)=-a;
eta(3)=a; zeta(3)=a; weight(3)=1.0;
242 xi(4)= a;
eta(4)=-a; zeta(4)=-a; weight(4)=1.0;
243 xi(5)= a;
eta(5)=-a; zeta(5)=a; weight(5)=1.0;
244 xi(6)= a;
eta(6)=a; zeta(6)=-a; weight(6)=1.0;
245 xi(7)= a;
eta(7)=a; zeta(7)=a; weight(7)=1.0;
248 void gauss_points_hexa27(Epetra_SerialDenseVector & weight, Epetra_SerialDenseVector & xi, Epetra_SerialDenseVector &
eta, Epetra_SerialDenseVector & zeta){
249 weight.Resize(27); xi.Resize(27); eta.Resize(27); zeta.Resize(27);
251 double a = std::sqrt(3.0/5.0);
double c1 = 5.0/9.0;
double c2 = 8.0/9.0;
252 xi(0) = -a;
eta(0) = -a; zeta(0) = -a; weight(0) = c1*c1*c1;
253 xi(1) = -a;
eta(1) = -a; zeta(1) = 0.0; weight(1) = c1*c1*c2;
254 xi(2) = -a;
eta(2) = -a; zeta(2) = a; weight(2) = c1*c1*c1;
255 xi(3) = -a;
eta(3) = 0.0; zeta(3) = -a; weight(3) = c1*c1*c2;
256 xi(4) = -a;
eta(4) = 0.0; zeta(4) = 0.0; weight(4) = c1*c2*c2;
257 xi(5) = -a;
eta(5) = 0.0; zeta(5) = a; weight(5) = c1*c1*c2;
258 xi(6) = -a;
eta(6) = a; zeta(6) = -a; weight(6) = c1*c1*c1;
259 xi(7) = -a;
eta(7) = a; zeta(7) = 0.0; weight(7) = c1*c1*c2;
260 xi(8) = -a;
eta(8) = a; zeta(8) = a; weight(8) = c1*c1*c1;
261 xi(9) = 0.0;
eta(9) = -a; zeta(9) = -a; weight(9) = c1*c1*c2;
262 xi(10) = 0.0;
eta(10) = -a; zeta(10) = 0.0; weight(10) = c1*c2*c2;
263 xi(11) = 0.0;
eta(11) = -a; zeta(11) = a; weight(11) = c1*c1*c2;
264 xi(12) = 0.0;
eta(12) = 0.0; zeta(12) = -a; weight(12) = c1*c2*c2;
265 xi(13) = 0.0;
eta(13) = 0.0; zeta(13) = 0.0; weight(13) = c2*c2*c2;
266 xi(14) = 0.0;
eta(14) = 0.0; zeta(14) = a; weight(14) = c1*c2*c2;
267 xi(15) = 0.0;
eta(15) = a; zeta(15) = -a; weight(15) = c1*c1*c2;
268 xi(16) = 0.0;
eta(16) = a; zeta(16) = 0.0; weight(16) = c1*c2*c2;
269 xi(17) = 0.0;
eta(17) = a; zeta(17) = a; weight(17) = c1*c1*c2;
270 xi(18) = a;
eta(18) = -a; zeta(18) = -a; weight(18) = c1*c1*c1;
271 xi(19) = a;
eta(19) = -a; zeta(19) = 0.0; weight(19) = c1*c1*c2;
272 xi(20) = a;
eta(20) = -a; zeta(20) = a; weight(20) = c1*c1*c1;
273 xi(21) = a;
eta(21) = 0.0; zeta(21) = -a; weight(21) = c1*c1*c2;
274 xi(22) = a;
eta(22) = 0.0; zeta(22) = 0.0; weight(22) = c1*c2*c2;
275 xi(23) = a;
eta(23) = 0.0; zeta(23) = a; weight(23) = c1*c1*c2;
276 xi(24) = a;
eta(24) = a; zeta(24) = -a; weight(24) = c1*c1*c1;
277 xi(25) = a;
eta(25) = a; zeta(25) = 0.0; weight(25) = c1*c1*c2;
278 xi(26) = a;
eta(26) = a; zeta(26) = a; weight(26) = c1*c1*c1;
281 void gauss_points_tetra1(Epetra_SerialDenseVector & weight, Epetra_SerialDenseVector & xi, Epetra_SerialDenseVector &
eta, Epetra_SerialDenseVector & zeta){
283 xi.Resize(1); eta.Resize(1); zeta.Resize(1);
289 void gauss_points_tetra4(Epetra_SerialDenseVector & weight, Epetra_SerialDenseVector & xi, Epetra_SerialDenseVector &
eta, Epetra_SerialDenseVector & zeta){
290 weight.Resize(4); xi.Resize(4); eta.Resize(4); zeta.Resize(4);
291 double alpha = (5.0 - sqrt(5.0))/20.0;
292 double beta = (5.0 + 3.0*sqrt(5.0))/20.0;
293 weight(0) = 1.0/24.0; weight(1) = 1.0/24.0; weight(2) = 1.0/24.0; weight(3) = 1.0/24.0;
294 xi(0) = alpha;
eta(0) = alpha; zeta(0) = alpha;
295 xi(1) = alpha;
eta(1) = alpha; zeta(1) =
beta;
296 xi(2) = alpha;
eta(2) =
beta; zeta(2) = alpha;
297 xi(3) =
beta;
eta(3) = alpha; zeta(3) = alpha;
299 void gauss_points_tetra5(Epetra_SerialDenseVector & weight, Epetra_SerialDenseVector & xi, Epetra_SerialDenseVector &
eta, Epetra_SerialDenseVector & zeta){
300 weight.Resize(5);xi.Resize(5); eta.Resize(5); zeta.Resize(5);
301 xi(0) = 0.25; xi(1) = 0.50; xi(3) = 0.1666666666666667; xi(4) = 0.1666666666666667; xi(5) = 0.1666666666666667;
302 eta(0) = 0.25;
eta(1) = 0.1666666666666667;
eta(2) = 0.1666666666666667;
eta(3) = 0.1666666666666667;
eta(4) = 0.50;
303 zeta(0) = 0.25; zeta(1) = 0.1666666666666667; zeta(2) = 0.1666666666666667; zeta(3) = 0.50; zeta(4) = 0.1666666666666667;
304 weight(0) = -0.8000000000000000/6.0; weight(1) = 0.45/6.0; weight(2) = 0.45/6.0; weight(3) = 0.45/6.0; weight(4) =0.45/6.0;
307 void gauss_points_tetra11(Epetra_SerialDenseVector & weight, Epetra_SerialDenseVector & xi, Epetra_SerialDenseVector &
eta, Epetra_SerialDenseVector & zeta){
308 weight.Resize(11); xi.Resize(11); eta.Resize(11); zeta.Resize(11);
309 xi(0) = 0.25; xi(1) = 0.7857142857142857; xi(2) = 0.0714285714285714; xi(3) = 0.0714285714285714; xi(4) = 0.0714285714285714; xi(5) = 0.1005964238332008; xi(6) = 0.3994035761667992; xi(7) = 0.3994035761667992; xi(8) = 0.3994035761667992; xi(9) = 0.1005964238332008; xi(10) = 0.1005964238332008;
310 eta(0) = 0.25;
eta(1) = 0.0714285714285714;
eta(2) = 0.0714285714285714;
eta(3) = 0.0714285714285714;
eta(4) = 0.7857142857142857;
eta(5) = 0.3994035761667992;
eta(6) = 0.1005964238332008;
eta(7) = 0.3994035761667992;
eta(8) = 0.1005964238332008;
eta(9) = 0.3994035761667992;
eta(10) = 0.1005964238332008;
311 zeta(0) = 0.25; zeta(1) = 0.0714285714285714; zeta(2) = 0.0714285714285714; zeta(3) = 0.7857142857142857; zeta(4) = 0.0714285714285714; zeta(5) = 0.3994035761667992; zeta(6) = 0.3994035761667992; zeta(7) = 0.1005964238332008; zeta(8) = 0.1005964238332008; zeta(9) = 0.1005964238332008; zeta(10) = 0.3994035761667992;
312 weight(0) = -0.0789333333333333/6.0; weight(1) = 0.0457333333333333/6.0; weight(2) = 0.0457333333333333/6.0; weight(3) = 0.0457333333333333/6.0; weight(4) = 0.0457333333333333/6.0; weight(5) = 0.1493333333333333/6.0; weight(6) = 0.1493333333333333/6.0; weight(7) = 0.1493333333333333/6.0; weight(8) = 0.1493333333333333/6.0; weight(9) = 0.1493333333333333/6.0; weight(10) = 0.1493333333333333/6.0;
315 int pnpoly(
int & nvert, Epetra_SerialDenseVector & vertx, Epetra_SerialDenseVector & verty,
double & testx,
double & testy){
318 for (i = 0, j = nvert-1; i < nvert; j = i++) {
319 a = (verty[
j]-verty[
i])/(vertx[j]-vertx[i]);
320 b = verty[
i]-a*vertx[
i];
321 if (testy - a*testx - b == 0){
324 if ( ((verty[i]>testy) != (verty[j]>testy)) &&
325 (testx < (vertx[
j]-vertx[
i]) * (testy-verty[i]) / (verty[
j]-verty[
i]) + vertx[i]) ){
void gauss_points_quad1(Epetra_SerialDenseVector &weight, Epetra_SerialDenseVector &xi, Epetra_SerialDenseVector &eta)
void shape_functions(Epetra_SerialDenseVector &N, double &xi, double &eta)
void shape_functions(Epetra_SerialDenseVector &N, double &xi, double &eta, double &zeta)
void gauss_points_quad9(Epetra_SerialDenseVector &weight, Epetra_SerialDenseVector &xi, Epetra_SerialDenseVector &eta)
void d_shape_functions(Epetra_SerialDenseMatrix &D, double &xi, double &eta)
void dX_shape_functions(Epetra_SerialDenseMatrix &D, Epetra_SerialDenseMatrix &DX, double &jac, Epetra_SerialDenseMatrix &JacobianMatrix)
void shape_functions(Epetra_SerialDenseVector &N, double &xi, double &eta)
void d_shape_functions(Epetra_SerialDenseMatrix &D, double &xi, double &eta, double &zeta)
void gauss_points_tetra1(Epetra_SerialDenseVector &weight, Epetra_SerialDenseVector &xi, Epetra_SerialDenseVector &eta, Epetra_SerialDenseVector &zeta)
void dX_shape_functions(Epetra_SerialDenseMatrix &D, Epetra_SerialDenseMatrix JacobianMatrix, double &jac, Epetra_SerialDenseMatrix &DX)
void d_shape_functions(Epetra_SerialDenseMatrix &D, double &xi, double &eta, double &zeta)
void jacobian_det(Epetra_SerialDenseMatrix &JacobianMatrix, double &jac)
void gauss_points_tetra5(Epetra_SerialDenseVector &weight, Epetra_SerialDenseVector &xi, Epetra_SerialDenseVector &eta, Epetra_SerialDenseVector &zeta)
void gauss_points_tri3(Epetra_SerialDenseVector &weight, Epetra_SerialDenseVector &xi, Epetra_SerialDenseVector &eta)
void dX_shape_functions(Epetra_SerialDenseMatrix &D, Epetra_SerialDenseMatrix &DX, double &jac, Epetra_SerialDenseMatrix &JacobianMatrix)
void shape_functions(Epetra_SerialDenseVector &N, double &xi, double &eta, double &zeta)
void gauss_points_hexa8(Epetra_SerialDenseVector &weight, Epetra_SerialDenseVector &xi, Epetra_SerialDenseVector &eta, Epetra_SerialDenseVector &zeta)
void gauss_points_tri4(Epetra_SerialDenseVector &weight, Epetra_SerialDenseVector &xi, Epetra_SerialDenseVector &eta)
void jacobian_det_faces(Epetra_SerialDenseMatrix &JacobianMatrix, double &jac)
void shape_functions(Epetra_SerialDenseVector &N, double &xi, double &eta)
void gauss_points_hexa4(Epetra_SerialDenseVector &weight, Epetra_SerialDenseVector &xi, Epetra_SerialDenseVector &eta, Epetra_SerialDenseVector &zeta)
void gauss_points_tetra4(Epetra_SerialDenseVector &weight, Epetra_SerialDenseVector &xi, Epetra_SerialDenseVector &eta, Epetra_SerialDenseVector &zeta)
void gauss_points_tri1(Epetra_SerialDenseVector &weight, Epetra_SerialDenseVector &xi, Epetra_SerialDenseVector &eta)
void gauss_points_hexa27(Epetra_SerialDenseVector &weight, Epetra_SerialDenseVector &xi, Epetra_SerialDenseVector &eta, Epetra_SerialDenseVector &zeta)
void dX_shape_functions(Epetra_SerialDenseMatrix &D, Epetra_SerialDenseMatrix &DX, double &jac, Epetra_SerialDenseMatrix &JacobianMatrix)
void d_shape_functions(Epetra_SerialDenseMatrix &D, double &xi, double &eta, double &zeta)
void d_shape_functions(Epetra_SerialDenseMatrix &D, double &xi, double &eta)
void gauss_points_tetra11(Epetra_SerialDenseVector &weight, Epetra_SerialDenseVector &xi, Epetra_SerialDenseVector &eta, Epetra_SerialDenseVector &zeta)
void gauss_points_quad4(Epetra_SerialDenseVector &weight, Epetra_SerialDenseVector &xi, Epetra_SerialDenseVector &eta)
void jacobian_matrix(Epetra_SerialDenseMatrix &X, Epetra_SerialDenseMatrix &D, Epetra_SerialDenseMatrix &JacobianMatrix)
void d_shape_functions(Epetra_SerialDenseMatrix &D, double &xi, double &eta)
int pnpoly(int &nvert, Epetra_SerialDenseVector &vertx, Epetra_SerialDenseVector &verty, double &testx, double &testy)
void shape_functions(Epetra_SerialDenseVector &N, double &xi, double &eta, double &zeta)