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