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