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