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

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

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

revision 3144 by jfenwick, Fri Sep 3 00:49:02 2010 UTC revision 3184 by jfenwick, Wed Sep 15 00:23:42 2010 UTC
# Line 53  void  Dudley_Assemble_PDE_Single2_1D(Ass Line 53  void  Dudley_Assemble_PDE_Single2_1D(Ass
53      index_t color;      index_t color;
54      dim_t e;      dim_t e;
55      __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;      __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;
56      double *EM_S, *EM_F, *Vol, *DSDX;      double *EM_S, *EM_F, *DSDX;
57      index_t *row_index;      index_t *row_index;
58      register dim_t q, s,r;      register dim_t q, s,r;
59      register double rtmp;      register double rtmp;
# Line 92  void  Dudley_Assemble_PDE_Single2_1D(Ass Line 92  void  Dudley_Assemble_PDE_Single2_1D(Ass
92                    X_p=getSampleDataRO(X,e);                    X_p=getSampleDataRO(X,e);
93                    Y_p=getSampleDataRO(Y,e);                    Y_p=getSampleDataRO(Y,e);
94    
95                        Vol=&(p.row_jac->volume[INDEX3(0,0,e, p.numQuadTotal,1)]);            double vol=p.row_jac->absD[e]*p.row_jac->quadweight;
96    //                      Vol=&(p.row_jac->volume[INDEX3(0,0,e, p.numQuadTotal,1)]);
97                        DSDX=&(p.row_jac->DSDX[INDEX5(0,0,0,0,e, p.row_numShapesTotal,DIM,p.numQuadTotal,1)]);                        DSDX=&(p.row_jac->DSDX[INDEX5(0,0,0,0,e, p.row_numShapesTotal,DIM,p.numQuadTotal,1)]);
98                        for (q=0;q<len_EM_S;++q) EM_S[q]=0;                        for (q=0;q<len_EM_S;++q) EM_S[q]=0;
99                        for (q=0;q<len_EM_F;++q) EM_F[q]=0;                        for (q=0;q<len_EM_F;++q) EM_F[q]=0;
# Line 109  void  Dudley_Assemble_PDE_Single2_1D(Ass Line 110  void  Dudley_Assemble_PDE_Single2_1D(Ass
110                                for (r=0;r<p.col_numShapes;r++) {                                for (r=0;r<p.col_numShapes;r++) {
111                                   rtmp=0;                                   rtmp=0;
112                                   for (q=0;q<p.numQuadTotal;q++) {                                   for (q=0;q<p.numQuadTotal;q++) {
113                                      rtmp+=Vol[q]*DSDX[INDEX3(s,0,q,p.row_numShapesTotal,DIM)]*A_q[INDEX3(0,0,q,DIM,DIM)]*DSDX[INDEX3(r,0,q,p.row_numShapesTotal,DIM)];                                      rtmp+=vol*DSDX[INDEX3(s,0,q,p.row_numShapesTotal,DIM)]*A_q[INDEX3(0,0,q,DIM,DIM)]*DSDX[INDEX3(r,0,q,p.row_numShapesTotal,DIM)];
114                                  }                                  }
115                                  EM_S[INDEX4(0,0,s,r,p.numEqu,p.numComp,p.row_numShapesTotal)]+=rtmp;                                  EM_S[INDEX4(0,0,s,r,p.numEqu,p.numComp,p.row_numShapesTotal)]+=rtmp;
116                                }                                }
# Line 118  void  Dudley_Assemble_PDE_Single2_1D(Ass Line 119  void  Dudley_Assemble_PDE_Single2_1D(Ass
119                              for (s=0;s<p.row_numShapes;s++) {                              for (s=0;s<p.row_numShapes;s++) {
120                                for (r=0;r<p.col_numShapes;r++) {                                for (r=0;r<p.col_numShapes;r++) {
121                                    rtmp=0;                                    rtmp=0;
122                                    for (q=0;q<p.numQuadTotal;q++) rtmp+=Vol[q]*DSDX[INDEX3(s,0,q,p.row_numShapesTotal,DIM)]*DSDX[INDEX3(r,0,q,p.row_numShapesTotal,DIM)];                                    for (q=0;q<p.numQuadTotal;q++) rtmp+=vol*DSDX[INDEX3(s,0,q,p.row_numShapesTotal,DIM)]*DSDX[INDEX3(r,0,q,p.row_numShapesTotal,DIM)];
123                                    EM_S[INDEX4(0,0,s,r,p.numEqu,p.numComp,p.row_numShapesTotal)]+=rtmp*A_p[INDEX2(0,0,DIM)];                                    EM_S[INDEX4(0,0,s,r,p.numEqu,p.numComp,p.row_numShapesTotal)]+=rtmp*A_p[INDEX2(0,0,DIM)];
124                                }                                }
125                              }                              }
# Line 135  void  Dudley_Assemble_PDE_Single2_1D(Ass Line 136  void  Dudley_Assemble_PDE_Single2_1D(Ass
136                                for (r=0;r<p.col_numShapes;r++) {                                for (r=0;r<p.col_numShapes;r++) {
137                                  rtmp=0;                                  rtmp=0;
138                                  for (q=0;q<p.numQuadTotal;q++) {                                  for (q=0;q<p.numQuadTotal;q++) {
139                                     rtmp+=Vol[q]*DSDX[INDEX3(s,0,q,p.row_numShapesTotal,DIM)]*B_q[INDEX2(0,q,DIM)]*S[INDEX2(r,q,p.row_numShapes)];                                     rtmp+=vol*DSDX[INDEX3(s,0,q,p.row_numShapesTotal,DIM)]*B_q[INDEX2(0,q,DIM)]*S[INDEX2(r,q,p.row_numShapes)];
140                                  }                                  }
141                                  EM_S[INDEX4(0,0,s,r,p.numEqu,p.numComp,p.row_numShapesTotal)]+=rtmp;                                  EM_S[INDEX4(0,0,s,r,p.numEqu,p.numComp,p.row_numShapesTotal)]+=rtmp;
142                                }                                }
# Line 144  void  Dudley_Assemble_PDE_Single2_1D(Ass Line 145  void  Dudley_Assemble_PDE_Single2_1D(Ass
145                              for (s=0;s<p.row_numShapes;s++) {                              for (s=0;s<p.row_numShapes;s++) {
146                                for (r=0;r<p.col_numShapes;r++) {                                for (r=0;r<p.col_numShapes;r++) {
147                                    rtmp=0;                                    rtmp=0;
148                                    for (q=0;q<p.numQuadTotal;q++) rtmp+=Vol[q]*DSDX[INDEX3(s,0,q,p.row_numShapesTotal,DIM)]*S[INDEX2(r,q,p.row_numShapes)];                                    for (q=0;q<p.numQuadTotal;q++) rtmp+=vol*DSDX[INDEX3(s,0,q,p.row_numShapesTotal,DIM)]*S[INDEX2(r,q,p.row_numShapes)];
149                                    EM_S[INDEX4(0,0,s,r,p.numEqu,p.numComp,p.row_numShapesTotal)]+=rtmp*B_p[0];                                    EM_S[INDEX4(0,0,s,r,p.numEqu,p.numComp,p.row_numShapesTotal)]+=rtmp*B_p[0];
150                                }                                }
151                              }                              }
# Line 161  void  Dudley_Assemble_PDE_Single2_1D(Ass Line 162  void  Dudley_Assemble_PDE_Single2_1D(Ass
162                                for (r=0;r<p.col_numShapes;r++) {                                for (r=0;r<p.col_numShapes;r++) {
163                                  rtmp=0;                                  rtmp=0;
164                                  for (q=0;q<p.numQuadTotal;q++) {                                  for (q=0;q<p.numQuadTotal;q++) {
165                                     rtmp+=Vol[q]*S[INDEX2(s,q,p.row_numShapes)]*C_q[INDEX2(0,q,DIM)]*DSDX[INDEX3(r,0,q,p.row_numShapesTotal,DIM)];                                     rtmp+=vol*S[INDEX2(s,q,p.row_numShapes)]*C_q[INDEX2(0,q,DIM)]*DSDX[INDEX3(r,0,q,p.row_numShapesTotal,DIM)];
166                                  }                                  }
167                                  EM_S[INDEX4(0,0,s,r,p.numEqu,p.numComp,p.row_numShapesTotal)]+=rtmp;                                  EM_S[INDEX4(0,0,s,r,p.numEqu,p.numComp,p.row_numShapesTotal)]+=rtmp;
168                                }                                }
# Line 170  void  Dudley_Assemble_PDE_Single2_1D(Ass Line 171  void  Dudley_Assemble_PDE_Single2_1D(Ass
171                              for (s=0;s<p.row_numShapes;s++) {                              for (s=0;s<p.row_numShapes;s++) {
172                                for (r=0;r<p.col_numShapes;r++) {                                for (r=0;r<p.col_numShapes;r++) {
173                                   rtmp=0;                                   rtmp=0;
174                                   for (q=0;q<p.numQuadTotal;q++) rtmp+=Vol[q]*S[INDEX2(s,q,p.row_numShapes)]*DSDX[INDEX3(r,0,q,p.row_numShapesTotal,DIM)];                                   for (q=0;q<p.numQuadTotal;q++) rtmp+=vol*S[INDEX2(s,q,p.row_numShapes)]*DSDX[INDEX3(r,0,q,p.row_numShapesTotal,DIM)];
175                                   EM_S[INDEX4(0,0,s,r,p.numEqu,p.numComp,p.row_numShapesTotal)]+=rtmp*C_p[0];                                   EM_S[INDEX4(0,0,s,r,p.numEqu,p.numComp,p.row_numShapesTotal)]+=rtmp*C_p[0];
176                                }                                }
177                              }                              }
# Line 187  void  Dudley_Assemble_PDE_Single2_1D(Ass Line 188  void  Dudley_Assemble_PDE_Single2_1D(Ass
188                                for (r=0;r<p.col_numShapes;r++) {                                for (r=0;r<p.col_numShapes;r++) {
189                                   rtmp=0;                                   rtmp=0;
190                                   for (q=0;q<p.numQuadTotal;q++) {                                   for (q=0;q<p.numQuadTotal;q++) {
191                                      rtmp+=Vol[q]*S[INDEX2(s,q,p.row_numShapes)]*D_q[q]*S[INDEX2(r,q,p.row_numShapes)];                                      rtmp+=vol*S[INDEX2(s,q,p.row_numShapes)]*D_q[q]*S[INDEX2(r,q,p.row_numShapes)];
192                                  }                                  }
193                                  EM_S[INDEX4(0,0,s,r,p.numEqu,p.numComp,p.row_numShapesTotal)]+=rtmp;                                  EM_S[INDEX4(0,0,s,r,p.numEqu,p.numComp,p.row_numShapesTotal)]+=rtmp;
194                                }                                }
# Line 196  void  Dudley_Assemble_PDE_Single2_1D(Ass Line 197  void  Dudley_Assemble_PDE_Single2_1D(Ass
197                              for (s=0;s<p.row_numShapes;s++) {                              for (s=0;s<p.row_numShapes;s++) {
198                                for (r=0;r<p.col_numShapes;r++) {                                for (r=0;r<p.col_numShapes;r++) {
199                                    rtmp=0;                                    rtmp=0;
200                                    for (q=0;q<p.numQuadTotal;q++) rtmp+=Vol[q]*S[INDEX2(s,q,p.row_numShapes)]*S[INDEX2(r,q,p.row_numShapes)];                                    for (q=0;q<p.numQuadTotal;q++) rtmp+=vol*S[INDEX2(s,q,p.row_numShapes)]*S[INDEX2(r,q,p.row_numShapes)];
201                                    EM_S[INDEX4(0,0,s,r,p.numEqu,p.numComp,p.row_numShapesTotal)]+=rtmp*D_p[0];                                    EM_S[INDEX4(0,0,s,r,p.numEqu,p.numComp,p.row_numShapesTotal)]+=rtmp*D_p[0];
202                                }                                }
203                              }                              }
# Line 211  void  Dudley_Assemble_PDE_Single2_1D(Ass Line 212  void  Dudley_Assemble_PDE_Single2_1D(Ass
212                     X_q=&(X_p[INDEX3(0,0,0, DIM,p.numQuadTotal)]);                     X_q=&(X_p[INDEX3(0,0,0, DIM,p.numQuadTotal)]);
213                             for (s=0;s<p.row_numShapes;s++) {                             for (s=0;s<p.row_numShapes;s++) {
214                               rtmp=0;                               rtmp=0;
215                               for (q=0;q<p.numQuadTotal;q++) rtmp+=Vol[q]*DSDX[INDEX3(s,0,q,p.row_numShapesTotal,DIM)]*X_q[INDEX2(0,q,DIM)];                               for (q=0;q<p.numQuadTotal;q++) rtmp+=vol*DSDX[INDEX3(s,0,q,p.row_numShapesTotal,DIM)]*X_q[INDEX2(0,q,DIM)];
216                               EM_F[INDEX2(0,s,p.numEqu)]+=rtmp;                               EM_F[INDEX2(0,s,p.numEqu)]+=rtmp;
217                             }                             }
218                          } else {                          } else {
219                             for (s=0;s<p.row_numShapes;s++) {                             for (s=0;s<p.row_numShapes;s++) {
220                               rtmp=0;                               rtmp=0;
221                               for (q=0;q<p.numQuadTotal;q++) rtmp+=Vol[q]*DSDX[INDEX3(s,0,q, p.row_numShapesTotal,DIM)];                               for (q=0;q<p.numQuadTotal;q++) rtmp+=vol*DSDX[INDEX3(s,0,q, p.row_numShapesTotal,DIM)];
222                               EM_F[INDEX2(0,s,p.numEqu)]+=rtmp*X_p[0];                               EM_F[INDEX2(0,s,p.numEqu)]+=rtmp*X_p[0];
223                             }                             }
224                          }                          }
# Line 231  void  Dudley_Assemble_PDE_Single2_1D(Ass Line 232  void  Dudley_Assemble_PDE_Single2_1D(Ass
232                 Y_q=&(Y_p[INDEX2(0,0, p.numQuadTotal)]);                 Y_q=&(Y_p[INDEX2(0,0, p.numQuadTotal)]);
233                             for (s=0;s<p.row_numShapes;s++) {                             for (s=0;s<p.row_numShapes;s++) {
234                                rtmp=0;                                rtmp=0;
235                                for (q=0;q<p.numQuadTotal;q++) rtmp+=Vol[q]*S[INDEX2(s,q,p.row_numShapes)]*Y_q[q];                                for (q=0;q<p.numQuadTotal;q++) rtmp+=vol*S[INDEX2(s,q,p.row_numShapes)]*Y_q[q];
236                                EM_F[INDEX2(0,s,p.numEqu)]+=rtmp;                                EM_F[INDEX2(0,s,p.numEqu)]+=rtmp;
237                             }                             }
238                           } else {                           } else {
239                             for (s=0;s<p.row_numShapes;s++) {                             for (s=0;s<p.row_numShapes;s++) {
240                                 rtmp=0;                                 rtmp=0;
241                                 for (q=0;q<p.numQuadTotal;q++) rtmp+=Vol[q]*S[INDEX2(s,q,p.row_numShapes)];                                 for (q=0;q<p.numQuadTotal;q++) rtmp+=vol*S[INDEX2(s,q,p.row_numShapes)];
242                                 EM_F[INDEX2(0,s,p.numEqu)]+=rtmp*Y_p[0];                                 EM_F[INDEX2(0,s,p.numEqu)]+=rtmp*Y_p[0];
243                             }                             }
244                           }                           }

Legend:
Removed from v.3144  
changed lines
  Added in v.3184

  ViewVC Help
Powered by ViewVC 1.1.26