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