/[escript]/branches/doubleplusgood/dudley/src/Assemble_PDE_System2_3D.cpp
ViewVC logotype

Diff of /branches/doubleplusgood/dudley/src/Assemble_PDE_System2_3D.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3223 by jfenwick, Wed Sep 29 01:00:21 2010 UTC revision 3224 by jfenwick, Wed Sep 29 05:19:37 2010 UTC
# Line 63  void Dudley_Assemble_PDE_System2_3D(Asse Line 63  void Dudley_Assemble_PDE_System2_3D(Asse
63      bool_t extendedX = isExpanded(X);      bool_t extendedX = isExpanded(X);
64      bool_t extendedY = isExpanded(Y);      bool_t extendedY = isExpanded(Y);
65      double *F_p = (requireWrite(F), getSampleDataRW(F, 0)); /* use comma, to get around the mixed code and declarations thing */      double *F_p = (requireWrite(F), getSampleDataRW(F, 0)); /* use comma, to get around the mixed code and declarations thing */
66      const double* S=p.shapeFns;      const double *S = p.shapeFns;
67      dim_t len_EM_S = p.numShapes * p.numShapes * p.numEqu * p.numComp;      dim_t len_EM_S = p.numShapes * p.numShapes * p.numEqu * p.numComp;
68      dim_t len_EM_F = p.numShapes * p.numEqu;      dim_t len_EM_F = p.numShapes * p.numEqu;
69    
# Line 151  void Dudley_Assemble_PDE_System2_3D(Asse Line 151  void Dudley_Assemble_PDE_System2_3D(Asse
151                                     * DSDX[INDEX3(r, 2, q, p.numShapes, DIM)]);                                     * DSDX[INDEX3(r, 2, q, p.numShapes, DIM)]);
152    
153                          }                          }
154                          EM_S[INDEX4(k, m, s, r, p.numEqu, p.numComp, p.numShapes)] +=                          EM_S[INDEX4(k, m, s, r, p.numEqu, p.numComp, p.numShapes)] += rtmp;
                             rtmp;  
155                          }                          }
156                      }                      }
157                      }                      }
158                  }                  }
159                  } else                  }
160                    else
161                  {                  {
162                  for (s = 0; s < p.numShapes; s++)                  for (s = 0; s < p.numShapes; s++)
163                  {                  {
# Line 238  void Dudley_Assemble_PDE_System2_3D(Asse Line 238  void Dudley_Assemble_PDE_System2_3D(Asse
238                               DSDX[INDEX3(s, 2, q, p.numShapes, DIM)] *                               DSDX[INDEX3(s, 2, q, p.numShapes, DIM)] *
239                               B_q[INDEX4(k, 2, m, q, p.numEqu, DIM, p.numComp)]);                               B_q[INDEX4(k, 2, m, q, p.numEqu, DIM, p.numComp)]);
240                          }                          }
241                          EM_S[INDEX4(k, m, s, r, p.numEqu, p.numComp, p.numShapes)] +=                          EM_S[INDEX4(k, m, s, r, p.numEqu, p.numComp, p.numShapes)] += rtmp;
                             rtmp;  
242                          }                          }
243                      }                      }
244                      }                      }
245                  }                  }
246                  } else                  }
247                    else
248                  {                  {
249                  for (s = 0; s < p.numShapes; s++)                  for (s = 0; s < p.numShapes; s++)
250                  {                  {
# Line 303  void Dudley_Assemble_PDE_System2_3D(Asse Line 303  void Dudley_Assemble_PDE_System2_3D(Asse
303                               C_q[INDEX4(k, m, 2, q, p.numEqu, p.numComp, DIM)] *                               C_q[INDEX4(k, m, 2, q, p.numEqu, p.numComp, DIM)] *
304                               DSDX[INDEX3(r, 2, q, p.numShapes, DIM)]);                               DSDX[INDEX3(r, 2, q, p.numShapes, DIM)]);
305                          }                          }
306                          EM_S[INDEX4(k, m, s, r, p.numEqu, p.numComp, p.numShapes)] +=                          EM_S[INDEX4(k, m, s, r, p.numEqu, p.numComp, p.numShapes)] += rtmp;
                             rtmp;  
307                          }                          }
308                      }                      }
309                      }                      }
310                  }                  }
311                  } else                  }
312                    else
313                  {                  {
314                  for (s = 0; s < p.numShapes; s++)                  for (s = 0; s < p.numShapes; s++)
315                  {                  {
# Line 364  void Dudley_Assemble_PDE_System2_3D(Asse Line 364  void Dudley_Assemble_PDE_System2_3D(Asse
364                              D_q[INDEX3(k, m, q, p.numEqu, p.numComp)] *                              D_q[INDEX3(k, m, q, p.numEqu, p.numComp)] *
365                              S[INDEX2(r, q, p.numShapes)];                              S[INDEX2(r, q, p.numShapes)];
366                          }                          }
367                          EM_S[INDEX4(k, m, s, r, p.numEqu, p.numComp, p.numShapes)] +=                          EM_S[INDEX4(k, m, s, r, p.numEqu, p.numComp, p.numShapes)] += rtmp;
                             rtmp;  
368                          }                          }
369                      }                      }
370                      }                      }
371                  }                  }
372                  } else                  }
373                    else
374                  {                  {
375                  for (s = 0; s < p.numShapes; s++)                  for (s = 0; s < p.numShapes; s++)
376                  {                  {
# Line 378  void Dudley_Assemble_PDE_System2_3D(Asse Line 378  void Dudley_Assemble_PDE_System2_3D(Asse
378                      {                      {
379                      rtmp = 0;                      rtmp = 0;
380                      for (q = 0; q < p.numQuad; q++)                      for (q = 0; q < p.numQuad; q++)
381                          rtmp +=                          rtmp += vol * S[INDEX2(s, q, p.numShapes)] * S[INDEX2(r, q, p.numShapes)];
                         vol * S[INDEX2(s, q, p.numShapes)] *  
                         S[INDEX2(r, q, p.numShapes)];  
382                      for (k = 0; k < p.numEqu; k++)                      for (k = 0; k < p.numEqu; k++)
383                      {                      {
384                          for (m = 0; m < p.numComp; m++)                          for (m = 0; m < p.numComp; m++)
# Line 420  void Dudley_Assemble_PDE_System2_3D(Asse Line 418  void Dudley_Assemble_PDE_System2_3D(Asse
418                      EM_F[INDEX2(k, s, p.numEqu)] += rtmp;                      EM_F[INDEX2(k, s, p.numEqu)] += rtmp;
419                      }                      }
420                  }                  }
421                  } else                  }
422                    else
423                  {                  {
424                  for (s = 0; s < p.numShapes; s++)                  for (s = 0; s < p.numShapes; s++)
425                  {                  {
# Line 456  void Dudley_Assemble_PDE_System2_3D(Asse Line 455  void Dudley_Assemble_PDE_System2_3D(Asse
455                      {                      {
456                      rtmp = 0.;                      rtmp = 0.;
457                      for (q = 0; q < p.numQuad; q++)                      for (q = 0; q < p.numQuad; q++)
458                          rtmp +=                          rtmp += vol * S[INDEX2(s, q, p.numShapes)] * Y_q[INDEX2(k, q, p.numEqu)];
                         vol * S[INDEX2(s, q, p.numShapes)] * Y_q[INDEX2(k, q, p.numEqu)];  
459                      EM_F[INDEX2(k, s, p.numEqu)] += rtmp;                      EM_F[INDEX2(k, s, p.numEqu)] += rtmp;
460                      }                      }
461                  }                  }
462                  } else                  }
463                    else
464                  {                  {
465                  for (s = 0; s < p.numShapes; s++)                  for (s = 0; s < p.numShapes; s++)
466                  {                  {
# Line 481  void Dudley_Assemble_PDE_System2_3D(Asse Line 480  void Dudley_Assemble_PDE_System2_3D(Asse
480                  row_index[q] = p.row_DOF[elements->Nodes[INDEX2(q, e, p.NN)]];                  row_index[q] = p.row_DOF[elements->Nodes[INDEX2(q, e, p.NN)]];
481    
482              if (add_EM_F)              if (add_EM_F)
483                  Dudley_Util_AddScatter(p.numShapes, row_index, p.numEqu, EM_F, F_p,                  Dudley_Util_AddScatter(p.numShapes, row_index, p.numEqu, EM_F, F_p, p.row_DOF_UpperBound);
                            p.row_DOF_UpperBound);  
484              if (add_EM_S)              if (add_EM_S)
485                  Dudley_Assemble_addToSystemMatrix(Mat, p.numShapes, row_index, p.numEqu,                  Dudley_Assemble_addToSystemMatrix(Mat, p.numShapes, row_index, p.numEqu,
486                                    p.numShapes, row_index, p.numComp, EM_S);                                    p.numShapes, row_index, p.numComp, EM_S);

Legend:
Removed from v.3223  
changed lines
  Added in v.3224

  ViewVC Help
Powered by ViewVC 1.1.26