/[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 4375 by caltinay, Mon Apr 22 05:35:52 2013 UTC revision 4529 by caltinay, Fri Oct 25 01:23:27 2013 UTC
# Line 17  Line 17 
17  #include <paso/SystemMatrix.h>  #include <paso/SystemMatrix.h>
18  #include <esysUtils/esysFileWriter.h>  #include <esysUtils/esysFileWriter.h>
19    
20    #include <boost/scoped_array.hpp>
21    
22  #ifdef USE_NETCDF  #ifdef USE_NETCDF
23  #include <netcdfcpp.h>  #include <netcdfcpp.h>
24  #endif  #endif
# Line 294  void Brick::readNcGrid(escript::Data& ou Line 296  void Brick::readNcGrid(escript::Data& ou
296          throw RipleyException("readNcGrid(): only scalar data supported");          throw RipleyException("readNcGrid(): only scalar data supported");
297    
298      const int dims = var->num_dims();      const int dims = var->num_dims();
299      const long *edges = var->edges();      boost::scoped_array<long> edges(var->edges());
300    
301      // is this a slice of the data object (dims!=3)?      // is this a slice of the data object (dims!=3)?
302      // note the expected ordering of edges (as in numpy: z,y,x)      // note the expected ordering of edges (as in numpy: z,y,x)
# Line 376  void Brick::readNcGrid(escript::Data& ou Line 378  void Brick::readNcGrid(escript::Data& ou
378  void Brick::readBinaryGrid(escript::Data& out, string filename,  void Brick::readBinaryGrid(escript::Data& out, string filename,
379                             const vector<int>& first,                             const vector<int>& first,
380                             const vector<int>& numValues,                             const vector<int>& numValues,
381                             const vector<int>& multiplier) const                             const std::vector<int>& multiplier,
382                               int byteOrder, int dataType) const
383    {
384        // the mapping is not universally correct but should work on our
385        // supported platforms
386        switch (dataType) {
387            case DATATYPE_INT32:
388                readBinaryGridImpl<int>(out, filename, first, numValues,
389                                        multiplier, byteOrder);
390                break;
391            case DATATYPE_FLOAT32:
392                readBinaryGridImpl<float>(out, filename, first, numValues,
393                                          multiplier, byteOrder);
394                break;
395            case DATATYPE_FLOAT64:
396                readBinaryGridImpl<double>(out, filename, first, numValues,
397                                           multiplier, byteOrder);
398                break;
399            default:
400                throw RipleyException("readBinaryGrid(): invalid or unsupported datatype");
401        }
402    }
403    
404    template<typename ValueType>
405    void Brick::readBinaryGridImpl(escript::Data& out, const string& filename,
406                                   const vector<int>& first,
407                                   const vector<int>& numValues,
408                                   const vector<int>& multiplier,
409                                   int byteOrder) const
410  {  {
411      // check destination function space      // check destination function space
412      int myN0, myN1, myN2;      int myN0, myN1, myN2;
# Line 412  void Brick::readBinaryGrid(escript::Data Line 442  void Brick::readBinaryGrid(escript::Data
442      f.seekg(0, ios::end);      f.seekg(0, ios::end);
443      const int numComp = out.getDataPointSize();      const int numComp = out.getDataPointSize();
444      const int filesize = f.tellg();      const int filesize = f.tellg();
445      const int reqsize = numValues[0]*numValues[1]*numValues[2]*numComp*sizeof(float);      const int reqsize = numValues[0]*numValues[1]*numValues[2]*numComp*sizeof(ValueType);
446      if (filesize < reqsize) {      if (filesize < reqsize) {
447          f.close();          f.close();
448          throw RipleyException("readBinaryGrid(): not enough data in file");          throw RipleyException("readBinaryGrid(): not enough data in file");
# Line 442  void Brick::readBinaryGrid(escript::Data Line 472  void Brick::readBinaryGrid(escript::Data
472      const int num2 = min(numValues[2]-idx2, myN2-first2);      const int num2 = min(numValues[2]-idx2, myN2-first2);
473    
474      out.requireWrite();      out.requireWrite();
475      vector<float> values(num0*numComp);      vector<ValueType> values(num0*numComp);
476      const int dpp = out.getNumDataPointsPerSample();      const int dpp = out.getNumDataPointsPerSample();
477    
478      for (index_t z=0; z<num2; z++) {      for (int z=0; z<num2; z++) {
479          for (index_t y=0; y<num1; y++) {          for (int y=0; y<num1; y++) {
480              const int fileofs = numComp*(idx0+(idx1+y)*numValues[0]+(idx2+z)*numValues[0]*numValues[1]);              const int fileofs = numComp*(idx0+(idx1+y)*numValues[0]+(idx2+z)*numValues[0]*numValues[1]);
481              f.seekg(fileofs*sizeof(float));              f.seekg(fileofs*sizeof(ValueType));
482              f.read((char*)&values[0], num0*numComp*sizeof(float));              f.read((char*)&values[0], num0*numComp*sizeof(ValueType));
483    
484              for (index_t x=0; x<num0; x++) {              for (int x=0; x<num0; x++) {
485                  const int baseIndex = first0+x*multiplier[0]                  const int baseIndex = first0+x*multiplier[0]
486                                          +(first1+y*multiplier[1])*myN0                                          +(first1+y*multiplier[1])*myN0
487                                          +(first2+z*multiplier[2])*myN0*myN1;                                          +(first2+z*multiplier[2])*myN0*myN1;
488                  for (index_t m2=0; m2<multiplier[2]; m2++) {                  for (int m2=0; m2<multiplier[2]; m2++) {
489                      for (index_t m1=0; m1<multiplier[1]; m1++) {                      for (int m1=0; m1<multiplier[1]; m1++) {
490                          for (index_t m0=0; m0<multiplier[0]; m0++) {                          for (int m0=0; m0<multiplier[0]; m0++) {
491                              const int dataIndex = baseIndex+m0                              const int dataIndex = baseIndex+m0
492                                             +m1*myN0                                             +m1*myN0
493                                             +m2*myN0*myN1;                                             +m2*myN0*myN1;
494                              double* dest = out.getSampleDataRW(dataIndex);                              double* dest = out.getSampleDataRW(dataIndex);
495                              for (index_t c=0; c<numComp; c++) {                              for (int c=0; c<numComp; c++) {
496                                  if (!std::isnan(values[x*numComp+c])) {                                  ValueType val = values[x*numComp+c];
497                                      for (index_t q=0; q<dpp; q++) {  
498                                          *dest++ = static_cast<double>(values[x*numComp+c]);                                  if (byteOrder != BYTEORDER_NATIVE) {
499                                        char* cval = reinterpret_cast<char*>(&val);
500                                        // this will alter val!!
501                                        byte_swap32(cval);
502                                    }
503                                    if (!std::isnan(val)) {
504                                        for (int q=0; q<dpp; q++) {
505                                            *dest++ = static_cast<double>(val);
506                                      }                                      }
507                                  }                                  }
508                              }                              }
# Line 534  void Brick::writeBinaryGridImpl(const es Line 571  void Brick::writeBinaryGridImpl(const es
571      escript::Data* _in = const_cast<escript::Data*>(&in);      escript::Data* _in = const_cast<escript::Data*>(&in);
572    
573      // from here on we know that each sample consists of one value      // from here on we know that each sample consists of one value
574      FileWriter* fw = new FileWriter();      FileWriter fw;
575      fw->openFile(filename, fileSize);      fw.openFile(filename, fileSize);
576      MPIBarrier();      MPIBarrier();
577    
578      for (index_t z=0; z<myN2; z++) {      for (index_t z=0; z<myN2; z++) {
# Line 554  void Brick::writeBinaryGridImpl(const es Line 591  void Brick::writeBinaryGridImpl(const es
591                      oss.write(byte_swap32(value), sizeof(fvalue));                      oss.write(byte_swap32(value), sizeof(fvalue));
592                  }                  }
593              }              }
594              fw->writeAt(oss, fileofs);              fw.writeAt(oss, fileofs);
595          }          }
596      }      }
597      fw->close();      fw.close();
598  }  }
599    
600  void Brick::dump(const string& fileName) const  void Brick::dump(const string& fileName) const
# Line 2794  void Brick::assemblePDESingle(Paso_Syste Line 2831  void Brick::assemblePDESingle(Paso_Syste
2831          const escript::Data& C, const escript::Data& D,          const escript::Data& C, const escript::Data& D,
2832          const escript::Data& X, const escript::Data& Y) const          const escript::Data& X, const escript::Data& Y) const
2833  {  {
2834      /* GENERATOR SNIP_PDE_SINGLE_PRE TOP */      const double SQRT3 = 1.73205080756887719318;
2835      const double w0 = 0.00093037914038584273081*m_dx[1]*m_dx[2]/m_dx[0];      const double w10 = -m_dx[0]/288;
2836      const double w1 = 0.00093037914038584273081*m_dx[2];      const double w6 = w10*(SQRT3 - 2);
2837      const double w2 = -0.000249294339321148701*m_dx[1];      const double w12 = w10*(-SQRT3 - 2);
2838      const double w3 = 0.00093037914038584273081*m_dx[0]*m_dx[2]/m_dx[1];      const double w4 = w10*(-4*SQRT3 + 7);
2839      const double w4 = -0.000249294339321148701*m_dx[0];      const double w18 = w10*(-4*SQRT3 - 7);
2840      const double w5 = 0.00093037914038584273081*m_dx[1];      const double w11 = m_dx[1]/288;
2841      const double w6 = 0.00093037914038584273081*m_dx[0];      const double w5 = w11*(-SQRT3 + 2);
2842      const double w7 = -0.000249294339321148701*m_dx[0]*m_dx[1]/m_dx[2];      const double w15 = w11*(SQRT3 + 2);
2843      const double w8 = 0.0034722222222222222222*m_dx[2];      const double w2 = w11*(4*SQRT3 - 7);
2844      const double w9 = 0.012958509748503046158*m_dx[0]*m_dx[2]/m_dx[1];      const double w17 = w11*(4*SQRT3 + 7);
2845      const double w10 = -0.0034722222222222222222*m_dx[0];      const double w8 = m_dx[2]/288;
2846      const double w11 = 0.0034722222222222222222*m_dx[1];      const double w1 = w8*(-SQRT3 + 2);
2847      const double w12 = 0.012958509748503046158*m_dx[0];      const double w16 = w8*(SQRT3 + 2);
2848      const double w13 = -0.0034722222222222222222*m_dx[0]*m_dx[1]/m_dx[2];      const double w20 = w8*(4*SQRT3 - 7);
2849      const double w14 = 0.012958509748503046158*m_dx[1]*m_dx[2]/m_dx[0];      const double w21 = w8*(-4*SQRT3 - 7);
2850      const double w15 = 0.012958509748503046158*m_dx[1];      const double w50 = m_dx[0]*m_dx[1]/72;
2851      const double w16 = 0.012958509748503046158*m_dx[2];      const double w65 = -m_dx[0]*m_dx[1]/48;
2852      const double w17 = 0.04836181677178996241*m_dx[1];      const double w35 = w65*(-SQRT3 - 3)/36;
2853      const double w18 = 0.04836181677178996241*m_dx[0];      const double w42 = w65*(SQRT3 - 3)/36;
2854      const double w19 = -0.04836181677178996241*m_dx[0]*m_dx[1]/m_dx[2];      const double w32 = w65*(5*SQRT3 - 9)/36;
2855      const double w20 = -0.000249294339321148701*m_dx[2];      const double w43 = w65*(-5*SQRT3 - 9)/36;
2856      const double w21 = -0.04836181677178996241*m_dx[2];      const double w40 = w65*(-19*SQRT3 - 33)/36;
2857      const double w22 = -0.0034722222222222222222*m_dx[0]*m_dx[2]/m_dx[1];      const double w41 = w65*(19*SQRT3 - 33)/36;
2858      const double w23 = 0.00093037914038584273081*m_dx[0]*m_dx[1]/m_dx[2];      const double w63 = w65*(SQRT3 + 2);
2859      const double w24 = -0.04836181677178996241*m_dx[0]*m_dx[2]/m_dx[1];      const double w67 = w65*(-SQRT3 + 2);
2860      const double w25 = 0.012958509748503046158*m_dx[0]*m_dx[1]/m_dx[2];      const double w51 = -m_dx[0]*m_dx[2]/72;
2861      const double w26 = -0.000249294339321148701*m_dx[0]*m_dx[2]/m_dx[1];      const double w64 = -m_dx[0]*m_dx[2]/48;
2862      const double w27 = -0.0034722222222222222222*m_dx[1]*m_dx[2]/m_dx[0];      const double w34 = w64*(-SQRT3 - 3)/36;
2863      const double w28 = -0.000249294339321148701*m_dx[1]*m_dx[2]/m_dx[0];      const double w37 = w64*(SQRT3 - 3)/36;
2864      const double w29 = -0.04836181677178996241*m_dx[1]*m_dx[2]/m_dx[0];      const double w31 = w64*(5*SQRT3 - 9)/36;
2865      const double w30 = 0.0001966122466178319053*m_dx[1]*m_dx[2];      const double w39 = w64*(-5*SQRT3 - 9)/36;
2866      const double w31 = 0.0001966122466178319053*m_dx[0]*m_dx[2];      const double w44 = w64*(19*SQRT3 + 33)/36;
2867      const double w32 = 0.0001966122466178319053*m_dx[0]*m_dx[1];      const double w45 = w64*(-19*SQRT3 + 33)/36;
2868      const double w33 = 0.0007337668937680108255*m_dx[1]*m_dx[2];      const double w62 = w64*(SQRT3 + 2);
2869      const double w34 = 0.0027384553284542113967*m_dx[0]*m_dx[2];      const double w68 = w64*(-SQRT3 + 2);
2870      const double w35 = 0.0027384553284542113967*m_dx[0]*m_dx[1];      const double w53 = -m_dx[1]*m_dx[2]/72;
2871      const double w36 = 0.0027384553284542113967*m_dx[1]*m_dx[2];      const double w66 = -m_dx[1]*m_dx[2]/48;
2872      const double w37 = 0.0007337668937680108255*m_dx[0]*m_dx[2];      const double w33 = w66*(SQRT3 - 3)/36;
2873      const double w38 = 0.010220054420048834761*m_dx[1]*m_dx[2];      const double w36 = w66*(-SQRT3 - 3)/36;
2874      const double w39 = 0.010220054420048834761*m_dx[0]*m_dx[2];      const double w30 = w66*(5*SQRT3 - 9)/36;
2875      const double w40 = 0.038141762351741127649*m_dx[0]*m_dx[1];      const double w38 = w66*(-5*SQRT3 - 9)/36;
2876      const double w41 = 0.000052682092703316795698*m_dx[0]*m_dx[1];      const double w46 = w66*(19*SQRT3 - 33)/36;
2877      const double w42 = 0.0007337668937680108255*m_dx[0]*m_dx[1];      const double w47 = w66*(-19*SQRT3 - 33)/36;
2878      const double w43 = 0.010220054420048834761*m_dx[0]*m_dx[1];      const double w61 = w66*(SQRT3 + 2);
2879      const double w44 = -0.038141762351741127649*m_dx[0]*m_dx[2];      const double w69 = w66*(-SQRT3 + 2);
2880      const double w45 = -0.000052682092703316795698*m_dx[0]*m_dx[2];      const double w55 = m_dx[0]*m_dx[1]*m_dx[2]/1728;
2881      const double w46 = 0.000052682092703316795698*m_dx[1]*m_dx[2];      const double w57 = w55*(-SQRT3 + 2);
2882      const double w47 = 0.038141762351741127649*m_dx[1]*m_dx[2];      const double w58 = w55*(SQRT3 + 2);
2883      const double w48 = 0.027777777777777777778*m_dx[1]*m_dx[2];      const double w54 = w55*(-4*SQRT3 + 7);
2884      const double w49 = 0.027777777777777777778*m_dx[0]*m_dx[2];      const double w56 = w55*(4*SQRT3 + 7);
2885      const double w50 = 0.055555555555555555556*m_dx[0]*m_dx[1];      const double w59 = w55*(15*SQRT3 + 26);
2886      const double w51 = -0.055555555555555555556*m_dx[0]*m_dx[2];      const double w60 = w55*(-15*SQRT3 + 26);
2887      const double w52 = -0.027777777777777777778*m_dx[0]*m_dx[1];      const double w71 = w55*6*(SQRT3 + 3);
2888      const double w53 = -0.013888888888888888889*m_dx[1]*m_dx[2];      const double w72 = w55*6*(-SQRT3 + 3);
2889      const double w54 = 0.0000415490565535247835*m_dx[0]*m_dx[1]*m_dx[2];      const double w70 = w55*6*(5*SQRT3 + 9);
2890      const double w55 = 0.0005787037037037037037*m_dx[0]*m_dx[1]*m_dx[2];      const double w73 = w55*6*(-5*SQRT3 + 9);
2891      const double w56 = 0.0080603027952983270684*m_dx[0]*m_dx[1]*m_dx[2];      const double w13 = -m_dx[0]*m_dx[1]/(288*m_dx[2]);
2892      const double w57 = 0.0001550631900643071218*m_dx[0]*m_dx[1]*m_dx[2];      const double w23 = w13*(SQRT3 - 2);
2893      const double w58 = 0.002159751624750507693*m_dx[0]*m_dx[1]*m_dx[2];      const double w25 = w13*(-SQRT3 - 2);
2894      const double w59 = 0.03008145955644280058*m_dx[0]*m_dx[1]*m_dx[2];      const double w7 = w13*(-4*SQRT3 + 7);
2895      const double w60 = 0.000011133036149792012194*m_dx[0]*m_dx[1]*m_dx[2];      const double w19 = w13*(4*SQRT3 + 7);
2896      const double w61 = -0.077751058491018276948*m_dx[1]*m_dx[2];      const double w22 = -m_dx[0]*m_dx[2]/(288*m_dx[1]);
2897      const double w62 = -0.077751058491018276948*m_dx[0]*m_dx[2];      const double w3 = w22*(SQRT3 - 2);
2898      const double w63 = -0.077751058491018276948*m_dx[0]*m_dx[1];      const double w9 = w22*(-SQRT3 - 2);
2899      const double w64 = -0.020833333333333333333*m_dx[0]*m_dx[2];      const double w24 = w22*(4*SQRT3 + 7);
2900      const double w65 = -0.020833333333333333333*m_dx[0]*m_dx[1];      const double w26 = w22*(-4*SQRT3 + 7);
2901      const double w66 = -0.020833333333333333333*m_dx[1]*m_dx[2];      const double w27 = -m_dx[1]*m_dx[2]/(288*m_dx[0]);
2902      const double w67 = -0.0055822748423150563848*m_dx[0]*m_dx[1];      const double w0 = w27*(SQRT3 - 2);
2903      const double w68 = -0.0055822748423150563848*m_dx[0]*m_dx[2];      const double w14 = w27*(-SQRT3 - 2);
2904      const double w69 = -0.0055822748423150563848*m_dx[1]*m_dx[2];      const double w28 = w27*(-4*SQRT3 + 7);
2905      const double w70 = 0.061320326520293008568*m_dx[0]*m_dx[1]*m_dx[2];      const double w29 = w27*(4*SQRT3 + 7);
     const double w71 = 0.01643073197072526838*m_dx[0]*m_dx[1]*m_dx[2];  
     const double w72 = 0.004402601362608064953*m_dx[0]*m_dx[1]*m_dx[2];  
     const double w73 = 0.0011796734797069914318*m_dx[0]*m_dx[1]*m_dx[2];  
     /* GENERATOR SNIP_PDE_SINGLE_PRE BOTTOM */  
2906    
2907      rhs.requireWrite();      rhs.requireWrite();
2908  #pragma omp parallel  #pragma omp parallel
# Line 2884  void Brick::assemblePDESingle(Paso_Syste Line 2917  void Brick::assemblePDESingle(Paso_Syste
2917                          vector<double> EM_S(8*8, 0);                          vector<double> EM_S(8*8, 0);
2918                          vector<double> EM_F(8, 0);                          vector<double> EM_F(8, 0);
2919                          const index_t e = k0 + m_NE[0]*k1 + m_NE[0]*m_NE[1]*k2;                          const index_t e = k0 + m_NE[0]*k1 + m_NE[0]*m_NE[1]*k2;
                         /* GENERATOR SNIP_PDE_SINGLE TOP */  
2920                          ///////////////                          ///////////////
2921                          // process A //                          // process A //
2922                          ///////////////                          ///////////////
# Line 3539  void Brick::assemblePDESingle(Paso_Syste Line 3571  void Brick::assemblePDESingle(Paso_Syste
3571                                  EM_S[INDEX2(7,6,8)]+=tmp100 + tmp156 + tmp157 + tmp161 + tmp201 + tmp204 + tmp205 + tmp207 + tmp208 + tmp209 + tmp211 + tmp247 + tmp248 + tmp249 + tmp250 + tmp251 + tmp252 + tmp60 + tmp65 + tmp88;                                  EM_S[INDEX2(7,6,8)]+=tmp100 + tmp156 + tmp157 + tmp161 + tmp201 + tmp204 + tmp205 + tmp207 + tmp208 + tmp209 + tmp211 + tmp247 + tmp248 + tmp249 + tmp250 + tmp251 + tmp252 + tmp60 + tmp65 + tmp88;
3572                                  EM_S[INDEX2(7,7,8)]+=tmp118 + tmp121 + tmp214 + tmp226 + tmp228 + tmp271 + tmp273 + tmp289 + tmp303 + tmp304 + tmp305 + tmp306 + tmp307 + tmp308 + tmp309 + tmp310 + tmp311 + tmp312 + tmp313 + tmp314 + tmp315 + tmp316 + tmp317 + tmp318;                                  EM_S[INDEX2(7,7,8)]+=tmp118 + tmp121 + tmp214 + tmp226 + tmp228 + tmp271 + tmp273 + tmp289 + tmp303 + tmp304 + tmp305 + tmp306 + tmp307 + tmp308 + tmp309 + tmp310 + tmp311 + tmp312 + tmp313 + tmp314 + tmp315 + tmp316 + tmp317 + tmp318;
3573                              } else { // constant data                              } else { // constant data
3574                                  const double A_00 = A_p[INDEX2(0,0,3)];                                  const double Aw00 = 8*A_p[INDEX2(0,0,3)]*w27;
3575                                  const double A_01 = A_p[INDEX2(0,1,3)];                                  const double Aw01 = 12*A_p[INDEX2(0,1,3)]*w8;
3576                                  const double A_02 = A_p[INDEX2(0,2,3)];                                  const double Aw02 = 12*A_p[INDEX2(0,2,3)]*w11;
3577                                  const double A_10 = A_p[INDEX2(1,0,3)];                                  const double Aw10 = 12*A_p[INDEX2(1,0,3)]*w8;
3578                                  const double A_11 = A_p[INDEX2(1,1,3)];                                  const double Aw11 = 8*A_p[INDEX2(1,1,3)]*w22;
3579                                  const double A_12 = A_p[INDEX2(1,2,3)];                                  const double Aw12 = 12*A_p[INDEX2(1,2,3)]*w10;
3580                                  const double A_20 = A_p[INDEX2(2,0,3)];                                  const double Aw20 = 12*A_p[INDEX2(2,0,3)]*w11;
3581                                  const double A_21 = A_p[INDEX2(2,1,3)];                                  const double Aw21 = 12*A_p[INDEX2(2,1,3)]*w10;
3582                                  const double A_22 = A_p[INDEX2(2,2,3)];                                  const double Aw22 = 8*A_p[INDEX2(2,2,3)]*w13;
3583                                  const double tmp0 = 24*w11*(-A_02 + A_20);                                  const double tmp0 = Aw01 + Aw10;
3584                                  const double tmp1 = 24*w10*(A_12 - A_21);                                  const double tmp1 = Aw01 - Aw10;
3585                                  const double tmp2 = 12*w8*(A_01 + A_10);                                  const double tmp2 = -Aw01 - Aw10;
3586                                  const double tmp3 = 12*w11*(-A_02 + A_20);                                  const double tmp3 = -Aw01 + Aw10;
3587                                  const double tmp4 = 12*w10*(A_12 - A_21);                                  const double tmp4 = Aw02 + Aw20;
3588                                  const double tmp5 = 24*w8*(-A_01 - A_10);                                  const double tmp5 = Aw02 - Aw20;
3589                                  const double tmp6 = 12*w11*(-A_02 - A_20);                                  const double tmp6 = -Aw02 - Aw20;
3590                                  const double tmp7 = 24*w10*(-A_12 + A_21);                                  const double tmp7 = -Aw02 + Aw20;
3591                                  const double tmp8 = 24*w8*(A_01 - A_10);                                  const double tmp8 = Aw12 + Aw21;
3592                                  const double tmp9 = 24*w11*(A_02 - A_20);                                  const double tmp9 = Aw12 - Aw21;
3593                                  const double tmp10 = 12*w10*(A_12 + A_21);                                  const double tmp10 = -Aw12 - Aw21;
3594                                  const double tmp11 = 24*w8*(-A_01 + A_10);                                  const double tmp11 = -Aw12 + Aw21;
3595                                  const double tmp12 = 12*w8*(-A_01 - A_10);                                  EM_S[INDEX2(0,0,8)]+=-4*Aw00 - 4*Aw11 - 4*Aw22 + 2*tmp0 + 2*tmp4 + 2*tmp10;
3596                                  const double tmp13 = 12*w11*(A_02 - A_20);                                  EM_S[INDEX2(0,1,8)]+= 4*Aw00 - 2*Aw11 - 2*Aw22 + tmp10 + 2*tmp1 + 2*tmp5;
3597                                  const double tmp14 = 24*w8*(A_01 + A_10);                                  EM_S[INDEX2(0,2,8)]+=-2*Aw00 + 4*Aw11 - 2*Aw22 + 2*tmp3 + tmp4 + 2*tmp11;
3598                                  const double tmp15 = 12*w11*(A_02 + A_20);                                  EM_S[INDEX2(0,3,8)]+= 2*Aw00 + 2*Aw11 -   Aw22 + tmp5 + tmp11 + 2*tmp2;
3599                                  const double tmp16 = 12*w10*(-A_12 - A_21);                                  EM_S[INDEX2(0,4,8)]+=-2*Aw00 - 2*Aw11 + 4*Aw22 + 2*tmp7 + 2*tmp9 + tmp0;
3600                                  const double tmp17 = 12*w10*(-A_12 + A_21);                                  EM_S[INDEX2(0,5,8)]+= 2*Aw00 -   Aw11 + 2*Aw22 + 2*tmp6 + tmp1 + tmp9;
3601                                  const double tmp18 = 24*w11*(-A_02 - A_20);                                  EM_S[INDEX2(0,6,8)]+=  -Aw00 + 2*Aw11 + 2*Aw22 + 2*tmp8 + tmp3 + tmp7;
3602                                  const double tmp19 = 12*w8*(A_01 - A_10);                                  EM_S[INDEX2(0,7,8)]+=   Aw00 +   Aw11 +   Aw22 + tmp8 + tmp2 + tmp6;
3603                                  const double tmp20 = 24*w10*(A_12 + A_21);                                  EM_S[INDEX2(1,0,8)]+= 4*Aw00 - 2*Aw11 - 2*Aw22 + 2*tmp7 + 2*tmp3 + tmp10;
3604                                  const double tmp21 = 24*w11*(A_02 + A_20);                                  EM_S[INDEX2(1,1,8)]+=-4*Aw00 - 4*Aw11 - 4*Aw22 + 2*tmp6 + 2*tmp10 + 2*tmp2;
3605                                  const double tmp22 = 12*w8*(-A_01 + A_10);                                  EM_S[INDEX2(1,2,8)]+= 2*Aw00 + 2*Aw11 -   Aw22 + 2*tmp0 + tmp11 + tmp7;
3606                                  const double tmp23 = 24*w10*(-A_12 - A_21);                                  EM_S[INDEX2(1,3,8)]+=-2*Aw00 + 4*Aw11 - 2*Aw22 + tmp6 + 2*tmp11 + 2*tmp1;
3607                                  EM_S[INDEX2(0,0,8)]+=-32*A_00*w27 - 32*A_11*w22 - 32*A_22*w13 + tmp14 + tmp21 + tmp23;                                  EM_S[INDEX2(1,4,8)]+= 2*Aw00 -   Aw11 + 2*Aw22 + 2*tmp4 + tmp3 + tmp9;
3608                                  EM_S[INDEX2(0,1,8)]+=32*A_00*w27 - 16*A_11*w22 - 16*A_22*w13 + tmp16 + tmp8 + tmp9;                                  EM_S[INDEX2(1,5,8)]+=-2*Aw00 - 2*Aw11 + 4*Aw22 + 2*tmp9 + tmp2 + 2*tmp5;
3609                                  EM_S[INDEX2(0,2,8)]+=-16*A_00*w27 + 32*A_11*w22 - 16*A_22*w13 + tmp11 + tmp15 + tmp7;                                  EM_S[INDEX2(1,6,8)]+=   Aw00 +   Aw11 +   Aw22 + tmp8 + tmp4 + tmp0;
3610                                  EM_S[INDEX2(0,3,8)]+=16*A_00*w27 + 16*A_11*w22 - 8*A_22*w13 + tmp13 + tmp17 + tmp5;                                  EM_S[INDEX2(1,7,8)]+=  -Aw00 + 2*Aw11 + 2*Aw22 + tmp5 + tmp1 + 2*tmp8;
3611                                  EM_S[INDEX2(0,4,8)]+=-16*A_00*w27 - 16*A_11*w22 + 32*A_22*w13 + tmp0 + tmp1 + tmp2;                                  EM_S[INDEX2(2,0,8)]+=-2*Aw00 + 4*Aw11 - 2*Aw22 + 2*tmp9 + tmp4 + 2*tmp1;
3612                                  EM_S[INDEX2(0,5,8)]+=16*A_00*w27 - 8*A_11*w22 + 16*A_22*w13 + tmp18 + tmp19 + tmp4;                                  EM_S[INDEX2(2,1,8)]+= 2*Aw00 + 2*Aw11 -   Aw22 + tmp5 + 2*tmp0 + tmp9;
3613                                  EM_S[INDEX2(0,6,8)]+=-8*A_00*w27 + 16*A_11*w22 + 16*A_22*w13 + tmp20 + tmp22 + tmp3;                                  EM_S[INDEX2(2,2,8)]+=-4*Aw00 - 4*Aw11 - 4*Aw22 + 2*tmp8 + 2*tmp4 + 2*tmp2;
3614                                  EM_S[INDEX2(0,7,8)]+=8*A_00*w27 + 8*A_11*w22 + 8*A_22*w13 + tmp10 + tmp12 + tmp6;                                  EM_S[INDEX2(2,3,8)]+= 4*Aw00 - 2*Aw11 - 2*Aw22 + tmp8 + 2*tmp3 + 2*tmp5;
3615                                  EM_S[INDEX2(1,0,8)]+=32*A_00*w27 - 16*A_11*w22 - 16*A_22*w13 + tmp0 + tmp11 + tmp16;                                  EM_S[INDEX2(2,4,8)]+=  -Aw00 + 2*Aw11 + 2*Aw22 + tmp1 + 2*tmp10 + tmp7;
3616                                  EM_S[INDEX2(1,1,8)]+=-32*A_00*w27 - 32*A_11*w22 - 32*A_22*w13 + tmp18 + tmp23 + tmp5;                                  EM_S[INDEX2(2,5,8)]+=   Aw00 +   Aw11 +   Aw22 + tmp10 + tmp0 + tmp6;
3617                                  EM_S[INDEX2(1,2,8)]+=16*A_00*w27 + 16*A_11*w22 - 8*A_22*w13 + tmp14 + tmp17 + tmp3;                                  EM_S[INDEX2(2,6,8)]+=-2*Aw00 - 2*Aw11 + 4*Aw22 + 2*tmp7 + tmp2 + 2*tmp11;
3618                                  EM_S[INDEX2(1,3,8)]+=-16*A_00*w27 + 32*A_11*w22 - 16*A_22*w13 + tmp6 + tmp7 + tmp8;                                  EM_S[INDEX2(2,7,8)]+= 2*Aw00 -   Aw11 + 2*Aw22 + tmp11 + 2*tmp6 + tmp3;
3619                                  EM_S[INDEX2(1,4,8)]+=16*A_00*w27 - 8*A_11*w22 + 16*A_22*w13 + tmp21 + tmp22 + tmp4;                                  EM_S[INDEX2(3,0,8)]+= 2*Aw00 + 2*Aw11 -   Aw22 + tmp7 + tmp9 + 2*tmp2;
3620                                  EM_S[INDEX2(1,5,8)]+=-16*A_00*w27 - 16*A_11*w22 + 32*A_22*w13 + tmp1 + tmp12 + tmp9;                                  EM_S[INDEX2(3,1,8)]+=-2*Aw00 + 4*Aw11 - 2*Aw22 + 2*tmp9 + 2*tmp3 + tmp6;
3621                                  EM_S[INDEX2(1,6,8)]+=8*A_00*w27 + 8*A_11*w22 + 8*A_22*w13 + tmp10 + tmp15 + tmp2;                                  EM_S[INDEX2(3,2,8)]+= 4*Aw00 - 2*Aw11 - 2*Aw22 + 2*tmp7 + tmp8 + 2*tmp1;
3622                                  EM_S[INDEX2(1,7,8)]+=-8*A_00*w27 + 16*A_11*w22 + 16*A_22*w13 + tmp13 + tmp19 + tmp20;                                  EM_S[INDEX2(3,3,8)]+=-4*Aw00 - 4*Aw11 - 4*Aw22 + 2*tmp0 + 2*tmp6 + 2*tmp8;
3623                                  EM_S[INDEX2(2,0,8)]+=-16*A_00*w27 + 32*A_11*w22 - 16*A_22*w13 + tmp1 + tmp15 + tmp8;                                  EM_S[INDEX2(3,4,8)]+=   Aw00 +   Aw11 +   Aw22 + tmp2 + tmp4 + tmp10;
3624                                  EM_S[INDEX2(2,1,8)]+=16*A_00*w27 + 16*A_11*w22 - 8*A_22*w13 + tmp13 + tmp14 + tmp4;                                  EM_S[INDEX2(3,5,8)]+=  -Aw00 + 2*Aw11 + 2*Aw22 + tmp5 + tmp3 + 2*tmp10;
3625                                  EM_S[INDEX2(2,2,8)]+=-32*A_00*w27 - 32*A_11*w22 - 32*A_22*w13 + tmp20 + tmp21 + tmp5;                                  EM_S[INDEX2(3,6,8)]+= 2*Aw00 -   Aw11 + 2*Aw22 + tmp11 + tmp1 + 2*tmp4;
3626                                  EM_S[INDEX2(2,3,8)]+=32*A_00*w27 - 16*A_11*w22 - 16*A_22*w13 + tmp10 + tmp11 + tmp9;                                  EM_S[INDEX2(3,7,8)]+=-2*Aw00 - 2*Aw11 + 4*Aw22 + tmp0 + 2*tmp11 + 2*tmp5;
3627                                  EM_S[INDEX2(2,4,8)]+=-8*A_00*w27 + 16*A_11*w22 + 16*A_22*w13 + tmp19 + tmp23 + tmp3;                                  EM_S[INDEX2(4,0,8)]+=-2*Aw00 - 2*Aw11 + 4*Aw22 + tmp0 + 2*tmp11 + 2*tmp5;
3628                                  EM_S[INDEX2(2,5,8)]+=8*A_00*w27 + 8*A_11*w22 + 8*A_22*w13 + tmp16 + tmp2 + tmp6;                                  EM_S[INDEX2(4,1,8)]+= 2*Aw00 -   Aw11 + 2*Aw22 + tmp11 + tmp1 + 2*tmp4;
3629                                  EM_S[INDEX2(2,6,8)]+=-16*A_00*w27 - 16*A_11*w22 + 32*A_22*w13 + tmp0 + tmp12 + tmp7;                                  EM_S[INDEX2(4,2,8)]+=  -Aw00 + 2*Aw11 + 2*Aw22 + tmp5 + tmp3 + 2*tmp10;
3630                                  EM_S[INDEX2(2,7,8)]+=16*A_00*w27 - 8*A_11*w22 + 16*A_22*w13 + tmp17 + tmp18 + tmp22;                                  EM_S[INDEX2(4,3,8)]+=   Aw00 +   Aw11 +   Aw22 + tmp2 + tmp4 + tmp10;
3631                                  EM_S[INDEX2(3,0,8)]+=16*A_00*w27 + 16*A_11*w22 - 8*A_22*w13 + tmp3 + tmp4 + tmp5;                                  EM_S[INDEX2(4,4,8)]+=-4*Aw00 - 4*Aw11 - 4*Aw22 + 2*tmp0 + 2*tmp6 + 2*tmp8;
3632                                  EM_S[INDEX2(3,1,8)]+=-16*A_00*w27 + 32*A_11*w22 - 16*A_22*w13 + tmp1 + tmp11 + tmp6;                                  EM_S[INDEX2(4,5,8)]+= 4*Aw00 - 2*Aw11 - 2*Aw22 + 2*tmp7 + tmp8 + 2*tmp1;
3633                                  EM_S[INDEX2(3,2,8)]+=32*A_00*w27 - 16*A_11*w22 - 16*A_22*w13 + tmp0 + tmp10 + tmp8;                                  EM_S[INDEX2(4,6,8)]+=-2*Aw00 + 4*Aw11 - 2*Aw22 + 2*tmp9 + 2*tmp3 + tmp6;
3634                                  EM_S[INDEX2(3,3,8)]+=-32*A_00*w27 - 32*A_11*w22 - 32*A_22*w13 + tmp14 + tmp18 + tmp20;                                  EM_S[INDEX2(4,7,8)]+= 2*Aw00 + 2*Aw11 -   Aw22 + tmp7 + tmp9 + 2*tmp2;
3635                                  EM_S[INDEX2(3,4,8)]+=8*A_00*w27 + 8*A_11*w22 + 8*A_22*w13 + tmp12 + tmp15 + tmp16;                                  EM_S[INDEX2(5,0,8)]+= 2*Aw00 -   Aw11 + 2*Aw22 + tmp11 + 2*tmp6 + tmp3;
3636                                  EM_S[INDEX2(3,5,8)]+=-8*A_00*w27 + 16*A_11*w22 + 16*A_22*w13 + tmp13 + tmp22 + tmp23;                                  EM_S[INDEX2(5,1,8)]+=-2*Aw00 - 2*Aw11 + 4*Aw22 + 2*tmp7 + tmp2 + 2*tmp11;
3637                                  EM_S[INDEX2(3,6,8)]+=16*A_00*w27 - 8*A_11*w22 + 16*A_22*w13 + tmp17 + tmp19 + tmp21;                                  EM_S[INDEX2(5,2,8)]+=   Aw00 +   Aw11 +   Aw22 + tmp10 + tmp0 + tmp6;
3638                                  EM_S[INDEX2(3,7,8)]+=-16*A_00*w27 - 16*A_11*w22 + 32*A_22*w13 + tmp2 + tmp7 + tmp9;                                  EM_S[INDEX2(5,3,8)]+=  -Aw00 + 2*Aw11 + 2*Aw22 + tmp1 + 2*tmp10 + tmp7;
3639                                  EM_S[INDEX2(4,0,8)]+=-16*A_00*w27 - 16*A_11*w22 + 32*A_22*w13 + tmp2 + tmp7 + tmp9;                                  EM_S[INDEX2(5,4,8)]+= 4*Aw00 - 2*Aw11 - 2*Aw22 + tmp8 + 2*tmp3 + 2*tmp5;
3640                                  EM_S[INDEX2(4,1,8)]+=16*A_00*w27 - 8*A_11*w22 + 16*A_22*w13 + tmp17 + tmp19 + tmp21;                                  EM_S[INDEX2(5,5,8)]+=-4*Aw00 - 4*Aw11 - 4*Aw22 + 2*tmp8 + 2*tmp4 + 2*tmp2;
3641                                  EM_S[INDEX2(4,2,8)]+=-8*A_00*w27 + 16*A_11*w22 + 16*A_22*w13 + tmp13 + tmp22 + tmp23;                                  EM_S[INDEX2(5,6,8)]+= 2*Aw00 + 2*Aw11 -   Aw22 + tmp5 + 2*tmp0 + tmp9;
3642                                  EM_S[INDEX2(4,3,8)]+=8*A_00*w27 + 8*A_11*w22 + 8*A_22*w13 + tmp12 + tmp15 + tmp16;                                  EM_S[INDEX2(5,7,8)]+=-2*Aw00 + 4*Aw11 - 2*Aw22 + 2*tmp9 + tmp4 + 2*tmp1;
3643                                  EM_S[INDEX2(4,4,8)]+=-32*A_00*w27 - 32*A_11*w22 - 32*A_22*w13 + tmp14 + tmp18 + tmp20;                                  EM_S[INDEX2(6,0,8)]+=  -Aw00 + 2*Aw11 + 2*Aw22 + tmp5 + tmp1 + 2*tmp8;
3644                                  EM_S[INDEX2(4,5,8)]+=32*A_00*w27 - 16*A_11*w22 - 16*A_22*w13 + tmp0 + tmp10 + tmp8;                                  EM_S[INDEX2(6,1,8)]+=   Aw00 +   Aw11 +   Aw22 + tmp8 + tmp4 + tmp0;
3645                                  EM_S[INDEX2(4,6,8)]+=-16*A_00*w27 + 32*A_11*w22 - 16*A_22*w13 + tmp1 + tmp11 + tmp6;                                  EM_S[INDEX2(6,2,8)]+=-2*Aw00 - 2*Aw11 + 4*Aw22 + 2*tmp9 + tmp2 + 2*tmp5;
3646                                  EM_S[INDEX2(4,7,8)]+=16*A_00*w27 + 16*A_11*w22 - 8*A_22*w13 + tmp3 + tmp4 + tmp5;                                  EM_S[INDEX2(6,3,8)]+= 2*Aw00 -   Aw11 + 2*Aw22 + 2*tmp4 + tmp3 + tmp9;
3647                                  EM_S[INDEX2(5,0,8)]+=16*A_00*w27 - 8*A_11*w22 + 16*A_22*w13 + tmp17 + tmp18 + tmp22;                                  EM_S[INDEX2(6,4,8)]+=-2*Aw00 + 4*Aw11 - 2*Aw22 + tmp6 + 2*tmp11 + 2*tmp1;
3648                                  EM_S[INDEX2(5,1,8)]+=-16*A_00*w27 - 16*A_11*w22 + 32*A_22*w13 + tmp0 + tmp12 + tmp7;                                  EM_S[INDEX2(6,5,8)]+= 2*Aw00 + 2*Aw11 -   Aw22 + 2*tmp0 + tmp11 + tmp7;
3649                                  EM_S[INDEX2(5,2,8)]+=8*A_00*w27 + 8*A_11*w22 + 8*A_22*w13 + tmp16 + tmp2 + tmp6;                                  EM_S[INDEX2(6,6,8)]+=-4*Aw00 - 4*Aw11 - 4*Aw22 + 2*tmp6 + 2*tmp10 + 2*tmp2;
3650                                  EM_S[INDEX2(5,3,8)]+=-8*A_00*w27 + 16*A_11*w22 + 16*A_22*w13 + tmp19 + tmp23 + tmp3;                                  EM_S[INDEX2(6,7,8)]+= 4*Aw00 - 2*Aw11 - 2*Aw22 + 2*tmp7 + 2*tmp3 + tmp10;
3651                                  EM_S[INDEX2(5,4,8)]+=32*A_00*w27 - 16*A_11*w22 - 16*A_22*w13 + tmp10 + tmp11 + tmp9;                                  EM_S[INDEX2(7,0,8)]+=   Aw00 +   Aw11 +   Aw22 + tmp8 + tmp2 + tmp6;
3652                                  EM_S[INDEX2(5,5,8)]+=-32*A_00*w27 - 32*A_11*w22 - 32*A_22*w13 + tmp20 + tmp21 + tmp5;                                  EM_S[INDEX2(7,1,8)]+=  -Aw00 + 2*Aw11 + 2*Aw22 + 2*tmp8 + tmp3 + tmp7;
3653                                  EM_S[INDEX2(5,6,8)]+=16*A_00*w27 + 16*A_11*w22 - 8*A_22*w13 + tmp13 + tmp14 + tmp4;                                  EM_S[INDEX2(7,2,8)]+= 2*Aw00 -   Aw11 + 2*Aw22 + 2*tmp6 + tmp1 + tmp9;
3654                                  EM_S[INDEX2(5,7,8)]+=-16*A_00*w27 + 32*A_11*w22 - 16*A_22*w13 + tmp1 + tmp15 + tmp8;                                  EM_S[INDEX2(7,3,8)]+=-2*Aw00 - 2*Aw11 + 4*Aw22 + 2*tmp7 + 2*tmp9 + tmp0;
3655                                  EM_S[INDEX2(6,0,8)]+=-8*A_00*w27 + 16*A_11*w22 + 16*A_22*w13 + tmp13 + tmp19 + tmp20;                                  EM_S[INDEX2(7,4,8)]+= 2*Aw00 + 2*Aw11 -   Aw22 + tmp5 + tmp11 + 2*tmp2;
3656                                  EM_S[INDEX2(6,1,8)]+=8*A_00*w27 + 8*A_11*w22 + 8*A_22*w13 + tmp10 + tmp15 + tmp2;                                  EM_S[INDEX2(7,5,8)]+=-2*Aw00 + 4*Aw11 - 2*Aw22 + 2*tmp3 + tmp4 + 2*tmp11;
3657                                  EM_S[INDEX2(6,2,8)]+=-16*A_00*w27 - 16*A_11*w22 + 32*A_22*w13 + tmp1 + tmp12 + tmp9;                                  EM_S[INDEX2(7,6,8)]+= 4*Aw00 - 2*Aw11 - 2*Aw22 + tmp10 + 2*tmp1 + 2*tmp5;
3658                                  EM_S[INDEX2(6,3,8)]+=16*A_00*w27 - 8*A_11*w22 + 16*A_22*w13 + tmp21 + tmp22 + tmp4;                                  EM_S[INDEX2(7,7,8)]+=-4*Aw00 - 4*Aw11 - 4*Aw22 + 2*tmp0 + 2*tmp4 + 2*tmp10;
                                 EM_S[INDEX2(6,4,8)]+=-16*A_00*w27 + 32*A_11*w22 - 16*A_22*w13 + tmp6 + tmp7 + tmp8;  
                                 EM_S[INDEX2(6,5,8)]+=16*A_00*w27 + 16*A_11*w22 - 8*A_22*w13 + tmp14 + tmp17 + tmp3;  
                                 EM_S[INDEX2(6,6,8)]+=-32*A_00*w27 - 32*A_11*w22 - 32*A_22*w13 + tmp18 + tmp23 + tmp5;  
                                 EM_S[INDEX2(6,7,8)]+=32*A_00*w27 - 16*A_11*w22 - 16*A_22*w13 + tmp0 + tmp11 + tmp16;  
                                 EM_S[INDEX2(7,0,8)]+=8*A_00*w27 + 8*A_11*w22 + 8*A_22*w13 + tmp10 + tmp12 + tmp6;  
                                 EM_S[INDEX2(7,1,8)]+=-8*A_00*w27 + 16*A_11*w22 + 16*A_22*w13 + tmp20 + tmp22 + tmp3;  
                                 EM_S[INDEX2(7,2,8)]+=16*A_00*w27 - 8*A_11*w22 + 16*A_22*w13 + tmp18 + tmp19 + tmp4;  
                                 EM_S[INDEX2(7,3,8)]+=-16*A_00*w27 - 16*A_11*w22 + 32*A_22*w13 + tmp0 + tmp1 + tmp2;  
                                 EM_S[INDEX2(7,4,8)]+=16*A_00*w27 + 16*A_11*w22 - 8*A_22*w13 + tmp13 + tmp17 + tmp5;  
                                 EM_S[INDEX2(7,5,8)]+=-16*A_00*w27 + 32*A_11*w22 - 16*A_22*w13 + tmp11 + tmp15 + tmp7;  
                                 EM_S[INDEX2(7,6,8)]+=32*A_00*w27 - 16*A_11*w22 - 16*A_22*w13 + tmp16 + tmp8 + tmp9;  
                                 EM_S[INDEX2(7,7,8)]+=-32*A_00*w27 - 32*A_11*w22 - 32*A_22*w13 + tmp14 + tmp21 + tmp23;  
3659                              }                              }
3660                          }                          }
3661                          ///////////////                          ///////////////
# Line 3998  void Brick::assemblePDESingle(Paso_Syste Line 4018  void Brick::assemblePDESingle(Paso_Syste
4018                                  EM_S[INDEX2(7,6,8)]+=B_0_0*w30 + B_0_1*w46 + B_0_6*w47 + B_0_7*w38 + tmp122 + tmp123 + tmp124 + tmp125 + tmp126 + tmp127 + tmp130 + tmp131 + tmp148 + tmp149;                                  EM_S[INDEX2(7,6,8)]+=B_0_0*w30 + B_0_1*w46 + B_0_6*w47 + B_0_7*w38 + tmp122 + tmp123 + tmp124 + tmp125 + tmp126 + tmp127 + tmp130 + tmp131 + tmp148 + tmp149;
4019                                  EM_S[INDEX2(7,7,8)]+=B_0_0*w46 + B_0_1*w30 + B_0_6*w38 + B_0_7*w47 - B_1_0*w45 + B_1_2*w31 + B_1_5*w39 - B_1_7*w44 + B_2_0*w41 + B_2_3*w43 + B_2_4*w32 + B_2_7*w40 + tmp150 + tmp151 + tmp166 + tmp167 + tmp168 + tmp169;                                  EM_S[INDEX2(7,7,8)]+=B_0_0*w46 + B_0_1*w30 + B_0_6*w38 + B_0_7*w47 - B_1_0*w45 + B_1_2*w31 + B_1_5*w39 - B_1_7*w44 + B_2_0*w41 + B_2_3*w43 + B_2_4*w32 + B_2_7*w40 + tmp150 + tmp151 + tmp166 + tmp167 + tmp168 + tmp169;
4020                              } else { // constant data                              } else { // constant data
4021                                  const double B_0 = B_p[0];                                  const double wB0 = B_p[0]*w53;
4022                                  const double B_1 = B_p[1];                                  const double wB1 = B_p[1]*w51;
4023                                  const double B_2 = B_p[2];                                  const double wB2 = B_p[2]*w50;
4024                                  EM_S[INDEX2(0,0,8)]+=4*B_0*w53 + B_1*w51 - B_2*w50;                                  EM_S[INDEX2(0,0,8)]+= 4*wB0 + 4*wB1 - 4*wB2;
4025                                  EM_S[INDEX2(0,1,8)]+=4*B_0*w53 - B_1*w49 + B_2*w52;                                  EM_S[INDEX2(0,1,8)]+= 4*wB0 + 2*wB1 - 2*wB2;
4026                                  EM_S[INDEX2(0,2,8)]+=-B_0*w48 + B_1*w51 + B_2*w52;                                  EM_S[INDEX2(0,2,8)]+= 2*wB0 + 4*wB1 - 2*wB2;
4027                                  EM_S[INDEX2(0,3,8)]+=-B_0*w48 - B_1*w49 + B_2*w52/2;                                  EM_S[INDEX2(0,3,8)]+= 2*wB0 + 2*wB1 - wB2;
4028                                  EM_S[INDEX2(0,4,8)]+=-B_0*w48 - B_1*w49 - B_2*w50;                                  EM_S[INDEX2(0,4,8)]+= 2*wB0 + 2*wB1 - 4*wB2;
4029                                  EM_S[INDEX2(0,5,8)]+=-B_0*w48 + B_1*w51/4 + B_2*w52;                                  EM_S[INDEX2(0,5,8)]+= 2*wB0 +   wB1 - 2*wB2;
4030                                  EM_S[INDEX2(0,6,8)]+=B_0*w53 - B_1*w49 + B_2*w52;                                  EM_S[INDEX2(0,6,8)]+=   wB0 + 2*wB1 - 2*wB2;
4031                                  EM_S[INDEX2(0,7,8)]+=B_0*w53 + B_1*w51/4 + B_2*w52/2;                                  EM_S[INDEX2(0,7,8)]+=   wB0 +   wB1 - wB2;
4032                                  EM_S[INDEX2(1,0,8)]+=-4*B_0*w53 - B_1*w49 + B_2*w52;                                  EM_S[INDEX2(1,0,8)]+=-4*wB0 + 2*wB1 - 2*wB2;
4033                                  EM_S[INDEX2(1,1,8)]+=-4*B_0*w53 + B_1*w51 - B_2*w50;                                  EM_S[INDEX2(1,1,8)]+=-4*wB0 + 4*wB1 - 4*wB2;
4034                                  EM_S[INDEX2(1,2,8)]+=B_0*w48 - B_1*w49 + B_2*w52/2;                                  EM_S[INDEX2(1,2,8)]+=-2*wB0 + 2*wB1 - wB2;
4035                                  EM_S[INDEX2(1,3,8)]+=B_0*w48 + B_1*w51 + B_2*w52;                                  EM_S[INDEX2(1,3,8)]+=-2*wB0 + 4*wB1 - 2*wB2;
4036                                  EM_S[INDEX2(1,4,8)]+=B_0*w48 + B_1*w51/4 + B_2*w52;                                  EM_S[INDEX2(1,4,8)]+=-2*wB0 +   wB1 - 2*wB2;
4037                                  EM_S[INDEX2(1,5,8)]+=B_0*w48 - B_1*w49 - B_2*w50;                                  EM_S[INDEX2(1,5,8)]+=-2*wB0 + 2*wB1 - 4*wB2;
4038                                  EM_S[INDEX2(1,6,8)]+=-B_0*w53 + B_1*w51/4 + B_2*w52/2;                                  EM_S[INDEX2(1,6,8)]+=  -wB0 +   wB1 - wB2;
4039                                  EM_S[INDEX2(1,7,8)]+=-B_0*w53 - B_1*w49 + B_2*w52;                                  EM_S[INDEX2(1,7,8)]+=  -wB0 + 2*wB1 - 2*wB2;
4040                                  EM_S[INDEX2(2,0,8)]+=-B_0*w48 - B_1*w51 + B_2*w52;                                  EM_S[INDEX2(2,0,8)]+= 2*wB0 - 4*wB1 - 2*wB2;
4041                                  EM_S[INDEX2(2,1,8)]+=-B_0*w48 + B_1*w49 + B_2*w52/2;                                  EM_S[INDEX2(2,1,8)]+= 2*wB0 - 2*wB1 - wB2;
4042                                  EM_S[INDEX2(2,2,8)]+=4*B_0*w53 - B_1*w51 - B_2*w50;                                  EM_S[INDEX2(2,2,8)]+= 4*wB0 - 4*wB1 - 4*wB2;
4043                                  EM_S[INDEX2(2,3,8)]+=4*B_0*w53 + B_1*w49 + B_2*w52;                                  EM_S[INDEX2(2,3,8)]+= 4*wB0 - 2*wB1 - 2*wB2;
4044                                  EM_S[INDEX2(2,4,8)]+=B_0*w53 + B_1*w49 + B_2*w52;                                  EM_S[INDEX2(2,4,8)]+=   wB0 - 2*wB1 - 2*wB2;
4045                                  EM_S[INDEX2(2,5,8)]+=B_0*w53 - B_1*w51/4 + B_2*w52/2;                                  EM_S[INDEX2(2,5,8)]+=   wB0 -   wB1 - wB2;
4046                                  EM_S[INDEX2(2,6,8)]+=-B_0*w48 + B_1*w49 - B_2*w50;                                  EM_S[INDEX2(2,6,8)]+= 2*wB0 - 2*wB1 - 4*wB2;
4047                                  EM_S[INDEX2(2,7,8)]+=-B_0*w48 - B_1*w51/4 + B_2*w52;                                  EM_S[INDEX2(2,7,8)]+= 2*wB0 -   wB1 - 2*wB2;
4048                                  EM_S[INDEX2(3,0,8)]+=B_0*w48 + B_1*w49 + B_2*w52/2;                                  EM_S[INDEX2(3,0,8)]+=-2*wB0 - 2*wB1 - wB2;
4049                                  EM_S[INDEX2(3,1,8)]+=B_0*w48 - B_1*w51 + B_2*w52;                                  EM_S[INDEX2(3,1,8)]+=-2*wB0 - 4*wB1 - 2*wB2;
4050                                  EM_S[INDEX2(3,2,8)]+=-4*B_0*w53 + B_1*w49 + B_2*w52;                                  EM_S[INDEX2(3,2,8)]+=-4*wB0 - 2*wB1 - 2*wB2;
4051                                  EM_S[INDEX2(3,3,8)]+=-4*B_0*w53 - B_1*w51 - B_2*w50;                                  EM_S[INDEX2(3,3,8)]+=-4*wB0 - 4*wB1 - 4*wB2;
4052                                  EM_S[INDEX2(3,4,8)]+=-B_0*w53 - B_1*w51/4 + B_2*w52/2;                                  EM_S[INDEX2(3,4,8)]+=  -wB0 -   wB1 - wB2;
4053                                  EM_S[INDEX2(3,5,8)]+=-B_0*w53 + B_1*w49 + B_2*w52;                                  EM_S[INDEX2(3,5,8)]+=  -wB0 - 2*wB1 - 2*wB2;
4054                                  EM_S[INDEX2(3,6,8)]+=B_0*w48 - B_1*w51/4 + B_2*w52;                                  EM_S[INDEX2(3,6,8)]+=-2*wB0 -   wB1 - 2*wB2;
4055                                  EM_S[INDEX2(3,7,8)]+=B_0*w48 + B_1*w49 - B_2*w50;                                  EM_S[INDEX2(3,7,8)]+=-2*wB0 - 2*wB1 - 4*wB2;
4056                                  EM_S[INDEX2(4,0,8)]+=-B_0*w48 - B_1*w49 + B_2*w50;                                  EM_S[INDEX2(4,0,8)]+= 2*wB0 + 2*wB1 + 4*wB2;
4057                                  EM_S[INDEX2(4,1,8)]+=-B_0*w48 + B_1*w51/4 - B_2*w52;                                  EM_S[INDEX2(4,1,8)]+= 2*wB0 +   wB1 + 2*wB2;
4058                                  EM_S[INDEX2(4,2,8)]+=B_0*w53 - B_1*w49 - B_2*w52;                                  EM_S[INDEX2(4,2,8)]+=   wB0 + 2*wB1 + 2*wB2;
4059                                  EM_S[INDEX2(4,3,8)]+=B_0*w53 + B_1*w51/4 + B_2*w50/4;                                  EM_S[INDEX2(4,3,8)]+=   wB0 +   wB1 + wB2;
4060                                  EM_S[INDEX2(4,4,8)]+=4*B_0*w53 + B_1*w51 + B_2*w50;                                  EM_S[INDEX2(4,4,8)]+= 4*wB0 + 4*wB1 + 4*wB2;
4061                                  EM_S[INDEX2(4,5,8)]+=4*B_0*w53 - B_1*w49 - B_2*w52;                                  EM_S[INDEX2(4,5,8)]+= 4*wB0 + 2*wB1 + 2*wB2;
4062                                  EM_S[INDEX2(4,6,8)]+=-B_0*w48 + B_1*w51 - B_2*w52;                                  EM_S[INDEX2(4,6,8)]+= 2*wB0 + 4*wB1 + 2*wB2;
4063                                  EM_S[INDEX2(4,7,8)]+=-B_0*w48 - B_1*w49 + B_2*w50/4;                                  EM_S[INDEX2(4,7,8)]+= 2*wB0 + 2*wB1 + wB2;
4064                                  EM_S[INDEX2(5,0,8)]+=B_0*w48 + B_1*w51/4 - B_2*w52;                                  EM_S[INDEX2(5,0,8)]+=-2*wB0 +   wB1 + 2*wB2;
4065                                  EM_S[INDEX2(5,1,8)]+=B_0*w48 - B_1*w49 + B_2*w50;                                  EM_S[INDEX2(5,1,8)]+=-2*wB0 + 2*wB1 + 4*wB2;
4066                                  EM_S[INDEX2(5,2,8)]+=-B_0*w53 + B_1*w51/4 + B_2*w50/4;                                  EM_S[INDEX2(5,2,8)]+=  -wB0 +   wB1 + wB2;
4067                                  EM_S[INDEX2(5,3,8)]+=-B_0*w53 - B_1*w49 - B_2*w52;                                  EM_S[INDEX2(5,3,8)]+=  -wB0 + 2*wB1 + 2*wB2;
4068                                  EM_S[INDEX2(5,4,8)]+=2*B_0*w48 - B_1*w49 - B_2*w52;                                  EM_S[INDEX2(5,4,8)]+=-4*wB0 + 2*wB1 + 2*wB2;
4069                                  EM_S[INDEX2(5,5,8)]+=-4*B_0*w53 + B_1*w51 + B_2*w50;                                  EM_S[INDEX2(5,5,8)]+=-4*wB0 + 4*wB1 + 4*wB2;
4070                                  EM_S[INDEX2(5,6,8)]+=B_0*w48 - B_1*w49 + B_2*w50/4;                                  EM_S[INDEX2(5,6,8)]+=-2*wB0 + 2*wB1 + wB2;
4071                                  EM_S[INDEX2(5,7,8)]+=B_0*w48 + B_1*w51 - B_2*w52;                                  EM_S[INDEX2(5,7,8)]+=-2*wB0 + 4*wB1 + 2*wB2;
4072                                  EM_S[INDEX2(6,0,8)]+=B_0*w53 + B_1*w49 - B_2*w52;                                  EM_S[INDEX2(6,0,8)]+=   wB0 - 2*wB1 + 2*wB2;
4073                                  EM_S[INDEX2(6,1,8)]+=B_0*w53 - B_1*w51/4 + B_2*w50/4;                                  EM_S[INDEX2(6,1,8)]+=   wB0 -   wB1 + wB2;
4074                                  EM_S[INDEX2(6,2,8)]+=-B_0*w48 + B_1*w49 + B_2*w50;                                  EM_S[INDEX2(6,2,8)]+= 2*wB0 - 2*wB1 + 4*wB2;
4075                                  EM_S[INDEX2(6,3,8)]+=-B_0*w48 - B_1*w51/4 - B_2*w52;                                  EM_S[INDEX2(6,3,8)]+= 2*wB0 -   wB1 + 2*wB2;
4076                                  EM_S[INDEX2(6,4,8)]+=-B_0*w48 - B_1*w51 - B_2*w52;                                  EM_S[INDEX2(6,4,8)]+= 2*wB0 - 4*wB1 + 2*wB2;
4077                                  EM_S[INDEX2(6,5,8)]+=-B_0*w48 + B_1*w49 + B_2*w50/4;                                  EM_S[INDEX2(6,5,8)]+= 2*wB0 - 2*wB1 + wB2;
4078                                  EM_S[INDEX2(6,6,8)]+=4*B_0*w53 - B_1*w51 + B_2*w50;                                  EM_S[INDEX2(6,6,8)]+= 4*wB0 - 4*wB1 + 4*wB2;
4079                                  EM_S[INDEX2(6,7,8)]+=4*B_0*w53 + B_1*w49 - B_2*w52;                                  EM_S[INDEX2(6,7,8)]+= 4*wB0 - 2*wB1 + 2*wB2;
4080                                  EM_S[INDEX2(7,0,8)]+=-B_0*w53 - B_1*w51/4 + B_2*w50/4;                                  EM_S[INDEX2(7,0,8)]+=  -wB0 -   wB1 + wB2;
4081                                  EM_S[INDEX2(7,1,8)]+=-B_0*w53 + B_1*w49 - B_2*w52;                                  EM_S[INDEX2(7,1,8)]+=  -wB0 - 2*wB1 + 2*wB2;
4082                                  EM_S[INDEX2(7,2,8)]+=B_0*w48 - B_1*w51/4 - B_2*w52;                                  EM_S[INDEX2(7,2,8)]+=-2*wB0 -   wB1 + 2*wB2;
4083                                  EM_S[INDEX2(7,3,8)]+=B_0*w48 + B_1*w49 + B_2*w50;                                  EM_S[INDEX2(7,3,8)]+=-2*wB0 - 2*wB1 + 4*wB2;
4084                                  EM_S[INDEX2(7,4,8)]+=B_0*w48 + B_1*w49 + B_2*w50/4;                                  EM_S[INDEX2(7,4,8)]+=-2*wB0 - 2*wB1 + wB2;
4085                                  EM_S[INDEX2(7,5,8)]+=B_0*w48 - B_1*w51 - B_2*w52;                                  EM_S[INDEX2(7,5,8)]+=-2*wB0 - 4*wB1 + 2*wB2;
4086                                  EM_S[INDEX2(7,6,8)]+=-4*B_0*w53 + B_1*w49 - B_2*w52;                                  EM_S[INDEX2(7,6,8)]+=-4*wB0 - 2*wB1 + 2*wB2;
4087                                  EM_S[INDEX2(7,7,8)]+=-4*B_0*w53 - B_1*w51 + B_2*w50;                                  EM_S[INDEX2(7,7,8)]+=-4*wB0 - 4*wB1 + 4*wB2;
4088                              }                              }
4089                          }                          }
4090                          ///////////////                          ///////////////
# Line 4427  void Brick::assemblePDESingle(Paso_Syste Line 4447  void Brick::assemblePDESingle(Paso_Syste
4447                                  EM_S[INDEX2(7,6,8)]+=-C_0_0*w46 - C_0_1*w30 - C_0_6*w38 - C_0_7*w47 + tmp122 + tmp123 + tmp124 + tmp125 + tmp126 + tmp127 + tmp130 + tmp131 + tmp148 + tmp149;                                  EM_S[INDEX2(7,6,8)]+=-C_0_0*w46 - C_0_1*w30 - C_0_6*w38 - C_0_7*w47 + tmp122 + tmp123 + tmp124 + tmp125 + tmp126 + tmp127 + tmp130 + tmp131 + tmp148 + tmp149;
4448                                  EM_S[INDEX2(7,7,8)]+=C_0_0*w46 + C_0_1*w30 + C_0_6*w38 + C_0_7*w47 - C_1_0*w45 + C_1_2*w31 + C_1_5*w39 - C_1_7*w44 + C_2_0*w41 + C_2_3*w43 + C_2_4*w32 + C_2_7*w40 + tmp150 + tmp151 + tmp166 + tmp167 + tmp168 + tmp169;                                  EM_S[INDEX2(7,7,8)]+=C_0_0*w46 + C_0_1*w30 + C_0_6*w38 + C_0_7*w47 - C_1_0*w45 + C_1_2*w31 + C_1_5*w39 - C_1_7*w44 + C_2_0*w41 + C_2_3*w43 + C_2_4*w32 + C_2_7*w40 + tmp150 + tmp151 + tmp166 + tmp167 + tmp168 + tmp169;
4449                              } else { // constant data                              } else { // constant data
4450                                  const double C_0 = C_p[0];                                  const double wC0 = C_p[0]*w53;
4451                                  const double C_1 = C_p[1];                                  const double wC1 = C_p[1]*w51;
4452                                  const double C_2 = C_p[2];                                  const double wC2 = C_p[2]*w50;
4453                                  EM_S[INDEX2(0,0,8)]+=4*C_0*w53 + C_1*w51 - C_2*w50;                                  EM_S[INDEX2(0,0,8)]+= 4*wC0 + 4*wC1 - 4*wC2;
4454                                  EM_S[INDEX2(0,1,8)]+=-4*C_0*w53 - C_1*w49 + C_2*w52;                                  EM_S[INDEX2(0,1,8)]+=-4*wC0 + 2*wC1 - 2*wC2;
4455                                  EM_S[INDEX2(0,2,8)]+=-C_0*w48 - C_1*w51 + C_2*w52;                                  EM_S[INDEX2(0,2,8)]+= 2*wC0 - 4*wC1 - 2*wC2;
4456                                  EM_S[INDEX2(0,3,8)]+=C_0*w48 + C_1*w49 + C_2*w52/2;                                  EM_S[INDEX2(0,3,8)]+=-2*wC0 - 2*wC1 -   wC2;
4457                                  EM_S[INDEX2(0,4,8)]+=-C_0*w48 - C_1*w49 + C_2*w50;                                  EM_S[INDEX2(0,4,8)]+= 2*wC0 + 2*wC1 + 4*wC2;
4458                                  EM_S[INDEX2(0,5,8)]+=C_0*w48 + C_1*w51/4 - C_2*w52;                                  EM_S[INDEX2(0,5,8)]+=-2*wC0 +   wC1 + 2*wC2;
4459                                  EM_S[INDEX2(0,6,8)]+=C_0*w53 + C_1*w49 - C_2*w52;                                  EM_S[INDEX2(0,6,8)]+=   wC0 - 2*wC1 + 2*wC2;
4460                                  EM_S[INDEX2(0,7,8)]+=-C_0*w53 - C_1*w51/4 + C_2*w50/4;                                  EM_S[INDEX2(0,7,8)]+=  -wC0 -   wC1 +   wC2;
4461                                  EM_S[INDEX2(1,0,8)]+=4*C_0*w53 - C_1*w49 + C_2*w52;                                  EM_S[INDEX2(1,0,8)]+= 4*wC0 + 2*wC1 - 2*wC2;
4462                                  EM_S[INDEX2(1,1,8)]+=-4*C_0*w53 + C_1*w51 - C_2*w50;                                  EM_S[INDEX2(1,1,8)]+=-4*wC0 + 4*wC1 - 4*wC2;
4463                                  EM_S[INDEX2(1,2,8)]+=-C_0*w48 + C_1*w49 + C_2*w52/2;                                  EM_S[INDEX2(1,2,8)]+= 2*wC0 - 2*wC1 -   wC2;
4464                                  EM_S[INDEX2(1,3,8)]+=C_0*w48 - C_1*w51 + C_2*w52;                                  EM_S[INDEX2(1,3,8)]+=-2*wC0 - 4*wC1 - 2*wC2;
4465                                  EM_S[INDEX2(1,4,8)]+=-C_0*w48 + C_1*w51/4 - C_2*w52;                                  EM_S[INDEX2(1,4,8)]+= 2*wC0 +   wC1 + 2*wC2;
4466                                  EM_S[INDEX2(1,5,8)]+=C_0*w48 - C_1*w49 + C_2*w50;                                  EM_S[INDEX2(1,5,8)]+=-2*wC0 + 2*wC1 + 4*wC2;
4467                                  EM_S[INDEX2(1,6,8)]+=C_0*w53 - C_1*w51/4 + C_2*w50/4;                                  EM_S[INDEX2(1,6,8)]+=   wC0 -   wC1 +   wC2;
4468                                  EM_S[INDEX2(1,7,8)]+=-C_0*w53 + C_1*w49 - C_2*w52;                                  EM_S[INDEX2(1,7,8)]+=  -wC0 - 2*wC1 + 2*wC2;
4469                                  EM_S[INDEX2(2,0,8)]+=-C_0*w48 + C_1*w51 + C_2*w52;                                  EM_S[INDEX2(2,0,8)]+= 2*wC0 + 4*wC1 - 2*wC2;
4470                                  EM_S[INDEX2(2,1,8)]+=C_0*w48 - C_1*w49 + C_2*w52/2;                                  EM_S[INDEX2(2,1,8)]+=-2*wC0 + 2*wC1 -   wC2;
4471                                  EM_S[INDEX2(2,2,8)]+=4*C_0*w53 - C_1*w51 - C_2*w50;                                  EM_S[INDEX2(2,2,8)]+= 4*wC0 - 4*wC1 - 4*wC2;
4472                                  EM_S[INDEX2(2,3,8)]+=-4*C_0*w53 + C_1*w49 + C_2*w52;                                  EM_S[INDEX2(2,3,8)]+=-4*wC0 - 2*wC1 - 2*wC2;
4473                                  EM_S[INDEX2(2,4,8)]+=C_0*w53 - C_1*w49 - C_2*w52;                                  EM_S[INDEX2(2,4,8)]+=   wC0 + 2*wC1 + 2*wC2;
4474                                  EM_S[INDEX2(2,5,8)]+=-C_0*w53 + C_1*w51/4 + C_2*w50/4;                                  EM_S[INDEX2(2,5,8)]+=  -wC0 +   wC1 +   wC2;
4475                                  EM_S[INDEX2(2,6,8)]+=-C_0*w48 + C_1*w49 + C_2*w50;                                  EM_S[INDEX2(2,6,8)]+= 2*wC0 - 2*wC1 + 4*wC2;
4476                                  EM_S[INDEX2(2,7,8)]+=C_0*w48 - C_1*w51/4 - C_2*w52;                                  EM_S[INDEX2(2,7,8)]+=-2*wC0 -   wC1 + 2*wC2;
4477                                  EM_S[INDEX2(3,0,8)]+=-C_0*w48 - C_1*w49 + C_2*w52/2;                                  EM_S[INDEX2(3,0,8)]+= 2*wC0 + 2*wC1 -   wC2;
4478                                  EM_S[INDEX2(3,1,8)]+=C_0*w48 + C_1*w51 + C_2*w52;                                  EM_S[INDEX2(3,1,8)]+=-2*wC0 + 4*wC1 - 2*wC2;
4479                                  EM_S[INDEX2(3,2,8)]+=4*C_0*w53 + C_1*w49 + C_2*w52;                                  EM_S[INDEX2(3,2,8)]+= 4*wC0 - 2*wC1 - 2*wC2;
4480                                  EM_S[INDEX2(3,3,8)]+=-4*C_0*w53 - C_1*w51 - C_2*w50;                                  EM_S[INDEX2(3,3,8)]+=-4*wC0 - 4*wC1 - 4*wC2;
4481                                  EM_S[INDEX2(3,4,8)]+=C_0*w53 + C_1*w51/4 + C_2*w50/4;                                  EM_S[INDEX2(3,4,8)]+=   wC0 +   wC1 +   wC2;
4482                                  EM_S[INDEX2(3,5,8)]+=-C_0*w53 - C_1*w49 - C_2*w52;                                  EM_S[INDEX2(3,5,8)]+=  -wC0 + 2*wC1 + 2*wC2;
4483                                  EM_S[INDEX2(3,6,8)]+=-C_0*w48 - C_1*w51/4 - C_2*w52;                                  EM_S[INDEX2(3,6,8)]+= 2*wC0 -   wC1 + 2*wC2;
4484                                  EM_S[INDEX2(3,7,8)]+=C_0*w48 + C_1*w49 + C_2*w50;                                  EM_S[INDEX2(3,7,8)]+=-2*wC0 - 2*wC1 + 4*wC2;
4485                                  EM_S[INDEX2(4,0,8)]+=-C_0*w48 - C_1*w49 - C_2*w50;                                  EM_S[INDEX2(4,0,8)]+= 2*wC0 + 2*wC1 - 4*wC2;
4486                                  EM_S[INDEX2(4,1,8)]+=C_0*w48 + C_1*w51/4 + C_2*w52;                                  EM_S[INDEX2(4,1,8)]+=-2*wC0 +   wC1 - 2*wC2;
4487                                  EM_S[INDEX2(4,2,8)]+=C_0*w53 + C_1*w49 + C_2*w52;                                  EM_S[INDEX2(4,2,8)]+=   wC0 - 2*wC1 - 2*wC2;
4488                                  EM_S[INDEX2(4,3,8)]+=-C_0*w53 - C_1*w51/4 + C_2*w52/2;                                  EM_S[INDEX2(4,3,8)]+=  -wC0 -   wC1 -   wC2;
4489                                  EM_S[INDEX2(4,4,8)]+=4*C_0*w53 + C_1*w51 + C_2*w50;                                  EM_S[INDEX2(4,4,8)]+= 4*wC0 + 4*wC1 + 4*wC2;
4490                                  EM_S[INDEX2(4,5,8)]+=-4*C_0*w53 - C_1*w49 - C_2*w52;                                  EM_S[INDEX2(4,5,8)]+=-4*wC0 + 2*wC1 + 2*wC2;
4491                                  EM_S[INDEX2(4,6,8)]+=-C_0*w48 - C_1*w51 - C_2*w52;                                  EM_S[INDEX2(4,6,8)]+= 2*wC0 - 4*wC1 + 2*wC2;
4492                                  EM_S[INDEX2(4,7,8)]+=C_0*w48 + C_1*w49 + C_2*w50/4;                                  EM_S[INDEX2(4,7,8)]+=-2*wC0 - 2*wC1 +   wC2;
4493                                  EM_S[INDEX2(5,0,8)]+=-C_0*w48 + C_1*w51/4 + C_2*w52;                                  EM_S[INDEX2(5,0,8)]+= 2*wC0 +   wC1 - 2*wC2;
4494                                  EM_S[INDEX2(5,1,8)]+=C_0*w48 - C_1*w49 - C_2*w50;                                  EM_S[INDEX2(5,1,8)]+=-2*wC0 + 2*wC1 - 4*wC2;
4495                                  EM_S[INDEX2(5,2,8)]+=C_0*w53 - C_1*w51/4 + C_2*w52/2;                                  EM_S[INDEX2(5,2,8)]+=   wC0 -   wC1 -   wC2;
4496                                  EM_S[INDEX2(5,3,8)]+=-C_0*w53 + C_1*w49 + C_2*w52;                                  EM_S[INDEX2(5,3,8)]+=  -wC0 - 2*wC1 - 2*wC2;
4497                                  EM_S[INDEX2(5,4,8)]+=4*C_0*w53 - C_1*w49 - C_2*w52;                                  EM_S[INDEX2(5,4,8)]+= 4*wC0 + 2*wC1 + 2*wC2;
4498                                  EM_S[INDEX2(5,5,8)]+=-4*C_0*w53 + C_1*w51 + C_2*w50;                                  EM_S[INDEX2(5,5,8)]+=-4*wC0 + 4*wC1 + 4*wC2;
4499                                  EM_S[INDEX2(5,6,8)]+=-C_0*w48 + C_1*w49 + C_2*w50/4;                                  EM_S[INDEX2(5,6,8)]+= 2*wC0 - 2*wC1 +   wC2;
4500                                  EM_S[INDEX2(5,7,8)]+=C_0*w48 - C_1*w51 - C_2*w52;                                  EM_S[INDEX2(5,7,8)]+=-2*wC0 - 4*wC1 + 2*wC2;
4501                                  EM_S[INDEX2(6,0,8)]+=C_0*w53 - C_1*w49 + C_2*w52;                                  EM_S[INDEX2(6,0,8)]+=   wC0 + 2*wC1 - 2*wC2;
4502                                  EM_S[INDEX2(6,1,8)]+=-C_0*w53 + C_1*w51/4 + C_2*w52/2;                                  EM_S[INDEX2(6,1,8)]+=  -wC0 +   wC1 -   wC2;
4503                                  EM_S[INDEX2(6,2,8)]+=-C_0*w48 + C_1*w49 - C_2*w50;                                  EM_S[INDEX2(6,2,8)]+= 2*wC0 - 2*wC1 - 4*wC2;
4504                                  EM_S[INDEX2(6,3,8)]+=C_0*w48 - C_1*w51/4 + C_2*w52;                                  EM_S[INDEX2(6,3,8)]+=-2*wC0 -   wC1 - 2*wC2;
4505                                  EM_S[INDEX2(6,4,8)]+=-C_0*w48 + C_1*w51 - C_2*w52;                                  EM_S[INDEX2(6,4,8)]+= 2*wC0 + 4*wC1 + 2*wC2;
4506                                  EM_S[INDEX2(6,5,8)]+=C_0*w48 - C_1*w49 + C_2*w50/4;                                  EM_S[INDEX2(6,5,8)]+=-2*wC0 + 2*wC1 +   wC2;
4507                                  EM_S[INDEX2(6,6,8)]+=4*C_0*w53 - C_1*w51 + C_2*w50;                                  EM_S[INDEX2(6,6,8)]+= 4*wC0 - 4*wC1 + 4*wC2;
4508                                  EM_S[INDEX2(6,7,8)]+=-4*C_0*w53 + C_1*w49 - C_2*w52;                                  EM_S[INDEX2(6,7,8)]+=-4*wC0 - 2*wC1 + 2*wC2;
4509                                  EM_S[INDEX2(7,0,8)]+=C_0*w53 + C_1*w51/4 + C_2*w52/2;                                  EM_S[INDEX2(7,0,8)]+=   wC0 +   wC1 -   wC2;
4510                                  EM_S[INDEX2(7,1,8)]+=-C_0*w53 - C_1*w49 + C_2*w52;                                  EM_S[INDEX2(7,1,8)]+=  -wC0 + 2*wC1 - 2*wC2;
4511                                  EM_S[INDEX2(7,2,8)]+=-C_0*w48 - C_1*w51/4 + C_2*w52;                                  EM_S[INDEX2(7,2,8)]+= 2*wC0 -   wC1 - 2*wC2;
4512                                  EM_S[INDEX2(7,3,8)]+=C_0*w48 + C_1*w49 - C_2*w50;                                  EM_S[INDEX2(7,3,8)]+=-2*wC0 - 2*wC1 - 4*wC2;
4513                                  EM_S[INDEX2(7,4,8)]+=-C_0*w48 - C_1*w49 + C_2*w50/4;                                  EM_S[INDEX2(7,4,8)]+= 2*wC0 + 2*wC1 +   wC2;
4514                                  EM_S[INDEX2(7,5,8)]+=C_0*w48 + C_1*w51 - C_2*w52;                                  EM_S[INDEX2(7,5,8)]+=-2*wC0 + 4*wC1 + 2*wC2;
4515                                  EM_S[INDEX2(7,6,8)]+=4*C_0*w53 + C_1*w49 - C_2*w52;                                  EM_S[INDEX2(7,6,8)]+= 4*wC0 - 2*wC1 + 2*wC2;
4516                                  EM_S[INDEX2(7,7,8)]+=-4*C_0*w53 - C_1*w51 + C_2*w50;                                  EM_S[INDEX2(7,7,8)]+=-4*wC0 - 4*wC1 + 4*wC2;
4517                              }                              }
4518                          }                          }
4519                          ///////////////                          ///////////////
# Line 4635  void Brick::assemblePDESingle(Paso_Syste Line 4655  void Brick::assemblePDESingle(Paso_Syste
4655                                  EM_S[INDEX2(7,6,8)]+=tmp25 + tmp26 + tmp27;                                  EM_S[INDEX2(7,6,8)]+=tmp25 + tmp26 + tmp27;
4656                                  EM_S[INDEX2(7,7,8)]+=D_0*w60 + D_7*w59 + tmp37 + tmp38;                                  EM_S[INDEX2(7,7,8)]+=D_0*w60 + D_7*w59 + tmp37 + tmp38;
4657                              } else { // constant data                              } else { // constant data
4658                                  const double D_0 = D_p[0];                                  const double wD0 = 8*D_p[0]*w55;
4659                                  EM_S[INDEX2(0,0,8)]+=64*D_0*w55;                                  EM_S[INDEX2(0,0,8)]+=8*wD0;
4660                                  EM_S[INDEX2(0,1,8)]+=32*D_0*w55;                                  EM_S[INDEX2(0,1,8)]+=4*wD0;
4661                                  EM_S[INDEX2(0,2,8)]+=32*D_0*w55;                                  EM_S[INDEX2(0,2,8)]+=4*wD0;
4662                                  EM_S[INDEX2(0,3,8)]+=16*D_0*w55;                                  EM_S[INDEX2(0,3,8)]+=2*wD0;
4663                                  EM_S[INDEX2(0,4,8)]+=32*D_0*w55;                                  EM_S[INDEX2(0,4,8)]+=4*wD0;
4664                                  EM_S[INDEX2(0,5,8)]+=16*D_0*w55;                                  EM_S[INDEX2(0,5,8)]+=2*wD0;
4665                                  EM_S[INDEX2(0,6,8)]+=16*D_0*w55;                                  EM_S[INDEX2(0,6,8)]+=2*wD0;
4666                                  EM_S[INDEX2(0,7,8)]+=8*D_0*w55;                                  EM_S[INDEX2(0,7,8)]+=wD0;
4667                                  EM_S[INDEX2(1,0,8)]+=32*D_0*w55;                                  EM_S[INDEX2(1,0,8)]+=4*wD0;
4668                                  EM_S[INDEX2(1,1,8)]+=64*D_0*w55;                                  EM_S[INDEX2(1,1,8)]+=8*wD0;
4669                                  EM_S[INDEX2(1,2,8)]+=16*D_0*w55;                                  EM_S[INDEX2(1,2,8)]+=2*wD0;
4670                                  EM_S[INDEX2(1,3,8)]+=32*D_0*w55;                                  EM_S[INDEX2(1,3,8)]+=4*wD0;
4671                                  EM_S[INDEX2(1,4,8)]+=16*D_0*w55;                                  EM_S[INDEX2(1,4,8)]+=2*wD0;
4672                                  EM_S[INDEX2(1,5,8)]+=32*D_0*w55;                                  EM_S[INDEX2(1,5,8)]+=4*wD0;
4673                                  EM_S[INDEX2(1,6,8)]+=8*D_0*w55;                                  EM_S[INDEX2(1,6,8)]+=wD0;
4674                                  EM_S[INDEX2(1,7,8)]+=16*D_0*w55;                                  EM_S[INDEX2(1,7,8)]+=2*wD0;
4675                                  EM_S[INDEX2(2,0,8)]+=32*D_0*w55;                                  EM_S[INDEX2(2,0,8)]+=4*wD0;
4676                                  EM_S[INDEX2(2,1,8)]+=16*D_0*w55;                                  EM_S[INDEX2(2,1,8)]+=2*wD0;
4677                                  EM_S[INDEX2(2,2,8)]+=64*D_0*w55;                                  EM_S[INDEX2(2,2,8)]+=8*wD0;
4678                                  EM_S[INDEX2(2,3,8)]+=32*D_0*w55;                                  EM_S[INDEX2(2,3,8)]+=4*wD0;
4679                                  EM_S[INDEX2(2,4,8)]+=16*D_0*w55;                                  EM_S[INDEX2(2,4,8)]+=2*wD0;
4680                                  EM_S[INDEX2(2,5,8)]+=8*D_0*w55;                                  EM_S[INDEX2(2,5,8)]+=wD0;
4681                                  EM_S[INDEX2(2,6,8)]+=32*D_0*w55;                                  EM_S[INDEX2(2,6,8)]+=4*wD0;
4682                                  EM_S[INDEX2(2,7,8)]+=16*D_0*w55;                                  EM_S[INDEX2(2,7,8)]+=2*wD0;
4683                                  EM_S[INDEX2(3,0,8)]+=16*D_0*w55;                                  EM_S[INDEX2(3,0,8)]+=2*wD0;
4684                                  EM_S[INDEX2(3,1,8)]+=32*D_0*w55;                                  EM_S[INDEX2(3,1,8)]+=4*wD0;
4685                                  EM_S[INDEX2(3,2,8)]+=32*D_0*w55;                                  EM_S[INDEX2(3,2,8)]+=4*wD0;
4686                                  EM_S[INDEX2(3,3,8)]+=64*D_0*w55;                                  EM_S[INDEX2(3,3,8)]+=8*wD0;
4687                                  EM_S[INDEX2(3,4,8)]+=8*D_0*w55;                                  EM_S[INDEX2(3,4,8)]+=wD0;
4688                                  EM_S[INDEX2(3,5,8)]+=16*D_0*w55;                                  EM_S[INDEX2(3,5,8)]+=2*wD0;
4689                                  EM_S[INDEX2(3,6,8)]+=16*D_0*w55;                                  EM_S[INDEX2(3,6,8)]+=2*wD0;
4690                                  EM_S[INDEX2(3,7,8)]+=32*D_0*w55;                                  EM_S[INDEX2(3,7,8)]+=4*wD0;
4691                                  EM_S[INDEX2(4,0,8)]+=32*D_0*w55;                                  EM_S[INDEX2(4,0,8)]+=4*wD0;
4692                                  EM_S[INDEX2(4,1,8)]+=16*D_0*w55;                                  EM_S[INDEX2(4,1,8)]+=2*wD0;
4693                                  EM_S[INDEX2(4,2,8)]+=16*D_0*w55;                                  EM_S[INDEX2(4,2,8)]+=2*wD0;
4694                                  EM_S[INDEX2(4,3,8)]+=8*D_0*w55;                                  EM_S[INDEX2(4,3,8)]+=wD0;
4695                                  EM_S[INDEX2(4,4,8)]+=64*D_0*w55;                                  EM_S[INDEX2(4,4,8)]+=8*wD0;
4696                                  EM_S[INDEX2(4,5,8)]+=32*D_0*w55;                                  EM_S[INDEX2(4,5,8)]+=4*wD0;
4697                                  EM_S[INDEX2(4,6,8)]+=32*D_0*w55;                                  EM_S[INDEX2(4,6,8)]+=4*wD0;
4698                                  EM_S[INDEX2(4,7,8)]+=16*D_0*w55;                                  EM_S[INDEX2(4,7,8)]+=2*wD0;
4699                                  EM_S[INDEX2(5,0,8)]+=16*D_0*w55;                                  EM_S[INDEX2(5,0,8)]+=2*wD0;
4700                                  EM_S[INDEX2(5,1,8)]+=32*D_0*w55;                                  EM_S[INDEX2(5,1,8)]+=4*wD0;
4701                                  EM_S[INDEX2(5,2,8)]+=8*D_0*w55;                                  EM_S[INDEX2(5,2,8)]+=wD0;
4702                                  EM_S[INDEX2(5,3,8)]+=16*D_0*w55;                                  EM_S[INDEX2(5,3,8)]+=2*wD0;
4703                                  EM_S[INDEX2(5,4,8)]+=32*D_0*w55;                                  EM_S[INDEX2(5,4,8)]+=4*wD0;
4704                                  EM_S[INDEX2(5,5,8)]+=64*D_0*w55;                                  EM_S[INDEX2(5,5,8)]+=8*wD0;
4705                                  EM_S[INDEX2(5,6,8)]+=16*D_0*w55;                                  EM_S[INDEX2(5,6,8)]+=2*wD0;
4706                                  EM_S[INDEX2(5,7,8)]+=32*D_0*w55;                                  EM_S[INDEX2(5,7,8)]+=4*wD0;
4707                                  EM_S[INDEX2(6,0,8)]+=16*D_0*w55;                                  EM_S[INDEX2(6,0,8)]+=2*wD0;
4708                                  EM_S[INDEX2(6,1,8)]+=8*D_0*w55;                                  EM_S[INDEX2(6,1,8)]+=wD0;
4709                                  EM_S[INDEX2(6,2,8)]+=32*D_0*w55;                                  EM_S[INDEX2(6,2,8)]+=4*wD0;
4710                                  EM_S[INDEX2(6,3,8)]+=16*D_0*w55;                                  EM_S[INDEX2(6,3,8)]+=2*wD0;
4711                                  EM_S[INDEX2(6,4,8)]+=32*D_0*w55;                                  EM_S[INDEX2(6,4,8)]+=4*wD0;
4712                                  EM_S[INDEX2(6,5,8)]+=16*D_0*w55;                                  EM_S[INDEX2(6,5,8)]+=2*wD0;
4713                                  EM_S[INDEX2(6,6,8)]+=64*D_0*w55;                                  EM_S[INDEX2(6,6,8)]+=8*wD0;
4714                                  EM_S[INDEX2(6,7,8)]+=32*D_0*w55;                                  EM_S[INDEX2(6,7,8)]+=4*wD0;
4715                                  EM_S[INDEX2(7,0,8)]+=8*D_0*w55;                                  EM_S[INDEX2(7,0,8)]+=wD0;
4716                                  EM_S[INDEX2(7,1,8)]+=16*D_0*w55;                                  EM_S[INDEX2(7,1,8)]+=2*wD0;
4717                                  EM_S[INDEX2(7,2,8)]+=16*D_0*w55;                                  EM_S[INDEX2(7,2,8)]+=2*wD0;
4718                                  EM_S[INDEX2(7,3,8)]+=32*D_0*w55;                                  EM_S[INDEX2(7,3,8)]+=4*wD0;
4719                                  EM_S[INDEX2(7,4,8)]+=16*D_0*w55;                                  EM_S[INDEX2(7,4,8)]+=2*wD0;
4720                                  EM_S[INDEX2(7,5,8)]+=32*D_0*w55;                                  EM_S[INDEX2(7,5,8)]+=4*wD0;
4721                                  EM_S[INDEX2(7,6,8)]+=32*D_0*w55;                                  EM_S[INDEX2(7,6,8)]+=4*wD0;
4722                                  EM_S[INDEX2(7,7,8)]+=64*D_0*w55;                                  EM_S[INDEX2(7,7,8)]+=8*wD0;
4723                              }                              }
4724                          }                          }
4725                          ///////////////                          ///////////////
# Line 4802  void Brick::assemblePDESingle(Paso_Syste Line 4822  void Brick::assemblePDESingle(Paso_Syste
4822                                  EM_F[6]+=tmp0 + tmp27 + tmp43 + tmp48 + tmp49 + tmp50 + tmp51 + tmp52 + tmp53;                                  EM_F[6]+=tmp0 + tmp27 + tmp43 + tmp48 + tmp49 + tmp50 + tmp51 + tmp52 + tmp53;
4823                                  EM_F[7]+=tmp19 + tmp36 + tmp54 + tmp55 + tmp56 + tmp57 + tmp58 + tmp59 + tmp9;                                  EM_F[7]+=tmp19 + tmp36 + tmp54 + tmp55 + tmp56 + tmp57 + tmp58 + tmp59 + tmp9;
4824                              } else { // constant data                              } else { // constant data
4825                                  const double X_0 = X_p[0];                                  const double wX0 = 12*X_p[0]*w66;
4826                                  const double X_1 = X_p[1];                                  const double wX1 = 12*X_p[1]*w64;
4827                                  const double X_2 = X_p[2];                                  const double wX2 = 18*X_p[2]*w50;
4828                                  EM_F[0]+=18*X_0*w53 + 12*X_1*w64 + 12*X_2*w65;                                  EM_F[0]+= wX0 + wX1 - wX2;
4829                                  EM_F[1]+=-18*X_0*w53 + 12*X_1*w64 + 12*X_2*w65;                                  EM_F[1]+=-wX0 + wX1 - wX2;
4830                                  EM_F[2]+=18*X_0*w53 - 12*X_1*w64 + 12*X_2*w65;                                  EM_F[2]+= wX0 - wX1 - wX2;
4831                                  EM_F[3]+=-18*X_0*w53 - 12*X_1*w64 + 12*X_2*w65;                                  EM_F[3]+=-wX0 - wX1 - wX2;
4832                                  EM_F[4]+=18*X_0*w53 + 12*X_1*w64 - 12*X_2*w65;                                  EM_F[4]+= wX0 + wX1 + wX2;
4833                                  EM_F[5]+=-18*X_0*w53 + 12*X_1*w64 - 12*X_2*w65;                                  EM_F[5]+=-wX0 + wX1 + wX2;
4834                                  EM_F[6]+=18*X_0*w53 - 12*X_1*w64 - 12*X_2*w65;                                  EM_F[6]+= wX0 - wX1 + wX2;
4835                                  EM_F[7]+=-18*X_0*w53 - 12*X_1*w64 - 12*X_2*w65;                                  EM_F[7]+=-wX0 - wX1 + wX2;
4836                              }                              }
4837                          }                          }
4838                          ///////////////                          ///////////////
# Line 4855  void Brick::assemblePDESingle(Paso_Syste Line 4875  void Brick::assemblePDESingle(Paso_Syste
4875                                  EM_F[6]+=Y_1*w73 + Y_6*w70 + tmp12 + tmp13;                                  EM_F[6]+=Y_1*w73 + Y_6*w70 + tmp12 + tmp13;
4876                                  EM_F[7]+=Y_0*w73 + Y_7*w70 + tmp14 + tmp15;                                  EM_F[7]+=Y_0*w73 + Y_7*w70 + tmp14 + tmp15;
4877                              } else { // constant data                              } else { // constant data
4878                                  const double Y_0 = Y_p[0];                                  EM_F[0]+=216*Y_p[0]*w55;
4879                                  EM_F[0]+=216*Y_0*w55;                                  EM_F[1]+=216*Y_p[0]*w55;
4880                                  EM_F[1]+=216*Y_0*w55;                                  EM_F[2]+=216*Y_p[0]*w55;
4881                                  EM_F[2]+=216*Y_0*w55;                                  EM_F[3]+=216*Y_p[0]*w55;
4882                                  EM_F[3]+=216*Y_0*w55;                                  EM_F[4]+=216*Y_p[0]*w55;
4883                                  EM_F[4]+=216*Y_0*w55;                                  EM_F[5]+=216*Y_p[0]*w55;
4884                                  EM_F[5]+=216*Y_0*w55;                                  EM_F[6]+=216*Y_p[0]*w55;
4885                                  EM_F[6]+=216*Y_0*w55;                                  EM_F[7]+=216*Y_p[0]*w55;
                                 EM_F[7]+=216*Y_0*w55;  
4886                              }                              }
4887                          }                          }
                         /* GENERATOR SNIP_PDE_SINGLE BOTTOM */  
4888    
4889                          // add to matrix (if add_EM_S) and RHS (if add_EM_F)                          // add to matrix (if add_EM_S) and RHS (if add_EM_F)
4890                          const index_t firstNode=m_NN[0]*m_NN[1]*k2+m_NN[0]*k1+k0;                          const index_t firstNode=m_NN[0]*m_NN[1]*k2+m_NN[0]*k1+k0;
# Line 4885  void Brick::assemblePDESingleReduced(Pas Line 4903  void Brick::assemblePDESingleReduced(Pas
4903          const escript::Data& C, const escript::Data& D,          const escript::Data& C, const escript::Data& D,
4904          const escript::Data& X, const escript::Data& Y) const          const escript::Data& X, const escript::Data& Y) const
4905  {  {
4906      const double w6 = 0.0625*m_dx[0];      const double w6 = m_dx[0]/16;
4907      const double w5 = 0.0625*m_dx[1];      const double w5 = m_dx[1]/16;
4908      const double w1 = 0.0625*m_dx[2];      const double w1 = m_dx[2]/16;
4909      const double w14 = 0.03125*m_dx[0]*m_dx[1];      const double w14 = m_dx[0]*m_dx[1]/32;
4910      const double w13 = 0.03125*m_dx[0]*m_dx[2];      const double w13 = m_dx[0]*m_dx[2]/32;
4911      const double w12 = 0.03125*m_dx[1]*m_dx[2];      const double w12 = m_dx[1]*m_dx[2]/32;
4912      const double w18 = 0.015625*m_dx[0]*m_dx[1]*m_dx[2];      const double w18 = m_dx[0]*m_dx[1]*m_dx[2]/64;
4913      const double w11 = 0.0625*m_dx[0]*m_dx[1]/m_dx[2];      const double w11 = m_dx[0]*m_dx[1]/(16*m_dx[2]);
4914      const double w3 = 0.0625*m_dx[0]*m_dx[2]/m_dx[1];      const double w3 = m_dx[0]*m_dx[2]/(16*m_dx[1]);
4915      const double w0 = 0.0625*m_dx[1]*m_dx[2]/m_dx[0];      const double w0 = m_dx[1]*m_dx[2]/(16*m_dx[0]);
4916    
4917      rhs.requireWrite();      rhs.requireWrite();
4918  #pragma omp parallel  #pragma omp parallel
# Line 5267  void Brick::assemblePDESystem(Paso_Syste Line 5285  void Brick::assemblePDESystem(Paso_Syste
5285          numComp=mat->logical_col_block_size;          numComp=mat->logical_col_block_size;
5286      }      }
5287    
5288      /* GENERATOR SNIP_PDE_SYSTEM_PRE TOP */      const double SQRT3 = 1.73205080756887719318;
5289      const double w0 = 0.00093037914038584273081*m_dx[1]*m_dx[2]/m_dx[0];      const double w10 = -m_dx[0]/288;
5290      const double w1 = 0.00093037914038584273081*m_dx[2];      const double w12 = w10*(-SQRT3 - 2);
5291      const double w2 = -0.000249294339321148701*m_dx[1];      const double w6 = w10*(SQRT3 - 2);
5292      const double w3 = 0.00093037914038584273081*m_dx[0]*m_dx[2]/m_dx[1];      const double w18 = w10*(-4*SQRT3 - 7);
5293      const double w4 = -0.000249294339321148701*m_dx[0];      const double w4 = w10*(-4*SQRT3 + 7);
5294      const double w5 = 0.00093037914038584273081*m_dx[1];      const double w11 = m_dx[1]/288;
5295      const double w6 = 0.00093037914038584273081*m_dx[0];      const double w15 = w11*(SQRT3 + 2);
5296      const double w7 = -0.000249294339321148701*m_dx[0]*m_dx[1]/m_dx[2];      const double w5 = w11*(-SQRT3 + 2);
5297      const double w8 = 0.0034722222222222222222*m_dx[2];      const double w2 = w11*(4*SQRT3 - 7);
5298      const double w9 = 0.012958509748503046158*m_dx[0]*m_dx[2]/m_dx[1];      const double w17 = w11*(4*SQRT3 + 7);
5299      const double w10 = -0.0034722222222222222222*m_dx[0];      const double w8 = m_dx[2]/288;
5300      const double w11 = 0.0034722222222222222222*m_dx[1];      const double w16 = w8*(SQRT3 + 2);
5301      const double w12 = 0.012958509748503046158*m_dx[0];      const double w1 = w8*(-SQRT3 + 2);
5302      const double w13 = -0.0034722222222222222222*m_dx[0]*m_dx[1]/m_dx[2];      const double w20 = w8*(4*SQRT3 - 7);
5303      const double w14 = 0.012958509748503046158*m_dx[1]*m_dx[2]/m_dx[0];      const double w21 = w8*(-4*SQRT3 - 7);
5304      const double w15 = 0.012958509748503046158*m_dx[1];      const double w54 = -m_dx[0]*m_dx[1]/72;
5305      const double w16 = 0.012958509748503046158*m_dx[2];      const double w68 = -m_dx[0]*m_dx[1]/48;
5306      const double w17 = 0.04836181677178996241*m_dx[1];      const double w38 = w68*(-SQRT3 - 3)/36;
5307      const double w18 = 0.04836181677178996241*m_dx[0];      const double w45 = w68*(SQRT3 - 3)/36;
5308      const double w19 = -0.04836181677178996241*m_dx[0]*m_dx[1]/m_dx[2];      const double w35 = w68*(5*SQRT3 - 9)/36;
5309      const double w20 = -0.000249294339321148701*m_dx[2];      const double w46 = w68*(-5*SQRT3 - 9)/36;
5310      const double w21 = -0.04836181677178996241*m_dx[2];      const double w43 = w68*(-19*SQRT3 - 33)/36;
5311      const double w22 = -0.0034722222222222222222*m_dx[0]*m_dx[2]/m_dx[1];      const double w44 = w68*(19*SQRT3 - 33)/36;
5312      const double w23 = 0.00093037914038584273081*m_dx[0]*m_dx[1]/m_dx[2];      const double w66 = w68*(SQRT3 + 2);
5313      const double w24 = -0.04836181677178996241*m_dx[0]*m_dx[2]/m_dx[1];      const double w70 = w68*(-SQRT3 + 2);
5314      const double w25 = 0.012958509748503046158*m_dx[0]*m_dx[1]/m_dx[2];      const double w56 = -m_dx[0]*m_dx[2]/72;
5315      const double w26 = -0.000249294339321148701*m_dx[0]*m_dx[2]/m_dx[1];      const double w67 = -m_dx[0]*m_dx[2]/48;
5316      const double w27 = -0.0034722222222222222222*m_dx[1]*m_dx[2]/m_dx[0];      const double w37 = w67*(-SQRT3 - 3)/36;
5317      const double w28 = -0.000249294339321148701*m_dx[1]*m_dx[2]/m_dx[0];      const double w40 = w67*(SQRT3 - 3)/36;
5318      const double w29 = -0.04836181677178996241*m_dx[1]*m_dx[2]/m_dx[0];      const double w34 = w67*(5*SQRT3 - 9)/36;
5319      const double w30 = 0.0001966122466178319053*m_dx[1]*m_dx[2];      const double w42 = w67*(-5*SQRT3 - 9)/36;
5320      const double w31 = 0.0001966122466178319053*m_dx[0]*m_dx[2];      const double w47 = w67*(19*SQRT3 + 33)/36;
5321      const double w32 = 0.0001966122466178319053*m_dx[0]*m_dx[1];      const double w48 = w67*(-19*SQRT3 + 33)/36;
5322      const double w33 = 0.0007337668937680108255*m_dx[1]*m_dx[2];      const double w65 = w67*(SQRT3 + 2);
5323      const double w34 = 0.0027384553284542113967*m_dx[0]*m_dx[2];      const double w71 = w67*(-SQRT3 + 2);
5324      const double w35 = 0.0027384553284542113967*m_dx[0]*m_dx[1];      const double w55 = -m_dx[1]*m_dx[2]/72;
5325      const double w36 = 0.0027384553284542113967*m_dx[1]*m_dx[2];      const double w69 = -m_dx[1]*m_dx[2]/48;
5326      const double w37 = 0.0007337668937680108255*m_dx[0]*m_dx[2];      const double w36 = w69*(SQRT3 - 3)/36;
5327      const double w38 = 0.010220054420048834761*m_dx[1]*m_dx[2];      const double w39 = w69*(-SQRT3 - 3)/36;
5328      const double w39 = 0.010220054420048834761*m_dx[0]*m_dx[2];      const double w33 = w69*(5*SQRT3 - 9)/36;
5329      const double w40 = 0.038141762351741127649*m_dx[0]*m_dx[1];      const double w41 = w69*(-5*SQRT3 - 9)/36;
5330      const double w41 = 0.000052682092703316795698*m_dx[0]*m_dx[1];      const double w49 = w69*(19*SQRT3 - 33)/36;
5331      const double w42 = 0.0007337668937680108255*m_dx[0]*m_dx[1];      const double w50 = w69*(-19*SQRT3 - 33)/36;
5332      const double w43 = 0.010220054420048834761*m_dx[0]*m_dx[1];      const double w64 = w69*(SQRT3 + 2);
5333      const double w44 = -0.038141762351741127649*m_dx[0]*m_dx[2];      const double w72 = w69*(-SQRT3 + 2);
5334      const double w45 = -0.000052682092703316795698*m_dx[0]*m_dx[2];      const double w58 = m_dx[0]*m_dx[1]*m_dx[2]/1728;
5335      const double w46 = 0.000052682092703316795698*m_dx[1]*m_dx[2];      const double w60 = w58*(-SQRT3 + 2);
5336      const double w47 = 0.038141762351741127649*m_dx[1]*m_dx[2];      const double w61 = w58*(SQRT3 + 2);
5337      const double w48 = 0.027777777777777777778*m_dx[1]*m_dx[2];      const double w57 = w58*(-4*SQRT3 + 7);
5338      const double w49 = 0.027777777777777777778*m_dx[0]*m_dx[2];      const double w59 = w58*(4*SQRT3 + 7);
5339      const double w50 = 0.055555555555555555556*m_dx[0]*m_dx[1];      const double w62 = w58*(15*SQRT3 + 26);
5340      const double w51 = -0.055555555555555555556*m_dx[0]*m_dx[2];      const double w63 = w58*(-15*SQRT3 + 26);
5341      const double w52 = -0.027777777777777777778*m_dx[0]*m_dx[1];      const double w75 = w58*6*(SQRT3 + 3);
5342      const double w53 = -0.013888888888888888889*m_dx[1]*m_dx[2];      const double w76 = w58*6*(-SQRT3 + 3);
5343      const double w54 = 0.0000415490565535247835*m_dx[0]*m_dx[1]*m_dx[2];      const double w74 = w58*6*(5*SQRT3 + 9);
5344      const double w55 = 0.0005787037037037037037*m_dx[0]*m_dx[1]*m_dx[2];      const double w77 = w58*6*(-5*SQRT3 + 9);
5345      const double w56 = 0.0080603027952983270684*m_dx[0]*m_dx[1]*m_dx[2];      const double w13 = -m_dx[0]*m_dx[1]/(288*m_dx[2]);
5346      const double w57 = 0.0001550631900643071218*m_dx[0]*m_dx[1]*m_dx[2];      const double w19 = w13*(4*SQRT3 + 7);
5347      const double w58 = 0.002159751624750507693*m_dx[0]*m_dx[1]*m_dx[2];      const double w7 = w13*(-4*SQRT3 + 7);
5348      const double w59 = 0.03008145955644280058*m_dx[0]*m_dx[1]*m_dx[2];      const double w23 = w13*(+SQRT3 - 2);
5349      const double w60 = 0.000011133036149792012194*m_dx[0]*m_dx[1]*m_dx[2];      const double w25 = w13*(-SQRT3 - 2);
5350      const double w61 = -0.077751058491018276948*m_dx[1]*m_dx[2];      const double w22 = -m_dx[0]*m_dx[2]/(288*m_dx[1]);
5351      const double w62 = -0.077751058491018276948*m_dx[0]*m_dx[2];      const double w3 = w22*(SQRT3 - 2);
5352      const double w63 = -0.077751058491018276948*m_dx[0]*m_dx[1];      const double w9 = w22*(-SQRT3 - 2);
5353      const double w64 = -0.020833333333333333333*m_dx[0]*m_dx[2];      const double w24 = w22*(4*SQRT3 + 7);
5354      const double w65 = -0.020833333333333333333*m_dx[0]*m_dx[1];      const double w26 = w22*(-4*SQRT3 + 7);
5355      const double w66 = -0.020833333333333333333*m_dx[1]*m_dx[2];      const double w27 = -m_dx[1]*m_dx[2]/(288*m_dx[0]);
5356      const double w67 = -0.0055822748423150563848*m_dx[0]*m_dx[1];      const double w0 = w27*(SQRT3 - 2);
5357      const double w68 = -0.0055822748423150563848*m_dx[0]*m_dx[2];      const double w14 = w27*(-SQRT3 - 2);
5358      const double w69 = -0.0055822748423150563848*m_dx[1]*m_dx[2];      const double w28 = w27*(-4*SQRT3 + 7);
5359      const double w70 = 0.061320326520293008568*m_dx[0]*m_dx[1]*m_dx[2];      const double w29 = w27*(4*SQRT3 + 7);
     const double w71 = 0.01643073197072526838*m_dx[0]*m_dx[1]*m_dx[2];  
     const double w72 = 0.004402601362608064953*m_dx[0]*m_dx[1]*m_dx[2];  
     const double w73 = 0.0011796734797069914318*m_dx[0]*m_dx[1]*m_dx[2];  
     /* GENERATOR SNIP_PDE_SYSTEM_PRE BOTTOM */  
5360    
5361      rhs.requireWrite();      rhs.requireWrite();
5362  #pragma omp parallel  #pragma omp parallel
# Line 5357  void Brick::assemblePDESystem(Paso_Syste Line 5371  void Brick::assemblePDESystem(Paso_Syste
5371                          vector<double> EM_S(8*8*numEq*numComp, 0);                          vector<double> EM_S(8*8*numEq*numComp, 0);
5372                          vector<double> EM_F(8*numEq, 0);                          vector<double> EM_F(8*numEq, 0);
5373                          const index_t e = k0 + m_NE[0]*k1 + m_NE[0]*m_NE[1]*k2;                          const index_t e = k0 + m_NE[0]*k1 + m_NE[0]*m_NE[1]*k2;
                         /* GENERATOR SNIP_PDE_SYSTEM TOP */  
5374                          ///////////////                          ///////////////
5375                          // process A //                          // process A //
5376                          ///////////////                          ///////////////
# Line 6018  void Brick::assemblePDESystem(Paso_Syste Line 6031  void Brick::assemblePDESystem(Paso_Syste
6031                              } else { // constant data                              } else { // constant data
6032                                  for (index_t k=0; k<numEq; k++) {                                  for (index_t k=0; k<numEq; k++) {
6033                                      for (index_t m=0; m<numComp; m++) {                                      for (index_t m=0; m<numComp; m++) {
6034                                          const double A_00 = A_p[INDEX4(k,0,m,0, numEq,3, numComp)];                                          const double Aw00 = 8*A_p[INDEX4(k,0,m,0, numEq,3, numComp)]*w27;
6035                                          const double A_01 = A_p[INDEX4(k,0,m,1, numEq,3, numComp)];                                          const double Aw01 = 12*A_p[INDEX4(k,0,m,1, numEq,3, numComp)]*w8;
6036                                          const double A_02 = A_p[INDEX4(k,0,m,2, numEq,3, numComp)];                                          const double Aw02 = 12*A_p[INDEX4(k,0,m,2, numEq,3, numComp)]*w11;
6037                                          const double A_10 = A_p[INDEX4(k,1,m,0, numEq,3, numComp)];                                          const double Aw10 = 12*A_p[INDEX4(k,1,m,0, numEq,3, numComp)]*w8;
6038                                          const double A_11 = A_p[INDEX4(k,1,m,1, numEq,3, numComp)];                                          const double Aw11 = 8*A_p[INDEX4(k,1,m,1, numEq,3, numComp)]*w22;
6039                                          const double A_12 = A_p[INDEX4(k,1,m,2, numEq,3, numComp)];                                          const double Aw12 = 12*A_p[INDEX4(k,1,m,2, numEq,3, numComp)]*w10;
6040                                          const double A_20 = A_p[INDEX4(k,2,m,0, numEq,3, numComp)];                                          const double Aw20 = 12*A_p[INDEX4(k,2,m,0, numEq,3, numComp)]*w11;
6041                                          const double A_21 = A_p[INDEX4(k,2,m,1, numEq,3, numComp)];                                          const double Aw21 = 12*A_p[INDEX4(k,2,m,1, numEq,3, numComp)]*w10;
6042                                          const double A_22 = A_p[INDEX4(k,2,m,2, numEq,3, numComp)];                                          const double Aw22 = 8*A_p[INDEX4(k,2,m,2, numEq,3, numComp)]*w13;
6043                                          const double tmp0 = 24*w11*(-A_02 + A_20);                                          const double tmp0 = Aw01 + Aw10;
6044                                          const double tmp1 = 24*w10*(A_12 - A_21);                                          const double tmp1 = Aw01 - Aw10;
6045                                          const double tmp2 = 12*w8*(A_01 + A_10);                                          const double tmp2 = Aw02 + Aw20;
6046                                          const double tmp3 = 12*w11*(-A_02 + A_20);                                          const double tmp3 = Aw02 - Aw20;
6047                                          const double tmp4 = 12*w10*(A_12 - A_21);                                          const double tmp4 = Aw12 + Aw21;
6048                                          const double tmp5 = 24*w8*(-A_01 - A_10);                                          const double tmp5 = Aw12 - Aw21;
6049                                          const double tmp6 = 12*w11*(-A_02 - A_20);                                          EM_S[INDEX4(k,m,0,0,numEq,numComp,8)]+=-4*Aw00 - 4*Aw11 - 4*Aw22 + 2*tmp0 + 2*tmp2 - 2*tmp4;
6050                                          const double tmp7 = 24*w10*(-A_12 + A_21);                                          EM_S[INDEX4(k,m,0,1,numEq,numComp,8)]+= 4*Aw00 - 2*Aw11 - 2*Aw22 - tmp4 + 2*tmp1 + 2*tmp3;
6051                                          const double tmp8 = 24*w8*(A_01 - A_10);                                          EM_S[INDEX4(k,m,0,2,numEq,numComp,8)]+=-2*Aw00 + 4*Aw11 - 2*Aw22 - 2*tmp1 + tmp2 - 2*tmp5;
6052                                          const double tmp9 = 24*w11*(A_02 - A_20);                                          EM_S[INDEX4(k,m,0,3,numEq,numComp,8)]+= 2*Aw00 + 2*Aw11 -   Aw22 - 2*tmp0 + tmp3 - tmp5;
6053                                          const double tmp10 = 12*w10*(A_12 + A_21);                                          EM_S[INDEX4(k,m,0,4,numEq,numComp,8)]+=-2*Aw00 - 2*Aw11 + 4*Aw22 - 2*tmp3 + 2*tmp5 + tmp0;
6054                                          const double tmp11 = 24*w8*(-A_01 + A_10);                                          EM_S[INDEX4(k,m,0,5,numEq,numComp,8)]+= 2*Aw00 -   Aw11 + 2*Aw22 - 2*tmp2 + tmp1 + tmp5;
6055                                          const double tmp12 = 12*w8*(-A_01 - A_10);                                          EM_S[INDEX4(k,m,0,6,numEq,numComp,8)]+=  -Aw00 + 2*Aw11 + 2*Aw22 + 2*tmp4 - tmp1 - tmp3;
6056                                          const double tmp13 = 12*w11*(A_02 - A_20);                                          EM_S[INDEX4(k,m,0,7,numEq,numComp,8)]+=   Aw00 +   Aw11 +   Aw22 + tmp4 - tmp0 - tmp2;
6057                                          const double tmp14 = 24*w8*(A_01 + A_10);                                          EM_S[INDEX4(k,m,1,0,numEq,numComp,8)]+= 4*Aw00 - 2*Aw11 - 2*Aw22 - 2*tmp3 - 2*tmp1 - tmp4;
6058                                          const double tmp15 = 12*w11*(A_02 + A_20);                                          EM_S[INDEX4(k,m,1,1,numEq,numComp,8)]+=-4*Aw00 - 4*Aw11 - 4*Aw22 - 2*tmp2 - 2*tmp4 - 2*tmp0;
6059                                          const double tmp16 = 12*w10*(-A_12 - A_21);                                          EM_S[INDEX4(k,m,1,2,numEq,numComp,8)]+= 2*Aw00 + 2*Aw11 -   Aw22 + 2*tmp0 - tmp5 - tmp3;
6060                                          const double tmp17 = 12*w10*(-A_12 + A_21);                                          EM_S[INDEX4(k,m,1,3,numEq,numComp,8)]+=-2*Aw00 + 4*Aw11 - 2*Aw22 - tmp2 - 2*tmp5 + 2*tmp1;
6061                                          const double tmp18 = 24*w11*(-A_02 - A_20);                                          EM_S[INDEX4(k,m,1,4,numEq,numComp,8)]+= 2*Aw00 -   Aw11 + 2*Aw22 + 2*tmp2 - tmp1 + tmp5;
6062                                          const double tmp19 = 12*w8*(A_01 - A_10);                                          EM_S[INDEX4(k,m,1,5,numEq,numComp,8)]+=-2*Aw00 - 2*Aw11 + 4*Aw22 + 2*tmp5 - tmp0 + 2*tmp3;
6063                                          const double tmp20 = 24*w10*(A_12 + A_21);                                          EM_S[INDEX4(k,m,1,6,numEq,numComp,8)]+=   Aw00 +   Aw11 +   Aw22 + tmp4 + tmp2 + tmp0;
6064                                          const double tmp21 = 24*w11*(A_02 + A_20);                                          EM_S[INDEX4(k,m,1,7,numEq,numComp,8)]+=  -Aw00 + 2*Aw11 + 2*Aw22 + tmp3 + tmp1 + 2*tmp4;
6065                                          const double tmp22 = 12*w8*(-A_01 + A_10);                                          EM_S[INDEX4(k,m,2,0,numEq,numComp,8)]+=-2*Aw00 + 4*Aw11 - 2*Aw22 + 2*tmp5 + tmp2 + 2*tmp1;
6066                                          const double tmp23 = 24*w10*(-A_12 - A_21);                                          EM_S[INDEX4(k,m,2,1,numEq,numComp,8)]+= 2*Aw00 + 2*Aw11 -   Aw22 + tmp3 + 2*tmp0 + tmp5;
6067                                          EM_S[INDEX4(k,m,0,0,numEq,numComp,8)]+=-32*A_00*w27 - 32*A_11*w22 - 32*A_22*w13 + tmp14 + tmp21 + tmp23;                                          EM_S[INDEX4(k,m,2,2,numEq,numComp,8)]+=-4*Aw00 - 4*Aw11 - 4*Aw22 + 2*tmp4 + 2*tmp2 - 2*tmp0;
6068                                          EM_S[INDEX4(k,m,0,1,numEq,numComp,8)]+=32*A_00*w27 - 16*A_11*w22 - 16*A_22*w13 + tmp16 + tmp8 + tmp9;                                          EM_S[INDEX4(k,m,2,3,numEq,numComp,8)]+= 4*Aw00 - 2*Aw11 - 2*Aw22 + tmp4 - 2*tmp1 + 2*tmp3;
6069                                          EM_S[INDEX4(k,m,0,2,numEq,numComp,8)]+=-16*A_00*w27 + 32*A_11*w22 - 16*A_22*w13 + tmp11 + tmp15 + tmp7;                                          EM_S[INDEX4(k,m,2,4,numEq,numComp,8)]+=  -Aw00 + 2*Aw11 + 2*Aw22 + tmp1 - 2*tmp4 - tmp3;
6070                                          EM_S[INDEX4(k,m,0,3,numEq,numComp,8)]+=16*A_00*w27 + 16*A_11*w22 - 8*A_22*w13 + tmp13 + tmp17 + tmp5;                                          EM_S[INDEX4(k,m,2,5,numEq,numComp,8)]+=   Aw00 +   Aw11 +   Aw22 - tmp4 + tmp0 - tmp2;
6071                                          EM_S[INDEX4(k,m,0,4,numEq,numComp,8)]+=-16*A_00*w27 - 16*A_11*w22 + 32*A_22*w13 + tmp0 + tmp1 + tmp2;                                          EM_S[INDEX4(k,m,2,6,numEq,numComp,8)]+=-2*Aw00 - 2*Aw11 + 4*Aw22 - 2*tmp3 - tmp0 - 2*tmp5;
6072                                          EM_S[INDEX4(k,m,0,5,numEq,numComp,8)]+=16*A_00*w27 - 8*A_11*w22 + 16*A_22*w13 + tmp18 + tmp19 + tmp4;                                          EM_S[INDEX4(k,m,2,7,numEq,numComp,8)]+= 2*Aw00 -   Aw11 + 2*Aw22 - tmp5 - 2*tmp2 - tmp1;
6073                                          EM_S[INDEX4(k,m,0,6,numEq,numComp,8)]+=-8*A_00*w27 + 16*A_11*w22 + 16*A_22*w13 + tmp20 + tmp22 + tmp3;                                          EM_S[INDEX4(k,m,3,0,numEq,numComp,8)]+= 2*Aw00 + 2*Aw11 -   Aw22 - tmp3 + tmp5 - 2*tmp0;
6074                                          EM_S[INDEX4(k,m,0,7,numEq,numComp,8)]+=8*A_00*w27 + 8*A_11*w22 + 8*A_22*w13 + tmp10 + tmp12 + tmp6;                                          EM_S[INDEX4(k,m,3,1,numEq,numComp,8)]+=-2*Aw00 + 4*Aw11 - 2*Aw22 + 2*tmp5 - 2*tmp1 - tmp2;
6075                                          EM_S[INDEX4(k,m,1,0,numEq,numComp,8)]+=32*A_00*w27 - 16*A_11*w22 - 16*A_22*w13 + tmp0 + tmp11 + tmp16;                                          EM_S[INDEX4(k,m,3,2,numEq,numComp,8)]+= 4*Aw00 - 2*Aw11 - 2*Aw22 - 2*tmp3 + tmp4 + 2*tmp1;
6076                                          EM_S[INDEX4(k,m,1,1,numEq,numComp,8)]+=-32*A_00*w27 - 32*A_11*w22 - 32*A_22*w13 + tmp18 + tmp23 + tmp5;                                          EM_S[INDEX4(k,m,3,3,numEq,numComp,8)]+=-4*Aw00 - 4*Aw11 - 4*Aw22 + 2*tmp0 - 2*tmp2 + 2*tmp4;
6077                                          EM_S[INDEX4(k,m,1,2,numEq,numComp,8)]+=16*A_00*w27 + 16*A_11*w22 - 8*A_22*w13 + tmp14 + tmp17 + tmp3;                                          EM_S[INDEX4(k,m,3,4,numEq,numComp,8)]+=   Aw00 +   Aw11 +   Aw22 - tmp0 + tmp2 - tmp4;
6078                                          EM_S[INDEX4(k,m,1,3,numEq,numComp,8)]+=-16*A_00*w27 + 32*A_11*w22 - 16*A_22*w13 + tmp6 + tmp7 + tmp8;                                          EM_S[INDEX4(k,m,3,5,numEq,numComp,8)]+=  -Aw00 + 2*Aw11 + 2*Aw22 + tmp3 - tmp1 - 2*tmp4;
6079                                          EM_S[INDEX4(k,m,1,4,numEq,numComp,8)]+=16*A_00*w27 - 8*A_11*w22 + 16*A_22*w13 + tmp21 + tmp22 + tmp4;                                          EM_S[INDEX4(k,m,3,6,numEq,numComp,8)]+= 2*Aw00 -   Aw11 + 2*Aw22 - tmp5 + tmp1 + 2*tmp2;
6080                                          EM_S[INDEX4(k,m,1,5,numEq,numComp,8)]+=-16*A_00*w27 - 16*A_11*w22 + 32*A_22*w13 + tmp1 + tmp12 + tmp9;                                          EM_S[INDEX4(k,m,3,7,numEq,numComp,8)]+=-2*Aw00 - 2*Aw11 + 4*Aw22 + tmp0 - 2*tmp5 + 2*tmp3;
6081                                          EM_S[INDEX4(k,m,1,6,numEq,numComp,8)]+=8*A_00*w27 + 8*A_11*w22 + 8*A_22*w13 + tmp10 + tmp15 + tmp2;                                          EM_S[INDEX4(k,m,4,0,numEq,numComp,8)]+=-2*Aw00 - 2*Aw11 + 4*Aw22 + tmp0 - 2*tmp5 + 2*tmp3;
6082                                          EM_S[INDEX4(k,m,1,7,numEq,numComp,8)]+=-8*A_00*w27 + 16*A_11*w22 + 16*A_22*w13 + tmp13 + tmp19 + tmp20;                                          EM_S[INDEX4(k,m,4,1,numEq,numComp,8)]+= 2*Aw00 -   Aw11 + 2*Aw22 - tmp5 + tmp1 + 2*tmp2;
6083                                          EM_S[INDEX4(k,m,2,0,numEq,numComp,8)]+=-16*A_00*w27 + 32*A_11*w22 - 16*A_22*w13 + tmp1 + tmp15 + tmp8;                                          EM_S[INDEX4(k,m,4,2,numEq,numComp,8)]+=  -Aw00 + 2*Aw11 + 2*Aw22 + tmp3 - tmp1 - 2*tmp4;
6084                                          EM_S[INDEX4(k,m,2,1,numEq,numComp,8)]+=16*A_00*w27 + 16*A_11*w22 - 8*A_22*w13 + tmp13 + tmp14 + tmp4;                                          EM_S[INDEX4(k,m,4,3,numEq,numComp,8)]+=   Aw00 +   Aw11 +   Aw22 - tmp0 + tmp2 - tmp4;
6085                                          EM_S[INDEX4(k,m,2,2,numEq,numComp,8)]+=-32*A_00*w27 - 32*A_11*w22 - 32*A_22*w13 + tmp20 + tmp21 + tmp5;                                          EM_S[INDEX4(k,m,4,4,numEq,numComp,8)]+=-4*Aw00 - 4*Aw11 - 4*Aw22 + 2*tmp0 - 2*tmp2 + 2*tmp4;
6086                                          EM_S[INDEX4(k,m,2,3,numEq,numComp,8)]+=32*A_00*w27 - 16*A_11*w22 - 16*A_22*w13 + tmp10 + tmp11 + tmp9;                                          EM_S[INDEX4(k,m,4,5,numEq,numComp,8)]+= 4*Aw00 - 2*Aw11 - 2*Aw22 - 2*tmp3 + tmp4 + 2*tmp1;
6087                                          EM_S[INDEX4(k,m,2,4,numEq,numComp,8)]+=-8*A_00*w27 + 16*A_11*w22 + 16*A_22*w13 + tmp19 + tmp23 + tmp3;                                          EM_S[INDEX4(k,m,4,6,numEq,numComp,8)]+=-2*Aw00 + 4*Aw11 - 2*Aw22 + 2*tmp5 - 2*tmp1 - tmp2;
6088                                          EM_S[INDEX4(k,m,2,5,numEq,numComp,8)]+=8*A_00*w27 + 8*A_11*w22 + 8*A_22*w13 + tmp16 + tmp2 + tmp6;                                          EM_S[INDEX4(k,m,4,7,numEq,numComp,8)]+= 2*Aw00 + 2*Aw11 -   Aw22 - tmp3 + tmp5 - 2*tmp0;
6089                                          EM_S[INDEX4(k,m,2,6,numEq,numComp,8)]+=-16*A_00*w27 - 16*A_11*w22 + 32*A_22*w13 + tmp0 + tmp12 + tmp7;                                          EM_S[INDEX4(k,m,5,0,numEq,numComp,8)]+= 2*Aw00 -   Aw11 + 2*Aw22 - tmp5 - 2*tmp2 - tmp1;
6090                                          EM_S[INDEX4(k,m,2,7,numEq,numComp,8)]+=16*A_00*w27 - 8*A_11*w22 + 16*A_22*w13 + tmp17 + tmp18 + tmp22;                                          EM_S[INDEX4(k,m,5,1,numEq,numComp,8)]+=-2*Aw00 - 2*Aw11 + 4*Aw22 - 2*tmp3 - tmp0 - 2*tmp5;
6091                                          EM_S[INDEX4(k,m,3,0,numEq,numComp,8)]+=16*A_00*w27 + 16*A_11*w22 - 8*A_22*w13 + tmp3 + tmp4 + tmp5;                                          EM_S[INDEX4(k,m,5,2,numEq,numComp,8)]+=   Aw00 +   Aw11 +   Aw22 - tmp4 + tmp0 - tmp2;
6092                                          EM_S[INDEX4(k,m,3,1,numEq,numComp,8)]+=-16*A_00*w27 + 32*A_11*w22 - 16*A_22*w13 + tmp1 + tmp11 + tmp6;                                          EM_S[INDEX4(k,m,5,3,numEq,numComp,8)]+=  -Aw00 + 2*Aw11 + 2*Aw22 + tmp1 - 2*tmp4 - tmp3;
6093                                          EM_S[INDEX4(k,m,3,2,numEq,numComp,8)]+=32*A_00*w27 - 16*A_11*w22 - 16*A_22*w13 + tmp0 + tmp10 + tmp8;                                          EM_S[INDEX4(k,m,5,4,numEq,numComp,8)]+= 4*Aw00 - 2*Aw11 - 2*Aw22 + tmp4 - 2*tmp1 + 2*tmp3;
6094                                          EM_S[INDEX4(k,m,3,3,numEq,numComp,8)]+=-32*A_00*w27 - 32*A_11*w22 - 32*A_22*w13 + tmp14 + tmp18 + tmp20;                                          EM_S[INDEX4(k,m,5,5,numEq,numComp,8)]+=-4*Aw00 - 4*Aw11 - 4*Aw22 + 2*tmp4 + 2*tmp2 - 2*tmp0;
6095                                          EM_S[INDEX4(k,m,3,4,numEq,numComp,8)]+=8*A_00*w27 + 8*A_11*w22 + 8*A_22*w13 + tmp12 + tmp15 + tmp16;                                          EM_S[INDEX4(k,m,5,6,numEq,numComp,8)]+= 2*Aw00 + 2*Aw11 -   Aw22 + tmp3 + 2*tmp0 + tmp5;
6096                                          EM_S[INDEX4(k,m,3,5,numEq,numComp,8)]+=-8*A_00*w27 + 16*A_11*w22 + 16*A_22*w13 + tmp13 + tmp22 + tmp23;                                          EM_S[INDEX4(k,m,5,7,numEq,numComp,8)]+=-2*Aw00 + 4*Aw11 - 2*Aw22 + 2*tmp5 + tmp2 + 2*tmp1;
6097                                          EM_S[INDEX4(k,m,3,6,numEq,numComp,8)]+=16*A_00*w27 - 8*A_11*w22 + 16*A_22*w13 + tmp17 + tmp19 + tmp21;                                          EM_S[INDEX4(k,m,6,0,numEq,numComp,8)]+=  -Aw00 + 2*Aw11 + 2*Aw22 + tmp3 + tmp1 + 2*tmp4;
6098                                          EM_S[INDEX4(k,m,3,7,numEq,numComp,8)]+=-16*A_00*w27 - 16*A_11*w22 + 32*A_22*w13 + tmp2 + tmp7 + tmp9;                                          EM_S[INDEX4(k,m,6,1,numEq,numComp,8)]+=   Aw00 +   Aw11 +   Aw22 + tmp4 + tmp2 + tmp0;
6099                                          EM_S[INDEX4(k,m,4,0,numEq,numComp,8)]+=-16*A_00*w27 - 16*A_11*w22 + 32*A_22*w13 + tmp2 + tmp7 + tmp9;                                          EM_S[INDEX4(k,m,6,2,numEq,numComp,8)]+=-2*Aw00 - 2*Aw11 + 4*Aw22 + 2*tmp5 - tmp0 + 2*tmp3;
6100                                          EM_S[INDEX4(k,m,4,1,numEq,numComp,8)]+=16*A_00*w27 - 8*A_11*w22 + 16*A_22*w13 + tmp17 + tmp19 + tmp21;                                          EM_S[INDEX4(k,m,6,3,numEq,numComp,8)]+= 2*Aw00 -   Aw11 + 2*Aw22 + 2*tmp2 - tmp1 + tmp5;
6101                                          EM_S[INDEX4(k,m,4,2,numEq,numComp,8)]+=-8*A_00*w27 + 16*A_11*w22 + 16*A_22*w13 + tmp13 + tmp22 + tmp23;                                          EM_S[INDEX4(k,m,6,4,numEq,numComp,8)]+=-2*Aw00 + 4*Aw11 - 2*Aw22 - tmp2 - 2*tmp5 + 2*tmp1;
6102                                          EM_S[INDEX4(k,m,4,3,numEq,numComp,8)]+=8*A_00*w27 + 8*A_11*w22 + 8*A_22*w13 + tmp12 + tmp15 + tmp16;                                          EM_S[INDEX4(k,m,6,5,numEq,numComp,8)]+= 2*Aw00 + 2*Aw11 -   Aw22 + 2*tmp0 - tmp5 - tmp3;
6103                                          EM_S[INDEX4(k,m,4,4,numEq,numComp,8)]+=-32*A_00*w27 - 32*A_11*w22 - 32*A_22*w13 + tmp14 + tmp18 + tmp20;                                          EM_S[INDEX4(k,m,6,6,numEq,numComp,8)]+=-4*Aw00 - 4*Aw11 - 4*Aw22 - 2*tmp2 - 2*tmp4 - 2*tmp0;
6104                                          EM_S[INDEX4(k,m,4,5,numEq,numComp,8)]+=32*A_00*w27 - 16*A_11*w22 - 16*A_22*w13 + tmp0 + tmp10 + tmp8;                                          EM_S[INDEX4(k,m,6,7,numEq,numComp,8)]+= 4*Aw00 - 2*Aw11 - 2*Aw22 - 2*tmp3 - 2*tmp1 - tmp4;
6105                                          EM_S[INDEX4(k,m,4,6,numEq,numComp,8)]+=-16*A_00*w27 + 32*A_11*w22 - 16*A_22*w13 + tmp1 + tmp11 + tmp6;                                          EM_S[INDEX4(k,m,7,0,numEq,numComp,8)]+=   Aw00 +   Aw11 +   Aw22 + tmp4 - tmp0 - tmp2;
6106                                          EM_S[INDEX4(k,m,4,7,numEq,numComp,8)]+=16*A_00*w27 + 16*A_11*w22 - 8*A_22*w13 + tmp3 + tmp4 + tmp5;                                          EM_S[INDEX4(k,m,7,1,numEq,numComp,8)]+=  -Aw00 + 2*Aw11 + 2*Aw22 + 2*tmp4 - tmp1 - tmp3;
6107                                          EM_S[INDEX4(k,m,5,0,numEq,numComp,8)]+=16*A_00*w27 - 8*A_11*w22 + 16*A_22*w13 + tmp17 + tmp18 + tmp22;                                          EM_S[INDEX4(k,m,7,2,numEq,numComp,8)]+= 2*Aw00 -   Aw11 + 2*Aw22 - 2*tmp2 + tmp1 + tmp5;
6108                                          EM_S[INDEX4(k,m,5,1,numEq,numComp,8)]+=-16*A_00*w27 - 16*A_11*w22 + 32*A_22*w13 + tmp0 + tmp12 + tmp7;                                          EM_S[INDEX4(k,m,7,3,numEq,numComp,8)]+=-2*Aw00 - 2*Aw11 + 4*Aw22 - 2*tmp3 + 2*tmp5 + tmp0;
6109                                          EM_S[INDEX4(k,m,5,2,numEq,numComp,8)]+=8*A_00*w27 + 8*A_11*w22 + 8*A_22*w13 + tmp16 + tmp2 + tmp6;                                          EM_S[INDEX4(k,m,7,4,numEq,numComp,8)]+= 2*Aw00 + 2*Aw11 -   Aw22 + tmp3 - tmp5 - 2*tmp0;
6110                                          EM_S[INDEX4(k,m,5,3,numEq,numComp,8)]+=-8*A_00*w27 + 16*A_11*w22 + 16*A_22*w13 + tmp19 + tmp23 + tmp3;                                          EM_S[INDEX4(k,m,7,5,numEq,numComp,8)]+=-2*Aw00 + 4*Aw11 - 2*Aw22 - 2*tmp1 + tmp2 - 2*tmp5;
6111                                          EM_S[INDEX4(k,m,5,4,numEq,numComp,8)]+=32*A_00*w27 - 16*A_11*w22 - 16*A_22*w13 + tmp10 + tmp11 + tmp9;                                          EM_S[INDEX4(k,m,7,6,numEq,numComp,8)]+= 4*Aw00 - 2*Aw11 - 2*Aw22 - tmp4 + 2*tmp1 + 2*tmp3;
6112                                          EM_S[INDEX4(k,m,5,5,numEq,numComp,8)]+=-32*A_00*w27 - 32*A_11*w22 - 32*A_22*w13 + tmp20 + tmp21 + tmp5;                                          EM_S[INDEX4(k,m,7,7,numEq,numComp,8)]+=-4*Aw00 - 4*Aw11 - 4*Aw22 + 2*tmp0 + 2*tmp2 - 2*tmp4;
                                         EM_S[INDEX4(k,m,5,6,numEq,numComp,8)]+=16*A_00*w27 + 16*A_11*w22 - 8*A_22*w13 + tmp13 + tmp14 + tmp4;  
                                         EM_S[INDEX4(k,m,5,7,numEq,numComp,8)]+=-16*A_00*w27 + 32*A_11*w22 - 16*A_22*w13 + tmp1 + tmp15 + tmp8;  
                                         EM_S[INDEX4(k,m,6,0,numEq,numComp,8)]+=-8*A_00*w27 + 16*A_11*w22 + 16*A_22*w13 + tmp13 + tmp19 + tmp20;  
                                         EM_S[INDEX4(k,m,6,1,numEq,numComp,8)]+=8*A_00*w27 + 8*A_11*w22 + 8*A_22*w13 + tmp10 + tmp15 + tmp2;  
                                         EM_S[INDEX4(k,m,6,2,numEq,numComp,8)]+=-16*A_00*w27 - 16*A_11*w22 + 32*A_22*w13 + tmp1 + tmp12 + tmp9;  
                                         EM_S[INDEX4(k,m,6,3,numEq,numComp,8)]+=16*A_00*w27 - 8*A_11*w22 + 16*A_22*w13 + tmp21 + tmp22 + tmp4;  
                                         EM_S[INDEX4(k,m,6,4,numEq,numComp,8)]+=-16*A_00*w27 + 32*A_11*w22 - 16*A_22*w13 + tmp6 + tmp7 + tmp8;  
                                         EM_S[INDEX4(k,m,6,5,numEq,numComp,8)]+=16*A_00*w27 + 16*A_11*w22 - 8*A_22*w13 + tmp14 + tmp17 + tmp3;  
                                         EM_S[INDEX4(k,m,6,6,numEq,numComp,8)]+=-32*A_00*w27 - 32*A_11*w22 - 32*A_22*w13 + tmp18 + tmp23 + tmp5;  
                                         EM_S[INDEX4(k,m,6,7,numEq,numComp,8)]+=32*A_00*w27 - 16*A_11*w22 - 16*A_22*w13 + tmp0 + tmp11 + tmp16;  
                                         EM_S[INDEX4(k,m,7,0,numEq,numComp,8)]+=8*A_00*w27 + 8*A_11*w22 + 8*A_22*w13 + tmp10 + tmp12 + tmp6;  
                                         EM_S[INDEX4(k,m,7,1,numEq,numComp,8)]+=-8*A_00*w27 + 16*A_11*w22 + 16*A_22*w13 + tmp20 + tmp22 + tmp3;  
                                         EM_S[INDEX4(k,m,7,2,numEq,numComp,8)]+=16*A_00*w27 - 8*A_11*w22 + 16*A_22*w13 + tmp18 + tmp19 + tmp4;  
                                         EM_S[INDEX4(k,m,7,3,numEq,numComp,8)]+=-16*A_00*w27 - 16*A_11*w22 + 32*A_22*w13 + tmp0 + tmp1 + tmp2;  
                                         EM_S[INDEX4(k,m,7,4,numEq,numComp,8)]+=16*A_00*w27 + 16*A_11*w22 - 8*A_22*w13 + tmp13 + tmp17 + tmp5;  
                                         EM_S[INDEX4(k,m,7,5,numEq,numComp,8)]+=-16*A_00*w27 + 32*A_11*w22 - 16*A_22*w13 + tmp11 + tmp15 + tmp7;  
                                         EM_S[INDEX4(k,m,7,6,numEq,numComp,8)]+=32*A_00*w27 - 16*A_11*w22 - 16*A_22*w13 + tmp16 + tmp8 + tmp9;  
                                         EM_S[INDEX4(k,m,7,7,numEq,numComp,8)]+=-32*A_00*w27 - 32*A_11*w22 - 32*A_22*w13 + tmp14 + tmp21 + tmp23;  
6113                                      }                                      }
6114                                  }                                  }
6115                              }                              }
# Line 6152  void Brick::assemblePDESystem(Paso_Syste Line 6147  void Brick::assemblePDESystem(Paso_Syste
6147                                          const double B_0_7 = B_p[INDEX4(k,0,m,7, numEq,3,numComp)];                                          const double B_0_7 = B_p[INDEX4(k,0,m,7, numEq,3,numComp)];
6148                                          const double B_1_7 = B_p[INDEX4(k,1,m,7, numEq,3,numComp)];                                          const double B_1_7 = B_p[INDEX4(k,1,m,7, numEq,3,numComp)];
6149                                          const double B_2_7 = B_p[INDEX4(k,2,m,7, numEq,3,numComp)];                                          const double B_2_7 = B_p[INDEX4(k,2,m,7, numEq,3,numComp)];
6150                                          const double tmp0 = w38*(B_0_3 + B_0_7);                                          const double tmp0 = w38*(B_2_1 + B_2_2);
6151                                          const double tmp1 = w31*(B_1_0 + B_1_4);                                          const double tmp1 = w42*(B_1_3 + B_1_7);
6152                                          const double tmp2 = w42*(B_2_5 + B_2_6);                                          const double tmp2 = w41*(B_0_3 + B_0_7);
6153                                          const double tmp3 = w35*(B_2_1 + B_2_2);                                          const double tmp3 = w37*(B_1_1 + B_1_5);
6154                                          const double tmp4 = w37*(B_1_2 + B_1_6);                                          const double tmp4 = w39*(B_0_2 + B_0_6);
6155                                          const double tmp5 = w39*(B_1_3 + B_1_7);                                          const double tmp5 = w45*(B_2_5 + B_2_6);
6156                                          const double tmp6 = w36*(B_0_2 + B_0_6);                                          const double tmp6 = w36*(B_0_1 + B_0_5);
6157                                          const double tmp7 = w33*(B_0_1 + B_0_5);                                          const double tmp7 = w40*(B_1_2 + B_1_6);
6158                                          const double tmp8 = w30*(B_0_0 + B_0_4);                                          const double tmp8 = w33*(B_0_0 + B_0_4);
6159                                          const double tmp9 = w34*(B_1_1 + B_1_5);                                          const double tmp9 = w34*(B_1_0 + B_1_4);
6160                                          const double tmp10 = w38*(-B_0_5 - B_0_7);                                          const double tmp10 = w38*(B_2_4 + B_2_5 + B_2_6 + B_2_7);
6161                                          const double tmp11 = w31*(-B_1_0 - B_1_1);                                          const double tmp11 = w42*(-B_1_6 - B_1_7);
6162                                          const double tmp12 = w42*(B_2_0 + B_2_1 + B_2_2 + B_2_3);                                          const double tmp12 = w41*(-B_0_5 - B_0_7);
6163                                          const double tmp13 = w35*(B_2_4 + B_2_5 + B_2_6 + B_2_7);                                          const double tmp13 = w37*(-B_1_4 - B_1_5);
6164                                          const double tmp14 = w37*(-B_1_2 - B_1_3);                                          const double tmp14 = w39*(-B_0_4 - B_0_6);
6165                                          const double tmp15 = w39*(-B_1_6 - B_1_7);                                          const double tmp15 = w45*(B_2_0 + B_2_1 + B_2_2 + B_2_3);
6166                                          const double tmp16 = w36*(-B_0_4 - B_0_6);                                          const double tmp16 = w36*(-B_0_1 - B_0_3);
6167                                          const double tmp17 = w33*(-B_0_1 - B_0_3);                                          const double tmp17 = w40*(-B_1_2 - B_1_3);
6168                                          const double tmp18 = w30*(-B_0_0 - B_0_2);                                          const double tmp18 = w33*(-B_0_0 - B_0_2);
6169                                          const double tmp19 = w34*(-B_1_4 - B_1_5);                                          const double tmp19 = w34*(-B_1_0 - B_1_1);
6170                                          const double tmp20 = w38*(B_0_1 + B_0_3);                                          const double tmp20 = w38*(-B_2_5 - B_2_7);
6171                                          const double tmp21 = w42*(-B_2_0 - B_2_2);                                          const double tmp21 = w35*(-B_2_4 - B_2_6);
6172                                          const double tmp22 = w35*(-B_2_5 - B_2_7);                                          const double tmp22 = w41*(B_0_1 + B_0_3);
6173                                          const double tmp23 = w37*(-B_1_0 - B_1_5);                                          const double tmp23 = w37*(-B_1_2 - B_1_7);
6174                                          const double tmp24 = w32*(-B_2_4 - B_2_6);                                          const double tmp24 = w39*(B_0_0 + B_0_2);
6175                                          const double tmp25 = w36*(B_0_0 + B_0_2);                                          const double tmp25 = w45*(-B_2_0 - B_2_2);
6176                                          const double tmp26 = w33*(B_0_5 + B_0_7);                                          const double tmp26 = w36*(B_0_5 + B_0_7);
6177                                          const double tmp27 = w30*(B_0_4 + B_0_6);                                          const double tmp27 = w40*(-B_1_0 - B_1_5);
6178                                          const double tmp28 = w43*(-B_2_1 - B_2_3);                                          const double tmp28 = w33*(B_0_4 + B_0_6);
6179                                          const double tmp29 = w34*(-B_1_2 - B_1_7);                                          const double tmp29 = w46*(-B_2_1 - B_2_3);
6180                                          const double tmp30 = w38*(-B_0_4 - B_0_6);                                          const double tmp30 = w38*(B_2_0 + B_2_2);
6181                                          const double tmp31 = w42*(B_2_5 + B_2_7);                                          const double tmp31 = w35*(B_2_1 + B_2_3);
6182                                          const double tmp32 = w35*(B_2_0 + B_2_2);                                          const double tmp32 = w41*(-B_0_4 - B_0_6);
6183                                          const double tmp33 = w37*(B_1_2 + B_1_7);                                          const double tmp33 = w37*(B_1_0 + B_1_5);
6184                                          const double tmp34 = w32*(B_2_1 + B_2_3);                                          const double tmp34 = w39*(-B_0_5 - B_0_7);
6185                                          const double tmp35 = w36*(-B_0_5 - B_0_7);                                          const double tmp35 = w45*(B_2_5 + B_2_7);
6186                                          const double tmp36 = w33*(-B_0_0 - B_0_2);                                          const double tmp36 = w36*(-B_0_0 - B_0_2);
6187                                          const double tmp37 = w30*(-B_0_1 - B_0_3);                                          const double tmp37 = w40*(B_1_2 + B_1_7);
6188                                          const double tmp38 = w43*(B_2_4 + B_2_6);                                          const double tmp38 = w33*(-B_0_1 - B_0_3);
6189                                          const double tmp39 = w34*(B_1_0 + B_1_5);                                          const double tmp39 = w46*(B_2_4 + B_2_6);
6190                                          const double tmp40 = w38*(B_0_0 + B_0_2);                                          const double tmp40 = w38*(-B_2_0 - B_2_1 - B_2_2 - B_2_3);
6191                                          const double tmp41 = w31*(B_1_6 + B_1_7);                                          const double tmp41 = w42*(B_1_0 + B_1_1);
6192                                          const double tmp42 = w42*(-B_2_4 - B_2_5 - B_2_6 - B_2_7);                                          const double tmp42 = w41*(B_0_0 + B_0_2);
6193                                          const double tmp43 = w35*(-B_2_0 - B_2_1 - B_2_2 - B_2_3);                                          const double tmp43 = w37*(B_1_2 + B_1_3);
6194                                          const double tmp44 = w37*(B_1_4 + B_1_5);                                          const double tmp44 = w39*(B_0_1 + B_0_3);
6195                                          const double tmp45 = w39*(B_1_0 + B_1_1);                                          const double tmp45 = w45*(-B_2_4 - B_2_5 - B_2_6 - B_2_7);
6196                                          const double tmp46 = w36*(B_0_1 + B_0_3);                                          const double tmp46 = w36*(B_0_4 + B_0_6);
6197                                          const double tmp47 = w33*(B_0_4 + B_0_6);                                          const double tmp47 = w40*(B_1_4 + B_1_5);
6198                                          const double tmp48 = w30*(B_0_5 + B_0_7);                                          const double tmp48 = w33*(B_0_5 + B_0_7);
6199                                          const double tmp49 = w34*(B_1_2 + B_1_3);                                          const double tmp49 = w34*(B_1_6 + B_1_7);
6200                                          const double tmp50 = w31*(-B_1_2 - B_1_3);                                          const double tmp50 = w38*(B_2_0 + B_2_1);
6201                                          const double tmp51 = w42*(B_2_6 + B_2_7);                                          const double tmp51 = w42*(-B_1_4 - B_1_5);
6202                                          const double tmp52 = w35*(B_2_0 + B_2_1);                                          const double tmp52 = w35*(B_2_2 + B_2_3);
6203                                          const double tmp53 = w37*(-B_1_0 - B_1_1);                                          const double tmp53 = w37*(-B_1_6 - B_1_7);
6204                                          const double tmp54 = w32*(B_2_2 + B_2_3);                                          const double tmp54 = w39*(B_0_0 + B_0_6);
6205                                          const double tmp55 = w39*(-B_1_4 - B_1_5);                                          const double tmp55 = w45*(B_2_6 + B_2_7);
6206                                          const double tmp56 = w36*(B_0_0 + B_0_6);                                          const double tmp56 = w36*(B_0_1 + B_0_7);
6207                                          const double tmp57 = w33*(B_0_1 + B_0_7);                                          const double tmp57 = w40*(-B_1_0 - B_1_1);
6208                                          const double tmp58 = w43*(B_2_4 + B_2_5);                                          const double tmp58 = w46*(B_2_4 + B_2_5);
6209                                          const double tmp59 = w34*(-B_1_6 - B_1_7);                                          const double tmp59 = w34*(-B_1_2 - B_1_3);
6210                                          const double tmp60 = w42*(-B_2_0 - B_2_1 - B_2_2 - B_2_3);                                          const double tmp60 = w38*(-B_2_4 - B_2_5 - B_2_6 - B_2_7);
6211                                          const double tmp61 = w35*(-B_2_4 - B_2_5 - B_2_6 - B_2_7);                                          const double tmp61 = w37*(-B_1_2 - B_1_3 - B_1_6 - B_1_7);
6212                                          const double tmp62 = w37*(-B_1_0 - B_1_1 - B_1_4 - B_1_5);                                          const double tmp62 = w39*(-B_0_1 - B_0_3 - B_0_5 - B_0_7);
6213                                          const double tmp63 = w36*(-B_0_1 - B_0_3 - B_0_5 - B_0_7);                                          const double tmp63 = w45*(-B_2_0 - B_2_1 - B_2_2 - B_2_3);
6214                                          const double tmp64 = w33*(-B_0_0 - B_0_2 - B_0_4 - B_0_6);                                          const double tmp64 = w36*(-B_0_0 - B_0_2 - B_0_4 - B_0_6);
6215                                          const double tmp65 = w34*(-B_1_2 - B_1_3 - B_1_6 - B_1_7);                                          const double tmp65 = w40*(-B_1_0 - B_1_1 - B_1_4 - B_1_5);
6216                                          const double tmp66 = w38*(B_0_4 + B_0_6);                                          const double tmp66 = w41*(B_0_4 + B_0_6);
6217                                          const double tmp67 = w36*(B_0_5 + B_0_7);                                          const double tmp67 = w39*(B_0_5 + B_0_7);
6218                                          const double tmp68 = w33*(B_0_0 + B_0_2);                                          const double tmp68 = w36*(B_0_0 + B_0_2);
6219                                          const double tmp69 = w30*(B_0_1 + B_0_3);                                          const double tmp69 = w33*(B_0_1 + B_0_3);
6220                                          const double tmp70 = w38*(-B_0_2 - B_0_6);                                          const double tmp70 = w38*(-B_2_4 - B_2_7);
6221                                          const double tmp71 = w31*(B_1_1 + B_1_5);                                          const double tmp71 = w42*(B_1_2 + B_1_6);
6222                                          const double tmp72 = w42*(-B_2_0 - B_2_3);                                          const double tmp72 = w41*(-B_0_2 - B_0_6);
6223                                          const double tmp73 = w35*(-B_2_4 - B_2_7);                                          const double tmp73 = w37*(B_1_0 + B_1_4);
6224                                          const double tmp74 = w37*(B_1_3 + B_1_7);                                          const double tmp74 = w39*(-B_0_3 - B_0_7);
6225                                          const double tmp75 = w39*(B_1_2 + B_1_6);                                          const double tmp75 = w45*(-B_2_0 - B_2_3);
6226                                          const double tmp76 = w36*(-B_0_3 - B_0_7);                                          const double tmp76 = w36*(-B_0_0 - B_0_4);
6227                                          const double tmp77 = w33*(-B_0_0 - B_0_4);                                          const double tmp77 = w40*(B_1_3 + B_1_7);
6228                                          const double tmp78 = w30*(-B_0_1 - B_0_5);                                          const double tmp78 = w33*(-B_0_1 - B_0_5);
6229                                          const double tmp79 = w34*(B_1_0 + B_1_4);                                          const double tmp79 = w34*(B_1_1 + B_1_5);
6230                                          const double tmp80 = w36*(B_0_0 + B_0_2 + B_0_4 + B_0_6);                                          const double tmp80 = w39*(B_0_0 + B_0_2 + B_0_4 + B_0_6);
6231                                          const double tmp81 = w33*(B_0_1 + B_0_3 + B_0_5 + B_0_7);                                          const double tmp81 = w36*(B_0_1 + B_0_3 + B_0_5 + B_0_7);
6232                                          const double tmp82 = w38*(B_0_1 + B_0_5);                                          const double tmp82 = w38*(B_2_0 + B_2_3);
6233                                          const double tmp83 = w31*(-B_1_2 - B_1_6);                                          const double tmp83 = w42*(-B_1_1 - B_1_5);
6234                                          const double tmp84 = w42*(B_2_4 + B_2_7);                                          const double tmp84 = w41*(B_0_1 + B_0_5);
6235                                          const double tmp85 = w35*(B_2_0 + B_2_3);                                          const double tmp85 = w37*(-B_1_3 - B_1_7);
6236                                          const double tmp86 = w37*(-B_1_0 - B_1_4);                                          const double tmp86 = w39*(B_0_0 + B_0_4);
6237                                          const double tmp87 = w39*(-B_1_1 - B_1_5);                                          const double tmp87 = w45*(B_2_4 + B_2_7);
6238                                          const double tmp88 = w36*(B_0_0 + B_0_4);                                          const double tmp88 = w36*(B_0_3 + B_0_7);
6239                                          const double tmp89 = w33*(B_0_3 + B_0_7);                                          const double tmp89 = w40*(-B_1_0 - B_1_4);
6240                                          const double tmp90 = w30*(B_0_2 + B_0_6);                                          const double tmp90 = w33*(B_0_2 + B_0_6);
6241                                          const double tmp91 = w34*(-B_1_3 - B_1_7);                                          const double tmp91 = w34*(-B_1_2 - B_1_6);
6242                                          const double tmp92 = w42*(-B_2_1 - B_2_2);                                          const double tmp92 = w38*(-B_2_5 - B_2_6);
6243                                          const double tmp93 = w35*(-B_2_5 - B_2_6);                                          const double tmp93 = w45*(-B_2_1 - B_2_2);
6244                                          const double tmp94 = w37*(B_1_2 + B_1_3 + B_1_6 + B_1_7);                                          const double tmp94 = w37*(B_1_0 + B_1_1 + B_1_4 + B_1_5);
6245                                          const double tmp95 = w34*(B_1_0 + B_1_1 + B_1_4 + B_1_5);                                          const double tmp95 = w40*(B_1_2 + B_1_3 + B_1_6 + B_1_7);
6246                                          const double tmp96 = w38*(-B_0_1 - B_0_3);                                          const double tmp96 = w42*(-B_1_2 - B_1_3);
6247                                          const double tmp97 = w31*(-B_1_4 - B_1_5);                                          const double tmp97 = w41*(-B_0_1 - B_0_3);
6248                                          const double tmp98 = w37*(-B_1_6 - B_1_7);                                          const double tmp98 = w37*(-B_1_0 - B_1_1);
6249                                          const double tmp99 = w39*(-B_1_2 - B_1_3);                                          const double tmp99 = w39*(-B_0_0 - B_0_2);
6250                                          const double tmp100 = w36*(-B_0_0 - B_0_2);                                          const double tmp100 = w36*(-B_0_5 - B_0_7);
6251                                          const double tmp101 = w33*(-B_0_5 - B_0_7);                                          const double tmp101 = w40*(-B_1_6 - B_1_7);
6252                                          const double tmp102 = w30*(-B_0_4 - B_0_6);                                          const double tmp102 = w33*(-B_0_4 - B_0_6);
6253                                          const double tmp103 = w34*(-B_1_0 - B_1_1);                                          const double tmp103 = w34*(-B_1_4 - B_1_5);
6254                                          const double tmp104 = w38*(B_0_2 + B_0_6);                                          const double tmp104 = w38*(B_2_6 + B_2_7);
6255                                          const double tmp105 = w42*(B_2_0 + B_2_1);                                          const double tmp105 = w35*(B_2_4 + B_2_5);
6256                                          const double tmp106 = w35*(B_2_6 + B_2_7);                                          const double tmp106 = w41*(B_0_2 + B_0_6);
6257                                          const double tmp107 = w37*(B_1_0 + B_1_1 + B_1_4 + B_1_5);                                          const double tmp107 = w37*(B_1_2 + B_1_3 + B_1_6 + B_1_7);
6258                                          const double tmp108 = w32*(B_2_4 + B_2_5);                                          const double tmp108 = w39*(B_0_3 + B_0_7);
6259                                          const double tmp109 = w36*(B_0_3 + B_0_7);                                          const double tmp109 = w45*(B_2_0 + B_2_1);
6260                                          const double tmp110 = w33*(B_0_0 + B_0_4);                                          const double tmp110 = w36*(B_0_0 + B_0_4);
6261                                          const double tmp111 = w30*(B_0_1 + B_0_5);                                          const double tmp111 = w40*(B_1_0 + B_1_1 + B_1_4 + B_1_5);
6262                                          const double tmp112 = w43*(B_2_2 + B_2_3);                                          const double tmp112 = w33*(B_0_1 + B_0_5);
6263                                          const double tmp113 = w34*(B_1_2 + B_1_3 + B_1_6 + B_1_7);                                          const double tmp113 = w46*(B_2_2 + B_2_3);
6264                                          const double tmp114 = w38*(-B_0_0 - B_0_4);                                          const double tmp114 = w42*(-B_1_0 - B_1_4);
6265                                          const double tmp115 = w31*(-B_1_3 - B_1_7);                                          const double tmp115 = w41*(-B_0_0 - B_0_4);
6266                                          const double tmp116 = w37*(-B_1_1 - B_1_5);                                          const double tmp116 = w37*(-B_1_2 - B_1_6);
6267                                          const double tmp117 = w39*(-B_1_0 - B_1_4);                                          const double tmp117 = w39*(-B_0_1 - B_0_5);
6268                                          const double tmp118 = w36*(-B_0_1 - B_0_5);                                          const double tmp118 = w36*(-B_0_2 - B_0_6);
6269                                          const double tmp119 = w33*(-B_0_2 - B_0_6);                                          const double tmp119 = w40*(-B_1_1 - B_1_5);
6270                                          const double tmp120 = w30*(-B_0_3 - B_0_7);                                          const double tmp120 = w33*(-B_0_3 - B_0_7);
6271                                          const double tmp121 = w34*(-B_1_2 - B_1_6);                                          const double tmp121 = w34*(-B_1_3 - B_1_7);
6272                                          const double tmp122 = w31*(B_1_0 + B_1_1);                                          const double tmp122 = w38*(B_2_2 + B_2_3);
6273                                          const double tmp123 = w42*(B_2_4 + B_2_5);                                          const double tmp123 = w42*(B_1_6 + B_1_7);
6274                                          const double tmp124 = w35*(B_2_2 + B_2_3);                                          const double tmp124 = w35*(B_2_0 + B_2_1);
6275                                          const double tmp125 = w37*(B_1_2 + B_1_3);                                          const double tmp125 = w37*(B_1_4 + B_1_5);
6276                                          const double tmp126 = w32*(B_2_0 + B_2_1);                                          const double tmp126 = w39*(-B_0_3 - B_0_5);
6277                                          const double tmp127 = w39*(B_1_6 + B_1_7);                                          const double tmp127 = w45*(B_2_4 + B_2_5);
6278                                          const double tmp128 = w36*(-B_0_3 - B_0_5);                                          const double tmp128 = w36*(-B_0_2 - B_0_4);
6279                                          const double tmp129 = w33*(-B_0_2 - B_0_4);                                          const double tmp129 = w40*(B_1_2 + B_1_3);
6280                                          const double tmp130 = w43*(B_2_6 + B_2_7);                                          const double tmp130 = w46*(B_2_6 + B_2_7);
6281                                          const double tmp131 = w34*(B_1_4 + B_1_5);                                          const double tmp131 = w34*(B_1_0 + B_1_1);
6282                                          const double tmp132 = w42*(-B_2_5 - B_2_6);                                          const double tmp132 = w38*(-B_2_1 - B_2_2);
6283                                          const double tmp133 = w35*(-B_2_1 - B_2_2);                                          const double tmp133 = w37*(B_1_2 + B_1_7);
6284                                          const double tmp134 = w37*(B_1_0 + B_1_5);                                          const double tmp134 = w39*(B_0_1 + B_0_7);
6285                                          const double tmp135 = w36*(B_0_1 + B_0_7);                                          const double tmp135 = w36*(B_0_0 + B_0_6);
6286                                          const double tmp136 = w33*(B_0_0 + B_0_6);                                          const double tmp136 = w40*(B_1_0 + B_1_5);
6287                                          const double tmp137 = w34*(B_1_2 + B_1_7);                                          const double tmp137 = w45*(-B_2_5 - B_2_6);
6288                                          const double tmp138 = w38*(-B_0_0 - B_0_2);                                          const double tmp138 = w38*(-B_2_4 - B_2_6);
6289                                          const double tmp139 = w42*(-B_2_1 - B_2_3);                                          const double tmp139 = w35*(-B_2_5 - B_2_7);
6290                                          const double tmp140 = w35*(-B_2_4 - B_2_6);                                          const double tmp140 = w41*(-B_0_0 - B_0_2);
6291                                          const double tmp141 = w37*(B_1_3 + B_1_6);                                          const double tmp141 = w37*(B_1_1 + B_1_4);
6292                                          const double tmp142 = w32*(-B_2_5 - B_2_7);                                          const double tmp142 = w39*(-B_0_1 - B_0_3);
6293                                          const double tmp143 = w36*(-B_0_1 - B_0_3);                                          const double tmp143 = w45*(-B_2_1 - B_2_3);
6294                                          const double tmp144 = w33*(-B_0_4 - B_0_6);                                          const double tmp144 = w36*(-B_0_4 - B_0_6);
6295                                          const double tmp145 = w30*(-B_0_5 - B_0_7);                                          const double tmp145 = w40*(B_1_3 + B_1_6);
6296                                          const double tmp146 = w43*(-B_2_0 - B_2_2);                                          const double tmp146 = w33*(-B_0_5 - B_0_7);
6297                                          const double tmp147 = w34*(B_1_1 + B_1_4);                                          const double tmp147 = w46*(-B_2_0 - B_2_2);
6298                                          const double tmp148 = w36*(B_0_2 + B_0_4);                                          const double tmp148 = w39*(B_0_2 + B_0_4);
6299                                          const double tmp149 = w33*(B_0_3 + B_0_5);                                          const double tmp149 = w36*(B_0_3 + B_0_5);
6300                                          const double tmp150 = w42*(B_2_1 + B_2_2);                                          const double tmp150 = w38*(B_2_5 + B_2_6);
6301                                          const double tmp151 = w35*(B_2_5 + B_2_6);                                          const double tmp151 = w37*(-B_1_0 - B_1_5);
6302                                          const double tmp152 = w37*(-B_1_2 - B_1_7);                                          const double tmp152 = w39*(-B_0_0 - B_0_6);
6303                                          const double tmp153 = w36*(-B_0_0 - B_0_6);                                          const double tmp153 = w45*(B_2_1 + B_2_2);
6304                                          const double tmp154 = w33*(-B_0_1 - B_0_7);                                          const double tmp154 = w36*(-B_0_1 - B_0_7);
6305                                          const double tmp155 = w34*(-B_1_0 - B_1_5);                                          const double tmp155 = w40*(-B_1_2 - B_1_7);
6306                                          const double tmp156 = w38*(-B_0_3 - B_0_7);                                          const double tmp156 = w41*(-B_0_3 - B_0_7);
6307                                          const double tmp157 = w36*(-B_0_2 - B_0_6);                                          const double tmp157 = w39*(-B_0_2 - B_0_6);
6308                                          const double tmp158 = w33*(-B_0_1 - B_0_5);                                          const double tmp158 = w36*(-B_0_1 - B_0_5);
6309                                          const double tmp159 = w30*(-B_0_0 - B_0_4);                                          const double tmp159 = w33*(-B_0_0 - B_0_4);
6310                                          const double tmp160 = w42*(-B_2_4 - B_2_5);                                          const double tmp160 = w38*(-B_2_2 - B_2_3);
6311                                          const double tmp161 = w35*(-B_2_2 - B_2_3);                                          const double tmp161 = w35*(-B_2_0 - B_2_1);
6312                                          const double tmp162 = w32*(-B_2_0 - B_2_1);                                          const double tmp162 = w45*(-B_2_4 - B_2_5);
6313                                          const double tmp163 = w43*(-B_2_6 - B_2_7);                                          const double tmp163 = w46*(-B_2_6 - B_2_7);
6314                                          const double tmp164 = w42*(-B_2_4 - B_2_7);                                          const double tmp164 = w38*(-B_2_0 - B_2_3);
6315                                          const double tmp165 = w35*(-B_2_0 - B_2_3);                                          const double tmp165 = w37*(B_1_3 + B_1_6);
6316                                          const double tmp166 = w37*(B_1_1 + B_1_4);                                          const double tmp166 = w40*(B_1_1 + B_1_4);
6317                                          const double tmp167 = w34*(B_1_3 + B_1_6);                                          const double tmp167 = w45*(-B_2_4 - B_2_7);
6318                                          const double tmp168 = w36*(B_0_3 + B_0_5);                                          const double tmp168 = w39*(B_0_3 + B_0_5);
6319                                          const double tmp169 = w33*(B_0_2 + B_0_4);                                          const double tmp169 = w36*(B_0_2 + B_0_4);
6320                                          const double tmp170 = w38*(B_0_5 + B_0_7);                                          const double tmp170 = w38*(B_2_1 + B_2_3);
6321                                          const double tmp171 = w42*(B_2_4 + B_2_6);                                          const double tmp171 = w35*(B_2_0 + B_2_2);
6322                                          const double tmp172 = w35*(B_2_1 + B_2_3);                                          const double tmp172 = w41*(B_0_5 + B_0_7);
6323                                          const double tmp173 = w37*(-B_1_1 - B_1_4);                                          const double tmp173 = w37*(-B_1_3 - B_1_6);
6324                                          const double tmp174 = w32*(B_2_0 + B_2_2);                                          const double tmp174 = w39*(B_0_4 + B_0_6);
6325                                          const double tmp175 = w36*(B_0_4 + B_0_6);                                          const double tmp175 = w45*(B_2_4 + B_2_6);
6326                                          const double tmp176 = w33*(B_0_1 + B_0_3);                                          const double tmp176 = w36*(B_0_1 + B_0_3);
6327                                          const double tmp177 = w30*(B_0_0 + B_0_2);                                          const double tmp177 = w40*(-B_1_1 - B_1_4);
6328                                          const double tmp178 = w43*(B_2_5 + B_2_7);                                          const double tmp178 = w33*(B_0_0 + B_0_2);
6329                                          const double tmp179 = w34*(-B_1_3 - B_1_6);                                          const double tmp179 = w46*(B_2_5 + B_2_7);
6330                                          const double tmp180 = w31*(-B_1_0 - B_1_4);                                          const double tmp180 = w38*(B_2_5 + B_2_7);
6331                                          const double tmp181 = w42*(B_2_0 + B_2_2);                                          const double tmp181 = w42*(-B_1_3 - B_1_7);
6332                                          const double tmp182 = w35*(B_2_5 + B_2_7);                                          const double tmp182 = w35*(B_2_4 + B_2_6);
6333                                          const double tmp183 = w37*(-B_1_2 - B_1_6);                                          const double tmp183 = w37*(-B_1_1 - B_1_5);
6334                                          const double tmp184 = w32*(B_2_4 + B_2_6);                                          const double tmp184 = w39*(B_0_1 + B_0_3 + B_0_5 + B_0_7);
6335                                          const double tmp185 = w39*(-B_1_3 - B_1_7);                                          const double tmp185 = w45*(B_2_0 + B_2_2);
6336                                          const double tmp186 = w36*(B_0_1 + B_0_3 + B_0_5 + B_0_7);                                          const double tmp186 = w36*(B_0_0 + B_0_2 + B_0_4 + B_0_6);
6337                                          const double tmp187 = w33*(B_0_0 + B_0_2 + B_0_4 + B_0_6);                                          const double tmp187 = w40*(-B_1_2 - B_1_6);
6338                                          const double tmp188 = w43*(B_2_1 + B_2_3);                                          const double tmp188 = w46*(B_2_1 + B_2_3);
6339                                          const double tmp189 = w34*(-B_1_1 - B_1_5);                                          const double tmp189 = w34*(-B_1_0 - B_1_4);
6340                                          const double tmp190 = w38*(-B_0_1 - B_0_5);                                          const double tmp190 = w38*(B_2_4 + B_2_5);
6341                                          const double tmp191 = w42*(B_2_2 + B_2_3);                                          const double tmp191 = w35*(B_2_6 + B_2_7);
6342                                          const double tmp192 = w35*(B_2_4 + B_2_5);                                          const double tmp192 = w41*(-B_0_1 - B_0_5);
6343                                          const double tmp193 = w37*(-B_1_2 - B_1_3 - B_1_6 - B_1_7);                                          const double tmp193 = w37*(-B_1_0 - B_1_1 - B_1_4 - B_1_5);
6344                                          const double tmp194 = w32*(B_2_6 + B_2_7);                                          const double tmp194 = w39*(-B_0_0 - B_0_4);
6345                                          const double tmp195 = w36*(-B_0_0 - B_0_4);                                          const double tmp195 = w45*(B_2_2 + B_2_3);
6346                                          const double tmp196 = w33*(-B_0_3 - B_0_7);                                          const double tmp196 = w36*(-B_0_3 - B_0_7);
6347                                          const double tmp197 = w30*(-B_0_2 - B_0_6);                                          const double tmp197 = w40*(-B_1_2 - B_1_3 - B_1_6 - B_1_7);
6348                                          const double tmp198 = w43*(B_2_0 + B_2_1);                                          const double tmp198 = w33*(-B_0_2 - B_0_6);
6349                                          const double tmp199 = w34*(-B_1_0 - B_1_1 - B_1_4 - B_1_5);                                          const double tmp199 = w46*(B_2_0 + B_2_1);
6350                                          const double tmp200 = w31*(B_1_4 + B_1_5);                                          const double tmp200 = w38*(-B_2_6 - B_2_7);
6351                                          const double tmp201 = w42*(-B_2_0 - B_2_1);                                          const double tmp201 = w42*(B_1_2 + B_1_3);
6352                                          const double tmp202 = w35*(-B_2_6 - B_2_7);                                          const double tmp202 = w35*(-B_2_4 - B_2_5);
6353                                          const double tmp203 = w37*(B_1_6 + B_1_7);                                          const double tmp203 = w37*(B_1_0 + B_1_1);
6354                                          const double tmp204 = w32*(-B_2_4 - B_2_5);                                          const double tmp204 = w45*(-B_2_0 - B_2_1);
6355                                          const double tmp205 = w39*(B_1_2 + B_1_3);                                          const double tmp205 = w40*(B_1_6 + B_1_7);
6356                                          const double tmp206 = w43*(-B_2_2 - B_2_3);                                          const double tmp206 = w46*(-B_2_2 - B_2_3);
6357                                          const double tmp207 = w34*(B_1_0 + B_1_1);                                          const double tmp207 = w34*(B_1_4 + B_1_5);
6358                                          const double tmp208 = w37*(-B_1_3 - B_1_6);                                          const double tmp208 = w37*(-B_1_1 - B_1_4);
6359                                          const double tmp209 = w36*(-B_0_2 - B_0_4);                                          const double tmp209 = w39*(-B_0_2 - B_0_4);
6360                                          const double tmp210 = w33*(-B_0_3 - B_0_5);                                          const double tmp210 = w36*(-B_0_3 - B_0_5);
6361                                          const double tmp211 = w34*(-B_1_1 - B_1_4);                                          const double tmp211 = w40*(-B_1_3 - B_1_6);
6362                                          const double tmp212 = w42*(B_2_0 + B_2_3);                                          const double tmp212 = w38*(B_2_4 + B_2_7);
6363                                          const double tmp213 = w35*(B_2_4 + B_2_7);                                          const double tmp213 = w45*(B_2_0 + B_2_3);
6364                                          const double tmp214 = w38*(B_0_0 + B_0_4);                                          const double tmp214 = w41*(B_0_0 + B_0_4);
6365                                          const double tmp215 = w36*(B_0_1 + B_0_5);                                          const double tmp215 = w39*(B_0_1 + B_0_5);
6366                                          const double tmp216 = w33*(B_0_2 + B_0_6);                                          const double tmp216 = w36*(B_0_2 + B_0_6);
6367                                          const double tmp217 = w30*(B_0_3 + B_0_7);                                          const double tmp217 = w33*(B_0_3 + B_0_7);
6368                                          const double tmp218 = w31*(B_1_2 + B_1_6);                                          const double tmp218 = w42*(B_1_1 + B_1_5);
6369                                          const double tmp219 = w37*(B_1_0 + B_1_4);                                          const double tmp219 = w37*(B_1_3 + B_1_7);
6370                                          const double tmp220 = w39*(B_1_1 + B_1_5);                                          const double tmp220 = w40*(B_1_0 + B_1_4);
6371                                          const double tmp221 = w34*(B_1_3 + B_1_7);                                          const double tmp221 = w34*(B_1_2 + B_1_6);
6372                                          const double tmp222 = w36*(-B_0_1 - B_0_7);                                          const double tmp222 = w39*(-B_0_1 - B_0_7);
6373                                          const double tmp223 = w33*(-B_0_0 - B_0_6);                                          const double tmp223 = w36*(-B_0_0 - B_0_6);
6374                                          const double tmp224 = w42*(-B_2_6 - B_2_7);                                          const double tmp224 = w38*(-B_2_0 - B_2_1);
6375                                          const double tmp225 = w35*(-B_2_0 - B_2_1);                                          const double tmp225 = w35*(-B_2_2 - B_2_3);
6376                                          const double tmp226 = w32*(-B_2_2 - B_2_3);                                          const double tmp226 = w45*(-B_2_6 - B_2_7);
6377                                          const double tmp227 = w43*(-B_2_4 - B_2_5);                                          const double tmp227 = w46*(-B_2_4 - B_2_5);
6378                                          const double tmp228 = w31*(B_1_3 + B_1_7);                                          const double tmp228 = w38*(B_2_4 + B_2_6);
6379                                          const double tmp229 = w42*(B_2_1 + B_2_3);                                          const double tmp229 = w42*(B_1_0 + B_1_4);
6380                                          const double tmp230 = w35*(B_2_4 + B_2_6);                                          const double tmp230 = w35*(B_2_5 + B_2_7);
6381                                          const double tmp231 = w37*(B_1_1 + B_1_5);                                          const double tmp231 = w37*(B_1_2 + B_1_6);
6382                                          const double tmp232 = w32*(B_2_5 + B_2_7);                                          const double tmp232 = w39*(-B_0_0 - B_0_2 - B_0_4 - B_0_6);
6383                                          const double tmp233 = w39*(B_1_0 + B_1_4);                                          const double tmp233 = w45*(B_2_1 + B_2_3);
6384                                          const double tmp234 = w36*(-B_0_0 - B_0_2 - B_0_4 - B_0_6);                                          const double tmp234 = w36*(-B_0_1 - B_0_3 - B_0_5 - B_0_7);
6385                                          const double tmp235 = w33*(-B_0_1 - B_0_3 - B_0_5 - B_0_7);                                          const double tmp235 = w40*(B_1_1 + B_1_5);
6386                                          const double tmp236 = w43*(B_2_0 + B_2_2);                                          const double tmp236 = w46*(B_2_0 + B_2_2);
6387                                          const double tmp237 = w34*(B_1_2 + B_1_6);                                          const double tmp237 = w34*(B_1_3 + B_1_7);
6388                                          const double tmp238 = w31*(-B_1_1 - B_1_5);                                          const double tmp238 = w42*(-B_1_2 - B_1_6);
6389                                          const double tmp239 = w37*(-B_1_3 - B_1_7);                                          const double tmp239 = w37*(-B_1_0 - B_1_4);
6390                                          const double tmp240 = w39*(-B_1_2 - B_1_6);                                          const double tmp240 = w40*(-B_1_3 - B_1_7);
6391                                          const double tmp241 = w34*(-B_1_0 - B_1_4);                                          const double tmp241 = w34*(-B_1_1 - B_1_5);
6392                                          const double tmp242 = w31*(-B_1_6 - B_1_7);                                          const double tmp242 = w38*(-B_2_4 - B_2_5);
6393                                          const double tmp243 = w42*(-B_2_2 - B_2_3);                                          const double tmp243 = w42*(-B_1_0 - B_1_1);
6394                                          const double tmp244 = w35*(-B_2_4 - B_2_5);                                          const double tmp244 = w35*(-B_2_6 - B_2_7);
6395                                          const double tmp245 = w37*(-B_1_4 - B_1_5);                                          const double tmp245 = w37*(-B_1_2 - B_1_3);
6396                                          const double tmp246 = w32*(-B_2_6 - B_2_7);                                          const double tmp246 = w45*(-B_2_2 - B_2_3);
6397                                          const double tmp247 = w39*(-B_1_0 - B_1_1);                                          const double tmp247 = w40*(-B_1_4 - B_1_5);
6398                                          const double tmp248 = w43*(-B_2_0 - B_2_1);                                          const double tmp248 = w46*(-B_2_0 - B_2_1);
6399                                          const double tmp249 = w34*(-B_1_2 - B_1_3);                                          const double tmp249 = w34*(-B_1_6 - B_1_7);
6400                                          const double tmp250 = w31*(B_1_2 + B_1_3);                                          const double tmp250 = w42*(B_1_4 + B_1_5);
6401                                          const double tmp251 = w37*(B_1_0 + B_1_1);                                          const double tmp251 = w37*(B_1_6 + B_1_7);
6402                                          const double tmp252 = w39*(B_1_4 + B_1_5);                                          const double tmp252 = w40*(B_1_0 + B_1_1);
6403                                          const double tmp253 = w34*(B_1_6 + B_1_7);                                          const double tmp253 = w34*(B_1_2 + B_1_3);
6404                                          const double tmp254 = w42*(-B_2_4 - B_2_6);                                          const double tmp254 = w38*(-B_2_1 - B_2_3);
6405                                          const double tmp255 = w35*(-B_2_1 - B_2_3);                                          const double tmp255 = w35*(-B_2_0 - B_2_2);
6406                                          const double tmp256 = w32*(-B_2_0 - B_2_2);                                          const double tmp256 = w45*(-B_2_4 - B_2_6);
6407                                          const double tmp257 = w43*(-B_2_5 - B_2_7);                                          const double tmp257 = w46*(-B_2_5 - B_2_7);
6408                                          const double tmp258 = w42*(B_2_4 + B_2_5 + B_2_6 + B_2_7);                                          const double tmp258 = w38*(B_2_0 + B_2_1 + B_2_2 + B_2_3);
6409                                          const double tmp259 = w35*(B_2_0 + B_2_1 + B_2_2 + B_2_3);                                          const double tmp259 = w45*(B_2_4 + B_2_5 + B_2_6 + B_2_7);
6410                                          const double tmp260 = w42*(-B_2_5 - B_2_7);                                          const double tmp260 = w38*(-B_2_0 - B_2_2);
6411                                          const double tmp261 = w35*(-B_2_0 - B_2_2);                                          const double tmp261 = w35*(-B_2_1 - B_2_3);
6412                                          const double tmp262 = w32*(-B_2_1 - B_2_3);                                          const double tmp262 = w45*(-B_2_5 - B_2_7);
6413                                          const double tmp263 = w43*(-B_2_4 - B_2_6);                                          const double tmp263 = w46*(-B_2_4 - B_2_6);
6414                                          EM_S[INDEX4(k,m,0,0,numEq,numComp,8)]+=-B_0_0*w47 - B_0_1*w38 - B_0_6*w30 - B_0_7*w46 + B_1_0*w44 - B_1_2*w39 - B_1_5*w31 + B_1_7*w45 - B_2_0*w40 - B_2_3*w32 - B_2_4*w43 - B_2_7*w41 + tmp132 + tmp133 + tmp208 + tmp209 + tmp210 + tmp211;                                          EM_S[INDEX4(k,m,0,0,numEq,numComp,8)]+=-B_0_0*w50 - B_0_1*w41 - B_0_6*w33 - B_0_7*w49 + B_1_0*w47 - B_1_2*w42 - B_1_5*w34 + B_1_7*w48 - B_2_0*w43 - B_2_3*w35 - B_2_4*w46 - B_2_7*w44 + tmp132 + tmp137 + tmp208 + tmp209 + tmp210 + tmp211;
6415                                          EM_S[INDEX4(k,m,0,1,numEq,numComp,8)]+=-B_0_0*w38 - B_0_1*w47 - B_0_6*w46 - B_0_7*w30 + tmp128 + tmp129 + tmp242 + tmp243 + tmp244 + tmp245 + tmp246 + tmp247 + tmp248 + tmp249;                                          EM_S[INDEX4(k,m,0,1,numEq,numComp,8)]+=-B_0_0*w41 - B_0_1*w50 - B_0_6*w49 - B_0_7*w33 + tmp126 + tmp128 + tmp242 + tmp243 + tmp244 + tmp245 + tmp246 + tmp247 + tmp248 + tmp249;
6416                                          EM_S[INDEX4(k,m,0,2,numEq,numComp,8)]+=-B_1_0*w39 + B_1_2*w44 + B_1_5*w45 - B_1_7*w31 + tmp138 + tmp139 + tmp140 + tmp142 + tmp143 + tmp144 + tmp145 + tmp146 + tmp173 + tmp179;                                          EM_S[INDEX4(k,m,0,2,numEq,numComp,8)]+=-B_1_0*w42 + B_1_2*w47 + B_1_5*w48 - B_1_7*w34 + tmp138 + tmp139 + tmp140 + tmp142 + tmp143 + tmp144 + tmp146 + tmp147 + tmp173 + tmp177;
6417                                          EM_S[INDEX4(k,m,0,3,numEq,numComp,8)]+=tmp100 + tmp101 + tmp102 + tmp103 + tmp42 + tmp43 + tmp96 + tmp97 + tmp98 + tmp99;                                          EM_S[INDEX4(k,m,0,3,numEq,numComp,8)]+=tmp100 + tmp101 + tmp102 + tmp103 + tmp40 + tmp45 + tmp96 + tmp97 + tmp98 + tmp99;
6418                                          EM_S[INDEX4(k,m,0,4,numEq,numComp,8)]+=-B_2_0*w43 - B_2_3*w41 - B_2_4*w40 - B_2_7*w32 + tmp114 + tmp115 + tmp116 + tmp117 + tmp118 + tmp119 + tmp120 + tmp121 + tmp92 + tmp93;                                          EM_S[INDEX4(k,m,0,4,numEq,numComp,8)]+=-B_2_0*w46 - B_2_3*w44 - B_2_4*w43 - B_2_7*w35 + tmp114 + tmp115 + tmp116 + tmp117 + tmp118 + tmp119 + tmp120 + tmp121 + tmp92 + tmp93;
6419                                          EM_S[INDEX4(k,m,0,5,numEq,numComp,8)]+=tmp190 + tmp193 + tmp195 + tmp196 + tmp197 + tmp199 + tmp224 + tmp225 + tmp226 + tmp227;                                          EM_S[INDEX4(k,m,0,5,numEq,numComp,8)]+=tmp192 + tmp193 + tmp194 + tmp196 + tmp197 + tmp198 + tmp224 + tmp225 + tmp226 + tmp227;
6420                                          EM_S[INDEX4(k,m,0,6,numEq,numComp,8)]+=tmp234 + tmp235 + tmp238 + tmp239 + tmp240 + tmp241 + tmp260 + tmp261 + tmp262 + tmp263;                                          EM_S[INDEX4(k,m,0,6,numEq,numComp,8)]+=tmp232 + tmp234 + tmp238 + tmp239 + tmp240 + tmp241 + tmp260 + tmp261 + tmp262 + tmp263;
6421                                          EM_S[INDEX4(k,m,0,7,numEq,numComp,8)]+=tmp60 + tmp61 + tmp62 + tmp63 + tmp64 + tmp65;                                          EM_S[INDEX4(k,m,0,7,numEq,numComp,8)]+=tmp60 + tmp61 + tmp62 + tmp63 + tmp64 + tmp65;
6422                                          EM_S[INDEX4(k,m,1,0,numEq,numComp,8)]+=B_0_0*w47 + B_0_1*w38 + B_0_6*w30 + B_0_7*w46 + tmp148 + tmp149 + tmp242 + tmp243 + tmp244 + tmp245 + tmp246 + tmp247 + tmp248 + tmp249;                                          EM_S[INDEX4(k,m,1,0,numEq,numComp,8)]+=B_0_0*w50 + B_0_1*w41 + B_0_6*w33 + B_0_7*w49 + tmp148 + tmp149 + tmp242 + tmp243 + tmp244 + tmp245 + tmp246 + tmp247 + tmp248 + tmp249;
6423                                          EM_S[INDEX4(k,m,1,1,numEq,numComp,8)]+=B_0_0*w38 + B_0_1*w47 + B_0_6*w46 + B_0_7*w30 + B_1_1*w44 - B_1_3*w39 - B_1_4*w31 + B_1_6*w45 - B_2_1*w40 - B_2_2*w32 - B_2_5*w43 - B_2_6*w41 + tmp152 + tmp155 + tmp164 + tmp165 + tmp168 + tmp169;                                          EM_S[INDEX4(k,m,1,1,numEq,numComp,8)]+=B_0_0*w41 + B_0_1*w50 + B_0_6*w49 + B_0_7*w33 + B_1_1*w47 - B_1_3*w42 - B_1_4*w34 + B_1_6*w48 - B_2_1*w43 - B_2_2*w35 - B_2_5*w46 - B_2_6*w44 + tmp151 + tmp155 + tmp164 + tmp167 + tmp168 + tmp169;
6424                                          EM_S[INDEX4(k,m,1,2,numEq,numComp,8)]+=tmp103 + tmp40 + tmp42 + tmp43 + tmp46 + tmp47 + tmp48 + tmp97 + tmp98 + tmp99;                                          EM_S[INDEX4(k,m,1,2,numEq,numComp,8)]+=tmp101 + tmp103 + tmp40 + tmp42 + tmp44 + tmp45 + tmp46 + tmp48 + tmp96 + tmp98;
6425                                          EM_S[INDEX4(k,m,1,3,numEq,numComp,8)]+=-B_1_1*w39 + B_1_3*w44 + B_1_4*w45 - B_1_6*w31 + tmp20 + tmp21 + tmp22 + tmp23 + tmp24 + tmp25 + tmp26 + tmp27 + tmp28 + tmp29;                                          EM_S[INDEX4(k,m,1,3,numEq,numComp,8)]+=-B_1_1*w42 + B_1_3*w47 + B_1_4*w48 - B_1_6*w34 + tmp20 + tmp21 + tmp22 + tmp23 + tmp24 + tmp25 + tmp26 + tmp27 + tmp28 + tmp29;
6426                                          EM_S[INDEX4(k,m,1,4,numEq,numComp,8)]+=tmp193 + tmp199 + tmp214 + tmp215 + tmp216 + tmp217 + tmp224 + tmp225 + tmp226 + tmp227;                                          EM_S[INDEX4(k,m,1,4,numEq,numComp,8)]+=tmp193 + tmp197 + tmp214 + tmp215 + tmp216 + tmp217 + tmp224 + tmp225 + tmp226 + tmp227;
6427                                          EM_S[INDEX4(k,m,1,5,numEq,numComp,8)]+=-B_2_1*w43 - B_2_2*w41 - B_2_5*w40 - B_2_6*w32 + tmp72 + tmp73 + tmp82 + tmp83 + tmp86 + tmp87 + tmp88 + tmp89 + tmp90 + tmp91;                                          EM_S[INDEX4(k,m,1,5,numEq,numComp,8)]+=-B_2_1*w46 - B_2_2*w44 - B_2_5*w43 - B_2_6*w35 + tmp70 + tmp75 + tmp83 + tmp84 + tmp85 + tmp86 + tmp88 + tmp89 + tmp90 + tmp91;
6428                                          EM_S[INDEX4(k,m,1,6,numEq,numComp,8)]+=tmp60 + tmp61 + tmp62 + tmp65 + tmp80 + tmp81;                                          EM_S[INDEX4(k,m,1,6,numEq,numComp,8)]+=tmp60 + tmp61 + tmp63 + tmp65 + tmp80 + tmp81;
6429                                          EM_S[INDEX4(k,m,1,7,numEq,numComp,8)]+=tmp180 + tmp183 + tmp185 + tmp186 + tmp187 + tmp189 + tmp254 + tmp255 + tmp256 + tmp257;                                          EM_S[INDEX4(k,m,1,7,numEq,numComp,8)]+=tmp181 + tmp183 + tmp184 + tmp186 + tmp187 + tmp189 + tmp254 + tmp255 + tmp256 + tmp257;
6430                                          EM_S[INDEX4(k,m,2,0,numEq,numComp,8)]+=-B_1_0*w44 + B_1_2*w39 + B_1_5*w31 - B_1_7*w45 + tmp138 + tmp139 + tmp140 + tmp141 + tmp142 + tmp143 + tmp144 + tmp145 + tmp146 + tmp147;                                          EM_S[INDEX4(k,m,2,0,numEq,numComp,8)]+=-B_1_0*w47 + B_1_2*w42 + B_1_5*w34 - B_1_7*w48 + tmp138 + tmp139 + tmp140 + tmp141 + tmp142 + tmp143 + tmp144 + tmp145 + tmp146 + tmp147;
6431                                          EM_S[INDEX4(k,m,2,1,numEq,numComp,8)]+=tmp100 + tmp101 + tmp102 + tmp41 + tmp42 + tmp43 + tmp44 + tmp45 + tmp49 + tmp96;                                          EM_S[INDEX4(k,m,2,1,numEq,numComp,8)]+=tmp100 + tmp102 + tmp40 + tmp41 + tmp43 + tmp45 + tmp47 + tmp49 + tmp97 + tmp99;
6432                                          EM_S[INDEX4(k,m,2,2,numEq,numComp,8)]+=-B_0_2*w47 - B_0_3*w38 - B_0_4*w30 - B_0_5*w46 + B_1_0*w39 - B_1_2*w44 - B_1_5*w45 + B_1_7*w31 - B_2_1*w32 - B_2_2*w40 - B_2_5*w41 - B_2_6*w43 + tmp153 + tmp154 + tmp164 + tmp165 + tmp166 + tmp167;                                          EM_S[INDEX4(k,m,2,2,numEq,numComp,8)]+=-B_0_2*w50 - B_0_3*w41 - B_0_4*w33 - B_0_5*w49 + B_1_0*w42 - B_1_2*w47 - B_1_5*w48 + B_1_7*w34 - B_2_1*w35 - B_2_2*w43 - B_2_5*w44 - B_2_6*w46 + tmp152 + tmp154 + tmp164 + tmp165 + tmp166 + tmp167;
6433                                          EM_S[INDEX4(k,m,2,3,numEq,numComp,8)]+=-B_0_2*w38 - B_0_3*w47 - B_0_4*w46 - B_0_5*w30 + tmp200 + tmp201 + tmp202 + tmp203 + tmp204 + tmp205 + tmp206 + tmp207 + tmp222 + tmp223;                                          EM_S[INDEX4(k,m,2,3,numEq,numComp,8)]+=-B_0_2*w41 - B_0_3*w50 - B_0_4*w49 - B_0_5*w33 + tmp200 + tmp201 + tmp202 + tmp203 + tmp204 + tmp205 + tmp206 + tmp207 + tmp222 + tmp223;
6434                                          EM_S[INDEX4(k,m,2,4,numEq,numComp,8)]+=tmp228 + tmp231 + tmp233 + tmp234 + tmp235 + tmp237 + tmp260 + tmp261 + tmp262 + tmp263;                                          EM_S[INDEX4(k,m,2,4,numEq,numComp,8)]+=tmp229 + tmp231 + tmp232 + tmp234 + tmp235 + tmp237 + tmp260 + tmp261 + tmp262 + tmp263;
6435                                          EM_S[INDEX4(k,m,2,5,numEq,numComp,8)]+=tmp60 + tmp61 + tmp63 + tmp64 + tmp94 + tmp95;                                          EM_S[INDEX4(k,m,2,5,numEq,numComp,8)]+=tmp60 + tmp62 + tmp63 + tmp64 + tmp94 + tmp95;
6436                                          EM_S[INDEX4(k,m,2,6,numEq,numComp,8)]+=-B_2_1*w41 - B_2_2*w43 - B_2_5*w32 - B_2_6*w40 + tmp70 + tmp71 + tmp72 + tmp73 + tmp74 + tmp75 + tmp76 + tmp77 + tmp78 + tmp79;                                          EM_S[INDEX4(k,m,2,6,numEq,numComp,8)]+=-B_2_1*w44 - B_2_2*w46 - B_2_5*w35 - B_2_6*w43 + tmp70 + tmp71 + tmp72 + tmp73 + tmp74 + tmp75 + tmp76 + tmp77 + tmp78 + tmp79;
6437                                          EM_S[INDEX4(k,m,2,7,numEq,numComp,8)]+=tmp107 + tmp113 + tmp156 + tmp157 + tmp158 + tmp159 + tmp160 + tmp161 + tmp162 + tmp163;                                          EM_S[INDEX4(k,m,2,7,numEq,numComp,8)]+=tmp107 + tmp111 + tmp156 + tmp157 + tmp158 + tmp159 + tmp160 + tmp161 + tmp162 + tmp163;
6438                                          EM_S[INDEX4(k,m,3,0,numEq,numComp,8)]+=tmp40 + tmp41 + tmp42 + tmp43 + tmp44 + tmp45 + tmp46 + tmp47 + tmp48 + tmp49;                                          EM_S[INDEX4(k,m,3,0,numEq,numComp,8)]+=tmp40 + tmp41 + tmp42 + tmp43 + tmp44 + tmp45 + tmp46 + tmp47 + tmp48 + tmp49;
6439                                          EM_S[INDEX4(k,m,3,1,numEq,numComp,8)]+=-B_1_1*w44 + B_1_3*w39 + B_1_4*w31 - B_1_6*w45 + tmp20 + tmp21 + tmp22 + tmp24 + tmp25 + tmp26 + tmp27 + tmp28 + tmp33 + tmp39;                                          EM_S[INDEX4(k,m,3,1,numEq,numComp,8)]+=-B_1_1*w47 + B_1_3*w42 + B_1_4*w34 - B_1_6*w48 + tmp20 + tmp21 + tmp22 + tmp24 + tmp25 + tmp26 + tmp28 + tmp29 + tmp33 + tmp37;
6440                                          EM_S[INDEX4(k,m,3,2,numEq,numComp,8)]+=B_0_2*w47 + B_0_3*w38 + B_0_4*w30 + B_0_5*w46 + tmp200 + tmp201 + tmp202 + tmp203 + tmp204 + tmp205 + tmp206 + tmp207 + tmp56 + tmp57;                                          EM_S[INDEX4(k,m,3,2,numEq,numComp,8)]+=B_0_2*w50 + B_0_3*w41 + B_0_4*w33 + B_0_5*w49 + tmp200 + tmp201 + tmp202 + tmp203 + tmp204 + tmp205 + tmp206 + tmp207 + tmp54 + tmp56;
6441                                          EM_S[INDEX4(k,m,3,3,numEq,numComp,8)]+=B_0_2*w38 + B_0_3*w47 + B_0_4*w46 + B_0_5*w30 + B_1_1*w39 - B_1_3*w44 - B_1_4*w45 + B_1_6*w31 - B_2_0*w32 - B_2_3*w40 - B_2_4*w41 - B_2_7*w43 + tmp132 + tmp133 + tmp134 + tmp135 + tmp136 + tmp137;                                          EM_S[INDEX4(k,m,3,3,numEq,numComp,8)]+=B_0_2*w41 + B_0_3*w50 + B_0_4*w49 + B_0_5*w33 + B_1_1*w42 - B_1_3*w47 - B_1_4*w48 + B_1_6*w34 - B_2_0*w35 - B_2_3*w43 - B_2_4*w44 - B_2_7*w46 + tmp132 + tmp133 + tmp134 + tmp135 + tmp136 + tmp137;
6442                                          EM_S[INDEX4(k,m,3,4,numEq,numComp,8)]+=tmp60 + tmp61 + tmp80 + tmp81 + tmp94 + tmp95;                                          EM_S[INDEX4(k,m,3,4,numEq,numComp,8)]+=tmp60 + tmp63 + tmp80 + tmp81 + tmp94 + tmp95;
6443                                          EM_S[INDEX4(k,m,3,5,numEq,numComp,8)]+=tmp186 + tmp187 + tmp218 + tmp219 + tmp220 + tmp221 + tmp254 + tmp255 + tmp256 + tmp257;                                          EM_S[INDEX4(k,m,3,5,numEq,numComp,8)]+=tmp184 + tmp186 + tmp218 + tmp219 + tmp220 + tmp221 + tmp254 + tmp255 + tmp256 + tmp257;
6444                                          EM_S[INDEX4(k,m,3,6,numEq,numComp,8)]+=tmp104 + tmp107 + tmp109 + tmp110 + tmp111 + tmp113 + tmp160 + tmp161 + tmp162 + tmp163;                                          EM_S[INDEX4(k,m,3,6,numEq,numComp,8)]+=tmp106 + tmp107 + tmp108 + tmp110 + tmp111 + tmp112 + tmp160 + tmp161 + tmp162 + tmp163;
6445                                          EM_S[INDEX4(k,m,3,7,numEq,numComp,8)]+=-B_2_0*w41 - B_2_3*w43 - B_2_4*w32 - B_2_7*w40 + tmp0 + tmp1 + tmp4 + tmp5 + tmp6 + tmp7 + tmp8 + tmp9 + tmp92 + tmp93;                                          EM_S[INDEX4(k,m,3,7,numEq,numComp,8)]+=-B_2_0*w44 - B_2_3*w46 - B_2_4*w35 - B_2_7*w43 + tmp1 + tmp2 + tmp3 + tmp4 + tmp6 + tmp7 + tmp8 + tmp9 + tmp92 + tmp93;
6446                                          EM_S[INDEX4(k,m,4,0,numEq,numComp,8)]+=B_2_0*w40 + B_2_3*w32 + B_2_4*w43 + B_2_7*w41 + tmp114 + tmp115 + tmp116 + tmp117 + tmp118 + tmp119 + tmp120 + tmp121 + tmp2 + tmp3;                                          EM_S[INDEX4(k,m,4,0,numEq,numComp,8)]+=B_2_0*w43 + B_2_3*w35 + B_2_4*w46 + B_2_7*w44 + tmp0 + tmp114 + tmp115 + tmp116 + tmp117 + tmp118 + tmp119 + tmp120 + tmp121 + tmp5;
6447                                          EM_S[INDEX4(k,m,4,1,numEq,numComp,8)]+=tmp190 + tmp191 + tmp192 + tmp193 + tmp194 + tmp195 + tmp196 + tmp197 + tmp198 + tmp199;                                          EM_S[INDEX4(k,m,4,1,numEq,numComp,8)]+=tmp190 + tmp191 + tmp192 + tmp193 + tmp194 + tmp195 + tmp196 + tmp197 + tmp198 + tmp199;
6448                                          EM_S[INDEX4(k,m,4,2,numEq,numComp,8)]+=tmp229 + tmp230 + tmp232 + tmp234 + tmp235 + tmp236 + tmp238 + tmp239 + tmp240 + tmp241;                                          EM_S[INDEX4(k,m,4,2,numEq,numComp,8)]+=tmp228 + tmp230 + tmp232 + tmp233 + tmp234 + tmp236 + tmp238 + tmp239 + tmp240 + tmp241;
6449                                          EM_S[INDEX4(k,m,4,3,numEq,numComp,8)]+=tmp258 + tmp259 + tmp62 + tmp63 + tmp64 + tmp65;                                          EM_S[INDEX4(k,m,4,3,numEq,numComp,8)]+=tmp258 + tmp259 + tmp61 + tmp62 + tmp64 + tmp65;
6450                                          EM_S[INDEX4(k,m,4,4,numEq,numComp,8)]+=-B_0_2*w30 - B_0_3*w46 - B_0_4*w47 - B_0_5*w38 - B_1_1*w31 + B_1_3*w45 + B_1_4*w44 - B_1_6*w39 + B_2_0*w43 + B_2_3*w41 + B_2_4*w40 + B_2_7*w32 + tmp150 + tmp151 + tmp152 + tmp153 + tmp154 + tmp155;                                          EM_S[INDEX4(k,m,4,4,numEq,numComp,8)]+=-B_0_2*w33 - B_0_3*w49 - B_0_4*w50 - B_0_5*w41 - B_1_1*w34 + B_1_3*w48 + B_1_4*w47 - B_1_6*w42 + B_2_0*w46 + B_2_3*w44 + B_2_4*w43 + B_2_7*w35 + tmp150 + tmp151 + tmp152 + tmp153 + tmp154 + tmp155;
6451                                          EM_S[INDEX4(k,m,4,5,numEq,numComp,8)]+=-B_0_2*w46 - B_0_3*w30 - B_0_4*w38 - B_0_5*w47 + tmp222 + tmp223 + tmp50 + tmp51 + tmp52 + tmp53 + tmp54 + tmp55 + tmp58 + tmp59;                                          EM_S[INDEX4(k,m,4,5,numEq,numComp,8)]+=-B_0_2*w49 - B_0_3*w33 - B_0_4*w41 - B_0_5*w50 + tmp222 + tmp223 + tmp50 + tmp51 + tmp52 + tmp53 + tmp55 + tmp57 + tmp58 + tmp59;
6452                                          EM_S[INDEX4(k,m,4,6,numEq,numComp,8)]+=B_1_1*w45 - B_1_3*w31 - B_1_4*w39 + B_1_6*w44 + tmp23 + tmp29 + tmp30 + tmp31 + tmp32 + tmp34 + tmp35 + tmp36 + tmp37 + tmp38;                                          EM_S[INDEX4(k,m,4,6,numEq,numComp,8)]+=B_1_1*w48 - B_1_3*w34 - B_1_4*w42 + B_1_6*w47 + tmp23 + tmp27 + tmp30 + tmp31 + tmp32 + tmp34 + tmp35 + tmp36 + tmp38 + tmp39;
6453                                          EM_S[INDEX4(k,m,4,7,numEq,numComp,8)]+=tmp10 + tmp11 + tmp12 + tmp13 + tmp14 + tmp15 + tmp16 + tmp17 + tmp18 + tmp19;                                          EM_S[INDEX4(k,m,4,7,numEq,numComp,8)]+=tmp10 + tmp11 + tmp12 + tmp13 + tmp14 + tmp15 + tmp16 + tmp17 + tmp18 + tmp19;
6454                                          EM_S[INDEX4(k,m,5,0,numEq,numComp,8)]+=tmp191 + tmp192 + tmp193 + tmp194 + tmp198 + tmp199 + tmp214 + tmp215 + tmp216 + tmp217;                                          EM_S[INDEX4(k,m,5,0,numEq,numComp,8)]+=tmp190 + tmp191 + tmp193 + tmp195 + tmp197 + tmp199 + tmp214 + tmp215 + tmp216 + tmp217;
6455                                          EM_S[INDEX4(k,m,5,1,numEq,numComp,8)]+=B_2_1*w40 + B_2_2*w32 + B_2_5*w43 + B_2_6*w41 + tmp82 + tmp83 + tmp84 + tmp85 + tmp86 + tmp87 + tmp88 + tmp89 + tmp90 + tmp91;                                          EM_S[INDEX4(k,m,5,1,numEq,numComp,8)]+=B_2_1*w43 + B_2_2*w35 + B_2_5*w46 + B_2_6*w44 + tmp82 + tmp83 + tmp84 + tmp85 + tmp86 + tmp87 + tmp88 + tmp89 + tmp90 + tmp91;
6456                                          EM_S[INDEX4(k,m,5,2,numEq,numComp,8)]+=tmp258 + tmp259 + tmp62 + tmp65 + tmp80 + tmp81;                                          EM_S[INDEX4(k,m,5,2,numEq,numComp,8)]+=tmp258 + tmp259 + tmp61 + tmp65 + tmp80 + tmp81;
6457                                          EM_S[INDEX4(k,m,5,3,numEq,numComp,8)]+=tmp180 + tmp181 + tmp182 + tmp183 + tmp184 + tmp185 + tmp186 + tmp187 + tmp188 + tmp189;                                          EM_S[INDEX4(k,m,5,3,numEq,numComp,8)]+=tmp180 + tmp181 + tmp182 + tmp183 + tmp184 + tmp185 + tmp186 + tmp187 + tmp188 + tmp189;
6458                                          EM_S[INDEX4(k,m,5,4,numEq,numComp,8)]+=B_0_2*w30 + B_0_3*w46 + B_0_4*w47 + B_0_5*w38 + tmp50 + tmp51 + tmp52 + tmp53 + tmp54 + tmp55 + tmp56 + tmp57 + tmp58 + tmp59;                                          EM_S[INDEX4(k,m,5,4,numEq,numComp,8)]+=B_0_2*w33 + B_0_3*w49 + B_0_4*w50 + B_0_5*w41 + tmp50 + tmp51 + tmp52 + tmp53 + tmp54 + tmp55 + tmp56 + tmp57 + tmp58 + tmp59;
6459                                          EM_S[INDEX4(k,m,5,5,numEq,numComp,8)]+=B_0_2*w46 + B_0_3*w30 + B_0_4*w38 + B_0_5*w47 - B_1_0*w31 + B_1_2*w45 + B_1_5*w44 - B_1_7*w39 + B_2_1*w43 + B_2_2*w41 + B_2_5*w40 + B_2_6*w32 + tmp135 + tmp136 + tmp208 + tmp211 + tmp212 + tmp213;                                          EM_S[INDEX4(k,m,5,5,numEq,numComp,8)]+=B_0_2*w49 + B_0_3*w33 + B_0_4*w41 + B_0_5*w50 - B_1_0*w34 + B_1_2*w48 + B_1_5*w47 - B_1_7*w42 + B_2_1*w46 + B_2_2*w44 + B_2_5*w43 + B_2_6*w35 + tmp134 + tmp135 + tmp208 + tmp211 + tmp212 + tmp213;
6460                                          EM_S[INDEX4(k,m,5,6,numEq,numComp,8)]+=tmp11 + tmp12 + tmp13 + tmp14 + tmp15 + tmp19 + tmp66 + tmp67 + tmp68 + tmp69;                                          EM_S[INDEX4(k,m,5,6,numEq,numComp,8)]+=tmp10 + tmp11 + tmp13 + tmp15 + tmp17 + tmp19 + tmp66 + tmp67 + tmp68 + tmp69;
6461                                          EM_S[INDEX4(k,m,5,7,numEq,numComp,8)]+=B_1_0*w45 - B_1_2*w31 - B_1_5*w39 + B_1_7*w44 + tmp170 + tmp171 + tmp172 + tmp173 + tmp174 + tmp175 + tmp176 + tmp177 + tmp178 + tmp179;                                          EM_S[INDEX4(k,m,5,7,numEq,numComp,8)]+=B_1_0*w48 - B_1_2*w34 - B_1_5*w42 + B_1_7*w47 + tmp170 + tmp171 + tmp172 + tmp173 + tmp174 + tmp175 + tmp176 + tmp177 + tmp178 + tmp179;
6462                                          EM_S[INDEX4(k,m,6,0,numEq,numComp,8)]+=tmp228 + tmp229 + tmp230 + tmp231 + tmp232 + tmp233 + tmp234 + tmp235 + tmp236 + tmp237;                                          EM_S[INDEX4(k,m,6,0,numEq,numComp,8)]+=tmp228 + tmp229 + tmp230 + tmp231 + tmp232 + tmp233 + tmp234 + tmp235 + tmp236 + tmp237;
6463                                          EM_S[INDEX4(k,m,6,1,numEq,numComp,8)]+=tmp258 + tmp259 + tmp63 + tmp64 + tmp94 + tmp95;                                          EM_S[INDEX4(k,m,6,1,numEq,numComp,8)]+=tmp258 + tmp259 + tmp62 + tmp64 + tmp94 + tmp95;
6464                                          EM_S[INDEX4(k,m,6,2,numEq,numComp,8)]+=B_2_1*w32 + B_2_2*w40 + B_2_5*w41 + B_2_6*w43 + tmp70 + tmp71 + tmp74 + tmp75 + tmp76 + tmp77 + tmp78 + tmp79 + tmp84 + tmp85;                                          EM_S[INDEX4(k,m,6,2,numEq,numComp,8)]+=B_2_1*w35 + B_2_2*w43 + B_2_5*w44 + B_2_6*w46 + tmp71 + tmp72 + tmp73 + tmp74 + tmp76 + tmp77 + tmp78 + tmp79 + tmp82 + tmp87;
6465                                          EM_S[INDEX4(k,m,6,3,numEq,numComp,8)]+=tmp105 + tmp106 + tmp107 + tmp108 + tmp112 + tmp113 + tmp156 + tmp157 + tmp158 + tmp159;                                          EM_S[INDEX4(k,m,6,3,numEq,numComp,8)]+=tmp104 + tmp105 + tmp107 + tmp109 + tmp111 + tmp113 + tmp156 + tmp157 + tmp158 + tmp159;
6466                                          EM_S[INDEX4(k,m,6,4,numEq,numComp,8)]+=B_1_1*w31 - B_1_3*w45 - B_1_4*w44 + B_1_6*w39 + tmp30 + tmp31 + tmp32 + tmp33 + tmp34 + tmp35 + tmp36 + tmp37 + tmp38 + tmp39;                                          EM_S[INDEX4(k,m,6,4,numEq,numComp,8)]+=B_1_1*w34 - B_1_3*w48 - B_1_4*w47 + B_1_6*w42 + tmp30 + tmp31 + tmp32 + tmp33 + tmp34 + tmp35 + tmp36 + tmp37 + tmp38 + tmp39;
6467                                          EM_S[INDEX4(k,m,6,5,numEq,numComp,8)]+=tmp10 + tmp12 + tmp13 + tmp16 + tmp17 + tmp18 + tmp250 + tmp251 + tmp252 + tmp253;                                          EM_S[INDEX4(k,m,6,5,numEq,numComp,8)]+=tmp10 + tmp12 + tmp14 + tmp15 + tmp16 + tmp18 + tmp250 + tmp251 + tmp252 + tmp253;
6468                                          EM_S[INDEX4(k,m,6,6,numEq,numComp,8)]+=-B_0_0*w30 - B_0_1*w46 - B_0_6*w47 - B_0_7*w38 - B_1_1*w45 + B_1_3*w31 + B_1_4*w39 - B_1_6*w44 + B_2_1*w41 + B_2_2*w43 + B_2_5*w32 + B_2_6*w40 + tmp134 + tmp137 + tmp209 + tmp210 + tmp212 + tmp213;                                          EM_S[INDEX4(k,m,6,6,numEq,numComp,8)]+=-B_0_0*w33 - B_0_1*w49 - B_0_6*w50 - B_0_7*w41 - B_1_1*w48 + B_1_3*w34 + B_1_4*w42 - B_1_6*w47 + B_2_1*w44 + B_2_2*w46 + B_2_5*w35 + B_2_6*w43 + tmp133 + tmp136 + tmp209 + tmp210 + tmp212 + tmp213;
6469                                          EM_S[INDEX4(k,m,6,7,numEq,numComp,8)]+=-B_0_0*w46 - B_0_1*w30 - B_0_6*w38 - B_0_7*w47 + tmp122 + tmp123 + tmp124 + tmp125 + tmp126 + tmp127 + tmp128 + tmp129 + tmp130 + tmp131;                                          EM_S[INDEX4(k,m,6,7,numEq,numComp,8)]+=-B_0_0*w49 - B_0_1*w33 - B_0_6*w41 - B_0_7*w50 + tmp122 + tmp123 + tmp124 + tmp125 + tmp126 + tmp127 + tmp128 + tmp129 + tmp130 + tmp131;
6470                                          EM_S[INDEX4(k,m,7,0,numEq,numComp,8)]+=tmp258 + tmp259 + tmp80 + tmp81 + tmp94 + tmp95;                                          EM_S[INDEX4(k,m,7,0,numEq,numComp,8)]+=tmp258 + tmp259 + tmp80 + tmp81 + tmp94 + tmp95;
6471                                          EM_S[INDEX4(k,m,7,1,numEq,numComp,8)]+=tmp181 + tmp182 + tmp184 + tmp186 + tmp187 + tmp188 + tmp218 + tmp219 + tmp220 + tmp221;                                          EM_S[INDEX4(k,m,7,1,numEq,numComp,8)]+=tmp180 + tmp182 + tmp184 + tmp185 + tmp186 + tmp188 + tmp218 + tmp219 + tmp220 + tmp221;
6472                                          EM_S[INDEX4(k,m,7,2,numEq,numComp,8)]+=tmp104 + tmp105 + tmp106 + tmp107 + tmp108 + tmp109 + tmp110 + tmp111 + tmp112 + tmp113;                                          EM_S[INDEX4(k,m,7,2,numEq,numComp,8)]+=tmp104 + tmp105 + tmp106 + tmp107 + tmp108 + tmp109 + tmp110 + tmp111 + tmp112 + tmp113;
6473                                          EM_S[INDEX4(k,m,7,3,numEq,numComp,8)]+=B_2_0*w32 + B_2_3*w40 + B_2_4*w41 + B_2_7*w43 + tmp0 + tmp1 + tmp2 + tmp3 + tmp4 + tmp5 + tmp6 + tmp7 + tmp8 + tmp9;                                          EM_S[INDEX4(k,m,7,3,numEq,numComp,8)]+=B_2_0*w35 + B_2_3*w43 + B_2_4*w44 + B_2_7*w46 + tmp0 + tmp1 + tmp2 + tmp3 + tmp4 + tmp5 + tmp6 + tmp7 + tmp8 + tmp9;
6474                                          EM_S[INDEX4(k,m,7,4,numEq,numComp,8)]+=tmp12 + tmp13 + tmp250 + tmp251 + tmp252 + tmp253 + tmp66 + tmp67 + tmp68 + tmp69;                                          EM_S[INDEX4(k,m,7,4,numEq,numComp,8)]+=tmp10 + tmp15 + tmp250 + tmp251 + tmp252 + tmp253 + tmp66 + tmp67 + tmp68 + tmp69;
6475                                          EM_S[INDEX4(k,m,7,5,numEq,numComp,8)]+=B_1_0*w31 - B_1_2*w45 - B_1_5*w44 + B_1_7*w39 + tmp141 + tmp147 + tmp170 + tmp171 + tmp172 + tmp174 + tmp175 + tmp176 + tmp177 + tmp178;                                          EM_S[INDEX4(k,m,7,5,numEq,numComp,8)]+=B_1_0*w34 - B_1_2*w48 - B_1_5*w47 + B_1_7*w42 + tmp141 + tmp145 + tmp170 + tmp171 + tmp172 + tmp174 + tmp175 + tmp176 + tmp178 + tmp179;
6476                                          EM_S[INDEX4(k,m,7,6,numEq,numComp,8)]+=B_0_0*w30 + B_0_1*w46 + B_0_6*w47 + B_0_7*w38 + tmp122 + tmp123 + tmp124 + tmp125 + tmp126 + tmp127 + tmp130 + tmp131 + tmp148 + tmp149;                                          EM_S[INDEX4(k,m,7,6,numEq,numComp,8)]+=B_0_0*w33 + B_0_1*w49 + B_0_6*w50 + B_0_7*w41 + tmp122 + tmp123 + tmp124 + tmp125 + tmp127 + tmp129 + tmp130 + tmp131 + tmp148 + tmp149;
6477                                          EM_S[INDEX4(k,m,7,7,numEq,numComp,8)]+=B_0_0*w46 + B_0_1*w30 + B_0_6*w38 + B_0_7*w47 - B_1_0*w45 + B_1_2*w31 + B_1_5*w39 - B_1_7*w44 + B_2_0*w41 + B_2_3*w43 + B_2_4*w32 + B_2_7*w40 + tmp150 + tmp151 + tmp166 + tmp167 + tmp168 + tmp169;                                          EM_S[INDEX4(k,m,7,7,numEq,numComp,8)]+=B_0_0*w49 + B_0_1*w33 + B_0_6*w41 + B_0_7*w50 - B_1_0*w48 + B_1_2*w34 + B_1_5*w42 - B_1_7*w47 + B_2_0*w44 + B_2_3*w46 + B_2_4*w35 + B_2_7*w43 + tmp150 + tmp153 + tmp165 + tmp166 + tmp168 + tmp169;
6478                                      }                                      }
6479                                  }                                  }
6480                              } else { // constant data                              } else { // constant data
6481                                  for (index_t k=0; k<numEq; k++) {                                  for (index_t k=0; k<numEq; k++) {
6482                                      for (index_t m=0; m<numComp; m++) {                                      for (index_t m=0; m<numComp; m++) {
6483                                          const double B_0 = B_p[INDEX3(k,0,m,numEq,3)];                                          const double wB0 = B_p[INDEX3(k,0,m,numEq,3)]*w55;
6484                                          const double B_1 = B_p[INDEX3(k,1,m,numEq,3)];                                          const double wB1 = B_p[INDEX3(k,1,m,numEq,3)]*w56;
6485                                          const double B_2 = B_p[INDEX3(k,2,m,numEq,3)];                                          const double wB2 = B_p[INDEX3(k,2,m,numEq,3)]*w54;
6486                                          EM_S[INDEX4(k,m,0,0,numEq,numComp,8)]+=4*B_0*w53 + B_1*w51 - B_2*w50;                                          EM_S[INDEX4(k,m,0,0,numEq,numComp,8)]+= 4*wB0 + 4*wB1 + 4*wB2;
6487                                          EM_S[INDEX4(k,m,0,1,numEq,numComp,8)]+=4*B_0*w53 - B_1*w49 + B_2*w52;                                          EM_S[INDEX4(k,m,0,1,numEq,numComp,8)]+= 4*wB0 + 2*wB1 + 2*wB2;
6488                                          EM_S[INDEX4(k,m,0,2,numEq,numComp,8)]+=-B_0*w48 + B_1*w51 + B_2*w52;                                          EM_S[INDEX4(k,m,0,2,numEq,numComp,8)]+= 2*wB0 + 4*wB1 + 2*wB2;
6489                                          EM_S[INDEX4(k,m,0,3,numEq,numComp,8)]+=-B_0*w48 - B_1*w49 + B_2*w52/2;                                          EM_S[INDEX4(k,m,0,3,numEq,numComp,8)]+= 2*wB0 + 2*wB1 +   wB2;
6490                                          EM_S[INDEX4(k,m,0,4,numEq,numComp,8)]+=-B_0*w48 - B_1*w49 - B_2*w50;                                          EM_S[INDEX4(k,m,0,4,numEq,numComp,8)]+= 2*wB0 + 2*wB1 + 4*wB2;
6491                                          EM_S[INDEX4(k,m,0,5,numEq,numComp,8)]+=-B_0*w48 + B_1*w51/4 + B_2*w52;                                          EM_S[INDEX4(k,m,0,5,numEq,numComp,8)]+= 2*wB0 +   wB1 + 2*wB2;
6492                                          EM_S[INDEX4(k,m,0,6,numEq,numComp,8)]+=B_0*w53 - B_1*w49 + B_2*w52;                                          EM_S[INDEX4(k,m,0,6,numEq,numComp,8)]+=   wB0 + 2*wB1 + 2*wB2;
6493                                          EM_S[INDEX4(k,m,0,7,numEq,numComp,8)]+=B_0*w53 + B_1*w51/4 + B_2*w52/2;                                          EM_S[INDEX4(k,m,0,7,numEq,numComp,8)]+=   wB0 +   wB1 +   wB2;
6494                                          EM_S[INDEX4(k,m,1,0,numEq,numComp,8)]+=-4*B_0*w53 - B_1*w49 + B_2*w52;                                          EM_S[INDEX4(k,m,1,0,numEq,numComp,8)]+=-4*wB0 + 2*wB1 + 2*wB2;
6495                                          EM_S[INDEX4(k,m,1,1,numEq,numComp,8)]+=-4*B_0*w53 + B_1*w51 - B_2*w50;                                          EM_S[INDEX4(k,m,1,1,numEq,numComp,8)]+=-4*wB0 + 4*wB1 + 4*wB2;
6496                                          EM_S[INDEX4(k,m,1,2,numEq,numComp,8)]+=B_0*w48 - B_1*w49 + B_2*w52/2;                                          EM_S[INDEX4(k,m,1,2,numEq,numComp,8)]+=-2*wB0 + 2*wB1 +   wB2;
6497                                          EM_S[INDEX4(k,m,1,3,numEq,numComp,8)]+=B_0*w48 + B_1*w51 + B_2*w52;                                          EM_S[INDEX4(k,m,1,3,numEq,numComp,8)]+=-2*wB0 + 4*wB1 + 2*wB2;
6498                                          EM_S[INDEX4(k,m,1,4,numEq,numComp,8)]+=B_0*w48 + B_1*w51/4 + B_2*w52;                                          EM_S[INDEX4(k,m,1,4,numEq,numComp,8)]+=-2*wB0 +   wB1 + 2*wB2;
6499                                          EM_S[INDEX4(k,m,1,5,numEq,numComp,8)]+=B_0*w48 - B_1*w49 - B_2*w50;                                          EM_S[INDEX4(k,m,1,5,numEq,numComp,8)]+=-2*wB0 + 2*wB1 + 4*wB2;
6500                                          EM_S[INDEX4(k,m,1,6,numEq,numComp,8)]+=-B_0*w53 + B_1*w51/4 + B_2*w52/2;                                          EM_S[INDEX4(k,m,1,6,numEq,numComp,8)]+=  -wB0 +   wB1 +   wB2;
6501                                          EM_S[INDEX4(k,m,1,7,numEq,numComp,8)]+=-B_0*w53 - B_1*w49 + B_2*w52;                                          EM_S[INDEX4(k,m,1,7,numEq,numComp,8)]+=  -wB0 + 2*wB1 + 2*wB2;
6502                                          EM_S[INDEX4(k,m,2,0,numEq,numComp,8)]+=-B_0*w48 - B_1*w51 + B_2*w52;                                          EM_S[INDEX4(k,m,2,0,numEq,numComp,8)]+= 2*wB0 - 4*wB1 + 2*wB2;
6503                                          EM_S[INDEX4(k,m,2,1,numEq,numComp,8)]+=-B_0*w48 + B_1*w49 + B_2*w52/2;                                          EM_S[INDEX4(k,m,2,1,numEq,numComp,8)]+= 2*wB0 - 2*wB1 +   wB2;
6504                                          EM_S[INDEX4(k,m,2,2,numEq,numComp,8)]+=4*B_0*w53 - B_1*w51 - B_2*w50;                                          EM_S[INDEX4(k,m,2,2,numEq,numComp,8)]+= 4*wB0 - 4*wB1 + 4*wB2;
6505                                          EM_S[INDEX4(k,m,2,3,numEq,numComp,8)]+=4*B_0*w53 + B_1*w49 + B_2*w52;                                          EM_S[INDEX4(k,m,2,3,numEq,numComp,8)]+= 4*wB0 - 2*wB1 + 2*wB2;
6506                                          EM_S[INDEX4(k,m,2,4,numEq,numComp,8)]+=B_0*w53 + B_1*w49 + B_2*w52;                                          EM_S[INDEX4(k,m,2,4,numEq,numComp,8)]+=   wB0 - 2*wB1 + 2*wB2;
6507                                          EM_S[INDEX4(k,m,2,5,numEq,numComp,8)]+=B_0*w53 - B_1*w51/4 + B_2*w52/2;                                          EM_S[INDEX4(k,m,2,5,numEq,numComp,8)]+=   wB0 -   wB1 +   wB2;
6508                                          EM_S[INDEX4(k,m,2,6,numEq,numComp,8)]+=-B_0*w48 + B_1*w49 - B_2*w50;                                          EM_S[INDEX4(k,m,2,6,numEq,numComp,8)]+= 2*wB0 - 2*wB1 + 4*wB2;
6509                                          EM_S[INDEX4(k,m,2,7,numEq,numComp,8)]+=-B_0*w48 - B_1*w51/4 + B_2*w52;                                          EM_S[INDEX4(k,m,2,7,numEq,numComp,8)]+= 2*wB0 -   wB1 + 2*wB2;
6510                                          EM_S[INDEX4(k,m,3,0,numEq,numComp,8)]+=B_0*w48 + B_1*w49 + B_2*w52/2;                                          EM_S[INDEX4(k,m,3,0,numEq,numComp,8)]+=-2*wB0 - 2*wB1 +   wB2;
6511                                          EM_S[INDEX4(k,m,3,1,numEq,numComp,8)]+=B_0*w48 - B_1*w51 + B_2*w52;                                          EM_S[INDEX4(k,m,3,1,numEq,numComp,8)]+=-2*wB0 - 4*wB1 + 2*wB2;
6512                                          EM_S[INDEX4(k,m,3,2,numEq,numComp,8)]+=-4*B_0*w53 + B_1*w49 + B_2*w52;                                          EM_S[INDEX4(k,m,3,2,numEq,numComp,8)]+=-4*wB0 - 2*wB1 + 2*wB2;
6513                                          EM_S[INDEX4(k,m,3,3,numEq,numComp,8)]+=-4*B_0*w53 - B_1*w51 - B_2*w50;                                          EM_S[INDEX4(k,m,3,3,numEq,numComp,8)]+=-4*wB0 - 4*wB1 + 4*wB2;
6514                                          EM_S[INDEX4(k,m,3,4,numEq,numComp,8)]+=-B_0*w53 - B_1*w51/4 + B_2*w52/2;                                          EM_S[INDEX4(k,m,3,4,numEq,numComp,8)]+=  -wB0 -   wB1 +   wB2;
6515                                          EM_S[INDEX4(k,m,3,5,numEq,numComp,8)]+=-B_0*w53 + B_1*w49 + B_2*w52;                                          EM_S[INDEX4(k,m,3,5,numEq,numComp,8)]+=  -wB0 - 2*wB1 + 2*wB2;
6516                                          EM_S[INDEX4(k,m,3,6,numEq,numComp,8)]+=B_0*w48 - B_1*w51/4 + B_2*w52;                                          EM_S[INDEX4(k,m,3,6,numEq,numComp,8)]+=-2*wB0 -   wB1 + 2*wB2;
6517                                          EM_S[INDEX4(k,m,3,7,numEq,numComp,8)]+=B_0*w48 + B_1*w49 - B_2*w50;                                          EM_S[INDEX4(k,m,3,7,numEq,numComp,8)]+=-2*wB0 - 2*wB1 + 4*wB2;
6518                                          EM_S[INDEX4(k,m,4,0,numEq,numComp,8)]+=-B_0*w48 - B_1*w49 + B_2*w50;                                          EM_S[INDEX4(k,m,4,0,numEq,numComp,8)]+= 2*wB0 + 2*wB1 - 4*wB2;
6519                                          EM_S[INDEX4(k,m,4,1,numEq,numComp,8)]+=-B_0*w48 + B_1*w51/4 - B_2*w52;                                          EM_S[INDEX4(k,m,4,1,numEq,numComp,8)]+= 2*wB0 +   wB1 - 2*wB2;
6520                                          EM_S[INDEX4(k,m,4,2,numEq,numComp,8)]+=B_0*w53 - B_1*w49 - B_2*w52;                                          EM_S[INDEX4(k,m,4,2,numEq,numComp,8)]+=   wB0 + 2*wB1 - 2*wB2;
6521                                          EM_S[INDEX4(k,m,4,3,numEq,numComp,8)]+=B_0*w53 + B_1*w51/4 + B_2*w50/4;                                          EM_S[INDEX4(k,m,4,3,numEq,numComp,8)]+=   wB0 +   wB1 -   wB2;
6522                                          EM_S[INDEX4(k,m,4,4,numEq,numComp,8)]+=4*B_0*w53 + B_1*w51 + B_2*w50;                                          EM_S[INDEX4(k,m,4,4,numEq,numComp,8)]+= 4*wB0 + 4*wB1 - 4*wB2;
6523                                          EM_S[INDEX4(k,m,4,5,numEq,numComp,8)]+=4*B_0*w53 - B_1*w49 - B_2*w52;                                          EM_S[INDEX4(k,m,4,5,numEq,numComp,8)]+= 4*wB0 + 2*wB1 - 2*wB2;
6524                                          EM_S[INDEX4(k,m,4,6,numEq,numComp,8)]+=-B_0*w48 + B_1*w51 - B_2*w52;                                          EM_S[INDEX4(k,m,4,6,numEq,numComp,8)]+= 2*wB0 + 4*wB1 - 2*wB2;
6525                                          EM_S[INDEX4(k,m,4,7,numEq,numComp,8)]+=-B_0*w48 - B_1*w49 + B_2*w50/4;                                          EM_S[INDEX4(k,m,4,7,numEq,numComp,8)]+= 2*wB0 + 2*wB1 -   wB2;
6526                                          EM_S[INDEX4(k,m,5,0,numEq,numComp,8)]+=B_0*w48 + B_1*w51/4 - B_2*w52;                                          EM_S[INDEX4(k,m,5,0,numEq,numComp,8)]+=-2*wB0 +   wB1 - 2*wB2;
6527                                          EM_S[INDEX4(k,m,5,1,numEq,numComp,8)]+=B_0*w48 - B_1*w49 + B_2*w50;                                          EM_S[INDEX4(k,m,5,1,numEq,numComp,8)]+=-2*wB0 + 2*wB1 - 4*wB2;
6528                                          EM_S[INDEX4(k,m,5,2,numEq,numComp,8)]+=-B_0*w53 + B_1*w51/4 + B_2*w50/4;                                          EM_S[INDEX4(k,m,5,2,numEq,numComp,8)]+=  -wB0 +   wB1 -   wB2;
6529                                          EM_S[INDEX4(k,m,5,3,numEq,numComp,8)]+=-B_0*w53 - B_1*w49 - B_2*w52;                                          EM_S[INDEX4(k,m,5,3,numEq,numComp,8)]+=  -wB0 + 2*wB1 - 2*wB2;
6530                                          EM_S[INDEX4(k,m,5,4,numEq,numComp,8)]+=2*B_0*w48 - B_1*w49 - B_2*w52;                                          EM_S[INDEX4(k,m,5,4,numEq,numComp,8)]+=-4*wB0 + 2*wB1 - 2*wB2;
6531                                          EM_S[INDEX4(k,m,5,5,numEq,numComp,8)]+=-4*B_0*w53 + B_1*w51 + B_2*w50;                                          EM_S[INDEX4(k,m,5,5,numEq,numComp,8)]+=-4*wB0 + 4*wB1 - 4*wB2;
6532                                          EM_S[INDEX4(k,m,5,6,numEq,numComp,8)]+=B_0*w48 - B_1*w49 + B_2*w50/4;                                          EM_S[INDEX4(k,m,5,6,numEq,numComp,8)]+=-2*wB0 + 2*wB1 -   wB2;
6533                                          EM_S[INDEX4(k,m,5,7,numEq,numComp,8)]+=B_0*w48 + B_1*w51 - B_2*w52;                                          EM_S[INDEX4(k,m,5,7,numEq,numComp,8)]+=-2*wB0 + 4*wB1 - 2*wB2;
6534                                          EM_S[INDEX4(k,m,6,0,numEq,numComp,8)]+=B_0*w53 + B_1*w49 - B_2*w52;                                          EM_S[INDEX4(k,m,6,0,numEq,numComp,8)]+=   wB0 - 2*wB1 - 2*wB2;
6535                                          EM_S[INDEX4(k,m,6,1,numEq,numComp,8)]+=B_0*w53 - B_1*w51/4 + B_2*w50/4;                                          EM_S[INDEX4(k,m,6,1,numEq,numComp,8)]+=   wB0 -   wB1 -   wB2;
6536                                          EM_S[INDEX4(k,m,6,2,numEq,numComp,8)]+=-B_0*w48 + B_1*w49 + B_2*w50;                                          EM_S[INDEX4(k,m,6,2,numEq,numComp,8)]+= 2*wB0 - 2*wB1 - 4*wB2;
6537                                          EM_S[INDEX4(k,m,6,3,numEq,numComp,8)]+=-B_0*w48 - B_1*w51/4 - B_2*w52;                                          EM_S[INDEX4(k,m,6,3,numEq,numComp,8)]+= 2*wB0 -   wB1 - 2*wB2;
6538                                          EM_S[INDEX4(k,m,6,4,numEq,numComp,8)]+=-B_0*w48 - B_1*w51 - B_2*w52;                                          EM_S[INDEX4(k,m,6,4,numEq,numComp,8)]+= 2*wB0 - 4*wB1 - 2*wB2;
6539                                          EM_S[INDEX4(k,m,6,5,numEq,numComp,8)]+=-B_0*w48 + B_1*w49 + B_2*w50/4;                                          EM_S[INDEX4(k,m,6,5,numEq,numComp,8)]+= 2*wB0 - 2*wB1 -   wB2;
6540                                          EM_S[INDEX4(k,m,6,6,numEq,numComp,8)]+=4*B_0*w53 - B_1*w51 + B_2*w50;                                          EM_S[INDEX4(k,m,6,6,numEq,numComp,8)]+= 4*wB0 - 4*wB1 - 4*wB2;
6541                                          EM_S[INDEX4(k,m,6,7,numEq,numComp,8)]+=4*B_0*w53 + B_1*w49 - B_2*w52;                                          EM_S[INDEX4(k,m,6,7,numEq,numComp,8)]+= 4*wB0 - 2*wB1 - 2*wB2;
6542                                          EM_S[INDEX4(k,m,7,0,numEq,numComp,8)]+=-B_0*w53 - B_1*w51/4 + B_2*w50/4;                                          EM_S[INDEX4(k,m,7,0,numEq,numComp,8)]+=  -wB0 -   wB1 -   wB2;
6543                                          EM_S[INDEX4(k,m,7,1,numEq,numComp,8)]+=-B_0*w53 + B_1*w49 - B_2*w52;                                          EM_S[INDEX4(k,m,7,1,numEq,numComp,8)]+=  -wB0 - 2*wB1 - 2*wB2;
6544                                          EM_S[INDEX4(k,m,7,2,numEq,numComp,8)]+=B_0*w48 - B_1*w51/4 - B_2*w52;                                          EM_S[INDEX4(k,m,7,2,numEq,numComp,8)]+=-2*wB0 -   wB1 - 2*wB2;
6545                                          EM_S[INDEX4(k,m,7,3,numEq,numComp,8)]+=B_0*w48 + B_1*w49 + B_2*w50;                                          EM_S[INDEX4(k,m,7,3,numEq,numComp,8)]+=-2*wB0 - 2*wB1 - 4*wB2;
6546                                          EM_S[INDEX4(k,m,7,4,numEq,numComp,8)]+=B_0*w48 + B_1*w49 + B_2*w50/4;                                          EM_S[INDEX4(k,m,7,4,numEq,numComp,8)]+=-2*wB0 - 2*wB1 -   wB2;
6547                                          EM_S[INDEX4(k,m,7,5,numEq,numComp,8)]+=B_0*w48 - B_1*w51 - B_2*w52;                                          EM_S[INDEX4(k,m,7,5,numEq,numComp,8)]+=-2*wB0 - 4*wB1 - 2*wB2;
6548                                          EM_S[INDEX4(k,m,7,6,numEq,numComp,8)]+=-4*B_0*w53 + B_1*w49 - B_2*w52;                                          EM_S[INDEX4(k,m,7,6,numEq,numComp,8)]+=-4*wB0 - 2*wB1 - 2*wB2;
6549                                          EM_S[INDEX4(k,m,7,7,numEq,numComp,8)]+=-4*B_0*w53 - B_1*w51 + B_2*w50;                                          EM_S[INDEX4(k,m,7,7,numEq,numComp,8)]+=-4*wB0 - 4*wB1 - 4*wB2;
6550                                      }                                      }
6551                                  }                                  }
6552                              }                              }
# Line 6589  void Brick::assemblePDESystem(Paso_Syste Line 6584  void Brick::assemblePDESystem(Paso_Syste
6584                                          const double C_0_7 = C_p[INDEX4(k,m,0, 7, numEq,numComp,3)];                                          const double C_0_7 = C_p[INDEX4(k,m,0, 7, numEq,numComp,3)];
6585                                          const double C_1_7 = C_p[INDEX4(k,m,1, 7, numEq,numComp,3)];                                          const double C_1_7 = C_p[INDEX4(k,m,1, 7, numEq,numComp,3)];
6586                                          const double C_2_7 = C_p[INDEX4(k,m,2, 7, numEq,numComp,3)];                                          const double C_2_7 = C_p[INDEX4(k,m,2, 7, numEq,numComp,3)];
6587                                          const double tmp0 = w38*(C_0_3 + C_0_7);                                          const double tmp0 = w38*(-C_2_5 - C_2_6);
6588                                          const double tmp1 = w31*(C_1_0 + C_1_4);                                          const double tmp1 = w42*(C_1_3 + C_1_7);
6589                                          const double tmp2 = w42*(-C_2_1 - C_2_2);                                          const double tmp2 = w41*(C_0_3 + C_0_7);
6590                                          const double tmp3 = w35*(-C_2_5 - C_2_6);                                          const double tmp3 = w37*(C_1_1 + C_1_5);
6591                                          const double tmp4 = w37*(C_1_2 + C_1_6);                                          const double tmp4 = w39*(C_0_2 + C_0_6);
6592                                          const double tmp5 = w39*(C_1_3 + C_1_7);                                          const double tmp5 = w45*(-C_2_1 - C_2_2);
6593                                          const double tmp6 = w36*(C_0_2 + C_0_6);                                          const double tmp6 = w36*(C_0_1 + C_0_5);
6594                                          const double tmp7 = w33*(C_0_1 + C_0_5);                                          const double tmp7 = w40*(C_1_2 + C_1_6);
6595                                          const double tmp8 = w30*(C_0_0 + C_0_4);                                          const double tmp8 = w33*(C_0_0 + C_0_4);
6596                                          const double tmp9 = w34*(C_1_1 + C_1_5);                                          const double tmp9 = w34*(C_1_0 + C_1_4);
6597                                          const double tmp10 = w38*(C_0_4 + C_0_6);                                          const double tmp10 = w38*(C_2_4 + C_2_5 + C_2_6 + C_2_7);
6598                                          const double tmp11 = w31*(C_1_2 + C_1_3);                                          const double tmp11 = w42*(C_1_4 + C_1_5);
6599                                          const double tmp12 = w42*(C_2_0 + C_2_1 + C_2_2 + C_2_3);                                          const double tmp12 = w41*(C_0_4 + C_0_6);
6600                                          const double tmp13 = w35*(C_2_4 + C_2_5 + C_2_6 + C_2_7);                                          const double tmp13 = w37*(C_1_6 + C_1_7);
6601                                          const double tmp14 = w37*(C_1_0 + C_1_1);                                          const double tmp14 = w39*(C_0_5 + C_0_7);
6602                                          const double tmp15 = w39*(C_1_4 + C_1_5);                                          const double tmp15 = w45*(C_2_0 + C_2_1 + C_2_2 + C_2_3);
6603                                          const double tmp16 = w36*(C_0_5 + C_0_7);                                          const double tmp16 = w36*(C_0_0 + C_0_2);
6604                                          const double tmp17 = w33*(C_0_0 + C_0_2);                                          const double tmp17 = w40*(C_1_0 + C_1_1);
6605                                          const double tmp18 = w30*(C_0_1 + C_0_3);                                          const double tmp18 = w33*(C_0_1 + C_0_3);
6606                                          const double tmp19 = w34*(C_1_6 + C_1_7);                                          const double tmp19 = w34*(C_1_2 + C_1_3);
6607                                          const double tmp20 = w38*(C_0_1 + C_0_3);                                          const double tmp20 = w38*(-C_2_5 - C_2_7);
6608                                          const double tmp21 = w42*(-C_2_0 - C_2_2);                                          const double tmp21 = w35*(-C_2_4 - C_2_6);
6609                                          const double tmp22 = w35*(-C_2_5 - C_2_7);                                          const double tmp22 = w41*(C_0_1 + C_0_3);
6610                                          const double tmp23 = w37*(C_1_2 + C_1_7);                                          const double tmp23 = w37*(C_1_0 + C_1_5);
6611                                          const double tmp24 = w32*(-C_2_4 - C_2_6);                                          const double tmp24 = w39*(C_0_0 + C_0_2);
6612                                          const double tmp25 = w36*(C_0_0 + C_0_2);                                          const double tmp25 = w45*(-C_2_0 - C_2_2);
6613                                          const double tmp26 = w33*(C_0_5 + C_0_7);                                          const double tmp26 = w36*(C_0_5 + C_0_7);
6614                                          const double tmp27 = w30*(C_0_4 + C_0_6);                                          const double tmp27 = w40*(C_1_2 + C_1_7);
6615                                          const double tmp28 = w43*(-C_2_1 - C_2_3);                                          const double tmp28 = w33*(C_0_4 + C_0_6);
6616                                          const double tmp29 = w34*(C_1_0 + C_1_5);                                          const double tmp29 = w46*(-C_2_1 - C_2_3);
6617                                          const double tmp30 = w38*(-C_0_4 - C_0_6);                                          const double tmp30 = w38*(C_2_0 + C_2_2);
6618                                          const double tmp31 = w42*(C_2_5 + C_2_7);                                          const double tmp31 = w35*(C_2_1 + C_2_3);
6619                                          const double tmp32 = w35*(C_2_0 + C_2_2);                                          const double tmp32 = w41*(-C_0_4 - C_0_6);
6620                                          const double tmp33 = w37*(-C_1_0 - C_1_5);                                          const double tmp33 = w37*(-C_1_2 - C_1_7);
6621                                          const double tmp34 = w32*(C_2_1 + C_2_3);                                          const double tmp34 = w39*(-C_0_5 - C_0_7);
6622                                          const double tmp35 = w36*(-C_0_5 - C_0_7);                                          const double tmp35 = w45*(C_2_5 + C_2_7);
6623                                          const double tmp36 = w33*(-C_0_0 - C_0_2);                                          const double tmp36 = w36*(-C_0_0 - C_0_2);
6624                                          const double tmp37 = w30*(-C_0_1 - C_0_3);                                          const double tmp37 = w40*(-C_1_0 - C_1_5);
6625                                          const double tmp38 = w43*(C_2_4 + C_2_6);                                          const double tmp38 = w33*(-C_0_1 - C_0_3);
6626                                          const double tmp39 = w34*(-C_1_2 - C_1_7);                                          const double tmp39 = w46*(C_2_4 + C_2_6);
6627                                          const double tmp40 = w38*(-C_0_1 - C_0_3);                                          const double tmp40 = w38*(-C_2_0 - C_2_1 - C_2_2 - C_2_3);
6628                                          const double tmp41 = w31*(-C_1_4 - C_1_5);                                          const double tmp41 = w42*(-C_1_2 - C_1_3);
6629                                          const double tmp42 = w42*(-C_2_4 - C_2_5 - C_2_6 - C_2_7);                                          const double tmp42 = w41*(-C_0_1 - C_0_3);
6630                                          const double tmp43 = w35*(-C_2_0 - C_2_1 - C_2_2 - C_2_3);                                          const double tmp43 = w37*(-C_1_0 - C_1_1);
6631                                          const double tmp44 = w37*(-C_1_6 - C_1_7);                                          const double tmp44 = w39*(-C_0_0 - C_0_2);
6632                                          const double tmp45 = w39*(-C_1_2 - C_1_3);                                          const double tmp45 = w45*(-C_2_4 - C_2_5 - C_2_6 - C_2_7);
6633                                          const double tmp46 = w36*(-C_0_0 - C_0_2);                                          const double tmp46 = w36*(-C_0_5 - C_0_7);
6634                                          const double tmp47 = w33*(-C_0_5 - C_0_7);                                          const double tmp47 = w40*(-C_1_6 - C_1_7);
6635                                          const double tmp48 = w30*(-C_0_4 - C_0_6);                                          const double tmp48 = w33*(-C_0_4 - C_0_6);
6636                                          const double tmp49 = w34*(-C_1_0 - C_1_1);                                          const double tmp49 = w34*(-C_1_4 - C_1_5);
6637                                          const double tmp50 = w31*(-C_1_2 - C_1_3);                                          const double tmp50 = w38*(C_2_0 + C_2_1);
6638                                          const double tmp51 = w42*(C_2_6 + C_2_7);                                          const double tmp51 = w42*(-C_1_4 - C_1_5);
6639                                          const double tmp52 = w35*(C_2_0 + C_2_1);                                          const double tmp52 = w35*(C_2_2 + C_2_3);
6640                                          const double tmp53 = w37*(-C_1_0 - C_1_1);                                          const double tmp53 = w37*(-C_1_6 - C_1_7);
6641                                          const double tmp54 = w32*(C_2_2 + C_2_3);                                          const double tmp54 = w39*(-C_0_1 - C_0_7);
6642                                          const double tmp55 = w39*(-C_1_4 - C_1_5);                                          const double tmp55 = w45*(C_2_6 + C_2_7);
6643                                          const double tmp56 = w36*(-C_0_1 - C_0_7);                                          const double tmp56 = w36*(-C_0_0 - C_0_6);
6644                                          const double tmp57 = w33*(-C_0_0 - C_0_6);                                          const double tmp57 = w40*(-C_1_0 - C_1_1);
6645                                          const double tmp58 = w43*(C_2_4 + C_2_5);                                          const double tmp58 = w46*(C_2_4 + C_2_5);
6646                                          const double tmp59 = w34*(-C_1_6 - C_1_7);                                          const double tmp59 = w34*(-C_1_2 - C_1_3);
6647                                          const double tmp60 = w42*(C_2_4 + C_2_5 + C_2_6 + C_2_7);                                          const double tmp60 = w38*(C_2_0 + C_2_1 + C_2_2 + C_2_3);
6648                                          const double tmp61 = w35*(C_2_0 + C_2_1 + C_2_2 + C_2_3);                                          const double tmp61 = w37*(C_1_0 + C_1_1 + C_1_4 + C_1_5);
6649                                          const double tmp62 = w37*(C_1_2 + C_1_3 + C_1_6 + C_1_7);                                          const double tmp62 = w39*(C_0_0 + C_0_2 + C_0_4 + C_0_6);
6650                                          const double tmp63 = w36*(C_0_0 + C_0_2 + C_0_4 + C_0_6);                                          const double tmp63 = w45*(C_2_4 + C_2_5 + C_2_6 + C_2_7);
6651                                          const double tmp64 = w33*(C_0_1 + C_0_3 + C_0_5 + C_0_7);                                          const double tmp64 = w36*(C_0_1 + C_0_3 + C_0_5 + C_0_7);
6652                                          const double tmp65 = w34*(C_1_0 + C_1_1 + C_1_4 + C_1_5);                                          const double tmp65 = w40*(C_1_2 + C_1_3 + C_1_6 + C_1_7);
6653                                          const double tmp66 = w38*(-C_0_5 - C_0_7);                                          const double tmp66 = w41*(-C_0_5 - C_0_7);
6654                                          const double tmp67 = w36*(-C_0_4 - C_0_6);                                          const double tmp67 = w39*(-C_0_4 - C_0_6);
6655                                          const double tmp68 = w33*(-C_0_1 - C_0_3);                                          const double tmp68 = w36*(-C_0_1 - C_0_3);
6656                                          const double tmp69 = w30*(-C_0_0 - C_0_2);                                          const double tmp69 = w33*(-C_0_0 - C_0_2);
6657                                          const double tmp70 = w38*(-C_0_2 - C_0_6);                                          const double tmp70 = w38*(C_2_0 + C_2_3);
6658                                          const double tmp71 = w31*(C_1_1 + C_1_5);                                          const double tmp71 = w42*(C_1_2 + C_1_6);
6659                                          const double tmp72 = w42*(C_2_4 + C_2_7);                                          const double tmp72 = w41*(-C_0_2 - C_0_6);
6660                                          const double tmp73 = w35*(C_2_0 + C_2_3);                                          const double tmp73 = w37*(C_1_0 + C_1_4);
6661                                          const double tmp74 = w37*(C_1_3 + C_1_7);                                          const double tmp74 = w39*(-C_0_3 - C_0_7);
6662                                          const double tmp75 = w39*(C_1_2 + C_1_6);                                          const double tmp75 = w45*(C_2_4 + C_2_7);
6663                                          const double tmp76 = w36*(-C_0_3 - C_0_7);                                          const double tmp76 = w36*(-C_0_0 - C_0_4);
6664                                          const double tmp77 = w33*(-C_0_0 - C_0_4);                                          const double tmp77 = w40*(C_1_3 + C_1_7);
6665                                          const double tmp78 = w30*(-C_0_1 - C_0_5);                                          const double tmp78 = w33*(-C_0_1 - C_0_5);
6666                                          const double tmp79 = w34*(C_1_0 + C_1_4);                                          const double tmp79 = w34*(C_1_1 + C_1_5);
6667                                          const double tmp80 = w36*(-C_0_1 - C_0_3 - C_0_5 - C_0_7);                                          const double tmp80 = w39*(-C_0_1 - C_0_3 - C_0_5 - C_0_7);
6668                                          const double tmp81 = w33*(-C_0_0 - C_0_2 - C_0_4 - C_0_6);                                          const double tmp81 = w36*(-C_0_0 - C_0_2 - C_0_4 - C_0_6);
6669                                          const double tmp82 = w38*(C_0_1 + C_0_5);                                          const double tmp82 = w38*(-C_2_4 - C_2_7);
6670                                          const double tmp83 = w31*(-C_1_2 - C_1_6);                                          const double tmp83 = w42*(-C_1_1 - C_1_5);
6671                                          const double tmp84 = w42*(-C_2_0 - C_2_3);                                          const double tmp84 = w41*(C_0_1 + C_0_5);
6672                                          const double tmp85 = w35*(-C_2_4 - C_2_7);                                          const double tmp85 = w37*(-C_1_3 - C_1_7);
6673                                          const double tmp86 = w37*(-C_1_0 - C_1_4);                                          const double tmp86 = w39*(C_0_0 + C_0_4);
6674                                          const double tmp87 = w39*(-C_1_1 - C_1_5);                                          const double tmp87 = w45*(-C_2_0 - C_2_3);
6675                                          const double tmp88 = w36*(C_0_0 + C_0_4);                                          const double tmp88 = w36*(C_0_3 + C_0_7);
6676                                          const double tmp89 = w33*(C_0_3 + C_0_7);                                          const double tmp89 = w40*(-C_1_0 - C_1_4);
6677                                          const double tmp90 = w30*(C_0_2 + C_0_6);                                          const double tmp90 = w33*(C_0_2 + C_0_6);
6678                                          const double tmp91 = w34*(-C_1_3 - C_1_7);                                          const double tmp91 = w34*(-C_1_2 - C_1_6);
6679                                          const double tmp92 = w42*(C_2_5 + C_2_6);                                          const double tmp92 = w38*(C_2_1 + C_2_2);
6680                                          const double tmp93 = w35*(C_2_1 + C_2_2);                                          const double tmp93 = w45*(C_2_5 + C_2_6);
6681                                          const double tmp94 = w37*(-C_1_0 - C_1_1 - C_1_4 - C_1_5);                                          const double tmp94 = w37*(-C_1_2 - C_1_3 - C_1_6 - C_1_7);
6682                                          const double tmp95 = w34*(-C_1_2 - C_1_3 - C_1_6 - C_1_7);                                          const double tmp95 = w40*(-C_1_0 - C_1_1 - C_1_4 - C_1_5);
6683                                          const double tmp96 = w38*(C_0_0 + C_0_2);                                          const double tmp96 = w42*(C_1_0 + C_1_1);
6684                                          const double tmp97 = w31*(C_1_6 + C_1_7);                                          const double tmp97 = w41*(C_0_0 + C_0_2);
6685                                          const double tmp98 = w37*(C_1_4 + C_1_5);                                          const double tmp98 = w37*(C_1_2 + C_1_3);
6686                                          const double tmp99 = w39*(C_1_0 + C_1_1);                                          const double tmp99 = w39*(C_0_1 + C_0_3);
6687                                          const double tmp100 = w36*(C_0_1 + C_0_3);                                          const double tmp100 = w36*(C_0_4 + C_0_6);
6688                                          const double tmp101 = w33*(C_0_4 + C_0_6);                                          const double tmp101 = w40*(C_1_4 + C_1_5);
6689                                          const double tmp102 = w30*(C_0_5 + C_0_7);                                          const double tmp102 = w33*(C_0_5 + C_0_7);
6690                                          const double tmp103 = w34*(C_1_2 + C_1_3);                                          const double tmp103 = w34*(C_1_6 + C_1_7);
6691                                          const double tmp104 = w38*(-C_0_3 - C_0_7);                                          const double tmp104 = w38*(-C_2_2 - C_2_3);
6692                                          const double tmp105 = w42*(-C_2_4 - C_2_5);                                          const double tmp105 = w35*(-C_2_0 - C_2_1);
6693                                          const double tmp106 = w35*(-C_2_2 - C_2_3);                                          const double tmp106 = w41*(-C_0_3 - C_0_7);
6694                                          const double tmp107 = w37*(C_1_0 + C_1_1 + C_1_4 + C_1_5);                                          const double tmp107 = w37*(C_1_2 + C_1_3 + C_1_6 + C_1_7);
6695                                          const double tmp108 = w32*(-C_2_0 - C_2_1);                                          const double tmp108 = w39*(-C_0_2 - C_0_6);
6696                                          const double tmp109 = w36*(-C_0_2 - C_0_6);                                          const double tmp109 = w45*(-C_2_4 - C_2_5);
6697                                          const double tmp110 = w33*(-C_0_1 - C_0_5);                                          const double tmp110 = w36*(-C_0_1 - C_0_5);
6698                                          const double tmp111 = w30*(-C_0_0 - C_0_4);                                          const double tmp111 = w40*(C_1_0 + C_1_1 + C_1_4 + C_1_5);
6699                                          const double tmp112 = w43*(-C_2_6 - C_2_7);                                          const double tmp112 = w33*(-C_0_0 - C_0_4);
6700                                          const double tmp113 = w34*(C_1_2 + C_1_3 + C_1_6 + C_1_7);                                          const double tmp113 = w46*(-C_2_6 - C_2_7);
6701                                          const double tmp114 = w38*(-C_0_0 - C_0_4);                                          const double tmp114 = w42*(-C_1_0 - C_1_4);
6702                                          const double tmp115 = w31*(-C_1_3 - C_1_7);                                          const double tmp115 = w41*(-C_0_0 - C_0_4);
6703                                          const double tmp116 = w37*(-C_1_1 - C_1_5);                                          const double tmp116 = w37*(-C_1_2 - C_1_6);
6704                                          const double tmp117 = w39*(-C_1_0 - C_1_4);                                          const double tmp117 = w39*(-C_0_1 - C_0_5);
6705                                          const double tmp118 = w36*(-C_0_1 - C_0_5);                                          const double tmp118 = w36*(-C_0_2 - C_0_6);
6706                                          const double tmp119 = w33*(-C_0_2 - C_0_6);                                          const double tmp119 = w40*(-C_1_1 - C_1_5);
6707                                          const double tmp120 = w30*(-C_0_3 - C_0_7);                                          const double tmp120 = w33*(-C_0_3 - C_0_7);
6708                                          const double tmp121 = w34*(-C_1_2 - C_1_6);                                          const double tmp121 = w34*(-C_1_3 - C_1_7);
6709                                          const double tmp122 = w31*(C_1_0 + C_1_1);                                          const double tmp122 = w38*(C_2_2 + C_2_3);
6710                                          const double tmp123 = w42*(C_2_4 + C_2_5);                                          const double tmp123 = w42*(C_1_6 + C_1_7);
6711                                          const double tmp124 = w35*(C_2_2 + C_2_3);                                          const double tmp124 = w35*(C_2_0 + C_2_1);
6712                                          const double tmp125 = w37*(C_1_2 + C_1_3);                                          const double tmp125 = w37*(C_1_4 + C_1_5);
6713                                          const double tmp126 = w32*(C_2_0 + C_2_1);                                          const double tmp126 = w39*(C_0_2 + C_0_4);
6714                                          const double tmp127 = w39*(C_1_6 + C_1_7);                                          const double tmp127 = w45*(C_2_4 + C_2_5);
6715                                          const double tmp128 = w36*(C_0_2 + C_0_4);                                          const double tmp128 = w36*(C_0_3 + C_0_5);
6716                                          const double tmp129 = w33*(C_0_3 + C_0_5);                                          const double tmp129 = w40*(C_1_2 + C_1_3);
6717                                          const double tmp130 = w43*(C_2_6 + C_2_7);                                          const double tmp130 = w46*(C_2_6 + C_2_7);
6718                                          const double tmp131 = w34*(C_1_4 + C_1_5);                                          const double tmp131 = w34*(C_1_0 + C_1_1);
6719                                          const double tmp132 = w42*(-C_2_5 - C_2_6);                                          const double tmp132 = w38*(-C_2_1 - C_2_2);
6720                                          const double tmp133 = w35*(-C_2_1 - C_2_2);                                          const double tmp133 = w37*(C_1_2 + C_1_7);
6721                                          const double tmp134 = w37*(C_1_0 + C_1_5);                                          const double tmp134 = w39*(C_0_1 + C_0_7);
6722                                          const double tmp135 = w36*(C_0_1 + C_0_7);                                          const double tmp135 = w36*(C_0_0 + C_0_6);
6723                                          const double tmp136 = w33*(C_0_0 + C_0_6);                                          const double tmp136 = w40*(C_1_0 + C_1_5);
6724                                          const double tmp137 = w34*(C_1_2 + C_1_7);                                          const double tmp137 = w45*(-C_2_5 - C_2_6);
6725                                          const double tmp138 = w38*(-C_0_0 - C_0_2);                                          const double tmp138 = w38*(-C_2_4 - C_2_6);
6726                                          const double tmp139 = w42*(-C_2_1 - C_2_3);                                          const double tmp139 = w35*(-C_2_5 - C_2_7);
6727                                          const double tmp140 = w35*(-C_2_4 - C_2_6);                                          const double tmp140 = w41*(-C_0_0 - C_0_2);
6728                                          const double tmp141 = w37*(-C_1_1 - C_1_4);                                          const double tmp141 = w37*(-C_1_3 - C_1_6);
6729                                          const double tmp142 = w32*(-C_2_5 - C_2_7);                                          const double tmp142 = w39*(-C_0_1 - C_0_3);
6730                                          const double tmp143 = w36*(-C_0_1 - C_0_3);                                          const double tmp143 = w45*(-C_2_1 - C_2_3);
6731                                          const double tmp144 = w33*(-C_0_4 - C_0_6);                                          const double tmp144 = w36*(-C_0_4 - C_0_6);
6732                                          const double tmp145 = w30*(-C_0_5 - C_0_7);                                          const double tmp145 = w40*(-C_1_1 - C_1_4);
6733                                          const double tmp146 = w43*(-C_2_0 - C_2_2);                                          const double tmp146 = w33*(-C_0_5 - C_0_7);
6734                                          const double tmp147 = w34*(-C_1_3 - C_1_6);                                          const double tmp147 = w46*(-C_2_0 - C_2_2);
6735                                          const double tmp148 = w36*(-C_0_3 - C_0_5);                                          const double tmp148 = w39*(-C_0_3 - C_0_5);
6736                                          const double tmp149 = w33*(-C_0_2 - C_0_4);                                          const double tmp149 = w36*(-C_0_2 - C_0_4);
6737                                          const double tmp150 = w42*(C_2_1 + C_2_2);                                          const double tmp150 = w38*(C_2_5 + C_2_6);
6738                                          const double tmp151 = w35*(C_2_5 + C_2_6);                                          const double tmp151 = w37*(-C_1_0 - C_1_5);
6739                                          const double tmp152 = w37*(-C_1_2 - C_1_7);                                          const double tmp152 = w39*(-C_0_0 - C_0_6);
6740                                          const double tmp153 = w36*(-C_0_0 - C_0_6);                                          const double tmp153 = w45*(C_2_1 + C_2_2);
6741                                          const double tmp154 = w33*(-C_0_1 - C_0_7);                                          const double tmp154 = w36*(-C_0_1 - C_0_7);
6742                                          const double tmp155 = w34*(-C_1_0 - C_1_5);                                          const double tmp155 = w40*(-C_1_2 - C_1_7);
6743                                          const double tmp156 = w38*(C_0_2 + C_0_6);                                          const double tmp156 = w41*(C_0_2 + C_0_6);
6744                                          const double tmp157 = w36*(C_0_3 + C_0_7);                                          const double tmp157 = w39*(C_0_3 + C_0_7);
6745                                          const double tmp158 = w33*(C_0_0 + C_0_4);                                          const double tmp158 = w36*(C_0_0 + C_0_4);
6746                                          const double tmp159 = w30*(C_0_1 + C_0_5);                                          const double tmp159 = w33*(C_0_1 + C_0_5);
6747                                          const double tmp160 = w42*(C_2_0 + C_2_1);                                          const double tmp160 = w38*(C_2_6 + C_2_7);
6748                                          const double tmp161 = w35*(C_2_6 + C_2_7);                                          const double tmp161 = w35*(C_2_4 + C_2_5);
6749                                          const double tmp162 = w32*(C_2_4 + C_2_5);                                          const double tmp162 = w45*(C_2_0 + C_2_1);
6750                                          const double tmp163 = w43*(C_2_2 + C_2_3);                                          const double tmp163 = w46*(C_2_2 + C_2_3);
6751                                          const double tmp164 = w42*(-C_2_4 - C_2_7);                                          const double tmp164 = w38*(-C_2_0 - C_2_3);
6752                                          const double tmp165 = w35*(-C_2_0 - C_2_3);                                          const double tmp165 = w37*(C_1_3 + C_1_6);
6753                                          const double tmp166 = w37*(C_1_1 + C_1_4);                                          const double tmp166 = w40*(C_1_1 + C_1_4);
6754                                          const double tmp167 = w34*(C_1_3 + C_1_6);                                          const double tmp167 = w45*(-C_2_4 - C_2_7);
6755                                          const double tmp168 = w36*(C_0_3 + C_0_5);                                          const double tmp168 = w39*(C_0_3 + C_0_5);
6756                                          const double tmp169 = w33*(C_0_2 + C_0_4);                                          const double tmp169 = w36*(C_0_2 + C_0_4);
6757                                          const double tmp170 = w38*(C_0_5 + C_0_7);                                          const double tmp170 = w38*(C_2_1 + C_2_3);
6758                                          const double tmp171 = w42*(C_2_4 + C_2_6);                                          const double tmp171 = w35*(C_2_0 + C_2_2);
6759                                          const double tmp172 = w35*(C_2_1 + C_2_3);                                          const double tmp172 = w41*(C_0_5 + C_0_7);
6760                                          const double tmp173 = w37*(C_1_3 + C_1_6);                                          const double tmp173 = w37*(C_1_1 + C_1_4);
6761                                          const double tmp174 = w32*(C_2_0 + C_2_2);                                          const double tmp174 = w39*(C_0_4 + C_0_6);
6762                                          const double tmp175 = w36*(C_0_4 + C_0_6);                                          const double tmp175 = w45*(C_2_4 + C_2_6);
6763                                          const double tmp176 = w33*(C_0_1 + C_0_3);                                          const double tmp176 = w36*(C_0_1 + C_0_3);
6764                                          const double tmp177 = w30*(C_0_0 + C_0_2);                                          const double tmp177 = w40*(C_1_3 + C_1_6);
6765                                          const double tmp178 = w43*(C_2_5 + C_2_7);                                          const double tmp178 = w33*(C_0_0 + C_0_2);
6766                                          const double tmp179 = w34*(C_1_1 + C_1_4);                                          const double tmp179 = w46*(C_2_5 + C_2_7);
6767                                          const double tmp180 = w31*(C_1_2 + C_1_6);                                          const double tmp180 = w38*(-C_2_1 - C_2_3);
6768                                          const double tmp181 = w42*(-C_2_4 - C_2_6);                                          const double tmp181 = w42*(C_1_1 + C_1_5);
6769                                          const double tmp182 = w35*(-C_2_1 - C_2_3);                                          const double tmp182 = w35*(-C_2_0 - C_2_2);
6770                                          const double tmp183 = w37*(C_1_0 + C_1_4);                                          const double tmp183 = w37*(C_1_3 + C_1_7);
6771                                          const double tmp184 = w32*(-C_2_0 - C_2_2);                                          const double tmp184 = w39*(C_0_1 + C_0_3 + C_0_5 + C_0_7);
6772                                          const double tmp185 = w39*(C_1_1 + C_1_5);                                          const double tmp185 = w45*(-C_2_4 - C_2_6);
6773                                          const double tmp186 = w36*(C_0_1 + C_0_3 + C_0_5 + C_0_7);                                          const double tmp186 = w36*(C_0_0 + C_0_2 + C_0_4 + C_0_6);
6774                                          const double tmp187 = w33*(C_0_0 + C_0_2 + C_0_4 + C_0_6);                                          const double tmp187 = w40*(C_1_0 + C_1_4);
6775                                          const double tmp188 = w43*(-C_2_5 - C_2_7);                                          const double tmp188 = w46*(-C_2_5 - C_2_7);
6776                                          const double tmp189 = w34*(C_1_3 + C_1_7);                                          const double tmp189 = w34*(C_1_2 + C_1_6);
6777                                          const double tmp190 = w38*(C_0_0 + C_0_4);                                          const double tmp190 = w38*(-C_2_0 - C_2_1);
6778                                          const double tmp191 = w42*(-C_2_6 - C_2_7);                                          const double tmp191 = w35*(-C_2_2 - C_2_3);
6779                                          const double tmp192 = w35*(-C_2_0 - C_2_1);                                          const double tmp192 = w41*(C_0_0 + C_0_4);
6780                                          const double tmp193 = w37*(-C_1_2 - C_1_3 - C_1_6 - C_1_7);                                          const double tmp193 = w37*(-C_1_0 - C_1_1 - C_1_4 - C_1_5);
6781                                          const double tmp194 = w32*(-C_2_2 - C_2_3);                                          const double tmp194 = w39*(C_0_1 + C_0_5);
6782                                          const double tmp195 = w36*(C_0_1 + C_0_5);                                          const double tmp195 = w45*(-C_2_6 - C_2_7);
6783                                          const double tmp196 = w33*(C_0_2 + C_0_6);                                          const double tmp196 = w36*(C_0_2 + C_0_6);
6784                                          const double tmp197 = w30*(C_0_3 + C_0_7);                                          const double tmp197 = w40*(-C_1_2 - C_1_3 - C_1_6 - C_1_7);
6785                                          const double tmp198 = w43*(-C_2_4 - C_2_5);                                          const double tmp198 = w33*(C_0_3 + C_0_7);
6786                                          const double tmp199 = w34*(-C_1_0 - C_1_1 - C_1_4 - C_1_5);                                          const double tmp199 = w46*(-C_2_4 - C_2_5);
6787                                          const double tmp200 = w31*(C_1_4 + C_1_5);                                          const double tmp200 = w38*(-C_2_6 - C_2_7);
6788                                          const double tmp201 = w42*(-C_2_0 - C_2_1);                                          const double tmp201 = w42*(C_1_2 + C_1_3);
6789                                          const double tmp202 = w35*(-C_2_6 - C_2_7);                                          const double tmp202 = w35*(-C_2_4 - C_2_5);
6790                                          const double tmp203 = w37*(C_1_6 + C_1_7);                                          const double tmp203 = w37*(C_1_0 + C_1_1);
6791                                          const double tmp204 = w32*(-C_2_4 - C_2_5);                                          const double tmp204 = w45*(-C_2_0 - C_2_1);
6792                                          const double tmp205 = w39*(C_1_2 + C_1_3);                                          const double tmp205 = w40*(C_1_6 + C_1_7);
6793                                          const double tmp206 = w43*(-C_2_2 - C_2_3);                                          const double tmp206 = w46*(-C_2_2 - C_2_3);
6794                                          const double tmp207 = w34*(C_1_0 + C_1_1);                                          const double tmp207 = w34*(C_1_4 + C_1_5);
6795                                          const double tmp208 = w37*(-C_1_3 - C_1_6);                                          const double tmp208 = w37*(-C_1_1 - C_1_4);
6796                                          const double tmp209 = w36*(-C_0_2 - C_0_4);                                          const double tmp209 = w39*(-C_0_2 - C_0_4);
6797                                          const double tmp210 = w33*(-C_0_3 - C_0_5);                                          const double tmp210 = w36*(-C_0_3 - C_0_5);
6798                                          const double tmp211 = w34*(-C_1_1 - C_1_4);                                          const double tmp211 = w40*(-C_1_3 - C_1_6);
6799                                          const double tmp212 = w42*(C_2_0 + C_2_3);                                          const double tmp212 = w38*(C_2_4 + C_2_7);
6800                                          const double tmp213 = w35*(C_2_4 + C_2_7);                                          const double tmp213 = w45*(C_2_0 + C_2_3);
6801                                          const double tmp214 = w38*(-C_0_1 - C_0_5);                                          const double tmp214 = w41*(-C_0_1 - C_0_5);
6802                                          const double tmp215 = w36*(-C_0_0 - C_0_4);                                          const double tmp215 = w39*(-C_0_0 - C_0_4);
6803                                          const double tmp216 = w33*(-C_0_3 - C_0_7);                                          const double tmp216 = w36*(-C_0_3 - C_0_7);
6804                                          const double tmp217 = w30*(-C_0_2 - C_0_6);                                          const double tmp217 = w33*(-C_0_2 - C_0_6);
6805                                          const double tmp218 = w31*(-C_1_0 - C_1_4);                                          const double tmp218 = w42*(-C_1_3 - C_1_7);
6806                                          const double tmp219 = w37*(-C_1_2 - C_1_6);                                          const double tmp219 = w37*(-C_1_1 - C_1_5);
6807                                          const double tmp220 = w39*(-C_1_3 - C_1_7);                                          const double tmp220 = w40*(-C_1_2 - C_1_6);
6808                                          const double tmp221 = w34*(-C_1_1 - C_1_5);                                          const double tmp221 = w34*(-C_1_0 - C_1_4);
6809                                          const double tmp222 = w36*(C_0_0 + C_0_6);                                          const double tmp222 = w39*(C_0_0 + C_0_6);
6810                                          const double tmp223 = w33*(C_0_1 + C_0_7);                                          const double tmp223 = w36*(C_0_1 + C_0_7);
6811                                          const double tmp224 = w42*(C_2_2 + C_2_3);                                          const double tmp224 = w38*(C_2_4 + C_2_5);
6812                                          const double tmp225 = w35*(C_2_4 + C_2_5);                                          const double tmp225 = w35*(C_2_6 + C_2_7);
6813                                          const double tmp226 = w32*(C_2_6 + C_2_7);                                          const double tmp226 = w45*(C_2_2 + C_2_3);
6814                                          const double tmp227 = w43*(C_2_0 + C_2_1);                                          const double tmp227 = w46*(C_2_0 + C_2_1);
6815                                          const double tmp228 = w31*(-C_1_1 - C_1_5);                                          const double tmp228 = w38*(-C_2_0 - C_2_2);
6816                                          const double tmp229 = w42*(-C_2_5 - C_2_7);                                          const double tmp229 = w42*(-C_1_2 - C_1_6);
6817                                          const double tmp230 = w35*(-C_2_0 - C_2_2);                                          const double tmp230 = w35*(-C_2_1 - C_2_3);
6818                                          const double tmp231 = w37*(-C_1_3 - C_1_7);                                          const double tmp231 = w37*(-C_1_0 - C_1_4);
6819                                          const double tmp232 = w32*(-C_2_1 - C_2_3);                                          const double tmp232 = w39*(-C_0_0 - C_0_2 - C_0_4 - C_0_6);
6820                                          const double tmp233 = w39*(-C_1_2 - C_1_6);                                          const double tmp233 = w45*(-C_2_5 - C_2_7);
6821                                          const double tmp234 = w36*(-C_0_0 - C_0_2 - C_0_4 - C_0_6);                                          const double tmp234 = w36*(-C_0_1 - C_0_3 - C_0_5 - C_0_7);
6822                                          const double tmp235 = w33*(-C_0_1 - C_0_3 - C_0_5 - C_0_7);                                          const double tmp235 = w40*(-C_1_3 - C_1_7);
6823                                          const double tmp236 = w43*(-C_2_4 - C_2_6);                                          const double tmp236 = w46*(-C_2_4 - C_2_6);
6824                                          const double tmp237 = w34*(-C_1_0 - C_1_4);                                          const double tmp237 = w34*(-C_1_1 - C_1_5);
6825                                          const double tmp238 = w31*(C_1_3 + C_1_7);                                          const double tmp238 = w42*(C_1_0 + C_1_4);
6826                                          const double tmp239 = w37*(C_1_1 + C_1_5);                                          const double tmp239 = w37*(C_1_2 + C_1_6);
6827                                          const double tmp240 = w39*(C_1_0 + C_1_4);                                          const double tmp240 = w40*(C_1_1 + C_1_5);
6828                                          const double tmp241 = w34*(C_1_2 + C_1_6);                                          const double tmp241 = w34*(C_1_3 + C_1_7);
6829                                          const double tmp242 = w31*(-C_1_6 - C_1_7);                                          const double tmp242 = w38*(-C_2_4 - C_2_5);
6830                                          const double tmp243 = w42*(-C_2_2 - C_2_3);                                          const double tmp243 = w42*(-C_1_0 - C_1_1);
6831                                          const double tmp244 = w35*(-C_2_4 - C_2_5);                                          const double tmp244 = w35*(-C_2_6 - C_2_7);
6832                                          const double tmp245 = w37*(-C_1_4 - C_1_5);                                          const double tmp245 = w37*(-C_1_2 - C_1_3);
6833                                          const double tmp246 = w32*(-C_2_6 - C_2_7);                                          const double tmp246 = w45*(-C_2_2 - C_2_3);
6834                                          const double tmp247 = w39*(-C_1_0 - C_1_1);                                          const double tmp247 = w40*(-C_1_4 - C_1_5);
6835                                          const double tmp248 = w43*(-C_2_0 - C_2_1);                                          const double tmp248 = w46*(-C_2_0 - C_2_1);
6836                                          const double tmp249 = w34*(-C_1_2 - C_1_3);                                          const double tmp249 = w34*(-C_1_6 - C_1_7);
6837                                          const double tmp250 = w31*(-C_1_0 - C_1_1);                                          const double tmp250 = w42*(-C_1_6 - C_1_7);
6838                                          const double tmp251 = w37*(-C_1_2 - C_1_3);                                          const double tmp251 = w37*(-C_1_4 - C_1_5);
6839                                          const double tmp252 = w39*(-C_1_6 - C_1_7);                                          const double tmp252 = w40*(-C_1_2 - C_1_3);
6840                                          const double tmp253 = w34*(-C_1_4 - C_1_5);                                          const double tmp253 = w34*(-C_1_0 - C_1_1);
6841                                          const double tmp254 = w42*(C_2_0 + C_2_2);                                          const double tmp254 = w38*(C_2_5 + C_2_7);
6842                                          const double tmp255 = w35*(C_2_5 + C_2_7);                                          const double tmp255 = w35*(C_2_4 + C_2_6);
6843                                          const double tmp256 = w32*(C_2_4 + C_2_6);                                          const double tmp256 = w45*(C_2_0 + C_2_2);
6844                                          const double tmp257 = w43*(C_2_1 + C_2_3);                                          const double tmp257 = w46*(C_2_1 + C_2_3);
6845                                          const double tmp258 = w42*(-C_2_0 - C_2_1 - C_2_2 - C_2_3);                                          const double tmp258 = w38*(-C_2_4 - C_2_5 - C_2_6 - C_2_7);
6846                                          const double tmp259 = w35*(-C_2_4 - C_2_5 - C_2_6 - C_2_7);                                          const double tmp259 = w45*(-C_2_0 - C_2_1 - C_2_2 - C_2_3);
6847                                          const double tmp260 = w42*(C_2_1 + C_2_3);                                          const double tmp260 = w38*(C_2_4 + C_2_6);
6848                                          const double tmp261 = w35*(C_2_4 + C_2_6);                                          const double tmp261 = w35*(C_2_5 + C_2_7);
6849                                          const double tmp262 = w32*(C_2_5 + C_2_7);                                          const double tmp262 = w45*(C_2_1 + C_2_3);
6850                                          const double tmp263 = w43*(C_2_0 + C_2_2);                                          const double tmp263 = w46*(C_2_0 + C_2_2);
6851                                          EM_S[INDEX4(k,m,0,0,numEq,numComp,8)]+=-C_0_0*w47 - C_0_1*w38 - C_0_6*w30 - C_0_7*w46 + C_1_0*w44 - C_1_2*w39 - C_1_5*w31 + C_1_7*w45 - C_2_0*w40 - C_2_3*w32 - C_2_4*w43 - C_2_7*w41 + tmp132 + tmp133 + tmp208 + tmp209 + tmp210 + tmp211;                                          EM_S[INDEX4(k,m,0,0,numEq,numComp,8)]+=-C_0_0*w50 - C_0_1*w41 - C_0_6*w33 - C_0_7*w49 + C_1_0*w47 - C_1_2*w42 - C_1_5*w34 + C_1_7*w48 - C_2_0*w43 - C_2_3*w35 - C_2_4*w46 - C_2_7*w44 + tmp132 + tmp137 + tmp208 + tmp209 + tmp210 + tmp211;
6852                                          EM_S[INDEX4(k,m,0,1,numEq,numComp,8)]+=C_0_0*w47 + C_0_1*w38 + C_0_6*w30 + C_0_7*w46 + tmp128 + tmp129 + tmp242 + tmp243 + tmp244 + tmp245 + tmp246 + tmp247 + tmp248 + tmp249;                                          EM_S[INDEX4(k,m,0,1,numEq,numComp,8)]+=C_0_0*w50 + C_0_1*w41 + C_0_6*w33 + C_0_7*w49 + tmp126 + tmp128 + tmp242 + tmp243 + tmp244 + tmp245 + tmp246 + tmp247 + tmp248 + tmp249;
6853                                          EM_S[INDEX4(k,m,0,2,numEq,numComp,8)]+=-C_1_0*w44 + C_1_2*w39 + C_1_5*w31 - C_1_7*w45 + tmp138 + tmp139 + tmp140 + tmp142 + tmp143 + tmp144 + tmp145 + tmp146 + tmp173 + tmp179;                                          EM_S[INDEX4(k,m,0,2,numEq,numComp,8)]+=-C_1_0*w47 + C_1_2*w42 + C_1_5*w34 - C_1_7*w48 + tmp138 + tmp139 + tmp140 + tmp142 + tmp143 + tmp144 + tmp146 + tmp147 + tmp173 + tmp177;
6854                                          EM_S[INDEX4(k,m,0,3,numEq,numComp,8)]+=tmp100 + tmp101 + tmp102 + tmp103 + tmp42 + tmp43 + tmp96 + tmp97 + tmp98 + tmp99;                                          EM_S[INDEX4(k,m,0,3,numEq,numComp,8)]+=tmp100 + tmp101 + tmp102 + tmp103 + tmp40 + tmp45 + tmp96 + tmp97 + tmp98 + tmp99;
6855                                          EM_S[INDEX4(k,m,0,4,numEq,numComp,8)]+=C_2_0*w40 + C_2_3*w32 + C_2_4*w43 + C_2_7*w41 + tmp114 + tmp115 + tmp116 + tmp117 + tmp118 + tmp119 + tmp120 + tmp121 + tmp92 + tmp93;                                          EM_S[INDEX4(k,m,0,4,numEq,numComp,8)]+=C_2_0*w43 + C_2_3*w35 + C_2_4*w46 + C_2_7*w44 + tmp114 + tmp115 + tmp116 + tmp117 + tmp118 + tmp119 + tmp120 + tmp121 + tmp92 + tmp93;
6856                                          EM_S[INDEX4(k,m,0,5,numEq,numComp,8)]+=tmp190 + tmp193 + tmp195 + tmp196 + tmp197 + tmp199 + tmp224 + tmp225 + tmp226 + tmp227;                                          EM_S[INDEX4(k,m,0,5,numEq,numComp,8)]+=tmp192 + tmp193 + tmp194 + tmp196 + tmp197 + tmp198 + tmp224 + tmp225 + tmp226 + tmp227;
6857                                          EM_S[INDEX4(k,m,0,6,numEq,numComp,8)]+=tmp234 + tmp235 + tmp238 + tmp239 + tmp240 + tmp241 + tmp260 + tmp261 + tmp262 + tmp263;                                          EM_S[INDEX4(k,m,0,6,numEq,numComp,8)]+=tmp232 + tmp234 + tmp238 + tmp239 + tmp240 + tmp241 + tmp260 + tmp261 + tmp262 + tmp263;
6858                                          EM_S[INDEX4(k,m,0,7,numEq,numComp,8)]+=tmp60 + tmp61 + tmp62 + tmp63 + tmp64 + tmp65;                                          EM_S[INDEX4(k,m,0,7,numEq,numComp,8)]+=tmp60 + tmp61 + tmp62 + tmp63 + tmp64 + tmp65;
6859                                          EM_S[INDEX4(k,m,1,0,numEq,numComp,8)]+=-C_0_0*w38 - C_0_1*w47 - C_0_6*w46 - C_0_7*w30 + tmp148 + tmp149 + tmp242 + tmp243 + tmp244 + tmp245 + tmp246 + tmp247 + tmp248 + tmp249;                                          EM_S[INDEX4(k,m,1,0,numEq,numComp,8)]+=-C_0_0*w41 - C_0_1*w50 - C_0_6*w49 - C_0_7*w33 + tmp148 + tmp149 + tmp242 + tmp243 + tmp244 + tmp245 + tmp246 + tmp247 + tmp248 + tmp249;
6860                                          EM_S[INDEX4(k,m,1,1,numEq,numComp,8)]+=C_0_0*w38 + C_0_1*w47 + C_0_6*w46 + C_0_7*w30 + C_1_1*w44 - C_1_3*w39 - C_1_4*w31 + C_1_6*w45 - C_2_1*w40 - C_2_2*w32 - C_2_5*w43 - C_2_6*w41 + tmp152 + tmp155 + tmp164 + tmp165 + tmp168 + tmp169;                                          EM_S[INDEX4(k,m,1,1,numEq,numComp,8)]+=C_0_0*w41 + C_0_1*w50 + C_0_6*w49 + C_0_7*w33 + C_1_1*w47 - C_1_3*w42 - C_1_4*w34 + C_1_6*w48 - C_2_1*w43 - C_2_2*w35 - C_2_5*w46 - C_2_6*w44 + tmp151 + tmp155 + tmp164 + tmp167 + tmp168 + tmp169;
6861                                          EM_S[INDEX4(k,m,1,2,numEq,numComp,8)]+=tmp103 + tmp40 + tmp42 + tmp43 + tmp46 + tmp47 + tmp48 + tmp97 + tmp98 + tmp99;                                          EM_S[INDEX4(k,m,1,2,numEq,numComp,8)]+=tmp101 + tmp103 + tmp40 + tmp42 + tmp44 + tmp45 + tmp46 + tmp48 + tmp96 + tmp98;
6862                                          EM_S[INDEX4(k,m,1,3,numEq,numComp,8)]+=-C_1_1*w44 + C_1_3*w39 + C_1_4*w31 - C_1_6*w45 + tmp20 + tmp21 + tmp22 + tmp23 + tmp24 + tmp25 + tmp26 + tmp27 + tmp28 + tmp29;                                          EM_S[INDEX4(k,m,1,3,numEq,numComp,8)]+=-C_1_1*w47 + C_1_3*w42 + C_1_4*w34 - C_1_6*w48 + tmp20 + tmp21 + tmp22 + tmp23 + tmp24 + tmp25 + tmp26 + tmp27 + tmp28 + tmp29;
6863                                          EM_S[INDEX4(k,m,1,4,numEq,numComp,8)]+=tmp193 + tmp199 + tmp214 + tmp215 + tmp216 + tmp217 + tmp224 + tmp225 + tmp226 + tmp227;                                          EM_S[INDEX4(k,m,1,4,numEq,numComp,8)]+=tmp193 + tmp197 + tmp214 + tmp215 + tmp216 + tmp217 + tmp224 + tmp225 + tmp226 + tmp227;
6864                                          EM_S[INDEX4(k,m,1,5,numEq,numComp,8)]+=C_2_1*w40 + C_2_2*w32 + C_2_5*w43 + C_2_6*w41 + tmp72 + tmp73 + tmp82 + tmp83 + tmp86 + tmp87 + tmp88 + tmp89 + tmp90 + tmp91;                                          EM_S[INDEX4(k,m,1,5,numEq,numComp,8)]+=C_2_1*w43 + C_2_2*w35 + C_2_5*w46 + C_2_6*w44 + tmp70 + tmp75 + tmp83 + tmp84 + tmp85 + tmp86 + tmp88 + tmp89 + tmp90 + tmp91;
6865                                          EM_S[INDEX4(k,m,1,6,numEq,numComp,8)]+=tmp60 + tmp61 + tmp62 + tmp65 + tmp80 + tmp81;                                          EM_S[INDEX4(k,m,1,6,numEq,numComp,8)]+=tmp60 + tmp61 + tmp63 + tmp65 + tmp80 + tmp81;
6866                                          EM_S[INDEX4(k,m,1,7,numEq,numComp,8)]+=tmp180 + tmp183 + tmp185 + tmp186 + tmp187 + tmp189 + tmp254 + tmp255 + tmp256 + tmp257;                                          EM_S[INDEX4(k,m,1,7,numEq,numComp,8)]+=tmp181 + tmp183 + tmp184 + tmp186 + tmp187 + tmp189 + tmp254 + tmp255 + tmp256 + tmp257;
6867                                          EM_S[INDEX4(k,m,2,0,numEq,numComp,8)]+=-C_1_0*w39 + C_1_2*w44 + C_1_5*w45 - C_1_7*w31 + tmp138 + tmp139 + tmp140 + tmp141 + tmp142 + tmp143 + tmp144 + tmp145 + tmp146 + tmp147;                                          EM_S[INDEX4(k,m,2,0,numEq,numComp,8)]+=-C_1_0*w42 + C_1_2*w47 + C_1_5*w48 - C_1_7*w34 + tmp138 + tmp139 + tmp140 + tmp141 + tmp142 + tmp143 + tmp144 + tmp145 + tmp146 + tmp147;
6868                                          EM_S[INDEX4(k,m,2,1,numEq,numComp,8)]+=tmp100 + tmp101 + tmp102 + tmp41 + tmp42 + tmp43 + tmp44 + tmp45 + tmp49 + tmp96;                                          EM_S[INDEX4(k,m,2,1,numEq,numComp,8)]+=tmp100 + tmp102 + tmp40 + tmp41 + tmp43 + tmp45 + tmp47 + tmp49 + tmp97 + tmp99;
6869                                          EM_S[INDEX4(k,m,2,2,numEq,numComp,8)]+=-C_0_2*w47 - C_0_3*w38 - C_0_4*w30 - C_0_5*w46 + C_1_0*w39 - C_1_2*w44 - C_1_5*w45 + C_1_7*w31 - C_2_1*w32 - C_2_2*w40 - C_2_5*w41 - C_2_6*w43 + tmp153 + tmp154 + tmp164 + tmp165 + tmp166 + tmp167;                                          EM_S[INDEX4(k,m,2,2,numEq,numComp,8)]+=-C_0_2*w50 - C_0_3*w41 - C_0_4*w33 - C_0_5*w49 + C_1_0*w42 - C_1_2*w47 - C_1_5*w48 + C_1_7*w34 - C_2_1*w35 - C_2_2*w43 - C_2_5*w44 - C_2_6*w46 + tmp152 + tmp154 + tmp164 + tmp165 + tmp166 + tmp167;
6870                                          EM_S[INDEX4(k,m,2,3,numEq,numComp,8)]+=C_0_2*w47 + C_0_3*w38 + C_0_4*w30 + C_0_5*w46 + tmp200 + tmp201 + tmp202 + tmp203 + tmp204 + tmp205 + tmp206 + tmp207 + tmp222 + tmp223;                                          EM_S[INDEX4(k,m,2,3,numEq,numComp,8)]+=C_0_2*w50 + C_0_3*w41 + C_0_4*w33 + C_0_5*w49 + tmp200 + tmp201 + tmp202 + tmp203 + tmp204 + tmp205 + tmp206 + tmp207 + tmp222 + tmp223;
6871                                          EM_S[INDEX4(k,m,2,4,numEq,numComp,8)]+=tmp228 + tmp231 + tmp233 + tmp234 + tmp235 + tmp237 + tmp260 + tmp261 + tmp262 + tmp263;                                          EM_S[INDEX4(k,m,2,4,numEq,numComp,8)]+=tmp229 + tmp231 + tmp232 + tmp234 + tmp235 + tmp237 + tmp260 + tmp261 + tmp262 + tmp263;
6872                                          EM_S[INDEX4(k,m,2,5,numEq,numComp,8)]+=tmp60 + tmp61 + tmp63 + tmp64 + tmp94 + tmp95;                                          EM_S[INDEX4(k,m,2,5,numEq,numComp,8)]+=tmp60 + tmp62 + tmp63 + tmp64 + tmp94 + tmp95;
6873                                          EM_S[INDEX4(k,m,2,6,numEq,numComp,8)]+=C_2_1*w32 + C_2_2*w40 + C_2_5*w41 + C_2_6*w43 + tmp70 + tmp71 + tmp72 + tmp73 + tmp74 + tmp75 + tmp76 + tmp77 + tmp78 + tmp79;                                          EM_S[INDEX4(k,m,2,6,numEq,numComp,8)]+=C_2_1*w35 + C_2_2*w43 + C_2_5*w44 + C_2_6*w46 + tmp70 + tmp71 + tmp72 + tmp73 + tmp74 + tmp75 + tmp76 + tmp77 + tmp78 + tmp79;
6874                                          EM_S[INDEX4(k,m,2,7,numEq,numComp,8)]+=tmp107 + tmp113 + tmp156 + tmp157 + tmp158 + tmp159 + tmp160 + tmp161 + tmp162 + tmp163;                                          EM_S[INDEX4(k,m,2,7,numEq,numComp,8)]+=tmp107 + tmp111 + tmp156 + tmp157 + tmp158 + tmp159 + tmp160 + tmp161 + tmp162 + tmp163;
6875                                          EM_S[INDEX4(k,m,3,0,numEq,numComp,8)]+=tmp40 + tmp41 + tmp42 + tmp43 + tmp44 + tmp45 + tmp46 + tmp47 + tmp48 + tmp49;                                          EM_S[INDEX4(k,m,3,0,numEq,numComp,8)]+=tmp40 + tmp41 + tmp42 + tmp43 + tmp44 + tmp45 + tmp46 + tmp47 + tmp48 + tmp49;
6876                                          EM_S[INDEX4(k,m,3,1,numEq,numComp,8)]+=-C_1_1*w39 + C_1_3*w44 + C_1_4*w45 - C_1_6*w31 + tmp20 + tmp21 + tmp22 + tmp24 + tmp25 + tmp26 + tmp27 + tmp28 + tmp33 + tmp39;                                          EM_S[INDEX4(k,m,3,1,numEq,numComp,8)]+=-C_1_1*w42 + C_1_3*w47 + C_1_4*w48 - C_1_6*w34 + tmp20 + tmp21 + tmp22 + tmp24 + tmp25 + tmp26 + tmp28 + tmp29 + tmp33 + tmp37;
6877                                          EM_S[INDEX4(k,m,3,2,numEq,numComp,8)]+=-C_0_2*w38 - C_0_3*w47 - C_0_4*w46 - C_0_5*w30 + tmp200 + tmp201 + tmp202 + tmp203 + tmp204 + tmp205 + tmp206 + tmp207 + tmp56 + tmp57;                                          EM_S[INDEX4(k,m,3,2,numEq,numComp,8)]+=-C_0_2*w41 - C_0_3*w50 - C_0_4*w49 - C_0_5*w33 + tmp200 + tmp201 + tmp202 + tmp203 + tmp204 + tmp205 + tmp206 + tmp207 + tmp54 + tmp56;
6878                                          EM_S[INDEX4(k,m,3,3,numEq,numComp,8)]+=C_0_2*w38 + C_0_3*w47 + C_0_4*w46 + C_0_5*w30 + C_1_1*w39 - C_1_3*w44 - C_1_4*w45 + C_1_6*w31 - C_2_0*w32 - C_2_3*w40 - C_2_4*w41 - C_2_7*w43 + tmp132 + tmp133 + tmp134 + tmp135 + tmp136 + tmp137;                                          EM_S[INDEX4(k,m,3,3,numEq,numComp,8)]+=C_0_2*w41 + C_0_3*w50 + C_0_4*w49 + C_0_5*w33 + C_1_1*w42 - C_1_3*w47 - C_1_4*w48 + C_1_6*w34 - C_2_0*w35 - C_2_3*w43 - C_2_4*w44 - C_2_7*w46 + tmp132 + tmp133 + tmp134 + tmp135 + tmp136 + tmp137;
6879                                          EM_S[INDEX4(k,m,3,4,numEq,numComp,8)]+=tmp60 + tmp61 + tmp80 + tmp81 + tmp94 + tmp95;                                          EM_S[INDEX4(k,m,3,4,numEq,numComp,8)]+=tmp60 + tmp63 + tmp80 + tmp81 + tmp94 + tmp95;
6880                                          EM_S[INDEX4(k,m,3,5,numEq,numComp,8)]+=tmp186 + tmp187 + tmp218 + tmp219 + tmp220 + tmp221 + tmp254 + tmp255 + tmp256 + tmp257;                                          EM_S[INDEX4(k,m,3,5,numEq,numComp,8)]+=tmp184 + tmp186 + tmp218 + tmp219 + tmp220 + tmp221 + tmp254 + tmp255 + tmp256 + tmp257;
6881                                          EM_S[INDEX4(k,m,3,6,numEq,numComp,8)]+=tmp104 + tmp107 + tmp109 + tmp110 + tmp111 + tmp113 + tmp160 + tmp161 + tmp162 + tmp163;                                          EM_S[INDEX4(k,m,3,6,numEq,numComp,8)]+=tmp106 + tmp107 + tmp108 + tmp110 + tmp111 + tmp112 + tmp160 + tmp161 + tmp162 + tmp163;
6882                                          EM_S[INDEX4(k,m,3,7,numEq,numComp,8)]+=C_2_0*w32 + C_2_3*w40 + C_2_4*w41 + C_2_7*w43 + tmp0 + tmp1 + tmp4 + tmp5 + tmp6 + tmp7 + tmp8 + tmp9 + tmp92 + tmp93;                                          EM_S[INDEX4(k,m,3,7,numEq,numComp,8)]+=C_2_0*w35 + C_2_3*w43 + C_2_4*w44 + C_2_7*w46 + tmp1 + tmp2 + tmp3 + tmp4 + tmp6 + tmp7 + tmp8 + tmp9 + tmp92 + tmp93;
6883                                          EM_S[INDEX4(k,m,4,0,numEq,numComp,8)]+=-C_2_0*w43 - C_2_3*w41 - C_2_4*w40 - C_2_7*w32 + tmp114 + tmp115 + tmp116 + tmp117 + tmp118 + tmp119 + tmp120 + tmp121 + tmp2 + tmp3;                                          EM_S[INDEX4(k,m,4,0,numEq,numComp,8)]+=-C_2_0*w46 - C_2_3*w44 - C_2_4*w43 - C_2_7*w35 + tmp0 + tmp114 + tmp115 + tmp116 + tmp117 + tmp118 + tmp119 + tmp120 + tmp121 + tmp5;
6884                                          EM_S[INDEX4(k,m,4,1,numEq,numComp,8)]+=tmp190 + tmp191 + tmp192 + tmp193 + tmp194 + tmp195 + tmp196 + tmp197 + tmp198 + tmp199;                                          EM_S[INDEX4(k,m,4,1,numEq,numComp,8)]+=tmp190 + tmp191 + tmp192 + tmp193 + tmp194 + tmp195 + tmp196 + tmp197 + tmp198 + tmp199;
6885                                          EM_S[INDEX4(k,m,4,2,numEq,numComp,8)]+=tmp229 + tmp230 + tmp232 + tmp234 + tmp235 + tmp236 + tmp238 + tmp239 + tmp240 + tmp241;                                          EM_S[INDEX4(k,m,4,2,numEq,numComp,8)]+=tmp228 + tmp230 + tmp232 + tmp233 + tmp234 + tmp236 + tmp238 + tmp239 + tmp240 + tmp241;
6886                                          EM_S[INDEX4(k,m,4,3,numEq,numComp,8)]+=tmp258 + tmp259 + tmp62 + tmp63 + tmp64 + tmp65;                                          EM_S[INDEX4(k,m,4,3,numEq,numComp,8)]+=tmp258 + tmp259 + tmp61 + tmp62 + tmp64 + tmp65;
6887                                          EM_S[INDEX4(k,m,4,4,numEq,numComp,8)]+=-C_0_2*w30 - C_0_3*w46 - C_0_4*w47 - C_0_5*w38 - C_1_1*w31 + C_1_3*w45 + C_1_4*w44 - C_1_6*w39 + C_2_0*w43 + C_2_3*w41 + C_2_4*w40 + C_2_7*w32 + tmp150 + tmp151 + tmp152 + tmp153 + tmp154 + tmp155;                                          EM_S[INDEX4(k,m,4,4,numEq,numComp,8)]+=-C_0_2*w33 - C_0_3*w49 - C_0_4*w50 - C_0_5*w41 - C_1_1*w34 + C_1_3*w48 + C_1_4*w47 - C_1_6*w42 + C_2_0*w46 + C_2_3*w44 + C_2_4*w43 + C_2_7*w35 + tmp150 + tmp151 + tmp152 + tmp153 + tmp154 + tmp155;
6888                                          EM_S[INDEX4(k,m,4,5,numEq,numComp,8)]+=C_0_2*w30 + C_0_3*w46 + C_0_4*w47 + C_0_5*w38 + tmp222 + tmp223 + tmp50 + tmp51 + tmp52 + tmp53 + tmp54 + tmp55 + tmp58 + tmp59;                                          EM_S[INDEX4(k,m,4,5,numEq,numComp,8)]+=C_0_2*w33 + C_0_3*w49 + C_0_4*w50 + C_0_5*w41 + tmp222 + tmp223 + tmp50 + tmp51 + tmp52 + tmp53 + tmp55 + tmp57 + tmp58 + tmp59;
6889                                          EM_S[INDEX4(k,m,4,6,numEq,numComp,8)]+=C_1_1*w31 - C_1_3*w45 - C_1_4*w44 + C_1_6*w39 + tmp23 + tmp29 + tmp30 + tmp31 + tmp32 + tmp34 + tmp35 + tmp36 + tmp37 + tmp38;                                          EM_S[INDEX4(k,m,4,6,numEq,numComp,8)]+=C_1_1*w34 - C_1_3*w48 - C_1_4*w47 + C_1_6*w42 + tmp23 + tmp27 + tmp30 + tmp31 + tmp32 + tmp34 + tmp35 + tmp36 + tmp38 + tmp39;
6890                                          EM_S[INDEX4(k,m,4,7,numEq,numComp,8)]+=tmp10 + tmp11 + tmp12 + tmp13 + tmp14 + tmp15 + tmp16 + tmp17 + tmp18 + tmp19;                                          EM_S[INDEX4(k,m,4,7,numEq,numComp,8)]+=tmp10 + tmp11 + tmp12 + tmp13 + tmp14 + tmp15 + tmp16 + tmp17 + tmp18 + tmp19;
6891                                          EM_S[INDEX4(k,m,5,0,numEq,numComp,8)]+=tmp191 + tmp192 + tmp193 + tmp194 + tmp198 + tmp199 + tmp214 + tmp215 + tmp216 + tmp217;                                          EM_S[INDEX4(k,m,5,0,numEq,numComp,8)]+=tmp190 + tmp191 + tmp193 + tmp195 + tmp197 + tmp199 + tmp214 + tmp215 + tmp216 + tmp217;
6892                                          EM_S[INDEX4(k,m,5,1,numEq,numComp,8)]+=-C_2_1*w43 - C_2_2*w41 - C_2_5*w40 - C_2_6*w32 + tmp82 + tmp83 + tmp84 + tmp85 + tmp86 + tmp87 + tmp88 + tmp89 + tmp90 + tmp91;                                          EM_S[INDEX4(k,m,5,1,numEq,numComp,8)]+=-C_2_1*w46 - C_2_2*w44 - C_2_5*w43 - C_2_6*w35 + tmp82 + tmp83 + tmp84 + tmp85 + tmp86 + tmp87 + tmp88 + tmp89 + tmp90 + tmp91;
6893                                          EM_S[INDEX4(k,m,5,2,numEq,numComp,8)]+=tmp258 + tmp259 + tmp62 + tmp65 + tmp80 + tmp81;                                          EM_S[INDEX4(k,m,5,2,numEq,numComp,8)]+=tmp258 + tmp259 + tmp61 + tmp65 + tmp80 + tmp81;
6894                                          EM_S[INDEX4(k,m,5,3,numEq,numComp,8)]+=tmp180 + tmp181 + tmp182 + tmp183 + tmp184 + tmp185 + tmp186 + tmp187 + tmp188 + tmp189;                                          EM_S[INDEX4(k,m,5,3,numEq,numComp,8)]+=tmp180 + tmp181 + tmp182 + tmp183 + tmp184 + tmp185 + tmp186 + tmp187 + tmp188 + tmp189;
6895                                          EM_S[INDEX4(k,m,5,4,numEq,numComp,8)]+=-C_0_2*w46 - C_0_3*w30 - C_0_4*w38 - C_0_5*w47 + tmp50 + tmp51 + tmp52 + tmp53 + tmp54 + tmp55 + tmp56 + tmp57 + tmp58 + tmp59;                                          EM_S[INDEX4(k,m,5,4,numEq,numComp,8)]+=-C_0_2*w49 - C_0_3*w33 - C_0_4*w41 - C_0_5*w50 + tmp50 + tmp51 + tmp52 + tmp53 + tmp54 + tmp55 + tmp56 + tmp57 + tmp58 + tmp59;
6896                                          EM_S[INDEX4(k,m,5,5,numEq,numComp,8)]+=C_0_2*w46 + C_0_3*w30 + C_0_4*w38 + C_0_5*w47 - C_1_0*w31 + C_1_2*w45 + C_1_5*w44 - C_1_7*w39 + C_2_1*w43 + C_2_2*w41 + C_2_5*w40 + C_2_6*w32 + tmp135 + tmp136 + tmp208 + tmp211 + tmp212 + tmp213;                                          EM_S[INDEX4(k,m,5,5,numEq,numComp,8)]+=C_0_2*w49 + C_0_3*w33 + C_0_4*w41 + C_0_5*w50 - C_1_0*w34 + C_1_2*w48 + C_1_5*w47 - C_1_7*w42 + C_2_1*w46 + C_2_2*w44 + C_2_5*w43 + C_2_6*w35 + tmp134 + tmp135 + tmp208 + tmp211 + tmp212 + tmp213;
6897                                          EM_S[INDEX4(k,m,5,6,numEq,numComp,8)]+=tmp11 + tmp12 + tmp13 + tmp14 + tmp15 + tmp19 + tmp66 + tmp67 + tmp68 + tmp69;                                          EM_S[INDEX4(k,m,5,6,numEq,numComp,8)]+=tmp10 + tmp11 + tmp13 + tmp15 + tmp17 + tmp19 + tmp66 + tmp67 + tmp68 + tmp69;
6898                                          EM_S[INDEX4(k,m,5,7,numEq,numComp,8)]+=C_1_0*w31 - C_1_2*w45 - C_1_5*w44 + C_1_7*w39 + tmp170 + tmp171 + tmp172 + tmp173 + tmp174 + tmp175 + tmp176 + tmp177 + tmp178 + tmp179;                                          EM_S[INDEX4(k,m,5,7,numEq,numComp,8)]+=C_1_0*w34 - C_1_2*w48 - C_1_5*w47 + C_1_7*w42 + tmp170 + tmp171 + tmp172 + tmp173 + tmp174 + tmp175 + tmp176 + tmp177 + tmp178 + tmp179;
6899                                          EM_S[INDEX4(k,m,6,0,numEq,numComp,8)]+=tmp228 + tmp229 + tmp230 + tmp231 + tmp232 + tmp233 + tmp234 + tmp235 + tmp236 + tmp237;                                          EM_S[INDEX4(k,m,6,0,numEq,numComp,8)]+=tmp228 + tmp229 + tmp230 + tmp231 + tmp232 + tmp233 + tmp234 + tmp235 + tmp236 + tmp237;
6900                                          EM_S[INDEX4(k,m,6,1,numEq,numComp,8)]+=tmp258 + tmp259 + tmp63 + tmp64 + tmp94 + tmp95;                                          EM_S[INDEX4(k,m,6,1,numEq,numComp,8)]+=tmp258 + tmp259 + tmp62 + tmp64 + tmp94 + tmp95;
6901                                          EM_S[INDEX4(k,m,6,2,numEq,numComp,8)]+=-C_2_1*w41 - C_2_2*w43 - C_2_5*w32 - C_2_6*w40 + tmp70 + tmp71 + tmp74 + tmp75 + tmp76 + tmp77 + tmp78 + tmp79 + tmp84 + tmp85;                                          EM_S[INDEX4(k,m,6,2,numEq,numComp,8)]+=-C_2_1*w44 - C_2_2*w46 - C_2_5*w35 - C_2_6*w43 + tmp71 + tmp72 + tmp73 + tmp74 + tmp76 + tmp77 + tmp78 + tmp79 + tmp82 + tmp87;
6902                                          EM_S[INDEX4(k,m,6,3,numEq,numComp,8)]+=tmp105 + tmp106 + tmp107 + tmp108 + tmp112 + tmp113 + tmp156 + tmp157 + tmp158 + tmp159;                                          EM_S[INDEX4(k,m,6,3,numEq,numComp,8)]+=tmp104 + tmp105 + tmp107 + tmp109 + tmp111 + tmp113 + tmp156 + tmp157 + tmp158 + tmp159;
6903                                          EM_S[INDEX4(k,m,6,4,numEq,numComp,8)]+=C_1_1*w45 - C_1_3*w31 - C_1_4*w39 + C_1_6*w44 + tmp30 + tmp31 + tmp32 + tmp33 + tmp34 + tmp35 + tmp36 + tmp37 + tmp38 + tmp39;                                          EM_S[INDEX4(k,m,6,4,numEq,numComp,8)]+=C_1_1*w48 - C_1_3*w34 - C_1_4*w42 + C_1_6*w47 + tmp30 + tmp31 + tmp32 + tmp33 + tmp34 + tmp35 + tmp36 + tmp37 + tmp38 + tmp39;
6904                                          EM_S[INDEX4(k,m,6,5,numEq,numComp,8)]+=tmp10 + tmp12 + tmp13 + tmp16 + tmp17 + tmp18 + tmp250 + tmp251 + tmp252 + tmp253;                                          EM_S[INDEX4(k,m,6,5,numEq,numComp,8)]+=tmp10 + tmp12 + tmp14 + tmp15 + tmp16 + tmp18 + tmp250 + tmp251 + tmp252 + tmp253;
6905                                          EM_S[INDEX4(k,m,6,6,numEq,numComp,8)]+=-C_0_0*w30 - C_0_1*w46 - C_0_6*w47 - C_0_7*w38 - C_1_1*w45 + C_1_3*w31 + C_1_4*w39 - C_1_6*w44 + C_2_1*w41 + C_2_2*w43 + C_2_5*w32 + C_2_6*w40 + tmp134 + tmp137 + tmp209 + tmp210 + tmp212 + tmp213;                                          EM_S[INDEX4(k,m,6,6,numEq,numComp,8)]+=-C_0_0*w33 - C_0_1*w49 - C_0_6*w50 - C_0_7*w41 - C_1_1*w48 + C_1_3*w34 + C_1_4*w42 - C_1_6*w47 + C_2_1*w44 + C_2_2*w46 + C_2_5*w35 + C_2_6*w43 + tmp133 + tmp136 + tmp209 + tmp210 + tmp212 + tmp213;
6906                                          EM_S[INDEX4(k,m,6,7,numEq,numComp,8)]+=C_0_0*w30 + C_0_1*w46 + C_0_6*w47 + C_0_7*w38 + tmp122 + tmp123 + tmp124 + tmp125 + tmp126 + tmp127 + tmp128 + tmp129 + tmp130 + tmp131;                                          EM_S[INDEX4(k,m,6,7,numEq,numComp,8)]+=C_0_0*w33 + C_0_1*w49 + C_0_6*w50 + C_0_7*w41 + tmp122 + tmp123 + tmp124 + tmp125 + tmp126 + tmp127 + tmp128 + tmp129 + tmp130 + tmp131;
6907                                          EM_S[INDEX4(k,m,7,0,numEq,numComp,8)]+=tmp258 + tmp259 + tmp80 + tmp81 + tmp94 + tmp95;                                          EM_S[INDEX4(k,m,7,0,numEq,numComp,8)]+=tmp258 + tmp259 + tmp80 + tmp81 + tmp94 + tmp95;
6908                                          EM_S[INDEX4(k,m,7,1,numEq,numComp,8)]+=tmp181 + tmp182 + tmp184 + tmp186 + tmp187 + tmp188 + tmp218 + tmp219 + tmp220 + tmp221;                                          EM_S[INDEX4(k,m,7,1,numEq,numComp,8)]+=tmp180 + tmp182 + tmp184 + tmp185 + tmp186 + tmp188 + tmp218 + tmp219 + tmp220 + tmp221;
6909                                          EM_S[INDEX4(k,m,7,2,numEq,numComp,8)]+=tmp104 + tmp105 + tmp106 + tmp107 + tmp108 + tmp109 + tmp110 + tmp111 + tmp112 + tmp113;                                          EM_S[INDEX4(k,m,7,2,numEq,numComp,8)]+=tmp104 + tmp105 + tmp106 + tmp107 + tmp108 + tmp109 + tmp110 + tmp111 + tmp112 + tmp113;
6910                                          EM_S[INDEX4(k,m,7,3,numEq,numComp,8)]+=-C_2_0*w41 - C_2_3*w43 - C_2_4*w32 - C_2_7*w40 + tmp0 + tmp1 + tmp2 + tmp3 + tmp4 + tmp5 + tmp6 + tmp7 + tmp8 + tmp9;                                          EM_S[INDEX4(k,m,7,3,numEq,numComp,8)]+=-C_2_0*w44 - C_2_3*w46 - C_2_4*w35 - C_2_7*w43 + tmp0 + tmp1 + tmp2 + tmp3 + tmp4 + tmp5 + tmp6 + tmp7 + tmp8 + tmp9;
6911                                          EM_S[INDEX4(k,m,7,4,numEq,numComp,8)]+=tmp12 + tmp13 + tmp250 + tmp251 + tmp252 + tmp253 + tmp66 + tmp67 + tmp68 + tmp69;                                          EM_S[INDEX4(k,m,7,4,numEq,numComp,8)]+=tmp10 + tmp15 + tmp250 + tmp251 + tmp252 + tmp253 + tmp66 + tmp67 + tmp68 + tmp69;
6912                                          EM_S[INDEX4(k,m,7,5,numEq,numComp,8)]+=C_1_0*w45 - C_1_2*w31 - C_1_5*w39 + C_1_7*w44 + tmp141 + tmp147 + tmp170 + tmp171 + tmp172 + tmp174 + tmp175 + tmp176 + tmp177 + tmp178;                                          EM_S[INDEX4(k,m,7,5,numEq,numComp,8)]+=C_1_0*w48 - C_1_2*w34 - C_1_5*w42 + C_1_7*w47 + tmp141 + tmp145 + tmp170 + tmp171 + tmp172 + tmp174 + tmp175 + tmp176 + tmp178 + tmp179;
6913                                          EM_S[INDEX4(k,m,7,6,numEq,numComp,8)]+=-C_0_0*w46 - C_0_1*w30 - C_0_6*w38 - C_0_7*w47 + tmp122 + tmp123 + tmp124 + tmp125 + tmp126 + tmp127 + tmp130 + tmp131 + tmp148 + tmp149;                                          EM_S[INDEX4(k,m,7,6,numEq,numComp,8)]+=-C_0_0*w49 - C_0_1*w33 - C_0_6*w41 - C_0_7*w50 + tmp122 + tmp123 + tmp124 + tmp125 + tmp127 + tmp129 + tmp130 + tmp131 + tmp148 + tmp149;
6914                                          EM_S[INDEX4(k,m,7,7,numEq,numComp,8)]+=C_0_0*w46 + C_0_1*w30 + C_0_6*w38 + C_0_7*w47 - C_1_0*w45 + C_1_2*w31 + C_1_5*w39 - C_1_7*w44 + C_2_0*w41 + C_2_3*w43 + C_2_4*w32 + C_2_7*w40 + tmp150 + tmp151 + tmp166 + tmp167 + tmp168 + tmp169;                                          EM_S[INDEX4(k,m,7,7,numEq,numComp,8)]+=C_0_0*w49 + C_0_1*w33 + C_0_6*w41 + C_0_7*w50 - C_1_0*w48 + C_1_2*w34 + C_1_5*w42 - C_1_7*w47 + C_2_0*w44 + C_2_3*w46 + C_2_4*w35 + C_2_7*w43 + tmp150 + tmp153 + tmp165 + tmp166 + tmp168 + tmp169;
6915                                      }                                      }
6916                                  }                                  }
6917                              } else { // constant data                              } else { // constant data
6918                                  for (index_t k=0; k<numEq; k++) {                                  for (index_t k=0; k<numEq; k++) {
6919                                      for (index_t m=0; m<numComp; m++) {                                      for (index_t m=0; m<numComp; m++) {
6920                                          const double C_0 = C_p[INDEX3(k,m,0,numEq,numComp)];                                          const double wC0 = C_p[INDEX3(k,m,0,numEq,numComp)]*w55;
6921                                          const double C_1 = C_p[INDEX3(k,m,1,numEq,numComp)];                                          const double wC1 = C_p[INDEX3(k,m,1,numEq,numComp)]*w56;
6922                                          const double C_2 = C_p[INDEX3(k,m,2,numEq,numComp)];                                          const double wC2 = C_p[INDEX3(k,m,2,numEq,numComp)]*w54;
6923                                          EM_S[INDEX4(k,m,0,0,numEq,numComp,8)]+=4*C_0*w53 + C_1*w51 - C_2*w50;                                          EM_S[INDEX4(k,m,0,0,numEq,numComp,8)]+= 4*wC0 + 4*wC1 + 4*wC2;
6924                                          EM_S[INDEX4(k,m,0,1,numEq,numComp,8)]+=-4*C_0*w53 - C_1*w49 + C_2*w52;                                          EM_S[INDEX4(k,m,0,1,numEq,numComp,8)]+=-4*wC0 + 2*wC1 + 2*wC2;
6925                                          EM_S[INDEX4(k,m,0,2,numEq,numComp,8)]+=-C_0*w48 - C_1*w51 + C_2*w52;                                          EM_S[INDEX4(k,m,0,2,numEq,numComp,8)]+= 2*wC0 - 4*wC1 + 2*wC2;
6926                                          EM_S[INDEX4(k,m,0,3,numEq,numComp,8)]+=C_0*w48 + C_1*w49 + C_2*w52/2;                                          EM_S[INDEX4(k,m,0,3,numEq,numComp,8)]+=-2*wC0 - 2*wC1 +   wC2;
6927                                          EM_S[INDEX4(k,m,0,4,numEq,numComp,8)]+=-C_0*w48 - C_1*w49 + C_2*w50;                                          EM_S[INDEX4(k,m,0,4,numEq,numComp,8)]+= 2*wC0 + 2*wC1 - 4*wC2;
6928                                          EM_S[INDEX4(k,m,0,5,numEq,numComp,8)]+=C_0*w48 + C_1*w51/4 - C_2*w52;                                          EM_S[INDEX4(k,m,0,5,numEq,numComp,8)]+=-2*wC0 +   wC1 - 2*wC2;
6929                                          EM_S[INDEX4(k,m,0,6,numEq,numComp,8)]+=C_0*w53 + C_1*w49 - C_2*w52;                                          EM_S[INDEX4(k,m,0,6,numEq,numComp,8)]+=   wC0 - 2*wC1 - 2*wC2;
6930                                          EM_S[INDEX4(k,m,0,7,numEq,numComp,8)]+=-C_0*w53 - C_1*w51/4 + C_2*w50/4;                                          EM_S[INDEX4(k,m,0,7,numEq,numComp,8)]+=  -wC0 -   wC1 -   wC2;
6931                                          EM_S[INDEX4(k,m,1,0,numEq,numComp,8)]+=4*C_0*w53 - C_1*w49 + C_2*w52;                                          EM_S[INDEX4(k,m,1,0,numEq,numComp,8)]+= 4*wC0 + 2*wC1 + 2*wC2;
6932                                          EM_S[INDEX4(k,m,1,1,numEq,numComp,8)]+=-4*C_0*w53 + C_1*w51 - C_2*w50;                                          EM_S[INDEX4(k,m,1,1,numEq,numComp,8)]+=-4*wC0 + 4*wC1 + 4*wC2;
6933                                          EM_S[INDEX4(k,m,1,2,numEq,numComp,8)]+=-C_0*w48 + C_1*w49 + C_2*w52/2;                                          EM_S[INDEX4(k,m,1,2,numEq,numComp,8)]+= 2*wC0 - 2*wC1 +   wC2;
6934                                          EM_S[INDEX4(k,m,1,3,numEq,numComp,8)]+=C_0*w48 - C_1*w51 + C_2*w52;                                          EM_S[INDEX4(k,m,1,3,numEq,numComp,8)]+=-2*wC0 - 4*wC1 + 2*wC2;
6935                                          EM_S[INDEX4(k,m,1,4,numEq,numComp,8)]+=-C_0*w48 + C_1*w51/4 - C_2*w52;                                          EM_S[INDEX4(k,m,1,4,numEq,numComp,8)]+= 2*wC0 +   wC1 - 2*wC2;
6936                                          EM_S[INDEX4(k,m,1,5,numEq,numComp,8)]+=C_0*w48 - C_1*w49 + C_2*w50;                                          EM_S[INDEX4(k,m,1,5,numEq,numComp,8)]+=-2*wC0 + 2*wC1 - 4*wC2;
6937                                          EM_S[INDEX4(k,m,1,6,numEq,numComp,8)]+=C_0*w53 - C_1*w51/4 + C_2*w50/4;                                          EM_S[INDEX4(k,m,1,6,numEq,numComp,8)]+=   wC0 -   wC1 -   wC2;
6938                                          EM_S[INDEX4(k,m,1,7,numEq,numComp,8)]+=-C_0*w53 + C_1*w49 - C_2*w52;                                          EM_S[INDEX4(k,m,1,7,numEq,numComp,8)]+=  -wC0 - 2*wC1 - 2*wC2;
6939                                          EM_S[INDEX4(k,m,2,0,numEq,numComp,8)]+=-C_0*w48 + C_1*w51 + C_2*w52;                                          EM_S[INDEX4(k,m,2,0,numEq,numComp,8)]+= 2*wC0 + 4*wC1 + 2*wC2;
6940                                          EM_S[INDEX4(k,m,2,1,numEq,numComp,8)]+=C_0*w48 - C_1*w49 + C_2*w52/2;                                          EM_S[INDEX4(k,m,2,1,numEq,numComp,8)]+=-2*wC0 + 2*wC1 +   wC2;
6941                                          EM_S[INDEX4(k,m,2,2,numEq,numComp,8)]+=4*C_0*w53 - C_1*w51 - C_2*w50;                                          EM_S[INDEX4(k,m,2,2,numEq,numComp,8)]+= 4*wC0 - 4*wC1 + 4*wC2;
6942                                          EM_S[INDEX4(k,m,2,3,numEq,numComp,8)]+=-4*C_0*w53 + C_1*w49 + C_2*w52;                                          EM_S[INDEX4(k,m,2,3,numEq,numComp,8)]+=-4*wC0 - 2*wC1 + 2*wC2;
6943                                          EM_S[INDEX4(k,m,2,4,numEq,numComp,8)]+=C_0*w53 - C_1*w49 - C_2*w52;                                          EM_S[INDEX4(k,m,2,4,numEq,numComp,8)]+=   wC0 + 2*wC1 - 2*wC2;
6944                                          EM_S[INDEX4(k,m,2,5,numEq,numComp,8)]+=-C_0*w53 + C_1*w51/4 + C_2*w50/4;                                          EM_S[INDEX4(k,m,2,5,numEq,numComp,8)]+=  -wC0 +   wC1 -   wC2;
6945                                          EM_S[INDEX4(k,m,2,6,numEq,numComp,8)]+=-C_0*w48 + C_1*w49 + C_2*w50;                                          EM_S[INDEX4(k,m,2,6,numEq,numComp,8)]+= 2*wC0 - 2*wC1 - 4*wC2;
6946                                          EM_S[INDEX4(k,m,2,7,numEq,numComp,8)]+=C_0*w48 - C_1*w51/4 - C_2*w52;                                          EM_S[INDEX4(k,m,2,7,numEq,numComp,8)]+=-2*wC0 -   wC1 - 2*wC2;
6947                                          EM_S[INDEX4(k,m,3,0,numEq,numComp,8)]+=-C_0*w48 - C_1*w49 + C_2*w52/2;                                          EM_S[INDEX4(k,m,3,0,numEq,numComp,8)]+= 2*wC0 + 2*wC1 +   wC2;
6948                                          EM_S[INDEX4(k,m,3,1,numEq,numComp,8)]+=C_0*w48 + C_1*w51 + C_2*w52;                                          EM_S[INDEX4(k,m,3,1,numEq,numComp,8)]+=-2*wC0 + 4*wC1 + 2*wC2;
6949                                          EM_S[INDEX4(k,m,3,2,numEq,numComp,8)]+=4*C_0*w53 + C_1*w49 + C_2*w52;                                          EM_S[INDEX4(k,m,3,2,numEq,numComp,8)]+= 4*wC0 - 2*wC1 + 2*wC2;
6950                                          EM_S[INDEX4(k,m,3,3,numEq,numComp,8)]+=-4*C_0*w53 - C_1*w51 - C_2*w50;                                          EM_S[INDEX4(k,m,3,3,numEq,numComp,8)]+=-4*wC0 - 4*wC1 + 4*wC2;
6951                                          EM_S[INDEX4(k,m,3,4,numEq,numComp,8)]+=C_0*w53 + C_1*w51/4 + C_2*w50/4;                                          EM_S[INDEX4(k,m,3,4,numEq,numComp,8)]+=   wC0 +   wC1 -   wC2;
6952                                          EM_S[INDEX4(k,m,3,5,numEq,numComp,8)]+=-C_0*w53 - C_1*w49 - C_2*w52;                                          EM_S[INDEX4(k,m,3,5,numEq,numComp,8)]+=  -wC0 + 2*wC1 - 2*wC2;
6953                                          EM_S[INDEX4(k,m,3,6,numEq,numComp,8)]+=-C_0*w48 - C_1*w51/4 - C_2*w52;                                          EM_S[INDEX4(k,m,3,6,numEq,numComp,8)]+= 2*wC0 -   wC1 - 2*wC2;
6954                                          EM_S[INDEX4(k,m,3,7,numEq,numComp,8)]+=C_0*w48 + C_1*w49 + C_2*w50;                                          EM_S[INDEX4(k,m,3,7,numEq,numComp,8)]+=-2*wC0 - 2*wC1 - 4*wC2;
6955                                          EM_S[INDEX4(k,m,4,0,numEq,numComp,8)]+=-C_0*w48 - C_1*w49 - C_2*w50;                                          EM_S[INDEX4(k,m,4,0,numEq,numComp,8)]+= 2*wC0 + 2*wC1 + 4*wC2;
6956                                          EM_S[INDEX4(k,m,4,1,numEq,numComp,8)]+=C_0*w48 + C_1*w51/4 + C_2*w52;                                          EM_S[INDEX4(k,m,4,1,numEq,numComp,8)]+=-2*wC0 +   wC1 + 2*wC2;
6957                                          EM_S[INDEX4(k,m,4,2,numEq,numComp,8)]+=C_0*w53 + C_1*w49 + C_2*w52;                                          EM_S[INDEX4(k,m,4,2,numEq,numComp,8)]+=   wC0 - 2*wC1 + 2*wC2;
6958                                          EM_S[INDEX4(k,m,4,3,numEq,numComp,8)]+=-C_0*w53 - C_1*w51/4 + C_2*w52/2;                                          EM_S[INDEX4(k,m,4,3,numEq,numComp,8)]+=  -wC0 -   wC1 +   wC2;
6959                                          EM_S[INDEX4(k,m,4,4,numEq,numComp,8)]+=4*C_0*w53 + C_1*w51 + C_2*w50;                                          EM_S[INDEX4(k,m,4,4,numEq,numComp,8)]+= 4*wC0 + 4*wC1 - 4*wC2;
6960                                          EM_S[INDEX4(k,m,4,5,numEq,numComp,8)]+=-4*C_0*w53 - C_1*w49 - C_2*w52;                                          EM_S[INDEX4(k,m,4,5,numEq,numComp,8)]+=-4*wC0 + 2*wC1 - 2*wC2;
6961                                          EM_S[INDEX4(k,m,4,6,numEq,numComp,8)]+=-C_0*w48 - C_1*w51 - C_2*w52;                                          EM_S[INDEX4(k,m,4,6,numEq,numComp,8)]+= 2*wC0 - 4*wC1 - 2*wC2;
6962                                          EM_S[INDEX4(k,m,4,7,numEq,numComp,8)]+=C_0*w48 + C_1*w49 + C_2*w50/4;                                          EM_S[INDEX4(k,m,4,7,numEq,numComp,8)]+=-2*wC0 - 2*wC1 -   wC2;
6963                                          EM_S[INDEX4(k,m,5,0,numEq,numComp,8)]+=-C_0*w48 + C_1*w51/4 + C_2*w52;                                          EM_S[INDEX4(k,m,5,0,numEq,numComp,8)]+= 2*wC0 +   wC1 + 2*wC2;
6964                                          EM_S[INDEX4(k,m,5,1,numEq,numComp,8)]+=C_0*w48 - C_1*w49 - C_2*w50;                                          EM_S[INDEX4(k,m,5,1,numEq,numComp,8)]+=-2*wC0 + 2*wC1 + 4*wC2;
6965                                          EM_S[INDEX4(k,m,5,2,numEq,numComp,8)]+=C_0*w53 - C_1*w51/4 + C_2*w52/2;                                          EM_S[INDEX4(k,m,5,2,numEq,numComp,8)]+=   wC0 -   wC1 +   wC2;
6966                                          EM_S[INDEX4(k,m,5,3,numEq,numComp,8)]+=-C_0*w53 + C_1*w49 + C_2*w52;                                          EM_S[INDEX4(k,m,5,3,numEq,numComp,8)]+=  -wC0 - 2*wC1 + 2*wC2;
6967                                          EM_S[INDEX4(k,m,5,4,numEq,numComp,8)]+=4*C_0*w53 - C_1*w49 - C_2*w52;                                          EM_S[INDEX4(k,m,5,4,numEq,numComp,8)]+= 4*wC0 + 2*wC1 - 2*wC2;
6968                                          EM_S[INDEX4(k,m,5,5,numEq,numComp,8)]+=-4*C_0*w53 + C_1*w51 + C_2*w50;                                          EM_S[INDEX4(k,m,5,5,numEq,numComp,8)]+=-4*wC0 + 4*wC1 - 4*wC2;
6969                                          EM_S[INDEX4(k,m,5,6,numEq,numComp,8)]+=-C_0*w48 + C_1*w49 + C_2*w50/4;                                          EM_S[INDEX4(k,m,5,6,numEq,numComp,8)]+= 2*wC0 - 2*wC1 -   wC2;
6970                                          EM_S[INDEX4(k,m,5,7,numEq,numComp,8)]+=C_0*w48 - C_1*w51 - C_2*w52;                                          EM_S[INDEX4(k,m,5,7,numEq,numComp,8)]+=-2*wC0 - 4*wC1 - 2*wC2;
6971                                          EM_S[INDEX4(k,m,6,0,numEq,numComp,8)]+=C_0*w53 - C_1*w49 + C_2*w52;                                          EM_S[INDEX4(k,m,6,0,numEq,numComp,8)]+=   wC0 + 2*wC1 + 2*wC2;
6972                                          EM_S[INDEX4(k,m,6,1,numEq,numComp,8)]+=-C_0*w53 + C_1*w51/4 + C_2*w52/2;                                          EM_S[INDEX4(k,m,6,1,numEq,numComp,8)]+=  -wC0 +   wC1 +   wC2;
6973                                          EM_S[INDEX4(k,m,6,2,numEq,numComp,8)]+=-C_0*w48 + C_1*w49 - C_2*w50;                                          EM_S[INDEX4(k,m,6,2,numEq,numComp,8)]+= 2*wC0 - 2*wC1 + 4*wC2;
6974                                          EM_S[INDEX4(k,m,6,3,numEq,numComp,8)]+=C_0*w48 - C_1*w51/4 + C_2*w52;                                          EM_S[INDEX4(k,m,6,3,numEq,numComp,8)]+=-2*wC0 -   wC1 + 2*wC2;
6975                                          EM_S[INDEX4(k,m,6,4,numEq,numComp,8)]+=-C_0*w48 + C_1*w51 - C_2*w52;                                          EM_S[INDEX4(k,m,6,4,numEq,numComp,8)]+= 2*wC0 + 4*wC1 - 2*wC2;
6976                                          EM_S[INDEX4(k,m,6,5,numEq,numComp,8)]+=C_0*w48 - C_1*w49 + C_2*w50/4;                                          EM_S[INDEX4(k,m,6,5,numEq,numComp,8)]+=-2*wC0 + 2*wC1 -   wC2;
6977                                          EM_S[INDEX4(k,m,6,6,numEq,numComp,8)]+=4*C_0*w53 - C_1*w51 + C_2*w50;                                          EM_S[INDEX4(k,m,6,6,numEq,numComp,8)]+= 4*wC0 - 4*wC1 - 4*wC2;
6978                                          EM_S[INDEX4(k,m,6,7,numEq,numComp,8)]+=-4*C_0*w53 + C_1*w49 - C_2*w52;                                          EM_S[INDEX4(k,m,6,7,numEq,numComp,8)]+=-4*wC0 - 2*wC1 - 2*wC2;
6979                                          EM_S[INDEX4(k,m,7,0,numEq,numComp,8)]+=C_0*w53 + C_1*w51/4 + C_2*w52/2;                                          EM_S[INDEX4(k,m,7,0,numEq,numComp,8)]+=   wC0 +   wC1 +   wC2;
6980                                          EM_S[INDEX4(k,m,7,1,numEq,numComp,8)]+=-C_0*w53 - C_1*w49 + C_2*w52;                                          EM_S[INDEX4(k,m,7,1,numEq,numComp,8)]+=  -wC0 + 2*wC1 + 2*wC2;
6981                                          EM_S[INDEX4(k,m,7,2,numEq,numComp,8)]+=-C_0*w48 - C_1*w51/4 + C_2*w52;                                          EM_S[INDEX4(k,m,7,2,numEq,numComp,8)]+= 2*wC0 -   wC1 + 2*wC2;
6982                                          EM_S[INDEX4(k,m,7,3,numEq,numComp,8)]+=C_0*w48 + C_1*w49 - C_2*w50;                                          EM_S[INDEX4(k,m,7,3,numEq,numComp,8)]+=-2*wC0 - 2*wC1 + 4*wC2;
6983                                          EM_S[INDEX4(k,m,7,4,numEq,numComp,8)]+=-C_0*w48 - C_1*w49 + C_2*w50/4;                                          EM_S[INDEX4(k,m,7,4,numEq,numComp,8)]+= 2*wC0 + 2*wC1 -   wC2;
6984                                          EM_S[INDEX4(k,m,7,5,numEq,numComp,8)]+=C_0*w48 + C_1*w51 - C_2*w52;                                          EM_S[INDEX4(k,m,7,5,numEq,numComp,8)]+=-2*wC0 + 4*wC1 - 2*wC2;
6985                                          EM_S[INDEX4(k,m,7,6,numEq,numComp,8)]+=4*C_0*w53 + C_1*w49 - C_2*w52;                                          EM_S[INDEX4(k,m,7,6,numEq,numComp,8)]+= 4*wC0 - 2*wC1 - 2*wC2;
6986                                          EM_S[INDEX4(k,m,7,7,numEq,numComp,8)]+=-4*C_0*w53 - C_1*w51 + C_2*w50;                                          EM_S[INDEX4(k,m,7,7,numEq,numComp,8)]+=-4*wC0 - 4*wC1 - 4*wC2;
6987                                      }                                      }
6988                                  }                                  }
6989                              }                              }
# Line 7010  void Brick::assemblePDESystem(Paso_Syste Line 7005  void Brick::assemblePDESystem(Paso_Syste
7005                                          const double D_5 = D_p[INDEX3(k,m,5,numEq,numComp)];                                          const double D_5 = D_p[INDEX3(k,m,5,numEq,numComp)];
7006                                          const double D_6 = D_p[INDEX3(k,m,6,numEq,numComp)];                                          const double D_6 = D_p[INDEX3(k,m,6,numEq,numComp)];
7007                                          const double D_7 = D_p[INDEX3(k,m,7,numEq,numComp)];                                          const double D_7 = D_p[INDEX3(k,m,7,numEq,numComp)];
7008                                          const double tmp0 = w54*(D_0 + D_4);                                          const double tmp0 = w59*(D_3 + D_7);
7009                                          const double tmp1 = w55*(D_1 + D_2 + D_5 + D_6);                                          const double tmp1 = w57*(D_0 + D_4);
7010                                          const double tmp2 = w56*(D_3 + D_7);                                          const double tmp2 = w58*(D_1 + D_2 + D_5 + D_6);
7011                                          const double tmp3 = w57*(D_0 + D_1 + D_2 + D_3);                                          const double tmp3 = w60*(D_0 + D_1 + D_2 + D_3);
7012                                          const double tmp4 = w58*(D_4 + D_5 + D_6 + D_7);                                          const double tmp4 = w61*(D_4 + D_5 + D_6 + D_7);
7013                                          const double tmp5 = w54*(D_4 + D_6);                                          const double tmp5 = w59*(D_1 + D_3);
7014                                          const double tmp6 = w55*(D_0 + D_2 + D_5 + D_7);                                          const double tmp6 = w57*(D_4 + D_6);
7015                                          const double tmp7 = w56*(D_1 + D_3);                                          const double tmp7 = w58*(D_0 + D_2 + D_5 + D_7);
7016                                          const double tmp8 = w54*(D_1 + D_3);                                          const double tmp8 = w59*(D_4 + D_6);
7017                                          const double tmp9 = w56*(D_4 + D_6);                                          const double tmp9 = w57*(D_1 + D_3);
7018                                          const double tmp10 = w57*(D_4 + D_5 + D_6 + D_7);                                          const double tmp10 = w60*(D_4 + D_5 + D_6 + D_7);
7019                                          const double tmp11 = w58*(D_0 + D_1 + D_2 + D_3);                                          const double tmp11 = w61*(D_0 + D_1 + D_2 + D_3);
7020                                          const double tmp12 = w54*(D_2 + D_3);                                          const double tmp12 = w59*(D_4 + D_5);
7021                                          const double tmp13 = w55*(D_0 + D_1 + D_6 + D_7);                                          const double tmp13 = w57*(D_2 + D_3);
7022                                          const double tmp14 = w56*(D_4 + D_5);                                          const double tmp14 = w58*(D_0 + D_1 + D_6 + D_7);
7023                                          const double tmp15 = w55*(D_0 + D_1 + D_2 + D_3 + D_4 + D_5 + D_6 + D_7);                                          const double tmp15 = w58*(D_0 + D_1 + D_2 + D_3 + D_4 + D_5 + D_6 + D_7);
7024                                          const double tmp16 = w54*(D_1 + D_5);                                          const double tmp16 = w59*(D_2 + D_6);
7025                                          const double tmp17 = w55*(D_0 + D_3 + D_4 + D_7);                                          const double tmp17 = w57*(D_1 + D_5);
7026                                          const double tmp18 = w56*(D_2 + D_6);                                          const double tmp18 = w58*(D_0 + D_3 + D_4 + D_7);
7027                                          const double tmp19 = w54*(D_2 + D_6);                                          const double tmp19 = w59*(D_1 + D_5);
7028                                          const double tmp20 = w56*(D_1 + D_5);                                          const double tmp20 = w57*(D_2 + D_6);
7029                                          const double tmp21 = w57*(D_0 + D_1 + D_4 + D_5);                                          const double tmp21 = w60*(D_0 + D_1 + D_4 + D_5);
7030                                          const double tmp22 = w58*(D_2 + D_3 + D_6 + D_7);                                          const double tmp22 = w61*(D_2 + D_3 + D_6 + D_7);
7031                                          const double tmp23 = w54*(D_3 + D_7);                                          const double tmp23 = w59*(D_0 + D_4);
7032                                          const double tmp24 = w56*(D_0 + D_4);                                          const double tmp24 = w57*(D_3 + D_7);
7033                                          const double tmp25 = w54*(D_0 + D_1);                                          const double tmp25 = w59*(D_6 + D_7);
7034                                          const double tmp26 = w55*(D_2 + D_3 + D_4 + D_5);                                          const double tmp26 = w57*(D_0 + D_1);
7035                                          const double tmp27 = w56*(D_6 + D_7);                                          const double tmp27 = w58*(D_2 + D_3 + D_4 + D_5);
7036                                          const double tmp28 = w57*(D_0 + D_5 + D_6);                                          const double tmp28 = w60*(D_0 + D_5 + D_6);
7037                                          const double tmp29 = w58*(D_1 + D_2 + D_7);                                          const double tmp29 = w61*(D_1 + D_2 + D_7);
7038                                          const double tmp30 = w54*(D_5 + D_7);                                          const double tmp30 = w59*(D_0 + D_2);
7039                                          const double tmp31 = w55*(D_1 + D_3 + D_4 + D_6);                                          const double tmp31 = w57*(D_5 + D_7);
7040                                          const double tmp32 = w56*(D_0 + D_2);                                          const double tmp32 = w58*(D_1 + D_3 + D_4 + D_6);
7041                                          const double tmp33 = w57*(D_1 + D_2 + D_7);                                          const double tmp33 = w60*(D_1 + D_2 + D_7);
7042                                          const double tmp34 = w58*(D_0 + D_5 + D_6);                                          const double tmp34 = w61*(D_0 + D_5 + D_6);
7043                                          const double tmp35 = w57*(D_1 + D_4 + D_7);                                          const double tmp35 = w60*(D_1 + D_4 + D_7);
7044                                          const double tmp36 = w58*(D_0 + D_3 + D_6);                                          const double tmp36 = w61*(D_0 + D_3 + D_6);
7045                                          const double tmp37 = w57*(D_1 + D_2 + D_4);                                          const double tmp37 = w60*(D_1 + D_2 + D_4);
7046                                          const double tmp38 = w58*(D_3 + D_5 + D_6);                                          const double tmp38 = w61*(D_3 + D_5 + D_6);
7047                                          const double tmp39 = w54*(D_0 + D_2);                                          const double tmp39 = w59*(D_5 + D_7);
7048                                          const double tmp40 = w56*(D_5 + D_7);                                          const double tmp40 = w57*(D_0 + D_2);
7049                                          const double tmp41 = w57*(D_0 + D_2 + D_4 + D_6);                                          const double tmp41 = w60*(D_0 + D_2 + D_4 + D_6);
7050                                          const double tmp42 = w58*(D_1 + D_3 + D_5 + D_7);                                          const double tmp42 = w61*(D_1 + D_3 + D_5 + D_7);
7051                                          const double tmp43 = w57*(D_2 + D_3 + D_6 + D_7);                                          const double tmp43 = w60*(D_2 + D_3 + D_6 + D_7);
7052                                          const double tmp44 = w58*(D_0 + D_1 + D_4 + D_5);                                          const double tmp44 = w61*(D_0 + D_1 + D_4 + D_5);
7053                                          const double tmp45 = w57*(D_2 + D_4 + D_7);                                          const double tmp45 = w60*(D_2 + D_4 + D_7);
7054                                          const double tmp46 = w58*(D_0 + D_3 + D_5);                                          const double tmp46 = w61*(D_0 + D_3 + D_5);
7055                                          const double tmp47 = w54*(D_4 + D_5);                                          const double tmp47 = w59*(D_2 + D_3);
7056                                          const double tmp48 = w56*(D_2 + D_3);                                          const double tmp48 = w57*(D_4 + D_5);
7057                                          const double tmp49 = w57*(D_3 + D_5 + D_6);                                          const double tmp49 = w60*(D_3 + D_5 + D_6);
7058                                          const double tmp50 = w58*(D_1 + D_2 + D_4);                                          const double tmp50 = w61*(D_1 + D_2 + D_4);
7059                                          const double tmp51 = w57*(D_0 + D_3 + D_5);                                          const double tmp51 = w60*(D_0 + D_3 + D_5);
7060                                          const double tmp52 = w58*(D_2 + D_4 + D_7);                                          const double tmp52 = w61*(D_2 + D_4 + D_7);
7061                                          const double tmp53 = w57*(D_0 + D_3 + D_6);                                          const double tmp53 = w60*(D_0 + D_3 + D_6);
7062                                          const double tmp54 = w58*(D_1 + D_4 + D_7);                                          const double tmp54 = w61*(D_1 + D_4 + D_7);
7063                                          const double tmp55 = w57*(D_1 + D_3 + D_5 + D_7);                                          const double tmp55 = w60*(D_1 + D_3 + D_5 + D_7);
7064                                          const double tmp56 = w58*(D_0 + D_2 + D_4 + D_6);                                          const double tmp56 = w61*(D_0 + D_2 + D_4 + D_6);
7065                                          const double tmp57 = w54*(D_6 + D_7);                                          const double tmp57 = w59*(D_0 + D_1);
7066                                          const double tmp58 = w56*(D_0 + D_1);                                          const double tmp58 = w57*(D_6 + D_7);
7067                                          EM_S[INDEX4(k,m,0,0,numEq,numComp,8)]+=D_0*w59 + D_7*w60 + tmp49 + tmp50;                                          EM_S[INDEX4(k,m,0,0,numEq,numComp,8)]+=D_0*w62 + D_7*w63 + tmp49 + tmp50;
7068                                          EM_S[INDEX4(k,m,0,1,numEq,numComp,8)]+=tmp26 + tmp57 + tmp58;                                          EM_S[INDEX4(k,m,0,1,numEq,numComp,8)]+=tmp27 + tmp57 + tmp58;
7069                                          EM_S[INDEX4(k,m,0,2,numEq,numComp,8)]+=tmp30 + tmp31 + tmp32;                                          EM_S[INDEX4(k,m,0,2,numEq,numComp,8)]+=tmp30 + tmp31 + tmp32;
7070                                          EM_S[INDEX4(k,m,0,3,numEq,numComp,8)]+=tmp10 + tmp11;                                          EM_S[INDEX4(k,m,0,3,numEq,numComp,8)]+=tmp10 + tmp11;
7071                                          EM_S[INDEX4(k,m,0,4,numEq,numComp,8)]+=tmp1 + tmp23 + tmp24;                                          EM_S[INDEX4(k,m,0,4,numEq,numComp,8)]+=tmp2 + tmp23 + tmp24;
7072                                          EM_S[INDEX4(k,m,0,5,numEq,numComp,8)]+=tmp43 + tmp44;                                          EM_S[INDEX4(k,m,0,5,numEq,numComp,8)]+=tmp43 + tmp44;
7073                                          EM_S[INDEX4(k,m,0,6,numEq,numComp,8)]+=tmp55 + tmp56;                                          EM_S[INDEX4(k,m,0,6,numEq,numComp,8)]+=tmp55 + tmp56;
7074                                          EM_S[INDEX4(k,m,0,7,numEq,numComp,8)]+=tmp15;                                          EM_S[INDEX4(k,m,0,7,numEq,numComp,8)]+=tmp15;
7075                                          EM_S[INDEX4(k,m,1,0,numEq,numComp,8)]+=tmp26 + tmp57 + tmp58;                                          EM_S[INDEX4(k,m,1,0,numEq,numComp,8)]+=tmp27 + tmp57 + tmp58;
7076                                          EM_S[INDEX4(k,m,1,1,numEq,numComp,8)]+=D_1*w59 + D_6*w60 + tmp45 + tmp46;                                          EM_S[INDEX4(k,m,1,1,numEq,numComp,8)]+=D_1*w62 + D_6*w63 + tmp45 + tmp46;
7077                                          EM_S[INDEX4(k,m,1,2,numEq,numComp,8)]+=tmp10 + tmp11;                                          EM_S[INDEX4(k,m,1,2,numEq,numComp,8)]+=tmp10 + tmp11;
7078                                          EM_S[INDEX4(k,m,1,3,numEq,numComp,8)]+=tmp5 + tmp6 + tmp7;                                          EM_S[INDEX4(k,m,1,3,numEq,numComp,8)]+=tmp5 + tmp6 + tmp7;
7079                                          EM_S[INDEX4(k,m,1,4,numEq,numComp,8)]+=tmp43 + tmp44;                                          EM_S[INDEX4(k,m,1,4,numEq,numComp,8)]+=tmp43 + tmp44;
7080                                          EM_S[INDEX4(k,m,1,5,numEq,numComp,8)]+=tmp17 + tmp19 + tmp20;                                          EM_S[INDEX4(k,m,1,5,numEq,numComp,8)]+=tmp18 + tmp19 + tmp20;
7081                                          EM_S[INDEX4(k,m,1,6,numEq,numComp,8)]+=tmp15;                                          EM_S[INDEX4(k,m,1,6,numEq,numComp,8)]+=tmp15;
7082                                          EM_S[INDEX4(k,m,1,7,numEq,numComp,8)]+=tmp41 + tmp42;                                          EM_S[INDEX4(k,m,1,7,numEq,numComp,8)]+=tmp41 + tmp42;
7083                                          EM_S[INDEX4(k,m,2,0,numEq,numComp,8)]+=tmp30 + tmp31 + tmp32;                                          EM_S[INDEX4(k,m,2,0,numEq,numComp,8)]+=tmp30 + tmp31 + tmp32;
7084                                          EM_S[INDEX4(k,m,2,1,numEq,numComp,8)]+=tmp10 + tmp11;                                          EM_S[INDEX4(k,m,2,1,numEq,numComp,8)]+=tmp10 + tmp11;
7085                                          EM_S[INDEX4(k,m,2,2,numEq,numComp,8)]+=D_2*w59 + D_5*w60 + tmp35 + tmp36;                                          EM_S[INDEX4(k,m,2,2,numEq,numComp,8)]+=D_2*w62 + D_5*w63 + tmp35 + tmp36;
7086                                          EM_S[INDEX4(k,m,2,3,numEq,numComp,8)]+=tmp13 + tmp47 + tmp48;                                          EM_S[INDEX4(k,m,2,3,numEq,numComp,8)]+=tmp14 + tmp47 + tmp48;
7087                                          EM_S[INDEX4(k,m,2,4,numEq,numComp,8)]+=tmp55 + tmp56;                                          EM_S[INDEX4(k,m,2,4,numEq,numComp,8)]+=tmp55 + tmp56;
7088                                          EM_S[INDEX4(k,m,2,5,numEq,numComp,8)]+=tmp15;                                          EM_S[INDEX4(k,m,2,5,numEq,numComp,8)]+=tmp15;
7089                                          EM_S[INDEX4(k,m,2,6,numEq,numComp,8)]+=tmp16 + tmp17 + tmp18;                                          EM_S[INDEX4(k,m,2,6,numEq,numComp,8)]+=tmp16 + tmp17 + tmp18;
7090                                          EM_S[INDEX4(k,m,2,7,numEq,numComp,8)]+=tmp21 + tmp22;                                          EM_S[INDEX4(k,m,2,7,numEq,numComp,8)]+=tmp21 + tmp22;
7091                                          EM_S[INDEX4(k,m,3,0,numEq,numComp,8)]+=tmp10 + tmp11;                                          EM_S[INDEX4(k,m,3,0,numEq,numComp,8)]+=tmp10 + tmp11;
7092                                          EM_S[INDEX4(k,m,3,1,numEq,numComp,8)]+=tmp5 + tmp6 + tmp7;                                          EM_S[INDEX4(k,m,3,1,numEq,numComp,8)]+=tmp5 + tmp6 + tmp7;
7093                                          EM_S[INDEX4(k,m,3,2,numEq,numComp,8)]+=tmp13 + tmp47 + tmp48;                                          EM_S[INDEX4(k,m,3,2,numEq,numComp,8)]+=tmp14 + tmp47 + tmp48;
7094                                          EM_S[INDEX4(k,m,3,3,numEq,numComp,8)]+=D_3*w59 + D_4*w60 + tmp28 + tmp29;                                          EM_S[INDEX4(k,m,3,3,numEq,numComp,8)]+=D_3*w62 + D_4*w63 + tmp28 + tmp29;
7095                                          EM_S[INDEX4(k,m,3,4,numEq,numComp,8)]+=tmp15;                                          EM_S[INDEX4(k,m,3,4,numEq,numComp,8)]+=tmp15;
7096                                          EM_S[INDEX4(k,m,3,5,numEq,numComp,8)]+=tmp41 + tmp42;                                          EM_S[INDEX4(k,m,3,5,numEq,numComp,8)]+=tmp41 + tmp42;
7097                                          EM_S[INDEX4(k,m,3,6,numEq,numComp,8)]+=tmp21 + tmp22;                                          EM_S[INDEX4(k,m,3,6,numEq,numComp,8)]+=tmp21 + tmp22;
7098                                          EM_S[INDEX4(k,m,3,7,numEq,numComp,8)]+=tmp0 + tmp1 + tmp2;                                          EM_S[INDEX4(k,m,3,7,numEq,numComp,8)]+=tmp0 + tmp1 + tmp2;
7099                                          EM_S[INDEX4(k,m,4,0,numEq,numComp,8)]+=tmp1 + tmp23 + tmp24;                                          EM_S[INDEX4(k,m,4,0,numEq,numComp,8)]+=tmp2 + tmp23 + tmp24;
7100                                          EM_S[INDEX4(k,m,4,1,numEq,numComp,8)]+=tmp43 + tmp44;                                          EM_S[INDEX4(k,m,4,1,numEq,numComp,8)]+=tmp43 + tmp44;
7101                                          EM_S[INDEX4(k,m,4,2,numEq,numComp,8)]+=tmp55 + tmp56;                                          EM_S[INDEX4(k,m,4,2,numEq,numComp,8)]+=tmp55 + tmp56;
7102                                          EM_S[INDEX4(k,m,4,3,numEq,numComp,8)]+=tmp15;                                          EM_S[INDEX4(k,m,4,3,numEq,numComp,8)]+=tmp15;
7103                                          EM_S[INDEX4(k,m,4,4,numEq,numComp,8)]+=D_3*w60 + D_4*w59 + tmp33 + tmp34;                                          EM_S[INDEX4(k,m,4,4,numEq,numComp,8)]+=D_3*w63 + D_4*w62 + tmp33 + tmp34;
7104                                          EM_S[INDEX4(k,m,4,5,numEq,numComp,8)]+=tmp12 + tmp13 + tmp14;                                          EM_S[INDEX4(k,m,4,5,numEq,numComp,8)]+=tmp12 + tmp13 + tmp14;
7105                                          EM_S[INDEX4(k,m,4,6,numEq,numComp,8)]+=tmp6 + tmp8 + tmp9;                                          EM_S[INDEX4(k,m,4,6,numEq,numComp,8)]+=tmp7 + tmp8 + tmp9;
7106                                          EM_S[INDEX4(k,m,4,7,numEq,numComp,8)]+=tmp3 + tmp4;                                          EM_S[INDEX4(k,m,4,7,numEq,numComp,8)]+=tmp3 + tmp4;
7107                                          EM_S[INDEX4(k,m,5,0,numEq,numComp,8)]+=tmp43 + tmp44;                                          EM_S[INDEX4(k,m,5,0,numEq,numComp,8)]+=tmp43 + tmp44;
7108                                          EM_S[INDEX4(k,m,5,1,numEq,numComp,8)]+=tmp17 + tmp19 + tmp20;                                          EM_S[INDEX4(k,m,5,1,numEq,numComp,8)]+=tmp18 + tmp19 + tmp20;
7109                                          EM_S[INDEX4(k,m,5,2,numEq,numComp,8)]+=tmp15;                                          EM_S[INDEX4(k,m,5,2,numEq,numComp,8)]+=tmp15;
7110                                          EM_S[INDEX4(k,m,5,3,numEq,numComp,8)]+=tmp41 + tmp42;                                          EM_S[INDEX4(k,m,5,3,numEq,numComp,8)]+=tmp41 + tmp42;
7111                                          EM_S[INDEX4(k,m,5,4,numEq,numComp,8)]+=tmp12 + tmp13 + tmp14;                                          EM_S[INDEX4(k,m,5,4,numEq,numComp,8)]+=tmp12 + tmp13 + tmp14;
7112                                          EM_S[INDEX4(k,m,5,5,numEq,numComp,8)]+=D_2*w60 + D_5*w59 + tmp53 + tmp54;                                          EM_S[INDEX4(k,m,5,5,numEq,numComp,8)]+=D_2*w63 + D_5*w62 + tmp53 + tmp54;
7113                                          EM_S[INDEX4(k,m,5,6,numEq,numComp,8)]+=tmp3 + tmp4;                                          EM_S[INDEX4(k,m,5,6,numEq,numComp,8)]+=tmp3 + tmp4;
7114                                          EM_S[INDEX4(k,m,5,7,numEq,numComp,8)]+=tmp31 + tmp39 + tmp40;                                          EM_S[INDEX4(k,m,5,7,numEq,numComp,8)]+=tmp32 + tmp39 + tmp40;
7115                                          EM_S[INDEX4(k,m,6,0,numEq,numComp,8)]+=tmp55 + tmp56;                                          EM_S[INDEX4(k,m,6,0,numEq,numComp,8)]+=tmp55 + tmp56;
7116                                          EM_S[INDEX4(k,m,6,1,numEq,numComp,8)]+=tmp15;                                          EM_S[INDEX4(k,m,6,1,numEq,numComp,8)]+=tmp15;
7117                                          EM_S[INDEX4(k,m,6,2,numEq,numComp,8)]+=tmp16 + tmp17 + tmp18;                                          EM_S[INDEX4(k,m,6,2,numEq,numComp,8)]+=tmp16 + tmp17 + tmp18;
7118                                          EM_S[INDEX4(k,m,6,3,numEq,numComp,8)]+=tmp21 + tmp22;                                          EM_S[INDEX4(k,m,6,3,numEq,numComp,8)]+=tmp21 + tmp22;
7119                                          EM_S[INDEX4(k,m,6,4,numEq,numComp,8)]+=tmp6 + tmp8 + tmp9;                                          EM_S[INDEX4(k,m,6,4,numEq,numComp,8)]+=tmp7 + tmp8 + tmp9;
7120                                          EM_S[INDEX4(k,m,6,5,numEq,numComp,8)]+=tmp3 + tmp4;                                          EM_S[INDEX4(k,m,6,5,numEq,numComp,8)]+=tmp3 + tmp4;
7121                                          EM_S[INDEX4(k,m,6,6,numEq,numComp,8)]+=D_1*w60 + D_6*w59 + tmp51 + tmp52;                                          EM_S[INDEX4(k,m,6,6,numEq,numComp,8)]+=D_1*w63 + D_6*w62 + tmp51 + tmp52;
7122                                          EM_S[INDEX4(k,m,6,7,numEq,numComp,8)]+=tmp25 + tmp26 + tmp27;                                          EM_S[INDEX4(k,m,6,7,numEq,numComp,8)]+=tmp25 + tmp26 + tmp27;
7123                                          EM_S[INDEX4(k,m,7,0,numEq,numComp,8)]+=tmp15;                                          EM_S[INDEX4(k,m,7,0,numEq,numComp,8)]+=tmp15;
7124                                          EM_S[INDEX4(k,m,7,1,numEq,numComp,8)]+=tmp41 + tmp42;                                          EM_S[INDEX4(k,m,7,1,numEq,numComp,8)]+=tmp41 + tmp42;
7125                                          EM_S[INDEX4(k,m,7,2,numEq,numComp,8)]+=tmp21 + tmp22;                                          EM_S[INDEX4(k,m,7,2,numEq,numComp,8)]+=tmp21 + tmp22;
7126                                          EM_S[INDEX4(k,m,7,3,numEq,numComp,8)]+=tmp0 + tmp1 + tmp2;                                          EM_S[INDEX4(k,m,7,3,numEq,numComp,8)]+=tmp0 + tmp1 + tmp2;
7127                                          EM_S[INDEX4(k,m,7,4,numEq,numComp,8)]+=tmp3 + tmp4;                                          EM_S[INDEX4(k,m,7,4,numEq,numComp,8)]+=tmp3 + tmp4;
7128                                          EM_S[INDEX4(k,m,7,5,numEq,numComp,8)]+=tmp31 + tmp39 + tmp40;                                          EM_S[INDEX4(k,m,7,5,numEq,numComp,8)]+=tmp32 + tmp39 + tmp40;
7129                                          EM_S[INDEX4(k,m,7,6,numEq,numComp,8)]+=tmp25 + tmp26 + tmp27;                                          EM_S[INDEX4(k,m,7,6,numEq,numComp,8)]+=tmp25 + tmp26 + tmp27;
7130                                          EM_S[INDEX4(k,m,7,7,numEq,numComp,8)]+=D_0*w60 + D_7*w59 + tmp37 + tmp38;                                          EM_S[INDEX4(k,m,7,7,numEq,numComp,8)]+=D_0*w63 + D_7*w62 + tmp37 + tmp38;
7131                                      }                                      }
7132                                   }                                   }
7133                              } else { // constant data                              } else { // constant data
7134                                  for (index_t k=0; k<numEq; k++) {                                  for (index_t k=0; k<numEq; k++) {
7135                                      for (index_t m=0; m<numComp; m++) {                                      for (index_t m=0; m<numComp; m++) {
7136                                          const double D_0 = D_p[INDEX2(k, m, numEq)];                                          const double wD0 = 8*D_p[INDEX2(k, m, numEq)]*w58;
7137                                          EM_S[INDEX4(k,m,0,0,numEq,numComp,8)]+=64*D_0*w55;                                          EM_S[INDEX4(k,m,0,0,numEq,numComp,8)]+=8*wD0;
7138                                          EM_S[INDEX4(k,m,0,1,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,0,1,numEq,numComp,8)]+=4*wD0;
7139                                          EM_S[INDEX4(k,m,0,2,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,0,2,numEq,numComp,8)]+=4*wD0;
7140                                          EM_S[INDEX4(k,m,0,3,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,0,3,numEq,numComp,8)]+=2*wD0;
7141                                          EM_S[INDEX4(k,m,0,4,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,0,4,numEq,numComp,8)]+=4*wD0;
7142                                          EM_S[INDEX4(k,m,0,5,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,0,5,numEq,numComp,8)]+=2*wD0;
7143                                          EM_S[INDEX4(k,m,0,6,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,0,6,numEq,numComp,8)]+=2*wD0;
7144                                          EM_S[INDEX4(k,m,0,7,numEq,numComp,8)]+=8*D_0*w55;                                          EM_S[INDEX4(k,m,0,7,numEq,numComp,8)]+=  wD0;
7145                                          EM_S[INDEX4(k,m,1,0,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,1,0,numEq,numComp,8)]+=4*wD0;
7146                                          EM_S[INDEX4(k,m,1,1,numEq,numComp,8)]+=64*D_0*w55;                                          EM_S[INDEX4(k,m,1,1,numEq,numComp,8)]+=8*wD0;
7147                                          EM_S[INDEX4(k,m,1,2,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,1,2,numEq,numComp,8)]+=2*wD0;
7148                                          EM_S[INDEX4(k,m,1,3,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,1,3,numEq,numComp,8)]+=4*wD0;
7149                                          EM_S[INDEX4(k,m,1,4,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,1,4,numEq,numComp,8)]+=2*wD0;
7150                                          EM_S[INDEX4(k,m,1,5,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,1,5,numEq,numComp,8)]+=4*wD0;
7151                                          EM_S[INDEX4(k,m,1,6,numEq,numComp,8)]+=8*D_0*w55;                                          EM_S[INDEX4(k,m,1,6,numEq,numComp,8)]+=  wD0;
7152                                          EM_S[INDEX4(k,m,1,7,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,1,7,numEq,numComp,8)]+=2*wD0;
7153                                          EM_S[INDEX4(k,m,2,0,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,2,0,numEq,numComp,8)]+=4*wD0;
7154                                          EM_S[INDEX4(k,m,2,1,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,2,1,numEq,numComp,8)]+=2*wD0;
7155                                          EM_S[INDEX4(k,m,2,2,numEq,numComp,8)]+=64*D_0*w55;                                          EM_S[INDEX4(k,m,2,2,numEq,numComp,8)]+=8*wD0;
7156                                          EM_S[INDEX4(k,m,2,3,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,2,3,numEq,numComp,8)]+=4*wD0;
7157                                          EM_S[INDEX4(k,m,2,4,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,2,4,numEq,numComp,8)]+=2*wD0;
7158                                          EM_S[INDEX4(k,m,2,5,numEq,numComp,8)]+=8*D_0*w55;                                          EM_S[INDEX4(k,m,2,5,numEq,numComp,8)]+=  wD0;
7159                                          EM_S[INDEX4(k,m,2,6,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,2,6,numEq,numComp,8)]+=4*wD0;
7160                                          EM_S[INDEX4(k,m,2,7,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,2,7,numEq,numComp,8)]+=2*wD0;
7161                                          EM_S[INDEX4(k,m,3,0,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,3,0,numEq,numComp,8)]+=2*wD0;
7162                                          EM_S[INDEX4(k,m,3,1,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,3,1,numEq,numComp,8)]+=4*wD0;
7163                                          EM_S[INDEX4(k,m,3,2,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,3,2,numEq,numComp,8)]+=4*wD0;
7164                                          EM_S[INDEX4(k,m,3,3,numEq,numComp,8)]+=64*D_0*w55;                                          EM_S[INDEX4(k,m,3,3,numEq,numComp,8)]+=8*wD0;
7165                                          EM_S[INDEX4(k,m,3,4,numEq,numComp,8)]+=8*D_0*w55;                                          EM_S[INDEX4(k,m,3,4,numEq,numComp,8)]+=  wD0;
7166                                          EM_S[INDEX4(k,m,3,5,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,3,5,numEq,numComp,8)]+=2*wD0;
7167                                          EM_S[INDEX4(k,m,3,6,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,3,6,numEq,numComp,8)]+=2*wD0;
7168                                          EM_S[INDEX4(k,m,3,7,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,3,7,numEq,numComp,8)]+=4*wD0;
7169                                          EM_S[INDEX4(k,m,4,0,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,4,0,numEq,numComp,8)]+=4*wD0;
7170                                          EM_S[INDEX4(k,m,4,1,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,4,1,numEq,numComp,8)]+=2*wD0;
7171                                          EM_S[INDEX4(k,m,4,2,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,4,2,numEq,numComp,8)]+=2*wD0;
7172                                          EM_S[INDEX4(k,m,4,3,numEq,numComp,8)]+=8*D_0*w55;                                          EM_S[INDEX4(k,m,4,3,numEq,numComp,8)]+=  wD0;
7173                                          EM_S[INDEX4(k,m,4,4,numEq,numComp,8)]+=64*D_0*w55;                                          EM_S[INDEX4(k,m,4,4,numEq,numComp,8)]+=8*wD0;
7174                                          EM_S[INDEX4(k,m,4,5,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,4,5,numEq,numComp,8)]+=4*wD0;
7175                                          EM_S[INDEX4(k,m,4,6,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,4,6,numEq,numComp,8)]+=4*wD0;
7176                                          EM_S[INDEX4(k,m,4,7,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,4,7,numEq,numComp,8)]+=2*wD0;
7177                                          EM_S[INDEX4(k,m,5,0,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,5,0,numEq,numComp,8)]+=2*wD0;
7178                                          EM_S[INDEX4(k,m,5,1,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,5,1,numEq,numComp,8)]+=4*wD0;
7179                                          EM_S[INDEX4(k,m,5,2,numEq,numComp,8)]+=8*D_0*w55;                                          EM_S[INDEX4(k,m,5,2,numEq,numComp,8)]+=  wD0;
7180                                          EM_S[INDEX4(k,m,5,3,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,5,3,numEq,numComp,8)]+=2*wD0;
7181                                          EM_S[INDEX4(k,m,5,4,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,5,4,numEq,numComp,8)]+=4*wD0;
7182                                          EM_S[INDEX4(k,m,5,5,numEq,numComp,8)]+=64*D_0*w55;                                          EM_S[INDEX4(k,m,5,5,numEq,numComp,8)]+=8*wD0;
7183                                          EM_S[INDEX4(k,m,5,6,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,5,6,numEq,numComp,8)]+=2*wD0;
7184                                          EM_S[INDEX4(k,m,5,7,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,5,7,numEq,numComp,8)]+=4*wD0;
7185                                          EM_S[INDEX4(k,m,6,0,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,6,0,numEq,numComp,8)]+=2*wD0;
7186                                          EM_S[INDEX4(k,m,6,1,numEq,numComp,8)]+=8*D_0*w55;                                          EM_S[INDEX4(k,m,6,1,numEq,numComp,8)]+=  wD0;
7187                                          EM_S[INDEX4(k,m,6,2,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,6,2,numEq,numComp,8)]+=4*wD0;
7188                                          EM_S[INDEX4(k,m,6,3,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,6,3,numEq,numComp,8)]+=2*wD0;
7189                                          EM_S[INDEX4(k,m,6,4,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,6,4,numEq,numComp,8)]+=4*wD0;
7190                                          EM_S[INDEX4(k,m,6,5,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,6,5,numEq,numComp,8)]+=2*wD0;
7191                                          EM_S[INDEX4(k,m,6,6,numEq,numComp,8)]+=64*D_0*w55;                                          EM_S[INDEX4(k,m,6,6,numEq,numComp,8)]+=8*wD0;
7192                                          EM_S[INDEX4(k,m,6,7,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,6,7,numEq,numComp,8)]+=4*wD0;
7193                                          EM_S[INDEX4(k,m,7,0,numEq,numComp,8)]+=8*D_0*w55;                                          EM_S[INDEX4(k,m,7,0,numEq,numComp,8)]+=  wD0;
7194                                          EM_S[INDEX4(k,m,7,1,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,7,1,numEq,numComp,8)]+=2*wD0;
7195                                          EM_S[INDEX4(k,m,7,2,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,7,2,numEq,numComp,8)]+=2*wD0;
7196                                          EM_S[INDEX4(k,m,7,3,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,7,3,numEq,numComp,8)]+=4*wD0;
7197                                          EM_S[INDEX4(k,m,7,4,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,7,4,numEq,numComp,8)]+=2*wD0;
7198                                          EM_S[INDEX4(k,m,7,5,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,7,5,numEq,numComp,8)]+=4*wD0;
7199                                          EM_S[INDEX4(k,m,7,6,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,7,6,numEq,numComp,8)]+=4*wD0;
7200                                          EM_S[INDEX4(k,m,7,7,numEq,numComp,8)]+=64*D_0*w55;                                          EM_S[INDEX4(k,m,7,7,numEq,numComp,8)]+=8*wD0;
7201                                      }                                      }
7202                                  }                                  }
7203                              }                              }
# Line 7239  void Brick::assemblePDESystem(Paso_Syste Line 7234  void Brick::assemblePDESystem(Paso_Syste
7234                                      const double X_0_7 = X_p[INDEX3(k,0,7,numEq,3)];                                      const double X_0_7 = X_p[INDEX3(k,0,7,numEq,3)];
7235                                      const double X_1_7 = X_p[INDEX3(k,1,7,numEq,3)];                                      const double X_1_7 = X_p[INDEX3(k,1,7,numEq,3)];
7236                                      const double X_2_7 = X_p[INDEX3(k,2,7,numEq,3)];                                      const double X_2_7 = X_p[INDEX3(k,2,7,numEq,3)];
7237                                      const double tmp0 = w66*(X_0_2 + X_0_3 + X_0_4 + X_0_5);                                      const double tmp0 = w72*(X_0_6 + X_0_7);
7238                                      const double tmp1 = w64*(X_1_1 + X_1_3 + X_1_4 + X_1_6);                                      const double tmp1 = w66*(X_2_0 + X_2_4);
7239                                      const double tmp2 = w61*(X_0_0 + X_0_1);                                      const double tmp2 = w64*(X_0_0 + X_0_1);
7240                                      const double tmp3 = w68*(X_1_5 + X_1_7);                                      const double tmp3 = w68*(X_2_1 + X_2_2 + X_2_5 + X_2_6);
7241                                      const double tmp4 = w65*(X_2_1 + X_2_2 + X_2_5 + X_2_6);                                      const double tmp4 = w65*(X_1_0 + X_1_2);
7242                                      const double tmp5 = w63*(X_2_0 + X_2_4);                                      const double tmp5 = w70*(X_2_3 + X_2_7);
7243                                      const double tmp6 = w67*(X_2_3 + X_2_7);                                      const double tmp6 = w67*(X_1_1 + X_1_3 + X_1_4 + X_1_6);
7244                                      const double tmp7 = w69*(X_0_6 + X_0_7);                                      const double tmp7 = w71*(X_1_5 + X_1_7);
7245                                      const double tmp8 = w62*(X_1_0 + X_1_2);                                      const double tmp8 = w69*(X_0_2 + X_0_3 + X_0_4 + X_0_5);
7246                                      const double tmp9 = w66*(-X_0_2 - X_0_3 - X_0_4 - X_0_5);                                      const double tmp9 = w72*(-X_0_6 - X_0_7);
7247                                      const double tmp10 = w64*(X_1_0 + X_1_2 + X_1_5 + X_1_7);                                      const double tmp10 = w66*(X_2_1 + X_2_5);
7248                                      const double tmp11 = w61*(-X_0_0 - X_0_1);                                      const double tmp11 = w64*(-X_0_0 - X_0_1);
7249                                      const double tmp12 = w68*(X_1_4 + X_1_6);                                      const double tmp12 = w68*(X_2_0 + X_2_3 + X_2_4 + X_2_7);
7250                                      const double tmp13 = w65*(X_2_0 + X_2_3 + X_2_4 + X_2_7);                                      const double tmp13 = w65*(X_1_1 + X_1_3);
7251                                      const double tmp14 = w63*(X_2_1 + X_2_5);                                      const double tmp14 = w70*(X_2_2 + X_2_6);
7252                                      const double tmp15 = w67*(X_2_2 + X_2_6);                                      const double tmp15 = w67*(X_1_0 + X_1_2 + X_1_5 + X_1_7);
7253                                      const double tmp16 = w69*(-X_0_6 - X_0_7);                                      const double tmp16 = w71*(X_1_4 + X_1_6);
7254                                      const double tmp17 = w62*(X_1_1 + X_1_3);                                      const double tmp17 = w69*(-X_0_2 - X_0_3 - X_0_4 - X_0_5);
7255                                      const double tmp18 = w66*(X_0_0 + X_0_1 + X_0_6 + X_0_7);                                      const double tmp18 = w72*(X_0_4 + X_0_5);
7256                                      const double tmp19 = w64*(-X_1_1 - X_1_3 - X_1_4 - X_1_6);                                      const double tmp19 = w66*(X_2_2 + X_2_6);
7257                                      const double tmp20 = w61*(X_0_2 + X_0_3);                                      const double tmp20 = w64*(X_0_2 + X_0_3);
7258                                      const double tmp21 = w68*(-X_1_5 - X_1_7);                                      const double tmp21 = w65*(-X_1_0 - X_1_2);
7259                     &n