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