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