/[escript]/branches/domexper/dudley/src/Assemble_PDE_Single2_2D.c
ViewVC logotype

Diff of /branches/domexper/dudley/src/Assemble_PDE_Single2_2D.c

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

revision 3203 by jfenwick, Thu Sep 23 23:51:26 2010 UTC revision 3204 by jfenwick, Thu Sep 23 23:59:39 2010 UTC
# Line 66  void Dudley_Assemble_PDE_Single2_2D(Asse Line 66  void Dudley_Assemble_PDE_Single2_2D(Asse
66      bool_t extendedY = isExpanded(Y);      bool_t extendedY = isExpanded(Y);
67      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 */
68      const double *S = p.shapeFns;      const double *S = p.shapeFns;
69      dim_t len_EM_S = p.row_numShapes * p.row_numShapes;      dim_t len_EM_S = p.numShapes * p.numShapes;
70      dim_t len_EM_F = p.row_numShapes;      dim_t len_EM_F = p.numShapes;
71    
72  #pragma omp parallel private(color,EM_S, EM_F, Vol, 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,rtmp00, rtmp01, rtmp10, rtmp11, rtmp, rtmp0, rtmp1,add_EM_F, add_EM_S)  #pragma omp parallel private(color,EM_S, EM_F, Vol, 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,rtmp00, rtmp01, rtmp10, rtmp11, rtmp, rtmp0, rtmp1,add_EM_F, add_EM_S)
73      {      {
74      EM_S = THREAD_MEMALLOC(len_EM_S, double);      EM_S = THREAD_MEMALLOC(len_EM_S, double);
75      EM_F = THREAD_MEMALLOC(len_EM_F, double);      EM_F = THREAD_MEMALLOC(len_EM_F, double);
76      row_index = THREAD_MEMALLOC(p.row_numShapes, index_t);      row_index = THREAD_MEMALLOC(p.numShapes, index_t);
77    
78      if (!Dudley_checkPtr(EM_S) && !Dudley_checkPtr(EM_F) && !Dudley_checkPtr(row_index))      if (!Dudley_checkPtr(EM_S) && !Dudley_checkPtr(EM_F) && !Dudley_checkPtr(row_index))
79      {      {
# Line 96  void Dudley_Assemble_PDE_Single2_2D(Asse Line 96  void Dudley_Assemble_PDE_Single2_2D(Asse
96    
97              double vol = p.row_jac->absD[e] * p.row_jac->quadweight;              double vol = p.row_jac->absD[e] * p.row_jac->quadweight;
98    
99              DSDX = &(p.row_jac->DSDX[INDEX5(0, 0, 0, 0, e, p.row_numShapes, DIM, p.numQuadTotal, 1)]);              DSDX = &(p.row_jac->DSDX[INDEX5(0, 0, 0, 0, e, p.numShapes, DIM, p.numQuadTotal, 1)]);
100              for (q = 0; q < len_EM_S; ++q)              for (q = 0; q < len_EM_S; ++q)
101                  EM_S[q] = 0;                  EM_S[q] = 0;
102              for (q = 0; q < len_EM_F; ++q)              for (q = 0; q < len_EM_F; ++q)
# Line 112  void Dudley_Assemble_PDE_Single2_2D(Asse Line 112  void Dudley_Assemble_PDE_Single2_2D(Asse
112                  if (extendedA)                  if (extendedA)
113                  {                  {
114                  A_q = &(A_p[INDEX4(0, 0, 0, 0, DIM, DIM, p.numQuadTotal)]);                  A_q = &(A_p[INDEX4(0, 0, 0, 0, DIM, DIM, p.numQuadTotal)]);
115                  for (s = 0; s < p.row_numShapes; s++)                  for (s = 0; s < p.numShapes; s++)
116                  {                  {
117                      for (r = 0; r < p.row_numShapes; r++)                      for (r = 0; r < p.numShapes; r++)
118                      {                      {
119                      rtmp = 0;                      rtmp = 0;
120                      for (q = 0; q < p.numQuadTotal; q++)                      for (q = 0; q < p.numQuadTotal; q++)
121                      {                      {
122                          rtmp +=                          rtmp +=
123                          vol * (DSDX[INDEX3(s, 0, q, p.row_numShapes, DIM)] *                          vol * (DSDX[INDEX3(s, 0, q, p.numShapes, DIM)] *
124                                 A_q[INDEX3(0, 0, q, DIM, DIM)] *                                 A_q[INDEX3(0, 0, q, DIM, DIM)] *
125                                 DSDX[INDEX3(r, 0, q, p.row_numShapes, DIM)] +                                 DSDX[INDEX3(r, 0, q, p.numShapes, DIM)] +
126                                 DSDX[INDEX3(s, 0, q, p.row_numShapes, DIM)] *                                 DSDX[INDEX3(s, 0, q, p.numShapes, DIM)] *
127                                 A_q[INDEX3(0, 1, q, DIM, DIM)] *                                 A_q[INDEX3(0, 1, q, DIM, DIM)] *
128                                 DSDX[INDEX3(r, 1, q, p.row_numShapes, DIM)] +                                 DSDX[INDEX3(r, 1, q, p.numShapes, DIM)] +
129                                 DSDX[INDEX3(s, 1, q, p.row_numShapes, DIM)] *                                 DSDX[INDEX3(s, 1, q, p.numShapes, DIM)] *
130                                 A_q[INDEX3(1, 0, q, DIM, DIM)] *                                 A_q[INDEX3(1, 0, q, DIM, DIM)] *
131                                 DSDX[INDEX3(r, 0, q, p.row_numShapes, DIM)] +                                 DSDX[INDEX3(r, 0, q, p.numShapes, DIM)] +
132                                 DSDX[INDEX3(s, 1, q, p.row_numShapes, DIM)] *                                 DSDX[INDEX3(s, 1, q, p.numShapes, DIM)] *
133                                 A_q[INDEX3(1, 1, q, DIM, DIM)] *                                 A_q[INDEX3(1, 1, q, DIM, DIM)] *
134                                 DSDX[INDEX3(r, 1, q, p.row_numShapes, DIM)]);                                 DSDX[INDEX3(r, 1, q, p.numShapes, DIM)]);
135    
136                      }                      }
137                      EM_S[INDEX4(0, 0, s, r, p.numEqu, p.numComp, p.row_numShapes)] += rtmp;                      EM_S[INDEX4(0, 0, s, r, p.numEqu, p.numComp, p.numShapes)] += rtmp;
138                      }                      }
139                  }                  }
140                  } else                  } else
141                  {                  {
142                  for (s = 0; s < p.row_numShapes; s++)                  for (s = 0; s < p.numShapes; s++)
143                  {                  {
144                      for (r = 0; r < p.row_numShapes; r++)                      for (r = 0; r < p.numShapes; r++)
145                      {                      {
146                      rtmp00 = 0;                      rtmp00 = 0;
147                      rtmp01 = 0;                      rtmp01 = 0;
# Line 149  void Dudley_Assemble_PDE_Single2_2D(Asse Line 149  void Dudley_Assemble_PDE_Single2_2D(Asse
149                      rtmp11 = 0;                      rtmp11 = 0;
150                      for (q = 0; q < p.numQuadTotal; q++)                      for (q = 0; q < p.numQuadTotal; q++)
151                      {                      {
152                          rtmp0 = vol * DSDX[INDEX3(s, 0, q, p.row_numShapes, DIM)];                          rtmp0 = vol * DSDX[INDEX3(s, 0, q, p.numShapes, DIM)];
153                          rtmp1 = vol * DSDX[INDEX3(s, 1, q, p.row_numShapes, DIM)];                          rtmp1 = vol * DSDX[INDEX3(s, 1, q, p.numShapes, DIM)];
154                          rtmp00 += rtmp0 * DSDX[INDEX3(r, 0, q, p.row_numShapes, DIM)];                          rtmp00 += rtmp0 * DSDX[INDEX3(r, 0, q, p.numShapes, DIM)];
155                          rtmp01 += rtmp0 * DSDX[INDEX3(r, 1, q, p.row_numShapes, DIM)];                          rtmp01 += rtmp0 * DSDX[INDEX3(r, 1, q, p.numShapes, DIM)];
156                          rtmp10 += rtmp1 * DSDX[INDEX3(r, 0, q, p.row_numShapes, DIM)];                          rtmp10 += rtmp1 * DSDX[INDEX3(r, 0, q, p.numShapes, DIM)];
157                          rtmp11 += rtmp1 * DSDX[INDEX3(r, 1, q, p.row_numShapes, DIM)];                          rtmp11 += rtmp1 * DSDX[INDEX3(r, 1, q, p.numShapes, DIM)];
158                      }                      }
159                      EM_S[INDEX4(0, 0, s, r, p.numEqu, p.numComp, p.row_numShapes)] +=                      EM_S[INDEX4(0, 0, s, r, p.numEqu, p.numComp, p.numShapes)] +=
160                          rtmp00 * A_p[INDEX2(0, 0, DIM)] + rtmp01 * A_p[INDEX2(0, 1, DIM)] +                          rtmp00 * A_p[INDEX2(0, 0, DIM)] + rtmp01 * A_p[INDEX2(0, 1, DIM)] +
161                          rtmp10 * A_p[INDEX2(1, 0, DIM)] + rtmp11 * A_p[INDEX2(1, 1, DIM)];                          rtmp10 * A_p[INDEX2(1, 0, DIM)] + rtmp11 * A_p[INDEX2(1, 1, DIM)];
162                      }                      }
# Line 172  void Dudley_Assemble_PDE_Single2_2D(Asse Line 172  void Dudley_Assemble_PDE_Single2_2D(Asse
172                  if (extendedB)                  if (extendedB)
173                  {                  {
174                  B_q = &(B_p[INDEX3(0, 0, 0, DIM, p.numQuadTotal)]);                  B_q = &(B_p[INDEX3(0, 0, 0, DIM, p.numQuadTotal)]);
175                  for (s = 0; s < p.row_numShapes; s++)                  for (s = 0; s < p.numShapes; s++)
176                  {                  {
177                      for (r = 0; r < p.row_numShapes; r++)                      for (r = 0; r < p.numShapes; r++)
178                      {                      {
179                      rtmp = 0.;                      rtmp = 0.;
180                      for (q = 0; q < p.numQuadTotal; q++)                      for (q = 0; q < p.numQuadTotal; q++)
181                      {                      {
182                          rtmp +=                          rtmp +=
183                          vol * S[INDEX2(r, q, p.row_numShapes)] *                          vol * S[INDEX2(r, q, p.numShapes)] *
184                          (DSDX[INDEX3(s, 0, q, p.row_numShapes, DIM)] *                          (DSDX[INDEX3(s, 0, q, p.numShapes, DIM)] *
185                           B_q[INDEX2(0, q, DIM)] +                           B_q[INDEX2(0, q, DIM)] +
186                           DSDX[INDEX3(s, 1, q, p.row_numShapes, DIM)] *                           DSDX[INDEX3(s, 1, q, p.numShapes, DIM)] *
187                           B_q[INDEX2(1, q, DIM)]);                           B_q[INDEX2(1, q, DIM)]);
188                      }                      }
189                      EM_S[INDEX4(0, 0, s, r, p.numEqu, p.numComp, p.row_numShapes)] += rtmp;                      EM_S[INDEX4(0, 0, s, r, p.numEqu, p.numComp, p.numShapes)] += rtmp;
190                      }                      }
191                  }                  }
192                  } else                  } else
193                  {                  {
194                  for (s = 0; s < p.row_numShapes; s++)                  for (s = 0; s < p.numShapes; s++)
195                  {                  {
196                      for (r = 0; r < p.row_numShapes; r++)                      for (r = 0; r < p.numShapes; r++)
197                      {                      {
198                      rtmp0 = 0;                      rtmp0 = 0;
199                      rtmp1 = 0;                      rtmp1 = 0;
200                      for (q = 0; q < p.numQuadTotal; q++)                      for (q = 0; q < p.numQuadTotal; q++)
201                      {                      {
202                          rtmp = vol * S[INDEX2(r, q, p.row_numShapes)];                          rtmp = vol * S[INDEX2(r, q, p.numShapes)];
203                          rtmp0 += rtmp * DSDX[INDEX3(s, 0, q, p.row_numShapes, DIM)];                          rtmp0 += rtmp * DSDX[INDEX3(s, 0, q, p.numShapes, DIM)];
204                          rtmp1 += rtmp * DSDX[INDEX3(s, 1, q, p.row_numShapes, DIM)];                          rtmp1 += rtmp * DSDX[INDEX3(s, 1, q, p.numShapes, DIM)];
205                      }                      }
206                      EM_S[INDEX4(0, 0, s, r, p.numEqu, p.numComp, p.row_numShapes)] +=                      EM_S[INDEX4(0, 0, s, r, p.numEqu, p.numComp, p.numShapes)] +=
207                          rtmp0 * B_p[0] + rtmp1 * B_p[1];                          rtmp0 * B_p[0] + rtmp1 * B_p[1];
208                      }                      }
209                  }                  }
# Line 218  void Dudley_Assemble_PDE_Single2_2D(Asse Line 218  void Dudley_Assemble_PDE_Single2_2D(Asse
218                  if (extendedC)                  if (extendedC)
219                  {                  {
220                  C_q = &(C_p[INDEX3(0, 0, 0, DIM, p.numQuadTotal)]);                  C_q = &(C_p[INDEX3(0, 0, 0, DIM, p.numQuadTotal)]);
221                  for (s = 0; s < p.row_numShapes; s++)                  for (s = 0; s < p.numShapes; s++)
222                  {                  {
223                      for (r = 0; r < p.row_numShapes; r++)                      for (r = 0; r < p.numShapes; r++)
224                      {                      {
225                      rtmp = 0;                      rtmp = 0;
226                      for (q = 0; q < p.numQuadTotal; q++)                      for (q = 0; q < p.numQuadTotal; q++)
227                      {                      {
228                          rtmp +=                          rtmp +=
229                          vol * S[INDEX2(s, q, p.row_numShapes)] * (C_q[INDEX2(0, q, DIM)] *                          vol * S[INDEX2(s, q, p.numShapes)] * (C_q[INDEX2(0, q, DIM)] *
230                                                DSDX[INDEX3                                                DSDX[INDEX3
231                                                     (r, 0, q,                                                     (r, 0, q,
232                                                  p.row_numShapes,                                                  p.numShapes,
233                                                  DIM)] + C_q[INDEX2(1, q,                                                  DIM)] + C_q[INDEX2(1, q,
234                                                             DIM)]                                                             DIM)]
235                                                *                                                *
236                                                DSDX[INDEX3                                                DSDX[INDEX3
237                                                     (r, 1, q,                                                     (r, 1, q,
238                                                  p.row_numShapes,                                                  p.numShapes,
239                                                  DIM)]);                                                  DIM)]);
240                      }                      }
241                      EM_S[INDEX4(0, 0, s, r, p.numEqu, p.numComp, p.row_numShapes)] += rtmp;                      EM_S[INDEX4(0, 0, s, r, p.numEqu, p.numComp, p.numShapes)] += rtmp;
242                      }                      }
243                  }                  }
244                  } else                  } else
245                  {                  {
246                  for (s = 0; s < p.row_numShapes; s++)                  for (s = 0; s < p.numShapes; s++)
247                  {                  {
248                      for (r = 0; r < p.row_numShapes; r++)                      for (r = 0; r < p.numShapes; r++)
249                      {                      {
250                      rtmp0 = 0;                      rtmp0 = 0;
251                      rtmp1 = 0;                      rtmp1 = 0;
252                      for (q = 0; q < p.numQuadTotal; q++)                      for (q = 0; q < p.numQuadTotal; q++)
253                      {                      {
254                          rtmp = vol * S[INDEX2(s, q, p.row_numShapes)];                          rtmp = vol * S[INDEX2(s, q, p.numShapes)];
255                          rtmp0 += rtmp * DSDX[INDEX3(r, 0, q, p.row_numShapes, DIM)];                          rtmp0 += rtmp * DSDX[INDEX3(r, 0, q, p.numShapes, DIM)];
256                          rtmp1 += rtmp * DSDX[INDEX3(r, 1, q, p.row_numShapes, DIM)];                          rtmp1 += rtmp * DSDX[INDEX3(r, 1, q, p.numShapes, DIM)];
257                      }                      }
258                      EM_S[INDEX4(0, 0, s, r, p.numEqu, p.numComp, p.row_numShapes)] +=                      EM_S[INDEX4(0, 0, s, r, p.numEqu, p.numComp, p.numShapes)] +=
259                          rtmp0 * C_p[0] + rtmp1 * C_p[1];                          rtmp0 * C_p[0] + rtmp1 * C_p[1];
260                      }                      }
261                  }                  }
# Line 270  void Dudley_Assemble_PDE_Single2_2D(Asse Line 270  void Dudley_Assemble_PDE_Single2_2D(Asse
270                  if (extendedD)                  if (extendedD)
271                  {                  {
272                  D_q = &(D_p[INDEX2(0, 0, p.numQuadTotal)]);                  D_q = &(D_p[INDEX2(0, 0, p.numQuadTotal)]);
273                  for (s = 0; s < p.row_numShapes; s++)                  for (s = 0; s < p.numShapes; s++)
274                  {                  {
275                      for (r = 0; r < p.row_numShapes; r++)                      for (r = 0; r < p.numShapes; r++)
276                      {                      {
277                      rtmp = 0;                      rtmp = 0;
278                      for (q = 0; q < p.numQuadTotal; q++)                      for (q = 0; q < p.numQuadTotal; q++)
279                          rtmp +=                          rtmp +=
280                          vol * S[INDEX2(s, q, p.row_numShapes)] * D_q[q] *                          vol * S[INDEX2(s, q, p.numShapes)] * D_q[q] *
281                          S[INDEX2(r, q, p.row_numShapes)];                          S[INDEX2(r, q, p.numShapes)];
282                      EM_S[INDEX4(0, 0, s, r, p.numEqu, p.numComp, p.row_numShapes)] += rtmp;                      EM_S[INDEX4(0, 0, s, r, p.numEqu, p.numComp, p.numShapes)] += rtmp;
283                      }                      }
284                  }                  }
285                  } else                  } else
286                  {                  {
287                  for (s = 0; s < p.row_numShapes; s++)                  for (s = 0; s < p.numShapes; s++)
288                  {                  {
289                      for (r = 0; r < p.row_numShapes; r++)                      for (r = 0; r < p.numShapes; r++)
290                      {                      {
291                      rtmp = 0;                      rtmp = 0;
292                      for (q = 0; q < p.numQuadTotal; q++)                      for (q = 0; q < p.numQuadTotal; q++)
293                          rtmp +=                          rtmp +=
294                          vol * S[INDEX2(s, q, p.row_numShapes)] *                          vol * S[INDEX2(s, q, p.numShapes)] *
295                          S[INDEX2(r, q, p.row_numShapes)];                          S[INDEX2(r, q, p.numShapes)];
296                      EM_S[INDEX4(0, 0, s, r, p.numEqu, p.numComp, p.row_numShapes)] +=                      EM_S[INDEX4(0, 0, s, r, p.numEqu, p.numComp, p.numShapes)] +=
297                          rtmp * D_p[0];                          rtmp * D_p[0];
298                      }                      }
299                  }                  }
# Line 308  void Dudley_Assemble_PDE_Single2_2D(Asse Line 308  void Dudley_Assemble_PDE_Single2_2D(Asse
308                  if (extendedX)                  if (extendedX)
309                  {                  {
310                  X_q = &(X_p[INDEX3(0, 0, 0, DIM, p.numQuadTotal)]);                  X_q = &(X_p[INDEX3(0, 0, 0, DIM, p.numQuadTotal)]);
311                  for (s = 0; s < p.row_numShapes; s++)                  for (s = 0; s < p.numShapes; s++)
312                  {                  {
313                      rtmp = 0.;                      rtmp = 0.;
314                      for (q = 0; q < p.numQuadTotal; q++)                      for (q = 0; q < p.numQuadTotal; q++)
315                      {                      {
316                      rtmp +=                      rtmp +=
317                          vol * (DSDX[INDEX3(s, 0, q, p.row_numShapes, DIM)] *                          vol * (DSDX[INDEX3(s, 0, q, p.numShapes, DIM)] *
318                             X_q[INDEX2(0, q, DIM)] +                             X_q[INDEX2(0, q, DIM)] +
319                             DSDX[INDEX3(s, 1, q, p.row_numShapes, DIM)] *                             DSDX[INDEX3(s, 1, q, p.numShapes, DIM)] *
320                             X_q[INDEX2(1, q, DIM)]);                             X_q[INDEX2(1, q, DIM)]);
321                      }                      }
322                      EM_F[INDEX2(0, s, p.numEqu)] += rtmp;                      EM_F[INDEX2(0, s, p.numEqu)] += rtmp;
323                  }                  }
324                  } else                  } else
325                  {                  {
326                  for (s = 0; s < p.row_numShapes; s++)                  for (s = 0; s < p.numShapes; s++)
327                  {                  {
328                      rtmp0 = 0.;                      rtmp0 = 0.;
329                      rtmp1 = 0.;                      rtmp1 = 0.;
330                      for (q = 0; q < p.numQuadTotal; q++)                      for (q = 0; q < p.numQuadTotal; q++)
331                      {                      {
332                      rtmp0 += vol * DSDX[INDEX3(s, 0, q, p.row_numShapes, DIM)];                      rtmp0 += vol * DSDX[INDEX3(s, 0, q, p.numShapes, DIM)];
333                      rtmp1 += vol * DSDX[INDEX3(s, 1, q, p.row_numShapes, DIM)];                      rtmp1 += vol * DSDX[INDEX3(s, 1, q, p.numShapes, DIM)];
334                      }                      }
335                      EM_F[INDEX2(0, s, p.numEqu)] += rtmp0 * X_p[0] + rtmp1 * X_p[1];                      EM_F[INDEX2(0, s, p.numEqu)] += rtmp0 * X_p[0] + rtmp1 * X_p[1];
336                  }                  }
# Line 345  void Dudley_Assemble_PDE_Single2_2D(Asse Line 345  void Dudley_Assemble_PDE_Single2_2D(Asse
345                  if (extendedY)                  if (extendedY)
346                  {                  {
347                  Y_q = &(Y_p[INDEX2(0, 0, p.numQuadTotal)]);                  Y_q = &(Y_p[INDEX2(0, 0, p.numQuadTotal)]);
348                  for (s = 0; s < p.row_numShapes; s++)                  for (s = 0; s < p.numShapes; s++)
349                  {                  {
350                      rtmp = 0;                      rtmp = 0;
351                      for (q = 0; q < p.numQuadTotal; q++)                      for (q = 0; q < p.numQuadTotal; q++)
352                      rtmp += vol * S[INDEX2(s, q, p.row_numShapes)] * Y_q[q];                      rtmp += vol * S[INDEX2(s, q, p.numShapes)] * Y_q[q];
353                      EM_F[INDEX2(0, s, p.numEqu)] += rtmp;                      EM_F[INDEX2(0, s, p.numEqu)] += rtmp;
354                  }                  }
355                  } else                  } else
356                  {                  {
357                  for (s = 0; s < p.row_numShapes; s++)                  for (s = 0; s < p.numShapes; s++)
358                  {                  {
359                      rtmp = 0;                      rtmp = 0;
360                      for (q = 0; q < p.numQuadTotal; q++)                      for (q = 0; q < p.numQuadTotal; q++)
361                      rtmp += vol * S[INDEX2(s, q, p.row_numShapes)];                      rtmp += vol * S[INDEX2(s, q, p.numShapes)];
362                      EM_F[INDEX2(0, s, p.numEqu)] += rtmp * Y_p[0];                      EM_F[INDEX2(0, s, p.numEqu)] += rtmp * Y_p[0];
363                  }                  }
364                  }                  }
# Line 367  void Dudley_Assemble_PDE_Single2_2D(Asse Line 367  void Dudley_Assemble_PDE_Single2_2D(Asse
367              /* add the element matrices onto the matrix and right hand side                                */              /* add the element matrices onto the matrix and right hand side                                */
368                /***********************************************************************************************/                /***********************************************************************************************/
369    
370              for (q = 0; q < p.row_numShapes; q++)              for (q = 0; q < p.numShapes; q++)
371                  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)]];
372              if (add_EM_F)              if (add_EM_F)
373                  Dudley_Util_AddScatter(p.row_numShapes, row_index, p.numEqu, EM_F, F_p,                  Dudley_Util_AddScatter(p.numShapes, row_index, p.numEqu, EM_F, F_p,
374                             p.row_DOF_UpperBound);                             p.row_DOF_UpperBound);
375              if (add_EM_S)              if (add_EM_S)
376                  Dudley_Assemble_addToSystemMatrix(Mat, p.row_numShapes, row_index, p.numEqu,                  Dudley_Assemble_addToSystemMatrix(Mat, p.numShapes, row_index, p.numEqu,
377                                    p.row_numShapes, row_index, p.numComp, EM_S);                                    p.numShapes, row_index, p.numComp, EM_S);
378              }       /* end color check */              }       /* end color check */
379          }       /* end element loop */          }       /* end element loop */
380          }           /* end color loop */          }           /* end color loop */

Legend:
Removed from v.3203  
changed lines
  Added in v.3204

  ViewVC Help
Powered by ViewVC 1.1.26