Actual source code: ex69.c
1: static char help[] = "The variable-viscosity Stokes Problem in 2d with finite elements.\n\
2: We solve the Stokes problem in a square domain\n\
3: and compare against exact solutions from Mirko Velic.\n\n\n";
5: /* We discretize the variable-viscosity Stokes problem using the finite element method on an unstructured mesh. The weak form equations are
6: \begin{align*}
7: (\nabla v, \mu (\nabla u + {\nabla u}^T)) - (\nabla\cdot v, p) + (v, f) &= 0 \\
8: (q, \nabla\cdot u) &= 0
9: \end{align*}
10: Free slip conditions for velocity are enforced on every wall. The pressure is constrained to have zero integral over the domain.
12: To produce nice output, use
14: -dm_refine 3 -show_error -dm_view hdf5:sol1.h5 -error_vec_view hdf5:sol1.h5::append -sol_vec_view hdf5:sol1.h5::append -exact_vec_view hdf5:sol1.h5::append
15: */
17: #include <petscdmplex.h>
18: #include <petscsnes.h>
19: #include <petscds.h>
20: #include <petscbag.h>
22: typedef enum {
23: SOLKX,
24: SOLCX,
25: NUM_SOL_TYPES
26: } SolutionType;
27: const char *solTypes[NUM_SOL_TYPES + 1] = {"solkx", "solcx", "unknown"};
29: typedef struct {
30: PetscInt n, m; /* x- and y-wavelengths for variation across the domain */
31: /* SolKx */
32: PetscReal B; /* Exponential scale for viscosity variation */
33: /* SolCx */
34: PetscReal etaA, etaB; /* Two viscosities for discontinuous change */
35: PetscReal xc; /* The location of viscosity jump */
36: } Parameter;
38: typedef struct {
39: SolutionType solType; /* The type of exact solution */
40: PetscBag bag; /* Holds problem parameters */
41: } AppCtx;
43: static PetscErrorCode zero(PetscInt dim, PetscReal time, const PetscReal coords[], PetscInt Nc, PetscScalar *u, void *ctx)
44: {
45: PetscInt c;
46: for (c = 0; c < Nc; ++c) u[c] = 0.0;
47: return PETSC_SUCCESS;
48: }
49: static PetscErrorCode one(PetscInt dim, PetscReal time, const PetscReal coords[], PetscInt Nc, PetscScalar *u, void *ctx)
50: {
51: PetscInt c;
52: for (c = 0; c < Nc; ++c) u[c] = 1.0;
53: return PETSC_SUCCESS;
54: }
56: static void f0_u(PetscInt dim, PetscInt Nf, PetscInt NfAux, const PetscInt uOff[], const PetscInt uOff_x[], const PetscScalar u[], const PetscScalar u_t[], const PetscScalar u_x[], const PetscInt aOff[], const PetscInt aOff_x[], const PetscScalar a[], const PetscScalar a_t[], const PetscScalar a_x[], PetscReal t, const PetscReal x[], PetscInt numConstants, const PetscScalar constants[], PetscScalar f0[])
57: {
58: f0[0] = 0.0;
59: f0[1] = -PetscSinScalar(constants[1] * PETSC_PI * x[1]) * PetscCosScalar(constants[0] * PETSC_PI * x[0]);
60: }
62: static void stokes_momentum_kx(PetscInt dim, PetscInt Nf, PetscInt NfAux, const PetscInt uOff[], const PetscInt uOff_x[], const PetscScalar u[], const PetscScalar u_t[], const PetscScalar u_x[], const PetscInt aOff[], const PetscInt aOff_x[], const PetscScalar a[], const PetscScalar a_t[], const PetscScalar a_x[], PetscReal t, const PetscReal x[], PetscInt numConstants, const PetscScalar constants[], PetscScalar f1[])
63: {
64: const PetscReal mu = PetscExpReal(2.0 * PetscRealPart(constants[2]) * x[0]);
65: PetscInt c, d;
67: for (c = 0; c < dim; ++c) {
68: for (d = 0; d < dim; ++d) f1[c * dim + d] = mu * (u_x[c * dim + d] + u_x[d * dim + c]);
69: f1[c * dim + c] -= u[dim];
70: }
71: }
73: static void stokes_momentum_cx(PetscInt dim, PetscInt Nf, PetscInt NfAux, const PetscInt uOff[], const PetscInt uOff_x[], const PetscScalar u[], const PetscScalar u_t[], const PetscScalar u_x[], const PetscInt aOff[], const PetscInt aOff_x[], const PetscScalar a[], const PetscScalar a_t[], const PetscScalar a_x[], PetscReal t, const PetscReal x[], PetscInt numConstants, const PetscScalar constants[], PetscScalar f1[])
74: {
75: const PetscReal mu = x[0] < PetscRealPart(constants[4]) ? PetscRealPart(constants[2]) : PetscRealPart(constants[3]);
76: PetscInt c, d;
78: for (c = 0; c < dim; ++c) {
79: for (d = 0; d < dim; ++d) f1[c * dim + d] = mu * (u_x[c * dim + d] + u_x[d * dim + c]);
80: f1[c * dim + c] -= u[dim];
81: }
82: }
84: static void stokes_mass(PetscInt dim, PetscInt Nf, PetscInt NfAux, const PetscInt uOff[], const PetscInt uOff_x[], const PetscScalar u[], const PetscScalar u_t[], const PetscScalar u_x[], const PetscInt aOff[], const PetscInt aOff_x[], const PetscScalar a[], const PetscScalar a_t[], const PetscScalar a_x[], PetscReal t, const PetscReal x[], PetscInt numConstants, const PetscScalar constants[], PetscScalar f0[])
85: {
86: PetscInt d;
87: f0[0] = 0.0;
88: for (d = 0; d < dim; ++d) f0[0] -= u_x[d * dim + d];
89: }
91: static void f1_zero(PetscInt dim, PetscInt Nf, PetscInt NfAux, const PetscInt uOff[], const PetscInt uOff_x[], const PetscScalar u[], const PetscScalar u_t[], const PetscScalar u_x[], const PetscInt aOff[], const PetscInt aOff_x[], const PetscScalar a[], const PetscScalar a_t[], const PetscScalar a_x[], PetscReal t, const PetscReal x[], PetscInt numConstants, const PetscScalar constants[], PetscScalar f1[])
92: {
93: PetscInt d;
94: for (d = 0; d < dim * dim; ++d) f1[d] = 0.0;
95: }
97: /* < q, \nabla\cdot u >, J_{pu} */
98: static void stokes_mass_J(PetscInt dim, PetscInt Nf, PetscInt NfAux, const PetscInt uOff[], const PetscInt uOff_x[], const PetscScalar u[], const PetscScalar u_t[], const PetscScalar u_x[], const PetscInt aOff[], const PetscInt aOff_x[], const PetscScalar a[], const PetscScalar a_t[], const PetscScalar a_x[], PetscReal t, PetscReal u_tShift, const PetscReal x[], PetscInt numConstants, const PetscScalar constants[], PetscScalar g1[])
99: {
100: PetscInt d;
101: for (d = 0; d < dim; ++d) g1[d * dim + d] = -1.0; /* \frac{\partial\phi^{u_d}}{\partial x_d} */
102: }
104: /* -< \nabla\cdot v, p >, J_{up} */
105: static void stokes_momentum_pres_J(PetscInt dim, PetscInt Nf, PetscInt NfAux, const PetscInt uOff[], const PetscInt uOff_x[], const PetscScalar u[], const PetscScalar u_t[], const PetscScalar u_x[], const PetscInt aOff[], const PetscInt aOff_x[], const PetscScalar a[], const PetscScalar a_t[], const PetscScalar a_x[], PetscReal t, PetscReal u_tShift, const PetscReal x[], PetscInt numConstants, const PetscScalar constants[], PetscScalar g2[])
106: {
107: PetscInt d;
108: for (d = 0; d < dim; ++d) g2[d * dim + d] = -1.0; /* \frac{\partial\psi^{u_d}}{\partial x_d} */
109: }
111: /* < \nabla v, \nabla u + {\nabla u}^T >, J_{uu}
112: This just gives \nabla u, give the perdiagonal for the transpose */
113: static void stokes_momentum_vel_J_kx(PetscInt dim, PetscInt Nf, PetscInt NfAux, const PetscInt uOff[], const PetscInt uOff_x[], const PetscScalar u[], const PetscScalar u_t[], const PetscScalar u_x[], const PetscInt aOff[], const PetscInt aOff_x[], const PetscScalar a[], const PetscScalar a_t[], const PetscScalar a_x[], PetscReal t, PetscReal u_tShift, const PetscReal x[], PetscInt numConstants, const PetscScalar constants[], PetscScalar g3[])
114: {
115: const PetscReal mu = PetscExpReal(2.0 * PetscRealPart(constants[2]) * x[0]);
116: PetscInt cI, d;
118: for (cI = 0; cI < dim; ++cI) {
119: for (d = 0; d < dim; ++d) {
120: g3[((cI * dim + cI) * dim + d) * dim + d] += mu; /*g3[cI, cI, d, d]*/
121: g3[((cI * dim + d) * dim + d) * dim + cI] += mu; /*g3[cI, d, d, cI]*/
122: }
123: }
124: }
125: static void stokes_momentum_vel_J_cx(PetscInt dim, PetscInt Nf, PetscInt NfAux, const PetscInt uOff[], const PetscInt uOff_x[], const PetscScalar u[], const PetscScalar u_t[], const PetscScalar u_x[], const PetscInt aOff[], const PetscInt aOff_x[], const PetscScalar a[], const PetscScalar a_t[], const PetscScalar a_x[], PetscReal t, PetscReal u_tShift, const PetscReal x[], PetscInt numConstants, const PetscScalar constants[], PetscScalar g3[])
126: {
127: const PetscReal mu = x[0] < PetscRealPart(constants[4]) ? PetscRealPart(constants[2]) : PetscRealPart(constants[3]);
128: PetscInt cI, d;
130: for (cI = 0; cI < dim; ++cI) {
131: for (d = 0; d < dim; ++d) {
132: g3[((cI * dim + cI) * dim + d) * dim + d] += mu; /*g3[cI, cI, d, d]*/
133: g3[((cI * dim + d) * dim + d) * dim + cI] += mu; /*g3[cI, d, d, cI]*/
134: }
135: }
136: }
138: /* 1/mu < q, I q >, Jp_{pp} */
139: static void stokes_identity_J_kx(PetscInt dim, PetscInt Nf, PetscInt NfAux, const PetscInt uOff[], const PetscInt uOff_x[], const PetscScalar u[], const PetscScalar u_t[], const PetscScalar u_x[], const PetscInt aOff[], const PetscInt aOff_x[], const PetscScalar a[], const PetscScalar a_t[], const PetscScalar a_x[], PetscReal t, PetscReal u_tShift, const PetscReal x[], PetscInt numConstants, const PetscScalar constants[], PetscScalar g0[])
140: {
141: const PetscReal mu = PetscExpReal(2.0 * PetscRealPart(constants[2]) * x[0]);
142: g0[0] = 1.0 / mu;
143: }
145: static void stokes_identity_J_cx(PetscInt dim, PetscInt Nf, PetscInt NfAux, const PetscInt uOff[], const PetscInt uOff_x[], const PetscScalar u[], const PetscScalar u_t[], const PetscScalar u_x[], const PetscInt aOff[], const PetscInt aOff_x[], const PetscScalar a[], const PetscScalar a_t[], const PetscScalar a_x[], PetscReal t, PetscReal u_tShift, const PetscReal x[], PetscInt numConstants, const PetscScalar constants[], PetscScalar g0[])
146: {
147: const PetscReal mu = x[0] < PetscRealPart(constants[4]) ? PetscRealPart(constants[2]) : PetscRealPart(constants[3]);
148: g0[0] = 1.0 / mu;
149: }
151: /*
152: SolKxSolution - Exact Stokes solutions for exponentially varying viscosity
154: Input Parameters:
155: + pos - The (x,z) coordinate at which to evaluate the solution
156: . n - The constant defining the x-dependence of the forcing function
157: . m - The constant defining the z-dependence of the forcing function
158: - B - The viscosity coefficient
160: Output Parameters:
161: + vel - The (x,z)-velocity at (x,z), or NULL
162: . p - The pressure at (x,z), or NULL
163: . s - The total stress (sigma_xx, sigma_xz, sigma_zz) at (x,z), or NULL
164: . gamma - The strain rate, or NULL
165: - mu - The viscosity at (x,z), or NULL
167: Note:
168: $ The domain is the square 0 <= x,z <= 1. We solve the Stokes equation for incompressible flow with free-slip boundary
169: $ conditions everywhere. The forcing term f is given by
170: $
171: $ fx = 0
172: $ fz = sigma*sin(km*z)*cos(kn*x)
173: $
174: $ where
175: $
176: $ km = m*Pi (m may be non-integral)
177: $ kn = n*Pi
178: $
179: $ meaning that the density rho is -sigma*sin(km*z)*cos(kn*x). Here we set sigma = 1.
180: $ The viscosity eta is exp(2*B*x).
181: */
182: static PetscErrorCode SolKxSolution(const PetscReal pos[], PetscReal m, PetscInt n, PetscReal B, PetscScalar vel[], PetscScalar *p, PetscScalar s[], PetscScalar gamma[], PetscScalar *mu)
183: {
184: PetscReal sigma = 1.0;
185: PetscReal Z;
186: PetscReal u1, u2, u3, u4, u5, u6;
187: PetscReal sum1, sum2, sum3, sum4, sum5, sum6;
188: PetscReal kn, km, x, z;
189: PetscReal _PC1, _PC2, _PC3, _PC4;
190: PetscReal Rp, UU, VV;
191: PetscReal a, b, r, _aa, _bb, AA, BB, Rm;
192: PetscReal num1, num2, num3, num4, den1;
194: PetscReal t1, t2, t3, t4, t5, t6, t7, t8, t9, t10;
195: PetscReal t11, t12, t13, t14, t15, t16, t17, t18, t19, t20;
196: PetscReal t21, t22, t23, t24, t25, t26, t27, t28, t29, t30;
197: PetscReal t31, t32, t33, t34, t35, t36, t37, t38, t39, t40;
198: PetscReal t41, t42, t43, t44, t45, t46, t47, t49, t51, t53;
199: PetscReal t56, t58, t61, t62, t63, t64, t65, t66, t67, t68;
200: PetscReal t69, t70, t71, t72, t73, t74, t75, t76, t77, t78;
201: PetscReal t79, t80, t81, t82, t83, t84, t85, t86, t87, t88;
202: PetscReal t89, t90, t91, t92, t93, t94, t95, t96, t97, t99;
203: PetscReal t100, t101, t103, t104, t105, t106, t107, t108, t109, t110;
204: PetscReal t111, t112, t113, t114, t115, t116, t117, t118, t119, t120;
205: PetscReal t121, t124, t125, t126, t127, t129, t130, t132, t133, t135;
206: PetscReal t136, t138, t140, t141, t142, t143, t152, t160, t162;
208: PetscFunctionBegin;
209: /*************************************************************************/
210: /*************************************************************************/
211: /* rho = -sin(km*z)*cos(kn*x) */
212: x = pos[0];
213: z = pos[1];
214: Z = PetscExpReal(2.0 * B * x);
215: km = m * PETSC_PI; /* solution valid for km not zero -- should get trivial solution if km=0 */
216: kn = (PetscReal)n * PETSC_PI;
217: /*************************************************************************/
218: /*************************************************************************/
219: a = B * B + km * km;
220: b = 2.0 * km * B;
221: r = PetscSqrtReal(a * a + b * b);
222: Rp = PetscSqrtReal((r + a) / 2.0);
223: Rm = PetscSqrtReal((r - a) / 2.0);
224: UU = Rp - B;
225: VV = Rp + B;
227: sum1 = 0.0;
228: sum2 = 0.0;
229: sum3 = 0.0;
230: sum4 = 0.0;
231: sum5 = 0.0;
232: sum6 = 0.0;
233: /*sum7=0.0;*/
235: /*******************************************/
236: /* calculate the constants */
237: /*******************************************/
239: t1 = kn * kn;
240: t4 = km * km;
241: t5 = t4 + t1;
242: t6 = t5 * t5;
243: t8 = pow(km + kn, 0.2e1);
244: t9 = B * B;
245: t16 = pow(km - kn, 0.2e1);
246: _aa = -0.4e1 * B * t1 * sigma * t5 / (t6 + 0.4e1 * t8 * t9) / (t6 + 0.4e1 * t16 * t9);
248: t2 = km * km;
249: t3 = kn * kn;
250: t5 = pow(t2 + t3, 0.2e1);
251: t6 = km - kn;
252: t7 = km + kn;
253: t9 = B * B;
254: t13 = t7 * t7;
255: t19 = t6 * t6;
256: _bb = sigma * kn * (t5 + 0.4e1 * t6 * t7 * t9) / (t5 + 0.4e1 * t13 * t9) / (t5 + 0.4e1 * t19 * t9);
258: AA = _aa;
259: BB = _bb;
261: /*******************************************/
262: /* calculate the velocities etc */
263: /*******************************************/
264: t1 = Rm * Rm;
265: t2 = B - Rp;
266: t4 = Rp + B;
267: t6 = UU * x;
268: t9 = PetscExpReal(t6 - 0.4e1 * Rp);
269: t13 = B * B;
270: t16 = Rp * t1;
271: t18 = Rp * Rp;
272: t19 = B * t18;
273: t20 = t13 * Rp;
274: t22 = kn * kn;
275: t24 = B * t1;
276: t32 = 0.8e1 * t13 * BB * kn * Rp;
277: t34 = 0.2e1 * Rm;
278: t35 = PetscCosReal(t34);
279: t37 = Rp * Rm;
280: t49 = PetscSinReal(t34);
281: t63 = PetscExpReal(t6 - 0.2e1 * Rp);
282: t65 = Rm * t2;
283: t67 = 0.2e1 * B * kn;
284: t68 = B * Rm;
285: t69 = t67 + t68 + t37;
286: t73 = 0.3e1 * t13;
287: t75 = 0.2e1 * B * Rp;
288: t76 = t73 - t75 + t1 - t22 - t18;
289: t78 = t65 * t76 * BB;
290: t80 = Rm - kn;
291: t81 = PetscCosReal(t80);
292: t83 = -t67 + t68 + t37;
293: t88 = Rm + kn;
294: t89 = PetscCosReal(t88);
295: t92 = t65 * t76 * AA;
296: t97 = PetscSinReal(t80);
297: t103 = PetscSinReal(t88);
298: t108 = PetscExpReal(t6 - 0.3e1 * Rp - B);
299: t110 = Rm * t4;
300: t111 = t67 + t68 - t37;
301: t115 = t73 + t75 + t1 - t22 - t18;
302: t117 = t110 * t115 * BB;
303: t120 = -t67 + t68 - t37;
304: t127 = t110 * t115 * AA;
305: t140 = PetscExpReal(t6 - Rp - B);
306: num1 = -0.4e1 * t1 * t2 * t4 * AA * t9 + ((0.2e1 * Rp * (0.3e1 * t13 * B - 0.2e1 * t16 - t19 - 0.2e1 * t20 - B * t22 - t24) * AA - t32) * t35 + (0.2e1 * t37 * (t1 + 0.5e1 * t13 - t22 - t18) * AA - 0.8e1 * B * BB * kn * Rm * Rp) * t49 - 0.2e1 * B * (0.3e1 * t20 - Rp * t22 - t18 * Rp - 0.2e1 * t19 - t16 - 0.2e1 * t24) * AA + t32) * t63 + ((0.2e1 * t65 * t69 * AA + t78) * t81 + (0.2e1 * t65 * t83 * AA - t78) * t89 + (t92 - 0.2e1 * t65 * t69 * BB) * t97 + (t92 + 0.2e1 * t65 * t83 * BB) * t103) * t108 + ((-0.2e1 * t110 * t111 * AA - t117) * t81 + (-0.2e1 * t110 * t120 * AA + t117) * t89 + (-t127 + 0.2e1 * t110 * t111 * BB) * t97 + (-t127 - 0.2e1 * t110 * t120 * BB) * t103) * t140;
308: t1 = Rp + B;
309: t2 = Rm * t1;
310: t3 = B * B;
311: t4 = 0.3e1 * t3;
312: t5 = B * Rp;
313: t7 = Rm * Rm;
314: t8 = kn * kn;
315: t9 = Rp * Rp;
316: t10 = t4 + 0.2e1 * t5 + t7 - t8 - t9;
317: t12 = t2 * t10 * AA;
318: t14 = B * Rm;
319: t20 = UU * x;
320: t23 = PetscExpReal(t20 - 0.4e1 * Rp);
321: t25 = Rp * Rm;
322: t32 = Rm * kn;
323: t37 = 0.2e1 * Rm;
324: t38 = PetscCosReal(t37);
325: t40 = t3 * B;
326: t44 = B * t9;
327: t45 = t3 * Rp;
328: t53 = t3 * BB;
329: t58 = PetscSinReal(t37);
330: t69 = PetscExpReal(t20 - 0.2e1 * Rp);
331: t72 = 0.3e1 * t40 * Rm;
332: t73 = t9 * Rp;
333: t74 = t73 * Rm;
334: t75 = t7 * Rm;
335: t76 = B * t75;
336: t77 = t14 * t8;
337: t78 = Rp * t75;
338: t80 = 0.8e1 * t45 * kn;
339: t81 = t25 * t8;
340: t83 = 0.5e1 * t45 * Rm;
341: t84 = t44 * Rm;
342: t85 = t72 - t74 + t76 - t77 + t78 + t80 - t81 + t83 + t84;
343: t88 = 0.2e1 * t9 * t3;
344: t90 = 0.3e1 * t40 * Rp;
345: t91 = t7 * t3;
346: t93 = 0.2e1 * t5 * t32;
347: t94 = t5 * t7;
348: t95 = t5 * t8;
349: t96 = B * t73;
350: t97 = t7 * t9;
351: t100 = 0.2e1 * t3 * Rm * kn;
352: t101 = -t88 + t90 - t91 - t93 - t94 - t95 - t96 - t97 - t100;
353: t105 = Rm - kn;
354: t106 = PetscCosReal(t105);
355: t108 = t72 - t80 + t83 + t76 + t84 - t81 - t74 + t78 - t77;
356: t110 = -t97 - t96 - t88 + t100 + t90 - t95 + t93 - t91 - t94;
357: t114 = Rm + kn;
358: t115 = PetscCosReal(t114);
359: t121 = PetscSinReal(t105);
360: t127 = PetscSinReal(t114);
361: t132 = PetscExpReal(t20 - 0.3e1 * Rp - B);
362: t135 = 0.2e1 * B * kn;
363: t136 = t135 + t14 - t25;
364: t142 = -t135 + t14 - t25;
365: t152 = t2 * t10 * BB;
366: t162 = PetscExpReal(t20 - Rp - B);
367: num2 = (0.2e1 * t12 - 0.8e1 * t14 * kn * t1 * BB) * t23 + ((-0.2e1 * t25 * (t7 + 0.5e1 * t3 - t8 - t9) * AA + 0.8e1 * B * BB * t32 * Rp) * t38 + (0.2e1 * Rp * (0.3e1 * t40 - 0.2e1 * Rp * t7 - t44 - 0.2e1 * t45 - B * t8 - B * t7) * AA - 0.8e1 * t53 * kn * Rp) * t58 - 0.2e1 * t14 * (-t8 + t9 + t4 + t7) * AA + 0.8e1 * t53 * t32) * t69 + ((-t85 * AA - 0.2e1 * t101 * BB) * t106 + (-t108 * AA + 0.2e1 * t110 * BB) * t115 + (-0.2e1 * t101 * AA + t85 * BB) * t121 + (-0.2e1 * t110 * AA - t108 * BB) * t127) * t132 + ((t12 - 0.2e1 * t2 * t136 * BB) * t106 + (t12 + 0.2e1 * t2 * t142 * BB) * t115 + (-0.2e1 * t2 * t136 * AA - t152) * t121 + (-0.2e1 * t2 * t142 * AA + t152) * t127) * t162;
369: t1 = Rm * Rm;
370: t2 = B - Rp;
371: t4 = Rp + B;
372: t6 = VV * x;
373: t7 = PetscExpReal(-t6);
374: t11 = kn * kn;
375: t13 = B * t1;
376: t14 = Rp * Rp;
377: t15 = B * t14;
378: t16 = B * B;
379: t17 = t16 * Rp;
380: t21 = Rp * t1;
381: t30 = 0.8e1 * t16 * BB * kn * Rp;
382: t32 = 0.2e1 * Rm;
383: t33 = PetscCosReal(t32);
384: t35 = Rp * Rm;
385: t47 = PetscSinReal(t32);
386: t61 = PetscExpReal(-t6 - 0.2e1 * Rp);
387: t63 = Rm * t2;
388: t65 = 0.2e1 * B * kn;
389: t66 = B * Rm;
390: t67 = t65 + t66 + t35;
391: t71 = 0.3e1 * t16;
392: t73 = 0.2e1 * B * Rp;
393: t74 = t71 - t73 + t1 - t11 - t14;
394: t76 = t63 * t74 * BB;
395: t78 = Rm - kn;
396: t79 = PetscCosReal(t78);
397: t81 = -t65 + t66 + t35;
398: t86 = Rm + kn;
399: t87 = PetscCosReal(t86);
400: t90 = t63 * t74 * AA;
401: t95 = PetscSinReal(t78);
402: t101 = PetscSinReal(t86);
403: t106 = PetscExpReal(-t6 - 0.3e1 * Rp - B);
404: t108 = Rm * t4;
405: t109 = t65 + t66 - t35;
406: t113 = t71 + t73 + t1 - t11 - t14;
407: t115 = t108 * t113 * BB;
408: t118 = -t65 + t66 - t35;
409: t125 = t108 * t113 * AA;
410: t138 = PetscExpReal(-t6 - Rp - B);
411: num3 = -0.4e1 * t1 * t2 * t4 * AA * t7 + ((-0.2e1 * Rp * (-B * t11 - t13 - t15 + 0.2e1 * t17 + 0.3e1 * t16 * B + 0.2e1 * t21) * AA + t30) * t33 + (-0.2e1 * t35 * (t1 + 0.5e1 * t16 - t11 - t14) * AA + 0.8e1 * B * BB * kn * Rm * Rp) * t47 + 0.2e1 * B * (0.3e1 * t17 - t21 + 0.2e1 * t15 + 0.2e1 * t13 - Rp * t11 - t14 * Rp) * AA - t30) * t61 + ((-0.2e1 * t63 * t67 * AA - t76) * t79 + (-0.2e1 * t63 * t81 * AA + t76) * t87 + (-t90 + 0.2e1 * t63 * t67 * BB) * t95 + (-t90 - 0.2e1 * t63 * t81 * BB) * t101) * t106 + ((0.2e1 * t108 * t109 * AA + t115) * t79 + (0.2e1 * t108 * t118 * AA - t115) * t87 + (t125 - 0.2e1 * t108 * t109 * BB) * t95 + (t125 + 0.2e1 * t108 * t118 * BB) * t101) * t138;
413: t1 = B - Rp;
414: t2 = Rm * t1;
415: t3 = B * B;
416: t4 = 0.3e1 * t3;
417: t5 = B * Rp;
418: t7 = Rm * Rm;
419: t8 = kn * kn;
420: t9 = Rp * Rp;
421: t10 = t4 - 0.2e1 * t5 + t7 - t8 - t9;
422: t12 = t2 * t10 * AA;
423: t14 = B * Rm;
424: t20 = VV * x;
425: t21 = PetscExpReal(-t20);
426: t23 = Rp * Rm;
427: t30 = Rm * kn;
428: t35 = 0.2e1 * Rm;
429: t36 = PetscCosReal(t35);
430: t40 = B * t9;
431: t41 = t3 * Rp;
432: t43 = t3 * B;
433: t51 = t3 * BB;
434: t56 = PetscSinReal(t35);
435: t67 = PetscExpReal(-t20 - 0.2e1 * Rp);
436: t70 = 0.2e1 * B * kn;
437: t71 = t70 + t14 + t23;
438: t76 = Rm - kn;
439: t77 = PetscCosReal(t76);
440: t79 = -t70 + t14 + t23;
441: t84 = Rm + kn;
442: t85 = PetscCosReal(t84);
443: t91 = t2 * t10 * BB;
444: t93 = PetscSinReal(t76);
445: t99 = PetscSinReal(t84);
446: t104 = PetscExpReal(-t20 - 0.3e1 * Rp - B);
447: t107 = 0.3e1 * t43 * Rm;
448: t108 = t9 * Rp;
449: t109 = t108 * Rm;
450: t110 = t7 * Rm;
451: t111 = B * t110;
452: t112 = t14 * t8;
453: t113 = Rp * t110;
454: t115 = 0.8e1 * t41 * kn;
455: t116 = t23 * t8;
456: t118 = 0.5e1 * t41 * Rm;
457: t119 = t40 * Rm;
458: t120 = t107 + t109 + t111 - t112 - t113 - t115 + t116 - t118 + t119;
459: t124 = 0.2e1 * t3 * Rm * kn;
460: t125 = t5 * t8;
461: t126 = B * t108;
462: t127 = t7 * t9;
463: t129 = 0.2e1 * t9 * t3;
464: t130 = t5 * t7;
465: t132 = 0.3e1 * t43 * Rp;
466: t133 = t7 * t3;
467: t135 = 0.2e1 * t5 * t30;
468: t136 = t124 - t125 - t126 + t127 + t129 - t130 + t132 + t133 - t135;
469: t141 = t107 + t115 - t118 + t111 + t119 + t116 + t109 - t113 - t112;
470: t143 = t132 + t129 - t125 + t133 + t127 - t124 - t130 - t126 + t135;
471: t160 = PetscExpReal(-t20 - Rp - B);
472: num4 = (0.2e1 * t12 - 0.8e1 * t14 * kn * t1 * BB) * t21 + ((0.2e1 * t23 * (t7 + 0.5e1 * t3 - t8 - t9) * AA - 0.8e1 * B * BB * t30 * Rp) * t36 + (-0.2e1 * Rp * (-B * t8 - B * t7 - t40 + 0.2e1 * t41 + 0.3e1 * t43 + 0.2e1 * Rp * t7) * AA + 0.8e1 * t51 * kn * Rp) * t56 - 0.2e1 * t14 * (-t8 + t9 + t4 + t7) * AA + 0.8e1 * t51 * t30) * t67 + ((t12 - 0.2e1 * t2 * t71 * BB) * t77 + (t12 + 0.2e1 * t2 * t79 * BB) * t85 + (-0.2e1 * t2 * t71 * AA - t91) * t93 + (-0.2e1 * t2 * t79 * AA + t91) * t99) * t104 + ((-t120 * AA + 0.2e1 * t136 * BB) * t77 + (-t141 * AA - 0.2e1 * t143 * BB) * t85 + (0.2e1 * t136 * AA + t120 * BB) * t93 + (0.2e1 * t143 * AA - t141 * BB) * t99) * t160;
474: t1 = Rm * Rm;
475: t2 = Rp * Rp;
476: t3 = t1 * t2;
477: t4 = B * B;
478: t5 = t1 * t4;
479: t9 = PetscExpReal(-0.4e1 * Rp);
480: t15 = PetscCosReal(0.2e1 * Rm);
481: t22 = PetscExpReal(-0.2e1 * Rp);
482: den1 = (-0.4e1 * t3 + 0.4e1 * t5) * t9 + ((0.8e1 * t1 + 0.8e1 * t4) * t2 * t15 - 0.8e1 * t5 - 0.8e1 * t2 * t4) * t22 - 0.4e1 * t3 + 0.4e1 * t5;
484: _PC1 = num1 / den1;
485: _PC2 = num2 / den1;
486: _PC3 = num3 / den1;
487: _PC4 = num4 / den1;
489: t1 = Rm * x;
490: t2 = PetscCosReal(t1);
491: t4 = PetscSinReal(t1);
492: t10 = PetscExpReal(-0.2e1 * x * B);
493: t12 = kn * x;
494: t13 = PetscCosReal(t12);
495: t16 = PetscSinReal(t12);
496: u1 = -km * (_PC1 * t2 + _PC2 * t4 + _PC3 * t2 + _PC4 * t4 + t10 * AA * t13 + t10 * BB * t16);
498: t2 = Rm * x;
499: t3 = PetscCosReal(t2);
500: t6 = PetscSinReal(t2);
501: t22 = PetscExpReal(-0.2e1 * x * B);
502: t23 = B * t22;
503: t24 = kn * x;
504: t25 = PetscCosReal(t24);
505: t29 = PetscSinReal(t24);
506: u2 = UU * _PC1 * t3 + UU * _PC2 * t6 - _PC1 * t6 * Rm + _PC2 * t3 * Rm - VV * _PC3 * t3 - VV * _PC4 * t6 - _PC3 * t6 * Rm + _PC4 * t3 * Rm - 0.2e1 * t23 * AA * t25 - 0.2e1 * t23 * BB * t29 - t22 * AA * t29 * kn + t22 * BB * t25 * kn;
508: t3 = PetscExpReal(0.2e1 * x * B);
509: t4 = t3 * B;
510: t8 = km * km;
511: t9 = t3 * t8;
512: t11 = 0.3e1 * t9 * Rm;
513: t12 = Rm * Rm;
514: t14 = t3 * t12 * Rm;
515: t15 = UU * UU;
516: t19 = 0.4e1 * t4 * UU * Rm - t11 - t14 + 0.3e1 * t3 * t15 * Rm;
517: t20 = Rm * x;
518: t21 = PetscSinReal(t20);
519: t27 = 0.2e1 * B * t9;
520: t33 = 0.2e1 * t4 * t12;
521: t36 = 0.3e1 * t3 * UU * t12 - t27 - 0.2e1 * t4 * t15 + 0.3e1 * t9 * UU + t33 - t3 * t15 * UU;
522: t37 = PetscCosReal(t20);
523: t49 = VV * VV;
524: t53 = -0.4e1 * t4 * VV * Rm - t11 + 0.3e1 * t3 * t49 * Rm - t14;
525: t64 = t3 * t49 * VV + t33 - 0.3e1 * t9 * VV - 0.2e1 * t4 * t49 - t27 - 0.3e1 * t3 * VV * t12;
526: t76 = B * t8;
527: t80 = kn * kn;
528: t83 = B * B;
529: t87 = t80 * kn;
530: t90 = kn * x;
531: t91 = PetscSinReal(t90);
532: t106 = PetscCosReal(t90);
533: u3 = -((t19 * t21 + t36 * t37) * _PC1 + (t36 * t21 - t19 * t37) * _PC2 + (t53 * t21 + t64 * t37) * _PC3 + (t64 * t21 - t53 * t37) * _PC4 + (-0.3e1 * t8 * AA * kn - 0.8e1 * t76 * BB - 0.4e1 * BB * B * t80 + 0.4e1 * AA * t83 * kn - AA * t87) * t91 + (-0.4e1 * AA * t80 * B - 0.4e1 * t83 * BB * kn + 0.3e1 * t8 * BB * kn - sigma + BB * t87 - 0.8e1 * t76 * AA) * t106) / km;
535: t3 = PetscExpReal(0.2e1 * x * B);
536: t4 = km * km;
537: t5 = t3 * t4;
538: t6 = Rm * x;
539: t7 = PetscCosReal(t6);
540: t8 = _PC1 * t7;
541: t10 = PetscSinReal(t6);
542: t11 = _PC2 * t10;
543: t13 = _PC3 * t7;
544: t15 = _PC4 * t10;
545: t18 = kn * x;
546: t19 = PetscCosReal(t18);
547: t22 = PetscSinReal(t18);
548: t24 = UU * UU;
549: t25 = t3 * t24;
550: t28 = t3 * UU;
551: t38 = Rm * Rm;
552: t39 = t7 * t38;
553: t42 = t10 * t38;
554: t44 = t5 * t8 + t5 * t11 + t5 * t13 + t5 * t15 + t4 * AA * t19 + t4 * BB * t22 + t25 * t8 + t25 * t11 - 0.2e1 * t28 * _PC1 * t10 * Rm + 0.2e1 * t28 * _PC2 * t7 * Rm - t3 * _PC1 * t39 - t3 * _PC2 * t42;
555: t45 = VV * VV;
556: t46 = t3 * t45;
557: t49 = t3 * VV;
558: t62 = B * B;
559: t78 = kn * kn;
560: t82 = t46 * t13 + t46 * t15 + 0.2e1 * t49 * _PC3 * t10 * Rm - 0.2e1 * t49 * _PC4 * t7 * Rm - t3 * _PC3 * t39 - t3 * _PC4 * t42 + 0.4e1 * t62 * AA * t19 + 0.4e1 * t62 * BB * t22 + 0.4e1 * B * AA * t22 * kn - 0.4e1 * B * BB * t19 * kn - AA * t19 * t78 - BB * t22 * t78;
561: u4 = t44 + t82;
563: t3 = PetscExpReal(0.2e1 * x * B);
564: t4 = t3 * B;
565: t8 = km * km;
566: t9 = t3 * t8;
567: t10 = t9 * Rm;
568: t11 = Rm * Rm;
569: t13 = t3 * t11 * Rm;
570: t14 = UU * UU;
571: t18 = 0.4e1 * t4 * UU * Rm - t10 - t13 + 0.3e1 * t3 * t14 * Rm;
572: t19 = Rm * x;
573: t20 = PetscSinReal(t19);
574: t26 = 0.2e1 * B * t9;
575: t31 = 0.2e1 * t4 * t11;
576: t34 = 0.3e1 * t3 * UU * t11 - t26 - 0.2e1 * t4 * t14 + t9 * UU + t31 - t3 * t14 * UU;
577: t35 = PetscCosReal(t19);
578: t47 = VV * VV;
579: t51 = -0.4e1 * t4 * VV * Rm - t10 + 0.3e1 * t3 * t47 * Rm - t13;
580: t61 = t3 * t47 * VV + t31 - t9 * VV - 0.2e1 * t4 * t47 - t26 - 0.3e1 * t3 * VV * t11;
581: t72 = B * t8;
582: t76 = kn * kn;
583: t79 = B * B;
584: t83 = t76 * kn;
585: t86 = kn * x;
586: t87 = PetscSinReal(t86);
587: t101 = PetscCosReal(t86);
588: u5 = ((t18 * t20 + t34 * t35) * _PC1 + (t34 * t20 - t18 * t35) * _PC2 + (t51 * t20 + t61 * t35) * _PC3 + (t61 * t20 - t51 * t35) * _PC4 + (-t8 * AA * kn - 0.4e1 * t72 * BB - 0.4e1 * BB * B * t76 + 0.4e1 * AA * t79 * kn - AA * t83) * t87 + (-0.4e1 * AA * t76 * B - 0.4e1 * t79 * BB * kn + t8 * BB * kn - sigma + BB * t83 - 0.4e1 * t72 * AA) * t101) / km;
590: t3 = PetscExpReal(0.2e1 * x * B);
591: t4 = UU * UU;
592: t8 = km * km;
593: t9 = t3 * t8;
594: t10 = t9 * Rm;
595: t11 = Rm * Rm;
596: t13 = t3 * t11 * Rm;
597: t14 = t3 * B;
598: t18 = 0.3e1 * t3 * t4 * Rm + t10 - t13 + 0.4e1 * t14 * UU * Rm;
599: t19 = Rm * x;
600: t20 = PetscSinReal(t19);
601: t28 = 0.2e1 * B * t9;
602: t33 = 0.2e1 * t14 * t11;
603: t34 = -0.2e1 * t4 * t14 + 0.3e1 * t3 * UU * t11 - t28 - t3 * t4 * UU - t9 * UU + t33;
604: t35 = PetscCosReal(t19);
605: t47 = VV * VV;
606: t51 = -0.4e1 * t14 * VV * Rm - t13 + t10 + 0.3e1 * t3 * t47 * Rm;
607: t61 = -0.3e1 * t3 * VV * t11 + t33 + t3 * t47 * VV + t9 * VV - 0.2e1 * t14 * t47 - t28;
608: t71 = kn * kn;
609: t74 = B * B;
610: t80 = t71 * kn;
611: t83 = kn * x;
612: t84 = PetscSinReal(t83);
613: t96 = PetscCosReal(t83);
614: u6 = -((t18 * t20 + t34 * t35) * _PC1 + (t34 * t20 - t18 * t35) * _PC2 + (t51 * t20 + t61 * t35) * _PC3 + (t61 * t20 - t51 * t35) * _PC4 + (-0.4e1 * BB * B * t71 + 0.4e1 * AA * t74 * kn + t8 * AA * kn - AA * t80) * t84 + (-0.4e1 * AA * t71 * B - t8 * BB * kn - 0.4e1 * t74 * BB * kn - sigma + BB * t80) * t96) / km;
616: /* SS = sin(km*z)*(exp(UU*x)*(_PC1*cos(Rm*x)+_PC2*sin(Rm*x)) + exp(-VV*x)*(_PC3*cos(Rm*x)+_PC4*sin(Rm*x)) + exp(-2*x*B)*(AA*cos(kn*x)+BB*sin(kn*x))); */
618: /* u1 = Vx, u2 = Vz, u3 = txx, u4 = tzx, u5 = pressure, u6 = tzz */
620: sum5 += u5 * PetscCosReal(km * z); /* pressure */
621: sum6 += u6 * PetscCosReal(km * z); /* zz total stress */
623: u1 *= PetscCosReal(km * z); /* x velocity */
624: sum1 += u1;
625: u2 *= PetscSinReal(km * z); /* z velocity */
626: sum2 += u2;
628: u3 *= PetscCosReal(km * z); /* xx total stress */
629: sum3 += u3;
630: u4 *= PetscSinReal(km * z); /* zx stress */
631: sum4 += u4;
633: /* rho = -sigma*sin(km*z)*cos(kn*x); */ /* density */
634: /* sum7 += rho; */
636: /* Output */
637: if (mu) *mu = Z;
638: if (vel) {
639: vel[0] = sum1;
640: vel[1] = sum2;
641: }
642: if (p) (*p) = sum5;
643: if (s) {
644: s[0] = sum3;
645: s[1] = sum4;
646: s[2] = sum6;
647: }
648: if (gamma) {
649: /* sigma = tau - p, tau = sigma + p, tau[] = 2*eta*gamma[] */
650: gamma[0] = (sum3 + sum5) / (2.0 * Z);
651: gamma[1] = (sum4) / (2.0 * Z);
652: gamma[2] = (sum6 + sum5) / (2.0 * Z);
653: }
654: PetscFunctionReturn(PETSC_SUCCESS);
655: }
657: static PetscErrorCode SolKxSolutionVelocity(PetscInt dim, PetscReal time, const PetscReal x[], PetscInt Nf, PetscScalar v[], void *ctx)
658: {
659: Parameter *s = (Parameter *)ctx;
661: PetscFunctionBegin;
662: PetscCall(SolKxSolution(x, s->m, s->n, s->B, v, NULL, NULL, NULL, NULL));
663: PetscFunctionReturn(PETSC_SUCCESS);
664: }
666: static PetscErrorCode SolKxSolutionPressure(PetscInt dim, PetscReal time, const PetscReal x[], PetscInt Nf, PetscScalar p[], void *ctx)
667: {
668: Parameter *s = (Parameter *)ctx;
670: PetscFunctionBegin;
671: PetscCall(SolKxSolution(x, s->m, s->n, s->B, NULL, p, NULL, NULL, NULL));
672: PetscFunctionReturn(PETSC_SUCCESS);
673: }
675: /*
676: SolCxSolution - Exact Stokes solutions for discontinuous viscosity
678: Input Parameters:
679: + pos - The (x,z) coordinate at which to evaluate the solution
680: . n - The constant defining the x-dependence of the forcing function
681: . m - The constant defining the z-dependence of the forcing function
682: . xc - The x coordinate at which the viscosity is discontinuous
683: . etaA - The viscosity coefficient for x < xc
684: - etaB - The viscosity coefficient for x > xc
686: Output Parameters:
687: + vel - The (x,z)-velocity at (x,z), or NULL
688: . p - The pressure at (x,z), or NULL
689: . s - The total stress (sigma_xx, sigma_xz, sigma_zz) at (x,z), or NULL
690: . gamma - The strain rate, or NULL
691: - mu - The viscosity at (x,z), or NULL
693: Note:
694: $ The domain is the square 0 <= x,z <= 1. We solve the Stokes equation for incompressible flow with free-slip boundary
695: $ conditions everywhere. The forcing term f is given by
696: $
697: $ fx = 0
698: $ fz = sigma*sin(km*z)*cos(kn*x)
699: $
700: $ where
701: $
702: $ km = m*Pi (m may be non-integral)
703: $ kn = n*Pi
704: $
705: $ meaning that the density rho is -sigma*sin(km*z)*cos(kn*x). Here we set sigma = 1.
706: $ The viscosity eta jumps from etaA to etaB at x = xc.
707: */
708: static PetscErrorCode SolCxSolution(const PetscReal pos[], PetscReal m, PetscInt n, PetscReal xc, PetscReal etaA, PetscReal etaB, PetscScalar vel[], PetscScalar *p, PetscScalar s[], PetscScalar gamma[], PetscScalar *mu)
709: {
710: PetscReal _PC1A, _PC2A, _PC3A, _PC4A, _PC1B, _PC2B, _PC3B, _PC4B, _PC1, _PC2, _PC3, _PC4;
711: PetscReal t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15, t16, t17, t18, t19, t20, t21, t22, t23, t24, t25, t26, t27, t28, t29, t30, t31, t32, t33, t34, t35, t36, t37, t38, t39, t40;
712: PetscReal t41, t42, t43, t44, t45, t46, t47, t48, t49, t50, t51, t52, t53, t54, t55, t56, t57, t58, t59, t60, t61, t62, t63, t64, t65, t66, t67, t68, t69, t70, t71, t72, t73, t74, t75, t76, t77, t78, t79, t80;
713: PetscReal t81, t82, t83, t84, t85, t86, t87, t88, t89, t90, t91, t92, t93, t94, t95, t96, t97, t98, t99, t100, t101, t102, t103, t104, t105, t106, t107, t108, t109, t110, t111, t112, t113, t115, t116, t117, t118, t119, t120;
714: PetscReal t121, t122, t123, t124, t125, t126, t127, t128, t129, t130, t131, t132, t133, t134, t135, t136, t137, t138, t139, t140, t141, t142, t143, t144, t145, t146, t147, t148, t149, t150, t151, t152, t153, t154, t155, t156, t157, t158, t159, t160;
715: PetscReal t161, t162, t163, t164, t165, t166, t167, t168, t169, t170, t171, t172, t173, t174, t175, t176, t177, t178, t179, t180, t181, t182, t183, t184, t186, t187, t188, t189, t190, t191, t192, t193, t194, t195, t196, t197, t198, t199;
716: PetscReal t201, t202, t203, t204, t206, t207, t208, t209, t210, t211, t212, t213, t215, t216, t217, t218, t219, t220, t221, t222, t223, t224, t225, t226, t227, t228, t229, t230, t231, t232, t233, t234, t235, t236, t237, t238, t239, t240;
717: PetscReal t241, t242, t243, t244, t245, t246, t247, t248, t249, t250, t251, t252, t253, t254, t255, t256, t257, t258, t259, t260, t261, t262, t263, t264, t265, t267, t268, t269, t270, t272, t273, t274, t275, t276, t277, t278, t279, t280;
718: PetscReal t281, t282, t283, t284, t285, t286, t288, t289, t290, t291, t292, t295, t296, t297, t298, t299, t300, t301, t303, t304, t305, t307, t308, t310, t311, t312, t313, t314, t315, t316, t317, t318, t319, t320;
719: PetscReal t321, t322, t323, t324, t325, t326, t327, t328, t329, t330, t331, t332, t334, t335, t336, t337, t338, t339, t340, t341, t342, t344, t345, t346, t347, t348, t349, t350, t351, t352, t353, t354, t355, t356, t358, t359, t360;
720: PetscReal t361, t362, t363, t364, t365, t366, t367, t368, t369, t370, t371, t372, t373, t374, t375, t376, t377, t378, t379, t380, t381, t382, t383, t384, t385, t386, t387, t389, t390, t391, t393, t394, t395, t396, t397, t398;
721: PetscReal t401, t402, t403, t404, t405, t406, t407, t408, t409, t410, t411, t412, t413, t414, t415, t416, t417, t418, t419, t421, t422, t423, t424, t425, t426, t427, t428, t429, t430, t431, t432, t433, t434, t436, t437, t438, t439, t440;
722: PetscReal t441, t442, t443, t444, t445, t446, t447, t448, t450, t451, t453, t454, t455, t456, t457, t458, t459, t461, t462, t463, t464, t465, t466, t468, t469, t470, t471, t474, t475, t478, t480;
723: PetscReal t482, t483, t484, t485, t488, t489, t490, t492, t493, t495, t497, t498, t499, t501, t502, t503, t504, t505, t507, t508, t509, t510, t511, t512, t513, t515, t518, t520;
724: PetscReal t522, t525, t527, t528, t529, t530, t532, t533, t534, t535, t536, t538, t539, t541, t542, t544, t545, t546, t547, t548, t549, t550, t551, t552, t553, t554, t555, t556, t557, t560;
725: PetscReal t561, t562, t563, t564, t567, t568, t571, t573, t575, t576, t578, t579, t583, t590, t591, t594, t595, t596, t597, t598, t600;
726: PetscReal t601, t602, t604, t606, t607, t608, t611, t613, t615, t616, t617, t619, t621, t623, t624, t625, t626, t627, t629, t630, t632, t633, t634, t638, t639, t640;
727: PetscReal t641, t642, t643, t644, t645, t647, t648, t649, t650, t651, t652, t653, t654, t655, t656, t657, t658, t659, t660, t662, t663, t665, t666, t667, t668, t670, t671, t672, t673, t674, t675, t676, t679, t680;
728: PetscReal t682, t683, t684, t685, t686, t688, t689, t690, t691, t693, t694, t695, t696, t697, t698, t699, t700, t701, t702, t704, t705, t708, t709, t711, t712, t713, t714, t717, t718, t719;
729: PetscReal t721, t722, t723, t726, t727, t728, t730, t733, t734, t735, t736, t737, t738, t739, t740, t741, t744, t745, t746, t749, t750, t752, t753, t754, t755, t757, t758, t759, t760;
730: PetscReal t761, t762, t763, t764, t766, t767, t768, t770, t771, t772, t773, t774, t775, t776, t777, t778, t780, t781, t782, t785, t786, t789, t790, t791, t792, t793, t794, t795, t796, t797, t798, t800;
731: PetscReal t801, t806, t807, t808, t809, t811, t812, t817, t818, t819, t821, t822, t824, t827, t828, t830, t834, t835, t837, t840;
732: PetscReal t842, t843, t844, t845, t846, t849, t850, t853, t854, t855, t857, t858, t859, t860, t863, t864, t867, t868, t869, t873, t874, t877, t878, t879, t880;
733: PetscReal t884, t888, t891, t894, t900, t901, t903, t904, t907, t908, t909, t911, t914, t915, t916, t919, t920;
734: PetscReal t923, t924, t925, t926, t927, t929, t932, t935, t937, t939, t942, t943, t944, t945, t947, t948, t949, t950, t952, t953, t954, t955, t956, t957;
735: PetscReal t961, t964, t965, t966, t967, t968, t969, t971, t972, t974, t977, t978, t981, t983, t987, t988, t992, t993, t994, t997, t998;
736: PetscReal t1001, t1003, t1005, t1006, t1009, t1010, t1012, t1013, t1015, t1016, t1017, t1018, t1020, t1021, t1029, t1031, t1032, t1033, t1040;
737: PetscReal t1041, t1042, t1044, t1047, t1050, t1054, t1055, t1057, t1058, t1063, t1068, t1069, t1070, t1079, t1080;
738: PetscReal t1088, t1089, t1091, t1092, t1094, t1096, t1101, t1102, t1103, t1104, t1105, t1108, t1112, t1113, t1118, t1119, t1120;
739: PetscReal t1121, t1122, t1123, t1124, t1125, t1126, t1127, t1128, t1129, t1130, t1132, t1133, t1134, t1135, t1138, t1139, t1140, t1141, t1142, t1145, t1146, t1148, t1149, t1150, t1153, t1154, t1156, t1157, t1158, t1159;
740: PetscReal t1161, t1162, t1165, t1166, t1170, t1171, t1172, t1173, t1175, t1176, t1178, t1180, t1181, t1182, t1185, t1189, t1192, t1193, t1195, t1196, t1199;
741: PetscReal t1201, t1203, t1209, t1210, t1211, t1213, t1214, t1218, t1221, t1224, t1225, t1226, t1228, t1233, t1234, t1235, t1236, t1237, t1240;
742: PetscReal t1241, t1242, t1243, t1244, t1245, t1248, t1251, t1252, t1257, t1258, t1259, t1260, t1263, t1268, t1269, t1272, t1280;
743: PetscReal t1282, t1283, t1284, t1285, t1287, t1288, t1289, t1292, t1293, t1296, t1297, t1300, t1304, t1307, t1310, t1311, t1312, t1316, t1317, t1320;
744: PetscReal t1321, t1323, t1328, t1330, t1331, t1332, t1333, t1336, t1338, t1343, t1344, t1346, t1349, t1350, t1354;
745: PetscReal t1366, t1369, t1370, t1371, t1376, t1378, t1380, t1383, t1386, t1387, t1388, t1391, t1393, t1399;
746: PetscReal t1411, t1412, t1420, t1427;
747: PetscReal t1450, t1456, t1468, t1472, t1474, t1478;
748: PetscReal t1504, t1511;
749: PetscReal t1545;
750: PetscReal t1564, t1583;
752: PetscReal sum1 = 0.0, sum2 = 0.0, sum3 = 0.0, sum4 = 0.0, sum5 = 0.0, sum6 = 0.0;
753: PetscReal ZA = etaA, ZB = etaB;
754: PetscInt nz = m, nx = n;
755: PetscReal u1, u2, u3, u4, u5, u6, Z, x = pos[0], z = pos[1];
757: PetscFunctionBegin;
758: /* Note that there is no Fourier sum here. */
759: /****************************************************************************************/
760: _PC1A = 0;
761: /****************************************************************************************/
762: t1 = nx * 0.3141592654e1;
763: t2 = PetscSinReal(t1);
764: t3 = nx * t2;
765: t4 = nz * nz;
766: t5 = t4 * t4;
767: t6 = 0.3141592654e1 * 0.3141592654e1;
768: t8 = t3 * t5 * t6;
769: t9 = ZA * xc;
770: t12 = PetscExpReal(xc * nz * 0.3141592654e1);
771: t13 = t12 * t12;
772: t15 = nz * 0.3141592654e1;
773: t16 = PetscExpReal(t15);
774: t17 = t16 * t16;
775: t18 = t17 * t16;
776: t19 = ZB * t13 * t18;
777: t20 = t9 * t19;
778: t23 = ZA * ZA;
779: t24 = nx * nx;
780: t25 = t24 * nx;
781: t26 = t23 * t25;
782: t28 = t13 * t13;
783: t29 = t28 * t13;
784: t33 = nx * ZB;
785: t34 = t1 * xc;
786: t35 = PetscSinReal(t34);
787: t36 = t4 * nz;
788: t37 = t35 * t36;
789: t38 = t33 * t37;
790: t39 = 0.3141592654e1 * ZA;
791: t40 = t13 * t12;
792: t41 = t17 * t40;
793: t45 = ZB * ZB;
794: t46 = t45 * t24;
795: t47 = t46 * t4;
796: t48 = 0.3141592654e1 * xc;
797: t49 = t13 * t17;
798: t53 = xc * xc;
799: t54 = t36 * t53;
800: t56 = t54 * t6 * t45;
801: t57 = PetscCosReal(t34);
802: t58 = t57 * t24;
803: t59 = t28 * t12;
804: t60 = t17 * t59;
805: t61 = t58 * t60;
806: t64 = t25 * t2;
807: t65 = t64 * t15;
808: t72 = nx * t23;
809: t74 = t72 * t2 * t5;
810: t75 = t6 * t53;
811: t76 = t16 * t29;
812: t80 = t23 * nz;
813: t81 = t80 * 0.3141592654e1;
814: t82 = t18 * t28;
815: t86 = nx * t5;
816: t87 = t23 * t6;
817: t89 = xc * t2;
818: t90 = t13 * t18;
819: t91 = t89 * t90;
820: t94 = t28 * t28;
821: t96 = t24 * nz;
822: t98 = t4 * t45;
823: t99 = t98 * 0.3141592654e1;
824: t100 = t58 * t41;
825: t104 = 0.3141592654e1 * t25;
826: t105 = ZA * nz * t104;
827: t106 = t2 * ZB;
828: t110 = t17 * t17;
829: t111 = ZA * t110;
830: t116 = nz * t28;
831: t122 = t64 * t4 * t6;
832: t126 = t23 * t29 * t4;
833: t128 = t24 * xc;
834: t132 = t36 * t23;
835: t133 = t6 * t57;
836: t135 = t128 * t41;
837: t138 = t6 * xc;
838: t142 = t72 * t2;
839: t147 = 0.4e1 * t8 * t20 - 0.2e1 * t26 * t2 * t16 * t29 - 0.8e1 * t38 * t39 * t41 + 0.4e1 * t47 * t48 * t49 - 0.8e1 * t56 * t61 - 0.4e1 * t65 * t20 + 0.2e1 * t26 * t2 * t18 * t28 - 0.4e1 * t74 * t75 * t76 - 0.2e1 * t81 * t64 * t82 - 0.4e1 * t86 * t87 * t91 - t23 * t94 * t96 + 0.8e1 * t99 * t100 - 0.2e1 * t105 * t106 * t82 - 0.4e1 * t38 * t48 * t111 * t12 + 0.2e1 * t116 * ZB * t111 * t24 + 0.4e1 * t122 * t20 + 0.4e1 * t126 * 0.3141592654e1 * t17 * t128 + 0.8e1 * t132 * t133 * t135 + 0.4e1 * t74 * t138 * t76 - 0.2e1 * t142 * t4 * t18 * t28;
840: t149 = ZA * t25 * t2;
841: t150 = ZB * t28;
842: t154 = t35 * t5;
843: t155 = t72 * t154;
844: t156 = t75 * t41;
845: t159 = nx * ZA;
846: t160 = t2 * t36;
847: t161 = t159 * t160;
848: t162 = 0.3141592654e1 * ZB;
849: t163 = t28 * t16;
850: t167 = t23 * t57;
851: t168 = t167 * t24;
852: t169 = nz * t110;
853: t170 = t169 * t40;
854: t173 = ZA * ZB;
855: t174 = t173 * t90;
856: t177 = t36 * 0.3141592654e1;
857: t181 = t80 * t104;
858: t184 = nz * t17;
859: t188 = t17 * t29;
860: t190 = t4 * 0.3141592654e1;
861: t191 = t190 * t24;
862: t206 = t138 * t60;
863: t209 = t23 * t4;
864: t211 = t209 * t6 * t25;
865: t212 = t89 * t76;
866: t216 = ZB * t16 * t29;
867: t217 = t9 * t216;
868: t220 = ZB * t110;
869: t221 = ZA * t24;
870: t222 = t221 * nz;
871: t225 = t132 * t75;
872: t232 = t45 * t28;
873: t233 = t110 * t24;
874: t234 = t233 * nz;
875: t236 = t209 * 0.3141592654e1;
876: t237 = t17 * xc;
877: t239 = t237 * t13 * t24;
878: t242 = -0.2e1 * t149 * t150 * t16 - 0.8e1 * t155 * t156 - 0.2e1 * t161 * t162 * t163 + 0.2e1 * t168 * t170 + 0.2e1 * t65 * t174 - 0.2e1 * t142 * t177 * t76 + 0.4e1 * t181 * t91 - 0.4e1 * t168 * t184 * t59 - 0.4e1 * t188 * t23 * t191 + 0.4e1 * t38 * t48 * ZA * t17 * t40 + 0.4e1 * t49 * t23 * t191 + 0.2e1 * t26 * t2 * t13 * t18 - 0.8e1 * t155 * t206 + 0.4e1 * t211 * t212 - 0.4e1 * t8 * t217 + 0.2e1 * t220 * t222 - 0.8e1 * t225 * t100 + 0.2e1 * t142 * t4 * t16 * t29 + t232 * t234 - 0.4e1 * t236 * t239;
879: t244 = nx * t45;
880: t245 = t244 * t37;
881: t246 = t110 * t40;
882: t251 = t237 * t59;
883: t256 = t64 * t90;
884: t260 = t36 * t45 * t133;
885: t263 = t45 * t57;
886: t264 = t263 * t24;
887: t265 = t169 * t12;
888: t269 = t6 * t36;
889: t270 = t17 * t24;
890: t274 = t110 * t13;
891: t276 = t190 * t128;
892: t279 = nx * t36;
893: t281 = t28 * t40;
894: t282 = t281 * t35;
895: t286 = t138 * t41;
896: t289 = t75 * t60;
897: t296 = t190 * t173;
898: t305 = t86 * t45 * t35;
899: t312 = t33 * t154;
900: t313 = t6 * ZA;
901: t324 = t232 * t270;
902: t327 = -0.2e1 * t245 * t48 * t246 + 0.4e1 * t159 * t37 * t162 * t251 + 0.4e1 * t209 * t75 * t256 + 0.8e1 * t260 * t135 + 0.2e1 * t264 * t265 + 0.32e2 * t9 * t150 * t269 * t270 + 0.4e1 * t274 * t23 * t276 + 0.2e1 * t279 * t45 * t282 * t48 + 0.8e1 * t155 * t286 + 0.8e1 * t155 * t289 - 0.8e1 * t150 * ZA * t96 * t17 + 0.8e1 * t296 * t61 - 0.2e1 * t105 * t106 * t163 - 0.2e1 * t81 * t256 - 0.8e1 * t305 * t156 - 0.4e1 * t33 * t282 * t177 * t9 - 0.16e2 * t312 * t313 * t237 * t40 - 0.4e1 * t168 * t184 * t40 + 0.2e1 * t168 * t265 + 0.16e2 * t269 * t53 * t324;
903: t328 = t3 * t4;
904: t331 = t72 * t37;
905: t332 = t48 * t60;
906: t335 = nz * t94;
907: t345 = t72 * t35;
908: t349 = t173 * t57;
909: t355 = t53 * t17;
910: t364 = t54 * t6 * ZB;
911: t365 = t28 * t17;
912: t369 = xc * ZB;
913: t370 = t269 * t369;
914: t371 = ZA * t57;
915: t373 = t371 * t270 * t40;
916: t385 = nx * t35;
917: t396 = t4 * xc;
918: t397 = t396 * t162;
919: t415 = t37 * t48;
920: t418 = -0.32e2 * t364 * t365 * t221 - 0.16e2 * t370 * t373 - 0.4e1 * t331 * t48 * t41 + 0.4e1 * t86 * t23 * t53 * t6 * t2 * t90 + 0.2e1 * t385 * t177 * t23 * xc * t246 + 0.16e2 * t132 * t53 * t6 * t28 * t270 - 0.4e1 * t397 * t371 * t233 * t12 - 0.12e2 * t173 * t58 * t190 * t251 + 0.2e1 * t385 * t36 * 0.3141592654e1 * t23 * xc * t59 - 0.8e1 * t99 * t61 - 0.2e1 * t244 * t59 * t415;
921: t427 = t371 * t270 * t59;
922: t439 = t209 * t48;
923: t440 = t110 * t12;
924: t441 = t58 * t440;
925: t447 = t36 * xc;
926: t455 = t48 * t440;
927: t471 = ZB * t17;
928: t492 = 0.12e2 * t397 * t373 - 0.4e1 * t122 * t217 + 0.16e2 * t364 * t427 + 0.16e2 * t312 * t313 * t355 * t40 - 0.8e1 * t279 * t39 * t35 * ZB * t60 + 0.2e1 * t439 * t441 - 0.2e1 * t81 * t64 * t163 + 0.8e1 * t447 * t87 * t61 + 0.2e1 * t23 * t59 * t57 * t276 + 0.2e1 * t245 * t455 - 0.4e1 * t349 * t96 * t440 - 0.16e2 * t370 * t427 + 0.4e1 * t181 * t212 - 0.16e2 * t365 * t23 * t269 * t128 + 0.16e2 * t86 * t138 * ZA * t35 * t471 * t59 + 0.8e1 * t305 * t289 - 0.4e1 * t439 * t100 + 0.2e1 * ZB * t25 * t2 * ZA * t18 * t28 + 0.2e1 * t142 * t4 * t28 * t16 - 0.8e1 * t56 * t100;
929: t499 = ZA * t53 * t19;
930: t505 = t396 * 0.3141592654e1;
931: t518 = t173 * t53 * t16 * t29;
932: t533 = t23 * t28;
933: t535 = t188 * t45;
934: t538 = t24 * t4;
935: t545 = t3 * t177;
936: t546 = t173 * t76;
937: t555 = t45 * t110;
938: t557 = t72 * t160;
939: t561 = -0.8e1 * t225 * t61 - 0.2e1 * t161 * t162 * t82 + t533 * t234 + 0.4e1 * t535 * t191 + 0.4e1 * t167 * t538 * t332 + 0.4e1 * t349 * t96 * t60 + 0.2e1 * t545 * t546 - 0.2e1 * t264 * t170 + 0.4e1 * t397 * t281 * ZA * t58 - t555 * t96 - 0.4e1 * t557 * t48 * t76;
940: t567 = t396 * 0.3141592654e1 * t45;
941: t568 = t58 * t246;
942: t597 = t58 * nz;
943: t615 = t13 * t45;
944: t616 = t615 * t233;
945: t619 = t94 * t45;
946: t621 = t45 * t59;
947: t625 = 0.2e1 * t149 * t216 + 0.2e1 * t567 * t568 - 0.16e2 * t269 * xc * t324 - 0.2e1 * t236 * xc * t281 * t58 - 0.2e1 * t142 * t177 * t90 - 0.8e1 * t567 * t100 + 0.2e1 * t65 * t546 - 0.8e1 * t305 * t206 + 0.2e1 * nz * t45 * t281 * t57 * t24 - t23 * t110 * t96 - 0.8e1 * t296 * t100 + 0.2e1 * t23 * t281 * t597 + 0.4e1 * t545 * t20 + 0.2e1 * t159 * t2 * t4 * ZB * t163 - 0.4e1 * t557 * t48 * t90 + 0.4e1 * t122 * t518 + 0.8e1 * t263 * t538 * t332 - 0.4e1 * t505 * t616 - t619 * t96 - 0.2e1 * t621 * t57 * t276;
948: t626 = t49 * t45;
949: t660 = t29 * t45;
950: t685 = 0.2e1 * t545 * t174 - 0.4e1 * t126 * 0.3141592654e1 * t24 * xc - 0.4e1 * t47 * t48 * t188 + 0.4e1 * t505 * t660 * t24 - 0.2e1 * t142 * t177 * t163 - 0.2e1 * t142 * t4 * t13 * t18 + 0.8e1 * t260 * t128 * t60 - 0.2e1 * t328 * t546 - 0.2e1 * t26 * t2 * t28 * t16 + 0.4e1 * t545 * t217 - 0.4e1 * t209 * t138 * t256;
951: t690 = t6 * 0.3141592654e1;
952: t691 = ZA * t690;
953: t693 = t24 * t24;
954: t694 = t693 * xc;
955: t695 = t188 * t694;
956: t698 = t23 * ZA;
957: t699 = t698 * t690;
958: t700 = t699 * t5;
959: t704 = t5 * t4;
960: t705 = t691 * t704;
961: t709 = t691 * t5;
962: t713 = t5 * nz;
963: t714 = t713 * ZB;
964: t718 = t698 * t6;
965: t719 = t713 * t28;
966: t722 = t699 * t704;
967: t726 = t713 * t94;
968: t733 = t713 * t45;
969: t736 = t87 * t36;
970: t740 = -0.4e1 * t691 * t98 * t695 + 0.8e1 * t700 * t270 * t13 + 0.4e1 * t705 * t660 * xc + 0.8e1 * t709 * t660 * t128 + 0.2e1 * t87 * t714 * t110 + t718 * t719 * t110 - 0.4e1 * t722 * t237 * t13 - t313 * t726 * t45 - 0.4e1 * t699 * t704 * xc * t29 + t313 * t733 * t28 + 0.4e1 * t736 * t150 * t233;
971: t746 = t313 * t36;
972: t752 = t6 * t6;
973: t753 = t23 * t752;
974: t759 = t698 * t752;
975: t760 = t759 * t36;
976: t761 = t17 * t693;
977: t762 = xc * t28;
978: t763 = t761 * t762;
979: t766 = t87 * t713;
980: t773 = t699 * t4;
981: t774 = t110 * t693;
982: t775 = xc * t13;
983: t785 = t704 * t17;
984: t789 = -0.16e2 * t736 * t150 * t270 + t718 * t116 * t693 - 0.2e1 * t746 * t555 * t24 + 0.4e1 * t705 * t535 + 0.64e2 * t753 * t713 * t17 * t150 * t128 - 0.16e2 * t760 * t763 + 0.2e1 * t766 * t150 * t110 + 0.4e1 * t722 * t274 * xc + 0.4e1 * t773 * t774 * t775 - 0.8e1 * t766 * t150 * t17 + 0.8e1 * t700 * t233 * t775 + 0.4e1 * t699 * t785 * t13;
985: t791 = t691 * t4;
986: t792 = t45 * t693;
987: t793 = t49 * t792;
988: t796 = t759 * t713;
989: t797 = t53 * t28;
990: t798 = t270 * t797;
991: t801 = t87 * nz;
992: t818 = t5 * t36;
993: t819 = t753 * t818;
994: t827 = t753 * t36 * ZB;
995: t830 = xc * t45;
996: t834 = -0.4e1 * t791 * t793 + 0.32e2 * t796 * t798 + 0.2e1 * t801 * ZB * t693 * t110 + 0.2e1 * t718 * t36 * t28 * t24 - 0.8e1 * t700 * t128 * t29 - 0.8e1 * t700 * t239 - 0.8e1 * t801 * t150 * t761 + 0.32e2 * t819 * t365 * t369 - 0.64e2 * t753 * t714 * t798 + 0.32e2 * t827 * t763 + 0.4e1 * t705 * t830 * t49;
997: t842 = xc * t29;
998: t843 = t270 * t842;
999: t849 = t759 * t818;
1000: t853 = t691 * t396;
1001: t857 = t691 * t5 * t45;
1002: t869 = t313 * nz;
1003: t874 = -0.2e1 * t718 * t36 * t94 * t24 - 0.4e1 * t773 * t761 * t29 + 0.8e1 * t700 * t843 + 0.2e1 * t87 * t726 * ZB + 0.16e2 * t849 * t797 * t17 + 0.4e1 * t853 * t793 + 0.8e1 * t857 * t239 + 0.2e1 * t801 * t150 * t693 - 0.8e1 * t700 * t270 * t29 - 0.8e1 * t709 * t49 * t46 - t869 * t619 * t693 + t869 * t232 * t693;
1004: t877 = ZA * t752;
1005: t878 = t877 * t818;
1006: t911 = 0.16e2 * t878 * t53 * t45 * t365 - 0.4e1 * t699 * t785 * t29 - 0.4e1 * t705 * t188 * t830 + 0.2e1 * t801 * t94 * t693 * ZB - 0.8e1 * t857 * t843 - t718 * t726 + 0.4e1 * t773 * t761 * t13 - 0.4e1 * t705 * t775 * t555 + 0.2e1 * t746 * t232 * t233 - 0.16e2 * t878 * t830 * t365 - 0.2e1 * t746 * t619 * t24;
1007: t916 = t110 * t28;
1008: t945 = t28 * t693 * t45 * t17;
1009: t948 = 0.32e2 * t877 * t733 * t798 + 0.2e1 * t718 * t36 * t916 * t24 - 0.4e1 * t705 * t626 + t718 * nz * t916 * t693 - t869 * t792 * t110 - 0.4e1 * t773 * t761 * t775 + t718 * t719 + 0.2e1 * t746 * t232 * t24 - 0.16e2 * t849 * t365 * xc - t718 * t713 * t110 - 0.4e1 * t773 * t694 * t29 + 0.16e2 * t877 * t54 * t945;
1010: t974 = t761 * t797;
1011: t987 = 0.4e1 * t773 * t695 + 0.4e1 * t736 * t150 * t24 + 0.4e1 * t722 * t842 * t17 - 0.16e2 * t877 * t447 * t945 + 0.2e1 * t87 * t714 * t28 + t313 * t713 * t916 * t45 - 0.4e1 * t853 * t615 * t774 - 0.32e2 * t877 * t713 * xc * t324 + 0.16e2 * t760 * t974 + 0.4e1 * t736 * t94 * t24 * ZB + t869 * t792 * t916 - 0.8e1 * t691 * t5 * xc * t616;
1012: t1021 = -t718 * t169 * t693 - 0.32e2 * t827 * t974 + 0.2e1 * t801 * t150 * t774 + 0.4e1 * t791 * t188 * t792 + 0.4e1 * t736 * t220 * t24 + 0.4e1 * t791 * t842 * t792 + 0.8e1 * t709 * t660 * t270 - t718 * t335 * t693 - 0.2e1 * t718 * t36 * t110 * t24 - 0.32e2 * t819 * t797 * t471 - t313 * t733 * t110 - 0.32e2 * t796 * t270 * t762;
1014: _PC2A = (t147 - 0.4e1 * t65 * t217 + t418 + 0.2e1 * t150 * t222 + t327 - 0.2e1 * t149 * t19 + 0.2e1 * t335 * ZB * t24 * ZA - 0.16e2 * t312 * t313 * t355 * t59 - 0.4e1 * t281 * ZB * ZA * t597 - 0.2e1 * t505 * t45 * t281 * t58 - 0.4e1 * t211 * t2 * t53 * t76 + 0.8e1 * t305 * t286 - 0.4e1 * t122 * t499 - 0.4e1 * t331 * t332 + 0.8e1 * t345 * t177 * t60 - 0.2e1 * t142 * t177 * t82 + 0.2e1 * t72 * t281 * t415 + 0.4e1 * t349 * t96 * t41 - 0.2e1 * t81 * t64 * t76 + 0.2e1 * t58 * t80 * t59 + 0.8e1 * t345 * t177 * t41 - 0.4e1 * t8 * t499 + t242 + 0.4e1 * t8 * t518 + t625 + t685 + 0.2e1 * t328 * t174 + 0.2e1 * t331 * t455 - 0.2e1 * t33 * t2 * t4 * ZA * t82 - 0.4e1 * t626 * t191 + 0.16e2 * t364 * t373 - 0.2e1 * t621 * t597 - 0.2e1 * t439 * t568 + t492 + t533 * t96 + t232 * t96 + 0.2e1 * t567 * t441 + t561) / (t740 + t789 + t834 + t874 + t911 + t948 + t987 + t1021);
1015: /****************************************************************************************/
1016: t1 = nz * nz;
1017: t2 = t1 * nz;
1018: t3 = t2 * 0.3141592654e1;
1019: t4 = t3 * xc;
1020: t5 = ZB * ZB;
1021: t7 = PetscExpReal(nz * 0.3141592654e1);
1022: t8 = t7 * t7;
1023: t9 = t5 * t8;
1024: t12 = PetscExpReal(xc * nz * 0.3141592654e1);
1025: t13 = t12 * t12;
1026: t14 = t13 * t13;
1027: t15 = t14 * t13;
1028: t19 = nx * nx;
1029: t21 = nx * 0.3141592654e1;
1030: t22 = PetscSinReal(t21);
1031: t23 = t19 * nx * t22;
1032: t24 = t23 * 0.3141592654e1;
1033: t25 = ZA * ZB;
1034: t26 = t7 * t15;
1035: t27 = t25 * t26;
1036: t30 = t21 * xc;
1037: t31 = PetscSinReal(t30);
1038: t32 = t31 * nx;
1039: t33 = t32 * nz;
1040: t34 = ZA * ZA;
1041: t35 = t8 * t8;
1042: t36 = t34 * t35;
1043: t40 = t2 * t34;
1044: t41 = 0.3141592654e1 * t8;
1045: t42 = t41 * t15;
1046: t45 = t1 * t5;
1047: t46 = t14 * t14;
1048: t49 = t19 * t5;
1049: t51 = t19 * t46;
1050: t53 = t19 * t34;
1051: t55 = t8 * t7;
1052: t56 = t13 * t55;
1053: t57 = t25 * t56;
1054: t60 = t2 * nx;
1055: t61 = 0.3141592654e1 * 0.3141592654e1;
1056: t63 = t60 * t31 * t61;
1057: t64 = xc * xc;
1058: t65 = ZA * t64;
1059: t66 = ZB * t8;
1060: t67 = t14 * t12;
1061: t68 = t66 * t67;
1062: t69 = t65 * t68;
1063: t72 = -0.4e1 * t4 * t9 * t15 + 0.4e1 * t24 * t27 + 0.4e1 * t33 * t36 * t12 - 0.4e1 * t40 * t42 - t45 * t46 + t45 * t14 - t49 * t14 + t51 * t5 - t53 * t14 + 0.4e1 * t24 * t57 + 0.32e2 * t63 * t69;
1064: t73 = t1 * nx;
1065: t75 = t73 * t31 * 0.3141592654e1;
1066: t76 = t8 * t67;
1067: t77 = t25 * t76;
1068: t80 = t1 * t1;
1069: t81 = t80 * t34;
1070: t83 = t61 * t14;
1071: t87 = t1 * t19;
1072: t88 = PetscCosReal(t30);
1073: t90 = t87 * t88 * t61;
1074: t91 = t5 * t64;
1075: t92 = t13 * t12;
1076: t93 = t8 * t92;
1077: t94 = t91 * t93;
1078: t100 = ZB * t64 * ZA * t8 * t92;
1079: t103 = nz * t19;
1080: t105 = t103 * t88 * 0.3141592654e1;
1081: t106 = ZA * xc;
1082: t107 = ZB * t35;
1083: t109 = t106 * t107 * t12;
1084: t112 = t34 * xc;
1085: t113 = t112 * t93;
1086: t116 = t35 * t14;
1087: t118 = t1 * ZA;
1088: t119 = ZB * t14;
1089: t122 = t1 * t46;
1090: t125 = t19 * ZB;
1091: t126 = t35 * ZA;
1092: t127 = t125 * t126;
1093: t129 = t1 * ZB;
1094: t132 = -0.16e2 * t75 * t77 + 0.16e2 * t81 * t64 * t83 * t8 + 0.16e2 * t90 * t94 - 0.32e2 * t90 * t100 + 0.8e1 * t105 * t109 - 0.8e1 * t75 * t113 + t45 * t116 + 0.2e1 * t118 * t119 + 0.2e1 * t122 * t25 - 0.2e1 * t127 + 0.2e1 * t129 * t126;
1095: t134 = t1 * t34;
1096: t136 = t34 * t64;
1097: t137 = t136 * t76;
1098: t141 = t91 * t76;
1099: t145 = t103 * t34;
1100: t146 = 0.3141592654e1 * xc;
1101: t147 = t8 * t13;
1102: t153 = t14 * ZA;
1103: t156 = xc * t5;
1104: t157 = t156 * t93;
1105: t160 = t103 * t5;
1106: t162 = t146 * t8 * t15;
1107: t166 = t34 * t7 * t15;
1108: t169 = t134 * t116 - 0.16e2 * t63 * t137 - t49 * t116 - 0.16e2 * t63 * t141 - t53 * t116 + 0.4e1 * t145 * t146 * t147 - 0.2e1 * t51 * t25 - 0.2e1 * t125 * t153 - 0.16e2 * t75 * t157 + 0.4e1 * t160 * t162 - 0.4e1 * t24 * t166;
1109: t170 = t106 * t68;
1110: t177 = t35 * t92;
1111: t178 = t112 * t177;
1112: t181 = t156 * t76;
1113: t186 = t35 * t12;
1114: t187 = t112 * t186;
1115: t193 = t5 * 0.3141592654e1;
1116: t206 = t34 * t14;
1117: t207 = t206 * t7;
1118: t210 = -0.32e2 * t63 * t170 + 0.32e2 * t90 * t170 + 0.8e1 * t75 * t109 + 0.4e1 * t105 * t178 - 0.16e2 * t75 * t181 - 0.16e2 * t90 * t113 - 0.4e1 * t75 * t187 + 0.16e2 * t90 * t141 - 0.4e1 * t103 * t15 * t193 * xc + 0.16e2 * t73 * t22 * t34 * t146 * t26 + 0.4e1 * t32 * nz * t34 * t67 + 0.4e1 * t24 * t207;
1119: t217 = t106 * t66 * t92;
1120: t226 = t88 * t19 * nz;
1121: t227 = 0.3141592654e1 * t34;
1122: t229 = t227 * xc * t67;
1123: t232 = t73 * t31;
1124: t234 = t146 * t5 * t67;
1125: t238 = t61 * ZB;
1126: t239 = t14 * t8;
1127: t240 = t238 * t239;
1128: t243 = t136 * t93;
1129: t246 = -0.8e1 * t33 * t25 * t186 + 0.32e2 * t90 * t217 - t45 * t35 + t53 * t35 - t134 * t35 - t134 * t46 + t134 * t14 - 0.4e1 * t226 * t229 + 0.4e1 * t232 * t234 + 0.32e2 * t87 * t65 * t240 + 0.16e2 * t63 * t243;
1130: t247 = t14 * t92;
1131: t249 = t227 * t247 * xc;
1132: t254 = t73 * t22;
1133: t259 = t60 * t22 * t61;
1134: t260 = t112 * t26;
1135: t264 = t146 * t247 * t5;
1136: t268 = xc * t14;
1137: t274 = t5 * t14;
1138: t275 = t274 * t8;
1139: t280 = nz * nx;
1140: t281 = t280 * t22;
1141: t282 = t55 * t14;
1142: t283 = t25 * t282;
1143: t290 = ZA * t247 * xc * ZB;
1144: t295 = t22 * nx * t1 * 0.3141592654e1;
1145: t298 = -0.4e1 * t232 * t249 + 0.8e1 * t105 * t217 - 0.4e1 * t254 * t227 * t26 - 0.8e1 * t259 * t260 - 0.4e1 * t232 * t264 - 0.16e2 * t81 * t61 * t268 * t8 + 0.16e2 * t80 * t64 * t61 * t275 - 0.4e1 * t232 * t229 + 0.8e1 * t281 * t283 - 0.4e1 * t105 * t187 + 0.8e1 * t75 * t290 + 0.4e1 * t295 * t27;
1146: t301 = t61 * t5;
1147: t307 = t87 * t34;
1148: t312 = t61 * xc;
1149: t313 = t312 * t239;
1150: t317 = t34 * t55 * t14;
1151: t329 = ZB * t13 * t55;
1152: t330 = t65 * t329;
1153: t337 = -0.16e2 * t87 * t64 * t301 * t239 - 0.32e2 * t90 * t69 - 0.16e2 * t307 * t64 * t61 * t239 + 0.16e2 * t307 * t313 + 0.4e1 * t24 * t317 + t53 * t46 + t49 * t35 - 0.32e2 * t63 * t100 - 0.4e1 * t280 * t31 * t34 * t247 + 0.8e1 * t259 * t330 - 0.4e1 * t280 * t31 * t247 * t5;
1154: t340 = t5 * t35;
1155: t344 = t25 * t93;
1156: t356 = t41 * t13;
1157: t360 = t23 * nz * t61;
1158: t363 = t25 * t64 * t7 * t15;
1159: t366 = t156 * t177;
1160: t369 = t14 * t7;
1161: t370 = t25 * t369;
1162: t373 = t156 * t186;
1163: t378 = 0.4e1 * t24 * t283 + 0.4e1 * t33 * t340 * t12 - 0.16e2 * t75 * t344 - 0.4e1 * t280 * t31 * t5 * t67 + 0.8e1 * t33 * t25 * t247 + 0.32e2 * t63 * t217 + 0.4e1 * t40 * t356 - 0.8e1 * t360 * t363 + 0.4e1 * t75 * t366 + 0.4e1 * t295 * t370 - 0.4e1 * t75 * t373 - 0.4e1 * t105 * t366;
1164: t382 = t112 * t76;
1165: t387 = t80 * t61;
1166: t391 = t136 * t26;
1167: t409 = 0.16e2 * t63 * t382 + 0.4e1 * t226 * t234 - 0.16e2 * t387 * xc * t275 + 0.8e1 * t259 * t391 - 0.16e2 * t105 * t344 + 0.4e1 * t226 * t264 - 0.8e1 * t105 * t170 + 0.16e2 * t232 * t193 * t76 + 0.8e1 * t360 * t330 - 0.8e1 * t105 * t290 + 0.16e2 * t90 * t243;
1168: t423 = t153 * t8;
1169: t426 = t34 * t13;
1170: t427 = t426 * t55;
1171: t430 = t34 * t8;
1172: t437 = t80 * ZA;
1173: t441 = 0.4e1 * t145 * t42 - 0.16e2 * t90 * t157 + 0.24e2 * t75 * t217 + 0.4e1 * t226 * t249 + 0.4e1 * t254 * t227 * t282 + 0.4e1 * t160 * t356 - 0.8e1 * t129 * t423 - 0.8e1 * t281 * t427 - 0.8e1 * t33 * t430 * t67 + 0.8e1 * t33 * t430 * t92 + 0.32e2 * t437 * ZB * t313;
1174: t453 = t106 * ZB * t7 * t15;
1175: t456 = t2 * t5;
1176: t459 = t112 * t56;
1177: t462 = t126 * t14;
1178: t474 = t40 * 0.3141592654e1;
1179: t475 = xc * t8;
1180: t480 = t146 * t13 * t35;
1181: t483 = -0.4e1 * t103 * xc * t193 * t147 + 0.16e2 * t87 * t61 * t156 * t239 + 0.8e1 * t259 * t453 - 0.4e1 * t456 * t356 + 0.8e1 * t259 * t459 - 0.2e1 * t125 * t462 - 0.8e1 * t281 * t207 + 0.16e2 * t295 * t459 - 0.8e1 * t60 * t22 * ZA * t312 * t329 + 0.4e1 * t474 * t475 * t15 + 0.4e1 * t160 * t480;
1182: t497 = t136 * t56;
1183: t504 = t9 * t13;
1184: t509 = t475 * t13;
1185: t512 = -0.8e1 * t105 * t113 - 0.4e1 * t254 * t227 * t56 + 0.8e1 * t281 * t57 + 0.4e1 * t295 * t283 + 0.2e1 * t129 * t462 + 0.4e1 * t24 * t370 - 0.8e1 * t360 * t497 - 0.4e1 * t24 * t427 - 0.4e1 * t145 * t162 + 0.4e1 * t4 * t504 - 0.8e1 * t281 * t370 - 0.4e1 * t474 * t509;
1186: t528 = t5 * t13;
1187: t529 = t528 * t35;
1188: t532 = t106 * t329;
1189: t542 = -0.16e2 * t295 * t453 - 0.32e2 * t437 * t64 * t240 + 0.8e1 * t281 * t317 + 0.24e2 * t75 * t170 - 0.4e1 * t75 * t178 + 0.8e1 * t360 * t453 - 0.4e1 * t4 * t529 - 0.16e2 * t295 * t532 - 0.8e1 * t33 * t344 - 0.16e2 * t90 * t181 + 0.4e1 * t33 * t340 * t92;
1190: t557 = t146 * t15;
1191: t562 = xc * t15;
1192: t563 = t562 * t5;
1193: t573 = 0.16e2 * t232 * t193 * t93 - 0.8e1 * t259 * t363 - 0.8e1 * t259 * t497 + 0.8e1 * t33 * t77 + 0.8e1 * t360 * t391 + 0.4e1 * t254 * t227 * t369 + 0.4e1 * t145 * t557 + 0.8e1 * t281 * t166 + 0.4e1 * t3 * t563 + 0.8e1 * t105 * t382 - 0.4e1 * t145 * t480 - 0.4e1 * t33 * t36 * t92;
1194: t600 = 0.4e1 * t456 * t42 - 0.8e1 * t360 * t260 - 0.4e1 * t40 * t557 - 0.4e1 * t105 * t373 + 0.16e2 * t226 * t227 * t93 - 0.16e2 * t90 * t382 - 0.4e1 * t145 * t356 - 0.16e2 * t63 * t157 - 0.32e2 * t87 * t25 * t313 - 0.16e2 * t226 * t227 * t76 - 0.16e2 * t63 * t113;
1195: t623 = xc * t13;
1196: t627 = 0.8e1 * t125 * t423 - 0.8e1 * t360 * t532 + 0.16e2 * t90 * t137 - 0.4e1 * t160 * t42 + 0.16e2 * t63 * t94 + 0.16e2 * t63 * t181 - 0.8e1 * t281 * t27 - 0.8e1 * t75 * t382 + 0.8e1 * t360 * t459 + 0.4e1 * t295 * t57 + 0.16e2 * t105 * t77 + 0.4e1 * t474 * t623 * t35;
1197: t632 = t61 * 0.3141592654e1;
1198: t633 = t632 * t8;
1199: t634 = t80 * nz;
1200: t638 = t632 * t634;
1201: t639 = t638 * xc;
1202: t642 = t61 * t34;
1203: t643 = t122 * t19;
1204: t649 = t61 * t61;
1205: t650 = t649 * t1;
1206: t652 = t19 * t19;
1207: t653 = t14 * t652;
1208: t654 = t653 * t9;
1209: t657 = t14 * t1;
1210: t658 = t657 * t19;
1211: t665 = t632 * t34;
1212: t666 = t665 * t2;
1213: t667 = t8 * t19;
1214: t668 = t667 * t623;
1215: t674 = t665 * nz;
1216: t675 = t652 * xc;
1217: t682 = 0.8e1 * t633 * t426 * t634 - 0.8e1 * t639 * t529 - 0.4e1 * t642 * t643 + 0.2e1 * t642 * t116 * t80 + 0.32e2 * t650 * t64 * t654 + 0.4e1 * t301 * t658 + 0.4e1 * t387 * t46 * ZA * ZB - 0.16e2 * t666 * t668 - 0.16e2 * t666 * t667 * t15 - 0.8e1 * t674 * t675 * t15 + 0.4e1 * t238 * t153 * t80;
1218: t683 = t46 * t652;
1219: t686 = t633 * t15;
1220: t691 = t35 * t80;
1221: t698 = t35 * t652;
1222: t705 = t14 * t80;
1223: t708 = t61 * t35;
1224: t717 = -0.2e1 * t642 * t683 - 0.8e1 * t686 * t5 * t634 * xc - 0.2e1 * t301 * t691 + 0.8e1 * t638 * t563 - 0.2e1 * t642 * t691 - 0.2e1 * t642 * t698 - 0.2e1 * t301 * t698 - 0.2e1 * t301 * t683 + 0.2e1 * t642 * t705 + 0.2e1 * t708 * t274 * t80 + 0.2e1 * t301 * t653 - 0.2e1 * t642 * t80 * t46;
1225: t727 = t61 * t46;
1226: t737 = t649 * t34;
1227: t738 = t737 * t1;
1228: t739 = t8 * t652;
1229: t740 = t739 * t268;
1230: t746 = t61 * ZA;
1231: t754 = t632 * nz * xc;
1232: t758 = 0.2e1 * t301 * t705 + 0.2e1 * t642 * t653 - 0.8e1 * t665 * xc * t634 * t15 - 0.2e1 * t727 * t5 * t80 - 0.32e2 * t650 * xc * t654 + 0.2e1 * t301 * t698 * t14 - 0.32e2 * t738 * t740 + 0.8e1 * t674 * t739 * t562 + 0.4e1 * t746 * t119 * t652 + 0.8e1 * t674 * t698 * t623 - 0.8e1 * t754 * t528 * t698;
1233: t762 = t633 * t13;
1234: t764 = t5 * nz * t652;
1235: t767 = t80 * t1;
1236: t768 = t649 * t767;
1237: t772 = t649 * ZA;
1238: t773 = t772 * t129;
1239: t777 = t35 * t1 * t19;
1240: t780 = t632 * t5;
1241: t781 = t780 * t15;
1242: t786 = t698 * ZA;
1243: t790 = t64 * t14;
1244: t800 = t649 * t8;
1245: t809 = 0.4e1 * t238 * t126 * t80 - 0.8e1 * t762 * t764 - 0.32e2 * t768 * xc * t275 + 0.64e2 * t773 * t740 - 0.4e1 * t301 * t777 - 0.8e1 * t781 * nz * t8 * t675 + 0.4e1 * t238 * t786 + 0.32e2 * t768 * t34 * t790 * t8 - 0.8e1 * t633 * t528 * t634 + 0.8e1 * t754 * t528 * t739 + 0.128e3 * t800 * t119 * t80 * t19 * t106 + 0.8e1 * t674 * t739 * t13;
1246: t812 = t649 * t80;
1247: t817 = t83 * ZB;
1248: t824 = t746 * ZB;
1249: t828 = t800 * t14;
1250: t855 = -0.64e2 * t812 * xc * t274 * t667 + 0.4e1 * t817 * t786 + 0.4e1 * t727 * ZA * t652 * ZB - 0.32e2 * t824 * t657 * t667 - 0.32e2 * t828 * t34 * t767 * xc - 0.8e1 * t633 * t15 * t34 * t634 - 0.8e1 * t674 * t739 * t15 + 0.32e2 * t768 * t64 * t275 + 0.4e1 * t708 * t14 * t307 + 0.2e1 * t708 * t206 * t652 + 0.8e1 * t632 * t35 * t13 * t34 * t634 * xc;
1251: t858 = t35 * t19;
1252: t873 = t2 * t8;
1253: t878 = t61 * t1;
1254: t901 = -0.16e2 * t632 * t2 * xc * t528 * t858 + 0.8e1 * t824 * t658 + 0.4e1 * t301 * t14 * t777 - 0.8e1 * t665 * t634 * t509 - 0.8e1 * t674 * t739 * t623 - 0.16e2 * t781 * t873 * t19 * xc + 0.8e1 * t878 * t14 * t127 + 0.8e1 * t878 * ZA * t51 * ZB + 0.8e1 * t686 * t764 + 0.8e1 * t665 * xc * t634 * t15 * t8 + 0.8e1 * t633 * t15 * t5 * t634 + 0.4e1 * t387 * t14 * t107 * ZA;
1255: t903 = t739 * t790;
1256: t923 = t737 * t80;
1257: t924 = t667 * t790;
1258: t927 = t780 * t2;
1259: t937 = t15 * t19 * xc;
1260: t943 = 0.32e2 * t738 * t903 + 0.16e2 * t781 * t873 * t19 + 0.8e1 * t754 * t15 * t652 * t5 + 0.16e2 * t666 * t858 * t623 + 0.64e2 * t828 * t25 * t767 * xc - 0.16e2 * t762 * t456 * t19 + 0.64e2 * t923 * t924 + 0.16e2 * t927 * t668 - 0.64e2 * t768 * ZA * t790 * t66 - 0.64e2 * t773 * t903 + 0.16e2 * t927 * t937 + 0.16e2 * t666 * t667 * t562;
1261: t977 = 0.64e2 * t812 * t5 * t924 + 0.8e1 * t639 * t504 + 0.8e1 * t238 * t35 * t118 * t19 + 0.4e1 * t642 * t658 - 0.16e2 * t817 * t437 * t8 - 0.128e3 * t772 * ZB * t80 * t924 + 0.16e2 * t666 * t667 * t13 - 0.4e1 * t301 * t643 - 0.16e2 * t824 * t653 * t8 - 0.4e1 * t642 * t777 - 0.64e2 * t923 * t667 * t268 - 0.16e2 * t666 * t937;
1263: _PC3A = (t72 + t132 + t169 + t210 + t246 + t298 + t337 + t378 + t409 + t441 + t483 + t512 + t542 + t573 + t600 + t627) / (t682 + t717 + t758 + t809 + t855 + t901 + t943 + t977);
1264: /****************************************************************************************/
1265: _PC4A = 0;
1266: /****************************************************************************************/
1267: t1 = nx * 0.3141592654e1;
1268: t2 = t1 * xc;
1269: t3 = PetscCosReal(t2);
1270: t4 = nx * nx;
1271: t6 = nz * 0.3141592654e1;
1272: t7 = t3 * t4 * t6;
1273: t8 = ZA * ZB;
1274: t9 = PetscExpReal(t6);
1275: t10 = t9 * t9;
1276: t11 = xc * nz;
1277: t13 = PetscExpReal(t11 * 0.3141592654e1);
1278: t14 = t13 * t13;
1279: t15 = t14 * t13;
1280: t16 = t14 * t14;
1281: t17 = t16 * t15;
1282: t18 = t10 * t17;
1283: t19 = t8 * t18;
1284: t22 = PetscSinReal(t2);
1285: t23 = nx * t22;
1286: t24 = t23 * nz;
1287: t25 = ZB * ZB;
1288: t30 = nz * nz;
1289: t31 = t30 * nz;
1290: t32 = t31 * nx;
1291: t33 = 0.3141592654e1 * 0.3141592654e1;
1292: t35 = t32 * t22 * t33;
1293: t36 = ZA * ZA;
1294: t37 = t36 * xc;
1295: t38 = t16 * t13;
1296: t39 = t10 * t38;
1297: t40 = t37 * t39;
1298: t43 = PetscSinReal(t1);
1299: t44 = nx * t43;
1300: t45 = t30 * 0.3141592654e1;
1301: t46 = t44 * t45;
1302: t47 = ZA * xc;
1303: t49 = ZB * t16 * t9;
1304: t54 = t4 * nx * t43;
1305: t55 = xc * xc;
1306: t57 = t54 * t30 * t55;
1307: t58 = t33 * 0.3141592654e1;
1308: t59 = t58 * t25;
1309: t60 = t16 * t9;
1310: t61 = t59 * t60;
1311: t64 = xc * t25;
1312: t65 = t14 * t9;
1313: t66 = t64 * t65;
1314: t70 = t44 * t31 * t33;
1315: t71 = t37 * t65;
1316: t74 = t10 * t15;
1317: t75 = t64 * t74;
1318: t78 = t25 * t10;
1319: t83 = t54 * nz * t33;
1320: t84 = t55 * t25;
1321: t85 = t10 * t9;
1322: t86 = t14 * t85;
1323: t87 = t84 * t86;
1324: t90 = t30 * t30;
1325: t92 = t44 * t90 * t58;
1326: t93 = t55 * xc;
1327: t94 = t93 * t25;
1328: t95 = t85 * t16;
1329: t96 = t94 * t95;
1330: t102 = t23 * t45;
1331: t103 = t10 * t10;
1332: t104 = ZB * t103;
1333: t106 = t47 * t104 * t15;
1334: t111 = t54 * 0.3141592654e1;
1335: t112 = t25 * t85;
1336: t113 = t112 * t16;
1337: t115 = t8 * t39;
1338: t118 = t16 * t14;
1339: t119 = t85 * t118;
1340: t120 = t37 * t119;
1341: t123 = t16 * t16;
1342: t124 = t36 * t123;
1343: t125 = t124 * t9;
1344: t127 = -0.8e1 * t7 * t19 + 0.2e1 * t24 * t25 * t13 * t10 - 0.16e2 * t35 * t40 - 0.16e2 * t46 * t47 * t49 - 0.8e1 * t57 * t61 + 0.4e1 * t46 * t66 + 0.2e1 * t70 * t71 - 0.16e2 * t35 * t75 + 0.6e1 * t24 * t78 * t38 - 0.2e1 * t83 * t87 - 0.8e1 * t92 * t96 - 0.8e1 * t46 * t37 * t95 - 0.12e2 * t102 * t106 + 0.2e1 * t83 * t71 + t111 * t113 + 0.8e1 * t7 * t115 + 0.2e1 * t83 * t120 + t111 * t125;
1345: t128 = t37 * t74;
1346: t131 = t44 * nz;
1347: t133 = t25 * t9 * t118;
1348: t136 = t36 * t14;
1349: t137 = t136 * t9;
1350: t140 = t30 * t4;
1351: t142 = t140 * t3 * t33;
1352: t143 = t64 * t39;
1353: t147 = t30 * nx * t43;
1354: t148 = 0.3141592654e1 * t36;
1355: t149 = t9 * t118;
1356: t153 = t44 * t31 * ZA;
1357: t154 = t33 * xc;
1358: t155 = t154 * t49;
1359: t160 = ZA * t17 * xc * ZB;
1360: t163 = t103 * t13;
1361: t164 = t64 * t163;
1362: t170 = t44 * t90 * t55;
1363: t171 = t58 * ZB;
1364: t172 = ZA * t16;
1365: t174 = t171 * t172 * t9;
1366: t177 = t36 * t55;
1367: t178 = t177 * t149;
1368: t181 = t54 * t11;
1369: t182 = t33 * t25;
1370: t186 = t25 * t14;
1371: t187 = t186 * t9;
1372: t193 = t186 * t85;
1373: t198 = ZB * t55;
1374: t199 = ZA * t103;
1375: t201 = t198 * t199 * t15;
1376: t204 = 0.2e1 * t7 * t128 - 0.2e1 * t131 * t133 - 0.2e1 * t131 * t137 + 0.16e2 * t142 * t143 - t147 * t148 * t149 + 0.8e1 * t153 * t155 - 0.4e1 * t7 * t160 + 0.2e1 * t7 * t164 + 0.10e2 * t102 * t40 + 0.16e2 * t170 * t174 + 0.2e1 * t83 * t178 - 0.2e1 * t181 * t182 * t65 - t111 * t187 - 0.2e1 * t70 * t87 + 0.4e1 * t102 * t160 - 0.2e1 * t131 * t193 - 0.16e2 * t142 * t75 + 0.16e2 * t35 * t201;
1377: t210 = t32 * t22;
1378: t211 = t33 * t55;
1379: t212 = t25 * t38;
1380: t213 = t211 * t212;
1381: t216 = nz * nx;
1382: t217 = t22 * t25;
1383: t222 = ZB * t85 * t16;
1384: t226 = t23 * t30;
1385: t227 = t13 * t10;
1386: t228 = t148 * t227;
1387: t233 = t37 * t163;
1388: t237 = nz * t4 * t3;
1389: t238 = t148 * t74;
1390: t241 = t64 * t86;
1391: t245 = t148 * xc * t15;
1392: t248 = t112 * t118;
1393: t250 = t22 * t36;
1394: t256 = 0.3141592654e1 * t25;
1395: t257 = t256 * t39;
1396: t262 = t38 * t103;
1397: t263 = t37 * t262;
1398: t267 = t148 * t17 * xc;
1399: t270 = -0.6e1 * t7 * t143 - 0.4e1 * t24 * t19 - 0.8e1 * t210 * t213 - 0.2e1 * t216 * t217 * t15 - 0.32e2 * t153 * t211 * t222 + 0.4e1 * t226 * t228 + 0.16e2 * t142 * t201 + 0.2e1 * t7 * t233 - 0.4e1 * t237 * t238 - 0.2e1 * t83 * t241 - 0.2e1 * t237 * t245 + t111 * t248 + 0.2e1 * t216 * t250 * t15 - 0.2e1 * t131 * t125 - 0.4e1 * t226 * t257 + t147 * t148 * t95 - 0.2e1 * t102 * t263 + 0.2e1 * t237 * t267;
1400: t273 = t37 * t149;
1401: t277 = t47 * t104 * t13;
1402: t285 = t31 * t36;
1403: t286 = t44 * t285;
1404: t291 = t25 * t123 * t9;
1405: t304 = 0.3141592654e1 * xc;
1406: t305 = t304 * t212;
1407: t312 = t256 * t18;
1408: t315 = t8 * t60;
1409: t319 = t54 * t30 * t58;
1410: t323 = t90 * t36;
1411: t324 = t44 * t323;
1412: t325 = t55 * t58;
1413: t326 = t325 * t60;
1414: t329 = 0.2e1 * t102 * t164 + 0.2e1 * t83 * t273 - 0.4e1 * t102 * t277 - 0.2e1 * t7 * t263 + 0.4e1 * t24 * t8 * t17 - 0.4e1 * t286 * t154 * t60 - 0.2e1 * t131 * t291 - t147 * t148 * t119 + 0.2e1 * t24 * t78 * t17 + 0.2e1 * t54 * t85 * 0.3141592654e1 * ZA * ZB - 0.4e1 * t226 * t305 - 0.2e1 * t70 * t66 + t147 * t256 * t95 + 0.4e1 * t237 * t312 + 0.2e1 * t111 * t315 - 0.8e1 * t319 * t96 - t111 * t193 - 0.8e1 * t324 * t326;
1415: t332 = t8 * t95;
1416: t335 = t136 * t85;
1417: t337 = t256 * t227;
1418: t340 = t177 * t119;
1419: t346 = t37 * t86;
1420: t351 = t103 * t15;
1421: t352 = t177 * t351;
1422: t355 = t64 * t119;
1423: t358 = t8 * t227;
1424: t361 = t85 * 0.3141592654e1;
1425: t365 = t84 * t39;
1426: t372 = ZB * t10;
1427: t373 = t372 * t38;
1428: t374 = t47 * t373;
1429: t379 = t177 * t39;
1430: t384 = -0.2e1 * t46 * t332 + t111 * t335 + 0.4e1 * t237 * t337 - 0.2e1 * t83 * t340 + 0.16e2 * t286 * t211 * t95 + 0.2e1 * t70 * t346 - 0.8e1 * t170 * t61 - 0.8e1 * t142 * t352 - 0.2e1 * t83 * t355 - 0.4e1 * t24 * t358 + 0.2e1 * t147 * t361 * t8 + 0.8e1 * t35 * t365 - 0.2e1 * t226 * t267 + 0.8e1 * t102 * t115 - 0.12e2 * t102 * t374 + 0.16e2 * t142 * t40 - 0.8e1 * t142 * t379 + 0.4e1 * t237 * t228;
1431: t386 = t54 * t30 * t93;
1432: t387 = ZA * t85;
1433: t389 = t171 * t387 * t16;
1434: t394 = t64 * t60;
1435: t398 = t304 * t25 * t15;
1436: t401 = t361 * t25;
1437: t405 = t84 * t65;
1438: t410 = t148 * t18;
1439: t414 = t25 * t16 * t9;
1440: t417 = t84 * t74;
1441: t422 = t177 * t86;
1442: t428 = ZB * t38;
1443: t429 = t47 * t428;
1444: t432 = t148 * t39;
1445: t439 = 0.16e2 * t386 * t389 - 0.16e2 * t386 * t174 + 0.8e1 * t46 * t394 + 0.2e1 * t237 * t398 - t147 * t401 + 0.4e1 * t7 * t374 + 0.2e1 * t83 * t405 - 0.4e1 * t46 * t241 - 0.4e1 * t226 * t410 + 0.2e1 * t131 * t414 + 0.8e1 * t35 * t417 - 0.8e1 * t142 * t365 + 0.2e1 * t70 * t422 - 0.4e1 * t181 * t182 * t60 + 0.12e2 * t102 * t429 - 0.4e1 * t226 * t432 + 0.32e2 * t35 * t374 - 0.4e1 * t7 * t106;
1446: t442 = t36 * t9 * t118;
1447: t444 = t123 * t9;
1448: t445 = t8 * t444;
1449: t448 = t361 * t36;
1450: t451 = t47 * t372 * t17;
1451: t454 = t94 * t60;
1452: t457 = t25 * t103;
1453: t465 = t47 * t372 * t15;
1454: t468 = t36 * t85;
1455: t469 = t468 * t16;
1456: t474 = t43 * t85;
1457: t478 = t8 * t74;
1458: t484 = t256 * t74;
1459: t489 = t198 * ZA * t10 * t15;
1460: t501 = -t111 * t442 + 0.4e1 * t131 * t445 - t147 * t448 + 0.4e1 * t7 * t451 + 0.8e1 * t92 * t454 - 0.2e1 * t24 * t457 * t13 - 0.2e1 * t286 * t211 * t65 + 0.4e1 * t7 * t465 + t111 * t469 - 0.2e1 * t216 * t250 * t17 - 0.2e1 * t216 * t474 * t25 - 0.4e1 * t24 * t478 + 0.4e1 * t24 * t8 * t38 + 0.4e1 * t226 * t484 - 0.16e2 * t142 * t489 - 0.2e1 * t24 * t212 * t103 - 0.2e1 * t216 * t22 * t17 * t25 + 0.2e1 * t70 * t120;
1461: t504 = t33 * t36 * t55 * t38;
1462: t507 = t37 * t18;
1463: t512 = t47 * ZB * t13 * t10;
1464: t518 = t59 * t95;
1465: t530 = t84 * t351;
1466: t534 = t37 * t227;
1467: t549 = -0.8e1 * t210 * t504 + 0.2e1 * t102 * t507 + 0.4e1 * t7 * t512 + t111 * t133 - 0.16e2 * t35 * t489 + 0.8e1 * t170 * t518 + 0.2e1 * t24 * t36 * t13 * t10 + 0.4e1 * t131 * t387 * ZB + 0.12e2 * t102 * t465 - 0.8e1 * t142 * t530 + t111 * t291 - 0.2e1 * t102 * t534 - 0.4e1 * t70 * t394 - 0.10e2 * t102 * t128 + 0.4e1 * t237 * t305 + 0.8e1 * t102 * t19 + 0.2e1 * t83 * t346 - 0.16e2 * t35 * t128;
1468: t557 = t468 * t118;
1469: t562 = t93 * t58;
1470: t563 = t562 * t60;
1471: t567 = t44 * t90 * t93;
1472: t575 = ZA * t55;
1473: t576 = t575 * t428;
1474: t583 = t37 * t60;
1475: t590 = t140 * t3;
1476: t601 = -0.2e1 * t226 * t398 - 0.2e1 * t70 * t340 - 0.2e1 * t131 * t557 - 0.4e1 * t24 * t115 + 0.8e1 * t324 * t563 + 0.16e2 * t567 * t389 + 0.16e2 * t70 * t84 * t95 + 0.2e1 * t70 * t178 - 0.16e2 * t142 * t576 - 0.4e1 * t237 * t257 - 0.4e1 * t226 * t312 + 0.8e1 * t46 * t583 + 0.2e1 * t24 * t36 * t38 * t103 + 0.8e1 * t590 * t213 + 0.2e1 * t102 * t143 - 0.16e2 * t35 * t143 + 0.2e1 * t131 * t248 + 0.4e1 * t46 * t346;
1477: t604 = nz * t36;
1478: t606 = t154 * t95;
1479: t625 = t36 * t103;
1480: t640 = t30 * t36;
1481: t641 = t54 * t640;
1482: t642 = t325 * t95;
1483: t647 = -0.4e1 * t131 * t315 - 0.4e1 * t54 * t604 * t606 - t147 * t148 * t60 + 0.16e2 * t35 * t576 - 0.8e1 * t102 * t478 + 0.32e2 * t142 * t465 - 0.4e1 * t237 * t484 - 0.2e1 * t70 * t355 + 0.2e1 * t70 * t273 + 0.2e1 * t102 * t233 - 0.2e1 * t24 * t625 * t13 - 0.8e1 * t7 * t358 - 0.2e1 * t111 * t445 - 0.4e1 * t7 * t429 + 0.16e2 * t46 * t47 * t222 + 0.2e1 * t131 * t113 + 0.8e1 * t641 * t642 - 0.2e1 * t7 * t534;
1484: t652 = t36 * t16;
1485: t653 = t652 * t9;
1486: t655 = t64 * t227;
1487: t658 = t182 * t95;
1488: t663 = t562 * t95;
1489: t684 = t64 * t351;
1490: t689 = t36 * t10;
1491: t695 = t154 * t222;
1492: t698 = -0.4e1 * t216 * t217 * t38 - t111 * t653 - 0.2e1 * t7 * t655 - 0.4e1 * t181 * t658 + 0.2e1 * t131 * t469 - 0.8e1 * t641 * t663 - 0.4e1 * t83 * t583 - 0.2e1 * t83 * t177 * t65 - 0.4e1 * t24 * t457 * t15 + 0.16e2 * t70 * t84 * t60 + 0.8e1 * t57 * t518 - 0.32e2 * t142 * t374 + 0.4e1 * t24 * t8 * t351 + 0.4e1 * t102 * t684 - t147 * t256 * t86 - 0.2e1 * t24 * t689 * t15 - 0.2e1 * t70 * t241 + 0.8e1 * t153 * t695;
1493: t711 = t575 * t373;
1494: t717 = t304 * t17 * t25;
1495: t736 = t177 * t74;
1496: t739 = 0.2e1 * t226 * t245 - 0.8e1 * t102 * t358 - 0.16e2 * t57 * t389 - 0.2e1 * t102 * t655 + 0.8e1 * t590 * t504 - 0.8e1 * t641 * t326 - 0.16e2 * t35 * t711 - t111 * t557 + t111 * t137 - 0.2e1 * t226 * t717 + 0.8e1 * t102 * t37 * t351 + 0.2e1 * t131 * t335 - 0.4e1 * t131 * t332 - 0.2e1 * t216 * t474 * t36 - 0.2e1 * t111 * t332 + 0.16e2 * t142 * t711 - t147 * t256 * t60 + 0.8e1 * t142 * t736;
1497: t750 = t64 * t262;
1498: t763 = t44 * t640;
1499: t770 = t84 * t119;
1500: t782 = 0.4e1 * t102 * t512 + 0.8e1 * t142 * t417 + 0.8e1 * t641 * t563 - 0.2e1 * t7 * t507 + 0.2e1 * t7 * t750 - 0.8e1 * t35 * t352 + 0.4e1 * t237 * t410 + 0.4e1 * t7 * t684 - 0.2e1 * t46 * t445 + t147 * t148 * t65 + 0.4e1 * t763 * t304 * t119 + 0.16e2 * t70 * t177 * t60 + 0.2e1 * t70 * t770 - t111 * t414 - 0.16e2 * t567 * t174 - 0.4e1 * t46 * t71 - 0.4e1 * t46 * t355 - 0.4e1 * t7 * t277;
1501: t797 = t64 * t149;
1502: t821 = -t54 * t448 + 0.2e1 * t131 * t442 + 0.8e1 * t7 * t478 + 0.8e1 * t35 * t379 - 0.2e1 * t181 * t182 * t149 + 0.2e1 * t70 * t405 + 0.2e1 * t83 * t770 - 0.2e1 * t70 * t797 - 0.6e1 * t7 * t75 - 0.4e1 * t286 * t606 - 0.4e1 * t237 * t432 + t147 * t256 * t149 - 0.4e1 * t763 * t304 * t149 - 0.2e1 * t102 * t75 + 0.2e1 * t237 * t717 + 0.8e1 * t324 * t642 - 0.16e2 * t170 * t389 + 0.2e1 * t83 * t422;
1503: t827 = t84 * t149;
1504: t846 = t54 * nz * ZA;
1505: t854 = t64 * t18;
1506: t867 = -0.16e2 * t142 * t128 + 0.32e2 * t35 * t465 - 0.2e1 * t83 * t827 + 0.2e1 * t46 * t315 + t147 * t148 * t86 - 0.4e1 * t102 * t451 - 0.8e1 * t226 * t148 * xc * t38 - 0.2e1 * t24 * t689 * t38 + 0.2e1 * t131 * t187 + 0.8e1 * t846 * t155 + 0.8e1 * t35 * t736 + 0.2e1 * t24 * t689 * t17 - 0.2e1 * t7 * t854 + t147 * t256 * t119 + 0.2e1 * t102 * t854 - 0.8e1 * t35 * t530 + 0.4e1 * t46 * t797 + 0.2e1 * t102 * t750;
1507: t909 = -0.8e1 * t324 * t663 + t147 * t256 * t444 - t147 * t256 * t65 + 0.4e1 * t226 * t238 + 0.2e1 * t7 * t40 - t54 * t401 + 0.16e2 * t57 * t174 + 0.4e1 * t226 * t337 + 0.4e1 * t24 * t8 * t163 + 0.8e1 * t846 * t695 + 0.8e1 * t319 * t454 + 0.2e1 * t131 * t653 - 0.8e1 * t46 * t64 * t95 + 0.6e1 * t24 * t78 * t15 - 0.4e1 * t44 * t31 * xc * t658 - 0.32e2 * t153 * t211 * t49 - 0.2e1 * t70 * t827 + t147 * t148 * t444;
1508: t914 = t25 * ZB;
1509: t915 = t33 * t914;
1510: t919 = t4 * t4;
1511: t920 = t16 * t919;
1512: t929 = t123 * t90;
1513: t932 = t919 * t103;
1514: t935 = t33 * ZB;
1515: t939 = t652 * t919;
1516: t942 = t16 * t30;
1517: t943 = t942 * t4;
1518: t949 = t103 * t16;
1519: t950 = t949 * t90;
1520: t953 = -0.2e1 * t915 * t103 * t90 + 0.2e1 * t915 * t920 - 0.2e1 * t915 * t123 * t919 + 0.2e1 * t915 * t16 * t90 - 0.2e1 * t915 * t929 - 0.2e1 * t915 * t932 - 0.2e1 * t935 * t323 * t123 + 0.2e1 * t935 * t939 + 0.4e1 * t915 * t943 + 0.4e1 * t182 * t172 * t90 + 0.2e1 * t915 * t950;
1521: t954 = t171 * t36;
1522: t955 = t90 * nz;
1523: t956 = xc * t955;
1524: t957 = t118 * t10;
1525: t964 = t33 * t33;
1526: t965 = t964 * ZB;
1527: t966 = t965 * t640;
1528: t967 = t10 * t919;
1529: t968 = t55 * t16;
1530: t969 = t967 * t968;
1531: t972 = t935 * t36;
1532: t974 = t103 * t30 * t4;
1533: t977 = xc * t16;
1534: t978 = t967 * t977;
1535: t981 = t90 * t30;
1536: t983 = t16 * t10;
1537: t987 = t182 * ZA;
1538: t988 = t4 * t10;
1539: t992 = t171 * t604;
1540: t993 = xc * t14;
1541: t994 = t932 * t993;
1542: t997 = t182 * t30;
1543: t1005 = t171 * t285;
1544: t1006 = t988 * t993;
1545: t1009 = t58 * t914;
1546: t1010 = t1009 * t31;
1547: t1013 = 0.8e1 * t954 * t956 * t957 + 0.2e1 * t915 * t932 * t16 + 0.32e2 * t966 * t969 - 0.4e1 * t972 * t974 - 0.32e2 * t966 * t978 + 0.32e2 * t965 * t981 * t177 * t983 - 0.32e2 * t987 * t942 * t988 + 0.8e1 * t992 * t994 + 0.8e1 * t997 * t949 * ZA * t4 - 0.2e1 * t935 * t124 * t919 - 0.16e2 * t1005 * t1006 + 0.16e2 * t1010 * t1006;
1548: t1015 = t964 * t25;
1549: t1016 = ZA * t30;
1550: t1017 = t1015 * t1016;
1551: t1020 = t967 * t993;
1552: t1031 = t1009 * t118;
1553: t1032 = t31 * t10;
1554: t1040 = t964 * t914;
1555: t1041 = t1040 * t90;
1556: t1044 = t55 * t10 * t4 * t16;
1557: t1047 = t1040 * t30;
1558: t1050 = t123 * ZA;
1559: t1054 = t977 * t988;
1560: t1057 = 0.64e2 * t1017 * t978 - 0.8e1 * t992 * t1020 + 0.2e1 * t972 * t950 + 0.4e1 * t182 * t929 * ZA + 0.4e1 * t182 * t199 * t90 - 0.16e2 * t1031 * t1032 * t4 * xc + 0.4e1 * t182 * t172 * t919 + 0.64e2 * t1041 * t1044 + 0.32e2 * t1047 * t969 + 0.4e1 * t182 * t1050 * t919 - 0.64e2 * t1041 * t1054;
1561: t1058 = t1009 * nz;
1562: t1063 = t932 * ZA;
1563: t1069 = t123 * t30 * t4;
1564: t1080 = t993 * t103 * t4;
1565: t1088 = t935 * t103;
1566: t1094 = -0.8e1 * t1058 * t994 - 0.32e2 * t1047 * t978 + 0.4e1 * t182 * t1063 - 0.4e1 * t915 * t974 - 0.4e1 * t915 * t1069 - 0.2e1 * t935 * t625 * t90 - 0.8e1 * t1009 * t10 * t14 * t955 - 0.16e2 * t1010 * t1080 - 0.2e1 * t935 * t625 * t919 - 0.64e2 * t1017 * t969 + 0.2e1 * t1088 * t939 + 0.8e1 * t1009 * t957 * t955;
1567: t1113 = t955 * t118 * xc;
1568: t1120 = t4 * t118;
1569: t1125 = t981 * xc;
1570: t1133 = nz * t10;
1571: t1140 = -0.8e1 * t954 * t955 * t10 * t993 + 0.2e1 * t935 * t652 * t90 - 0.64e2 * t1015 * t981 * t575 * t983 + 0.8e1 * t182 * t103 * t1016 * t4 + 0.8e1 * t1009 * t1113 + 0.16e2 * t954 * t1032 * t4 * t14 - 0.16e2 * t954 * t1032 * t1120 + 0.64e2 * t1015 * t10 * t172 * t1125 + 0.8e1 * t171 * t103 * t136 * t956 - 0.8e1 * t1031 * t1133 * t919 * xc + 0.8e1 * t1058 * t1020;
1572: t1153 = xc * t118;
1573: t1165 = t182 * t16;
1574: t1170 = t171 * t10;
1575: t1178 = ZA * t90;
1576: t1182 = 0.4e1 * t1088 * t652 * t140 + 0.8e1 * t954 * t1133 * t919 * t14 + 0.4e1 * t972 * t943 - 0.4e1 * t972 * t1069 - 0.16e2 * t954 * t31 * t4 * t1153 - 0.8e1 * t954 * nz * t919 * t1153 - 0.8e1 * t954 * t1133 * t919 * t118 + 0.4e1 * t1165 * t1063 + 0.16e2 * t1005 * t1080 - 0.8e1 * t1170 * t118 * t36 * t955 - 0.16e2 * t987 * t920 * t10 - 0.16e2 * t1165 * t1178 * t10;
1577: t1195 = t1040 * t981;
1578: t1199 = t1009 * t955;
1579: t1203 = t1009 * t10;
1580: t1211 = t965 * t323;
1581: t1225 = -0.32e2 * t965 * t10 * t652 * t1125 + 0.4e1 * t915 * t16 * t974 + 0.4e1 * t182 * t90 * t949 * ZA + 0.32e2 * t1195 * t968 * t10 - 0.8e1 * t1199 * t993 * t103 + 0.8e1 * t1203 * t118 * nz * t919 + 0.8e1 * t1170 * t136 * t955 + 0.64e2 * t1211 * t1044 + 0.16e2 * t1031 * t1032 * t4 + 0.8e1 * t987 * t943 + 0.8e1 * t1199 * t993 * t10 + 0.8e1 * t997 * t1050 * t4;
1582: t1263 = -0.128e3 * t1015 * t1178 * t1044 + 0.16e2 * t1005 * t988 * t1153 + 0.8e1 * t1058 * t1153 * t919 + 0.16e2 * t1010 * t1120 * xc - 0.8e1 * t954 * t1113 - 0.8e1 * t1203 * t14 * nz * t919 - 0.16e2 * t1203 * t14 * t31 * t4 - 0.8e1 * t1203 * t1113 - 0.32e2 * t1195 * t977 * t10 - 0.64e2 * t1211 * t1054 + 0.8e1 * t992 * t967 * t1153 + 0.128e3 * t1015 * t983 * t90 * t4 * t47;
1584: _PC1B = (t127 + t204 + t270 + t329 + t384 + t439 + t501 + t549 + t601 + t647 + t698 + t739 + t782 + t821 + t867 + t909) / (t953 + t1013 + t1057 + t1094 + t1140 + t1182 + t1225 + t1263);
1585: /****************************************************************************************/
1586: t1 = nz * nz;
1587: t2 = t1 * nz;
1588: t3 = nx * t2;
1589: t4 = 0.3141592654e1 * ZA;
1590: t5 = t3 * t4;
1591: t6 = nx * 0.3141592654e1;
1592: t7 = t6 * xc;
1593: t8 = PetscSinReal(t7);
1594: t9 = t8 * ZB;
1595: t10 = nz * 0.3141592654e1;
1596: t11 = PetscExpReal(t10);
1597: t12 = t11 * t11;
1598: t15 = PetscExpReal(xc * nz * 0.3141592654e1);
1599: t16 = t15 * t15;
1600: t17 = t16 * t16;
1601: t18 = t17 * t15;
1602: t19 = t12 * t18;
1603: t23 = t1 * t1;
1604: t24 = nx * t23;
1605: t25 = ZB * ZB;
1606: t27 = t18 * t8;
1607: t28 = 0.3141592654e1 * 0.3141592654e1;
1608: t29 = xc * xc;
1609: t30 = t28 * t29;
1610: t34 = t1 * xc;
1611: t35 = 0.3141592654e1 * ZB;
1612: t36 = t34 * t35;
1613: t37 = PetscCosReal(t7);
1614: t38 = ZA * t37;
1615: t39 = nx * nx;
1616: t40 = t39 * t12;
1617: t41 = t16 * t15;
1618: t43 = t38 * t40 * t41;
1619: t46 = t25 * nz;
1620: t47 = t46 * 0.3141592654e1;
1621: t48 = t39 * nx;
1622: t49 = PetscSinReal(t6);
1623: t50 = t48 * t49;
1624: t51 = t12 * t11;
1625: t52 = t51 * t17;
1626: t53 = t50 * t52;
1627: t56 = t34 * 0.3141592654e1 * t25;
1628: t57 = t37 * t39;
1629: t58 = t17 * t41;
1630: t59 = t12 * t58;
1631: t60 = t57 * t59;
1632: t63 = t25 * t18;
1633: t64 = t57 * nz;
1634: t67 = ZA * ZA;
1635: t68 = t67 * nz;
1636: t69 = 0.3141592654e1 * t48;
1637: t70 = t68 * t69;
1638: t71 = t49 * xc;
1639: t72 = t17 * t16;
1640: t73 = t11 * t72;
1641: t74 = t71 * t73;
1642: t77 = t1 * t67;
1643: t78 = t77 * 0.3141592654e1;
1644: t81 = nx * t25;
1645: t82 = t81 * t49;
1646: t83 = t17 * t17;
1647: t85 = t1 * t83 * t11;
1648: t87 = nx * ZB;
1649: t88 = t8 * t2;
1650: t89 = t87 * t88;
1651: t90 = 0.3141592654e1 * xc;
1652: t91 = t12 * t12;
1653: t92 = ZA * t91;
1654: t97 = ZB * ZA;
1655: t98 = t97 * t37;
1656: t99 = t39 * nz;
1657: t100 = t12 * t41;
1658: t104 = 0.8e1 * t5 * t9 * t19 + 0.8e1 * t24 * t25 * t27 * t30 + 0.12e2 * t36 * t43 - t47 * t53 - 0.2e1 * t56 * t60 - 0.4e1 * t63 * t64 + 0.6e1 * t70 * t74 + 0.4e1 * t78 * t60 - t82 * t85 + 0.4e1 * t89 * t90 * t92 * t41 + 0.4e1 * t98 * t99 * t100;
1659: t105 = t67 * t48;
1660: t106 = t49 * t51;
1661: t107 = t106 * t72;
1662: t109 = t1 * 0.3141592654e1;
1663: t110 = t109 * xc;
1664: t115 = nx * t67;
1665: t116 = t115 * t49;
1666: t117 = t1 * t16;
1667: t118 = t117 * t11;
1668: t120 = t2 * t25;
1669: t121 = t28 * 0.3141592654e1;
1670: t122 = t121 * t29;
1671: t123 = t120 * t122;
1672: t129 = t1 * ZB;
1673: t130 = t129 * t4;
1674: t131 = t57 * t100;
1675: t134 = t12 * t16;
1676: t136 = t109 * t39;
1677: t139 = ZB * t18;
1678: t141 = t39 * t1;
1679: t142 = t141 * t90;
1680: t145 = t77 * t90;
1681: t146 = t91 * t41;
1682: t147 = t57 * t146;
1683: t151 = t25 * t39 * t1;
1684: t152 = t72 * t12;
1685: t156 = t49 * t2;
1686: t158 = t83 * t11;
1687: t162 = -t105 * t107 + 0.8e1 * t110 * t72 * t25 * t39 - t116 * t118 + 0.8e1 * t123 * t53 + 0.8e1 * t5 * t9 * t59 - 0.8e1 * t130 * t131 - 0.8e1 * t134 * t25 * t136 - 0.12e2 * t139 * t38 * t142 - 0.8e1 * t145 * t147 - 0.8e1 * t151 * t90 * t152 - 0.2e1 * t87 * t156 * t4 * t158;
1688: t164 = t115 * t88;
1689: t165 = t90 * t19;
1690: t168 = t25 * t48;
1691: t169 = t49 * t16;
1692: t170 = t169 * t11;
1693: t174 = ZA * nz * t69;
1694: t175 = ZB * t51;
1695: t176 = t175 * t17;
1696: t177 = t71 * t176;
1697: t180 = t1 * t29;
1698: t181 = t28 * t25;
1699: t182 = t180 * t181;
1700: t183 = t50 * t73;
1701: t186 = ZA * t1;
1702: t187 = t28 * t48;
1703: t188 = t186 * t187;
1704: t189 = ZB * t17;
1705: t190 = t189 * t11;
1706: t191 = t71 * t190;
1707: t194 = t50 * t158;
1708: t196 = t115 * t156;
1709: t197 = t90 * t73;
1710: t201 = t49 * t17 * t11;
1711: t204 = t88 * t90;
1712: t207 = t68 * 0.3141592654e1;
1713: t208 = t17 * t11;
1714: t209 = t50 * t208;
1715: t211 = -0.2e1 * t164 * t165 - t168 * t170 + t168 * t107 + 0.8e1 * t174 * t177 + 0.2e1 * t182 * t183 + 0.8e1 * t188 * t191 + t47 * t194 - 0.6e1 * t196 * t197 - t168 * t201 - 0.4e1 * t81 * t18 * t204 - t207 * t209;
1716: t212 = t2 * 0.3141592654e1;
1717: t213 = t212 * t52;
1718: t215 = t81 * t8;
1719: t216 = t212 * t59;
1720: t219 = t3 * t90;
1721: t220 = t25 * t8;
1722: t221 = t18 * t91;
1723: t225 = t71 * t52;
1724: t231 = t16 * t51;
1725: t232 = t50 * t231;
1726: t237 = ZA * t12;
1727: t243 = t67 * t28;
1728: t244 = t24 * t243;
1729: t245 = t71 * t231;
1730: t249 = -t116 * t213 - 0.4e1 * t215 * t216 + 0.2e1 * t219 * t220 * t221 - 0.4e1 * t70 * t225 + 0.4e1 * t98 * t99 * t146 + t47 * t232 - 0.2e1 * t145 * t57 * t221 + 0.4e1 * t89 * t90 * t237 * t41 - t105 * t201 - 0.6e1 * t244 * t245 + t105 * t170;
1731: t252 = t25 * t37;
1732: t253 = t252 * t39;
1733: t255 = nz * t15 * t12;
1734: t258 = t2 * t29;
1735: t259 = ZB * t28;
1736: t260 = t258 * t259;
1737: t263 = t106 * t17;
1738: t265 = xc * t25;
1739: t269 = t25 * t49;
1740: t270 = t269 * t52;
1741: t273 = t1 * t25;
1742: t274 = t273 * 0.3141592654e1;
1743: t275 = t57 * t19;
1744: t278 = t24 * t30;
1745: t288 = t1 * t11 * t72;
1746: t290 = t212 * t208;
1747: t292 = t2 * xc;
1748: t296 = 0.2e1 * t253 * t255 + 0.16e2 * t260 * t43 + t105 * t263 - 0.4e1 * t10 * t265 * t53 + 0.4e1 * t219 * t270 - 0.12e2 * t274 * t275 + 0.8e1 * t278 * t270 - 0.2e1 * ZB * nz * t69 * t49 * ZA * t158 - t82 * t288 - t116 * t290 + 0.16e2 * t292 * t243 * t275;
1749: t301 = t50 * t176;
1750: t304 = t51 * t72;
1751: t305 = t71 * t304;
1752: t308 = t25 * t41;
1753: t311 = ZA * t48;
1754: t312 = t311 * t49;
1755: t317 = t91 * t15;
1756: t318 = t57 * t317;
1757: t321 = t81 * t88;
1758: t322 = t90 * t59;
1759: t325 = t212 * t231;
1760: t327 = t15 * t12;
1761: t328 = t57 * t327;
1762: t331 = t77 * t187;
1763: t334 = t2 * ZA;
1764: t335 = t334 * t122;
1765: t336 = t50 * t190;
1766: t339 = 0.8e1 * t151 * t90 * t134 + 0.16e2 * t186 * t30 * t301 - 0.2e1 * t70 * t305 + 0.2e1 * t308 * t64 - 0.2e1 * t312 * ZB * t83 * t11 + 0.2e1 * t56 * t318 + 0.2e1 * t321 * t322 - t116 * t325 - 0.4e1 * t274 * t328 + 0.2e1 * t331 * t305 - 0.16e2 * t335 * t336;
1767: t341 = t169 * t51;
1768: t344 = t49 * t11 * t72;
1769: t346 = t77 * t30;
1770: t347 = t50 * t304;
1771: t350 = t25 * t51;
1772: t352 = nx * ZA;
1773: t353 = t49 * t23;
1774: t354 = t352 * t353;
1775: t355 = t28 * xc;
1776: t362 = t25 * t91;
1777: t365 = t23 * nz;
1778: t366 = nx * t365;
1779: t367 = t366 * t122;
1780: t368 = ZB * t49;
1781: t369 = ZA * t51;
1782: t370 = t369 * t17;
1783: t371 = t368 * t370;
1784: t374 = t115 * t353;
1785: t375 = t355 * t73;
1786: t381 = t105 * t341 - t105 * t344 - 0.2e1 * t346 * t347 - t350 * t50 - 0.8e1 * t354 * t355 * t176 - 0.4e1 * t98 * t99 * t317 - 0.2e1 * t362 * t99 - 0.16e2 * t367 * t371 + 0.6e1 * t374 * t375 - 0.8e1 * t182 * t53 - t82 * t290;
1787: t382 = t71 * t208;
1788: t394 = t2 * t67;
1789: t395 = t394 * t122;
1790: t398 = t352 * t156;
1791: t402 = t17 * t12;
1792: t403 = t39 * ZA;
1793: t404 = t402 * t403;
1794: t407 = t269 * t208;
1795: t411 = t49 * t83 * t11;
1796: t413 = t46 * t69;
1797: t419 = -0.4e1 * t331 * t382 + 0.2e1 * t115 * t58 * t204 - 0.2e1 * t145 * t60 + 0.12e2 * t274 * t131 + 0.2e1 * t346 * t232 + 0.8e1 * t395 * t53 - 0.8e1 * t398 * t90 * t176 - 0.64e2 * t260 * t404 + 0.4e1 * t219 * t407 + t168 * t411 - 0.6e1 * t413 * t74 - 0.2e1 * t110 * t308 * t57;
1798: t424 = t16 * t11;
1799: t425 = t212 * t424;
1800: t427 = t258 * t181;
1801: t430 = t67 * t29;
1802: t431 = t366 * t430;
1803: t432 = t121 * t49;
1804: t433 = t432 * t52;
1805: t436 = nz * t12;
1806: t437 = t436 * t18;
1807: t440 = t29 * xc;
1808: t441 = t440 * t121;
1809: t442 = t394 * t441;
1810: t445 = t67 * t37;
1811: t446 = t445 * t39;
1812: t448 = nz * t18 * t91;
1813: t453 = t352 * t49;
1814: t458 = t8 * t23;
1815: t462 = t81 * t458;
1816: t463 = t30 * t19;
1817: t466 = -t47 * t209 + t116 * t425 - 0.8e1 * t427 * t275 + 0.8e1 * t431 * t433 - 0.2e1 * t253 * t437 - 0.8e1 * t442 * t53 - 0.2e1 * t446 * t448 + 0.2e1 * t175 * t312 + 0.6e1 * t453 * t129 * t208 + 0.8e1 * t115 * t18 * t458 * t30 + 0.8e1 * t462 * t463;
1818: t470 = t436 * t58;
1819: t475 = t2 * t121 * t440 * t25;
1820: t485 = t212 * t73;
1821: t488 = t67 * t72 * t1;
1822: t490 = t39 * xc;
1823: t501 = 0.4e1 * t374 * t355 * t52 + 0.2e1 * t446 * t470 - 0.8e1 * t475 * t53 - 0.2e1 * t446 * t437 - 0.4e1 * t36 * t38 * t39 * t15 * t12 - t116 * t485 + 0.8e1 * t488 * 0.3141592654e1 * t12 * t490 - t207 * t183 - 0.2e1 * t182 * t232 - 0.6e1 * t413 * t245 - 0.4e1 * t413 * t382;
1824: t503 = t115 * t8;
1825: t510 = t355 * t19;
1826: t513 = t432 * t208;
1827: t525 = t38 * t40 * t18;
1828: t533 = -0.4e1 * t503 * t216 - 0.4e1 * t89 * t90 * t92 * t15 - 0.16e2 * t462 * t510 + 0.8e1 * t431 * t513 - 0.4e1 * t78 * t131 + t47 * t183 - 0.2e1 * t67 * t83 * t99 + 0.4e1 * t331 * t225 + 0.16e2 * t260 * t525 - 0.4e1 * t89 * t90 * t237 * t58 - t207 * t53;
1829: t536 = t28 * t37;
1830: t538 = t490 * t100;
1831: t541 = t334 * t441;
1832: t547 = t394 * t30;
1833: t550 = t212 * t19;
1834: t553 = t366 * t441;
1835: t556 = nz * t17;
1836: t571 = -0.8e1 * t427 * t131 + 0.16e2 * t394 * t536 * t538 + 0.16e2 * t541 * t336 + 0.2e1 * t453 * t129 * t158 - 0.8e1 * t547 * t147 + 0.4e1 * t503 * t550 - 0.8e1 * t553 * t270 + 0.4e1 * t556 * ZB * t92 * t39 - 0.2e1 * t67 * t91 * t99 - t82 * t425 + 0.4e1 * t78 * t275 + 0.2e1 * t78 * xc * t41 * t57;
1837: t583 = t90 * t317;
1838: t594 = t212 * t158;
1839: t596 = t152 * t67;
1840: t602 = t67 * t17;
1841: t607 = 0.8e1 * t367 * t407 - 0.4e1 * t98 * t99 * t59 + 0.16e2 * t260 * t18 * ZA * t57 + 0.2e1 * t321 * t583 - 0.6e1 * t174 * t368 * t52 - 0.4e1 * t89 * t90 * ZA * t15 * t12 + t116 * t594 - 0.8e1 * t596 * t136 - 0.4e1 * t98 * t99 * t327 + 0.2e1 * t602 * t99 + 0.2e1 * t164 * t583;
1842: t613 = t83 * t25;
1843: t616 = t81 * t156;
1844: t627 = t90 * t231;
1845: t630 = t91 * t16;
1846: t638 = 0.4e1 * t196 * t90 * t208 - 0.8e1 * t130 * t60 - 0.2e1 * t613 * t99 + 0.6e1 * t616 * t197 - 0.8e1 * t547 * t131 + 0.8e1 * t67 * t18 * t37 * t142 + 0.2e1 * t145 * t328 - 0.6e1 * t196 * t627 + 0.8e1 * t630 * t67 * t142 - 0.8e1 * t547 * t275 + 0.8e1 * t395 * t209;
1847: t643 = t77 * t355;
1848: t648 = t115 * t458;
1849: t651 = t134 * t67;
1850: t657 = t30 * t304;
1851: t660 = t30 * t146;
1852: t665 = t25 * t17;
1853: t668 = t50 * t424;
1854: t671 = -0.4e1 * t321 * t90 * t146 - 0.6e1 * t643 * t232 + 0.8e1 * t182 * t209 - 0.16e2 * t648 * t510 + 0.8e1 * t651 * t136 + 0.8e1 * t89 * t4 * t100 - 0.2e1 * t374 * t657 - 0.8e1 * t648 * t660 + 0.8e1 * t130 * t328 + 0.2e1 * t665 * t99 + 0.2e1 * t346 * t668;
1855: t672 = t90 * t424;
1856: t676 = t120 * t536;
1857: t680 = t436 * t41;
1858: t688 = t366 * t67 * t440;
1859: t696 = xc * t12;
1860: t697 = t696 * t18;
1861: t701 = t252 * t141;
1862: t702 = t90 * t221;
1863: t705 = 0.2e1 * t196 * t672 - t47 * t347 + 0.16e2 * t676 * t538 - t116 * t85 - 0.2e1 * t253 * t680 + t207 * t194 + 0.4e1 * t98 * t99 * t19 - 0.8e1 * t688 * t433 + 0.16e2 * t541 * t301 - 0.6e1 * t312 * t190 + 0.4e1 * t352 * t88 * t35 * t697 + 0.2e1 * t701 * t702;
1864: t712 = t24 * t430;
1865: t713 = t28 * t49;
1866: t721 = t1 * t17 * t11;
1867: t726 = ZB * xc;
1868: t737 = nz * t91;
1869: t741 = 0.8e1 * t346 * t209 + 0.2e1 * t712 * t713 * t424 + 0.8e1 * t130 * t275 - t47 * t668 + t116 * t721 - 0.8e1 * t688 * t513 + 0.4e1 * t352 * t27 * t212 * t726 + 0.8e1 * t648 * t463 + 0.4e1 * t274 * t60 - 0.4e1 * t374 * t355 * t208 - 0.4e1 * t253 * t737 * t41;
1870: t745 = t269 * t231;
1871: t749 = t1 * t28 * t265;
1872: t757 = t16 * t39;
1873: t758 = t696 * t757;
1874: t762 = t69 * t49;
1875: t772 = t355 * t100;
1876: t775 = t81 * t353;
1877: t778 = -0.8e1 * t398 * t90 * t190 - 0.2e1 * t278 * t745 + 0.4e1 * t749 * t53 + 0.32e2 * t394 * t29 * t28 * t17 * t40 - 0.8e1 * t78 * t758 + t350 * nz * t762 - 0.6e1 * t87 * t49 * t186 * t52 - 0.8e1 * t553 * t407 - 0.4e1 * t749 * t209 + 0.16e2 * t648 * t772 - 0.6e1 * t775 * t375;
1878: t790 = t212 * t304;
1879: t793 = t156 * 0.3141592654e1;
1880: t795 = t355 * t304;
1881: t800 = t91 * t39;
1882: t801 = t800 * nz;
1883: t807 = t2 * t28;
1884: t808 = t807 * t726;
1885: t811 = -0.2e1 * t616 * t672 - 0.2e1 * t446 * t680 - 0.2e1 * t78 * xc * t58 * t57 + 0.8e1 * t367 * t270 - t82 * t790 + t115 * t51 * t793 - 0.2e1 * t775 * t795 + 0.8e1 * t123 * t209 + 0.2e1 * t665 * t801 - 0.2e1 * t67 * t41 * t64 - 0.32e2 * t808 * t43;
1886: t812 = t117 * t51;
1887: t821 = t24 * t355;
1888: t827 = t90 * t304;
1889: t840 = t800 * t41;
1890: t844 = -t116 * t812 - 0.2e1 * t110 * t25 * t58 * t57 - 0.4e1 * t78 * t328 + t82 * t485 - 0.4e1 * t821 * t407 + 0.4e1 * t196 * t90 * t52 + 0.2e1 * t196 * t827 + t82 * t325 + 0.2e1 * t253 * t448 - 0.32e2 * t402 * t67 * t807 * t490 - t207 * t232 + 0.12e2 * t186 * t90 * ZB * t37 * t840;
1891: t849 = t1 * t51;
1892: t850 = t849 * t17;
1893: t860 = t269 * t424;
1894: t863 = t273 * t187;
1895: t874 = 0.16e2 * t462 * t772 - t116 * t850 + 0.16e2 * t553 * t371 + t116 * t288 - 0.12e2 * t97 * t57 * t109 * t697 + t82 * t594 - 0.2e1 * t278 * t860 - 0.2e1 * t863 * t305 - 0.16e2 * t180 * t259 * t311 * t201 - 0.6e1 * t863 * t74 + 0.8e1 * t174 * t191;
1896: t879 = xc * ZA;
1897: t888 = t67 * t51;
1898: t901 = ZA * t17;
1899: t903 = t368 * t901 * t11;
1900: t908 = -0.2e1 * t352 * t51 * t156 * t35 + 0.64e2 * t879 * t189 * t807 * t40 + 0.2e1 * t46 * t58 * t37 * t39 - t888 * t50 + t105 * t411 - 0.16e2 * t335 * t301 + 0.8e1 * t152 * t25 * t136 - 0.8e1 * t278 * t407 + 0.2e1 * t712 * t713 * t231 - 0.16e2 * t367 * t903 + 0.2e1 * t145 * t318;
1901: t923 = t71 * t424;
1902: t926 = t87 * t458;
1903: t927 = t28 * ZA;
1904: t944 = 0.8e1 * t354 * t355 * t190 - 0.8e1 * t110 * t16 * t25 * t800 - 0.2e1 * t374 * t30 * t73 - 0.16e2 * t354 * t30 * t176 - 0.2e1 * t244 * t923 - 0.32e2 * t926 * t927 * t696 * t41 - 0.32e2 * t808 * t525 + 0.6e1 * t749 * t232 - 0.8e1 * t188 * t177 + 0.4e1 * t36 * t58 * ZA * t57 + 0.4e1 * t821 * t270;
1905: t948 = t90 * t327;
1906: t961 = t30 * t100;
1907: t964 = t29 * t49;
1908: t981 = t106 * t1;
1909: t983 = -0.2e1 * t219 * t220 * t100 + 0.2e1 * t321 * t948 - 0.16e2 * t189 * ZA * t99 * t12 - 0.2e1 * t369 * nz * t69 * t368 + 0.2e1 * t374 * t795 - 0.8e1 * t462 * t961 - 0.8e1 * t244 * t964 * t208 + 0.2e1 * t413 * t923 + 0.4e1 * t36 * t38 * t40 * t58 - 0.2e1 * t87 * t51 * t49 * t1 * ZA + t888 * nz * t762 + t115 * t981;
1910: t1012 = 0.6e1 * t616 * t627 - t82 * t213 + 0.2e1 * t775 * t657 - 0.12e2 * t215 * t550 - 0.6e1 * t145 * t131 + 0.2e1 * t81 * t41 * t204 + 0.6e1 * ZB * t48 * t49 * t370 - 0.4e1 * t70 * t382 + 0.2e1 * t446 * t255 + 0.8e1 * t89 * t4 * t327 - 0.4e1 * t56 * t147;
1911: t1018 = t212 * t100;
1912: t1029 = t212 * t327;
1913: t1040 = 0.6e1 * t70 * t245 + 0.2e1 * t56 * t328 + t207 * t668 + 0.4e1 * t503 * t1018 + 0.2e1 * t253 * t470 - 0.6e1 * t398 * t35 * t208 - 0.8e1 * t331 * t964 * t52 - 0.4e1 * t503 * t1029 + 0.6e1 * t821 * t745 + 0.4e1 * t63 * t37 * t142 + 0.16e2 * t260 * t38 * t840;
1914: t1068 = t207 * t347 - 0.2e1 * t164 * t702 - 0.2e1 * t331 * t964 * t73 + 0.8e1 * t374 * t30 * t52 + 0.16e2 * t278 * t903 + 0.2e1 * t863 * t923 + 0.6e1 * t445 * t141 * t165 - 0.2e1 * t164 * t90 * t100 + 0.6e1 * t331 * t74 - 0.2e1 * t182 * t668 - 0.2e1 * t115 * t41 * t204;
1915: t1079 = t58 * t8;
1916: t1091 = t807 * t29;
1917: t1092 = t665 * t40;
1918: t1101 = ZB * t91;
1919: t1102 = t403 * nz;
1920: t1105 = -0.4e1 * t58 * ZB * ZA * t64 - t82 * t850 + 0.2e1 * t821 * t860 + t81 * t51 * t793 + 0.2e1 * t3 * t25 * t1079 * t90 + t82 * t721 - 0.2e1 * t643 * t668 + 0.16e2 * t926 * t927 * t29 * t91 * t41 + 0.32e2 * t1091 * t1092 - 0.2e1 * t219 * t220 * t19 + 0.4e1 * t139 * ZA * t64 + 0.4e1 * t1101 * t1102;
1921: t1108 = t849 * t72;
1922: t1121 = t737 * t15;
1923: t1124 = t29 * t12;
1924: t1133 = t116 * t1108 - 0.8e1 * t475 * t209 - 0.32e2 * t807 * xc * t1092 + 0.2e1 * t278 * t269 * t73 + t82 * t812 - 0.6e1 * t56 * t131 + 0.2e1 * t253 * t1121 + 0.16e2 * t926 * t927 * t1124 * t41 + t168 * t263 - 0.2e1 * t616 * t827 + t81 * t981;
1925: t1134 = t394 * t28;
1926: t1159 = -0.8e1 * t1134 * t29 * t18 * t57 + t82 * t118 - 0.12e2 * t215 * t1018 + 0.2e1 * t602 * t801 - t168 * t341 + 0.2e1 * t67 * t58 * t64 + t168 * t344 - 0.6e1 * t174 * t368 * t208 + 0.16e2 * t553 * t903 + t116 * t790 - 0.4e1 * t36 * t38 * t800 * t15;
1927: t1161 = nz * t83;
1928: t1173 = ZB * t12;
1929: t1196 = 0.4e1 * t1161 * ZB * t39 * ZA - 0.4e1 * t215 * t1029 - 0.8e1 * t488 * 0.3141592654e1 * t39 * xc + 0.32e2 * t821 * ZA * t8 * t1173 * t18 - 0.8e1 * t427 * t147 + 0.6e1 * t701 * t165 - 0.16e2 * t926 * t927 * t1124 * t18 - 0.8e1 * t1091 * t63 * t57 - 0.8e1 * t442 * t209 - 0.8e1 * t462 * t660 - 0.6e1 * t398 * t35 * t52;
1930: t1228 = 0.2e1 * t413 * t305 - 0.8e1 * t648 * t961 - 0.16e2 * t87 * t27 * t23 * t28 * ZA * t29 + 0.4e1 * t189 * t1102 - 0.4e1 * t87 * t1079 * t212 * t879 + 0.2e1 * t164 * t948 - 0.2e1 * t70 * t923 + 0.2e1 * t164 * t322 + 0.2e1 * t446 * t1121 + 0.2e1 * t863 * t964 * t304 - t82 * t1108 + 0.16e2 * t676 * t490 * t19;
1931: t1234 = t25 * ZB;
1932: t1235 = t1234 * t28;
1933: t1236 = t365 * t91;
1934: t1240 = ZB * t121;
1935: t1241 = t1240 * t77;
1936: t1242 = t39 * t39;
1937: t1243 = t12 * t1242;
1938: t1244 = xc * t72;
1939: t1245 = t1243 * t1244;
1940: t1248 = t365 * t25;
1941: t1252 = t243 * nz;
1942: t1257 = t23 * t1;
1943: t1258 = t1240 * t1257;
1944: t1259 = t67 * t12;
1945: t1260 = xc * t16;
1946: t1268 = t1234 * t121;
1947: t1269 = t1268 * t23;
1948: t1272 = t1242 * t91;
1949: t1280 = t67 * xc;
1950: t1284 = t28 * t28;
1951: t1285 = t67 * t1284;
1952: t1287 = t1285 * t2 * ZB;
1953: t1288 = t17 * xc;
1954: t1289 = t1243 * t1288;
1955: t1292 = 0.2e1 * t1235 * t1236 * t17 + 0.8e1 * t1241 * t1245 + 0.4e1 * t927 * t1248 * t91 - 0.2e1 * t1252 * ZB * t1242 * t91 - 0.8e1 * t1258 * t1259 * t1260 - 0.4e1 * t1235 * t2 * t83 * t39 + 0.16e2 * t1269 * t758 + 0.2e1 * t1252 * t189 * t1272 - 0.2e1 * t1252 * t83 * t1242 * ZB + 0.8e1 * t1258 * t630 * t1280 - 0.32e2 * t1287 * t1289;
1956: t1293 = t365 * t83;
1957: t1300 = ZA * t1284;
1958: t1304 = t17 * t1242 * t25 * t12;
1959: t1307 = t927 * t2;
1960: t1311 = t23 * t2;
1961: t1312 = t1300 * t1311;
1962: t1316 = t1234 * t1284;
1963: t1317 = t1316 * t1311;
1964: t1321 = t1240 * t23;
1965: t1331 = t1240 * t23 * t67;
1966: t1332 = t40 * t1244;
1967: t1338 = t1243 * t1260;
1968: t1344 = -0.2e1 * t1235 * t1293 - 0.16e2 * t181 * t365 * t901 * t12 - 0.64e2 * t1300 * t258 * t1304 + 0.8e1 * t1307 * t613 * t39 + 0.64e2 * t1312 * t265 * t402 - 0.32e2 * t1317 * t1288 * t12 - 0.16e2 * t1321 * t67 * t39 * t1244 + 0.2e1 * t1235 * nz * t1272 * t17 + 0.16e2 * t1331 * t1332 + 0.64e2 * t1300 * t292 * t1304 - 0.8e1 * t1241 * t1338 - 0.2e1 * t243 * t1293 * ZB;
1969: t1346 = t1316 * t2;
1970: t1349 = t927 * nz;
1971: t1350 = t25 * t1242;
1972: t1354 = t1268 * t1257;
1973: t1366 = t1268 * t1;
1974: t1370 = t29 * t17;
1975: t1371 = t1243 * t1370;
1976: t1386 = -0.32e2 * t1346 * t1289 + 0.4e1 * t1349 * t1350 * t91 + 0.8e1 * t1354 * t1260 * t12 - 0.16e2 * t181 * nz * t901 * t1243 - 0.4e1 * t1235 * t2 * t91 * t39 + 0.8e1 * t1366 * t152 * t1242 + 0.32e2 * t1287 * t1371 + 0.8e1 * t1258 * t1280 * t152 - 0.8e1 * t1354 * t1260 * t91 + 0.128e3 * t1300 * t365 * xc * t1092 + 0.8e1 * t1366 * t1338;
1977: t1387 = t1257 * t12;
1978: t1391 = t1240 * t1;
1979: t1399 = t1272 * t1260;
1980: t1412 = t1285 * t1311;
1981: t1427 = -0.8e1 * t1268 * t1387 * t16 - 0.8e1 * t1391 * t67 * t1242 * t1244 - 0.4e1 * t1134 * t1101 * t39 + 0.8e1 * t1241 * t1399 - 0.8e1 * t1258 * t596 + 0.4e1 * t927 * t1293 * t25 - 0.16e2 * t1331 * t758 + 0.8e1 * t1307 * t665 * t39 + 0.32e2 * t1412 * t1370 * t1173 + 0.8e1 * t1307 * t665 * t800 + 0.8e1 * t1391 * t1259 * t1242 * t16 - 0.8e1 * t1391 * t1259 * t1242 * t72;
1982: t1456 = t365 * ZB;
1983: t1468 = 0.4e1 * t927 * t1248 * t17 - 0.2e1 * t1235 * nz * t1242 * t91 + 0.8e1 * t1366 * t1244 * t1242 - 0.16e2 * t1269 * t134 * t39 + 0.8e1 * t1268 * t1257 * t72 * xc + 0.16e2 * t1321 * t1259 * t757 + 0.32e2 * t1317 * t1370 * t12 + 0.4e1 * t1349 * t613 * t1242 + 0.2e1 * t243 * t1456 * t17 - 0.64e2 * t1285 * t365 * t12 * t189 * t490 - 0.8e1 * t1354 * t152 * xc;
1984: t1472 = t1316 * t365;
1985: t1474 = t1124 * t39 * t17;
1986: t1478 = t17 * t91;
1987: t1504 = t72 * t39;
1988: t1511 = 0.4e1 * t1134 * t189 * t800 + 0.64e2 * t1472 * t1474 + 0.4e1 * t1235 * t2 * t1478 * t39 + 0.4e1 * t1349 * t665 * t1242 - 0.8e1 * t1258 * t1280 * t72 + 0.2e1 * t1252 * t189 * t1242 + 0.2e1 * t243 * t365 * t189 * t91 + 0.4e1 * t927 * t365 * t1478 * t25 - 0.128e3 * t1300 * t1248 * t1474 - 0.2e1 * t1235 * t1236 + 0.16e2 * t1269 * t1504 * xc + 0.2e1 * t1235 * t365 * t17;
1989: t1545 = -0.2e1 * t1235 * t1161 * t1242 + 0.4e1 * t1349 * t1350 * t1478 - 0.8e1 * t1366 * t1245 + 0.2e1 * t1235 * t556 * t1242 - 0.32e2 * t1412 * t402 * t726 - 0.8e1 * t1366 * t1399 + 0.8e1 * t1258 * t651 - 0.2e1 * t243 * t1456 * t91 + 0.8e1 * t1268 * t1387 * t72 - 0.16e2 * t1269 * t1332 + 0.4e1 * t1134 * t189 * t39 + 0.16e2 * t1269 * t152 * t39;
1990: t1564 = t1260 * t800;
1991: t1583 = 0.64e2 * t1285 * t1456 * t1474 - 0.64e2 * t1472 * t1288 * t40 - 0.8e1 * t1366 * t134 * t1242 + 0.8e1 * t1307 * t362 * t39 + 0.4e1 * t1235 * t2 * t17 * t39 + 0.32e2 * t1346 * t1371 - 0.16e2 * t1269 * t1564 - 0.16e2 * t1321 * t1259 * t1504 + 0.16e2 * t1331 * t1564 - 0.64e2 * t1312 * t29 * t25 * t402 - 0.4e1 * t1134 * t83 * t39 * ZB - 0.32e2 * t181 * t2 * t404;
1993: _PC2B = (t1133 + t1196 + t1068 + t811 + t466 + t1012 + t381 + t162 + t249 + t533 + t844 + t104 + t1159 + t571 + t211 + t874 + t607 + t339 + t296 + t638 + t908 + t671 + t419 + t983 + t705 + t1105 + t501 + t778 + t1040 + t1228 + t741 + t944) / (t1292 + t1344 + t1386 + t1427 + t1468 + t1511 + t1545 + t1583);
1994: /****************************************************************************************/
1995: t1 = nz * nz;
1996: t2 = t1 * nz;
1997: t3 = t2 * nx;
1998: t4 = nx * 0.3141592654e1;
1999: t5 = t4 * xc;
2000: t6 = PetscSinReal(t5);
2001: t7 = 0.3141592654e1 * 0.3141592654e1;
2002: t9 = t3 * t6 * t7;
2003: t10 = xc * xc;
2004: t11 = ZA * ZA;
2005: t12 = t10 * t11;
2006: t13 = nz * 0.3141592654e1;
2007: t14 = PetscExpReal(t13);
2008: t15 = t14 * t14;
2009: t16 = xc * nz;
2010: t18 = PetscExpReal(t16 * 0.3141592654e1);
2011: t19 = t18 * t18;
2012: t20 = t19 * t18;
2013: t21 = t15 * t20;
2014: t22 = t12 * t21;
2015: t25 = nx * t6;
2016: t26 = t1 * 0.3141592654e1;
2017: t27 = t25 * t26;
2018: t28 = ZA * ZB;
2019: t29 = t18 * t15;
2020: t30 = t28 * t29;
2021: t33 = t25 * nz;
2022: t34 = t11 * t15;
2023: t35 = t19 * t19;
2024: t36 = t35 * t18;
2025: t40 = t25 * t1;
2026: t41 = 0.3141592654e1 * t11;
2027: t42 = t15 * t36;
2028: t43 = t41 * t42;
2029: t46 = nx * nx;
2030: t47 = t1 * t46;
2031: t48 = t47 * t11;
2032: t49 = t7 * xc;
2033: t50 = t35 * t15;
2034: t51 = t49 * t50;
2035: t55 = PetscSinReal(t4);
2036: t56 = t46 * nx * t55;
2037: t58 = t56 * nz * t7;
2038: t59 = ZB * ZB;
2039: t60 = t10 * t59;
2040: t61 = t15 * t14;
2041: t62 = t19 * t61;
2042: t63 = t60 * t62;
2043: t66 = t19 * t14;
2044: t67 = t60 * t66;
2045: t70 = t28 * t42;
2046: t73 = PetscCosReal(t5);
2047: t74 = t47 * t73;
2048: t75 = t7 * t11;
2049: t77 = t75 * t10 * t36;
2050: t80 = t73 * t46;
2051: t81 = t80 * nz;
2052: t82 = 0.3141592654e1 * t59;
2053: t83 = t82 * t42;
2054: t87 = xc * t11;
2055: t88 = t87 * t62;
2056: t91 = nz * nx;
2057: t92 = t55 * t61;
2058: t96 = nx * t55;
2059: t98 = t96 * t2 * t7;
2060: t101 = xc * t59;
2061: t102 = t101 * t62;
2062: t108 = t1 * t1;
2063: t109 = t108 * t7;
2064: t111 = t59 * t35;
2065: t112 = t111 * t15;
2066: t115 = t35 * t20;
2067: t123 = t1 * nx * t55;
2068: t124 = t61 * t35;
2069: t127 = t35 * t19;
2070: t128 = t61 * t127;
2071: t129 = t60 * t128;
2072: t132 = t56 * t16;
2073: t133 = t7 * t59;
2074: t134 = t133 * t124;
2075: t137 = 0.6e1 * t58 * t88 - 0.2e1 * t91 * t92 * t11 + 0.2e1 * t98 * t63 - 0.6e1 * t58 * t102 - 0.2e1 * t91 * t92 * t59 - 0.16e2 * t109 * xc * t112 - 0.2e1 * t91 * t6 * t115 * t59 + 0.12e2 * t40 * t83 + t123 * t41 * t124 - 0.2e1 * t58 * t129 + 0.4e1 * t132 * t134;
2076: t139 = t56 * 0.3141592654e1;
2077: t140 = t111 * t14;
2078: t144 = t49 * t124;
2079: t147 = t91 * t55;
2080: t148 = t61 * ZA;
2081: t154 = ZA * t115 * xc * ZB;
2082: t157 = t7 * 0.3141592654e1;
2083: t159 = t96 * t108 * t157;
2084: t160 = t10 * xc;
2085: t161 = t160 * t59;
2086: t162 = t35 * t14;
2087: t163 = t161 * t162;
2088: t166 = t28 * t162;
2089: t169 = t80 * t13;
2090: t170 = t101 * t42;
2091: t173 = t2 * t11;
2092: t174 = t96 * t173;
2093: t175 = t7 * t10;
2094: t179 = t59 * t15;
2095: t184 = t15 * t15;
2096: t193 = t139 * t140 + 0.4e1 * t56 * nz * t11 * t144 + 0.4e1 * t147 * t148 * ZB + 0.4e1 * t27 * t154 + 0.8e1 * t159 * t163 - 0.12e2 * t147 * t166 + 0.2e1 * t169 * t170 - 0.16e2 * t174 * t175 * t124 + 0.2e1 * t33 * t179 * t20 - 0.2e1 * t33 * t11 * t36 * t184 + 0.2e1 * t56 * t61 * 0.3141592654e1 * ZA * ZB;
2097: t194 = t173 * 0.3141592654e1;
2098: t195 = xc * t15;
2099: t196 = t195 * t19;
2100: t202 = t15 * t115;
2101: t203 = t28 * t202;
2102: t206 = t96 * t26;
2103: t207 = t14 * t127;
2104: t208 = t101 * t207;
2105: t211 = t12 * t128;
2106: t218 = t11 * t61;
2107: t219 = t218 * t35;
2108: t221 = t108 * ZA;
2109: t223 = t7 * ZB;
2110: t224 = t223 * t50;
2111: t227 = ZA * xc;
2112: t228 = ZB * t15;
2113: t229 = t228 * t36;
2114: t230 = t227 * t229;
2115: t233 = t87 * t207;
2116: t236 = t6 * t11;
2117: t240 = -0.4e1 * t194 * t196 + 0.4e1 * t194 * t195 * t127 + 0.4e1 * t33 * t203 - 0.12e2 * t206 * t208 + 0.2e1 * t58 * t211 - 0.16e2 * t47 * t10 * t133 * t50 + t139 * t219 - 0.32e2 * t221 * t10 * t224 - 0.4e1 * t169 * t230 - 0.6e1 * t98 * t233 + 0.2e1 * t91 * t236 * t20;
2118: t244 = t227 * t228 * t20;
2119: t252 = t184 * t18;
2120: t253 = t101 * t252;
2121: t256 = t35 * t35;
2122: t257 = t256 * t14;
2123: t258 = t28 * t257;
2124: t261 = t108 * t11;
2125: t263 = t7 * t35;
2126: t268 = ZB * t61 * t35;
2127: t273 = t96 * t108 * t160;
2128: t274 = t157 * ZB;
2129: t276 = t274 * t148 * t35;
2130: t279 = t101 * t21;
2131: t282 = 0.3141592654e1 * xc;
2132: t283 = t59 * t36;
2133: t284 = t282 * t283;
2134: t289 = 0.4e1 * t169 * t244 - 0.4e1 * t132 * t133 * t162 - 0.2e1 * t147 * t140 - 0.2e1 * t27 * t253 + 0.2e1 * t139 * t258 + 0.16e2 * t261 * t10 * t263 * t15 - 0.16e2 * t206 * t227 * t268 - 0.16e2 * t273 * t276 - 0.6e1 * t27 * t279 - 0.4e1 * t40 * t284 - 0.32e2 * t9 * t230;
2135: t290 = t1 * t11;
2136: t291 = t96 * t290;
2137: t297 = t59 * t61;
2138: t298 = t297 * t127;
2139: t300 = ZB * t36;
2140: t301 = t227 * t300;
2141: t304 = t1 * t59;
2142: t305 = t184 * t35;
2143: t310 = t46 * ZB;
2144: t311 = t184 * ZA;
2145: t312 = t310 * t311;
2146: t314 = t60 * t21;
2147: t317 = t1 * ZA;
2148: t318 = ZB * t35;
2149: t321 = t1 * t256;
2150: t324 = t96 * t261;
2151: t325 = t10 * t157;
2152: t326 = t325 * t124;
2153: t329 = -0.4e1 * t291 * t282 * t128 + t123 * t82 * t62 - t139 * t298 + 0.12e2 * t27 * t301 + t304 * t305 - 0.2e1 * t58 * t12 * t66 - 0.2e1 * t312 + 0.8e1 * t9 * t314 + 0.2e1 * t317 * t318 + 0.2e1 * t321 * t28 - 0.8e1 * t324 * t326;
2154: t331 = t28 * t124;
2155: t334 = 0.3141592654e1 * t15;
2156: t335 = t334 * t127;
2157: t338 = t35 * ZA;
2158: t341 = t46 * t256;
2159: t344 = t46 * t11;
2160: t346 = t46 * t59;
2161: t348 = t297 * t35;
2162: t351 = ZA * t10;
2163: t352 = t351 * t300;
2164: t355 = t1 * ZB;
2165: t362 = 0.12e2 * t147 * t331 - 0.4e1 * t173 * t335 - 0.2e1 * t310 * t338 - 0.2e1 * t341 * t28 - t344 * t305 - t346 * t305 + 0.2e1 * t147 * t348 + 0.16e2 * t9 * t352 + 0.2e1 * t355 * t311 + t290 * t305 + 0.2e1 * t33 * t34 * t20;
2166: t363 = t36 * t184;
2167: t364 = t87 * t363;
2168: t368 = t47 * t73 * t7;
2169: t373 = t160 * t157;
2170: t374 = t373 * t124;
2171: t377 = t311 * t35;
2172: t380 = t12 * t62;
2173: t386 = ZB * t10 * ZA * t15 * t20;
2174: t389 = t87 * t66;
2175: t393 = t56 * t1 * t10;
2176: t401 = 0.2e1 * t27 * t364 - 0.16e2 * t368 * t279 - t123 * t41 * t257 + 0.8e1 * t324 * t374 + 0.2e1 * t355 * t377 - 0.2e1 * t98 * t380 - 0.16e2 * t9 * t386 + 0.2e1 * t58 * t389 + 0.16e2 * t393 * t276 + t123 * t82 * t162 - 0.2e1 * t33 * t179 * t36;
2177: t412 = t11 * t14 * t127;
2178: t416 = t11 * t19;
2179: t417 = t416 * t61;
2180: t421 = t96 * t2 * ZA;
2181: t426 = t56 * nz * ZA;
2182: t427 = t318 * t14;
2183: t428 = t49 * t427;
2184: t431 = t82 * t29;
2185: t434 = t87 * t21;
2186: t442 = 0.2e1 * t33 * t11 * t184 * t18 + 0.4e1 * t81 * t284 - t139 * t412 + 0.2e1 * t147 * t219 - 0.2e1 * t147 * t417 + 0.32e2 * t421 * t175 * t268 + 0.8e1 * t426 * t428 + 0.4e1 * t81 * t431 - 0.2e1 * t169 * t434 - 0.2e1 * t98 * t129 - 0.32e2 * t47 * t28 * t51;
2187: t443 = t184 * t20;
2188: t447 = t61 * 0.3141592654e1;
2189: t448 = t447 * t11;
2190: t450 = t49 * t268;
2191: t453 = t60 * t42;
2192: t456 = t41 * t202;
2193: t463 = t101 * t443;
2194: t469 = t41 * xc * t20;
2195: t474 = -0.8e1 * t27 * t87 * t443 - t56 * t448 - 0.8e1 * t426 * t450 + 0.8e1 * t368 * t453 + 0.4e1 * t40 * t456 + 0.4e1 * t40 * t431 - 0.4e1 * t81 * t456 - 0.4e1 * t27 * t463 + 0.6e1 * t139 * t331 + 0.2e1 * t40 * t469 - 0.16e2 * t9 * t434;
2196: t482 = t108 * t10;
2197: t492 = nz * t46;
2198: t493 = t492 * t11;
2199: t495 = t282 * t19 * t184;
2200: t498 = t56 * t290;
2201: t499 = t325 * t162;
2202: t502 = t416 * t14;
2203: t504 = t60 * t207;
2204: t507 = -t123 * t82 * t257 - 0.4e1 * t169 * t301 + t123 * t41 * t162 + 0.16e2 * t482 * t7 * t112 - 0.12e2 * t206 * t102 - t123 * t82 * t66 - 0.4e1 * t147 * t258 - 0.4e1 * t493 * t495 - 0.8e1 * t498 * t499 + t139 * t502 - 0.2e1 * t98 * t504;
2205: t508 = t101 * t162;
2206: t512 = t41 * t115 * xc;
2207: t515 = t87 * t42;
2208: t520 = ZB * t184;
2209: t522 = t227 * t520 * t18;
2210: t525 = t492 * t59;
2211: t528 = t6 * t59;
2212: t532 = t520 * t20;
2213: t533 = t351 * t532;
2214: t539 = t447 * t59;
2215: t544 = 0.8e1 * t206 * t508 - 0.2e1 * t40 * t512 - 0.16e2 * t368 * t515 + 0.12e2 * t206 * t88 + 0.4e1 * t27 * t522 + 0.4e1 * t525 * t495 - 0.4e1 * t91 * t528 * t36 - 0.16e2 * t368 * t533 - 0.16e2 * t206 * t227 * t427 - t56 * t539 - 0.2e1 * t132 * t133 * t66;
2216: t551 = t87 * t162;
2217: t554 = t351 * t229;
2218: t560 = t59 * t19;
2219: t561 = t560 * t14;
2220: t564 = t101 * t202;
2221: t567 = t87 * t252;
2222: t573 = t227 * t228 * t115;
2223: t578 = 0.4e1 * t33 * t70 + 0.4e1 * t493 * t335 - 0.4e1 * t58 * t551 + 0.16e2 * t9 * t554 - 0.4e1 * t33 * t28 * t252 + 0.2e1 * t147 * t561 + 0.2e1 * t169 * t564 - 0.2e1 * t27 * t567 - 0.8e1 * t324 * t499 - 0.4e1 * t169 * t573 + 0.12e2 * t27 * t244;
2224: t579 = t82 * t202;
2225: t591 = t282 * t115 * t59;
2226: t598 = t101 * t66;
2227: t606 = -0.4e1 * t81 * t579 - 0.2e1 * t169 * t567 - 0.6e1 * t27 * t170 + 0.8e1 * t169 * t203 + 0.2e1 * t98 * t67 + 0.2e1 * t81 * t591 + 0.32e2 * t368 * t244 - 0.2e1 * t27 * t564 + 0.4e1 * t206 * t598 + 0.16e2 * t9 * t170 + 0.2e1 * t33 * t283 * t184;
2228: t608 = t373 * t162;
2229: t611 = t59 * t184;
2230: t617 = t101 * t29;
2231: t624 = t227 * ZB * t18 * t15;
2232: t629 = t157 * t59;
2233: t630 = t629 * t124;
2234: t633 = t3 * t6;
2235: t634 = t175 * t283;
2236: t644 = 0.8e1 * t498 * t608 + 0.2e1 * t33 * t611 * t18 - 0.4e1 * t206 * t389 - 0.2e1 * t27 * t617 - 0.4e1 * t169 * t154 + 0.4e1 * t27 * t624 + 0.12e2 * t27 * t230 - 0.8e1 * t393 * t630 - 0.8e1 * t633 * t634 + 0.16e2 * t47 * t7 * t101 * t50 + 0.2e1 * t123 * t447 * t28;
2237: t645 = t41 * t29;
2238: t648 = t2 * 0.3141592654e1;
2239: t649 = t648 * xc;
2240: t650 = t560 * t184;
2241: t656 = t56 * t1 * t157;
2242: t659 = t87 * t128;
2243: t662 = t96 * t482;
2244: t663 = t629 * t162;
2245: t671 = t161 * t124;
2246: t674 = t218 * t127;
2247: t679 = 0.4e1 * t81 * t645 - 0.4e1 * t649 * t650 - 0.8e1 * t169 * t70 + 0.8e1 * t656 * t163 - 0.2e1 * t98 * t659 - 0.8e1 * t662 * t663 - 0.32e2 * t421 * t175 * t427 - 0.2e1 * t147 * t502 + 0.8e1 * t656 * t671 + 0.2e1 * t147 * t674 - 0.16e2 * t368 * t386;
2248: t714 = t334 * t19;
2249: t719 = t12 * t42;
2250: t722 = t304 * t35 - t346 * t35 + t341 * t59 - t344 * t35 + t344 * t256 + t346 * t184 - 0.16e2 * t368 * t554 - 0.16e2 * t48 * t175 * t50 + 0.4e1 * t525 * t714 - 0.2e1 * t58 * t659 + 0.8e1 * t368 * t719;
2251: t730 = xc * t19;
2252: t735 = t59 * t256 * t14;
2253: t752 = 0.4e1 * t173 * t714 - 0.6e1 * t27 * t515 - 0.16e2 * t9 * t279 + 0.4e1 * t194 * t730 * t184 - t139 * t735 - 0.4e1 * t492 * t127 * t82 * xc - 0.4e1 * t98 * t508 - t123 * t41 * t207 - 0.2e1 * t147 * t298 + 0.8e1 * t368 * t314 + 0.6e1 * t132 * t133 * t207;
2254: t755 = t28 * t21;
2255: t759 = t274 * t338 * t14;
2256: t767 = t11 * t35;
2257: t768 = t767 * t14;
2258: t778 = t560 * t61;
2259: t781 = -0.2e1 * t58 * t504 - 0.8e1 * t27 * t755 + 0.16e2 * t662 * t759 + 0.12e2 * t291 * t282 * t207 - 0.6e1 * t27 * t434 + t139 * t768 - 0.8e1 * t498 * t326 + 0.4e1 * t33 * t611 * t20 + 0.2e1 * t81 * t512 - t139 * t561 + 0.2e1 * t147 * t778;
2260: t786 = t12 * t443;
2261: t790 = t282 * t59 * t20;
2262: t796 = t59 * t14 * t127;
2263: t806 = t41 * t21;
2264: t811 = -0.8e1 * t393 * t663 + 0.8e1 * t368 * t786 + 0.2e1 * t81 * t790 + 0.4e1 * t169 * t624 + t139 * t796 + 0.2e1 * t206 * t258 - 0.2e1 * t40 * t591 - 0.8e1 * t662 * t630 - 0.4e1 * t33 * t30 - 0.4e1 * t40 * t806 + 0.8e1 * t9 * t786;
2265: t819 = t282 * t15 * t127;
2266: t822 = t101 * t363;
2267: t830 = t11 * t256 * t14;
2268: t835 = t227 * t532;
2269: t842 = 0.2e1 * t33 * t11 * t18 * t15 + t123 * t41 * t66 - 0.4e1 * t493 * t819 - 0.2e1 * t27 * t822 - 0.16e2 * t368 * t170 - 0.4e1 * t169 * t463 - t139 * t830 - 0.4e1 * t649 * t179 * t127 + 0.12e2 * t27 * t835 - 0.16e2 * t368 * t434 - 0.2e1 * t40 * t790;
2270: t845 = t87 * t202;
2271: t854 = t338 * t15;
2272: t859 = t12 * t207;
2273: t868 = t139 * t348 - 0.2e1 * t27 * t845 + 0.8e1 * t169 * t755 - 0.2e1 * t58 * t380 + 0.6e1 * t206 * t331 + 0.8e1 * t310 * t854 - 0.2e1 * t169 * t822 + 0.2e1 * t98 * t859 + 0.8e1 * t159 * t671 + 0.8e1 * t74 * t634 - 0.2e1 * t169 * t253;
2274: t880 = t60 * t443;
2275: t891 = t101 * t128;
2276: t894 = -t123 * t539 - 0.2e1 * t147 * t796 + 0.32e2 * t368 * t230 + t139 * t674 - 0.16e2 * t98 * t60 * t124 + 0.32e2 * t9 * t244 + 0.8e1 * t368 * t880 - 0.8e1 * t40 * t41 * xc * t36 - t123 * t82 * t128 - 0.6e1 * t58 * t233 + 0.2e1 * t58 * t891;
2277: t903 = t179 * t19;
2278: t920 = t56 * t1 * t160;
2279: t925 = -0.2e1 * t174 * t175 * t66 - 0.4e1 * t493 * t714 + 0.4e1 * t649 * t903 - 0.4e1 * t81 * t43 + t123 * t82 * t207 + 0.4e1 * t206 * t891 - 0.16e2 * t273 * t759 - 0.8e1 * t27 * t203 + 0.32e2 * t221 * ZB * t51 - 0.16e2 * t920 * t759 - 0.8e1 * t9 * t453;
2280: t932 = t87 * t29;
2281: t945 = t82 * t21;
2282: t953 = -0.16e2 * t920 * t276 - 0.8e1 * t169 * t30 - 0.8e1 * t633 * t77 - 0.2e1 * t27 * t932 - 0.4e1 * t174 * t49 * t162 + 0.8e1 * t206 * t87 * t124 - 0.2e1 * t147 * t768 + 0.4e1 * t169 * t522 - 0.12e2 * t81 * t945 + 0.4e1 * t33 * t28 * t115 + 0.4e1 * t525 * t819;
2283: t971 = t282 * t127;
2284: t978 = -0.6e1 * t98 * t102 + 0.2e1 * t169 * t515 - 0.2e1 * t310 * t377 + 0.2e1 * t147 * t830 + 0.8e1 * t368 * t22 - 0.2e1 * t169 * t617 + 0.16e2 * t662 * t276 - 0.8e1 * t355 * t854 + 0.4e1 * t493 * t971 - 0.16e2 * t9 * t533 - 0.2e1 * t169 * t279;
2285: t997 = xc * t127;
2286: t998 = t997 * t59;
2287: t1003 = 0.4e1 * t40 * t579 + 0.2e1 * t169 * t845 + 0.16e2 * t9 * t515 + 0.8e1 * t206 * t551 + t123 * t41 * t128 + 0.16e2 * t98 * t60 * t162 + 0.2e1 * t169 * t364 - 0.2e1 * t169 * t932 + t139 * t778 + 0.4e1 * t648 * t998 + 0.2e1 * t147 * t412;
2288: t1006 = t2 * t59;
2289: t1017 = xc * t35;
2290: t1033 = 0.4e1 * t1006 * t335 + 0.4e1 * t81 * t806 - 0.2e1 * t33 * t34 * t115 + 0.8e1 * t498 * t374 - 0.16e2 * t261 * t7 * t1017 * t15 + 0.8e1 * t206 * t101 * t124 - t123 * t448 + 0.2e1 * t147 * t735 + 0.6e1 * t98 * t208 + 0.6e1 * t98 * t88 - 0.4e1 * t33 * t755;
2291: t1055 = -0.4e1 * t173 * t971 + 0.2e1 * t98 * t891 + 0.8e1 * t9 * t880 + 0.4e1 * t169 * t835 - t304 * t184 + t344 * t184 - t123 * t41 * t62 - 0.2e1 * t98 * t598 + 0.2e1 * t58 * t859 + 0.32e2 * t47 * t351 * t224 + 0.2e1 * t98 * t389;
2292: t1070 = t15 * t19;
2293: t1089 = -0.16e2 * t368 * t352 - 0.8e1 * t9 * t719 + 0.4e1 * t96 * t2 * xc * t134 - 0.2e1 * t91 * t236 * t115 + 0.4e1 * t27 * t573 + 0.4e1 * t493 * t282 * t1070 + 0.2e1 * t33 * t59 * t18 * t15 + 0.12e2 * t40 * t945 - 0.4e1 * t492 * xc * t82 * t1070 - 0.2e1 * t91 * t528 * t20 + 0.8e1 * t324 * t608;
2294: t1113 = t123 * t82 * t124 + 0.8e1 * t421 * t428 - t139 * t417 + 0.4e1 * t40 * t645 + 0.16e2 * t393 * t759 - 0.2e1 * t33 * t179 * t115 - 0.4e1 * t525 * t335 + 0.4e1 * t33 * t28 * t36 - 0.4e1 * t1006 * t714 + 0.6e1 * t206 * t166 - 0.8e1 * t421 * t450;
2295: t1119 = t321 * t46;
2296: t1122 = t157 * t11;
2297: t1123 = t1122 * t2;
2298: t1124 = t184 * t46;
2299: t1128 = t108 * nz;
2300: t1132 = t7 * t7;
2301: t1133 = t1132 * t11;
2302: t1134 = t1133 * t108;
2303: t1135 = t15 * t46;
2304: t1139 = t7 * ZA;
2305: t1140 = t1139 * ZB;
2306: t1141 = t1 * t35;
2307: t1145 = t629 * t2;
2308: t1146 = t1135 * t730;
2309: t1149 = t157 * t1128;
2310: t1150 = t1149 * xc;
2311: t1153 = t46 * xc;
2312: t1154 = t1153 * t127;
2313: t1158 = t184 * t1 * t46;
2314: t1161 = t46 * t46;
2315: t1162 = t35 * t1161;
2316: t1166 = t7 * t1;
2317: t1170 = -0.4e1 * t133 * t1119 + 0.16e2 * t1123 * t1124 * t730 - 0.8e1 * t1122 * t1128 * t196 - 0.64e2 * t1134 * t1135 * t1017 - 0.32e2 * t1140 * t1141 * t1135 + 0.16e2 * t1145 * t1146 - 0.8e1 * t1150 * t650 - 0.16e2 * t1123 * t1154 - 0.4e1 * t133 * t1158 - 0.16e2 * t1140 * t1162 * t15 + 0.8e1 * t1166 * t35 * t312;
2318: t1171 = t1161 * t184;
2319: t1175 = t1122 * nz;
2320: t1176 = t15 * t1161;
2321: t1180 = t1132 * ZA;
2322: t1181 = t1180 * t355;
2323: t1182 = t1176 * t1017;
2324: t1185 = t1161 * xc;
2325: t1189 = t1133 * t1;
2326: t1192 = t108 * t1;
2327: t1193 = t1132 * t1192;
2328: t1195 = t10 * t35;
2329: t1199 = t157 * t15;
2330: t1203 = t1141 * t46;
2331: t1211 = t184 * t108;
2332: t1218 = 0.2e1 * t133 * t1171 * t35 + 0.8e1 * t1175 * t1176 * t997 + 0.64e2 * t1181 * t1182 - 0.8e1 * t1175 * t1185 * t127 - 0.32e2 * t1189 * t1182 - 0.64e2 * t1193 * ZA * t1195 * t228 + 0.8e1 * t1199 * t416 * t1128 + 0.8e1 * t1140 * t1203 - 0.4e1 * t75 * t1158 - 0.8e1 * t1199 * t560 * t1128 - 0.2e1 * t133 * t1211 - 0.8e1 * t1199 * t127 * t11 * t1128;
2333: t1221 = t256 * t1161;
2334: t1224 = t35 * t108;
2335: t1233 = t7 * t256;
2336: t1236 = -t75 * t1211 - t75 * t1221 - t133 * t1221 + t75 * t1224 - t75 * t1171 - t133 * t1171 + t133 * t1224 + t75 * t1162 - t75 * t108 * t256 + t133 * t1162 - t1233 * t59 * t108;
2337: t1240 = t1135 * t1195;
2338: t1252 = t629 * t127;
2339: t1263 = t1171 * ZA;
2340: t1280 = -0.128e3 * t1180 * ZB * t108 * t1240 + 0.32e2 * t1193 * t10 * t112 + 0.4e1 * t133 * t1203 + 0.4e1 * t109 * t256 * ZA * ZB - 0.8e1 * t1252 * nz * t15 * t1185 + 0.8e1 * t1175 * t1171 * t730 - 0.8e1 * t1175 * t1176 * t127 + 0.4e1 * t223 * t1263 - 0.8e1 * t1175 * t1176 * t730 + 0.8e1 * t1166 * ZA * t341 * ZB + 0.64e2 * t1134 * t1240 + 0.8e1 * t1122 * xc * t1128 * t127 * t15;
2341: t1283 = t1199 * t19;
2342: t1287 = t1199 * t127;
2343: t1289 = t59 * nz * t1161;
2344: t1293 = t157 * nz * xc;
2345: t1304 = t1132 * t108;
2346: t1310 = t263 * ZB;
2347: t1316 = t2 * t15;
2348: t1323 = -0.16e2 * t1283 * t1006 * t46 + 0.8e1 * t1287 * t1289 + 0.8e1 * t1293 * t127 * t1161 * t59 + 0.16e2 * t1123 * t1135 * t19 + 0.8e1 * t1293 * t560 * t1176 + 0.64e2 * t1304 * t59 * t1240 + 0.4e1 * t75 * t1203 + 0.4e1 * t1310 * t1263 + 0.4e1 * t223 * t338 * t108 - 0.16e2 * t1252 * t1316 * t1153 - 0.16e2 * t1310 * t221 * t15;
2349: t1330 = t1132 * t15;
2350: t1336 = t1132 * t1;
2351: t1338 = t1162 * t179;
2352: t1370 = 0.8e1 * t1175 * t1176 * t19 + 0.4e1 * t1139 * t318 * t1161 + 0.128e3 * t1330 * t318 * t108 * t46 * t227 - 0.32e2 * t1336 * xc * t1338 + 0.4e1 * t1233 * ZA * t1161 * ZB - 0.8e1 * t1287 * t59 * t1128 * xc + 0.2e1 * t75 * t305 * t108 + 0.8e1 * t1199 * t127 * t59 * t1128 - 0.8e1 * t1283 * t1289 - 0.8e1 * t1293 * t560 * t1171 + 0.4e1 * t133 * t35 * t1158 + 0.8e1 * t157 * t184 * t19 * t11 * t1128 * xc;
2353: t1376 = t7 * t184;
2354: t1380 = t1176 * t1195;
2355: t1393 = t1330 * t35;
2356: t1411 = 0.16e2 * t1145 * t1154 + 0.8e1 * t1149 * t998 + 0.4e1 * t1376 * t35 * t48 + 0.32e2 * t1189 * t1380 + 0.32e2 * t1193 * t11 * t1195 * t15 - 0.64e2 * t1304 * xc * t111 * t1135 - 0.16e2 * t1123 * t1146 + 0.64e2 * t1393 * t28 * t1192 * xc - 0.16e2 * t1123 * t1135 * t127 - 0.8e1 * t1122 * xc * t1128 * t127 - 0.32e2 * t1193 * xc * t112 + 0.16e2 * t1252 * t1316 * t46;
2357: t1450 = 0.2e1 * t1376 * t767 * t1161 + 0.2e1 * t1376 * t111 * t108 + 0.4e1 * t223 * t311 * t108 + 0.4e1 * t109 * t35 * t520 * ZA + 0.16e2 * t1123 * t1135 * t997 - 0.64e2 * t1181 * t1380 + 0.8e1 * t1150 * t903 - 0.32e2 * t1393 * t11 * t1192 * xc - 0.16e2 * t157 * t2 * xc * t560 * t1124 + 0.8e1 * t223 * t184 * t317 * t46 + 0.32e2 * t1336 * t10 * t1338 - 0.4e1 * t75 * t1119;
2358: _PC3B = (t606 + t722 + t1089 + t781 + 0.16e2 * t48 * t51 + t978 + t868 + t507 - t304 * t256 + 0.8e1 * t9 * t22 + t752 + 0.4e1 * t174 * t144 - 0.2e1 * t81 * t469 + 0.6e1 * t139 * t166 + t362 + 0.2e1 * t98 * t211 + t925 + t137 - t290 * t184 + 0.12e2 * t81 * t83 + t842 + 0.8e1 * t74 * t77 + 0.16e2 * t98 * t12 * t162 - 0.4e1 * t33 * t28 * t443 - 0.8e1 * t27 * t70 - 0.2e1 * t33 * t34 * t36 - 0.8e1 * t27 * t30 + 0.2e1 * t58 * t67 - 0.4e1 * t40 * t43 + 0.2e1 * t58 * t63 + t1033 - t290 * t256 + t290 * t35 + t193 + t1113 + t578 + t442 + t474 + t544 + t329 + t679 + t401 + t953 + t811 + t644 + t894 + t289 + t240 + t1055 + t1003) / (t1170 + t1218 + 0.2e1 * t1236 + t1280 + t1323 + t1370 + t1411 + t1450);
2359: /****************************************************************************************/
2360: t1 = nz * nz;
2361: t2 = t1 * xc;
2362: t3 = ZB * ZB;
2363: t5 = t2 * 0.3141592654e1 * t3;
2364: t6 = nx * 0.3141592654e1;
2365: t7 = t6 * xc;
2366: t8 = PetscCosReal(t7);
2367: t9 = nx * nx;
2368: t10 = t8 * t9;
2369: t11 = nz * 0.3141592654e1;
2370: t12 = PetscExpReal(t11);
2371: t13 = t12 * t12;
2372: t16 = PetscExpReal(xc * nz * 0.3141592654e1);
2373: t17 = t16 * t16;
2374: t18 = t17 * t16;
2375: t19 = t17 * t17;
2376: t20 = t19 * t18;
2377: t21 = t13 * t20;
2378: t22 = t10 * t21;
2379: t25 = ZA * ZA;
2380: t26 = t1 * t25;
2381: t27 = xc * 0.3141592654e1;
2382: t28 = t26 * t27;
2383: t29 = t19 * t16;
2384: t30 = t13 * t13;
2385: t31 = t29 * t30;
2386: t35 = t9 * nx;
2387: t36 = t3 * t35;
2388: t37 = PetscSinReal(t6);
2389: t38 = t13 * t12;
2390: t39 = t37 * t38;
2391: t40 = t39 * t19;
2392: t42 = t1 * t1;
2393: t43 = nx * t42;
2394: t44 = xc * xc;
2395: t45 = t25 * t44;
2396: t46 = t43 * t45;
2397: t47 = 0.3141592654e1 * 0.3141592654e1;
2398: t48 = t47 * t37;
2399: t49 = t17 * t38;
2400: t54 = 0.3141592654e1 * t35;
2401: t55 = ZA * nz * t54;
2402: t56 = t37 * ZB;
2403: t57 = t19 * t12;
2404: t61 = t25 * t8;
2405: t62 = t61 * t9;
2406: t63 = nz * t30;
2407: t64 = t63 * t16;
2408: t67 = t1 * nz;
2409: t69 = t47 * ZB;
2410: t70 = t67 * t44 * t69;
2411: t75 = nx * t3;
2412: t76 = t75 * t37;
2413: t77 = t67 * 0.3141592654e1;
2414: t78 = t19 * t19;
2415: t79 = t78 * t12;
2416: t80 = t77 * t79;
2417: t82 = t3 * t38;
2418: t84 = t54 * t37;
2419: t87 = PetscSinReal(t7);
2420: t88 = t29 * t87;
2421: t89 = t47 * t44;
2422: t93 = nx * t25;
2423: t94 = t87 * t42;
2424: t95 = t93 * t94;
2425: t96 = t47 * xc;
2426: t97 = t13 * t29;
2427: t98 = t96 * t97;
2428: t101 = t87 * t67;
2429: t102 = t93 * t101;
2430: t103 = t13 * t18;
2431: t107 = t47 * t35;
2432: t108 = t26 * t107;
2433: t109 = t37 * t44;
2434: t110 = t19 * t17;
2435: t111 = t12 * t110;
2436: t116 = t37 * t19 * t12;
2437: t118 = t37 * xc;
2438: t119 = ZB * t19;
2439: t120 = t119 * t12;
2440: t121 = t118 * t120;
2441: t125 = xc * t3;
2442: t126 = t1 * t47 * t125;
2443: t127 = t35 * t37;
2444: t128 = t38 * t19;
2445: t129 = t127 * t128;
2446: t132 = t26 * 0.3141592654e1;
2447: t133 = t16 * t13;
2448: t134 = t10 * t133;
2449: t137 = 0.3141592654e1 * ZB;
2450: t138 = t2 * t137;
2451: t139 = ZA * t8;
2452: t140 = t9 * t13;
2453: t145 = t30 * t18;
2454: t146 = t10 * t145;
2455: t149 = t3 * t8;
2456: t150 = t149 * t9;
2457: t153 = 0.2e1 * t5 * t22 + 0.2e1 * t28 * t10 * t31 + t36 * t40 - 0.2e1 * t46 * t48 * t49 - 0.2e1 * t55 * t56 * t57 - 0.2e1 * t62 * t64 + 0.16e2 * t70 * t29 * ZA * t10 - t76 * t80 + t82 * nz * t84 + 0.8e1 * t43 * t3 * t88 * t89 + 0.16e2 * t95 * t98 + 0.2e1 * t102 * t27 * t103 - 0.2e1 * t108 * t109 * t111 + t36 * t116 + 0.8e1 * t55 * t121 - 0.4e1 * t126 * t129 - 0.4e1 * t132 * t134 - 0.4e1 * t138 * t139 * t140 * t20 + 0.8e1 * t28 * t146 - 0.2e1 * t150 * t64;
2458: t154 = t42 * nz;
2459: t155 = nx * t154;
2460: t156 = t44 * xc;
2461: t157 = t47 * 0.3141592654e1;
2462: t158 = t156 * t157;
2463: t159 = t155 * t158;
2464: t162 = t56 * ZA * t19 * t12;
2465: t165 = t77 * t49;
2466: t167 = t1 * t3;
2467: t168 = t167 * t89;
2468: t169 = t127 * t49;
2469: t172 = t37 * t67;
2470: t173 = t75 * t172;
2471: t174 = t38 * t110;
2472: t175 = t27 * t174;
2473: t179 = t47 * t25;
2474: t181 = t10 * t97;
2475: t184 = t27 * t31;
2476: t187 = t67 * t47;
2477: t188 = t44 * t3;
2478: t189 = t187 * t188;
2479: t192 = t25 * t35;
2480: t193 = t37 * t17;
2481: t194 = t193 * t12;
2482: t196 = nx * ZA;
2483: t197 = t196 * t172;
2484: t198 = ZB * t38;
2485: t199 = t198 * t19;
2486: t204 = t1 * t12 * t110;
2487: t207 = nx * ZB;
2488: t209 = t1 * ZA;
2489: t215 = t67 * t3;
2490: t216 = t47 * t8;
2491: t217 = t215 * t216;
2492: t218 = t9 * xc;
2493: t222 = nx * t67;
2494: t223 = t222 * t27;
2495: t224 = t3 * t87;
2496: t228 = t167 * t107;
2497: t232 = t26 * t96;
2498: t235 = t207 * t94;
2499: t236 = t47 * ZA;
2500: t243 = xc * t13;
2501: t244 = t243 * t29;
2502: t248 = t25 * nz;
2503: t249 = t248 * 0.3141592654e1;
2504: t253 = ZB * ZA;
2505: t254 = t253 * t8;
2506: t255 = t9 * nz;
2507: t256 = t30 * t16;
2508: t260 = 0.2e1 * t207 * t37 * t209 * t128 + 0.2e1 * t5 * t134 - 0.16e2 * t217 * t218 * t97 - 0.2e1 * t223 * t224 * t31 - 0.2e1 * t228 * t109 * t174 - 0.2e1 * t232 * t169 - 0.16e2 * t235 * t236 * t44 * t30 * t18 - 0.4e1 * t196 * t101 * t137 * t244 + t249 * t169 + 0.8e1 * t168 * t129 + 0.4e1 * t254 * t255 * t256;
2509: t263 = t43 * t179;
2510: t267 = t3 * nz;
2511: t268 = t267 * t54;
2512: t269 = t118 * t57;
2513: t272 = t39 * t1;
2514: t274 = t67 * t25;
2515: t275 = t274 * t158;
2516: t278 = t75 * t87;
2517: t279 = t77 * t103;
2518: t282 = t25 * t38;
2519: t285 = ZA * t38;
2520: t290 = t267 * 0.3141592654e1;
2521: t296 = t77 * t111;
2522: t298 = t196 * t37;
2523: t299 = t1 * ZB;
2524: t303 = t37 * t42;
2525: t304 = t196 * t303;
2526: t308 = t77 * t57;
2527: t310 = t26 * t89;
2528: t313 = t77 * t128;
2529: t316 = t101 * t27;
2530: t319 = t93 * t87;
2531: t320 = t77 * t97;
2532: t323 = t127 * t57;
2533: t326 = t10 * nz;
2534: t329 = t118 * t174;
2535: t332 = -0.8e1 * t263 * t109 * t57 - 0.4e1 * t268 * t269 + t93 * t272 + 0.8e1 * t275 * t129 - 0.4e1 * t278 * t279 + t282 * nz * t84 - 0.2e1 * t285 * nz * t54 * t56 - t290 * t169 - 0.2e1 * t196 * t38 * t172 * t137 + t76 * t296 - 0.2e1 * t298 * t299 * t79 + 0.8e1 * t304 * t96 * t120 + t76 * t308 - 0.2e1 * t310 * t169 - t76 * t313 + 0.2e1 * t75 * t18 * t316 + 0.4e1 * t319 * t320 + t249 * t323 - 0.2e1 * t25 * t18 * t326 + 0.2e1 * t228 * t329;
2536: t335 = t75 * t101;
2537: t336 = t27 * t21;
2538: t342 = t77 * t133;
2539: t347 = t209 * t137;
2540: t350 = t9 * t1;
2541: t351 = t149 * t350;
2542: t355 = t37 * t78 * t12;
2543: t359 = t93 * t303;
2544: t367 = t172 * 0.3141592654e1;
2545: t369 = t96 * t103;
2546: t376 = t209 * t107;
2547: t379 = t10 * t103;
2548: t383 = t207 * t101;
2549: t389 = 0.3141592654e1 * ZA;
2550: t390 = t222 * t389;
2551: t391 = t87 * ZB;
2552: t398 = -0.2e1 * t102 * t336 + t93 * t38 * t367 + 0.16e2 * t95 * t369 - t82 * t127 - 0.8e1 * t197 * t27 * t120 + 0.8e1 * t376 * t121 - 0.8e1 * t189 * t379 - t249 * t129 - 0.4e1 * t383 * t27 * ZA * t16 * t13 - 0.8e1 * t390 * t391 * t21 - 0.2e1 * t197 * t137 * t57;
2553: t402 = t39 * t110;
2554: t404 = t193 * t38;
2555: t406 = t127 * t174;
2556: t408 = t167 * 0.3141592654e1;
2557: t411 = t44 * t157;
2558: t412 = t155 * t411;
2559: t413 = t285 * t19;
2560: t414 = t56 * t413;
2561: t417 = ZA * t30;
2562: t424 = t93 * t37;
2563: t426 = t248 * t54;
2564: t427 = t17 * t12;
2565: t428 = t118 * t427;
2566: t431 = t77 * t21;
2567: t438 = ZA * t13;
2568: t443 = t93 * t172;
2569: t444 = t27 * t427;
2570: t448 = t1 * t78 * t12;
2571: t455 = t274 * t89;
2572: t461 = t118 * t111;
2573: t464 = -t36 * t402 + t36 * t404 - t249 * t406 - 0.4e1 * t408 * t134 + 0.16e2 * t412 * t414 - 0.4e1 * t383 * t27 * t417 * t18 + 0.2e1 * t28 * t22 - t424 * t80 - 0.2e1 * t426 * t428 + 0.4e1 * t278 * t431 + 0.4e1 * t254 * t255 * t103 + t290 * t323 + 0.4e1 * t383 * t27 * t438 * t20 + 0.2e1 * t443 * t444 + t424 * t448 - t36 * t194 - 0.32e2 * t235 * t236 * t243 * t18 + 0.8e1 * t455 * t181 - 0.4e1 * t359 * t96 * t128 - 0.2e1 * t426 * t461;
2574: t469 = nz * t16 * t13;
2575: t474 = t1 * t38;
2576: t475 = t474 * t19;
2577: t480 = t89 * t103;
2578: t483 = t67 * ZA;
2579: t484 = t483 * t411;
2580: t485 = t127 * t120;
2581: t488 = t127 * t111;
2582: t497 = t77 * t427;
2583: t502 = t27 * t97;
2584: t508 = t1 * t19 * t12;
2585: t511 = t155 * t25 * t156;
2586: t512 = t157 * t37;
2587: t513 = t512 * t128;
2588: t527 = t1 * t17;
2589: t528 = t527 * t38;
2590: t530 = -t76 * t497 - 0.4e1 * t254 * t255 * t97 - 0.2e1 * t102 * t502 - 0.4e1 * t108 * t269 - t76 * t508 + 0.8e1 * t511 * t513 + 0.4e1 * t150 * t63 * t18 + 0.4e1 * t383 * t27 * t438 * t18 + 0.4e1 * t132 * t379 + 0.2e1 * t168 * t488 - t76 * t528;
2591: t535 = t44 * t13;
2592: t542 = t527 * t12;
2593: t544 = nz * t13;
2594: t545 = t544 * t20;
2595: t548 = t75 * t303;
2596: t549 = t96 * t111;
2597: t552 = ZA * t35;
2598: t553 = t552 * t37;
2599: t562 = t43 * t96;
2600: t563 = t3 * t37;
2601: t564 = t563 * t128;
2602: t579 = t474 * t110;
2603: t590 = t9 * t30;
2604: t591 = t590 * t18;
2605: t595 = t127 * t427;
2606: t598 = t77 * t174;
2607: t600 = 0.4e1 * t5 * t146 + 0.16e2 * t235 * t236 * t535 * t18 + 0.8e1 * t455 * t146 + t76 * t542 - 0.2e1 * t150 * t545 + 0.2e1 * t548 * t549 - 0.2e1 * t553 * t120 + t290 * t488 - 0.8e1 * t274 * t47 * t44 * t29 * t10 - 0.4e1 * t562 * t564 - 0.2e1 * t132 * xc * t20 * t10 - 0.32e2 * t562 * ZA * t87 * ZB * t13 * t29 - 0.8e1 * t347 * t379 + t76 * t579 - 0.4e1 * t359 * t96 * t57 + 0.4e1 * t408 * t181 - 0.4e1 * t223 * t564 - 0.12e2 * t209 * t27 * ZB * t8 * t591 + 0.2e1 * t310 * t595 + t76 * t598;
2608: t601 = t27 * t49;
2609: t604 = t127 * t79;
2610: t606 = ZB * t29;
2611: t616 = t139 * t140 * t18;
2612: t638 = t10 * t256;
2613: t643 = t118 * t199;
2614: t653 = t544 * t29;
2615: t658 = t3 * t29;
2616: t660 = t350 * t27;
2617: t663 = -0.4e1 * t254 * t255 * t145 + 0.2e1 * t267 * t20 * t8 * t9 - 0.4e1 * t138 * t139 * t9 * t16 * t13 - 0.2e1 * t5 * t638 + 0.2e1 * t126 * t169 + 0.8e1 * t376 * t643 + 0.4e1 * t335 * t27 * t145 + 0.16e2 * t235 * t236 * t535 * t29 + 0.6e1 * t150 * t653 - 0.4e1 * t426 * t269 + 0.4e1 * t658 * t8 * t660;
2618: t670 = t274 * t411;
2619: t673 = t118 * t49;
2620: t694 = t155 * t45;
2621: t713 = nz * t29 * t30;
2622: t717 = t20 * t87;
2623: t723 = t512 * t57;
2624: t728 = -0.2e1 * t443 * t175 - 0.8e1 * t670 * t129 + 0.2e1 * t426 * t673 - 0.16e2 * t207 * t88 * t42 * t47 * ZA * t44 + 0.4e1 * t254 * t255 * t21 + t249 * t595 + 0.8e1 * t25 * t29 * t8 * t660 + 0.2e1 * t268 * t461 + 0.8e1 * t189 * t181 - 0.8e1 * t694 * t513 + 0.2e1 * t198 * t553 - 0.12e2 * t606 * t139 * t660 - 0.2e1 * t359 * t549 + 0.4e1 * t138 * t139 * t590 * t16 + 0.8e1 * t93 * t29 * t94 * t89 - 0.2e1 * t150 * t713 + 0.2e1 * t222 * t3 * t717 * t27 + 0.8e1 * t670 * t323 + 0.8e1 * t694 * t723 - 0.2e1 * t62 * t653;
2625: t734 = t43 * t89;
2626: t735 = t563 * t427;
2627: t740 = t75 * t94;
2628: t744 = ZB * xc;
2629: t750 = t563 * t57;
2630: t754 = t218 * t103;
2631: t771 = t127 * t199;
2632: t776 = t89 * t174;
2633: t791 = -0.4e1 * t207 * t717 * t77 * xc * ZA + 0.4e1 * t443 * t27 * t57 + t192 * t40 - 0.8e1 * t55 * t643 - 0.16e2 * t209 * t89 * t771 - 0.8e1 * t275 * t323 + 0.2e1 * t359 * t776 + 0.16e2 * t304 * t89 * t199 + 0.4e1 * t278 * t320 + 0.2e1 * t207 * t172 * t389 * t79 - 0.8e1 * t390 * t391 * t97;
2634: t794 = t483 * t158;
2635: t801 = t2 * 0.3141592654e1;
2636: t818 = t215 * t411;
2637: t827 = t96 * t174;
2638: t837 = t37 * t12 * t110;
2639: t845 = 0.16e2 * t794 * t485 + 0.8e1 * t159 * t564 - 0.8e1 * t455 * t379 - 0.2e1 * t801 * t3 * t20 * t10 - 0.4e1 * t132 * t22 - 0.8e1 * t734 * t564 - 0.8e1 * t187 * t44 * t658 * t10 - 0.8e1 * t412 * t564 + 0.4e1 * t132 * t181 - 0.8e1 * t818 * t129 + 0.2e1 * t46 * t48 * t427 - 0.4e1 * t75 * t29 * t316 - 0.2e1 * t359 * t827 - t290 * t595 + 0.16e2 * t217 * t754 - t424 * t542 - 0.8e1 * t734 * t750 - t192 * t837 - 0.4e1 * t254 * t255 * t133 + 0.8e1 * t304 * t96 * t199;
2640: t864 = t544 * t18;
2641: t867 = t3 * t18;
2642: t884 = t27 * t256;
2643: t891 = t187 * t744;
2644: t894 = t563 * t49;
2645: t900 = -0.2e1 * t263 * t428 + 0.2e1 * t228 * t428 - 0.6e1 * t223 * t224 * t103 - t192 * t404 + 0.2e1 * t268 * t428 - 0.2e1 * t335 * t884 - t424 * t296 + 0.2e1 * t93 * t20 * t316 - 0.32e2 * t891 * t616 + 0.2e1 * t562 * t894 - 0.2e1 * t801 * t867 * t10;
2646: t904 = t27 * t111;
2647: t907 = t118 * t128;
2648: t915 = t89 * t145;
2649: t947 = t139 * t140 * t29;
2650: t952 = -0.2e1 * t173 * t904 + 0.4e1 * t426 * t907 + 0.12e2 * t253 * t10 * t1 * 0.3141592654e1 * t244 + 0.8e1 * t95 * t915 - t36 * t355 - 0.16e2 * t794 * t771 - 0.8e1 * t511 * t723 + 0.16e2 * t734 * t162 + t36 * t837 + 0.2e1 * t298 * t299 * t57 - 0.2e1 * t28 * t638 - 0.2e1 * t62 * t545 + 0.2e1 * t310 * t406 + 0.12e2 * t138 * t616 + 0.4e1 * t223 * t750 + t424 * t497 + 0.2e1 * t734 * t894 + 0.2e1 * t132 * xc * t18 * t10 - 0.16e2 * t70 * t947 + 0.32e2 * t891 * t947;
2651: t969 = t67 * t157 * t156 * t3;
2652: t974 = t27 * t133;
2653: t1001 = -0.8e1 * t159 * t750 - 0.16e2 * t412 * t162 - t290 * t129 + 0.8e1 * t310 * t323 - 0.4e1 * t319 * t342 + t75 * t272 + t192 * t402 - 0.8e1 * t359 * t89 * t128 - 0.10e2 * t61 * t350 * t502 + 0.8e1 * t818 * t323 - 0.4e1 * t108 * t907;
2654: t1042 = t89 * t97;
2655: t1055 = -0.2e1 * t168 * t595 + 0.16e2 * t484 * t771 + 0.4e1 * t11 * t125 * t129 - 0.2e1 * t173 * t444 + 0.2e1 * ZB * nz * t54 * t37 * ZA * t79 - t424 * t475 + 0.2e1 * t562 * t735 - 0.2e1 * t548 * t776 + t424 * t204 + 0.2e1 * t25 * t20 * t326 + 0.8e1 * t383 * t389 * t133 + t75 * t38 * t367 + 0.2e1 * t62 * t469 + 0.2e1 * t197 * t137 * t128 - 0.2e1 * t102 * t884 - 0.2e1 * t5 * t379 - 0.8e1 * t740 * t1042 - 0.16e2 * t159 * t414 - 0.2e1 * ZB * t35 * t37 * t413 + 0.2e1 * t553 * ZB * t78 * t12;
2656: t1096 = 0.2e1 * t443 * t904 - 0.2e1 * t268 * t329 - 0.2e1 * t443 * t601 + 0.2e1 * t102 * t974 - 0.2e1 * t263 * t673 + t424 * t165 + 0.2e1 * t62 * t713 + t424 * t308 - t424 * t313 + 0.8e1 * t347 * t22 - t424 * t598;
2657: t1103 = t42 * t1 * t157;
2658: t1104 = t1103 * t25;
2659: t1108 = t3 * t19;
2660: t1112 = nz * t47;
2661: t1113 = t9 * t9;
2662: t1118 = t42 * t157;
2663: t1119 = t1118 * t9;
2664: t1120 = t25 * xc;
2665: t1121 = t13 * t110;
2666: t1122 = t1120 * t1121;
2667: t1125 = t47 * t47;
2668: t1126 = t67 * t1125;
2669: t1127 = t1113 * ZA;
2670: t1128 = t1126 * t1127;
2671: t1129 = t19 * t13;
2672: t1130 = t744 * t1129;
2673: t1133 = t154 * t1125;
2674: t1134 = t1133 * t9;
2675: t1135 = t45 * t1129;
2676: t1138 = t154 * t47;
2677: t1139 = t25 * t30;
2678: t1142 = t1126 * t1113;
2679: t1145 = t125 * t1129;
2680: t1148 = t1103 * xc;
2681: t1149 = t3 * t13;
2682: t1150 = t1149 * t17;
2683: t1153 = t25 * t78;
2684: t1156 = -0.8e1 * t1104 * t243 * t17 + 0.4e1 * t187 * t1108 * t9 - 0.2e1 * t1112 * t3 * t1113 * t30 + 0.16e2 * t1119 * t1122 + 0.64e2 * t1128 * t1130 + 0.64e2 * t1134 * t1135 - 0.2e1 * t1138 * t1139 + 0.32e2 * t1142 * t1135 - 0.32e2 * t1142 * t1145 + 0.8e1 * t1148 * t1150 - 0.2e1 * t1138 * t1153;
2685: t1157 = t25 * t13;
2686: t1158 = t1157 * t17;
2687: t1161 = t13 * t17;
2688: t1162 = t1120 * t1161;
2689: t1165 = t3 * t78;
2690: t1170 = t42 * t67 * t1125;
2691: t1172 = t1108 * t13;
2692: t1175 = t1 * t157;
2693: t1176 = t1175 * t1113;
2694: t1182 = t1120 * t1129;
2695: t1189 = t110 * t9 * xc;
2696: t1192 = t1149 * t110;
2697: t1201 = 0.8e1 * t1103 * t1158 - 0.16e2 * t1119 * t1162 - 0.2e1 * t1112 * t1165 * t1113 + 0.32e2 * t1170 * t44 * t1172 - 0.8e1 * t1176 * t1162 + 0.8e1 * t1104 * t243 * t110 - 0.64e2 * t1134 * t1182 - 0.64e2 * t1134 * t1145 + 0.16e2 * t1118 * t3 * t1189 + 0.16e2 * t1119 * t1192 - 0.4e1 * t187 * t1165 * t9 - 0.4e1 * t187 * t1139 * t9;
2698: t1209 = t17 * t30;
2699: t1210 = t125 * t1209;
2700: t1213 = t1138 * ZA;
2701: t1214 = ZB * t30;
2702: t1218 = t1157 * t110;
2703: t1226 = t3 * t30;
2704: t1237 = t1170 * t25;
2705: t1242 = 0.4e1 * t1112 * ZA * t119 * t1113 - 0.16e2 * t1119 * t1150 - 0.8e1 * t1176 * t1210 + 0.4e1 * t1213 * t1214 * t19 - 0.16e2 * t1119 * t1218 - 0.32e2 * t1142 * t1182 - 0.8e1 * t1103 * t1120 * t110 - 0.4e1 * t187 * t1226 * t9 + 0.8e1 * t1103 * t1192 + 0.4e1 * t1112 * ZB * t1113 * t30 * ZA - 0.32e2 * t1237 * xc * t19 * t13;
2706: t1251 = t125 * t1121;
2707: t1260 = t1120 * t1209;
2708: t1263 = t1139 * t19;
2709: t1282 = 0.8e1 * t1103 * t110 * t3 * xc + 0.8e1 * t1104 * xc * t17 * t30 - 0.8e1 * t1176 * t1251 + 0.16e2 * t1119 * t1158 + 0.4e1 * t1112 * t78 * t1127 * ZB + 0.16e2 * t1119 * t1260 + 0.2e1 * t1138 * t1263 - 0.32e2 * t1170 * xc * t1172 - 0.16e2 * t1213 * t119 * t13 + 0.4e1 * t1138 * t1214 * ZA + 0.32e2 * t1237 * t44 * t19 * t13 - 0.16e2 * t1118 * t25 * t1189;
2710: t1287 = t188 * t1129;
2711: t1292 = t25 * t19;
2712: t1296 = t187 * t9;
2713: t1297 = t1226 * t19;
2714: t1311 = t1112 * t1113;
2715: t1317 = -0.8e1 * t1176 * t1150 + 0.32e2 * t1142 * t1287 - 0.8e1 * t1103 * t1150 + 0.2e1 * t1112 * t1292 * t1113 + 0.4e1 * t1296 * t1297 + 0.8e1 * t1176 * t1192 + 0.4e1 * t1296 * t1263 + 0.8e1 * t1176 * t1158 - 0.8e1 * t1175 * t25 * t1113 * xc * t110 + 0.2e1 * t1311 * t1297 + 0.2e1 * t1112 * t1108 * t1113;
2716: t1320 = t253 * t1129;
2717: t1328 = t253 * t30 * t19;
2718: t1333 = t125 * t1161;
2719: t1343 = ZB * t44 * t1129;
2720: t1350 = -0.8e1 * t1176 * t1218 - 0.16e2 * t1311 * t1320 + 0.8e1 * t1176 * t1260 - 0.16e2 * t1119 * t1210 + 0.4e1 * t1311 * t1328 + 0.2e1 * t1311 * t1263 + 0.8e1 * t1176 * t1333 + 0.8e1 * t187 * ZB * t417 * t9 - 0.2e1 * t1138 * t1165 - 0.64e2 * t1128 * t1343 + 0.64e2 * t1134 * t1287 + 0.2e1 * t1138 * t1108;
2721: t1369 = t1133 * t9 * ZA;
2722: t1378 = t187 * ZA;
2723: t1383 = t1170 * ZA;
2724: t1388 = 0.2e1 * t1138 * t1297 - 0.8e1 * t1148 * t1192 + 0.2e1 * t1138 * t1292 - 0.16e2 * t1119 * t1251 + 0.8e1 * t1175 * xc * t110 * t1113 * t3 - 0.2e1 * t1112 * t1153 * t1113 + 0.128e3 * t1369 * t1130 + 0.16e2 * t1119 * t1333 + 0.4e1 * t1138 * t78 * ZA * ZB + 0.8e1 * t1378 * t78 * t9 * ZB - 0.64e2 * t1383 * t1343 + 0.64e2 * t1383 * t1130;
2725: t1420 = 0.4e1 * t1138 * t119 * ZA - 0.128e3 * t1369 * t1343 - 0.4e1 * t187 * t1153 * t9 - 0.2e1 * t1138 * t1226 + 0.8e1 * t1296 * t1328 - 0.2e1 * t1112 * t1139 * t1113 - 0.8e1 * t1148 * t3 * t17 * t30 - 0.32e2 * t1296 * t1320 + 0.8e1 * t1176 * t1122 + 0.4e1 * t187 * t1292 * t9 + 0.8e1 * t1378 * t119 * t9 - 0.8e1 * t1103 * t1218;
2727: _PC4B = (-t424 * t508 + 0.8e1 * t412 * t750 - 0.2e1 * t232 * t595 - 0.4e1 * t126 * t323 + t1096 - t76 * t204 + t728 + 0.2e1 * t548 * t827 + 0.2e1 * t150 * t469 + t398 + 0.8e1 * t189 * t146 + t260 - 0.2e1 * t351 * t184 - 0.2e1 * t268 * t673 - 0.4e1 * t319 * t279 + t464 - 0.2e1 * t108 * t461 + 0.16e2 * t740 * t369 + 0.16e2 * t274 * t216 * t754 - 0.16e2 * t70 * t139 * t591 + 0.2e1 * t55 * t56 * t128 - 0.2e1 * t359 * t89 * t111 + 0.2e1 * t734 * t563 * t111 + 0.6e1 * t223 * t224 * t97 + 0.8e1 * t383 * t389 * t103 + 0.4e1 * t606 * ZA * t326 - 0.2e1 * t93 * t18 * t316 - 0.4e1 * t443 * t27 * t128 + 0.8e1 * t197 * t27 * t199 + 0.8e1 * t108 * t109 * t128 - t249 * t604 + 0.16e2 * t70 * t616 - 0.8e1 * t969 * t323 + t845 - t424 * t579 + 0.16e2 * t159 * t162 + t290 * t406 - 0.6e1 * t150 * t864 + t192 * t116 + 0.2e1 * t867 * t326 - 0.4e1 * t658 * t326 - 0.2e1 * t351 * t502 - t76 * t165 + t900 + 0.8e1 * t168 * t323 + t791 + 0.8e1 * t740 * t915 - 0.4e1 * t562 * t750 - 0.4e1 * t278 * t342 + 0.4e1 * t319 * t431 + 0.2e1 * t173 * t175 + t424 * t528 + 0.8e1 * t969 * t129 - 0.8e1 * t347 * t181 + t332 + t530 - 0.2e1 * t108 * t329 - 0.2e1 * t207 * t38 * t37 * t1 * ZA + t1001 + 0.4e1 * t408 * t379 + t76 * t448 + 0.2e1 * t102 * t184 + 0.2e1 * t426 * t329 + 0.16e2 * t740 * t98 - t282 * t127 - 0.16e2 * t1 * t44 * t69 * t552 * t116 + 0.2e1 * t168 * t169 + 0.2e1 * t28 * t134 - t290 * t604 - 0.16e2 * t484 * t485 - 0.8e1 * t740 * t480 + 0.2e1 * t173 * t601 - 0.2e1 * t335 * t336 + t600 + 0.2e1 * t62 * t864 + t952 + 0.8e1 * t347 * t134 - t192 * t355 + t192 * t194 + 0.2e1 * t228 * t461 + t663 + 0.4e1 * t383 * t27 * t417 * t16 + 0.4e1 * t138 * t20 * ZA * t10 - 0.4e1 * t20 * ZB * ZA * t326 + 0.4e1 * t196 * t88 * t77 * t744 - 0.16e2 * t67 * xc * t179 * t181 - 0.8e1 * t95 * t480 - t249 * t488 - t76 * t475 + t1055 - 0.4e1 * t408 * t22 - 0.10e2 * t28 * t379 + 0.2e1 * t335 * t974 + t153 - 0.8e1 * t95 * t1042 - 0.2e1 * t734 * t735) / (t1156 + t1201 + t1242 + t1282 + t1317 + t1350 + t1388 + t1420);
2728: /****************************************************************************************/
2729: /****************************************************************************************/
2731: if (x > xc) {
2732: _PC1 = _PC1B;
2733: _PC2 = _PC2B;
2734: _PC3 = _PC3B;
2735: _PC4 = _PC4B;
2736: Z = ZB;
2737: } else {
2738: _PC1 = _PC1A;
2739: _PC2 = _PC2A;
2740: _PC3 = _PC3A;
2741: _PC4 = _PC4A;
2742: Z = ZA;
2743: }
2744: /****************************************************************************************/
2745: /****************************************************************************************/
2746: t1 = nz * nz;
2747: t2 = t1 * t1;
2748: t3 = t2 * nz;
2749: t4 = x * t3;
2750: t5 = 0.3141592654e1 * 0.3141592654e1;
2751: t6 = t5 * 0.3141592654e1;
2752: t11 = _PC3 * t6;
2753: t12 = x * nz;
2754: t13 = nx * nx;
2755: t14 = t13 * t13;
2756: t15 = t12 * t14;
2757: t19 = PetscExpReal(t12 * 0.3141592654e1);
2758: t20 = t19 * t19;
2759: t21 = t4 * t20;
2760: t24 = _PC1 * t5;
2761: t25 = Z * t20;
2762: t29 = _PC1 * t6;
2763: t30 = t29 * Z;
2764: t31 = t1 * nz;
2765: t32 = x * t31;
2766: t33 = t32 * t13;
2767: t36 = t11 * x;
2768: t41 = nz * t20;
2769: t45 = t6 * _PC4;
2770: t49 = t20 * t1;
2771: t51 = _PC2 * Z;
2772: t55 = -0.2e1 * t4 * t6 * _PC2 * Z - 0.2e1 * t11 * t15 - 0.2e1 * t11 * t21 + 0.2e1 * t24 * t25 * t14 - t13 + 0.4e1 * t30 * t33 - 0.4e1 * t36 * t31 * t20 * t13 - 0.2e1 * t36 * t41 * t14 - 0.2e1 * t4 * t45 * t20 - t49 - 0.2e1 * t4 * t6 * t51 * t20;
2773: t58 = t32 * t6;
2774: t59 = _PC4 * t20;
2775: t63 = t20 * t13;
2776: t67 = t12 * t6;
2777: t68 = t20 * t14;
2778: t87 = t49 * t13;
2779: t90 = -0.4e1 * t11 * t33 - 0.4e1 * t58 * t59 * t13 - 0.4e1 * t58 * t51 * t63 - 0.2e1 * t67 * t51 * t68 + 0.4e1 * t32 * t45 * t13 - 0.2e1 * t67 * t59 * t14 - 0.2e1 * t30 * t21 + t1 + 0.2e1 * t24 * t25 * t2 + 0.2e1 * t12 * t45 * t14 + 0.4e1 * t24 * Z * t87;
2780: t106 = _PC3 * t5;
2781: t120 = -0.4e1 * t30 * t32 * t63 + t63 + 0.4e1 * t24 * Z * t1 * t13 + 0.2e1 * t29 * Z * x * t3 - 0.4e1 * t58 * t51 * t13 - 0.2e1 * t106 * t2 + t32 * 0.3141592654e1 - 0.2e1 * t106 * t14 - 0.2e1 * t30 * t12 * t68 - 0.2e1 * t67 * t51 * t14 + 0.4e1 * t106 * t87;
2782: t129 = PetscSinReal(nx * 0.3141592654e1 * x);
2783: t155 = 0.2e1 * t30 * t15 + x * 0.3141592654e1 * t41 * t13 - 0.4e1 * t19 * nx * t129 * nz + t32 * 0.3141592654e1 * t20 + 0.2e1 * t106 * t68 + 0.2e1 * t106 * t20 * t2 - 0.4e1 * t106 * t1 * t13 - 0.2e1 * t11 * t4 + 0.2e1 * t4 * t45 + 0.2e1 * t24 * Z * t2 + 0.2e1 * t24 * Z * t14 + t12 * 0.3141592654e1 * t13;
2784: t158 = t5 * Z;
2786: u1 = (t55 + t90 + t120 + t155) / (0.4e1 * t158 * t19 * t2 + 0.8e1 * t158 * t19 * t1 * t13 + 0.4e1 * t158 * t19 * t14);
2787: /****************************************************************************************/
2788: /****************************************************************************************/
2789: t1 = nz * nz;
2790: t2 = t1 * nz;
2791: t3 = x * t2;
2792: t4 = 0.3141592654e1 * 0.3141592654e1;
2793: t5 = t4 * 0.3141592654e1;
2794: t6 = t3 * t5;
2795: t7 = _PC2 * Z;
2796: t8 = nx * nx;
2797: t12 = t1 * t1;
2798: t13 = t12 * nz;
2799: t14 = x * t13;
2800: t15 = t5 * _PC4;
2801: t16 = x * nz;
2802: t18 = PetscExpReal(t16 * 0.3141592654e1);
2803: t19 = t18 * t18;
2804: t23 = t16 * t5;
2805: t24 = t8 * t8;
2806: t28 = _PC3 * t5;
2807: t29 = t14 * t19;
2808: t32 = _PC1 * t5;
2809: t33 = t32 * Z;
2810: t34 = t16 * t24;
2811: t37 = _PC4 * t19;
2812: t45 = _PC2 * t4;
2813: t53 = t19 * t8;
2814: t58 = _PC4 * t4;
2815: t60 = t1 * t19 * t8;
2816: t63 = t19 * t24;
2817: t67 = t3 * t8;
2818: t73 = nz * t19;
2819: t86 = t28 * x;
2820: t91 = 0.4e1 * t58 * t60 + 0.2e1 * t33 * t16 * t63 + 0.4e1 * t33 * t67 + 0.2e1 * t33 * t29 - x * 0.3141592654e1 * t73 * t8 - 0.2e1 * t53 + 0.2e1 * t32 * Z * x * t13 - 0.2e1 * t58 * t12 - 0.2e1 * t58 * t24 + t3 * 0.3141592654e1 + 0.4e1 * t86 * t2 * t19 * t8;
2821: t94 = Z * t12;
2822: t121 = -0.2e1 * t8 + 0.2e1 * t45 * t94 * t19 + 0.2e1 * t14 * t5 * t7 * t19 + 0.4e1 * t6 * t7 * t53 + 0.2e1 * t23 * t7 * t63 - 0.4e1 * t28 * t67 + 0.2e1 * t45 * t94 + 0.2e1 * t58 * t12 * t19 + t16 * 0.3141592654e1 * t8 + 0.2e1 * t14 * t15 - 0.2e1 * t28 * t14;
2823: t146 = PetscCosReal(nx * 0.3141592654e1 * x);
2824: t156 = -t3 * 0.3141592654e1 * t19 + 0.2e1 * t58 * t63 - 0.4e1 * t58 * t1 * t8 + 0.4e1 * t45 * Z * t1 * t8 - 0.2e1 * t28 * t34 + 0.2e1 * t86 * t73 * t24 + 0.4e1 * t3 * t15 * t8 + 0.4e1 * t45 * Z * t60 + 0.4e1 * t18 * t146 * t8 + 0.2e1 * t45 * Z * t24 + 0.2e1 * t16 * t15 * t24;
2825: t159 = t4 * Z;
2827: u2 = (-0.4e1 * t6 * t7 * t8 + 0.2e1 * t14 * t15 * t19 - 0.2e1 * t23 * t7 * t24 + 0.2e1 * t28 * t29 + 0.2e1 * t33 * t34 + 0.4e1 * t6 * t37 * t8 - 0.2e1 * t14 * t5 * _PC2 * Z + 0.2e1 * t45 * Z * t19 * t24 + 0.2e1 * t23 * t37 * t24 + 0.4e1 * t33 * t3 * t53 + t91 + t121 + t156) / (0.4e1 * t159 * t18 * t12 + 0.8e1 * t159 * t18 * t1 * t8 + 0.4e1 * t159 * t18 * t24);
2828: /****************************************************************************************/
2829: /****************************************************************************************/
2830: t1 = 0.3141592654e1 * 0.3141592654e1;
2831: t2 = t1 * 0.3141592654e1;
2832: t3 = _PC1 * t2;
2833: t4 = t3 * Z;
2834: t5 = nz * nz;
2835: t6 = t5 * t5;
2836: t7 = t6 * nz;
2837: t8 = x * t7;
2838: t9 = x * nz;
2839: t11 = PetscExpReal(t9 * 0.3141592654e1);
2840: t12 = t11 * t11;
2841: t13 = t8 * t12;
2842: t16 = t5 * nz;
2843: t17 = x * t16;
2844: t18 = t17 * t2;
2845: t19 = _PC4 * t12;
2846: t20 = nx * nx;
2847: t24 = t2 * _PC4;
2848: t28 = _PC3 * t2;
2849: t29 = t28 * x;
2850: t30 = t12 * nz;
2851: t31 = t20 * t20;
2852: t40 = _PC2 * Z;
2853: t44 = t9 * t2;
2854: t48 = t12 * t20;
2855: t52 = t17 * t20;
2856: t57 = -0.2e1 * t4 * t13 - 0.4e1 * t18 * t19 * t20 - 0.2e1 * t8 * t24 * t12 - 0.2e1 * t29 * t30 * t31 + 0.2e1 * t8 * t2 * _PC2 * Z - 0.2e1 * t8 * t2 * t40 * t12 - 0.2e1 * t44 * t19 * t31 - 0.4e1 * t18 * t40 * t48 + t20 + 0.4e1 * t28 * t52 + t17 * 0.3141592654e1 * t12;
2857: t58 = t9 * t31;
2858: t61 = _PC3 * t1;
2859: t62 = t12 * t31;
2860: t73 = t5 * t20;
2861: t78 = _PC1 * t1;
2862: t90 = Z * t12;
2863: t94 = 0.2e1 * t28 * t58 + 0.2e1 * t61 * t62 + 0.2e1 * t61 * t12 * t6 - 0.4e1 * t4 * t17 * t48 + 0.2e1 * t28 * t8 + 0.4e1 * t61 * t73 - 0.2e1 * t8 * t24 - 0.2e1 * t78 * Z * t6 - 0.2e1 * t44 * t40 * t62 - 0.2e1 * t78 * Z * t31 - t9 * 0.3141592654e1 * t20 + 0.2e1 * t78 * t90 * t6;
2864: t101 = PetscCosReal(nx * 0.3141592654e1 * x);
2865: t102 = t11 * t101;
2866: t109 = t12 * t5;
2867: t110 = t109 * t20;
2868: t128 = 0.2e1 * t61 * t6 - t17 * 0.3141592654e1 + 0.2e1 * t102 * t5 - 0.4e1 * t17 * t24 * t20 + 0.4e1 * t78 * Z * t110 - 0.2e1 * t9 * t24 * t31 - 0.4e1 * t4 * t52 - 0.2e1 * t4 * t9 * t62 + x * 0.3141592654e1 * t30 * t20 - t5 - 0.4e1 * t78 * Z * t5 * t20;
2869: t156 = 0.2e1 * t78 * t90 * t31 - 0.2e1 * t3 * Z * x * t7 + t48 + 0.4e1 * t61 * t110 + 0.4e1 * t18 * t40 * t20 - 0.2e1 * t102 * t20 + 0.2e1 * t61 * t31 + 0.2e1 * t44 * t40 * t31 - t109 - 0.2e1 * t4 * t58 - 0.2e1 * t28 * t13 - 0.4e1 * t29 * t16 * t12 * t20;
2870: t159 = t1 * t11;
2872: u3 = (t57 + t94 + t128 + t156) / (0.4e1 * t159 * t6 + 0.8e1 * t159 * t73 + 0.4e1 * t159 * t31);
2873: /****************************************************************************************/
2874: /****************************************************************************************/
2875: t1 = _PC2 * Z;
2876: t2 = 0.3141592654e1 * 0.3141592654e1;
2877: t3 = t2 * 0.3141592654e1;
2878: t4 = nz * nz;
2879: t5 = t4 * t4;
2880: t6 = t5 * t4;
2881: t8 = t3 * t6 * x;
2882: t11 = x * t4;
2883: t12 = t11 * t3;
2884: t15 = PetscExpReal(x * nz * 0.3141592654e1);
2885: t16 = t15 * t15;
2886: t17 = _PC3 * t16;
2887: t18 = nx * nx;
2888: t19 = t18 * t18;
2889: t23 = t5 * nz;
2890: t24 = t2 * t23;
2891: t28 = t1 * t3;
2892: t29 = t6 * x;
2893: t30 = t29 * t16;
2894: t33 = _PC4 * t3;
2895: t34 = t5 * x;
2896: t35 = t34 * t18;
2897: t41 = PetscSinReal(nx * 0.3141592654e1 * x);
2898: t47 = t11 * t19;
2899: t54 = t3 * _PC3;
2900: t57 = 0.2e1 * t1 * t8 + 0.2e1 * t12 * t17 * t19 + 0.2e1 * t1 * t24 * t16 + 0.2e1 * t28 * t30 - 0.4e1 * t33 * t35 + 0.2e1 * t15 * nx * t41 * t4 + 0.4e1 * t28 * t35 - 0.2e1 * t33 * t47 - 0.2e1 * t1 * t24 - 0.2e1 * t33 * t29 + 0.2e1 * t29 * t54;
2901: t58 = 0.3141592654e1 * t16;
2902: t60 = t2 * _PC4;
2903: t69 = t4 * nz;
2904: t73 = t1 * t2;
2905: t75 = t69 * t16 * t18;
2906: t79 = x * t16;
2907: t83 = nz * t16;
2908: t84 = t83 * t19;
2909: t95 = -t34 * t58 + 0.2e1 * t60 * t23 * t16 + 0.2e1 * t60 * nz * t19 - t11 * 0.3141592654e1 * t18 + 0.4e1 * t60 * t69 * t18 + 0.4e1 * t73 * t75 + 0.4e1 * t33 * t5 * t79 * t18 + 0.2e1 * t73 * t84 + 0.2e1 * t60 * t84 + 0.2e1 * t33 * t4 * t79 * t19 + 0.4e1 * t60 * t75;
2910: t97 = t34 * t3;
2911: t101 = Z * _PC1;
2912: t102 = t16 * t19;
2913: t106 = t16 * t18;
2914: t127 = t2 * t69;
2915: t131 = t2 * nz;
2916: t135 = 0.4e1 * t97 * t17 * t18 + 0.2e1 * t12 * t101 * t102 + 0.4e1 * t28 * t34 * t106 + 0.2e1 * t28 * t11 * t102 - 0.2e1 * t29 * t3 * Z * _PC1 - 0.4e1 * t97 * t101 * t18 - 0.2e1 * t12 * t101 * t19 + 0.2e1 * t60 * t23 - 0.2e1 * t83 * t18 - 0.4e1 * t1 * t127 * t18 - 0.2e1 * t1 * t131 * t19;
2917: t164 = 0.2e1 * t28 * t47 + 0.2e1 * t11 * t54 * t19 + 0.2e1 * t8 * t101 * t16 + 0.2e1 * t33 * t30 - t11 * t58 * t18 + 0.2e1 * t29 * t54 * t16 + 0.4e1 * t34 * t54 * t18 + 0.4e1 * t97 * t101 * t106 - 0.2e1 * t15 * t18 * nx * t41 - t34 * 0.3141592654e1 + 0.2e1 * nz * t18;
2919: u4 = (t57 + t95 + t135 + t164) / (0.4e1 * t24 * t15 + 0.8e1 * t127 * t15 * t18 + 0.4e1 * t131 * t15 * t19);
2921: /****************************************************************************************/
2922: /****************************************************************************************/
2924: u5 = (PetscReal)(-2 * Z * nz * PETSC_PI * u2 - u3 * 2 * nz * PETSC_PI) * PetscCosReal(nz * PETSC_PI * z); /* pressure */
2926: u6 = (PetscReal)(u3 * 2 * nz * PETSC_PI + 4 * Z * nz * PETSC_PI * u2) * PetscCosReal(nz * PETSC_PI * z); /* zz stress */
2927: sum5 += u5;
2928: sum6 += u6;
2930: u1 *= PetscCosReal(nz * PETSC_PI * z); /* x velocity */
2931: sum1 += u1;
2932: u2 *= PetscSinReal(nz * PETSC_PI * z); /* z velocity */
2933: sum2 += u2;
2934: u3 *= 2 * nz * PETSC_PI * PetscCosReal(nz * PETSC_PI * z); /* xx stress */
2935: sum3 += u3;
2936: u4 *= 2 * nz * PETSC_PI * PetscSinReal(nz * PETSC_PI * z); /* zx stress */
2937: sum4 += u4;
2939: /* Output */
2940: if (mu) *mu = Z;
2941: if (vel) {
2942: vel[0] = sum1;
2943: vel[1] = sum2;
2944: }
2945: if (p) (*p) = sum5;
2946: if (s) {
2947: s[0] = sum3;
2948: s[1] = sum4;
2949: s[2] = sum6;
2950: }
2951: if (gamma) {
2952: /* sigma = tau - p, tau = sigma + p, tau[] = 2*eta*gamma[] */
2953: gamma[0] = (sum3 + sum5) / (2.0 * Z);
2954: gamma[1] = (sum4) / (2.0 * Z);
2955: gamma[2] = (sum6 + sum5) / (2.0 * Z);
2956: }
2957: PetscFunctionReturn(PETSC_SUCCESS);
2958: }
2960: static PetscErrorCode SolCxSolutionVelocity(PetscInt dim, PetscReal time, const PetscReal x[], PetscInt Nf, PetscScalar v[], void *ctx)
2961: {
2962: Parameter *s = (Parameter *)ctx;
2964: PetscFunctionBegin;
2965: PetscCall(SolCxSolution(x, s->m, s->n, s->xc, s->etaA, s->etaB, v, NULL, NULL, NULL, NULL));
2966: PetscFunctionReturn(PETSC_SUCCESS);
2967: }
2969: static PetscErrorCode SolCxSolutionPressure(PetscInt dim, PetscReal time, const PetscReal x[], PetscInt Nf, PetscScalar p[], void *ctx)
2970: {
2971: Parameter *s = (Parameter *)ctx;
2973: PetscFunctionBegin;
2974: PetscCall(SolCxSolution(x, s->m, s->n, s->xc, s->etaA, s->etaB, NULL, p, NULL, NULL, NULL));
2975: PetscFunctionReturn(PETSC_SUCCESS);
2976: }
2978: static PetscErrorCode ProcessOptions(MPI_Comm comm, AppCtx *options)
2979: {
2980: PetscInt sol;
2982: PetscFunctionBeginUser;
2983: options->solType = SOLKX;
2984: PetscOptionsBegin(comm, "", "Variable-Viscosity Stokes Problem Options", "DMPLEX");
2985: sol = options->solType;
2986: PetscCall(PetscOptionsEList("-sol_type", "Type of exact solution", "ex69.c", solTypes, NUM_SOL_TYPES, solTypes[options->solType], &sol, NULL));
2987: options->solType = (SolutionType)sol;
2988: PetscOptionsEnd();
2989: PetscFunctionReturn(PETSC_SUCCESS);
2990: }
2992: static PetscErrorCode SetUpParameters(AppCtx *user)
2993: {
2994: PetscBag bag;
2995: Parameter *p;
2997: PetscFunctionBeginUser;
2998: /* setup PETSc parameter bag */
2999: PetscCall(PetscBagGetData(user->bag, (void **)&p));
3000: PetscCall(PetscBagSetName(user->bag, "par", "Problem parameters"));
3001: bag = user->bag;
3002: switch (user->solType) {
3003: case SOLKX:
3004: PetscCall(PetscBagRegisterInt(bag, &p->n, 1, "n", "x-wavelength for forcing variation"));
3005: PetscCall(PetscBagRegisterInt(bag, &p->m, 1, "m", "z-wavelength for forcing variation"));
3006: PetscCall(PetscBagRegisterReal(bag, &p->B, 1.0, "B", "Exponential scale for viscosity variation"));
3007: break;
3008: case SOLCX:
3009: PetscCall(PetscBagRegisterInt(bag, &p->n, 1, "n", "x-wavelength for forcing variation"));
3010: PetscCall(PetscBagRegisterInt(bag, &p->m, 1, "m", "z-wavelength for forcing variation"));
3011: PetscCall(PetscBagRegisterReal(bag, &p->etaA, 1.0, "etaA", "Viscosity for x < xc"));
3012: PetscCall(PetscBagRegisterReal(bag, &p->etaB, 1.0, "etaB", "Viscosity for x > xc"));
3013: PetscCall(PetscBagRegisterReal(bag, &p->xc, 0.5, "xc", "x-coordinate of the viscosity jump"));
3014: break;
3015: default:
3016: SETERRQ(PETSC_COMM_WORLD, PETSC_ERR_ARG_OUTOFRANGE, "Invalid solution type %d (%s)", user->solType, solTypes[PetscMin(user->solType, NUM_SOL_TYPES)]);
3017: }
3018: PetscCall(PetscBagSetFromOptions(bag));
3019: PetscCall(PetscBagViewFromOptions(bag, NULL, "-param_view"));
3020: PetscFunctionReturn(PETSC_SUCCESS);
3021: }
3023: /* Make split labels so that we can have corners in multiple labels */
3024: static PetscErrorCode CreateSplitLabels(DM dm)
3025: {
3026: const char *names[4] = {"markerBottom", "markerRight", "markerTop", "markerLeft"};
3027: PetscInt ids[4] = {1, 2, 3, 4};
3028: DMLabel label;
3029: IS is;
3030: PetscInt f;
3032: PetscFunctionBeginUser;
3033: for (f = 0; f < 4; ++f) {
3034: PetscCall(DMCreateLabel(dm, names[f]));
3035: PetscCall(DMGetStratumIS(dm, "marker", ids[f], &is));
3036: if (!is) continue;
3037: PetscCall(DMGetLabel(dm, names[f], &label));
3038: PetscCall(DMLabelInsertIS(label, is, 1));
3039: PetscCall(ISDestroy(&is));
3040: }
3041: PetscFunctionReturn(PETSC_SUCCESS);
3042: }
3044: static PetscErrorCode CreateMesh(MPI_Comm comm, AppCtx *user, DM *dm)
3045: {
3046: DM cdm;
3048: PetscFunctionBeginUser;
3049: PetscCall(DMCreate(comm, dm));
3050: PetscCall(DMSetType(*dm, DMPLEX));
3051: PetscCall(DMSetFromOptions(*dm));
3052: cdm = *dm;
3053: while (cdm) {
3054: PetscCall(CreateSplitLabels(cdm));
3055: PetscCall(DMGetCoarseDM(cdm, &cdm));
3056: }
3057: PetscCall(DMViewFromOptions(*dm, NULL, "-dm_view"));
3058: PetscFunctionReturn(PETSC_SUCCESS);
3059: }
3061: static PetscErrorCode SetupProblem(DM dm, AppCtx *user)
3062: {
3063: PetscErrorCode (*exactFunc)(PetscInt dim, PetscReal t, const PetscReal x[], PetscInt Nf, PetscScalar *u, void *ctx);
3064: PetscDS prob;
3065: DMLabel label;
3066: const PetscInt id = 1;
3067: PetscInt dim, comp;
3068: Parameter *ctx;
3069: void *data;
3071: PetscFunctionBeginUser;
3072: PetscCall(DMGetDimension(dm, &dim));
3073: PetscCall(DMGetDS(dm, &prob));
3074: switch (user->solType) {
3075: case SOLKX:
3076: PetscCall(PetscDSSetResidual(prob, 0, f0_u, stokes_momentum_kx));
3077: PetscCall(PetscDSSetResidual(prob, 1, stokes_mass, f1_zero));
3078: PetscCall(PetscDSSetJacobian(prob, 0, 0, NULL, NULL, NULL, stokes_momentum_vel_J_kx));
3079: PetscCall(PetscDSSetJacobian(prob, 0, 1, NULL, NULL, stokes_momentum_pres_J, NULL));
3080: PetscCall(PetscDSSetJacobian(prob, 1, 0, NULL, stokes_mass_J, NULL, NULL));
3081: PetscCall(PetscDSSetJacobianPreconditioner(prob, 0, 0, NULL, NULL, NULL, stokes_momentum_vel_J_kx));
3082: PetscCall(PetscDSSetJacobianPreconditioner(prob, 1, 1, stokes_identity_J_kx, NULL, NULL, NULL));
3083: break;
3084: case SOLCX:
3085: PetscCall(PetscDSSetResidual(prob, 0, f0_u, stokes_momentum_cx));
3086: PetscCall(PetscDSSetResidual(prob, 1, stokes_mass, f1_zero));
3087: PetscCall(PetscDSSetJacobian(prob, 0, 0, NULL, NULL, NULL, stokes_momentum_vel_J_cx));
3088: PetscCall(PetscDSSetJacobian(prob, 0, 1, NULL, NULL, stokes_momentum_pres_J, NULL));
3089: PetscCall(PetscDSSetJacobian(prob, 1, 0, NULL, stokes_mass_J, NULL, NULL));
3090: PetscCall(PetscDSSetJacobianPreconditioner(prob, 0, 0, NULL, NULL, NULL, stokes_momentum_vel_J_kx));
3091: PetscCall(PetscDSSetJacobianPreconditioner(prob, 1, 1, stokes_identity_J_cx, NULL, NULL, NULL));
3092: break;
3093: default:
3094: SETERRQ(PETSC_COMM_WORLD, PETSC_ERR_ARG_OUTOFRANGE, "Invalid solution type %d (%s)", user->solType, solTypes[PetscMin(user->solType, NUM_SOL_TYPES)]);
3095: }
3096: PetscCall(PetscBagGetData(user->bag, &data));
3097: switch (dim) {
3098: case 2:
3099: switch (user->solType) {
3100: case SOLKX:
3101: PetscCall(PetscDSSetExactSolution(prob, 0, SolKxSolutionVelocity, data));
3102: PetscCall(PetscDSSetExactSolution(prob, 1, SolKxSolutionPressure, data));
3103: break;
3104: case SOLCX:
3105: PetscCall(PetscDSSetExactSolution(prob, 0, SolCxSolutionVelocity, data));
3106: PetscCall(PetscDSSetExactSolution(prob, 1, SolCxSolutionPressure, data));
3107: break;
3108: default:
3109: SETERRQ(PETSC_COMM_WORLD, PETSC_ERR_ARG_OUTOFRANGE, "Invalid solution type %d (%s)", user->solType, solTypes[PetscMin(user->solType, NUM_SOL_TYPES)]);
3110: }
3111: break;
3112: default:
3113: SETERRQ(PETSC_COMM_WORLD, PETSC_ERR_ARG_OUTOFRANGE, "Invalid dimension %" PetscInt_FMT, dim);
3114: }
3115: /* Setup constants */
3116: {
3117: Parameter *param;
3119: PetscCall(PetscBagGetData(user->bag, (void **)¶m));
3120: switch (user->solType) {
3121: case SOLKX: {
3122: PetscScalar constants[3];
3124: constants[0] = param->m;
3125: constants[1] = param->n;
3126: constants[2] = param->B;
3127: PetscCall(PetscDSSetConstants(prob, 3, constants));
3128: } break;
3129: case SOLCX: {
3130: PetscScalar constants[5];
3132: constants[0] = param->m;
3133: constants[1] = param->n;
3134: constants[2] = param->etaA;
3135: constants[3] = param->etaB;
3136: constants[4] = param->xc;
3137: PetscCall(PetscDSSetConstants(prob, 5, constants));
3138: } break;
3139: default:
3140: SETERRQ(PETSC_COMM_WORLD, PETSC_ERR_SUP, "No parameter information for solution type %d", user->solType);
3141: }
3142: }
3143: /* Setup Boundary Conditions */
3144: PetscCall(PetscDSGetExactSolution(prob, 0, &exactFunc, (void **)&ctx));
3145: comp = 1;
3146: PetscCall(DMGetLabel(dm, "markerBottom", &label));
3147: PetscCall(DMAddBoundary(dm, DM_BC_ESSENTIAL, "wallB", label, 1, &id, 0, 1, &comp, (void (*)(void))exactFunc, NULL, ctx, NULL));
3148: comp = 0;
3149: PetscCall(DMGetLabel(dm, "markerRight", &label));
3150: PetscCall(DMAddBoundary(dm, DM_BC_ESSENTIAL, "wallR", label, 1, &id, 0, 1, &comp, (void (*)(void))exactFunc, NULL, ctx, NULL));
3151: comp = 1;
3152: PetscCall(DMGetLabel(dm, "markerTop", &label));
3153: PetscCall(DMAddBoundary(dm, DM_BC_ESSENTIAL, "wallT", label, 1, &id, 0, 1, &comp, (void (*)(void))exactFunc, NULL, ctx, NULL));
3154: comp = 0;
3155: PetscCall(DMGetLabel(dm, "markerLeft", &label));
3156: PetscCall(DMAddBoundary(dm, DM_BC_ESSENTIAL, "wallL", label, 1, &id, 0, 1, &comp, (void (*)(void))exactFunc, NULL, ctx, NULL));
3157: PetscFunctionReturn(PETSC_SUCCESS);
3158: }
3160: static PetscErrorCode CreatePressureNullSpace(DM dm, PetscInt origField, PetscInt field, MatNullSpace *nullspace)
3161: {
3162: Vec vec;
3163: PetscErrorCode (*funcs[2])(PetscInt dim, PetscReal time, const PetscReal x[], PetscInt Nf, PetscScalar *u, void *ctx) = {zero, one};
3165: PetscFunctionBeginUser;
3166: PetscCheck(origField == 1, PetscObjectComm((PetscObject)dm), PETSC_ERR_ARG_WRONG, "Field %" PetscInt_FMT " should be 1 for pressure", origField);
3167: funcs[field] = one;
3168: {
3169: PetscDS ds;
3170: PetscCall(DMGetDS(dm, &ds));
3171: PetscCall(PetscObjectViewFromOptions((PetscObject)ds, NULL, "-ds_view"));
3172: }
3173: PetscCall(DMCreateGlobalVector(dm, &vec));
3174: PetscCall(DMProjectFunction(dm, 0.0, funcs, NULL, INSERT_ALL_VALUES, vec));
3175: PetscCall(VecNormalize(vec, NULL));
3176: PetscCall(MatNullSpaceCreate(PetscObjectComm((PetscObject)dm), PETSC_FALSE, 1, &vec, nullspace));
3177: PetscCall(VecDestroy(&vec));
3178: /* New style for field null spaces */
3179: {
3180: PetscObject pressure;
3181: MatNullSpace nullspacePres;
3183: PetscCall(DMGetField(dm, field, NULL, &pressure));
3184: PetscCall(MatNullSpaceCreate(PetscObjectComm(pressure), PETSC_TRUE, 0, NULL, &nullspacePres));
3185: PetscCall(PetscObjectCompose(pressure, "nullspace", (PetscObject)nullspacePres));
3186: PetscCall(MatNullSpaceDestroy(&nullspacePres));
3187: }
3188: PetscFunctionReturn(PETSC_SUCCESS);
3189: }
3191: static PetscErrorCode SetupDiscretization(DM dm, AppCtx *user)
3192: {
3193: DM cdm = dm;
3194: PetscFE fe[2];
3195: DMPolytopeType ct;
3196: PetscInt dim, cStart;
3197: PetscBool simplex;
3199: PetscFunctionBeginUser;
3200: PetscCall(DMGetDimension(dm, &dim));
3201: PetscCall(DMPlexGetHeightStratum(dm, 0, &cStart, NULL));
3202: PetscCall(DMPlexGetCellType(dm, cStart, &ct));
3203: simplex = DMPolytopeTypeGetNumVertices(ct) == DMPolytopeTypeGetDim(ct) + 1 ? PETSC_TRUE : PETSC_FALSE;
3204: /* Create discretization of solution fields */
3205: PetscCall(PetscFECreateDefault(PETSC_COMM_SELF, dim, dim, simplex, "vel_", PETSC_DEFAULT, &fe[0]));
3206: PetscCall(PetscObjectSetName((PetscObject)fe[0], "velocity"));
3207: PetscCall(PetscFECreateDefault(PETSC_COMM_SELF, dim, 1, simplex, "pres_", PETSC_DEFAULT, &fe[1]));
3208: PetscCall(PetscFECopyQuadrature(fe[0], fe[1]));
3209: PetscCall(PetscObjectSetName((PetscObject)fe[1], "pressure"));
3210: /* Set discretization and boundary conditions for each mesh */
3211: PetscCall(DMSetField(dm, 0, NULL, (PetscObject)fe[0]));
3212: PetscCall(DMSetField(dm, 1, NULL, (PetscObject)fe[1]));
3213: PetscCall(DMCreateDS(dm));
3214: PetscCall(SetupProblem(dm, user));
3215: while (cdm) {
3216: PetscCall(DMCopyDisc(dm, cdm));
3217: PetscCall(DMSetNullSpaceConstructor(cdm, 1, CreatePressureNullSpace));
3218: PetscCall(DMGetCoarseDM(cdm, &cdm));
3219: }
3220: PetscCall(PetscFEDestroy(&fe[0]));
3221: PetscCall(PetscFEDestroy(&fe[1]));
3222: {
3223: PetscObject pressure;
3224: MatNullSpace nullSpacePres;
3226: PetscCall(DMGetField(dm, 1, NULL, &pressure));
3227: PetscCall(MatNullSpaceCreate(PetscObjectComm(pressure), PETSC_TRUE, 0, NULL, &nullSpacePres));
3228: PetscCall(PetscObjectCompose(pressure, "nullspace", (PetscObject)nullSpacePres));
3229: PetscCall(MatNullSpaceDestroy(&nullSpacePres));
3230: }
3231: PetscFunctionReturn(PETSC_SUCCESS);
3232: }
3234: /* Add a vector in the nullspace to make the continuum integral 0.
3236: If int(u) = a and int(n) = b, then int(u - a/b n) = a - a/b b = 0
3237: */
3238: static void pressure(PetscInt dim, PetscInt Nf, PetscInt NfAux, const PetscInt uOff[], const PetscInt uOff_x[], const PetscScalar u[], const PetscScalar u_t[], const PetscScalar u_x[], const PetscInt aOff[], const PetscInt aOff_x[], const PetscScalar a[], const PetscScalar a_t[], const PetscScalar a_x[], PetscReal t, const PetscReal x[], PetscInt numConstants, const PetscScalar constants[], PetscScalar p[])
3239: {
3240: p[0] = u[uOff[1]];
3241: }
3242: static PetscErrorCode CorrectDiscretePressure(DM dm, MatNullSpace nullspace, Vec u, AppCtx *user)
3243: {
3244: PetscDS ds;
3245: const Vec *nullvecs;
3246: PetscScalar pintd, intc[2], intn[2];
3247: MPI_Comm comm;
3249: PetscFunctionBeginUser;
3250: PetscCall(PetscObjectGetComm((PetscObject)dm, &comm));
3251: PetscCall(DMGetDS(dm, &ds));
3252: PetscCall(PetscDSSetObjective(ds, 1, pressure));
3253: PetscCall(MatNullSpaceGetVecs(nullspace, NULL, NULL, &nullvecs));
3254: PetscCall(VecDot(nullvecs[0], u, &pintd));
3255: PetscCheck(PetscAbsScalar(pintd) <= PETSC_SMALL, comm, PETSC_ERR_ARG_WRONG, "Discrete integral of pressure: %g", (double)PetscRealPart(pintd));
3256: PetscCall(DMPlexComputeIntegralFEM(dm, nullvecs[0], intn, user));
3257: PetscCall(DMPlexComputeIntegralFEM(dm, u, intc, user));
3258: PetscCall(VecAXPY(u, -intc[1] / intn[1], nullvecs[0]));
3259: PetscCall(DMPlexComputeIntegralFEM(dm, u, intc, user));
3260: PetscCheck(PetscAbsScalar(intc[1]) <= PETSC_SMALL, comm, PETSC_ERR_ARG_WRONG, "Continuum integral of pressure after correction: %g", (double)PetscRealPart(intc[1]));
3261: PetscFunctionReturn(PETSC_SUCCESS);
3262: }
3264: static PetscErrorCode SNESConvergenceCorrectPressure(SNES snes, PetscInt it, PetscReal xnorm, PetscReal gnorm, PetscReal f, SNESConvergedReason *reason, void *user)
3265: {
3266: PetscFunctionBeginUser;
3267: PetscCall(SNESConvergedDefault(snes, it, xnorm, gnorm, f, reason, user));
3268: if (*reason > 0) {
3269: DM dm;
3270: Mat J;
3271: Vec u;
3272: MatNullSpace nullspace;
3274: PetscCall(SNESGetDM(snes, &dm));
3275: PetscCall(SNESGetSolution(snes, &u));
3276: PetscCall(SNESGetJacobian(snes, &J, NULL, NULL, NULL));
3277: PetscCall(MatGetNullSpace(J, &nullspace));
3278: PetscCheck(nullspace, PetscObjectComm((PetscObject)snes), PETSC_ERR_ARG_WRONG, "SNES Jacobian has no attached null space");
3279: PetscCall(CorrectDiscretePressure(dm, nullspace, u, (AppCtx *)user));
3280: }
3281: PetscFunctionReturn(PETSC_SUCCESS);
3282: }
3284: int main(int argc, char **argv)
3285: {
3286: SNES snes; /* nonlinear solver */
3287: DM dm; /* problem definition */
3288: Vec u, r; /* solution, residual vectors */
3289: Mat J, M; /* Jacobian and preconditiong matrix */
3290: MatNullSpace nullSpace; /* May be necessary for pressure */
3291: AppCtx user; /* user-defined work context */
3292: PetscErrorCode (*initialGuess[2])(PetscInt dim, PetscReal time, const PetscReal x[], PetscInt Nf, PetscScalar *u, void *ctx) = {zero, zero};
3294: PetscFunctionBeginUser;
3295: PetscCall(PetscInitialize(&argc, &argv, NULL, help));
3296: PetscCall(ProcessOptions(PETSC_COMM_WORLD, &user));
3297: PetscCall(SNESCreate(PETSC_COMM_WORLD, &snes));
3298: PetscCall(CreateMesh(PETSC_COMM_WORLD, &user, &dm));
3299: PetscCall(SNESSetDM(snes, dm));
3300: PetscCall(DMSetApplicationContext(dm, &user));
3301: /* Setup problem parameters */
3302: PetscCall(PetscBagCreate(PETSC_COMM_WORLD, sizeof(Parameter), &user.bag));
3303: PetscCall(SetUpParameters(&user));
3304: /* Setup problem */
3305: PetscCall(SetupDiscretization(dm, &user));
3306: PetscCall(DMPlexCreateClosureIndex(dm, NULL));
3308: PetscCall(DMCreateGlobalVector(dm, &u));
3309: PetscCall(VecDuplicate(u, &r));
3311: PetscCall(DMPlexSetSNESLocalFEM(dm, &user, &user, &user));
3312: PetscCall(CreatePressureNullSpace(dm, 1, 1, &nullSpace));
3314: { /* set tolerances */
3315: KSP ksp;
3317: PetscCall(SNESGetKSP(snes, &ksp));
3318: PetscCall(KSPSetTolerances(ksp, 1.e-2 * PETSC_SMALL, PETSC_SMALL, PETSC_DEFAULT, PETSC_DEFAULT));
3319: }
3321: /* There should be a way to express this using the DM */
3322: PetscCall(SNESSetFromOptions(snes));
3323: PetscCall(SNESSetUp(snes));
3324: PetscCall(SNESGetJacobian(snes, &J, &M, NULL, NULL));
3325: PetscCall(MatSetNullSpace(J, nullSpace));
3326: PetscCall(PetscObjectSetOptionsPrefix((PetscObject)M, "prec_"));
3327: PetscCall(MatSetFromOptions(M));
3328: PetscCall(SNESSetConvergenceTest(snes, SNESConvergenceCorrectPressure, &user, NULL));
3330: PetscCall(DMSNESCheckFromOptions(snes, u));
3331: PetscCall(DMProjectFunction(dm, 0.0, initialGuess, NULL, INSERT_VALUES, u));
3332: PetscCall(PetscObjectSetName((PetscObject)u, "Solution"));
3333: PetscCall(SNESSolve(snes, NULL, u));
3334: {
3335: PetscErrorCode (*exacts[2])(PetscInt dim, PetscReal t, const PetscReal x[], PetscInt Nf, PetscScalar *u, void *ctx);
3336: void *ectxs[2];
3337: PetscDS ds;
3338: Vec e;
3340: PetscCall(DMGetDS(dm, &ds));
3341: PetscCall(PetscDSGetExactSolution(ds, 0, &exacts[0], &ectxs[0]));
3342: PetscCall(PetscDSGetExactSolution(ds, 1, &exacts[1], &ectxs[1]));
3344: PetscCall(DMGetGlobalVector(dm, &e));
3345: PetscCall(PetscObjectCompose((PetscObject)e, "__Vec_bc_zero__", (PetscObject)dm));
3346: PetscCall(DMPlexComputeL2DiffVec(dm, 0.0, exacts, ectxs, u, e));
3347: PetscCall(PetscObjectSetName((PetscObject)e, "Solution Error"));
3348: PetscCall(VecViewFromOptions(e, NULL, "-error_vec_view"));
3349: PetscCall(PetscObjectCompose((PetscObject)e, "__Vec_bc_zero__", NULL));
3350: PetscCall(DMRestoreGlobalVector(dm, &e));
3351: }
3352: PetscCall(VecViewFromOptions(u, NULL, "-sol_vec_view"));
3354: PetscCall(MatNullSpaceDestroy(&nullSpace));
3355: PetscCall(VecDestroy(&u));
3356: PetscCall(VecDestroy(&r));
3357: PetscCall(SNESDestroy(&snes));
3358: PetscCall(DMDestroy(&dm));
3359: PetscCall(PetscBagDestroy(&user.bag));
3360: PetscCall(PetscFinalize());
3361: return 0;
3362: }
3364: /*TEST
3366: # 2D serial discretization tests
3367: test:
3368: suffix: p2p1
3369: requires: triangle
3370: args: -dm_plex_separate_marker -vel_petscspace_degree 2 -pres_petscspace_degree 1 \
3371: -snes_error_if_not_converged -dmsnes_check .001 \
3372: -ksp_rtol 1.e-9 -ksp_error_if_not_converged -pc_use_amat \
3373: -pc_type fieldsplit -pc_fieldsplit_type schur -pc_fieldsplit_schur_factorization_type full -pc_fieldsplit_schur_precondition a11 \
3374: -fieldsplit_velocity_pc_type lu \
3375: -fieldsplit_pressure_ksp_rtol 1.e-9 -fieldsplit_pressure_pc_type lu
3376: test:
3377: suffix: p2p1_gmg
3378: requires: triangle
3379: args: -dm_plex_separate_marker -dm_refine_hierarchy 2 -vel_petscspace_degree 2 -pres_petscspace_degree 1 \
3380: -snes_error_if_not_converged -dmsnes_check .001 \
3381: -ksp_type fgmres -ksp_rtol 1.e-9 -ksp_error_if_not_converged -pc_use_amat \
3382: -pc_type fieldsplit -pc_fieldsplit_type schur -pc_fieldsplit_schur_factorization_type full -pc_fieldsplit_schur_precondition a11 \
3383: -fieldsplit_velocity_pc_type mg \
3384: -fieldsplit_pressure_ksp_rtol 1.e-9 -fieldsplit_pressure_pc_type lu
3385: test:
3386: suffix: p2p1_conv
3387: requires: triangle
3388: # -dm_refine 2 gives L_2 convergence rate: [3.0, 2.2]
3389: args: -dm_plex_separate_marker -vel_petscspace_degree 2 -pres_petscspace_degree 1 \
3390: -snes_error_if_not_converged -snes_convergence_estimate -convest_num_refine 2 \
3391: -ksp_rtol 1.e-9 -ksp_error_if_not_converged -pc_use_amat \
3392: -pc_type fieldsplit -pc_fieldsplit_type schur -pc_fieldsplit_schur_factorization_type full -pc_fieldsplit_schur_precondition a11 \
3393: -fieldsplit_velocity_pc_type lu \
3394: -fieldsplit_pressure_ksp_rtol 1.e-9 -fieldsplit_pressure_pc_type lu
3395: test:
3396: suffix: q2q1_conv
3397: # -dm_refine 2 gives L_2 convergence rate: [3.0, 2.1]
3398: args: -dm_plex_simplex 0 -dm_plex_separate_marker -vel_petscspace_degree 2 -pres_petscspace_degree 1 \
3399: -snes_error_if_not_converged -snes_convergence_estimate -convest_num_refine 2 \
3400: -ksp_rtol 1.e-9 -ksp_error_if_not_converged -pc_use_amat \
3401: -pc_type fieldsplit -pc_fieldsplit_type schur -pc_fieldsplit_schur_factorization_type full -pc_fieldsplit_schur_precondition a11 \
3402: -fieldsplit_velocity_pc_type lu \
3403: -fieldsplit_pressure_ksp_rtol 1.e-9 -fieldsplit_pressure_pc_type lu
3404: test:
3405: suffix: q1p0_conv
3406: # -dm_refine 2 gives L_2 convergence rate: [2.0, 1.0]
3407: args: -dm_plex_simplex 0 -dm_plex_separate_marker -vel_petscspace_degree 1 -pres_petscspace_degree 0 \
3408: -snes_error_if_not_converged -snes_convergence_estimate -convest_num_refine 2 \
3409: -ksp_rtol 1.e-9 -ksp_error_if_not_converged -pc_use_amat \
3410: -pc_type fieldsplit -pc_fieldsplit_type schur -pc_fieldsplit_schur_factorization_type full -pc_fieldsplit_schur_precondition a11 \
3411: -fieldsplit_velocity_pc_type lu \
3412: -fieldsplit_pressure_ksp_rtol 1.e-9 -fieldsplit_pressure_pc_type lu
3413: test:
3414: suffix: q2p1_conv
3415: # -dm_refine 2 gives L_2 convergence rate: [3.0, 2.0]
3416: args: -dm_plex_simplex 0 -dm_plex_separate_marker \
3417: -vel_petscspace_degree 2 -pres_petscspace_degree 1 -pres_petscspace_poly_tensor 0 -pres_petscdualspace_lagrange_continuity 0 \
3418: -snes_error_if_not_converged -snes_convergence_estimate -convest_num_refine 2 \
3419: -ksp_rtol 1.e-9 -ksp_error_if_not_converged -pc_use_amat \
3420: -pc_type fieldsplit -pc_fieldsplit_type schur -pc_fieldsplit_schur_factorization_type full -pc_fieldsplit_schur_precondition a11 \
3421: -fieldsplit_velocity_pc_type lu \
3422: -fieldsplit_pressure_ksp_rtol 1.e-9 -fieldsplit_pressure_pc_type lu
3424: # FETI-DP tests
3425: testset:
3426: output_file: output/ex69_q2p1fetidp.out
3427: suffix: q2p1fetidp
3428: requires: !single
3429: nsize: 5
3430: args: -dm_plex_simplex 0 -dm_plex_separate_marker -dm_refine_pre 1 -dm_mat_type is -dm_view -petscpartitioner_type simple \
3431: -vel_petscspace_degree 2 -pres_petscspace_degree 1 -pres_petscspace_poly_tensor 0 -pres_petscdualspace_lagrange_continuity 0 -pres_petscdualspace_lagrange_node_endpoints 0 \
3432: -snes_error_if_not_converged \
3433: -ksp_error_if_not_converged \
3434: -ksp_type fetidp -ksp_fetidp_saddlepoint -fetidp_ksp_type cg -fetidp_ksp_norm_type natural \
3435: -fetidp_bddc_pc_bddc_detect_disconnected -fetidp_bddc_pc_bddc_symmetric -fetidp_bddc_pc_bddc_vertex_size 3 -fetidp_bddc_pc_bddc_graph_maxcount 2 -fetidp_bddc_pc_bddc_coarse_redundant_pc_type svd -fetidp_bddc_pc_bddc_dirichlet_pc_type svd -fetidp_bddc_pc_bddc_neumann_pc_type svd
3436: test:
3437: suffix: aij
3438: args: -matis_localmat_type aij
3439: test:
3440: requires: viennacl !CUDA_VERSION_11PLUS broken
3441: suffix: aijviennacl
3442: args: -matis_localmat_type aijviennacl
3443: test:
3444: requires: cuda
3445: suffix: aijcusparse
3446: args: -matis_localmat_type aijcusparse
3448: testset:
3449: suffix: q2p1fetidp_deluxe
3450: output_file: output/ex69_q2p1fetidp_deluxe.out
3451: requires: mumps double
3452: nsize: 5
3453: args: -dm_plex_simplex 0 -dm_plex_separate_marker -dm_refine_pre 1 -dm_mat_type is -dm_view -petscpartitioner_type simple \
3454: -vel_petscspace_degree 2 -pres_petscspace_degree 1 -pres_petscspace_poly_tensor 0 -pres_petscdualspace_lagrange_continuity 0 -pres_petscdualspace_lagrange_node_endpoints 0 \
3455: -snes_error_if_not_converged \
3456: -ksp_error_if_not_converged \
3457: -ksp_type fetidp -ksp_fetidp_saddlepoint -fetidp_ksp_type cg -fetidp_ksp_norm_type natural \
3458: -fetidp_bddc_pc_bddc_detect_disconnected -fetidp_bddc_pc_bddc_symmetric -fetidp_bddc_pc_bddc_vertex_size 3 -fetidp_bddc_pc_bddc_graph_maxcount 2 -fetidp_bddc_pc_bddc_use_deluxe_scaling -fetidp_bddc_pc_bddc_deluxe_singlemat -fetidp_bddc_pc_bddc_deluxe_zerorows \
3459: -fetidp_bddc_sub_schurs_mat_solver_type mumps -fetidp_bddc_sub_schurs_mat_mumps_icntl_14 500 -fetidp_bddc_pc_bddc_coarse_redundant_pc_type svd
3460: test:
3461: suffix: aij
3462: args: -matis_localmat_type aij
3463: test:
3464: suffix: aij_seqdense
3465: args: -matis_localmat_type aij -fetidp_bddc_sub_schurs_schur_mat_type seqdense
3466: test:
3467: requires: viennacl !CUDA_VERSION_11PLUS
3468: suffix: aijviennacl
3469: args: -matis_localmat_type aijviennacl
3470: test:
3471: requires: cuda
3472: suffix: aijcusparse
3473: args: -matis_localmat_type aijcusparse
3475: testset:
3476: suffix: q2p1fetidp_deluxe_adaptive
3477: output_file: output/ex69_q2p1fetidp_deluxe_adaptive.out
3478: requires: mumps double
3479: nsize: 5
3480: args: -dm_plex_simplex 0 -dm_plex_separate_marker -dm_refine_pre 1 -dm_mat_type is -dm_view -petscpartitioner_type simple \
3481: -vel_petscspace_degree 2 -pres_petscspace_degree 1 -pres_petscspace_poly_tensor 0 -pres_petscdualspace_lagrange_continuity 0 -pres_petscdualspace_lagrange_node_endpoints 0 \
3482: -snes_error_if_not_converged \
3483: -ksp_error_if_not_converged \
3484: -ksp_type fetidp -ksp_fetidp_saddlepoint -fetidp_ksp_type cg -fetidp_ksp_norm_type natural \
3485: -fetidp_bddc_pc_bddc_detect_disconnected -fetidp_bddc_pc_bddc_symmetric -fetidp_bddc_pc_bddc_vertex_size 3 -fetidp_bddc_pc_bddc_graph_maxcount 2 -fetidp_bddc_pc_bddc_use_deluxe_scaling -fetidp_bddc_pc_bddc_deluxe_singlemat -fetidp_bddc_pc_bddc_adaptive_userdefined -fetidp_bddc_pc_bddc_adaptive_threshold 1.3 \
3486: -fetidp_bddc_sub_schurs_mat_solver_type mumps -fetidp_bddc_sub_schurs_mat_mumps_icntl_14 500 -fetidp_bddc_pc_bddc_coarse_redundant_pc_type svd
3487: test:
3488: suffix: aij
3489: args: -matis_localmat_type aij
3490: test:
3491: suffix: aij_seqdense
3492: args: -matis_localmat_type aij -fetidp_bddc_sub_schurs_schur_mat_type seqdense
3493: test:
3494: requires: viennacl !CUDA_VERSION_11PLUS
3495: suffix: aijviennacl
3496: args: -matis_localmat_type aijviennacl
3497: test:
3498: requires: cuda
3499: suffix: aijcusparse
3500: args: -matis_localmat_type aijcusparse
3502: test:
3503: suffix: p2p1fetidp
3504: requires: triangle
3505: nsize: 4
3506: args: -dm_plex_separate_marker -dm_refine_pre 2 -dm_refine_uniform_pre -dm_mat_type is -dm_view -petscpartitioner_type simple \
3507: -vel_petscspace_degree 2 -pres_petscspace_degree 1 \
3508: -snes_error_if_not_converged \
3509: -ksp_error_if_not_converged \
3510: -ksp_type fetidp -ksp_fetidp_saddlepoint -fetidp_ksp_type cg -fetidp_ksp_norm_type natural -fetidp_pc_fieldsplit_schur_fact_type diag \
3511: -fetidp_fieldsplit_p_pc_type jacobi -fetidp_fieldsplit_p_ksp_type preonly \
3512: -fetidp_fieldsplit_lag_ksp_type preonly \
3513: -fetidp_bddc_pc_bddc_detect_disconnected -fetidp_bddc_pc_bddc_symmetric -fetidp_bddc_pc_bddc_vertex_size 3 -fetidp_bddc_pc_bddc_graph_maxcount 2 -fetidp_bddc_pc_bddc_coarse_redundant_pc_type cholesky -fetidp_bddc_pc_bddc_dirichlet_pc_type svd -fetidp_bddc_pc_bddc_neumann_pc_type svd
3515: test:
3516: suffix: p2p1fetidp_allp
3517: requires: triangle
3518: nsize: 4
3519: args: -dm_plex_separate_marker -dm_refine_pre 2 -dm_refine_uniform_pre -dm_mat_type is -dm_view -petscpartitioner_type simple \
3520: -vel_petscspace_degree 2 -pres_petscspace_degree 1 \
3521: -snes_error_if_not_converged \
3522: -ksp_error_if_not_converged \
3523: -ksp_type fetidp -ksp_fetidp_saddlepoint -fetidp_ksp_type cg -fetidp_ksp_norm_type natural -fetidp_pc_fieldsplit_schur_fact_type diag -ksp_fetidp_pressure_all \
3524: -fetidp_fieldsplit_p_pc_type jacobi -fetidp_fieldsplit_p_ksp_type preonly \
3525: -fetidp_fieldsplit_lag_ksp_type preonly \
3526: -fetidp_bddc_pc_bddc_detect_disconnected -fetidp_bddc_pc_bddc_symmetric -fetidp_bddc_pc_bddc_vertex_size 3 -fetidp_bddc_pc_bddc_graph_maxcount 2 -fetidp_bddc_pc_bddc_coarse_redundant_pc_type cholesky -fetidp_bddc_pc_bddc_dirichlet_pc_type svd -fetidp_bddc_pc_bddc_neumann_pc_type svd
3528: test:
3529: suffix: p2p1fetidp_discharm
3530: requires: triangle
3531: nsize: 4
3532: args: -dm_plex_separate_marker -dm_refine_pre 2 -dm_refine_uniform_pre -dm_mat_type is -dm_view -petscpartitioner_type simple \
3533: -vel_petscspace_degree 2 -pres_petscspace_degree 1 \
3534: -snes_error_if_not_converged \
3535: -ksp_error_if_not_converged \
3536: -ksp_type fetidp -ksp_fetidp_saddlepoint -fetidp_ksp_type cg -fetidp_ksp_norm_type natural -fetidp_pc_fieldsplit_schur_fact_type diag -fetidp_pc_discrete_harmonic -fetidp_harmonic_pc_type cholesky \
3537: -fetidp_fieldsplit_p_pc_type jacobi -fetidp_fieldsplit_p_ksp_type preonly \
3538: -fetidp_fieldsplit_lag_ksp_type preonly \
3539: -fetidp_bddc_pc_bddc_detect_disconnected -fetidp_bddc_pc_bddc_symmetric -fetidp_bddc_pc_bddc_vertex_size 3 -fetidp_bddc_pc_bddc_graph_maxcount 2 -fetidp_bddc_pc_bddc_coarse_redundant_pc_type cholesky -fetidp_bddc_pc_bddc_dirichlet_pc_type none -fetidp_bddc_pc_bddc_neumann_pc_type svd
3541: test:
3542: suffix: p2p1fetidp_lumped
3543: requires: triangle
3544: nsize: 4
3545: args: -dm_plex_separate_marker -dm_refine_pre 2 -dm_refine_uniform_pre -dm_mat_type is -dm_view -petscpartitioner_type simple \
3546: -vel_petscspace_degree 2 -pres_petscspace_degree 1 \
3547: -snes_error_if_not_converged \
3548: -ksp_error_if_not_converged \
3549: -ksp_type fetidp -ksp_fetidp_saddlepoint -fetidp_ksp_type cg -fetidp_ksp_norm_type natural -fetidp_pc_fieldsplit_schur_fact_type diag -fetidp_pc_lumped \
3550: -fetidp_fieldsplit_p_pc_type jacobi -fetidp_fieldsplit_p_ksp_type preonly \
3551: -fetidp_fieldsplit_lag_ksp_type preonly \
3552: -fetidp_bddc_pc_bddc_detect_disconnected -fetidp_bddc_pc_bddc_symmetric -fetidp_bddc_pc_bddc_vertex_size 3 -fetidp_bddc_pc_bddc_graph_maxcount 2 -fetidp_bddc_pc_bddc_coarse_redundant_pc_type cholesky -fetidp_bddc_pc_bddc_dirichlet_pc_type none -fetidp_bddc_pc_bddc_neumann_pc_type svd
3554: test:
3555: suffix: p2p1fetidp_deluxe
3556: requires: triangle mumps
3557: nsize: 4
3558: args: -dm_plex_separate_marker -dm_refine_pre 2 -dm_refine_uniform_pre -dm_mat_type is -dm_view -petscpartitioner_type simple \
3559: -vel_petscspace_degree 2 -pres_petscspace_degree 1 \
3560: -snes_error_if_not_converged \
3561: -ksp_error_if_not_converged \
3562: -ksp_type fetidp -ksp_fetidp_saddlepoint -fetidp_ksp_type cg -fetidp_ksp_norm_type natural -fetidp_pc_fieldsplit_schur_fact_type diag \
3563: -fetidp_fieldsplit_p_pc_type jacobi -fetidp_fieldsplit_p_ksp_type preonly \
3564: -fetidp_fieldsplit_lag_ksp_type preonly \
3565: -fetidp_bddc_pc_bddc_detect_disconnected -fetidp_bddc_pc_bddc_symmetric -fetidp_bddc_pc_bddc_vertex_size 3 -fetidp_bddc_pc_bddc_graph_maxcount 2 -fetidp_bddc_pc_bddc_coarse_redundant_pc_type cholesky -fetidp_bddc_pc_bddc_use_deluxe_scaling -fetidp_bddc_pc_bddc_deluxe_singlemat \
3566: -fetidp_bddc_sub_schurs_mat_solver_type mumps -fetidp_bddc_sub_schurs_mat_mumps_icntl_14 500 -fetidp_bddc_sub_schurs_posdef 0
3568: test:
3569: suffix: p2p1fetidp_deluxe_discharm
3570: requires: triangle mumps
3571: nsize: 4
3572: args: -dm_plex_separate_marker -dm_refine_pre 2 -dm_refine_uniform_pre -dm_mat_type is -dm_view -petscpartitioner_type simple \
3573: -vel_petscspace_degree 2 -pres_petscspace_degree 1 \
3574: -snes_error_if_not_converged \
3575: -ksp_error_if_not_converged \
3576: -ksp_type fetidp -ksp_fetidp_saddlepoint -fetidp_ksp_type cg -fetidp_ksp_norm_type natural -fetidp_pc_fieldsplit_schur_fact_type diag \
3577: -fetidp_fieldsplit_p_pc_type jacobi -fetidp_fieldsplit_p_ksp_type preonly \
3578: -fetidp_fieldsplit_lag_ksp_type preonly \
3579: -fetidp_bddc_pc_bddc_detect_disconnected -fetidp_bddc_pc_bddc_symmetric -fetidp_bddc_pc_bddc_vertex_size 3 -fetidp_bddc_pc_bddc_graph_maxcount 2 -fetidp_bddc_pc_bddc_coarse_redundant_pc_type cholesky -fetidp_bddc_pc_bddc_use_deluxe_scaling -fetidp_bddc_pc_bddc_deluxe_singlemat \
3580: -fetidp_bddc_sub_schurs_mat_solver_type mumps -fetidp_bddc_sub_schurs_mat_mumps_icntl_14 500 -fetidp_bddc_sub_schurs_posdef 0 -fetidp_bddc_sub_schurs_discrete_harmonic
3582: testset:
3583: nsize: 4
3584: requires: triangle
3585: output_file: output/ex69_p2p1fetidp_olof.out
3586: args: -dm_plex_separate_marker -dm_refine_pre 2 -dm_refine_uniform_pre -dm_mat_type is -dm_view -petscpartitioner_type simple \
3587: -vel_petscspace_degree 2 -pres_petscspace_degree 1 \
3588: -snes_error_if_not_converged \
3589: -ksp_error_if_not_converged \
3590: -ksp_type fetidp -ksp_fetidp_saddlepoint -fetidp_ksp_type cg -fetidp_ksp_norm_type natural -fetidp_pc_discrete_harmonic 1 -fetidp_harmonic_pc_type cholesky -ksp_fetidp_pressure_schur \
3591: -fetidp_fieldsplit_p_pc_type bddc -fetidp_fieldsplit_p_pc_bddc_dirichlet_pc_type none -fetidp_fieldsplit_p_ksp_type preonly \
3592: -fetidp_fieldsplit_lag_ksp_error_if_not_converged 0 -fetidp_fieldsplit_lag_ksp_type chebyshev -fetidp_fieldsplit_lag_ksp_max_it 2 \
3593: -fetidp_bddc_pc_bddc_detect_disconnected -fetidp_bddc_pc_bddc_symmetric -fetidp_bddc_pc_bddc_vertex_size 3 -fetidp_bddc_pc_bddc_graph_maxcount 2 -fetidp_bddc_pc_bddc_coarse_redundant_pc_type cholesky -fetidp_bddc_pc_bddc_dirichlet_pc_type none -fetidp_bddc_pc_bddc_neumann_pc_type svd
3594: test:
3595: suffix: p2p1fetidp_olof_full
3596: args: -fetidp_pc_fieldsplit_schur_fact_type full
3597: test:
3598: suffix: p2p1fetidp_olof_diag
3599: args: -fetidp_pc_fieldsplit_schur_fact_type diag
3600: test:
3601: suffix: p2p1fetidp_olof_additive
3602: args: -fetidp_pc_fieldsplit_type additive
3604: #BDDC with benign trick
3605: testset:
3606: suffix: q2p1bddc
3607: output_file: output/ex69_q2p1fetidp_deluxe.out
3608: nsize: 5
3609: args: -dm_plex_simplex 0 -dm_plex_separate_marker -dm_refine_pre 1 -dm_mat_type is -dm_view -petscpartitioner_type simple -vel_petscspace_degree 2 -pres_petscspace_degree 1 -pres_petscspace_poly_tensor 0 -pres_petscdualspace_lagrange_continuity 0 -pres_petscdualspace_lagrange_node_endpoints 0 -petscds_jac_pre 0 -snes_error_if_not_converged -ksp_error_if_not_converged -ksp_type cg -ksp_norm_type natural -pc_type bddc -pc_bddc_benign_trick -pc_bddc_nonetflux -pc_bddc_detect_disconnected -pc_bddc_vertex_size 2 -pc_bddc_coarse_redundant_pc_type svd -pc_bddc_use_qr_single
3610: test:
3611: requires: double
3612: suffix: benign_card
3613: # no native support for saddle point factorizations from PETSc
3614: args: -pc_bddc_dirichlet_pc_type svd -pc_bddc_neumann_pc_type svd
3615: test:
3616: requires: mumps double
3617: suffix: benign_deluxe_mumps
3618: args: -pc_bddc_use_deluxe_scaling -pc_bddc_deluxe_zerorows -sub_schurs_mat_solver_type mumps -sub_schurs_mat_mumps_icntl_14 1000
3619: test:
3620: requires: mumps double
3621: suffix: benign_deluxe_adaptive_mumps
3622: args: -pc_bddc_adaptive_threshold 1.7 -pc_bddc_use_deluxe_scaling -pc_bddc_deluxe_zerorows -sub_schurs_mat_solver_type mumps -sub_schurs_mat_mumps_icntl_14 1000
3623: test:
3624: TODO: broken (INDEFINITE PC)
3625: requires: mkl_pardiso double !complex
3626: suffix: benign_deluxe_mkl
3627: args: -pc_bddc_use_deluxe_scaling -pc_bddc_deluxe_zerorows -sub_schurs_mat_solver_type mkl_pardiso -snes_rtol 1.e-7
3628: test:
3629: TODO: broken (INDEFINITE PC)
3630: requires: mkl_pardiso double !complex
3631: suffix: benign_deluxe_adaptive_mkl
3632: args: -pc_bddc_adaptive_threshold 1.7 -pc_bddc_use_deluxe_scaling -pc_bddc_deluxe_zerorows -sub_schurs_mat_solver_type mkl_pardiso -snes_rtol 1.e-7
3634: TEST*/