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