/[escript]/trunk/finley/src/Assemble_LumpedSystem.c
ViewVC logotype

Diff of /trunk/finley/src/Assemble_LumpedSystem.c

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

revision 2270 by ksteube, Thu Sep 25 23:11:13 2008 UTC revision 2271 by jfenwick, Mon Feb 16 05:08:29 2009 UTC
# Line 43  void Finley_Assemble_LumpedSystem(Finley Line 43  void Finley_Assemble_LumpedSystem(Finley
43    dim_t dimensions[ESCRIPT_MAX_DATA_RANK], k, e, len_EM_lumpedMat, q, s;    dim_t dimensions[ESCRIPT_MAX_DATA_RANK], k, e, len_EM_lumpedMat, q, s;
44    type_t funcspace;    type_t funcspace;
45    index_t color,*row_index=NULL;    index_t color,*row_index=NULL;
46    double *S=NULL, *EM_lumpedMat=NULL, *Vol=NULL, *D_p=NULL, *lumpedMat_p=NULL;    __const double *D_p=NULL;
47      double *S=NULL, *EM_lumpedMat=NULL, *Vol=NULL, *lumpedMat_p=NULL;
48    register double rtmp;    register double rtmp;
49    size_t len_EM_lumpedMat_size;    size_t len_EM_lumpedMat_size;
50    
# Line 105  void Finley_Assemble_LumpedSystem(Finley Line 106  void Finley_Assemble_LumpedSystem(Finley
106    }    }
107    
108    if (Finley_noError()) {    if (Finley_noError()) {
109      lumpedMat_p=getSampleData(lumpedMat,0);      void* buffer=allocSampleBuffer(D);
110        requireWrite(lumpedMat);
111        lumpedMat_p=getSampleDataRW(lumpedMat,0);
112      len_EM_lumpedMat=p.row_NN*p.numEqu;      len_EM_lumpedMat=p.row_NN*p.numEqu;
113      len_EM_lumpedMat_size=len_EM_lumpedMat*sizeof(double);      len_EM_lumpedMat_size=len_EM_lumpedMat*sizeof(double);
114      expandedD=isExpanded(D);      expandedD=isExpanded(D);
115      S=p.row_jac->ReferenceElement->S;      S=p.row_jac->ReferenceElement->S;
   
116      #pragma omp parallel private(color, EM_lumpedMat, row_index, Vol, D_p, s, q, k, rtmp)      #pragma omp parallel private(color, EM_lumpedMat, row_index, Vol, D_p, s, q, k, rtmp)
117      {      {
118         EM_lumpedMat=THREAD_MEMALLOC(len_EM_lumpedMat,double);         EM_lumpedMat=THREAD_MEMALLOC(len_EM_lumpedMat,double);
# Line 125  void Finley_Assemble_LumpedSystem(Finley Line 127  void Finley_Assemble_LumpedSystem(Finley
127                         if (elements->Color[e]==color) {                         if (elements->Color[e]==color) {
128                            Vol=&(p.row_jac->volume[INDEX2(0,e,p.numQuad)]);                            Vol=&(p.row_jac->volume[INDEX2(0,e,p.numQuad)]);
129                            memset(EM_lumpedMat,0,len_EM_lumpedMat_size);                            memset(EM_lumpedMat,0,len_EM_lumpedMat_size);
130                            D_p=getSampleData(D,e);                            D_p=getSampleDataRO(D,e,buffer);
131                            #ifdef NEW_LUMPING /* HRZ lumping */                            #ifdef NEW_LUMPING /* HRZ lumping */
132                            /*                            /*
133                             *           Number of PDEs: 1                             *           Number of PDEs: 1
# Line 170  void Finley_Assemble_LumpedSystem(Finley Line 172  void Finley_Assemble_LumpedSystem(Finley
172                      if (elements->Color[e]==color) {                      if (elements->Color[e]==color) {
173                            Vol=&(p.row_jac->volume[INDEX2(0,e,p.numQuad)]);                            Vol=&(p.row_jac->volume[INDEX2(0,e,p.numQuad)]);
174                            memset(EM_lumpedMat,0,len_EM_lumpedMat_size);                            memset(EM_lumpedMat,0,len_EM_lumpedMat_size);
175                            D_p=getSampleData(D,e);                            D_p=getSampleDataRO(D,e,buffer);
176                            #ifdef NEW_LUMPING /* HRZ lumping */                            #ifdef NEW_LUMPING /* HRZ lumping */
177                            /*                            /*
178                             *           Number of PDEs: 1                             *           Number of PDEs: 1
# Line 215  void Finley_Assemble_LumpedSystem(Finley Line 217  void Finley_Assemble_LumpedSystem(Finley
217                         if (elements->Color[e]==color) {                         if (elements->Color[e]==color) {
218                            Vol=&(p.row_jac->volume[INDEX2(0,e,p.numQuad)]);                            Vol=&(p.row_jac->volume[INDEX2(0,e,p.numQuad)]);
219                            memset(EM_lumpedMat,0,len_EM_lumpedMat_size);                            memset(EM_lumpedMat,0,len_EM_lumpedMat_size);
220                            D_p=getSampleData(D,e);                            D_p=getSampleDataRO(D,e,buffer);
221                            #ifdef NEW_LUMPING /* HRZ lumping */                            #ifdef NEW_LUMPING /* HRZ lumping */
222                            /*                            /*
223                             *           Number of PDEs: Multiple                             *           Number of PDEs: Multiple
# Line 262  void Finley_Assemble_LumpedSystem(Finley Line 264  void Finley_Assemble_LumpedSystem(Finley
264                         if (elements->Color[e]==color) {                         if (elements->Color[e]==color) {
265                            Vol=&(p.row_jac->volume[INDEX2(0,e,p.numQuad)]);                            Vol=&(p.row_jac->volume[INDEX2(0,e,p.numQuad)]);
266                            memset(EM_lumpedMat,0,len_EM_lumpedMat_size);                            memset(EM_lumpedMat,0,len_EM_lumpedMat_size);
267                            D_p=getSampleData(D,e);                            D_p=getSampleDataRO(D,e,buffer);
268                            #ifdef NEW_LUMPING /* HRZ lumping */                            #ifdef NEW_LUMPING /* HRZ lumping */
269                            /*                            /*
270                             *           Number of PDEs: Multiple                             *           Number of PDEs: Multiple
# Line 305  void Finley_Assemble_LumpedSystem(Finley Line 307  void Finley_Assemble_LumpedSystem(Finley
307         THREAD_MEMFREE(EM_lumpedMat);         THREAD_MEMFREE(EM_lumpedMat);
308         THREAD_MEMFREE(row_index);         THREAD_MEMFREE(row_index);
309      } /* end parallel region */      } /* end parallel region */
310        freeSampleBuffer(buffer);
311    }    }
312  }  }

Legend:
Removed from v.2270  
changed lines
  Added in v.2271

  ViewVC Help
Powered by ViewVC 1.1.26