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