/[escript]/branches/diaplayground/ripley/src/Brick.cpp
ViewVC logotype

Diff of /branches/diaplayground/ripley/src/Brick.cpp

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

revision 3792 by caltinay, Wed Feb 1 06:16:25 2012 UTC revision 3908 by caltinay, Wed Jun 13 05:43:45 2012 UTC
# Line 129  void Brick::dump(const string& fileName) Line 129  void Brick::dump(const string& fileName)
129          fn+=".silo";          fn+=".silo";
130      }      }
131    
     const int NUM_SILO_FILES = 1;  
     const char* blockDirFmt = "/block%04d";  
132      int driver=DB_HDF5;          int driver=DB_HDF5;    
133      string siloPath;      string siloPath;
134      DBfile* dbfile = NULL;      DBfile* dbfile = NULL;
135    
136  #ifdef ESYS_MPI  #ifdef ESYS_MPI
137      PMPIO_baton_t* baton = NULL;      PMPIO_baton_t* baton = NULL;
138        const int NUM_SILO_FILES = 1;
139        const char* blockDirFmt = "/block%04d";
140  #endif  #endif
141    
142      if (m_mpiInfo->size > 1) {      if (m_mpiInfo->size > 1) {
# Line 528  void Brick::setToSize(escript::Data& out Line 528  void Brick::setToSize(escript::Data& out
528          const double xSize=getFirstCoordAndSpacing(0).second;          const double xSize=getFirstCoordAndSpacing(0).second;
529          const double ySize=getFirstCoordAndSpacing(1).second;          const double ySize=getFirstCoordAndSpacing(1).second;
530          const double zSize=getFirstCoordAndSpacing(2).second;          const double zSize=getFirstCoordAndSpacing(2).second;
531          const double size=min(min(xSize,ySize),zSize);          const double size=sqrt(xSize*xSize+ySize*ySize+zSize*zSize);
532  #pragma omp parallel for  #pragma omp parallel for
533          for (index_t k = 0; k < getNumElements(); ++k) {          for (index_t k = 0; k < getNumElements(); ++k) {
534              double* o = out.getSampleDataRW(k);              double* o = out.getSampleDataRW(k);
# Line 759  void Brick::assembleGradient(escript::Da Line 759  void Brick::assembleGradient(escript::Da
759      const dim_t numComp = in.getDataPointSize();      const dim_t numComp = in.getDataPointSize();
760      const double h0 = m_l0/m_gNE0;      const double h0 = m_l0/m_gNE0;
761      const double h1 = m_l1/m_gNE1;      const double h1 = m_l1/m_gNE1;
762      const double h2 = m_l1/m_gNE2;      const double h2 = m_l2/m_gNE2;
763      const double C0 = .044658198738520451079;      const double C0 = .044658198738520451079;
764      const double C1 = .16666666666666666667;      const double C1 = .16666666666666666667;
765      const double C2 = .21132486540518711775;      const double C2 = .21132486540518711775;
# Line 1199  void Brick::assembleIntegrate(vector<dou Line 1199  void Brick::assembleIntegrate(vector<dou
1199      const index_t left = (m_offset0==0 ? 0 : 1);      const index_t left = (m_offset0==0 ? 0 : 1);
1200      const index_t bottom = (m_offset1==0 ? 0 : 1);      const index_t bottom = (m_offset1==0 ? 0 : 1);
1201      const index_t front = (m_offset2==0 ? 0 : 1);      const index_t front = (m_offset2==0 ? 0 : 1);
1202      if (arg.getFunctionSpace().getTypeCode() == Elements) {      const int fs = arg.getFunctionSpace().getTypeCode();
1203        if (fs == Elements && arg.actsExpanded()) {
1204          const double w_0 = h0*h1*h2/8.;          const double w_0 = h0*h1*h2/8.;
1205  #pragma omp parallel  #pragma omp parallel
1206          {          {
# Line 1228  void Brick::assembleIntegrate(vector<dou Line 1229  void Brick::assembleIntegrate(vector<dou
1229              for (index_t i=0; i<numComp; i++)              for (index_t i=0; i<numComp; i++)
1230                  integrals[i]+=int_local[i];                  integrals[i]+=int_local[i];
1231          } // end of parallel section          } // end of parallel section
1232      } else if (arg.getFunctionSpace().getTypeCode() == ReducedElements) {  
1233        } else if (fs==ReducedElements || (fs==Elements && !arg.actsExpanded())) {
1234          const double w_0 = h0*h1*h2;          const double w_0 = h0*h1*h2;
1235  #pragma omp parallel  #pragma omp parallel
1236          {          {
# Line 1249  void Brick::assembleIntegrate(vector<dou Line 1251  void Brick::assembleIntegrate(vector<dou
1251              for (index_t i=0; i<numComp; i++)              for (index_t i=0; i<numComp; i++)
1252                  integrals[i]+=int_local[i];                  integrals[i]+=int_local[i];
1253          } // end of parallel section          } // end of parallel section
1254      } else if (arg.getFunctionSpace().getTypeCode() == FaceElements) {  
1255        } else if (fs == FaceElements && arg.actsExpanded()) {
1256          const double w_0 = h1*h2/4.;          const double w_0 = h1*h2/4.;
1257          const double w_1 = h0*h2/4.;          const double w_1 = h0*h2/4.;
1258          const double w_2 = h0*h1/4.;          const double w_2 = h0*h1/4.;
# Line 1357  void Brick::assembleIntegrate(vector<dou Line 1360  void Brick::assembleIntegrate(vector<dou
1360                  integrals[i]+=int_local[i];                  integrals[i]+=int_local[i];
1361          } // end of parallel section          } // end of parallel section
1362    
1363      } else if (arg.getFunctionSpace().getTypeCode() == ReducedFaceElements) {      } else if (fs==ReducedFaceElements || (fs==FaceElements && !arg.actsExpanded())) {
1364          const double w_0 = h1*h2;          const double w_0 = h1*h2;
1365          const double w_1 = h0*h2;          const double w_1 = h0*h2;
1366          const double w_2 = h0*h1;          const double w_2 = h0*h1;
# Line 1440  void Brick::assembleIntegrate(vector<dou Line 1443  void Brick::assembleIntegrate(vector<dou
1443              for (index_t i=0; i<numComp; i++)              for (index_t i=0; i<numComp; i++)
1444                  integrals[i]+=int_local[i];                  integrals[i]+=int_local[i];
1445          } // end of parallel section          } // end of parallel section
1446        } // function space selector
     }  
1447  }  }
1448    
1449  //protected  //protected
# Line 1763  void Brick::createPattern() Line 1765  void Brick::createPattern()
1765                          offsetInShared.push_back(offsetInShared.back()+nDOF0);                          offsetInShared.push_back(offsetInShared.back()+nDOF0);
1766                          const int firstDOF=(i1+1)/2*nDOF0*(nDOF1-1)                          const int firstDOF=(i1+1)/2*nDOF0*(nDOF1-1)
1767                                             +(i2+1)/2*nDOF0*nDOF1*(nDOF2-1);                                             +(i2+1)/2*nDOF0*nDOF1*(nDOF2-1);
1768                          const int firstNode=(i1+1)/2*m_N0*(m_N1-1)                          const int firstNode=left+(i1+1)/2*m_N0*(m_N1-1)
1769                                              +(i2+1)/2*m_N0*m_N1*(m_N2-1);                                              +(i2+1)/2*m_N0*m_N1*(m_N2-1);
1770                          for (dim_t i=0; i<nDOF0; i++, numShared++) {                          for (dim_t i=0; i<nDOF0; i++, numShared++) {
1771                              sendShared.push_back(firstDOF+i);                              sendShared.push_back(firstDOF+i);
# Line 1780  void Brick::createPattern() Line 1782  void Brick::createPattern()
1782                          offsetInShared.push_back(offsetInShared.back()+nDOF1);                          offsetInShared.push_back(offsetInShared.back()+nDOF1);
1783                          const int firstDOF=(i0+1)/2*(nDOF0-1)                          const int firstDOF=(i0+1)/2*(nDOF0-1)
1784                                             +(i2+1)/2*nDOF0*nDOF1*(nDOF2-1);                                             +(i2+1)/2*nDOF0*nDOF1*(nDOF2-1);
1785                          const int firstNode=(i0+1)/2*(m_N0-1)                          const int firstNode=bottom*m_N0
1786                                                +(i0+1)/2*(m_N0-1)
1787                                              +(i2+1)/2*m_N0*m_N1*(m_N2-1);                                              +(i2+1)/2*m_N0*m_N1*(m_N2-1);
1788                          for (dim_t i=0; i<nDOF1; i++, numShared++) {                          for (dim_t i=0; i<nDOF1; i++, numShared++) {
1789                              sendShared.push_back(firstDOF+i*nDOF0);                              sendShared.push_back(firstDOF+i*nDOF0);
# Line 1797  void Brick::createPattern() Line 1800  void Brick::createPattern()
1800                          offsetInShared.push_back(offsetInShared.back()+nDOF2);                          offsetInShared.push_back(offsetInShared.back()+nDOF2);
1801                          const int firstDOF=(i0+1)/2*(nDOF0-1)                          const int firstDOF=(i0+1)/2*(nDOF0-1)
1802                                             +(i1+1)/2*nDOF0*(nDOF1-1);                                             +(i1+1)/2*nDOF0*(nDOF1-1);
1803                          const int firstNode=(i0+1)/2*(m_N0-1)                          const int firstNode=front*m_N0*m_N1
1804                                                +(i0+1)/2*(m_N0-1)
1805                                              +(i1+1)/2*m_N0*(m_N1-1);                                              +(i1+1)/2*m_N0*(m_N1-1);
1806                          for (dim_t i=0; i<nDOF2; i++, numShared++) {                          for (dim_t i=0; i<nDOF2; i++, numShared++) {
1807                              sendShared.push_back(firstDOF+i*nDOF0*nDOF1);                              sendShared.push_back(firstDOF+i*nDOF0*nDOF1);
# Line 9438  void Brick::assemblePDEBoundarySingle(Pa Line 9442  void Brick::assemblePDEBoundarySingle(Pa
9442      {      {
9443          if (m_faceOffset[0] > -1) {          if (m_faceOffset[0] > -1) {
9444              for (index_t k2_0=0; k2_0<2; k2_0++) { // colouring              for (index_t k2_0=0; k2_0<2; k2_0++) { // colouring
9445  #pragma omp for nowait  #pragma omp for
9446                  for (index_t k2=k2_0; k2<m_NE2; k2+=2) {                  for (index_t k2=k2_0; k2<m_NE2; k2+=2) {
9447                      for (index_t k1=0; k1<m_NE1; ++k1) {                      for (index_t k1=0; k1<m_NE1; ++k1) {
9448                          vector<double> EM_S(8*8, 0);                          vector<double> EM_S(8*8, 0);
# Line 9562  void Brick::assemblePDEBoundarySingle(Pa Line 9566  void Brick::assemblePDEBoundarySingle(Pa
9566    
9567          if (m_faceOffset[1] > -1) {          if (m_faceOffset[1] > -1) {
9568              for (index_t k2_0=0; k2_0<2; k2_0++) { // colouring              for (index_t k2_0=0; k2_0<2; k2_0++) { // colouring
9569  #pragma omp for nowait  #pragma omp for
9570                  for (index_t k2=k2_0; k2<m_NE2; k2+=2) {                  for (index_t k2=k2_0; k2<m_NE2; k2+=2) {
9571                      for (index_t k1=0; k1<m_NE1; ++k1) {                      for (index_t k1=0; k1<m_NE1; ++k1) {
9572                          vector<double> EM_S(8*8, 0);                          vector<double> EM_S(8*8, 0);
# Line 9686  void Brick::assemblePDEBoundarySingle(Pa Line 9690  void Brick::assemblePDEBoundarySingle(Pa
9690    
9691          if (m_faceOffset[2] > -1) {          if (m_faceOffset[2] > -1) {
9692              for (index_t k2_0=0; k2_0<2; k2_0++) { // colouring              for (index_t k2_0=0; k2_0<2; k2_0++) { // colouring
9693  #pragma omp for nowait  #pragma omp for
9694                  for (index_t k2=k2_0; k2<m_NE2; k2+=2) {                  for (index_t k2=k2_0; k2<m_NE2; k2+=2) {
9695                      for (index_t k0=0; k0<m_NE0; ++k0) {                      for (index_t k0=0; k0<m_NE0; ++k0) {
9696                          vector<double> EM_S(8*8, 0);                          vector<double> EM_S(8*8, 0);
# Line 9810  void Brick::assemblePDEBoundarySingle(Pa Line 9814  void Brick::assemblePDEBoundarySingle(Pa
9814    
9815          if (m_faceOffset[3] > -1) {          if (m_faceOffset[3] > -1) {
9816              for (index_t k2_0=0; k2_0<2; k2_0++) { // colouring              for (index_t k2_0=0; k2_0<2; k2_0++) { // colouring
9817  #pragma omp for nowait  #pragma omp for
9818                  for (index_t k2=k2_0; k2<m_NE2; k2+=2) {                  for (index_t k2=k2_0; k2<m_NE2; k2+=2) {
9819                      for (index_t k0=0; k0<m_NE0; ++k0) {                      for (index_t k0=0; k0<m_NE0; ++k0) {
9820                          vector<double> EM_S(8*8, 0);                          vector<double> EM_S(8*8, 0);
# Line 9934  void Brick::assemblePDEBoundarySingle(Pa Line 9938  void Brick::assemblePDEBoundarySingle(Pa
9938    
9939          if (m_faceOffset[4] > -1) {          if (m_faceOffset[4] > -1) {
9940              for (index_t k1_0=0; k1_0<2; k1_0++) { // colouring              for (index_t k1_0=0; k1_0<2; k1_0++) { // colouring
9941  #pragma omp for nowait  #pragma omp for
9942                  for (index_t k1=k1_0; k1<m_NE1; k1+=2) {                  for (index_t k1=k1_0; k1<m_NE1; k1+=2) {
9943                      for (index_t k0=0; k0<m_NE0; ++k0) {                      for (index_t k0=0; k0<m_NE0; ++k0) {
9944                          vector<double> EM_S(8*8, 0);                          vector<double> EM_S(8*8, 0);
# Line 10058  void Brick::assemblePDEBoundarySingle(Pa Line 10062  void Brick::assemblePDEBoundarySingle(Pa
10062    
10063          if (m_faceOffset[5] > -1) {          if (m_faceOffset[5] > -1) {
10064              for (index_t k1_0=0; k1_0<2; k1_0++) { // colouring              for (index_t k1_0=0; k1_0<2; k1_0++) { // colouring
10065  #pragma omp for nowait  #pragma omp for
10066                  for (index_t k1=k1_0; k1<m_NE1; k1+=2) {                  for (index_t k1=k1_0; k1<m_NE1; k1+=2) {
10067                      for (index_t k0=0; k0<m_NE0; ++k0) {                      for (index_t k0=0; k0<m_NE0; ++k0) {
10068                          vector<double> EM_S(8*8, 0);                          vector<double> EM_S(8*8, 0);
# Line 10202  void Brick::assemblePDEBoundarySingleRed Line 10206  void Brick::assemblePDEBoundarySingleRed
10206      {      {
10207          if (m_faceOffset[0] > -1) {          if (m_faceOffset[0] > -1) {
10208              for (index_t k2_0=0; k2_0<2; k2_0++) { // colouring              for (index_t k2_0=0; k2_0<2; k2_0++) { // colouring
10209  #pragma omp for nowait  #pragma omp for
10210                  for (index_t k2=k2_0; k2<m_NE2; k2+=2) {                  for (index_t k2=k2_0; k2<m_NE2; k2+=2) {
10211                      for (index_t k1=0; k1<m_NE1; ++k1) {                      for (index_t k1=0; k1<m_NE1; ++k1) {
10212                          vector<double> EM_S(8*8, 0);                          vector<double> EM_S(8*8, 0);
# Line 10254  void Brick::assemblePDEBoundarySingleRed Line 10258  void Brick::assemblePDEBoundarySingleRed
10258    
10259          if (m_faceOffset[1] > -1) {          if (m_faceOffset[1] > -1) {
10260              for (index_t k2_0=0; k2_0<2; k2_0++) { // colouring              for (index_t k2_0=0; k2_0<2; k2_0++) { // colouring
10261  #pragma omp for nowait  #pragma omp for
10262                  for (index_t k2=k2_0; k2<m_NE2; k2+=2) {                  for (index_t k2=k2_0; k2<m_NE2; k2+=2) {
10263                      for (index_t k1=0; k1<m_NE1; ++k1) {                      for (index_t k1=0; k1<m_NE1; ++k1) {
10264                          vector<double> EM_S(8*8, 0);                          vector<double> EM_S(8*8, 0);
# Line 10306  void Brick::assemblePDEBoundarySingleRed Line 10310  void Brick::assemblePDEBoundarySingleRed
10310    
10311          if (m_faceOffset[2] > -1) {          if (m_faceOffset[2] > -1) {
10312              for (index_t k2_0=0; k2_0<2; k2_0++) { // colouring              for (index_t k2_0=0; k2_0<2; k2_0++) { // colouring
10313  #pragma omp for nowait  #pragma omp for
10314                  for (index_t k2=k2_0; k2<m_NE2; k2+=2) {                  for (index_t k2=k2_0; k2<m_NE2; k2+=2) {
10315                      for (index_t k0=0; k0<m_NE0; ++k0) {                      for (index_t k0=0; k0<m_NE0; ++k0) {
10316                          vector<double> EM_S(8*8, 0);                          vector<double> EM_S(8*8, 0);
# Line 10357  void Brick::assemblePDEBoundarySingleRed Line 10361  void Brick::assemblePDEBoundarySingleRed
10361    
10362          if (m_faceOffset[3] > -1) {          if (m_faceOffset[3] > -1) {
10363              for (index_t k2_0=0; k2_0<2; k2_0++) { // colouring              for (index_t k2_0=0; k2_0<2; k2_0++) { // colouring
10364  #pragma omp for nowait  #pragma omp for
10365                  for (index_t k2=k2_0; k2<m_NE2; k2+=2) {                  for (index_t k2=k2_0; k2<m_NE2; k2+=2) {
10366                      for (index_t k0=0; k0<m_NE0; ++k0) {                      for (index_t k0=0; k0<m_NE0; ++k0) {
10367                          vector<double> EM_S(8*8, 0);                          vector<double> EM_S(8*8, 0);
# Line 10409  void Brick::assemblePDEBoundarySingleRed Line 10413  void Brick::assemblePDEBoundarySingleRed
10413    
10414          if (m_faceOffset[4] > -1) {          if (m_faceOffset[4] > -1) {
10415              for (index_t k1_0=0; k1_0<2; k1_0++) { // colouring              for (index_t k1_0=0; k1_0<2; k1_0++) { // colouring
10416  #pragma omp for nowait  #pragma omp for
10417                  for (index_t k1=k1_0; k1<m_NE1; k1+=2) {                  for (index_t k1=k1_0; k1<m_NE1; k1+=2) {
10418                      for (index_t k0=0; k0<m_NE0; ++k0) {                      for (index_t k0=0; k0<m_NE0; ++k0) {
10419                          vector<double> EM_S(8*8, 0);                          vector<double> EM_S(8*8, 0);
# Line 10461  void Brick::assemblePDEBoundarySingleRed Line 10465  void Brick::assemblePDEBoundarySingleRed
10465    
10466          if (m_faceOffset[5] > -1) {          if (m_faceOffset[5] > -1) {
10467              for (index_t k1_0=0; k1_0<2; k1_0++) { // colouring              for (index_t k1_0=0; k1_0<2; k1_0++) { // colouring
10468  #pragma omp for nowait  #pragma omp for
10469                  for (index_t k1=k1_0; k1<m_NE1; k1+=2) {                  for (index_t k1=k1_0; k1<m_NE1; k1+=2) {
10470                      for (index_t k0=0; k0<m_NE0; ++k0) {                      for (index_t k0=0; k0<m_NE0; ++k0) {
10471                          vector<double> EM_S(8*8, 0);                          vector<double> EM_S(8*8, 0);
# Line 10570  void Brick::assemblePDEBoundarySystem(Pa Line 10574  void Brick::assemblePDEBoundarySystem(Pa
10574      {      {
10575          if (m_faceOffset[0] > -1) {          if (m_faceOffset[0] > -1) {
10576              for (index_t k2_0=0; k2_0<2; k2_0++) { // colouring              for (index_t k2_0=0; k2_0<2; k2_0++) { // colouring
10577  #pragma omp for nowait  #pragma omp for
10578                  for (index_t k2=k2_0; k2<m_NE2; k2+=2) {                  for (index_t k2=k2_0; k2<m_NE2; k2+=2) {
10579                      for (index_t k1=0; k1<m_NE1; ++k1) {                      for (index_t k1=0; k1<m_NE1; ++k1) {
10580                          vector<double> EM_S(8*8*numEq*numComp, 0);                          vector<double> EM_S(8*8*numEq*numComp, 0);
# Line 10708  void Brick::assemblePDEBoundarySystem(Pa Line 10712  void Brick::assemblePDEBoundarySystem(Pa
10712    
10713          if (m_faceOffset[1] > -1) {          if (m_faceOffset[1] > -1) {
10714              for (index_t k2_0=0; k2_0<2; k2_0++) { // colouring              for (index_t k2_0=0; k2_0<2; k2_0++) { // colouring
10715  #pragma omp for nowait  #pragma omp for
10716                  for (index_t k2=k2_0; k2<m_NE2; k2+=2) {                  for (index_t k2=k2_0; k2<m_NE2; k2+=2) {
10717                      for (index_t k1=0; k1<m_NE1; ++k1) {                      for (index_t k1=0; k1<m_NE1; ++k1) {
10718                          vector<double> EM_S(8*8*numEq*numComp, 0);                          vector<double> EM_S(8*8*numEq*numComp, 0);
# Line 10846  void Brick::assemblePDEBoundarySystem(Pa Line 10850  void Brick::assemblePDEBoundarySystem(Pa
10850    
10851          if (m_faceOffset[2] > -1) {          if (m_faceOffset[2] > -1) {
10852              for (index_t k2_0=0; k2_0<2; k2_0++) { // colouring              for (index_t k2_0=0; k2_0<2; k2_0++) { // colouring
10853  #pragma omp for nowait  #pragma omp for
10854                  for (index_t k2=k2_0; k2<m_NE2; k2+=2) {                  for (index_t k2=k2_0; k2<m_NE2; k2+=2) {
10855                      for (index_t k0=0; k0<m_NE0; ++k0) {                      for (index_t k0=0; k0<m_NE0; ++k0) {
10856                          vector<double> EM_S(8*8*numEq*numComp, 0);                          vector<double> EM_S(8*8*numEq*numComp, 0);
# Line 10984  void Brick::assemblePDEBoundarySystem(Pa Line 10988  void Brick::assemblePDEBoundarySystem(Pa
10988    
10989          if (m_faceOffset[3] > -1) {          if (m_faceOffset[3] > -1) {
10990              for (index_t k2_0=0; k2_0<2; k2_0++) { // colouring              for (index_t k2_0=0; k2_0<2; k2_0++) { // colouring
10991  #pragma omp for nowait  #pragma omp for
10992                  for (index_t k2=k2_0; k2<m_NE2; k2+=2) {                  for (index_t k2=k2_0; k2<m_NE2; k2+=2) {
10993                      for (index_t k0=0; k0<m_NE0; ++k0) {                      for (index_t k0=0; k0<m_NE0; ++k0) {
10994                          vector<double> EM_S(8*8*numEq*numComp, 0);                          vector<double> EM_S(8*8*numEq*numComp, 0);
# Line 11122  void Brick::assemblePDEBoundarySystem(Pa Line 11126  void Brick::assemblePDEBoundarySystem(Pa
11126    
11127          if (m_faceOffset[4] > -1) {          if (m_faceOffset[4] > -1) {
11128              for (index_t k1_0=0; k1_0<2; k1_0++) { // colouring              for (index_t k1_0=0; k1_0<2; k1_0++) { // colouring
11129  #pragma omp for nowait  #pragma omp for
11130                  for (index_t k1=k1_0; k1<m_NE1; k1+=2) {                  for (index_t k1=k1_0; k1<m_NE1; k1+=2) {
11131                      for (index_t k0=0; k0<m_NE0; ++k0) {                      for (index_t k0=0; k0<m_NE0; ++k0) {
11132                          vector<double> EM_S(8*8*numEq*numComp, 0);                          vector<double> EM_S(8*8*numEq*numComp, 0);
# Line 11260  void Brick::assemblePDEBoundarySystem(Pa Line 11264  void Brick::assemblePDEBoundarySystem(Pa
11264    
11265          if (m_faceOffset[5] > -1) {          if (m_faceOffset[5] > -1) {
11266              for (index_t k1_0=0; k1_0<2; k1_0++) { // colouring              for (index_t k1_0=0; k1_0<2; k1_0++) { // colouring
11267  #pragma omp for nowait  #pragma omp for
11268                  for (index_t k1=k1_0; k1<m_NE1; k1+=2) {                  for (index_t k1=k1_0; k1<m_NE1; k1+=2) {
11269                      for (index_t k0=0; k0<m_NE0; ++k0) {                      for (index_t k0=0; k0<m_NE0; ++k0) {
11270                          vector<double> EM_S(8*8*numEq*numComp, 0);                          vector<double> EM_S(8*8*numEq*numComp, 0);
# Line 11425  void Brick::assemblePDEBoundarySystemRed Line 11429  void Brick::assemblePDEBoundarySystemRed
11429      {      {
11430          if (m_faceOffset[0] > -1) {          if (m_faceOffset[0] > -1) {
11431              for (index_t k2_0=0; k2_0<2; k2_0++) { // colouring              for (index_t k2_0=0; k2_0<2; k2_0++) { // colouring
11432  #pragma omp for nowait  #pragma omp for
11433                  for (index_t k2=k2_0; k2<m_NE2; k2+=2) {                  for (index_t k2=k2_0; k2<m_NE2; k2+=2) {
11434                      for (index_t k1=0; k1<m_NE1; ++k1) {                      for (index_t k1=0; k1<m_NE1; ++k1) {
11435                          vector<double> EM_S(8*8*numEq*numComp, 0);                          vector<double> EM_S(8*8*numEq*numComp, 0);
# Line 11483  void Brick::assemblePDEBoundarySystemRed Line 11487  void Brick::assemblePDEBoundarySystemRed
11487    
11488          if (m_faceOffset[1] > -1) {          if (m_faceOffset[1] > -1) {
11489              for (index_t k2_0=0; k2_0<2; k2_0++) { // colouring              for (index_t k2_0=0; k2_0<2; k2_0++) { // colouring
11490  #pragma omp for nowait  #pragma omp for
11491                  for (index_t k2=k2_0; k2<m_NE2; k2+=2) {                  for (index_t k2=k2_0; k2<m_NE2; k2+=2) {
11492                      for (index_t k1=0; k1<m_NE1; ++k1) {                      for (index_t k1=0; k1<m_NE1; ++k1) {
11493                          vector<double> EM_S(8*8*numEq*numComp, 0);                          vector<double> EM_S(8*8*numEq*numComp, 0);
# Line 11541  void Brick::assemblePDEBoundarySystemRed Line 11545  void Brick::assemblePDEBoundarySystemRed
11545    
11546          if (m_faceOffset[2] > -1) {          if (m_faceOffset[2] > -1) {
11547              for (index_t k2_0=0; k2_0<2; k2_0++) { // colouring              for (index_t k2_0=0; k2_0<2; k2_0++) { // colouring
11548  #pragma omp for nowait  #pragma omp for
11549                  for (index_t k2=k2_0; k2<m_NE2; k2+=2) {                  for (index_t k2=k2_0; k2<m_NE2; k2+=2) {
11550                      for (index_t k0=0; k0<m_NE0; ++k0) {                      for (index_t k0=0; k0<m_NE0; ++k0) {
11551                          vector<double> EM_S(8*8*numEq*numComp, 0);                          vector<double> EM_S(8*8*numEq*numComp, 0);
# Line 11599  void Brick::assemblePDEBoundarySystemRed Line 11603  void Brick::assemblePDEBoundarySystemRed
11603    
11604          if (m_faceOffset[3] > -1) {          if (m_faceOffset[3] > -1) {
11605              for (index_t k2_0=0; k2_0<2; k2_0++) { // colouring              for (index_t k2_0=0; k2_0<2; k2_0++) { // colouring
11606  #pragma omp for nowait  #pragma omp for
11607                  for (index_t k2=k2_0; k2<m_NE2; k2+=2) {                  for (index_t k2=k2_0; k2<m_NE2; k2+=2) {
11608                      for (index_t k0=0; k0<m_NE0; ++k0) {                      for (index_t k0=0; k0<m_NE0; ++k0) {
11609                          vector<double> EM_S(8*8*numEq*numComp, 0);                          vector<double> EM_S(8*8*numEq*numComp, 0);
# Line 11657  void Brick::assemblePDEBoundarySystemRed Line 11661  void Brick::assemblePDEBoundarySystemRed
11661    
11662          if (m_faceOffset[4] > -1) {          if (m_faceOffset[4] > -1) {
11663              for (index_t k1_0=0; k1_0<2; k1_0++) { // colouring              for (index_t k1_0=0; k1_0<2; k1_0++) { // colouring
11664  #pragma omp for nowait  #pragma omp for
11665                  for (index_t k1=k1_0; k1<m_NE1; k1+=2) {                  for (index_t k1=k1_0; k1<m_NE1; k1+=2) {
11666                      for (index_t k0=0; k0<m_NE0; ++k0) {                      for (index_t k0=0; k0<m_NE0; ++k0) {
11667                          vector<double> EM_S(8*8*numEq*numComp, 0);                          vector<double> EM_S(8*8*numEq*numComp, 0);
# Line 11715  void Brick::assemblePDEBoundarySystemRed Line 11719  void Brick::assemblePDEBoundarySystemRed
11719    
11720          if (m_faceOffset[5] > -1) {          if (m_faceOffset[5] > -1) {
11721              for (index_t k1_0=0; k1_0<2; k1_0++) { // colouring              for (index_t k1_0=0; k1_0<2; k1_0++) { // colouring
11722  #pragma omp for nowait  #pragma omp for
11723                  for (index_t k1=k1_0; k1<m_NE1; k1+=2) {                  for (index_t k1=k1_0; k1<m_NE1; k1+=2) {
11724                      for (index_t k0=0; k0<m_NE0; ++k0) {                      for (index_t k0=0; k0<m_NE0; ++k0) {
11725                          vector<double> EM_S(8*8*numEq*numComp, 0);                          vector<double> EM_S(8*8*numEq*numComp, 0);

Legend:
Removed from v.3792  
changed lines
  Added in v.3908

  ViewVC Help
Powered by ViewVC 1.1.26