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