# Annotation of /branches/trilinos_from_5897/dudley/src/Assemble_PDE_System2_2D.cpp

Revision 5933 - (hide annotations)
Wed Feb 17 23:53:30 2016 UTC (3 years, 5 months ago) by caltinay
File size: 14896 byte(s)
```sync with trunk.

```
 1 gross 798 2 jfenwick 3981 /***************************************************************************** 3 ksteube 1811 * 4 jfenwick 5863 * Copyright (c) 2003-2016 by The University of Queensland 5 jfenwick 3981 6 ksteube 1811 * 7 * Primary Business: Queensland, Australia 8 * Licensed under the Open Software License version 3.0 9 10 * 11 jfenwick 3981 * Development until 2012 by Earth Systems Science Computational Center (ESSCC) 12 jfenwick 4657 * Development 2012-2013 by School of Earth Sciences 13 * Development from 2014 by Centre for Geoscience Computing (GeoComp) 14 jfenwick 3981 * 15 *****************************************************************************/ 16 ksteube 1312 17 jfenwick 3981 /************************************************************************************/ 18 gross 798 19 /* assembles the system of numEq PDEs into the stiffness matrix S right hand side F */ 20 /* the shape functions for test and solution must be identical */ 21 22 /* -(A_{k,i,m,j} u_m,j)_i-(B_{k,i,m} u_m)_i+C_{k,m,j} u_m,j-D_{k,m} u_m and -(X_{k,i})_i + Y_k */ 23 24 /* u has p.numComp components in a 2D domain. The shape functions for test and solution must be identical */ 25 /* and row_NS == row_NN */ 26 27 /* Shape of the coefficients: */ 28 29 /* A = p.numEqu x 2 x p.numComp x 2 */ 30 /* B = 2 x p.numEqu x p.numComp */ 31 /* C = p.numEqu x 2 x p.numComp */ 32 /* D = p.numEqu x p.numComp */ 33 /* X = p.numEqu x 2 */ 34 /* Y = p.numEqu */ 35 36 jfenwick 3981 /************************************************************************************/ 37 gross 798 38 jfenwick 5483 #define ESNEEDPYTHON 39 #include "esysUtils/first.h" 40 41 gross 798 #include "Assemble.h" 42 #include "Util.h" 43 gross 853 #ifdef _OPENMP 44 #include 45 #endif 46 gross 798 47 jfenwick 3981 /************************************************************************************/ 48 gross 798 49 caltinay 3247 void Dudley_Assemble_PDE_System2_2D(Dudley_Assemble_Parameters p, Dudley_ElementFile * elements, 50 caltinay 5933 escript::ASM_ptr mat, escript::Data* F, 51 jfenwick 5480 const escript::Data* A, const escript::Data* B, const escript::Data* C, const escript::Data* D, 52 const escript::Data* X, const escript::Data* Y) 53 jfenwick 3187 { 54 gross 798 55 jfenwick 3187 #define DIM 2 56 gross 798 index_t color; 57 jfenwick 3136 dim_t e; 58 gross 2748 __const double *A_p, *B_p, *C_p, *D_p, *X_p, *Y_p, *A_q, *B_q, *C_q, *D_q, *X_q, *Y_q; 59 jfenwick 3187 double *EM_S, *EM_F, *DSDX; 60 gross 853 index_t *row_index; 61 jfenwick 3187 register dim_t q, s, r, k, m; 62 gross 853 register double rtmp, rtmp0, rtmp1, rtmp00, rtmp10, rtmp01, rtmp11; 63 jfenwick 4521 bool add_EM_F, add_EM_S; 64 gross 853 65 jfenwick 4521 bool extendedA = isExpanded(A); 66 bool extendedB = isExpanded(B); 67 bool extendedC = isExpanded(C); 68 bool extendedD = isExpanded(D); 69 bool extendedX = isExpanded(X); 70 bool extendedY = isExpanded(Y); 71 jfenwick 3187 double *F_p = (requireWrite(F), getSampleDataRW(F, 0)); /* use comma, to get around the mixed code and declarations thing */ 72 jfenwick 3224 const double *S = p.shapeFns; 73 jfenwick 3204 dim_t len_EM_S = p.numShapes * p.numShapes * p.numEqu * p.numComp; 74 dim_t len_EM_F = p.numShapes * p.numEqu; 75 gross 798 76 jfenwick 3231 #pragma omp parallel private(color,EM_S, EM_F, DSDX, A_p, B_p, C_p, D_p, X_p, Y_p, A_q, B_q, C_q, D_q, X_q, Y_q,row_index,q, s,r,k,m,rtmp, rtmp0, rtmp1, rtmp00, rtmp10, rtmp01, rtmp11,add_EM_F, add_EM_S) 77 gross 798 { 78 jfenwick 2271 79 jfenwick 4332 EM_S = new double[len_EM_S]; 80 EM_F = new double[len_EM_F]; 81 row_index = new index_t[p.numShapes]; 82 gross 798 83 jfenwick 3187 if (!Dudley_checkPtr(EM_S) && !Dudley_checkPtr(EM_F) && !Dudley_checkPtr(row_index)) 84 { 85 gross 2748 86 jfenwick 3187 for (color = elements->minColor; color <= elements->maxColor; color++) 87 { 88 /* open loop over all elements: */ 89 #pragma omp for private(e) schedule(static) 90 for (e = 0; e < elements->numElements; e++) 91 { 92 if (elements->Color[e] == color) 93 { 94 jfenwick 3251 double vol = p.row_jac->absD[e] * p.row_jac->quadweight; 95 gross 2748 96 jfenwick 3187 A_p = getSampleDataRO(A, e); 97 B_p = getSampleDataRO(B, e); 98 C_p = getSampleDataRO(C, e); 99 D_p = getSampleDataRO(D, e); 100 X_p = getSampleDataRO(X, e); 101 Y_p = getSampleDataRO(Y, e); 102 jfenwick 3205 DSDX = &(p.row_jac->DSDX[INDEX5(0, 0, 0, 0, e, p.numShapes, DIM, p.numQuad, 1)]); 103 jfenwick 3187 for (q = 0; q < len_EM_S; ++q) 104 EM_S[q] = 0; 105 for (q = 0; q < len_EM_F; ++q) 106 EM_F[q] = 0; 107 add_EM_F = FALSE; 108 add_EM_S = FALSE; 109 gross 2748 110 jfenwick 3981 /************************************************************************************/ 111 jfenwick 3187 /* process A: */ 112 jfenwick 3981 /************************************************************************************/ 113 jfenwick 3187 A_p = getSampleDataRO(A, e); 114 if (NULL != A_p) 115 { 116 add_EM_S = TRUE; 117 if (extendedA) 118 { 119 jfenwick 3205 A_q = &(A_p[INDEX6(0, 0, 0, 0, 0, 0, p.numEqu, DIM, p.numComp, DIM, p.numQuad)]); 120 jfenwick 3204 for (s = 0; s < p.numShapes; s++) 121 jfenwick 3187 { 122 jfenwick 3204 for (r = 0; r < p.numShapes; r++) 123 jfenwick 3187 { 124 for (k = 0; k < p.numEqu; k++) 125 { 126 for (m = 0; m < p.numComp; m++) 127 { 128 rtmp = 0; 129 jfenwick 3205 for (q = 0; q < p.numQuad; q++) 130 jfenwick 3187 { 131 rtmp += 132 jfenwick 3204 vol * (DSDX[INDEX3(s, 0, q, p.numShapes, DIM)] * 133 jfenwick 3187 A_q[INDEX5(k, 0, m, 0, q, p.numEqu, DIM, p.numComp, DIM)] 134 jfenwick 3204 * DSDX[INDEX3(r, 0, q, p.numShapes, DIM)] + 135 DSDX[INDEX3(s, 0, q, p.numShapes, DIM)] * 136 jfenwick 3187 A_q[INDEX5(k, 0, m, 1, q, p.numEqu, DIM, p.numComp, DIM)] 137 jfenwick 3204 * DSDX[INDEX3(r, 1, q, p.numShapes, DIM)] + 138 DSDX[INDEX3(s, 1, q, p.numShapes, DIM)] * 139 jfenwick 3187 A_q[INDEX5(k, 1, m, 0, q, p.numEqu, DIM, p.numComp, DIM)] 140 jfenwick 3204 * DSDX[INDEX3(r, 0, q, p.numShapes, DIM)] + 141 DSDX[INDEX3(s, 1, q, p.numShapes, DIM)] * 142 jfenwick 3187 A_q[INDEX5(k, 1, m, 1, q, p.numEqu, DIM, p.numComp, DIM)] 143 jfenwick 3204 * DSDX[INDEX3(r, 1, q, p.numShapes, DIM)]); 144 jfenwick 3187 } 145 jfenwick 3224 EM_S[INDEX4(k, m, s, r, p.numEqu, p.numComp, p.numShapes)] += rtmp; 146 jfenwick 3187 } 147 } 148 } 149 } 150 jfenwick 3224 } 151 else 152 jfenwick 3187 { 153 jfenwick 3204 for (s = 0; s < p.numShapes; s++) 154 jfenwick 3187 { 155 jfenwick 3204 for (r = 0; r < p.numShapes; r++) 156 jfenwick 3187 { 157 rtmp00 = 0; 158 rtmp01 = 0; 159 rtmp10 = 0; 160 rtmp11 = 0; 161 jfenwick 3205 for (q = 0; q < p.numQuad; q++) 162 jfenwick 3187 { 163 jfenwick 3204 rtmp0 = vol * DSDX[INDEX3(s, 0, q, p.numShapes, DIM)]; 164 rtmp1 = vol * DSDX[INDEX3(s, 1, q, p.numShapes, DIM)]; 165 rtmp00 += rtmp0 * DSDX[INDEX3(r, 0, q, p.numShapes, DIM)]; 166 rtmp01 += rtmp0 * DSDX[INDEX3(r, 1, q, p.numShapes, DIM)]; 167 rtmp10 += rtmp1 * DSDX[INDEX3(r, 0, q, p.numShapes, DIM)]; 168 rtmp11 += rtmp1 * DSDX[INDEX3(r, 1, q, p.numShapes, DIM)]; 169 jfenwick 3187 } 170 for (k = 0; k < p.numEqu; k++) 171 { 172 for (m = 0; m < p.numComp; m++) 173 { 174 jfenwick 3204 EM_S[INDEX4(k, m, s, r, p.numEqu, p.numComp, p.numShapes)] += 175 jfenwick 3187 rtmp00 * A_p[INDEX4(k, 0, m, 0, p.numEqu, DIM, p.numComp)] 176 + rtmp01 * A_p[INDEX4(k, 0, m, 1, p.numEqu, DIM, p.numComp)] 177 + rtmp10 * A_p[INDEX4(k, 1, m, 0, p.numEqu, DIM, p.numComp)] 178 + rtmp11 * A_p[INDEX4(k, 1, m, 1, p.numEqu, DIM, p.numComp)]; 179 } 180 } 181 } 182 } 183 } 184 } 185 jfenwick 3981 /************************************************************************************/ 186 jfenwick 3187 /* process B: */ 187 jfenwick 3981 /************************************************************************************/ 188 jfenwick 3187 B_p = getSampleDataRO(B, e); 189 if (NULL != B_p) 190 { 191 add_EM_S = TRUE; 192 if (extendedB) 193 { 194 jfenwick 3205 B_q = &(B_p[INDEX5(0, 0, 0, 0, 0, p.numEqu, DIM, p.numComp, p.numQuad)]); 195 jfenwick 3204 for (s = 0; s < p.numShapes; s++) 196 jfenwick 3187 { 197 jfenwick 3204 for (r = 0; r < p.numShapes; r++) 198 jfenwick 3187 { 199 for (k = 0; k < p.numEqu; k++) 200 { 201 for (m = 0; m < p.numComp; m++) 202 { 203 rtmp = 0; 204 jfenwick 3205 for (q = 0; q < p.numQuad; q++) 205 jfenwick 3187 { 206 jfenwick 3204 rtmp += vol * S[INDEX2(r, q, p.numShapes)] * 207 (DSDX[INDEX3(s, 0, q, p.numShapes, DIM)] * 208 jfenwick 3187 B_q[INDEX4(k, 0, m, q, p.numEqu, DIM, p.numComp)] + 209 jfenwick 3204 DSDX[INDEX3(s, 1, q, p.numShapes, DIM)] * 210 jfenwick 3187 B_q[INDEX4(k, 1, m, q, p.numEqu, DIM, p.numComp)]); 211 } 212 jfenwick 3224 EM_S[INDEX4(k, m, s, r, p.numEqu, p.numComp, p.numShapes)] += rtmp; 213 jfenwick 3187 } 214 } 215 } 216 } 217 jfenwick 3224 } 218 else 219 jfenwick 3187 { 220 jfenwick 3204 for (s = 0; s < p.numShapes; s++) 221 jfenwick 3187 { 222 jfenwick 3204 for (r = 0; r < p.numShapes; r++) 223 jfenwick 3187 { 224 rtmp0 = 0; 225 rtmp1 = 0; 226 jfenwick 3205 for (q = 0; q < p.numQuad; q++) 227 jfenwick 3187 { 228 jfenwick 3204 rtmp = vol * S[INDEX2(r, q, p.numShapes)]; 229 rtmp0 += rtmp * DSDX[INDEX3(s, 0, q, p.numShapes, DIM)]; 230 rtmp1 += rtmp * DSDX[INDEX3(s, 1, q, p.numShapes, DIM)]; 231 jfenwick 3187 } 232 for (k = 0; k < p.numEqu; k++) 233 { 234 for (m = 0; m < p.numComp; m++) 235 { 236 jfenwick 3204 EM_S[INDEX4(k, m, s, r, p.numEqu, p.numComp, p.numShapes)] += 237 jfenwick 3187 rtmp0 * B_p[INDEX3(k, 0, m, p.numEqu, DIM)] + 238 rtmp1 * B_p[INDEX3(k, 1, m, p.numEqu, DIM)]; 239 } 240 } 241 } 242 } 243 } 244 } 245 jfenwick 3981 /************************************************************************************/ 246 jfenwick 3187 /* process C: */ 247 jfenwick 3981 /************************************************************************************/ 248 jfenwick 3187 C_p = getSampleDataRO(C, e); 249 if (NULL != C_p) 250 { 251 add_EM_S = TRUE; 252 if (extendedC) 253 { 254 jfenwick 3205 C_q = &(C_p[INDEX5(0, 0, 0, 0, 0, p.numEqu, p.numComp, DIM, p.numQuad)]); 255 jfenwick 3204 for (s = 0; s < p.numShapes; s++) 256 jfenwick 3187 { 257 jfenwick 3204 for (r = 0; r < p.numShapes; r++) 258 jfenwick 3187 { 259 for (k = 0; k < p.numEqu; k++) 260 { 261 for (m = 0; m < p.numComp; m++) 262 { 263 rtmp = 0; 264 jfenwick 3205 for (q = 0; q < p.numQuad; q++) 265 jfenwick 3187 { 266 jfenwick 3204 rtmp += vol * S[INDEX2(s, q, p.numShapes)] * 267 jfenwick 3187 (C_q[INDEX4(k, m, 0, q, p.numEqu, p.numComp, DIM)] * 268 jfenwick 3204 DSDX[INDEX3(r, 0, q, p.numShapes, DIM)] + 269 jfenwick 3187 C_q[INDEX4(k, m, 1, q, p.numEqu, p.numComp, DIM)] * 270 jfenwick 3204 DSDX[INDEX3(r, 1, q, p.numShapes, DIM)]); 271 jfenwick 3187 } 272 jfenwick 3224 EM_S[INDEX4(k, m, s, r, p.numEqu, p.numComp, p.numShapes)] += rtmp; 273 jfenwick 3187 } 274 } 275 } 276 } 277 jfenwick 3224 } 278 else 279 jfenwick 3187 { 280 jfenwick 3204 for (s = 0; s < p.numShapes; s++) 281 jfenwick 3187 { 282 jfenwick 3204 for (r = 0; r < p.numShapes; r++) 283 jfenwick 3187 { 284 rtmp0 = 0; 285 rtmp1 = 0; 286 jfenwick 3205 for (q = 0; q < p.numQuad; q++) 287 jfenwick 3187 { 288 jfenwick 3204 rtmp = vol * S[INDEX2(s, q, p.numShapes)]; 289 rtmp0 += rtmp * DSDX[INDEX3(r, 0, q, p.numShapes, DIM)]; 290 rtmp1 += rtmp * DSDX[INDEX3(r, 1, q, p.numShapes, DIM)]; 291 jfenwick 3187 } 292 for (k = 0; k < p.numEqu; k++) 293 { 294 for (m = 0; m < p.numComp; m++) 295 { 296 jfenwick 3204 EM_S[INDEX4(k, m, s, r, p.numEqu, p.numComp, p.numShapes)] += 297 jfenwick 3187 rtmp0 * C_p[INDEX3(k, m, 0, p.numEqu, p.numComp)] + 298 rtmp1 * C_p[INDEX3(k, m, 1, p.numEqu, p.numComp)]; 299 } 300 } 301 } 302 } 303 } 304 } 305 jfenwick 3981 /*********************************************************************************** */ 306 jfenwick 3187 /* process D */ 307 jfenwick 3981 /************************************************************************************/ 308 jfenwick 3187 D_p = getSampleDataRO(D, e); 309 if (NULL != D_p) 310 { 311 add_EM_S = TRUE; 312 if (extendedD) 313 { 314 jfenwick 3205 D_q = &(D_p[INDEX4(0, 0, 0, 0, p.numEqu, p.numComp, p.numQuad)]); 315 jfenwick 3204 for (s = 0; s < p.numShapes; s++) 316 jfenwick 3187 { 317 jfenwick 3204 for (r = 0; r < p.numShapes; r++) 318 jfenwick 3187 { 319 for (k = 0; k < p.numEqu; k++) 320 { 321 for (m = 0; m < p.numComp; m++) 322 { 323 rtmp = 0; 324 jfenwick 3205 for (q = 0; q < p.numQuad; q++) 325 jfenwick 3187 { 326 rtmp += 327 jfenwick 3204 vol * S[INDEX2(s, q, p.numShapes)] * 328 jfenwick 3187 D_q[INDEX3(k, m, q, p.numEqu, p.numComp)] * 329 jfenwick 3204 S[INDEX2(r, q, p.numShapes)]; 330 jfenwick 3187 } 331 jfenwick 3224 EM_S[INDEX4(k, m, s, r, p.numEqu, p.numComp, p.numShapes)] += rtmp; 332 jfenwick 3187 } 333 } 334 } 335 } 336 jfenwick 3224 } 337 else 338 jfenwick 3187 { 339 jfenwick 3204 for (s = 0; s < p.numShapes; s++) 340 jfenwick 3187 { 341 jfenwick 3204 for (r = 0; r < p.numShapes; r++) 342 jfenwick 3187 { 343 rtmp = 0; 344 jfenwick 3205 for (q = 0; q < p.numQuad; q++) 345 jfenwick 3224 rtmp += vol * S[INDEX2(s, q, p.numShapes)] * S[INDEX2(r, q, p.numShapes)]; 346 jfenwick 3187 for (k = 0; k < p.numEqu; k++) 347 { 348 for (m = 0; m < p.numComp; m++) 349 { 350 jfenwick 3204 EM_S[INDEX4(k, m, s, r, p.numEqu, p.numComp, p.numShapes)] += 351 jfenwick 3187 rtmp * D_p[INDEX2(k, m, p.numEqu)]; 352 } 353 } 354 } 355 } 356 } 357 } 358 jfenwick 3981 /************************************************************************************/ 359 jfenwick 3187 /* process X: */ 360 jfenwick 3981 /************************************************************************************/ 361 jfenwick 3187 X_p = getSampleDataRO(X, e); 362 if (NULL != X_p) 363 { 364 add_EM_F = TRUE; 365 if (extendedX) 366 { 367 jfenwick 3205 X_q = &(X_p[INDEX4(0, 0, 0, 0, p.numEqu, DIM, p.numQuad)]); 368 jfenwick 3204 for (s = 0; s < p.numShapes; s++) 369 jfenwick 3187 { 370 for (k = 0; k < p.numEqu; k++) 371 { 372 rtmp = 0; 373 jfenwick 3205 for (q = 0; q < p.numQuad; q++) 374 jfenwick 3187 { 375 rtmp += 376 jfenwick 3204 vol * (DSDX[INDEX3(s, 0, q, p.numShapes, DIM)] * 377 jfenwick 3187 X_q[INDEX3(k, 0, q, p.numEqu, DIM)] + 378 jfenwick 3204 DSDX[INDEX3(s, 1, q, p.numShapes, DIM)] * 379 jfenwick 3187 X_q[INDEX3(k, 1, q, p.numEqu, DIM)]); 380 } 381 EM_F[INDEX2(k, s, p.numEqu)] += rtmp; 382 } 383 } 384 jfenwick 3224 } 385 else 386 jfenwick 3187 { 387 jfenwick 3204 for (s = 0; s < p.numShapes; s++) 388 jfenwick 3187 { 389 rtmp0 = 0; 390 rtmp1 = 0; 391 jfenwick 3205 for (q = 0; q < p.numQuad; q++) 392 jfenwick 3187 { 393 jfenwick 3204 rtmp0 += vol * DSDX[INDEX3(s, 0, q, p.numShapes, DIM)]; 394 rtmp1 += vol * DSDX[INDEX3(s, 1, q, p.numShapes, DIM)]; 395 jfenwick 3187 } 396 for (k = 0; k < p.numEqu; k++) 397 EM_F[INDEX2(k, s, p.numEqu)] += 398 rtmp0 * X_p[INDEX2(k, 0, p.numEqu)] + rtmp1 * X_p[INDEX2(k, 1, p.numEqu)]; 399 } 400 } 401 } 402 jfenwick 3981 /************************************************************************************/ 403 jfenwick 3187 /* process Y: */ 404 jfenwick 3981 /************************************************************************************/ 405 jfenwick 3187 Y_p = getSampleDataRO(Y, e); 406 if (NULL != Y_p) 407 { 408 add_EM_F = TRUE; 409 if (extendedY) 410 { 411 jfenwick 3205 Y_q = &(Y_p[INDEX3(0, 0, 0, p.numEqu, p.numQuad)]); 412 jfenwick 3204 for (s = 0; s < p.numShapes; s++) 413 jfenwick 3187 { 414 for (k = 0; k < p.numEqu; k++) 415 { 416 rtmp = 0; 417 jfenwick 3205 for (q = 0; q < p.numQuad; q++) 418 jfenwick 3224 rtmp += vol * S[INDEX2(s, q, p.numShapes)] * Y_q[INDEX2(k, q, p.numEqu)]; 419 jfenwick 3187 EM_F[INDEX2(k, s, p.numEqu)] += rtmp; 420 } 421 } 422 jfenwick 3224 } 423 else 424 jfenwick 3187 { 425 jfenwick 3204 for (s = 0; s < p.numShapes; s++) 426 jfenwick 3187 { 427 rtmp = 0; 428 jfenwick 3205 for (q = 0; q < p.numQuad; q++) 429 jfenwick 3204 rtmp += vol * S[INDEX2(s, q, p.numShapes)]; 430 jfenwick 3187 for (k = 0; k < p.numEqu; k++) 431 EM_F[INDEX2(k, s, p.numEqu)] += rtmp * Y_p[k]; 432 } 433 } 434 } 435 jfenwick 3981 /*********************************************************************************************************************/ 436 jfenwick 3187 /* add the element matrices onto the matrix and right hand side */ 437 jfenwick 3981 /*********************************************************************************************************************/ 438 jfenwick 3204 for (q = 0; q < p.numShapes; q++) 439 jfenwick 3187 row_index[q] = p.row_DOF[elements->Nodes[INDEX2(q, e, p.NN)]]; 440 gross 798 441 jfenwick 3187 if (add_EM_F) 442 jfenwick 3224 Dudley_Util_AddScatter(p.numShapes, row_index, p.numEqu, EM_F, F_p, p.row_DOF_UpperBound); 443 jfenwick 3187 if (add_EM_S) 444 caltinay 5933 Dudley_Assemble_addToSystemMatrix(mat, p.numShapes, row_index, p.numEqu, 445 jfenwick 3204 p.numShapes, row_index, p.numComp, EM_S); 446 jfenwick 3187 447 } /* end color check */ 448 } /* end element loop */ 449 } /* end color loop */ 450 451 jfenwick 4332 delete[] EM_S; 452 delete[] EM_F; 453 delete[] row_index; 454 jfenwick 3187 455 } /* end of pointer check */ 456 } /* end parallel region */ 457 gross 798 } 458 jfenwick 3187

## Properties

Name Value
svn:mergeinfo /branches/4.0fordebian/dudley/src/Assemble_PDE_System2_2D.cpp:5567-5588 /branches/lapack2681/finley/src/Assemble_PDE_System2_2D.cpp:2682-2741 /branches/pasowrap/dudley/src/Assemble_PDE_System2_2D.cpp:3661-3674 /branches/py3_attempt2/dudley/src/Assemble_PDE_System2_2D.cpp:3871-3891 /branches/restext/finley/src/Assemble_PDE_System2_2D.cpp:2610-2624 /branches/ripleygmg_from_3668/dudley/src/Assemble_PDE_System2_2D.cpp:3669-3791 /branches/stage3.0/finley/src/Assemble_PDE_System2_2D.cpp:2569-2590 /branches/symbolic_from_3470/dudley/src/Assemble_PDE_System2_2D.cpp:3471-3974 /branches/symbolic_from_3470/ripley/test/python/dudley/src/Assemble_PDE_System2_2D.cpp:3517-3974 /release/3.0/finley/src/Assemble_PDE_System2_2D.cpp:2591-2601 /release/4.0/dudley/src/Assemble_PDE_System2_2D.cpp:5380-5406 /trunk/dudley/src/Assemble_PDE_System2_2D.cpp:4257-4344,5898-5932 /trunk/ripley/test/python/dudley/src/Assemble_PDE_System2_2D.cpp:3480-3515

 ViewVC Help Powered by ViewVC 1.1.26