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