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