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

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

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

revision 3221 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_2D(Asse Line 63  void Dudley_Assemble_PDE_System2_2D(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 136  void Dudley_Assemble_PDE_System2_2D(Asse Line 136  void Dudley_Assemble_PDE_System2_2D(Asse
136                                     A_q[INDEX5(k, 1, m, 1, q, p.numEqu, DIM, p.numComp, DIM)]                                     A_q[INDEX5(k, 1, m, 1, q, p.numEqu, DIM, p.numComp, DIM)]
137                                     * DSDX[INDEX3(r, 1, q, p.numShapes, DIM)]);                                     * DSDX[INDEX3(r, 1, q, p.numShapes, DIM)]);
138                          }                          }
139                          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;  
140                          }                          }
141                      }                      }
142                      }                      }
143                  }                  }
144                  } else                  }
145                    else
146                  {                  {
147                  for (s = 0; s < p.numShapes; s++)                  for (s = 0; s < p.numShapes; s++)
148                  {                  {
# Line 203  void Dudley_Assemble_PDE_System2_2D(Asse Line 203  void Dudley_Assemble_PDE_System2_2D(Asse
203                               DSDX[INDEX3(s, 1, q, p.numShapes, DIM)] *                               DSDX[INDEX3(s, 1, q, p.numShapes, DIM)] *
204                               B_q[INDEX4(k, 1, m, q, p.numEqu, DIM, p.numComp)]);                               B_q[INDEX4(k, 1, m, q, p.numEqu, DIM, p.numComp)]);
205                          }                          }
206                          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;  
207                          }                          }
208                      }                      }
209                      }                      }
210                  }                  }
211                  } else                  }
212                    else
213                  {                  {
214                  for (s = 0; s < p.numShapes; s++)                  for (s = 0; s < p.numShapes; s++)
215                  {                  {
# Line 263  void Dudley_Assemble_PDE_System2_2D(Asse Line 263  void Dudley_Assemble_PDE_System2_2D(Asse
263                               C_q[INDEX4(k, m, 1, q, p.numEqu, p.numComp, DIM)] *                               C_q[INDEX4(k, m, 1, q, p.numEqu, p.numComp, DIM)] *
264                               DSDX[INDEX3(r, 1, q, p.numShapes, DIM)]);                               DSDX[INDEX3(r, 1, q, p.numShapes, DIM)]);
265                          }                          }
266                          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;  
267                          }                          }
268                      }                      }
269                      }                      }
270                  }                  }
271                  } else                  }
272                    else
273                  {                  {
274                  for (s = 0; s < p.numShapes; s++)                  for (s = 0; s < p.numShapes; s++)
275                  {                  {
# Line 322  void Dudley_Assemble_PDE_System2_2D(Asse Line 322  void Dudley_Assemble_PDE_System2_2D(Asse
322                              D_q[INDEX3(k, m, q, p.numEqu, p.numComp)] *                              D_q[INDEX3(k, m, q, p.numEqu, p.numComp)] *
323                              S[INDEX2(r, q, p.numShapes)];                              S[INDEX2(r, q, p.numShapes)];
324                          }                          }
325                          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;  
326                          }                          }
327                      }                      }
328                      }                      }
329                  }                  }
330                  } else                  }
331                    else
332                  {                  {
333                  for (s = 0; s < p.numShapes; s++)                  for (s = 0; s < p.numShapes; s++)
334                  {                  {
# Line 336  void Dudley_Assemble_PDE_System2_2D(Asse Line 336  void Dudley_Assemble_PDE_System2_2D(Asse
336                      {                      {
337                      rtmp = 0;                      rtmp = 0;
338                      for (q = 0; q < p.numQuad; q++)                      for (q = 0; q < p.numQuad; q++)
339                          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)];  
340                      for (k = 0; k < p.numEqu; k++)                      for (k = 0; k < p.numEqu; k++)
341                      {                      {
342                          for (m = 0; m < p.numComp; m++)                          for (m = 0; m < p.numComp; m++)
# Line 377  void Dudley_Assemble_PDE_System2_2D(Asse Line 375  void Dudley_Assemble_PDE_System2_2D(Asse
375                      EM_F[INDEX2(k, s, p.numEqu)] += rtmp;                      EM_F[INDEX2(k, s, p.numEqu)] += rtmp;
376                      }                      }
377                  }                  }
378                  } else                  }
379                    else
380                  {                  {
381                  for (s = 0; s < p.numShapes; s++)                  for (s = 0; s < p.numShapes; s++)
382                  {                  {
# Line 410  void Dudley_Assemble_PDE_System2_2D(Asse Line 409  void Dudley_Assemble_PDE_System2_2D(Asse
409                      {                      {
410                      rtmp = 0;                      rtmp = 0;
411                      for (q = 0; q < p.numQuad; q++)                      for (q = 0; q < p.numQuad; q++)
412                          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)];  
413                      EM_F[INDEX2(k, s, p.numEqu)] += rtmp;                      EM_F[INDEX2(k, s, p.numEqu)] += rtmp;
414                      }                      }
415                  }                  }
416                  } else                  }
417                    else
418                  {                  {
419                  for (s = 0; s < p.numShapes; s++)                  for (s = 0; s < p.numShapes; s++)
420                  {                  {
# Line 434  void Dudley_Assemble_PDE_System2_2D(Asse Line 433  void Dudley_Assemble_PDE_System2_2D(Asse
433                  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)]];
434    
435              if (add_EM_F)              if (add_EM_F)
436                  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);  
437              if (add_EM_S)              if (add_EM_S)
438                  Dudley_Assemble_addToSystemMatrix(Mat, p.numShapes, row_index, p.numEqu,                  Dudley_Assemble_addToSystemMatrix(Mat, p.numShapes, row_index, p.numEqu,
439                                    p.numShapes, row_index, p.numComp, EM_S);                                    p.numShapes, row_index, p.numComp, EM_S);

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

  ViewVC Help
Powered by ViewVC 1.1.26