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