/[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 4618 by caltinay, Wed Jan 15 04:35:19 2014 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 249  bool Brick::operator==(const AbstractDom Line 251  bool Brick::operator==(const AbstractDom
251  }  }
252    
253  void Brick::readNcGrid(escript::Data& out, string filename, string varname,  void Brick::readNcGrid(escript::Data& out, string filename, string varname,
254              const vector<int>& first, const vector<int>& numValues,              const ReaderParameters& params) const
             const vector<int>& multiplier) const  
255  {  {
256  #ifdef USE_NETCDF  #ifdef USE_NETCDF
257      // check destination function space      // check destination function space
# Line 267  void Brick::readNcGrid(escript::Data& ou Line 268  void Brick::readNcGrid(escript::Data& ou
268      } else      } else
269          throw RipleyException("readNcGrid(): invalid function space for output data object");          throw RipleyException("readNcGrid(): invalid function space for output data object");
270    
271      if (first.size() != 3)      if (params.first.size() != 3)
272          throw RipleyException("readNcGrid(): argument 'first' must have 3 entries");          throw RipleyException("readNcGrid(): argument 'first' must have 3 entries");
273    
274      if (numValues.size() != 3)      if (params.numValues.size() != 3)
275          throw RipleyException("readNcGrid(): argument 'numValues' must have 3 entries");          throw RipleyException("readNcGrid(): argument 'numValues' must have 3 entries");
276    
277      if (multiplier.size() != 3)      if (params.multiplier.size() != 3)
278          throw RipleyException("readNcGrid(): argument 'multiplier' must have 3 entries");          throw RipleyException("readNcGrid(): argument 'multiplier' must have 3 entries");
279      for (size_t i=0; i<multiplier.size(); i++)      for (size_t i=0; i<params.multiplier.size(); i++)
280          if (multiplier[i]<1)          if (params.multiplier[i]<1)
281              throw RipleyException("readNcGrid(): all multipliers must be positive");              throw RipleyException("readNcGrid(): all multipliers must be positive");
282    
283      // check file existence and size      // check file existence and size
# Line 294  void Brick::readNcGrid(escript::Data& ou Line 295  void Brick::readNcGrid(escript::Data& ou
295          throw RipleyException("readNcGrid(): only scalar data supported");          throw RipleyException("readNcGrid(): only scalar data supported");
296    
297      const int dims = var->num_dims();      const int dims = var->num_dims();
298      const long *edges = var->edges();      boost::scoped_array<long> edges(var->edges());
299    
300      // is this a slice of the data object (dims!=3)?      // is this a slice of the data object (dims!=3)?
301      // note the expected ordering of edges (as in numpy: z,y,x)      // note the expected ordering of edges (as in numpy: z,y,x)
302      if ( (dims==3 && (numValues[2] > edges[0] || numValues[1] > edges[1]      if ( (dims==3 && (params.numValues[2] > edges[0] ||
303                        || numValues[0] > edges[2]))                        params.numValues[1] > edges[1] ||
304              || (dims==2 && numValues[2]>1)                        params.numValues[0] > edges[2]))
305              || (dims==1 && (numValues[2]>1 || numValues[1]>1)) ) {              || (dims==2 && params.numValues[2]>1)
306                || (dims==1 && (params.numValues[2]>1 || params.numValues[1]>1)) ) {
307          throw RipleyException("readNcGrid(): not enough data in file");          throw RipleyException("readNcGrid(): not enough data in file");
308      }      }
309    
310      // check if this rank contributes anything      // check if this rank contributes anything
311      if (first[0] >= m_offset[0]+myN0 || first[0]+numValues[0]*multiplier[0] <= m_offset[0] ||      if (params.first[0] >= m_offset[0]+myN0 ||
312              first[1] >= m_offset[1]+myN1 || first[1]+numValues[1]*multiplier[1] <= m_offset[1] ||              params.first[0]+params.numValues[0]*params.multiplier[0] <= m_offset[0] ||
313              first[2] >= m_offset[2]+myN2 || first[2]+numValues[2]*multiplier[2] <= m_offset[2]) {              params.first[1] >= m_offset[1]+myN1 ||
314                params.first[1]+params.numValues[1]*params.multiplier[1] <= m_offset[1] ||
315                params.first[2] >= m_offset[2]+myN2 ||
316                params.first[2]+params.numValues[2]*params.multiplier[2] <= m_offset[2]) {
317          return;          return;
318      }      }
319    
320      // now determine how much this rank has to write      // now determine how much this rank has to write
321    
322      // first coordinates in data object to write to      // first coordinates in data object to write to
323      const int first0 = max(0, first[0]-m_offset[0]);      const int first0 = max(0, params.first[0]-m_offset[0]);
324      const int first1 = max(0, first[1]-m_offset[1]);      const int first1 = max(0, params.first[1]-m_offset[1]);
325      const int first2 = max(0, first[2]-m_offset[2]);      const int first2 = max(0, params.first[2]-m_offset[2]);
326      // indices to first value in file      // indices to first value in file (not accounting for reverse yet)
327      const int idx0 = max(0, m_offset[0]-first[0]);      int idx0 = max(0, m_offset[0]-params.first[0]);
328      const int idx1 = max(0, m_offset[1]-first[1]);      int idx1 = max(0, m_offset[1]-params.first[1]);
329      const int idx2 = max(0, m_offset[2]-first[2]);      int idx2 = max(0, m_offset[2]-params.first[2]);
330      // number of values to read      // number of values to read
331      const int num0 = min(numValues[0]-idx0, myN0-first0);      const int num0 = min(params.numValues[0]-idx0, myN0-first0);
332      const int num1 = min(numValues[1]-idx1, myN1-first1);      const int num1 = min(params.numValues[1]-idx1, myN1-first1);
333      const int num2 = min(numValues[2]-idx2, myN2-first2);      const int num2 = min(params.numValues[2]-idx2, myN2-first2);
334    
335        // make sure we read the right block if going backwards through file
336        if (params.reverse[0])
337            idx0 = edges[dims-1]-num0-idx0;
338        if (dims>1 && params.reverse[1])
339            idx1 = edges[dims-2]-num1-idx1;
340        if (dims>2 && params.reverse[2])
341            idx2 = edges[dims-3]-num2-idx2;
342    
343    
344      vector<double> values(num0*num1*num2);      vector<double> values(num0*num1*num2);
345      if (dims==3) {      if (dims==3) {
# Line 342  void Brick::readNcGrid(escript::Data& ou Line 356  void Brick::readNcGrid(escript::Data& ou
356      const int dpp = out.getNumDataPointsPerSample();      const int dpp = out.getNumDataPointsPerSample();
357      out.requireWrite();      out.requireWrite();
358    
359        // helpers for reversing
360        const int x0 = (params.reverse[0] ? num0-1 : 0);
361        const int x_mult = (params.reverse[0] ? -1 : 1);
362        const int y0 = (params.reverse[1] ? num1-1 : 0);
363        const int y_mult = (params.reverse[1] ? -1 : 1);
364        const int z0 = (params.reverse[2] ? num2-1 : 0);
365        const int z_mult = (params.reverse[2] ? -1 : 1);
366    
367      for (index_t z=0; z<num2; z++) {      for (index_t z=0; z<num2; z++) {
368          for (index_t y=0; y<num1; y++) {          for (index_t y=0; y<num1; y++) {
369  #pragma omp parallel for  #pragma omp parallel for
370              for (index_t x=0; x<num0; x++) {              for (index_t x=0; x<num0; x++) {
371                  const int baseIndex = first0+x*multiplier[0]                  const int baseIndex = first0+x*params.multiplier[0]
372                                          +(first1+y*multiplier[1])*myN0                                       +(first1+y*params.multiplier[1])*myN0
373                                          +(first2+z*multiplier[2])*myN0*myN1;                                       +(first2+z*params.multiplier[2])*myN0*myN1;
374                  const int srcIndex=z*num1*num0+y*num0+x;                  const int srcIndex=(z0+z_mult*z)*num1*num0
375                                      +(y0+y_mult*y)*num0
376                                      +(x0+x_mult*x);
377                  if (!isnan(values[srcIndex])) {                  if (!isnan(values[srcIndex])) {
378                      for (index_t m2=0; m2<multiplier[2]; m2++) {                      for (index_t m2=0; m2<params.multiplier[2]; m2++) {
379                          for (index_t m1=0; m1<multiplier[1]; m1++) {                          for (index_t m1=0; m1<params.multiplier[1]; m1++) {
380                              for (index_t m0=0; m0<multiplier[0]; m0++) {                              for (index_t m0=0; m0<params.multiplier[0]; m0++) {
381                                  const int dataIndex = baseIndex+m0                                  const int dataIndex = baseIndex+m0
382                                                 +m1*myN0                                                 +m1*myN0
383                                                 +m2*myN0*myN1;                                                 +m2*myN0*myN1;
# Line 374  void Brick::readNcGrid(escript::Data& ou Line 398  void Brick::readNcGrid(escript::Data& ou
398  }  }
399    
400  void Brick::readBinaryGrid(escript::Data& out, string filename,  void Brick::readBinaryGrid(escript::Data& out, string filename,
401                             const vector<int>& first,                             const ReaderParameters& params) const
402                             const vector<int>& numValues,  {
403                             const vector<int>& multiplier) const      // the mapping is not universally correct but should work on our
404        // supported platforms
405        switch (params.dataType) {
406            case DATATYPE_INT32:
407                readBinaryGridImpl<int>(out, filename, params);
408                break;
409            case DATATYPE_FLOAT32:
410                readBinaryGridImpl<float>(out, filename, params);
411                break;
412            case DATATYPE_FLOAT64:
413                readBinaryGridImpl<double>(out, filename, params);
414                break;
415            default:
416                throw RipleyException("readBinaryGrid(): invalid or unsupported datatype");
417        }
418    }
419    
420    template<typename ValueType>
421    void Brick::readBinaryGridImpl(escript::Data& out, const string& filename,
422                                   const ReaderParameters& params) const
423  {  {
424      // check destination function space      // check destination function space
425      int myN0, myN1, myN2;      int myN0, myN1, myN2;
# Line 392  void Brick::readBinaryGrid(escript::Data Line 435  void Brick::readBinaryGrid(escript::Data
435      } else      } else
436          throw RipleyException("readBinaryGrid(): invalid function space for output data object");          throw RipleyException("readBinaryGrid(): invalid function space for output data object");
437    
438      if (first.size() != 3)      if (params.first.size() != 3)
439          throw RipleyException("readBinaryGrid(): argument 'first' must have 3 entries");          throw RipleyException("readBinaryGrid(): argument 'first' must have 3 entries");
440    
441      if (numValues.size() != 3)      if (params.numValues.size() != 3)
442          throw RipleyException("readBinaryGrid(): argument 'numValues' must have 3 entries");          throw RipleyException("readBinaryGrid(): argument 'numValues' must have 3 entries");
443    
444      if (multiplier.size() != 3)      if (params.multiplier.size() != 3)
445          throw RipleyException("readBinaryGrid(): argument 'multiplier' must have 3 entries");          throw RipleyException("readBinaryGrid(): argument 'multiplier' must have 3 entries");
446      for (size_t i=0; i<multiplier.size(); i++)      for (size_t i=0; i<params.multiplier.size(); i++)
447          if (multiplier[i]<1)          if (params.multiplier[i]<1)
448              throw RipleyException("readBinaryGrid(): all multipliers must be positive");              throw RipleyException("readBinaryGrid(): all multipliers must be positive");
449    
450      // check file existence and size      // check file existence and size
# Line 412  void Brick::readBinaryGrid(escript::Data Line 455  void Brick::readBinaryGrid(escript::Data
455      f.seekg(0, ios::end);      f.seekg(0, ios::end);
456      const int numComp = out.getDataPointSize();      const int numComp = out.getDataPointSize();
457      const int filesize = f.tellg();      const int filesize = f.tellg();
458      const int reqsize = numValues[0]*numValues[1]*numValues[2]*numComp*sizeof(float);      const int reqsize = params.numValues[0]*params.numValues[1]*params.numValues[2]*numComp*sizeof(ValueType);
459      if (filesize < reqsize) {      if (filesize < reqsize) {
460          f.close();          f.close();
461          throw RipleyException("readBinaryGrid(): not enough data in file");          throw RipleyException("readBinaryGrid(): not enough data in file");
462      }      }
463    
464      // check if this rank contributes anything      // check if this rank contributes anything
465      if (first[0] >= m_offset[0]+myN0 || first[0]+numValues[0]*multiplier[0] <= m_offset[0] ||      if (params.first[0] >= m_offset[0]+myN0 ||
466              first[1] >= m_offset[1]+myN1 || first[1]+numValues[1]*multiplier[1] <= m_offset[1] ||              params.first[0]+params.numValues[0]*params.multiplier[0] <= m_offset[0] ||
467              first[2] >= m_offset[2]+myN2 || first[2]+numValues[2]*multiplier[2] <= m_offset[2]) {              params.first[1] >= m_offset[1]+myN1 ||
468                params.first[1]+params.numValues[1]*params.multiplier[1] <= m_offset[1] ||
469                params.first[2] >= m_offset[2]+myN2 ||
470                params.first[2]+params.numValues[2]*params.multiplier[2] <= m_offset[2]) {
471          f.close();          f.close();
472          return;          return;
473      }      }
# Line 429  void Brick::readBinaryGrid(escript::Data Line 475  void Brick::readBinaryGrid(escript::Data
475      // now determine how much this rank has to write      // now determine how much this rank has to write
476    
477      // first coordinates in data object to write to      // first coordinates in data object to write to
478      const int first0 = max(0, first[0]-m_offset[0]);      const int first0 = max(0, params.first[0]-m_offset[0]);
479      const int first1 = max(0, first[1]-m_offset[1]);      const int first1 = max(0, params.first[1]-m_offset[1]);
480      const int first2 = max(0, first[2]-m_offset[2]);      const int first2 = max(0, params.first[2]-m_offset[2]);
481      // indices to first value in file      // indices to first value in file
482      const int idx0 = max(0, m_offset[0]-first[0]);      const int idx0 = max(0, m_offset[0]-params.first[0]);
483      const int idx1 = max(0, m_offset[1]-first[1]);      const int idx1 = max(0, m_offset[1]-params.first[1]);
484      const int idx2 = max(0, m_offset[2]-first[2]);      const int idx2 = max(0, m_offset[2]-params.first[2]);
485      // number of values to read      // number of values to read
486      const int num0 = min(numValues[0]-idx0, myN0-first0);      const int num0 = min(params.numValues[0]-idx0, myN0-first0);
487      const int num1 = min(numValues[1]-idx1, myN1-first1);      const int num1 = min(params.numValues[1]-idx1, myN1-first1);
488      const int num2 = min(numValues[2]-idx2, myN2-first2);      const int num2 = min(params.numValues[2]-idx2, myN2-first2);
489    
490      out.requireWrite();      out.requireWrite();
491      vector<float> values(num0*numComp);      vector<ValueType> values(num0*numComp);
492      const int dpp = out.getNumDataPointsPerSample();      const int dpp = out.getNumDataPointsPerSample();
493    
494      for (index_t z=0; z<num2; z++) {      for (int z=0; z<num2; z++) {
495          for (index_t y=0; y<num1; y++) {          for (int y=0; y<num1; y++) {
496              const int fileofs = numComp*(idx0+(idx1+y)*numValues[0]+(idx2+z)*numValues[0]*numValues[1]);              const int fileofs = numComp*(idx0+(idx1+y)*params.numValues[0]
497              f.seekg(fileofs*sizeof(float));                               +(idx2+z)*params.numValues[0]*params.numValues[1]);
498              f.read((char*)&values[0], num0*numComp*sizeof(float));              f.seekg(fileofs*sizeof(ValueType));
499                f.read((char*)&values[0], num0*numComp*sizeof(ValueType));
500              for (index_t x=0; x<num0; x++) {  
501                  const int baseIndex = first0+x*multiplier[0]              for (int x=0; x<num0; x++) {
502                                          +(first1+y*multiplier[1])*myN0                  const int baseIndex = first0+x*params.multiplier[0]
503                                          +(first2+z*multiplier[2])*myN0*myN1;                                       +(first1+y*params.multiplier[1])*myN0
504                  for (index_t m2=0; m2<multiplier[2]; m2++) {                                       +(first2+z*params.multiplier[2])*myN0*myN1;
505                      for (index_t m1=0; m1<multiplier[1]; m1++) {                  for (int m2=0; m2<params.multiplier[2]; m2++) {
506                          for (index_t m0=0; m0<multiplier[0]; m0++) {                      for (int m1=0; m1<params.multiplier[1]; m1++) {
507                            for (int m0=0; m0<params.multiplier[0]; m0++) {
508                              const int dataIndex = baseIndex+m0                              const int dataIndex = baseIndex+m0
509                                             +m1*myN0                                             +m1*myN0
510                                             +m2*myN0*myN1;                                             +m2*myN0*myN1;
511                              double* dest = out.getSampleDataRW(dataIndex);                              double* dest = out.getSampleDataRW(dataIndex);
512                              for (index_t c=0; c<numComp; c++) {                              for (int c=0; c<numComp; c++) {
513                                  if (!std::isnan(values[x*numComp+c])) {                                  ValueType val = values[x*numComp+c];
514                                      for (index_t q=0; q<dpp; q++) {  
515                                          *dest++ = static_cast<double>(values[x*numComp+c]);                                  if (params.byteOrder != BYTEORDER_NATIVE) {
516                                        char* cval = reinterpret_cast<char*>(&val);
517                                        // this will alter val!!
518                                        byte_swap32(cval);
519                                    }
520                                    if (!std::isnan(val)) {
521                                        for (int q=0; q<dpp; q++) {
522                                            *dest++ = static_cast<double>(val);
523                                      }                                      }
524                                  }                                  }
525                              }                              }
# Line 534  void Brick::writeBinaryGridImpl(const es Line 588  void Brick::writeBinaryGridImpl(const es
588      escript::Data* _in = const_cast<escript::Data*>(&in);      escript::Data* _in = const_cast<escript::Data*>(&in);
589    
590      // from here on we know that each sample consists of one value      // from here on we know that each sample consists of one value
591      FileWriter* fw = new FileWriter();      FileWriter fw;
592      fw->openFile(filename, fileSize);      fw.openFile(filename, fileSize);
593      MPIBarrier();      MPIBarrier();
594    
595      for (index_t z=0; z<myN2; z++) {      for (index_t z=0; z<myN2; z++) {
# Line 554  void Brick::writeBinaryGridImpl(const es Line 608  void Brick::writeBinaryGridImpl(const es
608                      oss.write(byte_swap32(value), sizeof(fvalue));                      oss.write(byte_swap32(value), sizeof(fvalue));
609                  }                  }
610              }              }
611              fw->writeAt(oss, fileofs);              fw.writeAt(oss, fileofs);
612          }          }
613      }      }
614      fw->close();      fw.close();
615  }  }
616    
617  void Brick::dump(const string& fileName) const  void Brick::dump(const string& fileName) const
# Line 2794  void Brick::assemblePDESingle(Paso_Syste Line 2848  void Brick::assemblePDESingle(Paso_Syste
2848          const escript::Data& C, const escript::Data& D,          const escript::Data& C, const escript::Data& D,
2849          const escript::Data& X, const escript::Data& Y) const          const escript::Data& X, const escript::Data& Y) const
2850  {  {
2851      /* GENERATOR SNIP_PDE_SINGLE_PRE TOP */      const double SQRT3 = 1.73205080756887719318;
2852      const double w0 = 0.00093037914038584273081*m_dx[1]*m_dx[2]/m_dx[0];      const double w10 = -m_dx[0]/288;
2853      const double w1 = 0.00093037914038584273081*m_dx[2];      const double w6 = w10*(SQRT3 - 2);
2854      const double w2 = -0.000249294339321148701*m_dx[1];      const double w12 = w10*(-SQRT3 - 2);
2855      const double w3 = 0.00093037914038584273081*m_dx[0]*m_dx[2]/m_dx[1];      const double w4 = w10*(-4*SQRT3 + 7);
2856      const double w4 = -0.000249294339321148701*m_dx[0];      const double w18 = w10*(-4*SQRT3 - 7);
2857      const double w5 = 0.00093037914038584273081*m_dx[1];      const double w11 = m_dx[1]/288;
2858      const double w6 = 0.00093037914038584273081*m_dx[0];      const double w5 = w11*(-SQRT3 + 2);
2859      const double w7 = -0.000249294339321148701*m_dx[0]*m_dx[1]/m_dx[2];      const double w15 = w11*(SQRT3 + 2);
2860      const double w8 = 0.0034722222222222222222*m_dx[2];      const double w2 = w11*(4*SQRT3 - 7);
2861      const double w9 = 0.012958509748503046158*m_dx[0]*m_dx[2]/m_dx[1];      const double w17 = w11*(4*SQRT3 + 7);
2862      const double w10 = -0.0034722222222222222222*m_dx[0];      const double w8 = m_dx[2]/288;
2863      const double w11 = 0.0034722222222222222222*m_dx[1];      const double w1 = w8*(-SQRT3 + 2);
2864      const double w12 = 0.012958509748503046158*m_dx[0];      const double w16 = w8*(SQRT3 + 2);
2865      const double w13 = -0.0034722222222222222222*m_dx[0]*m_dx[1]/m_dx[2];      const double w20 = w8*(4*SQRT3 - 7);
2866      const double w14 = 0.012958509748503046158*m_dx[1]*m_dx[2]/m_dx[0];      const double w21 = w8*(-4*SQRT3 - 7);
2867      const double w15 = 0.012958509748503046158*m_dx[1];      const double w50 = m_dx[0]*m_dx[1]/72;
2868      const double w16 = 0.012958509748503046158*m_dx[2];      const double w65 = -m_dx[0]*m_dx[1]/48;
2869      const double w17 = 0.04836181677178996241*m_dx[1];      const double w35 = w65*(-SQRT3 - 3)/36;
2870      const double w18 = 0.04836181677178996241*m_dx[0];      const double w42 = w65*(SQRT3 - 3)/36;
2871      const double w19 = -0.04836181677178996241*m_dx[0]*m_dx[1]/m_dx[2];      const double w32 = w65*(5*SQRT3 - 9)/36;
2872      const double w20 = -0.000249294339321148701*m_dx[2];      const double w43 = w65*(-5*SQRT3 - 9)/36;
2873      const double w21 = -0.04836181677178996241*m_dx[2];      const double w40 = w65*(-19*SQRT3 - 33)/36;
2874      const double w22 = -0.0034722222222222222222*m_dx[0]*m_dx[2]/m_dx[1];      const double w41 = w65*(19*SQRT3 - 33)/36;
2875      const double w23 = 0.00093037914038584273081*m_dx[0]*m_dx[1]/m_dx[2];      const double w63 = w65*(SQRT3 + 2);
2876      const double w24 = -0.04836181677178996241*m_dx[0]*m_dx[2]/m_dx[1];      const double w67 = w65*(-SQRT3 + 2);
2877      const double w25 = 0.012958509748503046158*m_dx[0]*m_dx[1]/m_dx[2];      const double w51 = -m_dx[0]*m_dx[2]/72;
2878      const double w26 = -0.000249294339321148701*m_dx[0]*m_dx[2]/m_dx[1];      const double w64 = -m_dx[0]*m_dx[2]/48;
2879      const double w27 = -0.0034722222222222222222*m_dx[1]*m_dx[2]/m_dx[0];      const double w34 = w64*(-SQRT3 - 3)/36;
2880      const double w28 = -0.000249294339321148701*m_dx[1]*m_dx[2]/m_dx[0];      const double w37 = w64*(SQRT3 - 3)/36;
2881      const double w29 = -0.04836181677178996241*m_dx[1]*m_dx[2]/m_dx[0];      const double w31 = w64*(5*SQRT3 - 9)/36;
2882      const double w30 = 0.0001966122466178319053*m_dx[1]*m_dx[2];      const double w39 = w64*(-5*SQRT3 - 9)/36;
2883      const double w31 = 0.0001966122466178319053*m_dx[0]*m_dx[2];      const double w44 = w64*(19*SQRT3 + 33)/36;
2884      const double w32 = 0.0001966122466178319053*m_dx[0]*m_dx[1];      const double w45 = w64*(-19*SQRT3 + 33)/36;
2885      const double w33 = 0.0007337668937680108255*m_dx[1]*m_dx[2];      const double w62 = w64*(SQRT3 + 2);
2886      const double w34 = 0.0027384553284542113967*m_dx[0]*m_dx[2];      const double w68 = w64*(-SQRT3 + 2);
2887      const double w35 = 0.0027384553284542113967*m_dx[0]*m_dx[1];      const double w53 = -m_dx[1]*m_dx[2]/72;
2888      const double w36 = 0.0027384553284542113967*m_dx[1]*m_dx[2];      const double w66 = -m_dx[1]*m_dx[2]/48;
2889      const double w37 = 0.0007337668937680108255*m_dx[0]*m_dx[2];      const double w33 = w66*(SQRT3 - 3)/36;
2890      const double w38 = 0.010220054420048834761*m_dx[1]*m_dx[2];      const double w36 = w66*(-SQRT3 - 3)/36;
2891      const double w39 = 0.010220054420048834761*m_dx[0]*m_dx[2];      const double w30 = w66*(5*SQRT3 - 9)/36;
2892      const double w40 = 0.038141762351741127649*m_dx[0]*m_dx[1];      const double w38 = w66*(-5*SQRT3 - 9)/36;
2893      const double w41 = 0.000052682092703316795698*m_dx[0]*m_dx[1];      const double w46 = w66*(19*SQRT3 - 33)/36;
2894      const double w42 = 0.0007337668937680108255*m_dx[0]*m_dx[1];      const double w47 = w66*(-19*SQRT3 - 33)/36;
2895      const double w43 = 0.010220054420048834761*m_dx[0]*m_dx[1];      const double w61 = w66*(SQRT3 + 2);
2896      const double w44 = -0.038141762351741127649*m_dx[0]*m_dx[2];      const double w69 = w66*(-SQRT3 + 2);
2897      const double w45 = -0.000052682092703316795698*m_dx[0]*m_dx[2];      const double w55 = m_dx[0]*m_dx[1]*m_dx[2]/1728;
2898      const double w46 = 0.000052682092703316795698*m_dx[1]*m_dx[2];      const double w57 = w55*(-SQRT3 + 2);
2899      const double w47 = 0.038141762351741127649*m_dx[1]*m_dx[2];      const double w58 = w55*(SQRT3 + 2);
2900      const double w48 = 0.027777777777777777778*m_dx[1]*m_dx[2];      const double w54 = w55*(-4*SQRT3 + 7);
2901      const double w49 = 0.027777777777777777778*m_dx[0]*m_dx[2];      const double w56 = w55*(4*SQRT3 + 7);
2902      const double w50 = 0.055555555555555555556*m_dx[0]*m_dx[1];      const double w59 = w55*(15*SQRT3 + 26);
2903      const double w51 = -0.055555555555555555556*m_dx[0]*m_dx[2];      const double w60 = w55*(-15*SQRT3 + 26);
2904      const double w52 = -0.027777777777777777778*m_dx[0]*m_dx[1];      const double w71 = w55*6*(SQRT3 + 3);
2905      const double w53 = -0.013888888888888888889*m_dx[1]*m_dx[2];      const double w72 = w55*6*(-SQRT3 + 3);
2906      const double w54 = 0.0000415490565535247835*m_dx[0]*m_dx[1]*m_dx[2];      const double w70 = w55*6*(5*SQRT3 + 9);
2907      const double w55 = 0.0005787037037037037037*m_dx[0]*m_dx[1]*m_dx[2];      const double w73 = w55*6*(-5*SQRT3 + 9);
2908      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]);
2909      const double w57 = 0.0001550631900643071218*m_dx[0]*m_dx[1]*m_dx[2];      const double w23 = w13*(SQRT3 - 2);
2910      const double w58 = 0.002159751624750507693*m_dx[0]*m_dx[1]*m_dx[2];      const double w25 = w13*(-SQRT3 - 2);
2911      const double w59 = 0.03008145955644280058*m_dx[0]*m_dx[1]*m_dx[2];      const double w7 = w13*(-4*SQRT3 + 7);
2912      const double w60 = 0.000011133036149792012194*m_dx[0]*m_dx[1]*m_dx[2];      const double w19 = w13*(4*SQRT3 + 7);
2913      const double w61 = -0.077751058491018276948*m_dx[1]*m_dx[2];      const double w22 = -m_dx[0]*m_dx[2]/(288*m_dx[1]);
2914      const double w62 = -0.077751058491018276948*m_dx[0]*m_dx[2];      const double w3 = w22*(SQRT3 - 2);
2915      const double w63 = -0.077751058491018276948*m_dx[0]*m_dx[1];      const double w9 = w22*(-SQRT3 - 2);
2916      const double w64 = -0.020833333333333333333*m_dx[0]*m_dx[2];      const double w24 = w22*(4*SQRT3 + 7);
2917      const double w65 = -0.020833333333333333333*m_dx[0]*m_dx[1];      const double w26 = w22*(-4*SQRT3 + 7);
2918      const double w66 = -0.020833333333333333333*m_dx[1]*m_dx[2];      const double w27 = -m_dx[1]*m_dx[2]/(288*m_dx[0]);
2919      const double w67 = -0.0055822748423150563848*m_dx[0]*m_dx[1];      const double w0 = w27*(SQRT3 - 2);
2920      const double w68 = -0.0055822748423150563848*m_dx[0]*m_dx[2];      const double w14 = w27*(-SQRT3 - 2);
2921      const double w69 = -0.0055822748423150563848*m_dx[1]*m_dx[2];      const double w28 = w27*(-4*SQRT3 + 7);
2922      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 */  
2923    
2924      rhs.requireWrite();      rhs.requireWrite();
2925  #pragma omp parallel  #pragma omp parallel
# Line 2884  void Brick::assemblePDESingle(Paso_Syste Line 2934  void Brick::assemblePDESingle(Paso_Syste
2934                          vector<double> EM_S(8*8, 0);                          vector<double> EM_S(8*8, 0);
2935                          vector<double> EM_F(8, 0);                          vector<double> EM_F(8, 0);
2936                          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 */  
2937                          ///////////////                          ///////////////
2938                          // process A //                          // process A //
2939                          ///////////////                          ///////////////
# Line 3539  void Brick::assemblePDESingle(Paso_Syste Line 3588  void Brick::assemblePDESingle(Paso_Syste
3588                                  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;
3589                                  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;
3590                              } else { // constant data                              } else { // constant data
3591                                  const double A_00 = A_p[INDEX2(0,0,3)];                                  const double Aw00 = 8*A_p[INDEX2(0,0,3)]*w27;
3592                                  const double A_01 = A_p[INDEX2(0,1,3)];                                  const double Aw01 = 12*A_p[INDEX2(0,1,3)]*w8;
3593                                  const double A_02 = A_p[INDEX2(0,2,3)];                                  const double Aw02 = 12*A_p[INDEX2(0,2,3)]*w11;
3594                                  const double A_10 = A_p[INDEX2(1,0,3)];                                  const double Aw10 = 12*A_p[INDEX2(1,0,3)]*w8;
3595                                  const double A_11 = A_p[INDEX2(1,1,3)];                                  const double Aw11 = 8*A_p[INDEX2(1,1,3)]*w22;
3596                                  const double A_12 = A_p[INDEX2(1,2,3)];                                  const double Aw12 = 12*A_p[INDEX2(1,2,3)]*w10;
3597                                  const double A_20 = A_p[INDEX2(2,0,3)];                                  const double Aw20 = 12*A_p[INDEX2(2,0,3)]*w11;
3598                                  const double A_21 = A_p[INDEX2(2,1,3)];                                  const double Aw21 = 12*A_p[INDEX2(2,1,3)]*w10;
3599                                  const double A_22 = A_p[INDEX2(2,2,3)];                                  const double Aw22 = 8*A_p[INDEX2(2,2,3)]*w13;
3600                                  const double tmp0 = 24*w11*(-A_02 + A_20);                                  const double tmp0 = Aw01 + Aw10;
3601                                  const double tmp1 = 24*w10*(A_12 - A_21);                                  const double tmp1 = Aw01 - Aw10;
3602                                  const double tmp2 = 12*w8*(A_01 + A_10);                                  const double tmp2 = -Aw01 - Aw10;
3603                                  const double tmp3 = 12*w11*(-A_02 + A_20);                                  const double tmp3 = -Aw01 + Aw10;
3604                                  const double tmp4 = 12*w10*(A_12 - A_21);                                  const double tmp4 = Aw02 + Aw20;
3605                                  const double tmp5 = 24*w8*(-A_01 - A_10);                                  const double tmp5 = Aw02 - Aw20;
3606                                  const double tmp6 = 12*w11*(-A_02 - A_20);                                  const double tmp6 = -Aw02 - Aw20;
3607                                  const double tmp7 = 24*w10*(-A_12 + A_21);                                  const double tmp7 = -Aw02 + Aw20;
3608                                  const double tmp8 = 24*w8*(A_01 - A_10);                                  const double tmp8 = Aw12 + Aw21;
3609                                  const double tmp9 = 24*w11*(A_02 - A_20);                                  const double tmp9 = Aw12 - Aw21;
3610                                  const double tmp10 = 12*w10*(A_12 + A_21);                                  const double tmp10 = -Aw12 - Aw21;
3611                                  const double tmp11 = 24*w8*(-A_01 + A_10);                                  const double tmp11 = -Aw12 + Aw21;
3612                                  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;
3613                                  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;
3614                                  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;
3615                                  const double tmp15 = 12*w11*(A_02 + A_20);                                  EM_S[INDEX2(0,3,8)]+= 2*Aw00 + 2*Aw11 -   Aw22 + tmp5 + tmp11 + 2*tmp2;
3616                                  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;
3617                                  const double tmp17 = 12*w10*(-A_12 + A_21);                                  EM_S[INDEX2(0,5,8)]+= 2*Aw00 -   Aw11 + 2*Aw22 + 2*tmp6 + tmp1 + tmp9;
3618                                  const double tmp18 = 24*w11*(-A_02 - A_20);                                  EM_S[INDEX2(0,6,8)]+=  -Aw00 + 2*Aw11 + 2*Aw22 + 2*tmp8 + tmp3 + tmp7;
3619                                  const double tmp19 = 12*w8*(A_01 - A_10);                                  EM_S[INDEX2(0,7,8)]+=   Aw00 +   Aw11 +   Aw22 + tmp8 + tmp2 + tmp6;
3620                                  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;
3621                                  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;
3622                                  const double tmp22 = 12*w8*(-A_01 + A_10);                                  EM_S[INDEX2(1,2,8)]+= 2*Aw00 + 2*Aw11 -   Aw22 + 2*tmp0 + tmp11 + tmp7;
3623                                  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;
3624                                  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;
3625                                  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;
3626                                  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;
3627                                  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;
3628                                  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;
3629                                  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;
3630                                  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;
3631                                  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;
3632                                  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;
3633                                  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;
3634                                  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;
3635                                  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;
3636                                  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;
3637                                  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;
3638                                  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;
3639                                  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;
3640                                  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;
3641                                  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;
3642                                  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;
3643                                  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;
3644                                  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;
3645                                  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;
3646                                  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;
3647                                  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;
3648                                  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;
3649                                  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;
3650                                  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;
3651                                  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;
3652                                  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;
3653                                  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;
3654                                  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;
3655                                  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;
3656                                  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;
3657                                  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;
3658                                  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;
3659                                  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;
3660                                  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;
3661                                  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;
3662                                  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;
3663                                  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;
3664                                  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;
3665                                  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;
3666                                  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;
3667                                  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;
3668                                  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;
3669                                  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;
3670                                  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;
3671                                  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;
3672                                  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;
3673                                  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;
3674                                  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;
3675                                  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;  
3676                              }                              }
3677                          }                          }
3678                          ///////////////                          ///////////////
# Line 3998  void Brick::assemblePDESingle(Paso_Syste Line 4035  void Brick::assemblePDESingle(Paso_Syste
4035                                  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;
4036                                  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;
4037                              } else { // constant data                              } else { // constant data
4038                                  const double B_0 = B_p[0];                                  const double wB0 = B_p[0]*w53;
4039                                  const double B_1 = B_p[1];                                  const double wB1 = B_p[1]*w51;
4040                                  const double B_2 = B_p[2];                                  const double wB2 = B_p[2]*w50;
4041                                  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;
4042                                  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;
4043                                  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;
4044                                  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;
4045                                  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;
4046                                  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;
4047                                  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;
4048                                  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;
4049                                  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;
4050                                  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;
4051                                  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;
4052                                  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;
4053                                  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;
4054                                  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;
4055                                  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;
4056                                  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;
4057                                  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;
4058                                  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;
4059                                  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;
4060                                  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;
4061                                  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;
4062                                  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;
4063                                  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;
4064                                  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;
4065                                  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;
4066                                  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;
4067                                  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;
4068                                  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;
4069                                  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;
4070                                  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;
4071                                  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;
4072                                  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;
4073                                  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;
4074                                  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;
4075                                  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;
4076                                  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;
4077                                  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;
4078                                  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;
4079                                  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;
4080                                  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;
4081                                  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;
4082                                  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;
4083                                  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;
4084                                  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;
4085                                  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;
4086                                  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;
4087                                  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;
4088                                  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;
4089                                  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;
4090                                  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;
4091                                  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;
4092                                  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;
4093                                  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;
4094                                  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;
4095                                  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;
4096                                  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;
4097                                  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;
4098                                  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;
4099                                  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;
4100                                  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;
4101                                  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;
4102                                  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;
4103                                  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;
4104                                  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;
4105                              }                              }
4106                          }                          }
4107                          ///////////////                          ///////////////
# Line 4427  void Brick::assemblePDESingle(Paso_Syste Line 4464  void Brick::assemblePDESingle(Paso_Syste
4464                                  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;
4465                                  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;
4466                              } else { // constant data                              } else { // constant data
4467                                  const double C_0 = C_p[0];                                  const double wC0 = C_p[0]*w53;
4468                                  const double C_1 = C_p[1];                                  const double wC1 = C_p[1]*w51;
4469                                  const double C_2 = C_p[2];                                  const double wC2 = C_p[2]*w50;
4470                                  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;
4471                                  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;
4472                                  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;
4473                                  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;
4474                                  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;
4475                                  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;
4476                                  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;
4477                                  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;
4478                                  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;
4479                                  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;
4480                                  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;
4481                                  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;
4482                                  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;
4483                                  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;
4484                                  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;
4485                                  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;
4486                                  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;
4487                                  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;
4488                                  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;
4489                                  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;
4490                                  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;
4491                                  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;
4492                                  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;
4493                                  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;
4494                                  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;
4495                                  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;
4496                                  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;
4497                                  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;
4498                                  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;
4499                                  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;
4500                                  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;
4501                                  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;
4502                                  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;
4503                                  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;
4504                                  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;
4505                                  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;
4506                                  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;
4507                                  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;
4508                                  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;
4509                                  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;
4510                                  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;
4511                                  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;
4512                                  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;
4513                                  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;
4514                                  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;
4515                                  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;
4516                                  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;
4517                                  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;
4518                                  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;
4519                                  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;
4520                                  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;
4521                                  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;
4522                                  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;
4523                                  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;
4524                                  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;
4525                                  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;
4526                                  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;
4527                                  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;
4528                                  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;
4529                                  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;
4530                                  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;
4531                                  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;
4532                                  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;
4533                                  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;
4534                              }                              }
4535                          }                          }
4536                          ///////////////                          ///////////////
# Line 4635  void Brick::assemblePDESingle(Paso_Syste Line 4672  void Brick::assemblePDESingle(Paso_Syste
4672                                  EM_S[INDEX2(7,6,8)]+=tmp25 + tmp26 + tmp27;                                  EM_S[INDEX2(7,6,8)]+=tmp25 + tmp26 + tmp27;
4673                                  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;
4674                              } else { // constant data                              } else { // constant data
4675                                  const double D_0 = D_p[0];                                  const double wD0 = 8*D_p[0]*w55;
4676                                  EM_S[INDEX2(0,0,8)]+=64*D_0*w55;                                  EM_S[INDEX2(0,0,8)]+=8*wD0;
4677                                  EM_S[INDEX2(0,1,8)]+=32*D_0*w55;                                  EM_S[INDEX2(0,1,8)]+=4*wD0;
4678                                  EM_S[INDEX2(0,2,8)]+=32*D_0*w55;                                  EM_S[INDEX2(0,2,8)]+=4*wD0;
4679                                  EM_S[INDEX2(0,3,8)]+=16*D_0*w55;                                  EM_S[INDEX2(0,3,8)]+=2*wD0;
4680                                  EM_S[INDEX2(0,4,8)]+=32*D_0*w55;                                  EM_S[INDEX2(0,4,8)]+=4*wD0;
4681                                  EM_S[INDEX2(0,5,8)]+=16*D_0*w55;                                  EM_S[INDEX2(0,5,8)]+=2*wD0;
4682                                  EM_S[INDEX2(0,6,8)]+=16*D_0*w55;                                  EM_S[INDEX2(0,6,8)]+=2*wD0;
4683                                  EM_S[INDEX2(0,7,8)]+=8*D_0*w55;                                  EM_S[INDEX2(0,7,8)]+=wD0;
4684                                  EM_S[INDEX2(1,0,8)]+=32*D_0*w55;                                  EM_S[INDEX2(1,0,8)]+=4*wD0;
4685                                  EM_S[INDEX2(1,1,8)]+=64*D_0*w55;                                  EM_S[INDEX2(1,1,8)]+=8*wD0;
4686                                  EM_S[INDEX2(1,2,8)]+=16*D_0*w55;                                  EM_S[INDEX2(1,2,8)]+=2*wD0;
4687                                  EM_S[INDEX2(1,3,8)]+=32*D_0*w55;                                  EM_S[INDEX2(1,3,8)]+=4*wD0;
4688                                  EM_S[INDEX2(1,4,8)]+=16*D_0*w55;                                  EM_S[INDEX2(1,4,8)]+=2*wD0;
4689                                  EM_S[INDEX2(1,5,8)]+=32*D_0*w55;                                  EM_S[INDEX2(1,5,8)]+=4*wD0;
4690                                  EM_S[INDEX2(1,6,8)]+=8*D_0*w55;                                  EM_S[INDEX2(1,6,8)]+=wD0;
4691                                  EM_S[INDEX2(1,7,8)]+=16*D_0*w55;                                  EM_S[INDEX2(1,7,8)]+=2*wD0;
4692                                  EM_S[INDEX2(2,0,8)]+=32*D_0*w55;                                  EM_S[INDEX2(2,0,8)]+=4*wD0;
4693                                  EM_S[INDEX2(2,1,8)]+=16*D_0*w55;                                  EM_S[INDEX2(2,1,8)]+=2*wD0;
4694                                  EM_S[INDEX2(2,2,8)]+=64*D_0*w55;                                  EM_S[INDEX2(2,2,8)]+=8*wD0;
4695                                  EM_S[INDEX2(2,3,8)]+=32*D_0*w55;                                  EM_S[INDEX2(2,3,8)]+=4*wD0;
4696                                  EM_S[INDEX2(2,4,8)]+=16*D_0*w55;                                  EM_S[INDEX2(2,4,8)]+=2*wD0;
4697                                  EM_S[INDEX2(2,5,8)]+=8*D_0*w55;                                  EM_S[INDEX2(2,5,8)]+=wD0;
4698                                  EM_S[INDEX2(2,6,8)]+=32*D_0*w55;                                  EM_S[INDEX2(2,6,8)]+=4*wD0;
4699                                  EM_S[INDEX2(2,7,8)]+=16*D_0*w55;                                  EM_S[INDEX2(2,7,8)]+=2*wD0;
4700                                  EM_S[INDEX2(3,0,8)]+=16*D_0*w55;                                  EM_S[INDEX2(3,0,8)]+=2*wD0;
4701                                  EM_S[INDEX2(3,1,8)]+=32*D_0*w55;                                  EM_S[INDEX2(3,1,8)]+=4*wD0;
4702                                  EM_S[INDEX2(3,2,8)]+=32*D_0*w55;                                  EM_S[INDEX2(3,2,8)]+=4*wD0;
4703                                  EM_S[INDEX2(3,3,8)]+=64*D_0*w55;                                  EM_S[INDEX2(3,3,8)]+=8*wD0;
4704                                  EM_S[INDEX2(3,4,8)]+=8*D_0*w55;                                  EM_S[INDEX2(3,4,8)]+=wD0;
4705                                  EM_S[INDEX2(3,5,8)]+=16*D_0*w55;                                  EM_S[INDEX2(3,5,8)]+=2*wD0;
4706                                  EM_S[INDEX2(3,6,8)]+=16*D_0*w55;                                  EM_S[INDEX2(3,6,8)]+=2*wD0;
4707                                  EM_S[INDEX2(3,7,8)]+=32*D_0*w55;                                  EM_S[INDEX2(3,7,8)]+=4*wD0;
4708                                  EM_S[INDEX2(4,0,8)]+=32*D_0*w55;                                  EM_S[INDEX2(4,0,8)]+=4*wD0;
4709                                  EM_S[INDEX2(4,1,8)]+=16*D_0*w55;                                  EM_S[INDEX2(4,1,8)]+=2*wD0;
4710                                  EM_S[INDEX2(4,2,8)]+=16*D_0*w55;                                  EM_S[INDEX2(4,2,8)]+=2*wD0;
4711                                  EM_S[INDEX2(4,3,8)]+=8*D_0*w55;                                  EM_S[INDEX2(4,3,8)]+=wD0;
4712                                  EM_S[INDEX2(4,4,8)]+=64*D_0*w55;                                  EM_S[INDEX2(4,4,8)]+=8*wD0;
4713                                  EM_S[INDEX2(4,5,8)]+=32*D_0*w55;                                  EM_S[INDEX2(4,5,8)]+=4*wD0;
4714                                  EM_S[INDEX2(4,6,8)]+=32*D_0*w55;                                  EM_S[INDEX2(4,6,8)]+=4*wD0;
4715                                  EM_S[INDEX2(4,7,8)]+=16*D_0*w55;                                  EM_S[INDEX2(4,7,8)]+=2*wD0;
4716                                  EM_S[INDEX2(5,0,8)]+=16*D_0*w55;                                  EM_S[INDEX2(5,0,8)]+=2*wD0;
4717                                  EM_S[INDEX2(5,1,8)]+=32*D_0*w55;                                  EM_S[INDEX2(5,1,8)]+=4*wD0;
4718                                  EM_S[INDEX2(5,2,8)]+=8*D_0*w55;                                  EM_S[INDEX2(5,2,8)]+=wD0;
4719                                  EM_S[INDEX2(5,3,8)]+=16*D_0*w55;                                  EM_S[INDEX2(5,3,8)]+=2*wD0;
4720                                  EM_S[INDEX2(5,4,8)]+=32*D_0*w55;                                  EM_S[INDEX2(5,4,8)]+=4*wD0;
4721                                  EM_S[INDEX2(5,5,8)]+=64*D_0*w55;                                  EM_S[INDEX2(5,5,8)]+=8*wD0;
4722                                  EM_S[INDEX2(5,6,8)]+=16*D_0*w55;                                  EM_S[INDEX2(5,6,8)]+=2*wD0;
4723                                  EM_S[INDEX2(5,7,8)]+=32*D_0*w55;                                  EM_S[INDEX2(5,7,8)]+=4*wD0;
4724                                  EM_S[INDEX2(6,0,8)]+=16*D_0*w55;                                  EM_S[INDEX2(6,0,8)]+=2*wD0;
4725                                  EM_S[INDEX2(6,1,8)]+=8*D_0*w55;                                  EM_S[INDEX2(6,1,8)]+=wD0;
4726                                  EM_S[INDEX2(6,2,8)]+=32*D_0*w55;                                  EM_S[INDEX2(6,2,8)]+=4*wD0;
4727                                  EM_S[INDEX2(6,3,8)]+=16*D_0*w55;                                  EM_S[INDEX2(6,3,8)]+=2*wD0;
4728                                  EM_S[INDEX2(6,4,8)]+=32*D_0*w55;                                  EM_S[INDEX2(6,4,8)]+=4*wD0;
4729                                  EM_S[INDEX2(6,5,8)]+=16*D_0*w55;                                  EM_S[INDEX2(6,5,8)]+=2*wD0;
4730                                  EM_S[INDEX2(6,6,8)]+=64*D_0*w55;                                  EM_S[INDEX2(6,6,8)]+=8*wD0;
4731                                  EM_S[INDEX2(6,7,8)]+=32*D_0*w55;                                  EM_S[INDEX2(6,7,8)]+=4*wD0;
4732                                  EM_S[INDEX2(7,0,8)]+=8*D_0*w55;                                  EM_S[INDEX2(7,0,8)]+=wD0;
4733                                  EM_S[INDEX2(7,1,8)]+=16*D_0*w55;                                  EM_S[INDEX2(7,1,8)]+=2*wD0;
4734                                  EM_S[INDEX2(7,2,8)]+=16*D_0*w55;                                  EM_S[INDEX2(7,2,8)]+=2*wD0;
4735                                  EM_S[INDEX2(7,3,8)]+=32*D_0*w55;                                  EM_S[INDEX2(7,3,8)]+=4*wD0;
4736                                  EM_S[INDEX2(7,4,8)]+=16*D_0*w55;                                  EM_S[INDEX2(7,4,8)]+=2*wD0;
4737                                  EM_S[INDEX2(7,5,8)]+=32*D_0*w55;                                  EM_S[INDEX2(7,5,8)]+=4*wD0;
4738                                  EM_S[INDEX2(7,6,8)]+=32*D_0*w55;                                  EM_S[INDEX2(7,6,8)]+=4*wD0;
4739                                  EM_S[INDEX2(7,7,8)]+=64*D_0*w55;                                  EM_S[INDEX2(7,7,8)]+=8*wD0;
4740                              }                              }
4741                          }                          }
4742                          ///////////////                          ///////////////
# Line 4802  void Brick::assemblePDESingle(Paso_Syste Line 4839  void Brick::assemblePDESingle(Paso_Syste
4839                                  EM_F[6]+=tmp0 + tmp27 + tmp43 + tmp48 + tmp49 + tmp50 + tmp51 + tmp52 + tmp53;                                  EM_F[6]+=tmp0 + tmp27 + tmp43 + tmp48 + tmp49 + tmp50 + tmp51 + tmp52 + tmp53;
4840                                  EM_F[7]+=tmp19 + tmp36 + tmp54 + tmp55 + tmp56 + tmp57 + tmp58 + tmp59 + tmp9;                                  EM_F[7]+=tmp19 + tmp36 + tmp54 + tmp55 + tmp56 + tmp57 + tmp58 + tmp59 + tmp9;
4841                              } else { // constant data                              } else { // constant data
4842                                  const double X_0 = X_p[0];                                  const double wX0 = 12*X_p[0]*w66;
4843                                  const double X_1 = X_p[1];                                  const double wX1 = 12*X_p[1]*w64;
4844                                  const double X_2 = X_p[2];                                  const double wX2 = 18*X_p[2]*w50;
4845                                  EM_F[0]+=18*X_0*w53 + 12*X_1*w64 + 12*X_2*w65;                                  EM_F[0]+= wX0 + wX1 - wX2;
4846                                  EM_F[1]+=-18*X_0*w53 + 12*X_1*w64 + 12*X_2*w65;                                  EM_F[1]+=-wX0 + wX1 - wX2;
4847                                  EM_F[2]+=18*X_0*w53 - 12*X_1*w64 + 12*X_2*w65;                                  EM_F[2]+= wX0 - wX1 - wX2;
4848                                  EM_F[3]+=-18*X_0*w53 - 12*X_1*w64 + 12*X_2*w65;                                  EM_F[3]+=-wX0 - wX1 - wX2;
4849                                  EM_F[4]+=18*X_0*w53 + 12*X_1*w64 - 12*X_2*w65;                                  EM_F[4]+= wX0 + wX1 + wX2;
4850                                  EM_F[5]+=-18*X_0*w53 + 12*X_1*w64 - 12*X_2*w65;                                  EM_F[5]+=-wX0 + wX1 + wX2;
4851                                  EM_F[6]+=18*X_0*w53 - 12*X_1*w64 - 12*X_2*w65;                                  EM_F[6]+= wX0 - wX1 + wX2;
4852                                  EM_F[7]+=-18*X_0*w53 - 12*X_1*w64 - 12*X_2*w65;                                  EM_F[7]+=-wX0 - wX1 + wX2;
4853                              }                              }
4854                          }                          }
4855                          ///////////////                          ///////////////
# Line 4855  void Brick::assemblePDESingle(Paso_Syste Line 4892  void Brick::assemblePDESingle(Paso_Syste
4892                                  EM_F[6]+=Y_1*w73 + Y_6*w70 + tmp12 + tmp13;                                  EM_F[6]+=Y_1*w73 + Y_6*w70 + tmp12 + tmp13;
4893                                  EM_F[7]+=Y_0*w73 + Y_7*w70 + tmp14 + tmp15;                                  EM_F[7]+=Y_0*w73 + Y_7*w70 + tmp14 + tmp15;
4894                              } else { // constant data                              } else { // constant data
4895                                  const double Y_0 = Y_p[0];                                  EM_F[0]+=216*Y_p[0]*w55;
4896                                  EM_F[0]+=216*Y_0*w55;                                  EM_F[1]+=216*Y_p[0]*w55;
4897                                  EM_F[1]+=216*Y_0*w55;                                  EM_F[2]+=216*Y_p[0]*w55;
4898                                  EM_F[2]+=216*Y_0*w55;                                  EM_F[3]+=216*Y_p[0]*w55;
4899                                  EM_F[3]+=216*Y_0*w55;                                  EM_F[4]+=216*Y_p[0]*w55;
4900                                  EM_F[4]+=216*Y_0*w55;                                  EM_F[5]+=216*Y_p[0]*w55;
4901                                  EM_F[5]+=216*Y_0*w55;                                  EM_F[6]+=216*Y_p[0]*w55;
4902                                  EM_F[6]+=216*Y_0*w55;                                  EM_F[7]+=216*Y_p[0]*w55;
                                 EM_F[7]+=216*Y_0*w55;  
4903                              }                              }
4904                          }                          }
                         /* GENERATOR SNIP_PDE_SINGLE BOTTOM */  
4905    
4906                          // 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)
4907                          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 4920  void Brick::assemblePDESingleReduced(Pas
4920          const escript::Data& C, const escript::Data& D,          const escript::Data& C, const escript::Data& D,
4921          const escript::Data& X, const escript::Data& Y) const          const escript::Data& X, const escript::Data& Y) const
4922  {  {
4923      const double w6 = 0.0625*m_dx[0];      const double w6 = m_dx[0]/16;
4924      const double w5 = 0.0625*m_dx[1];      const double w5 = m_dx[1]/16;
4925      const double w1 = 0.0625*m_dx[2];      const double w1 = m_dx[2]/16;
4926      const double w14 = 0.03125*m_dx[0]*m_dx[1];      const double w14 = m_dx[0]*m_dx[1]/32;
4927      const double w13 = 0.03125*m_dx[0]*m_dx[2];      const double w13 = m_dx[0]*m_dx[2]/32;
4928      const double w12 = 0.03125*m_dx[1]*m_dx[2];      const double w12 = m_dx[1]*m_dx[2]/32;
4929      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;
4930      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]);
4931      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]);
4932      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]);
4933    
4934      rhs.requireWrite();      rhs.requireWrite();
4935  #pragma omp parallel  #pragma omp parallel
# Line 5267  void Brick::assemblePDESystem(Paso_Syste Line 5302  void Brick::assemblePDESystem(Paso_Syste
5302          numComp=mat->logical_col_block_size;          numComp=mat->logical_col_block_size;
5303      }      }
5304    
5305      /* GENERATOR SNIP_PDE_SYSTEM_PRE TOP */      const double SQRT3 = 1.73205080756887719318;
5306      const double w0 = 0.00093037914038584273081*m_dx[1]*m_dx[2]/m_dx[0];      const double w10 = -m_dx[0]/288;
5307      const double w1 = 0.00093037914038584273081*m_dx[2];      const double w12 = w10*(-SQRT3 - 2);
5308      const double w2 = -0.000249294339321148701*m_dx[1];      const double w6 = w10*(SQRT3 - 2);
5309      const double w3 = 0.00093037914038584273081*m_dx[0]*m_dx[2]/m_dx[1];      const double w18 = w10*(-4*SQRT3 - 7);
5310      const double w4 = -0.000249294339321148701*m_dx[0];      const double w4 = w10*(-4*SQRT3 + 7);
5311      const double w5 = 0.00093037914038584273081*m_dx[1];      const double w11 = m_dx[1]/288;
5312      const double w6 = 0.00093037914038584273081*m_dx[0];      const double w15 = w11*(SQRT3 + 2);
5313      const double w7 = -0.000249294339321148701*m_dx[0]*m_dx[1]/m_dx[2];      const double w5 = w11*(-SQRT3 + 2);
5314      const double w8 = 0.0034722222222222222222*m_dx[2];      const double w2 = w11*(4*SQRT3 - 7);
5315      const double w9 = 0.012958509748503046158*m_dx[0]*m_dx[2]/m_dx[1];      const double w17 = w11*(4*SQRT3 + 7);
5316      const double w10 = -0.0034722222222222222222*m_dx[0];      const double w8 = m_dx[2]/288;
5317      const double w11 = 0.0034722222222222222222*m_dx[1];      const double w16 = w8*(SQRT3 + 2);
5318      const double w12 = 0.012958509748503046158*m_dx[0];      const double w1 = w8*(-SQRT3 + 2);
5319      const double w13 = -0.0034722222222222222222*m_dx[0]*m_dx[1]/m_dx[2];      const double w20 = w8*(4*SQRT3 - 7);
5320      const double w14 = 0.012958509748503046158*m_dx[1]*m_dx[2]/m_dx[0];      const double w21 = w8*(-4*SQRT3 - 7);
5321      const double w15 = 0.012958509748503046158*m_dx[1];      const double w54 = -m_dx[0]*m_dx[1]/72;
5322      const double w16 = 0.012958509748503046158*m_dx[2];      const double w68 = -m_dx[0]*m_dx[1]/48;
5323      const double w17 = 0.04836181677178996241*m_dx[1];      const double w38 = w68*(-SQRT3 - 3)/36;
5324      const double w18 = 0.04836181677178996241*m_dx[0];      const double w45 = w68*(SQRT3 - 3)/36;
5325      const double w19 = -0.04836181677178996241*m_dx[0]*m_dx[1]/m_dx[2];      const double w35 = w68*(5*SQRT3 - 9)/36;
5326      const double w20 = -0.000249294339321148701*m_dx[2];      const double w46 = w68*(-5*SQRT3 - 9)/36;
5327      const double w21 = -0.04836181677178996241*m_dx[2];      const double w43 = w68*(-19*SQRT3 - 33)/36;
5328      const double w22 = -0.0034722222222222222222*m_dx[0]*m_dx[2]/m_dx[1];      const double w44 = w68*(19*SQRT3 - 33)/36;
5329      const double w23 = 0.00093037914038584273081*m_dx[0]*m_dx[1]/m_dx[2];      const double w66 = w68*(SQRT3 + 2);
5330      const double w24 = -0.04836181677178996241*m_dx[0]*m_dx[2]/m_dx[1];      const double w70 = w68*(-SQRT3 + 2);
5331      const double w25 = 0.012958509748503046158*m_dx[0]*m_dx[1]/m_dx[2];      const double w56 = -m_dx[0]*m_dx[2]/72;
5332      const double w26 = -0.000249294339321148701*m_dx[0]*m_dx[2]/m_dx[1];      const double w67 = -m_dx[0]*m_dx[2]/48;
5333      const double w27 = -0.0034722222222222222222*m_dx[1]*m_dx[2]/m_dx[0];      const double w37 = w67*(-SQRT3 - 3)/36;
5334      const double w28 = -0.000249294339321148701*m_dx[1]*m_dx[2]/m_dx[0];      const double w40 = w67*(SQRT3 - 3)/36;
5335      const double w29 = -0.04836181677178996241*m_dx[1]*m_dx[2]/m_dx[0];      const double w34 = w67*(5*SQRT3 - 9)/36;
5336      const double w30 = 0.0001966122466178319053*m_dx[1]*m_dx[2];      const double w42 = w67*(-5*SQRT3 - 9)/36;
5337      const double w31 = 0.0001966122466178319053*m_dx[0]*m_dx[2];      const double w47 = w67*(19*SQRT3 + 33)/36;
5338      const double w32 = 0.0001966122466178319053*m_dx[0]*m_dx[1];      const double w48 = w67*(-19*SQRT3 + 33)/36;
5339      const double w33 = 0.0007337668937680108255*m_dx[1]*m_dx[2];      const double w65 = w67*(SQRT3 + 2);
5340      const double w34 = 0.0027384553284542113967*m_dx[0]*m_dx[2];      const double w71 = w67*(-SQRT3 + 2);
5341      const double w35 = 0.0027384553284542113967*m_dx[0]*m_dx[1];      const double w55 = -m_dx[1]*m_dx[2]/72;
5342      const double w36 = 0.0027384553284542113967*m_dx[1]*m_dx[2];      const double w69 = -m_dx[1]*m_dx[2]/48;
5343      const double w37 = 0.0007337668937680108255*m_dx[0]*m_dx[2];      const double w36 = w69*(SQRT3 - 3)/36;
5344      const double w38 = 0.010220054420048834761*m_dx[1]*m_dx[2];      const double w39 = w69*(-SQRT3 - 3)/36;
5345      const double w39 = 0.010220054420048834761*m_dx[0]*m_dx[2];      const double w33 = w69*(5*SQRT3 - 9)/36;
5346      const double w40 = 0.038141762351741127649*m_dx[0]*m_dx[1];      const double w41 = w69*(-5*SQRT3 - 9)/36;
5347      const double w41 = 0.000052682092703316795698*m_dx[0]*m_dx[1];      const double w49 = w69*(19*SQRT3 - 33)/36;
5348      const double w42 = 0.0007337668937680108255*m_dx[0]*m_dx[1];      const double w50 = w69*(-19*SQRT3 - 33)/36;
5349      const double w43 = 0.010220054420048834761*m_dx[0]*m_dx[1];      const double w64 = w69*(SQRT3 + 2);
5350      const double w44 = -0.038141762351741127649*m_dx[0]*m_dx[2];      const double w72 = w69*(-SQRT3 + 2);
5351      const double w45 = -0.000052682092703316795698*m_dx[0]*m_dx[2];      const double w58 = m_dx[0]*m_dx[1]*m_dx[2]/1728;
5352      const double w46 = 0.000052682092703316795698*m_dx[1]*m_dx[2];      const double w60 = w58*(-SQRT3 + 2);
5353      const double w47 = 0.038141762351741127649*m_dx[1]*m_dx[2];      const double w61 = w58*(SQRT3 + 2);
5354      const double w48 = 0.027777777777777777778*m_dx[1]*m_dx[2];      const double w57 = w58*(-4*SQRT3 + 7);
5355      const double w49 = 0.027777777777777777778*m_dx[0]*m_dx[2];      const double w59 = w58*(4*SQRT3 + 7);
5356      const double w50 = 0.055555555555555555556*m_dx[0]*m_dx[1];      const double w62 = w58*(15*SQRT3 + 26);
5357      const double w51 = -0.055555555555555555556*m_dx[0]*m_dx[2];      const double w63 = w58*(-15*SQRT3 + 26);
5358      const double w52 = -0.027777777777777777778*m_dx[0]*m_dx[1];      const double w75 = w58*6*(SQRT3 + 3);
5359      const double w53 = -0.013888888888888888889*m_dx[1]*m_dx[2];      const double w76 = w58*6*(-SQRT3 + 3);
5360      const double w54 = 0.0000415490565535247835*m_dx[0]*m_dx[1]*m_dx[2];      const double w74 = w58*6*(5*SQRT3 + 9);
5361      const double w55 = 0.0005787037037037037037*m_dx[0]*m_dx[1]*m_dx[2];      const double w77 = w58*6*(-5*SQRT3 + 9);
5362      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]);
5363      const double w57 = 0.0001550631900643071218*m_dx[0]*m_dx[1]*m_dx[2];      const double w19 = w13*(4*SQRT3 + 7);
5364      const double w58 = 0.002159751624750507693*m_dx[0]*m_dx[1]*m_dx[2];      const double w7 = w13*(-4*SQRT3 + 7);
5365      const double w59 = 0.03008145955644280058*m_dx[0]*m_dx[1]*m_dx[2];      const double w23 = w13*(+SQRT3 - 2);
5366      const double w60 = 0.000011133036149792012194*m_dx[0]*m_dx[1]*m_dx[2];      const double w25 = w13*(-SQRT3 - 2);
5367      const double w61 = -0.077751058491018276948*m_dx[1]*m_dx[2];      const double w22 = -m_dx[0]*m_dx[2]/(288*m_dx[1]);
5368      const double w62 = -0.077751058491018276948*m_dx[0]*m_dx[2];      const double w3 = w22*(SQRT3 - 2);
5369      const double w63 = -0.077751058491018276948*m_dx[0]*m_dx[1];      const double w9 = w22*(-SQRT3 - 2);
5370      const double w64 = -0.020833333333333333333*m_dx[0]*m_dx[2];      const double w24 = w22*(4*SQRT3 + 7);
5371      const double w65 = -0.020833333333333333333*m_dx[0]*m_dx[1];      const double w26 = w22*(-4*SQRT3 + 7);
5372      const double w66 = -0.020833333333333333333*m_dx[1]*m_dx[2];      const double w27 = -m_dx[1]*m_dx[2]/(288*m_dx[0]);
5373      const double w67 = -0.0055822748423150563848*m_dx[0]*m_dx[1];      const double w0 = w27*(SQRT3 - 2);
5374      const double w68 = -0.0055822748423150563848*m_dx[0]*m_dx[2];      const double w14 = w27*(-SQRT3 - 2);
5375      const double w69 = -0.0055822748423150563848*m_dx[1]*m_dx[2];      const double w28 = w27*(-4*SQRT3 + 7);
5376      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 */  
5377    
5378      rhs.requireWrite();      rhs.requireWrite();
5379  #pragma omp parallel  #pragma omp parallel
# Line 5357  void Brick::assemblePDESystem(Paso_Syste Line 5388  void Brick::assemblePDESystem(Paso_Syste
5388                          vector<double> EM_S(8*8*numEq*numComp, 0);                          vector<double> EM_S(8*8*numEq*numComp, 0);
5389                          vector<double> EM_F(8*numEq, 0);                          vector<double> EM_F(8*numEq, 0);
5390                          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 */  
5391                          ///////////////                          ///////////////
5392                          // process A //                          // process A //
5393                          ///////////////                          ///////////////
# Line 6018  void Brick::assemblePDESystem(Paso_Syste Line 6048  void Brick::assemblePDESystem(Paso_Syste
6048                              } else { // constant data                              } else { // constant data
6049                                  for (index_t k=0; k<numEq; k++) {                                  for (index_t k=0; k<numEq; k++) {
6050                                      for (index_t m=0; m<numComp; m++) {                                      for (index_t m=0; m<numComp; m++) {
6051                                          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;
6052                                          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;
6053                                          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;
6054                                          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;
6055                                          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;
6056                                          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;
6057                                          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;
6058                                          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;
6059                                          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;
6060                                          const double tmp0 = 24*w11*(-A_02 + A_20);                                          const double tmp0 = Aw01 + Aw10;
6061                                          const double tmp1 = 24*w10*(A_12 - A_21);                                          const double tmp1 = Aw01 - Aw10;
6062                                          const double tmp2 = 12*w8*(A_01 + A_10);                                          const double tmp2 = Aw02 + Aw20;
6063                                          const double tmp3 = 12*w11*(-A_02 + A_20);                                          const double tmp3 = Aw02 - Aw20;
6064                                          const double tmp4 = 12*w10*(A_12 - A_21);                                          const double tmp4 = Aw12 + Aw21;
6065                                          const double tmp5 = 24*w8*(-A_01 - A_10);                                          const double tmp5 = Aw12 - Aw21;
6066                                          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;
6067                                          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;
6068                                          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;
6069                                          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;
6070                                          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;
6071                                          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;
6072                                          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;
6073                                          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;
6074                                          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;
6075                                          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;
6076                                          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;
6077                                          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;
6078                                          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;
6079                                          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;
6080                                          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;
6081                                          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;
6082                                          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;
6083                                          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;
6084                                          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;
6085                                          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;
6086                                          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;
6087                                          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;
6088                                          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;
6089                                          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;
6090                                          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;
6091                                          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;
6092                                          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;
6093                                          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;
6094                                          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;
6095                                          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;
6096                                          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;
6097                                          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;
6098                                          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;
6099                                          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;
6100                                          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;
6101                                          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;
6102                                          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;
6103                                          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;
6104                                          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;
6105                                          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;
6106                                          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;
6107                                          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;
6108                                          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;
6109                                          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;
6110                                          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;
6111                                          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;
6112                                          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;
6113                                          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;
6114                                          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;
6115                                          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;
6116                                          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;
6117                                          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;
6118                                          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;
6119                                          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;
6120                                          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;
6121                                          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;
6122                                          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;
6123                                          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;
6124                                          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;
6125                                          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;
6126                                          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;
6127                                          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;
6128                                          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;
6129                                          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;  
6130                                      }                                      }
6131                                  }                                  }
6132                              }                              }
# Line 6152  void Brick::assemblePDESystem(Paso_Syste Line 6164  void Brick::assemblePDESystem(Paso_Syste
6164                                          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)];
6165                                          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)];
6166                                          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)];
6167                                          const double tmp0 = w38*(B_0_3 + B_0_7);                                          const double tmp0 = w38*(B_2_1 + B_2_2);
6168                                          const double tmp1 = w31*(B_1_0 + B_1_4);                                          const double tmp1 = w42*(B_1_3 + B_1_7);
6169                                          const double tmp2 = w42*(B_2_5 + B_2_6);                                          const double tmp2 = w41*(B_0_3 + B_0_7);
6170                                          const double tmp3 = w35*(B_2_1 + B_2_2);                                          const double tmp3 = w37*(B_1_1 + B_1_5);
6171                                          const double tmp4 = w37*(B_1_2 + B_1_6);                                          const double tmp4 = w39*(B_0_2 + B_0_6);
6172                                          const double tmp5 = w39*(B_1_3 + B_1_7);                                          const double tmp5 = w45*(B_2_5 + B_2_6);
6173                                          const double tmp6 = w36*(B_0_2 + B_0_6);                                          const double tmp6 = w36*(B_0_1 + B_0_5);
6174                                          const double tmp7 = w33*(B_0_1 + B_0_5);                                          const double tmp7 = w40*(B_1_2 + B_1_6);
6175                                          const double tmp8 = w30*(B_0_0 + B_0_4);                                          const double tmp8 = w33*(B_0_0 + B_0_4);
6176                                          const double tmp9 = w34*(B_1_1 + B_1_5);                                          const double tmp9 = w34*(B_1_0 + B_1_4);
6177                                          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);
6178                                          const double tmp11 = w31*(-B_1_0 - B_1_1);                                          const double tmp11 = w42*(-B_1_6 - B_1_7);
6179                                          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);
6180                                          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);
6181                                          const double tmp14 = w37*(-B_1_2 - B_1_3);                                          const double tmp14 = w39*(-B_0_4 - B_0_6);
6182                                          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);
6183                                          const double tmp16 = w36*(-B_0_4 - B_0_6);                                          const double tmp16 = w36*(-B_0_1 - B_0_3);
6184                                          const double tmp17 = w33*(-B_0_1 - B_0_3);                                          const double tmp17 = w40*(-B_1_2 - B_1_3);
6185                                          const double tmp18 = w30*(-B_0_0 - B_0_2);                                          const double tmp18 = w33*(-B_0_0 - B_0_2);
6186                                          const double tmp19 = w34*(-B_1_4 - B_1_5);                                          const double tmp19 = w34*(-B_1_0 - B_1_1);
6187                                          const double tmp20 = w38*(B_0_1 + B_0_3);                                          const double tmp20 = w38*(-B_2_5 - B_2_7);
6188                                          const double tmp21 = w42*(-B_2_0 - B_2_2);                                          const double tmp21 = w35*(-B_2_4 - B_2_6);
6189                                          const double tmp22 = w35*(-B_2_5 - B_2_7);                                          const double tmp22 = w41*(B_0_1 + B_0_3);
6190                                          const double tmp23 = w37*(-B_1_0 - B_1_5);                                          const double tmp23 = w37*(-B_1_2 - B_1_7);
6191                                          const double tmp24 = w32*(-B_2_4 - B_2_6);                                          const double tmp24 = w39*(B_0_0 + B_0_2);
6192                                          const double tmp25 = w36*(B_0_0 + B_0_2);                                          const double tmp25 = w45*(-B_2_0 - B_2_2);
6193                                          const double tmp26 = w33*(B_0_5 + B_0_7);                                          const double tmp26 = w36*(B_0_5 + B_0_7);
6194                                          const double tmp27 = w30*(B_0_4 + B_0_6);                                          const double tmp27 = w40*(-B_1_0 - B_1_5);
6195                                          const double tmp28 = w43*(-B_2_1 - B_2_3);                                          const double tmp28 = w33*(B_0_4 + B_0_6);
6196                                          const double tmp29 = w34*(-B_1_2 - B_1_7);                                          const double tmp29 = w46*(-B_2_1 - B_2_3);
6197                                          const double tmp30 = w38*(-B_0_4 - B_0_6);                                          const double tmp30 = w38*(B_2_0 + B_2_2);
6198                                          const double tmp31 = w42*(B_2_5 + B_2_7);                                          const double tmp31 = w35*(B_2_1 + B_2_3);
6199                                          const double tmp32 = w35*(B_2_0 + B_2_2);                                          const double tmp32 = w41*(-B_0_4 - B_0_6);
6200                                          const double tmp33 = w37*(B_1_2 + B_1_7);                                          const double tmp33 = w37*(B_1_0 + B_1_5);
6201                                          const double tmp34 = w32*(B_2_1 + B_2_3);                                          const double tmp34 = w39*(-B_0_5 - B_0_7);
6202                                          const double tmp35 = w36*(-B_0_5 - B_0_7);                                          const double tmp35 = w45*(B_2_5 + B_2_7);
6203                                          const double tmp36 = w33*(-B_0_0 - B_0_2);                                          const double tmp36 = w36*(-B_0_0 - B_0_2);
6204                                          const double tmp37 = w30*(-B_0_1 - B_0_3);                                          const double tmp37 = w40*(B_1_2 + B_1_7);
6205                                          const double tmp38 = w43*(B_2_4 + B_2_6);                                          const double tmp38 = w33*(-B_0_1 - B_0_3);
6206                                          const double tmp39 = w34*(B_1_0 + B_1_5);                                          const double tmp39 = w46*(B_2_4 + B_2_6);
6207                                          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);
6208                                          const double tmp41 = w31*(B_1_6 + B_1_7);                                          const double tmp41 = w42*(B_1_0 + B_1_1);
6209                                          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);
6210                                          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);
6211                                          const double tmp44 = w37*(B_1_4 + B_1_5);                                          const double tmp44 = w39*(B_0_1 + B_0_3);
6212                                          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);
6213                                          const double tmp46 = w36*(B_0_1 + B_0_3);                                          const double tmp46 = w36*(B_0_4 + B_0_6);
6214                                          const double tmp47 = w33*(B_0_4 + B_0_6);                                          const double tmp47 = w40*(B_1_4 + B_1_5);
6215                                          const double tmp48 = w30*(B_0_5 + B_0_7);                                          const double tmp48 = w33*(B_0_5 + B_0_7);
6216                                          const double tmp49 = w34*(B_1_2 + B_1_3);                                          const double tmp49 = w34*(B_1_6 + B_1_7);
6217                                          const double tmp50 = w31*(-B_1_2 - B_1_3);                                          const double tmp50 = w38*(B_2_0 + B_2_1);
6218                                          const double tmp51 = w42*(B_2_6 + B_2_7);                                          const double tmp51 = w42*(-B_1_4 - B_1_5);
6219                                          const double tmp52 = w35*(B_2_0 + B_2_1);                                          const double tmp52 = w35*(B_2_2 + B_2_3);
6220                                          const double tmp53 = w37*(-B_1_0 - B_1_1);                                          const double tmp53 = w37*(-B_1_6 - B_1_7);
6221                                          const double tmp54 = w32*(B_2_2 + B_2_3);                                          const double tmp54 = w39*(B_0_0 + B_0_6);
6222                                          const double tmp55 = w39*(-B_1_4 - B_1_5);                                          const double tmp55 = w45*(B_2_6 + B_2_7);
6223                                          const double tmp56 = w36*(B_0_0 + B_0_6);                                          const double tmp56 = w36*(B_0_1 + B_0_7);
6224                                          const double tmp57 = w33*(B_0_1 + B_0_7);                                          const double tmp57 = w40*(-B_1_0 - B_1_1);
6225                                          const double tmp58 = w43*(B_2_4 + B_2_5);                                          const double tmp58 = w46*(B_2_4 + B_2_5);
6226                                          const double tmp59 = w34*(-B_1_6 - B_1_7);                                          const double tmp59 = w34*(-B_1_2 - B_1_3);
6227                                          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);
6228                                          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);
6229                                          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);
6230                                          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);
6231                                          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);
6232                                          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);
6233                                          const double tmp66 = w38*(B_0_4 + B_0_6);                                          const double tmp66 = w41*(B_0_4 + B_0_6);
6234                                          const double tmp67 = w36*(B_0_5 + B_0_7);                                          const double tmp67 = w39*(B_0_5 + B_0_7);
6235                                          const double tmp68 = w33*(B_0_0 + B_0_2);                                          const double tmp68 = w36*(B_0_0 + B_0_2);
6236                                          const double tmp69 = w30*(B_0_1 + B_0_3);                                          const double tmp69 = w33*(B_0_1 + B_0_3);
6237                                          const double tmp70 = w38*(-B_0_2 - B_0_6);                                          const double tmp70 = w38*(-B_2_4 - B_2_7);
6238                                          const double tmp71 = w31*(B_1_1 + B_1_5);                                          const double tmp71 = w42*(B_1_2 + B_1_6);
6239                                          const double tmp72 = w42*(-B_2_0 - B_2_3);                                          const double tmp72 = w41*(-B_0_2 - B_0_6);
6240                                          const double tmp73 = w35*(-B_2_4 - B_2_7);                                          const double tmp73 = w37*(B_1_0 + B_1_4);
6241                                          const double tmp74 = w37*(B_1_3 + B_1_7);                                          const double tmp74 = w39*(-B_0_3 - B_0_7);
6242                                          const double tmp75 = w39*(B_1_2 + B_1_6);                                          const double tmp75 = w45*(-B_2_0 - B_2_3);
6243                                          const double tmp76 = w36*(-B_0_3 - B_0_7);                                          const double tmp76 = w36*(-B_0_0 - B_0_4);
6244                                          const double tmp77 = w33*(-B_0_0 - B_0_4);                                          const double tmp77 = w40*(B_1_3 + B_1_7);
6245                                          const double tmp78 = w30*(-B_0_1 - B_0_5);                                          const double tmp78 = w33*(-B_0_1 - B_0_5);
6246                                          const double tmp79 = w34*(B_1_0 + B_1_4);                                          const double tmp79 = w34*(B_1_1 + B_1_5);
6247                                          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);
6248                                          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);
6249                                          const double tmp82 = w38*(B_0_1 + B_0_5);                                          const double tmp82 = w38*(B_2_0 + B_2_3);
6250                                          const double tmp83 = w31*(-B_1_2 - B_1_6);                                          const double tmp83 = w42*(-B_1_1 - B_1_5);
6251                                          const double tmp84 = w42*(B_2_4 + B_2_7);                                          const double tmp84 = w41*(B_0_1 + B_0_5);
6252                                          const double tmp85 = w35*(B_2_0 + B_2_3);                                          const double tmp85 = w37*(-B_1_3 - B_1_7);
6253                                          const double tmp86 = w37*(-B_1_0 - B_1_4);                                          const double tmp86 = w39*(B_0_0 + B_0_4);
6254                                          const double tmp87 = w39*(-B_1_1 - B_1_5);                                          const double tmp87 = w45*(B_2_4 + B_2_7);
6255                                          const double tmp88 = w36*(B_0_0 + B_0_4);                                          const double tmp88 = w36*(B_0_3 + B_0_7);
6256                                          const double tmp89 = w33*(B_0_3 + B_0_7);                                          const double tmp89 = w40*(-B_1_0 - B_1_4);
6257                                          const double tmp90 = w30*(B_0_2 + B_0_6);                                          const double tmp90 = w33*(B_0_2 + B_0_6);
6258                                          const double tmp91 = w34*(-B_1_3 - B_1_7);                                          const double tmp91 = w34*(-B_1_2 - B_1_6);
6259                                          const double tmp92 = w42*(-B_2_1 - B_2_2);                                          const double tmp92 = w38*(-B_2_5 - B_2_6);
6260                                          const double tmp93 = w35*(-B_2_5 - B_2_6);                                          const double tmp93 = w45*(-B_2_1 - B_2_2);
6261                                          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);
6262                                          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);
6263                                          const double tmp96 = w38*(-B_0_1 - B_0_3);                                          const double tmp96 = w42*(-B_1_2 - B_1_3);
6264                                          const double tmp97 = w31*(-B_1_4 - B_1_5);                                          const double tmp97 = w41*(-B_0_1 - B_0_3);
6265                                          const double tmp98 = w37*(-B_1_6 - B_1_7);                                          const double tmp98 = w37*(-B_1_0 - B_1_1);
6266                                          const double tmp99 = w39*(-B_1_2 - B_1_3);                                          const double tmp99 = w39*(-B_0_0 - B_0_2);
6267                                          const double tmp100 = w36*(-B_0_0 - B_0_2);                                          const double tmp100 = w36*(-B_0_5 - B_0_7);
6268                                          const double tmp101 = w33*(-B_0_5 - B_0_7);                                          const double tmp101 = w40*(-B_1_6 - B_1_7);
6269                                          const double tmp102 = w30*(-B_0_4 - B_0_6);                                          const double tmp102 = w33*(-B_0_4 - B_0_6);
6270                                          const double tmp103 = w34*(-B_1_0 - B_1_1);                                          const double tmp103 = w34*(-B_1_4 - B_1_5);
6271                                          const double tmp104 = w38*(B_0_2 + B_0_6);                                          const double tmp104 = w38*(B_2_6 + B_2_7);
6272                                          const double tmp105 = w42*(B_2_0 + B_2_1);                                          const double tmp105 = w35*(B_2_4 + B_2_5);
6273                                          const double tmp106 = w35*(B_2_6 + B_2_7);                                          const double tmp106 = w41*(B_0_2 + B_0_6);
6274                                          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);
6275                                          const double tmp108 = w32*(B_2_4 + B_2_5);                                          const double tmp108 = w39*(B_0_3 + B_0_7);
6276                                          const double tmp109 = w36*(B_0_3 + B_0_7);                                          const double tmp109 = w45*(B_2_0 + B_2_1);
6277                                          const double tmp110 = w33*(B_0_0 + B_0_4);                                          const double tmp110 = w36*(B_0_0 + B_0_4);
6278                                          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);
6279                                          const double tmp112 = w43*(B_2_2 + B_2_3);                                          const double tmp112 = w33*(B_0_1 + B_0_5);
6280                                          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);
6281                                          const double tmp114 = w38*(-B_0_0 - B_0_4);                                          const double tmp114 = w42*(-B_1_0 - B_1_4);
6282                                          const double tmp115 = w31*(-B_1_3 - B_1_7);                                          const double tmp115 = w41*(-B_0_0 - B_0_4);
6283                                          const double tmp116 = w37*(-B_1_1 - B_1_5);                                          const double tmp116 = w37*(-B_1_2 - B_1_6);
6284                                          const double tmp117 = w39*(-B_1_0 - B_1_4);                                          const double tmp117 = w39*(-B_0_1 - B_0_5);
6285                                          const double tmp118 = w36*(-B_0_1 - B_0_5);                                          const double tmp118 = w36*(-B_0_2 - B_0_6);
6286                                          const double tmp119 = w33*(-B_0_2 - B_0_6);                                          const double tmp119 = w40*(-B_1_1 - B_1_5);
6287                                          const double tmp120 = w30*(-B_0_3 - B_0_7);                                          const double tmp120 = w33*(-B_0_3 - B_0_7);
6288                                          const double tmp121 = w34*(-B_1_2 - B_1_6);                                          const double tmp121 = w34*(-B_1_3 - B_1_7);
6289                                          const double tmp122 = w31*(B_1_0 + B_1_1);                                          const double tmp122 = w38*(B_2_2 + B_2_3);
6290                                          const double tmp123 = w42*(B_2_4 + B_2_5);                                          const double tmp123 = w42*(B_1_6 + B_1_7);
6291                                          const double tmp124 = w35*(B_2_2 + B_2_3);                                          const double tmp124 = w35*(B_2_0 + B_2_1);
6292                                          const double tmp125 = w37*(B_1_2 + B_1_3);                                          const double tmp125 = w37*(B_1_4 + B_1_5);
6293                                          const double tmp126 = w32*(B_2_0 + B_2_1);                                          const double tmp126 = w39*(-B_0_3 - B_0_5);
6294                                          const double tmp127 = w39*(B_1_6 + B_1_7);                                          const double tmp127 = w45*(B_2_4 + B_2_5);
6295                                          const double tmp128 = w36*(-B_0_3 - B_0_5);                                          const double tmp128 = w36*(-B_0_2 - B_0_4);
6296                                          const double tmp129 = w33*(-B_0_2 - B_0_4);                                          const double tmp129 = w40*(B_1_2 + B_1_3);
6297                                          const double tmp130 = w43*(B_2_6 + B_2_7);                                          const double tmp130 = w46*(B_2_6 + B_2_7);
6298                                          const double tmp131 = w34*(B_1_4 + B_1_5);                                          const double tmp131 = w34*(B_1_0 + B_1_1);
6299                                          const double tmp132 = w42*(-B_2_5 - B_2_6);                                          const double tmp132 = w38*(-B_2_1 - B_2_2);
6300                                          const double tmp133 = w35*(-B_2_1 - B_2_2);                                          const double tmp133 = w37*(B_1_2 + B_1_7);
6301                                          const double tmp134 = w37*(B_1_0 + B_1_5);                                          const double tmp134 = w39*(B_0_1 + B_0_7);
6302                                          const double tmp135 = w36*(B_0_1 + B_0_7);                                          const double tmp135 = w36*(B_0_0 + B_0_6);
6303                                          const double tmp136 = w33*(B_0_0 + B_0_6);                                          const double tmp136 = w40*(B_1_0 + B_1_5);
6304                                          const double tmp137 = w34*(B_1_2 + B_1_7);                                          const double tmp137 = w45*(-B_2_5 - B_2_6);
6305                                          const double tmp138 = w38*(-B_0_0 - B_0_2);                                          const double tmp138 = w38*(-B_2_4 - B_2_6);
6306                                          const double tmp139 = w42*(-B_2_1 - B_2_3);                                          const double tmp139 = w35*(-B_2_5 - B_2_7);
6307                                          const double tmp140 = w35*(-B_2_4 - B_2_6);                                          const double tmp140 = w41*(-B_0_0 - B_0_2);
6308                                          const double tmp141 = w37*(B_1_3 + B_1_6);                                          const double tmp141 = w37*(B_1_1 + B_1_4);
6309                                          const double tmp142 = w32*(-B_2_5 - B_2_7);                                          const double tmp142 = w39*(-B_0_1 - B_0_3);
6310                                          const double tmp143 = w36*(-B_0_1 - B_0_3);                                          const double tmp143 = w45*(-B_2_1 - B_2_3);
6311                                          const double tmp144 = w33*(-B_0_4 - B_0_6);                                          const double tmp144 = w36*(-B_0_4 - B_0_6);
6312                                          const double tmp145 = w30*(-B_0_5 - B_0_7);                                          const double tmp145 = w40*(B_1_3 + B_1_6);
6313                                          const double tmp146 = w43*(-B_2_0 - B_2_2);                                          const double tmp146 = w33*(-B_0_5 - B_0_7);
6314                                          const double tmp147 = w34*(B_1_1 + B_1_4);                                          const double tmp147 = w46*(-B_2_0 - B_2_2);
6315                                          const double tmp148 = w36*(B_0_2 + B_0_4);                                          const double tmp148 = w39*(B_0_2 + B_0_4);
6316                                          const double tmp149 = w33*(B_0_3 + B_0_5);                                          const double tmp149 = w36*(B_0_3 + B_0_5);
6317                                          const double tmp150 = w42*(B_2_1 + B_2_2);                                          const double tmp150 = w38*(B_2_5 + B_2_6);
6318                                          const double tmp151 = w35*(B_2_5 + B_2_6);                                          const double tmp151 = w37*(-B_1_0 - B_1_5);
6319                                          const double tmp152 = w37*(-B_1_2 - B_1_7);                                          const double tmp152 = w39*(-B_0_0 - B_0_6);
6320                                          const double tmp153 = w36*(-B_0_0 - B_0_6);                                          const double tmp153 = w45*(B_2_1 + B_2_2);
6321                                          const double tmp154 = w33*(-B_0_1 - B_0_7);                                          const double tmp154 = w36*(-B_0_1 - B_0_7);
6322                                          const double tmp155 = w34*(-B_1_0 - B_1_5);                                          const double tmp155 = w40*(-B_1_2 - B_1_7);
6323                                          const double tmp156 = w38*(-B_0_3 - B_0_7);                                          const double tmp156 = w41*(-B_0_3 - B_0_7);
6324                                          const double tmp157 = w36*(-B_0_2 - B_0_6);                                          const double tmp157 = w39*(-B_0_2 - B_0_6);
6325                                          const double tmp158 = w33*(-B_0_1 - B_0_5);                                          const double tmp158 = w36*(-B_0_1 - B_0_5);
6326                                          const double tmp159 = w30*(-B_0_0 - B_0_4);                                          const double tmp159 = w33*(-B_0_0 - B_0_4);
6327                                          const double tmp160 = w42*(-B_2_4 - B_2_5);                                          const double tmp160 = w38*(-B_2_2 - B_2_3);
6328                                          const double tmp161 = w35*(-B_2_2 - B_2_3);                                          const double tmp161 = w35*(-B_2_0 - B_2_1);
6329                                          const double tmp162 = w32*(-B_2_0 - B_2_1);                                          const double tmp162 = w45*(-B_2_4 - B_2_5);
6330                                          const double tmp163 = w43*(-B_2_6 - B_2_7);                                          const double tmp163 = w46*(-B_2_6 - B_2_7);
6331                                          const double tmp164 = w42*(-B_2_4 - B_2_7);                                          const double tmp164 = w38*(-B_2_0 - B_2_3);
6332                                          const double tmp165 = w35*(-B_2_0 - B_2_3);                                          const double tmp165 = w37*(B_1_3 + B_1_6);
6333                                          const double tmp166 = w37*(B_1_1 + B_1_4);                                          const double tmp166 = w40*(B_1_1 + B_1_4);
6334                                          const double tmp167 = w34*(B_1_3 + B_1_6);                                          const double tmp167 = w45*(-B_2_4 - B_2_7);
6335                                          const double tmp168 = w36*(B_0_3 + B_0_5);                                          const double tmp168 = w39*(B_0_3 + B_0_5);
6336                                          const double tmp169 = w33*(B_0_2 + B_0_4);                                          const double tmp169 = w36*(B_0_2 + B_0_4);
6337                                          const double tmp170 = w38*(B_0_5 + B_0_7);                                          const double tmp170 = w38*(B_2_1 + B_2_3);
6338                                          const double tmp171 = w42*(B_2_4 + B_2_6);                                          const double tmp171 = w35*(B_2_0 + B_2_2);
6339                                          const double tmp172 = w35*(B_2_1 + B_2_3);                                          const double tmp172 = w41*(B_0_5 + B_0_7);
6340                                          const double tmp173 = w37*(-B_1_1 - B_1_4);                                          const double tmp173 = w37*(-B_1_3 - B_1_6);
6341                                          const double tmp174 = w32*(B_2_0 + B_2_2);                                          const double tmp174 = w39*(B_0_4 + B_0_6);
6342                                          const double tmp175 = w36*(B_0_4 + B_0_6);                                          const double tmp175 = w45*(B_2_4 + B_2_6);
6343                                          const double tmp176 = w33*(B_0_1 + B_0_3);                                          const double tmp176 = w36*(B_0_1 + B_0_3);
6344                                          const double tmp177 = w30*(B_0_0 + B_0_2);                                          const double tmp177 = w40*(-B_1_1 - B_1_4);
6345                                          const double tmp178 = w43*(B_2_5 + B_2_7);                                          const double tmp178 = w33*(B_0_0 + B_0_2);
6346                                          const double tmp179 = w34*(-B_1_3 - B_1_6);                                          const double tmp179 = w46*(B_2_5 + B_2_7);
6347                                          const double tmp180 = w31*(-B_1_0 - B_1_4);                                          const double tmp180 = w38*(B_2_5 + B_2_7);
6348                                          const double tmp181 = w42*(B_2_0 + B_2_2);                                          const double tmp181 = w42*(-B_1_3 - B_1_7);
6349                                          const double tmp182 = w35*(B_2_5 + B_2_7);                                          const double tmp182 = w35*(B_2_4 + B_2_6);
6350                                          const double tmp183 = w37*(-B_1_2 - B_1_6);                                          const double tmp183 = w37*(-B_1_1 - B_1_5);
6351                                          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);
6352                                          const double tmp185 = w39*(-B_1_3 - B_1_7);                                          const double tmp185 = w45*(B_2_0 + B_2_2);
6353                                          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);
6354                                          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);
6355                                          const double tmp188 = w43*(B_2_1 + B_2_3);                                          const double tmp188 = w46*(B_2_1 + B_2_3);
6356                                          const double tmp189 = w34*(-B_1_1 - B_1_5);                                          const double tmp189 = w34*(-B_1_0 - B_1_4);
6357                                          const double tmp190 = w38*(-B_0_1 - B_0_5);                                          const double tmp190 = w38*(B_2_4 + B_2_5);
6358                                          const double tmp191 = w42*(B_2_2 + B_2_3);                                          const double tmp191 = w35*(B_2_6 + B_2_7);
6359                                          const double tmp192 = w35*(B_2_4 + B_2_5);                                          const double tmp192 = w41*(-B_0_1 - B_0_5);
6360                                          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);
6361                                          const double tmp194 = w32*(B_2_6 + B_2_7);                                          const double tmp194 = w39*(-B_0_0 - B_0_4);
6362                                          const double tmp195 = w36*(-B_0_0 - B_0_4);                                          const double tmp195 = w45*(B_2_2 + B_2_3);
6363                                          const double tmp196 = w33*(-B_0_3 - B_0_7);                                          const double tmp196 = w36*(-B_0_3 - B_0_7);
6364                                          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);
6365                                          const double tmp198 = w43*(B_2_0 + B_2_1);                                          const double tmp198 = w33*(-B_0_2 - B_0_6);
6366                                          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);
6367                                          const double tmp200 = w31*(B_1_4 + B_1_5);                                          const double tmp200 = w38*(-B_2_6 - B_2_7);
6368                                          const double tmp201 = w42*(-B_2_0 - B_2_1);                                          const double tmp201 = w42*(B_1_2 + B_1_3);
6369                                          const double tmp202 = w35*(-B_2_6 - B_2_7);                                          const double tmp202 = w35*(-B_2_4 - B_2_5);
6370                                          const double tmp203 = w37*(B_1_6 + B_1_7);                                          const double tmp203 = w37*(B_1_0 + B_1_1);
6371                                          const double tmp204 = w32*(-B_2_4 - B_2_5);                                          const double tmp204 = w45*(-B_2_0 - B_2_1);
6372                                          const double tmp205 = w39*(B_1_2 + B_1_3);                                          const double tmp205 = w40*(B_1_6 + B_1_7);
6373                                          const double tmp206 = w43*(-B_2_2 - B_2_3);                                          const double tmp206 = w46*(-B_2_2 - B_2_3);
6374                                          const double tmp207 = w34*(B_1_0 + B_1_1);                                          const double tmp207 = w34*(B_1_4 + B_1_5);
6375                                          const double tmp208 = w37*(-B_1_3 - B_1_6);                                          const double tmp208 = w37*(-B_1_1 - B_1_4);
6376                                          const double tmp209 = w36*(-B_0_2 - B_0_4);                                          const double tmp209 = w39*(-B_0_2 - B_0_4);
6377                                          const double tmp210 = w33*(-B_0_3 - B_0_5);                                          const double tmp210 = w36*(-B_0_3 - B_0_5);
6378                                          const double tmp211 = w34*(-B_1_1 - B_1_4);                                          const double tmp211 = w40*(-B_1_3 - B_1_6);
6379                                          const double tmp212 = w42*(B_2_0 + B_2_3);                                          const double tmp212 = w38*(B_2_4 + B_2_7);
6380                                          const double tmp213 = w35*(B_2_4 + B_2_7);                                          const double tmp213 = w45*(B_2_0 + B_2_3);
6381                                          const double tmp214 = w38*(B_0_0 + B_0_4);                                          const double tmp214 = w41*(B_0_0 + B_0_4);
6382                                          const double tmp215 = w36*(B_0_1 + B_0_5);                                          const double tmp215 = w39*(B_0_1 + B_0_5);
6383                                          const double tmp216 = w33*(B_0_2 + B_0_6);                                          const double tmp216 = w36*(B_0_2 + B_0_6);
6384                                          const double tmp217 = w30*(B_0_3 + B_0_7);                                          const double tmp217 = w33*(B_0_3 + B_0_7);
6385                                          const double tmp218 = w31*(B_1_2 + B_1_6);                                          const double tmp218 = w42*(B_1_1 + B_1_5);
6386                                          const double tmp219 = w37*(B_1_0 + B_1_4);                                          const double tmp219 = w37*(B_1_3 + B_1_7);
6387                                          const double tmp220 = w39*(B_1_1 + B_1_5);                                          const double tmp220 = w40*(B_1_0 + B_1_4);
6388                                          const double tmp221 = w34*(B_1_3 + B_1_7);                                          const double tmp221 = w34*(B_1_2 + B_1_6);
6389                                          const double tmp222 = w36*(-B_0_1 - B_0_7);                                          const double tmp222 = w39*(-B_0_1 - B_0_7);
6390                                          const double tmp223 = w33*(-B_0_0 - B_0_6);                                          const double tmp223 = w36*(-B_0_0 - B_0_6);
6391                                          const double tmp224 = w42*(-B_2_6 - B_2_7);                                          const double tmp224 = w38*(-B_2_0 - B_2_1);
6392                                          const double tmp225 = w35*(-B_2_0 - B_2_1);                                          const double tmp225 = w35*(-B_2_2 - B_2_3);
6393                                          const double tmp226 = w32*(-B_2_2 - B_2_3);                                          const double tmp226 = w45*(-B_2_6 - B_2_7);
6394                                          const double tmp227 = w43*(-B_2_4 - B_2_5);                                          const double tmp227 = w46*(-B_2_4 - B_2_5);
6395                                          const double tmp228 = w31*(B_1_3 + B_1_7);                                          const double tmp228 = w38*(B_2_4 + B_2_6);
6396                                          const double tmp229 = w42*(B_2_1 + B_2_3);                                          const double tmp229 = w42*(B_1_0 + B_1_4);
6397                                          const double tmp230 = w35*(B_2_4 + B_2_6);                                          const double tmp230 = w35*(B_2_5 + B_2_7);
6398                                          const double tmp231 = w37*(B_1_1 + B_1_5);                                          const double tmp231 = w37*(B_1_2 + B_1_6);
6399                                          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);
6400                                          const double tmp233 = w39*(B_1_0 + B_1_4);                                          const double tmp233 = w45*(B_2_1 + B_2_3);
6401                                          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);
6402                                          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);
6403                                          const double tmp236 = w43*(B_2_0 + B_2_2);                                          const double tmp236 = w46*(B_2_0 + B_2_2);
6404                                          const double tmp237 = w34*(B_1_2 + B_1_6);                                          const double tmp237 = w34*(B_1_3 + B_1_7);
6405                                          const double tmp238 = w31*(-B_1_1 - B_1_5);                                          const double tmp238 = w42*(-B_1_2 - B_1_6);
6406                                          const double tmp239 = w37*(-B_1_3 - B_1_7);                                          const double tmp239 = w37*(-B_1_0 - B_1_4);
6407                                          const double tmp240 = w39*(-B_1_2 - B_1_6);                                          const double tmp240 = w40*(-B_1_3 - B_1_7);
6408                                          const double tmp241 = w34*(-B_1_0 - B_1_4);                                          const double tmp241 = w34*(-B_1_1 - B_1_5);
6409                                          const double tmp242 = w31*(-B_1_6 - B_1_7);                                          const double tmp242 = w38*(-B_2_4 - B_2_5);
6410                                          const double tmp243 = w42*(-B_2_2 - B_2_3);                                          const double tmp243 = w42*(-B_1_0 - B_1_1);
6411                                          const double tmp244 = w35*(-B_2_4 - B_2_5);                                          const double tmp244 = w35*(-B_2_6 - B_2_7);
6412                                          const double tmp245 = w37*(-B_1_4 - B_1_5);                                          const double tmp245 = w37*(-B_1_2 - B_1_3);
6413                                          const double tmp246 = w32*(-B_2_6 - B_2_7);                                          const double tmp246 = w45*(-B_2_2 - B_2_3);
6414                                          const double tmp247 = w39*(-B_1_0 - B_1_1);                                          const double tmp247 = w40*(-B_1_4 - B_1_5);
6415                                          const double tmp248 = w43*(-B_2_0 - B_2_1);                                          const double tmp248 = w46*(-B_2_0 - B_2_1);
6416                                          const double tmp249 = w34*(-B_1_2 - B_1_3);                                          const double tmp249 = w34*(-B_1_6 - B_1_7);
6417                                          const double tmp250 = w31*(B_1_2 + B_1_3);                                          const double tmp250 = w42*(B_1_4 + B_1_5);
6418                                          const double tmp251 = w37*(B_1_0 + B_1_1);                                          const double tmp251 = w37*(B_1_6 + B_1_7);
6419                                          const double tmp252 = w39*(B_1_4 + B_1_5);                                          const double tmp252 = w40*(B_1_0 + B_1_1);
6420                                          const double tmp253 = w34*(B_1_6 + B_1_7);                                          const double tmp253 = w34*(B_1_2 + B_1_3);
6421                                          const double tmp254 = w42*(-B_2_4 - B_2_6);                                          const double tmp254 = w38*(-B_2_1 - B_2_3);
6422                                          const double tmp255 = w35*(-B_2_1 - B_2_3);                                          const double tmp255 = w35*(-B_2_0 - B_2_2);
6423                                          const double tmp256 = w32*(-B_2_0 - B_2_2);                                          const double tmp256 = w45*(-B_2_4 - B_2_6);
6424                                          const double tmp257 = w43*(-B_2_5 - B_2_7);                                          const double tmp257 = w46*(-B_2_5 - B_2_7);
6425                                          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);
6426                                          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);
6427                                          const double tmp260 = w42*(-B_2_5 - B_2_7);                                          const double tmp260 = w38*(-B_2_0 - B_2_2);
6428                                          const double tmp261 = w35*(-B_2_0 - B_2_2);                                          const double tmp261 = w35*(-B_2_1 - B_2_3);
6429                                          const double tmp262 = w32*(-B_2_1 - B_2_3);                                          const double tmp262 = w45*(-B_2_5 - B_2_7);
6430                                          const double tmp263 = w43*(-B_2_4 - B_2_6);                                          const double tmp263 = w46*(-B_2_4 - B_2_6);
6431                                          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;
6432                                          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;
6433                                          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;
6434                                          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;
6435                                          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;
6436                                          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;
6437                                          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;
6438                                          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;
6439                                          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;
6440                                          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;
6441                                          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;
6442                                          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;
6443                                          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;
6444                                          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;
6445                                          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;
6446                                          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;
6447                                          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;
6448                                          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;
6449                                          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;
6450                                          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;
6451                                          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;
6452                                          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;
6453                                          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;
6454                                          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;
6455                                          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;
6456                                          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;
6457                                          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;
6458                                          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;
6459                                          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;
6460                                          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;
6461                                          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;
6462                                          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;
6463                                          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;
6464                                          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;
6465                                          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;
6466                                          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;
6467                                          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;
6468                                          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;
6469                                          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;
6470                                          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;
6471                                          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;
6472                                          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;
6473                                          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;
6474                                          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;
6475                                          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;
6476                                          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;
6477                                          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;
6478                                          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;
6479                                          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;
6480                                          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;
6481                                          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;
6482                                          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;
6483                                          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;
6484                                          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;
6485                                          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;
6486                                          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;
6487                                          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;
6488                                          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;
6489                                          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;
6490                                          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;
6491                                          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;
6492                                          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;
6493                                          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;
6494                                          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;
6495                                      }                                      }
6496                                  }                                  }
6497                              } else { // constant data                              } else { // constant data
6498                                  for (index_t k=0; k<numEq; k++) {                                  for (index_t k=0; k<numEq; k++) {
6499                                      for (index_t m=0; m<numComp; m++) {                                      for (index_t m=0; m<numComp; m++) {
6500                                          const double B_0 = B_p[INDEX3(k,0,m,numEq,3)];                                          const double wB0 = B_p[INDEX3(k,0,m,numEq,3)]*w55;
6501                                          const double B_1 = B_p[INDEX3(k,1,m,numEq,3)];                                          const double wB1 = B_p[INDEX3(k,1,m,numEq,3)]*w56;
6502                                          const double B_2 = B_p[INDEX3(k,2,m,numEq,3)];                                          const double wB2 = B_p[INDEX3(k,2,m,numEq,3)]*w54;
6503                                          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;
6504                                          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;
6505                                          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;
6506                                          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;
6507                                          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;
6508                                          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;
6509                                          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;
6510                                          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;
6511                                          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;
6512                                          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;
6513                                          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;
6514                                          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;
6515                                          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;
6516                                          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;
6517                                          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;
6518                                          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;
6519                                          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;
6520                                          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;
6521                                          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;
6522                                          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;
6523                                          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;
6524                                          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;
6525                                          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;
6526                                          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;
6527                                          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;
6528                                          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;
6529                                          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;
6530                                          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;
6531                                          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;
6532                                          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;
6533                                          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;
6534                                          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;
6535                                          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;
6536                                          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;
6537                                          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;
6538                                          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;
6539                                          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;
6540                                          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;
6541                                          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;
6542                                          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;
6543                                          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;
6544                                          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;
6545                                          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;
6546                                          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;
6547                                          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;
6548                                          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;
6549                                          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;
6550                                          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;
6551                                          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;
6552                                          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;
6553                                          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;
6554                                          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;
6555                                          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;
6556                                          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;
6557                                          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;
6558                                          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;
6559                                          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;
6560                                          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;
6561                                          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;
6562                                          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;
6563                                          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;
6564                                          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;
6565                                          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;
6566                                          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;
6567                                      }                                      }
6568                                  }                                  }
6569                              }                              }
# Line 6589  void Brick::assemblePDESystem(Paso_Syste Line 6601  void Brick::assemblePDESystem(Paso_Syste
6601                                          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)];
6602                                          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)];
6603                                          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)];
6604                                          const double tmp0 = w38*(C_0_3 + C_0_7);                                          const double tmp0 = w38*(-C_2_5 - C_2_6);
6605                                          const double tmp1 = w31*(C_1_0 + C_1_4);                                          const double tmp1 = w42*(C_1_3 + C_1_7);
6606                                          const double tmp2 = w42*(-C_2_1 - C_2_2);                                          const double tmp2 = w41*(C_0_3 + C_0_7);
6607                                          const double tmp3 = w35*(-C_2_5 - C_2_6);                                          const double tmp3 = w37*(C_1_1 + C_1_5);
6608                                          const double tmp4 = w37*(C_1_2 + C_1_6);                                          const double tmp4 = w39*(C_0_2 + C_0_6);
6609                                          const double tmp5 = w39*(C_1_3 + C_1_7);                                          const double tmp5 = w45*(-C_2_1 - C_2_2);
6610                                          const double tmp6 = w36*(C_0_2 + C_0_6);                                          const double tmp6 = w36*(C_0_1 + C_0_5);
6611                                          const double tmp7 = w33*(C_0_1 + C_0_5);                                          const double tmp7 = w40*(C_1_2 + C_1_6);
6612                                          const double tmp8 = w30*(C_0_0 + C_0_4);                                          const double tmp8 = w33*(C_0_0 + C_0_4);
6613                                          const double tmp9 = w34*(C_1_1 + C_1_5);                                          const double tmp9 = w34*(C_1_0 + C_1_4);
6614                                          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);
6615                                          const double tmp11 = w31*(C_1_2 + C_1_3);                                          const double tmp11 = w42*(C_1_4 + C_1_5);
6616                                          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);
6617                                          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);
6618                                          const double tmp14 = w37*(C_1_0 + C_1_1);                                          const double tmp14 = w39*(C_0_5 + C_0_7);
6619                                          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);
6620                                          const double tmp16 = w36*(C_0_5 + C_0_7);                                          const double tmp16 = w36*(C_0_0 + C_0_2);
6621                                          const double tmp17 = w33*(C_0_0 + C_0_2);                                          const double tmp17 = w40*(C_1_0 + C_1_1);
6622                                          const double tmp18 = w30*(C_0_1 + C_0_3);                                          const double tmp18 = w33*(C_0_1 + C_0_3);
6623                                          const double tmp19 = w34*(C_1_6 + C_1_7);                                          const double tmp19 = w34*(C_1_2 + C_1_3);
6624                                          const double tmp20 = w38*(C_0_1 + C_0_3);                                          const double tmp20 = w38*(-C_2_5 - C_2_7);
6625                                          const double tmp21 = w42*(-C_2_0 - C_2_2);                                          const double tmp21 = w35*(-C_2_4 - C_2_6);
6626                                          const double tmp22 = w35*(-C_2_5 - C_2_7);                                          const double tmp22 = w41*(C_0_1 + C_0_3);
6627                                          const double tmp23 = w37*(C_1_2 + C_1_7);                                          const double tmp23 = w37*(C_1_0 + C_1_5);
6628                                          const double tmp24 = w32*(-C_2_4 - C_2_6);                                          const double tmp24 = w39*(C_0_0 + C_0_2);
6629                                          const double tmp25 = w36*(C_0_0 + C_0_2);                                          const double tmp25 = w45*(-C_2_0 - C_2_2);
6630                                          const double tmp26 = w33*(C_0_5 + C_0_7);                                          const double tmp26 = w36*(C_0_5 + C_0_7);
6631                                          const double tmp27 = w30*(C_0_4 + C_0_6);                                          const double tmp27 = w40*(C_1_2 + C_1_7);
6632                                          const double tmp28 = w43*(-C_2_1 - C_2_3);                                          const double tmp28 = w33*(C_0_4 + C_0_6);
6633                                          const double tmp29 = w34*(C_1_0 + C_1_5);                                          const double tmp29 = w46*(-C_2_1 - C_2_3);
6634                                          const double tmp30 = w38*(-C_0_4 - C_0_6);                                          const double tmp30 = w38*(C_2_0 + C_2_2);
6635                                          const double tmp31 = w42*(C_2_5 + C_2_7);                                          const double tmp31 = w35*(C_2_1 + C_2_3);
6636                                          const double tmp32 = w35*(C_2_0 + C_2_2);                                          const double tmp32 = w41*(-C_0_4 - C_0_6);
6637                                          const double tmp33 = w37*(-C_1_0 - C_1_5);                                          const double tmp33 = w37*(-C_1_2 - C_1_7);
6638                                          const double tmp34 = w32*(C_2_1 + C_2_3);                                          const double tmp34 = w39*(-C_0_5 - C_0_7);
6639                                          const double tmp35 = w36*(-C_0_5 - C_0_7);                                          const double tmp35 = w45*(C_2_5 + C_2_7);
6640                                          const double tmp36 = w33*(-C_0_0 - C_0_2);                                          const double tmp36 = w36*(-C_0_0 - C_0_2);
6641                                          const double tmp37 = w30*(-C_0_1 - C_0_3);                                          const double tmp37 = w40*(-C_1_0 - C_1_5);
6642                                          const double tmp38 = w43*(C_2_4 + C_2_6);                                          const double tmp38 = w33*(-C_0_1 - C_0_3);
6643                                          const double tmp39 = w34*(-C_1_2 - C_1_7);                                          const double tmp39 = w46*(C_2_4 + C_2_6);
6644                                          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);
6645                                          const double tmp41 = w31*(-C_1_4 - C_1_5);                                          const double tmp41 = w42*(-C_1_2 - C_1_3);
6646                                          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);
6647                                          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);
6648                                          const double tmp44 = w37*(-C_1_6 - C_1_7);                                          const double tmp44 = w39*(-C_0_0 - C_0_2);
6649                                          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);
6650                                          const double tmp46 = w36*(-C_0_0 - C_0_2);                                          const double tmp46 = w36*(-C_0_5 - C_0_7);
6651                                          const double tmp47 = w33*(-C_0_5 - C_0_7);                                          const double tmp47 = w40*(-C_1_6 - C_1_7);
6652                                          const double tmp48 = w30*(-C_0_4 - C_0_6);                                          const double tmp48 = w33*(-C_0_4 - C_0_6);
6653                                          const double tmp49 = w34*(-C_1_0 - C_1_1);                                          const double tmp49 = w34*(-C_1_4 - C_1_5);
6654                                          const double tmp50 = w31*(-C_1_2 - C_1_3);                                          const double tmp50 = w38*(C_2_0 + C_2_1);
6655                                          const double tmp51 = w42*(C_2_6 + C_2_7);                                          const double tmp51 = w42*(-C_1_4 - C_1_5);
6656                                          const double tmp52 = w35*(C_2_0 + C_2_1);                                          const double tmp52 = w35*(C_2_2 + C_2_3);
6657                                          const double tmp53 = w37*(-C_1_0 - C_1_1);                                          const double tmp53 = w37*(-C_1_6 - C_1_7);
6658                                          const double tmp54 = w32*(C_2_2 + C_2_3);                                          const double tmp54 = w39*(-C_0_1 - C_0_7);
6659                                          const double tmp55 = w39*(-C_1_4 - C_1_5);                                          const double tmp55 = w45*(C_2_6 + C_2_7);
6660                                          const double tmp56 = w36*(-C_0_1 - C_0_7);                                          const double tmp56 = w36*(-C_0_0 - C_0_6);
6661                                          const double tmp57 = w33*(-C_0_0 - C_0_6);                                          const double tmp57 = w40*(-C_1_0 - C_1_1);
6662                                          const double tmp58 = w43*(C_2_4 + C_2_5);                                          const double tmp58 = w46*(C_2_4 + C_2_5);
6663                                          const double tmp59 = w34*(-C_1_6 - C_1_7);                                          const double tmp59 = w34*(-C_1_2 - C_1_3);
6664                                          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);
6665                                          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);
6666                                          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);
6667                                          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);
6668                                          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);
6669                                          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);
6670                                          const double tmp66 = w38*(-C_0_5 - C_0_7);                                          const double tmp66 = w41*(-C_0_5 - C_0_7);
6671                                          const double tmp67 = w36*(-C_0_4 - C_0_6);                                          const double tmp67 = w39*(-C_0_4 - C_0_6);
6672                                          const double tmp68 = w33*(-C_0_1 - C_0_3);                                          const double tmp68 = w36*(-C_0_1 - C_0_3);
6673                                          const double tmp69 = w30*(-C_0_0 - C_0_2);                                          const double tmp69 = w33*(-C_0_0 - C_0_2);
6674                                          const double tmp70 = w38*(-C_0_2 - C_0_6);                                          const double tmp70 = w38*(C_2_0 + C_2_3);
6675                                          const double tmp71 = w31*(C_1_1 + C_1_5);                                          const double tmp71 = w42*(C_1_2 + C_1_6);
6676                                          const double tmp72 = w42*(C_2_4 + C_2_7);                                          const double tmp72 = w41*(-C_0_2 - C_0_6);
6677                                          const double tmp73 = w35*(C_2_0 + C_2_3);                                          const double tmp73 = w37*(C_1_0 + C_1_4);
6678                                          const double tmp74 = w37*(C_1_3 + C_1_7);                                          const double tmp74 = w39*(-C_0_3 - C_0_7);
6679                                          const double tmp75 = w39*(C_1_2 + C_1_6);                                          const double tmp75 = w45*(C_2_4 + C_2_7);
6680                                          const double tmp76 = w36*(-C_0_3 - C_0_7);                                          const double tmp76 = w36*(-C_0_0 - C_0_4);
6681                                          const double tmp77 = w33*(-C_0_0 - C_0_4);                                          const double tmp77 = w40*(C_1_3 + C_1_7);
6682                                          const double tmp78 = w30*(-C_0_1 - C_0_5);                                          const double tmp78 = w33*(-C_0_1 - C_0_5);
6683                                          const double tmp79 = w34*(C_1_0 + C_1_4);                                          const double tmp79 = w34*(C_1_1 + C_1_5);
6684                                          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);
6685                                          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);
6686                                          const double tmp82 = w38*(C_0_1 + C_0_5);                                          const double tmp82 = w38*(-C_2_4 - C_2_7);
6687                                          const double tmp83 = w31*(-C_1_2 - C_1_6);                                          const double tmp83 = w42*(-C_1_1 - C_1_5);
6688                                          const double tmp84 = w42*(-C_2_0 - C_2_3);                                          const double tmp84 = w41*(C_0_1 + C_0_5);
6689                                          const double tmp85 = w35*(-C_2_4 - C_2_7);                                          const double tmp85 = w37*(-C_1_3 - C_1_7);
6690                                          const double tmp86 = w37*(-C_1_0 - C_1_4);                                          const double tmp86 = w39*(C_0_0 + C_0_4);
6691                                          const double tmp87 = w39*(-C_1_1 - C_1_5);                                          const double tmp87 = w45*(-C_2_0 - C_2_3);
6692                                          const double tmp88 = w36*(C_0_0 + C_0_4);                                          const double tmp88 = w36*(C_0_3 + C_0_7);
6693                                          const double tmp89 = w33*(C_0_3 + C_0_7);                                          const double tmp89 = w40*(-C_1_0 - C_1_4);
6694                                          const double tmp90 = w30*(C_0_2 + C_0_6);                                          const double tmp90 = w33*(C_0_2 + C_0_6);
6695                                          const double tmp91 = w34*(-C_1_3 - C_1_7);                                          const double tmp91 = w34*(-C_1_2 - C_1_6);
6696                                          const double tmp92 = w42*(C_2_5 + C_2_6);                                          const double tmp92 = w38*(C_2_1 + C_2_2);
6697                                          const double tmp93 = w35*(C_2_1 + C_2_2);                                          const double tmp93 = w45*(C_2_5 + C_2_6);
6698                                          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);
6699                                          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);
6700                                          const double tmp96 = w38*(C_0_0 + C_0_2);                                          const double tmp96 = w42*(C_1_0 + C_1_1);
6701                                          const double tmp97 = w31*(C_1_6 + C_1_7);                                          const double tmp97 = w41*(C_0_0 + C_0_2);
6702                                          const double tmp98 = w37*(C_1_4 + C_1_5);                                          const double tmp98 = w37*(C_1_2 + C_1_3);
6703                                          const double tmp99 = w39*(C_1_0 + C_1_1);                                          const double tmp99 = w39*(C_0_1 + C_0_3);
6704                                          const double tmp100 = w36*(C_0_1 + C_0_3);                                          const double tmp100 = w36*(C_0_4 + C_0_6);
6705                                          const double tmp101 = w33*(C_0_4 + C_0_6);                                          const double tmp101 = w40*(C_1_4 + C_1_5);
6706                                          const double tmp102 = w30*(C_0_5 + C_0_7);                                          const double tmp102 = w33*(C_0_5 + C_0_7);
6707                                          const double tmp103 = w34*(C_1_2 + C_1_3);                                          const double tmp103 = w34*(C_1_6 + C_1_7);
6708                                          const double tmp104 = w38*(-C_0_3 - C_0_7);                                          const double tmp104 = w38*(-C_2_2 - C_2_3);
6709                                          const double tmp105 = w42*(-C_2_4 - C_2_5);                                          const double tmp105 = w35*(-C_2_0 - C_2_1);
6710                                          const double tmp106 = w35*(-C_2_2 - C_2_3);                                          const double tmp106 = w41*(-C_0_3 - C_0_7);
6711                                          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);
6712                                          const double tmp108 = w32*(-C_2_0 - C_2_1);                                          const double tmp108 = w39*(-C_0_2 - C_0_6);
6713                                          const double tmp109 = w36*(-C_0_2 - C_0_6);                                          const double tmp109 = w45*(-C_2_4 - C_2_5);
6714                                          const double tmp110 = w33*(-C_0_1 - C_0_5);                                          const double tmp110 = w36*(-C_0_1 - C_0_5);
6715                                          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);
6716                                          const double tmp112 = w43*(-C_2_6 - C_2_7);                                          const double tmp112 = w33*(-C_0_0 - C_0_4);
6717                                          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);
6718                                          const double tmp114 = w38*(-C_0_0 - C_0_4);                                          const double tmp114 = w42*(-C_1_0 - C_1_4);
6719                                          const double tmp115 = w31*(-C_1_3 - C_1_7);                                          const double tmp115 = w41*(-C_0_0 - C_0_4);
6720                                          const double tmp116 = w37*(-C_1_1 - C_1_5);                                          const double tmp116 = w37*(-C_1_2 - C_1_6);
6721                                          const double tmp117 = w39*(-C_1_0 - C_1_4);                                          const double tmp117 = w39*(-C_0_1 - C_0_5);
6722                                          const double tmp118 = w36*(-C_0_1 - C_0_5);                                          const double tmp118 = w36*(-C_0_2 - C_0_6);
6723                                          const double tmp119 = w33*(-C_0_2 - C_0_6);                                          const double tmp119 = w40*(-C_1_1 - C_1_5);
6724                                          const double tmp120 = w30*(-C_0_3 - C_0_7);                                          const double tmp120 = w33*(-C_0_3 - C_0_7);
6725                                          const double tmp121 = w34*(-C_1_2 - C_1_6);                                          const double tmp121 = w34*(-C_1_3 - C_1_7);
6726                                          const double tmp122 = w31*(C_1_0 + C_1_1);                                          const double tmp122 = w38*(C_2_2 + C_2_3);
6727                                          const double tmp123 = w42*(C_2_4 + C_2_5);                                          const double tmp123 = w42*(C_1_6 + C_1_7);
6728                                          const double tmp124 = w35*(C_2_2 + C_2_3);                                          const double tmp124 = w35*(C_2_0 + C_2_1);
6729                                          const double tmp125 = w37*(C_1_2 + C_1_3);                                          const double tmp125 = w37*(C_1_4 + C_1_5);
6730                                          const double tmp126 = w32*(C_2_0 + C_2_1);                                          const double tmp126 = w39*(C_0_2 + C_0_4);
6731                                          const double tmp127 = w39*(C_1_6 + C_1_7);                                          const double tmp127 = w45*(C_2_4 + C_2_5);
6732                                          const double tmp128 = w36*(C_0_2 + C_0_4);                                          const double tmp128 = w36*(C_0_3 + C_0_5);
6733                                          const double tmp129 = w33*(C_0_3 + C_0_5);                                          const double tmp129 = w40*(C_1_2 + C_1_3);
6734                                          const double tmp130 = w43*(C_2_6 + C_2_7);                                          const double tmp130 = w46*(C_2_6 + C_2_7);
6735                                          const double tmp131 = w34*(C_1_4 + C_1_5);                                          const double tmp131 = w34*(C_1_0 + C_1_1);
6736                                          const double tmp132 = w42*(-C_2_5 - C_2_6);                                          const double tmp132 = w38*(-C_2_1 - C_2_2);
6737                                          const double tmp133 = w35*(-C_2_1 - C_2_2);                                          const double tmp133 = w37*(C_1_2 + C_1_7);
6738                                          const double tmp134 = w37*(C_1_0 + C_1_5);                                          const double tmp134 = w39*(C_0_1 + C_0_7);
6739                                          const double tmp135 = w36*(C_0_1 + C_0_7);                                          const double tmp135 = w36*(C_0_0 + C_0_6);
6740                                          const double tmp136 = w33*(C_0_0 + C_0_6);                                          const double tmp136 = w40*(C_1_0 + C_1_5);
6741                                          const double tmp137 = w34*(C_1_2 + C_1_7);                                          const double tmp137 = w45*(-C_2_5 - C_2_6);
6742                                          const double tmp138 = w38*(-C_0_0 - C_0_2);                                          const double tmp138 = w38*(-C_2_4 - C_2_6);
6743                                          const double tmp139 = w42*(-C_2_1 - C_2_3);                                          const double tmp139 = w35*(-C_2_5 - C_2_7);
6744                                          const double tmp140 = w35*(-C_2_4 - C_2_6);                                          const double tmp140 = w41*(-C_0_0 - C_0_2);
6745                                          const double tmp141 = w37*(-C_1_1 - C_1_4);                                          const double tmp141 = w37*(-C_1_3 - C_1_6);
6746                                          const double tmp142 = w32*(-C_2_5 - C_2_7);                                          const double tmp142 = w39*(-C_0_1 - C_0_3);
6747                                          const double tmp143 = w36*(-C_0_1 - C_0_3);                                          const double tmp143 = w45*(-C_2_1 - C_2_3);
6748                                          const double tmp144 = w33*(-C_0_4 - C_0_6);                                          const double tmp144 = w36*(-C_0_4 - C_0_6);
6749                                          const double tmp145 = w30*(-C_0_5 - C_0_7);                                          const double tmp145 = w40*(-C_1_1 - C_1_4);
6750                                          const double tmp146 = w43*(-C_2_0 - C_2_2);                                          const double tmp146 = w33*(-C_0_5 - C_0_7);
6751                                          const double tmp147 = w34*(-C_1_3 - C_1_6);                                          const double tmp147 = w46*(-C_2_0 - C_2_2);
6752                                          const double tmp148 = w36*(-C_0_3 - C_0_5);                                          const double tmp148 = w39*(-C_0_3 - C_0_5);
6753                                          const double tmp149 = w33*(-C_0_2 - C_0_4);                                          const double tmp149 = w36*(-C_0_2 - C_0_4);
6754                                          const double tmp150 = w42*(C_2_1 + C_2_2);                                          const double tmp150 = w38*(C_2_5 + C_2_6);
6755                                          const double tmp151 = w35*(C_2_5 + C_2_6);                                          const double tmp151 = w37*(-C_1_0 - C_1_5);
6756                                          const double tmp152 = w37*(-C_1_2 - C_1_7);                                          const double tmp152 = w39*(-C_0_0 - C_0_6);
6757                                          const double tmp153 = w36*(-C_0_0 - C_0_6);                                          const double tmp153 = w45*(C_2_1 + C_2_2);
6758                                          const double tmp154 = w33*(-C_0_1 - C_0_7);                                          const double tmp154 = w36*(-C_0_1 - C_0_7);
6759                                          const double tmp155 = w34*(-C_1_0 - C_1_5);                                          const double tmp155 = w40*(-C_1_2 - C_1_7);
6760                                          const double tmp156 = w38*(C_0_2 + C_0_6);                                          const double tmp156 = w41*(C_0_2 + C_0_6);
6761                                          const double tmp157 = w36*(C_0_3 + C_0_7);                                          const double tmp157 = w39*(C_0_3 + C_0_7);
6762                                          const double tmp158 = w33*(C_0_0 + C_0_4);                                          const double tmp158 = w36*(C_0_0 + C_0_4);
6763                                          const double tmp159 = w30*(C_0_1 + C_0_5);                                          const double tmp159 = w33*(C_0_1 + C_0_5);
6764                                          const double tmp160 = w42*(C_2_0 + C_2_1);                                          const double tmp160 = w38*(C_2_6 + C_2_7);
6765                                          const double tmp161 = w35*(C_2_6 + C_2_7);                                          const double tmp161 = w35*(C_2_4 + C_2_5);
6766                                          const double tmp162 = w32*(C_2_4 + C_2_5);                                          const double tmp162 = w45*(C_2_0 + C_2_1);
6767                                          const double tmp163 = w43*(C_2_2 + C_2_3);                                          const double tmp163 = w46*(C_2_2 + C_2_3);
6768                                          const double tmp164 = w42*(-C_2_4 - C_2_7);                                          const double tmp164 = w38*(-C_2_0 - C_2_3);
6769                                          const double tmp165 = w35*(-C_2_0 - C_2_3);                                          const double tmp165 = w37*(C_1_3 + C_1_6);
6770                                          const double tmp166 = w37*(C_1_1 + C_1_4);                                          const double tmp166 = w40*(C_1_1 + C_1_4);
6771                                          const double tmp167 = w34*(C_1_3 + C_1_6);                                          const double tmp167 = w45*(-C_2_4 - C_2_7);
6772                                          const double tmp168 = w36*(C_0_3 + C_0_5);                                          const double tmp168 = w39*(C_0_3 + C_0_5);
6773                                          const double tmp169 = w33*(C_0_2 + C_0_4);                                          const double tmp169 = w36*(C_0_2 + C_0_4);
6774                                          const double tmp170 = w38*(C_0_5 + C_0_7);                                          const double tmp170 = w38*(C_2_1 + C_2_3);
6775                                          const double tmp171 = w42*(C_2_4 + C_2_6);                                          const double tmp171 = w35*(C_2_0 + C_2_2);
6776                                          const double tmp172 = w35*(C_2_1 + C_2_3);                                          const double tmp172 = w41*(C_0_5 + C_0_7);
6777                                          const double tmp173 = w37*(C_1_3 + C_1_6);                                          const double tmp173 = w37*(C_1_1 + C_1_4);
6778                                          const double tmp174 = w32*(C_2_0 + C_2_2);                                          const double tmp174 = w39*(C_0_4 + C_0_6);
6779                                          const double tmp175 = w36*(C_0_4 + C_0_6);                                          const double tmp175 = w45*(C_2_4 + C_2_6);
6780                                          const double tmp176 = w33*(C_0_1 + C_0_3);                                          const double tmp176 = w36*(C_0_1 + C_0_3);
6781                                          const double tmp177 = w30*(C_0_0 + C_0_2);                                          const double tmp177 = w40*(C_1_3 + C_1_6);
6782                                          const double tmp178 = w43*(C_2_5 + C_2_7);                                          const double tmp178 = w33*(C_0_0 + C_0_2);
6783                                          const double tmp179 = w34*(C_1_1 + C_1_4);                                          const double tmp179 = w46*(C_2_5 + C_2_7);
6784                                          const double tmp180 = w31*(C_1_2 + C_1_6);                                          const double tmp180 = w38*(-C_2_1 - C_2_3);
6785                                          const double tmp181 = w42*(-C_2_4 - C_2_6);                                          const double tmp181 = w42*(C_1_1 + C_1_5);
6786                                          const double tmp182 = w35*(-C_2_1 - C_2_3);                                          const double tmp182 = w35*(-C_2_0 - C_2_2);
6787                                          const double tmp183 = w37*(C_1_0 + C_1_4);                                          const double tmp183 = w37*(C_1_3 + C_1_7);
6788                                          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);
6789                                          const double tmp185 = w39*(C_1_1 + C_1_5);                                          const double tmp185 = w45*(-C_2_4 - C_2_6);
6790                                          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);
6791                                          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);
6792                                          const double tmp188 = w43*(-C_2_5 - C_2_7);                                          const double tmp188 = w46*(-C_2_5 - C_2_7);
6793                                          const double tmp189 = w34*(C_1_3 + C_1_7);                                          const double tmp189 = w34*(C_1_2 + C_1_6);
6794                                          const double tmp190 = w38*(C_0_0 + C_0_4);                                          const double tmp190 = w38*(-C_2_0 - C_2_1);
6795                                          const double tmp191 = w42*(-C_2_6 - C_2_7);                                          const double tmp191 = w35*(-C_2_2 - C_2_3);
6796                                          const double tmp192 = w35*(-C_2_0 - C_2_1);                                          const double tmp192 = w41*(C_0_0 + C_0_4);
6797                                          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);
6798                                          const double tmp194 = w32*(-C_2_2 - C_2_3);                                          const double tmp194 = w39*(C_0_1 + C_0_5);
6799                                          const double tmp195 = w36*(C_0_1 + C_0_5);                                          const double tmp195 = w45*(-C_2_6 - C_2_7);
6800                                          const double tmp196 = w33*(C_0_2 + C_0_6);                                          const double tmp196 = w36*(C_0_2 + C_0_6);
6801                                          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);
6802                                          const double tmp198 = w43*(-C_2_4 - C_2_5);                                          const double tmp198 = w33*(C_0_3 + C_0_7);
6803                                          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);
6804                                          const double tmp200 = w31*(C_1_4 + C_1_5);                                          const double tmp200 = w38*(-C_2_6 - C_2_7);
6805                                          const double tmp201 = w42*(-C_2_0 - C_2_1);                                          const double tmp201 = w42*(C_1_2 + C_1_3);
6806                                          const double tmp202 = w35*(-C_2_6 - C_2_7);                                          const double tmp202 = w35*(-C_2_4 - C_2_5);
6807                                          const double tmp203 = w37*(C_1_6 + C_1_7);                                          const double tmp203 = w37*(C_1_0 + C_1_1);
6808                                          const double tmp204 = w32*(-C_2_4 - C_2_5);                                          const double tmp204 = w45*(-C_2_0 - C_2_1);
6809                                          const double tmp205 = w39*(C_1_2 + C_1_3);                                          const double tmp205 = w40*(C_1_6 + C_1_7);
6810                                          const double tmp206 = w43*(-C_2_2 - C_2_3);                                          const double tmp206 = w46*(-C_2_2 - C_2_3);
6811                                          const double tmp207 = w34*(C_1_0 + C_1_1);                                          const double tmp207 = w34*(C_1_4 + C_1_5);
6812                                          const double tmp208 = w37*(-C_1_3 - C_1_6);                                          const double tmp208 = w37*(-C_1_1 - C_1_4);
6813                                          const double tmp209 = w36*(-C_0_2 - C_0_4);                                          const double tmp209 = w39*(-C_0_2 - C_0_4);
6814                                          const double tmp210 = w33*(-C_0_3 - C_0_5);                                          const double tmp210 = w36*(-C_0_3 - C_0_5);
6815                                          const double tmp211 = w34*(-C_1_1 - C_1_4);                                          const double tmp211 = w40*(-C_1_3 - C_1_6);
6816                                          const double tmp212 = w42*(C_2_0 + C_2_3);                                          const double tmp212 = w38*(C_2_4 + C_2_7);
6817                                          const double tmp213 = w35*(C_2_4 + C_2_7);                                          const double tmp213 = w45*(C_2_0 + C_2_3);
6818                                          const double tmp214 = w38*(-C_0_1 - C_0_5);                                          const double tmp214 = w41*(-C_0_1 - C_0_5);
6819                                          const double tmp215 = w36*(-C_0_0 - C_0_4);                                          const double tmp215 = w39*(-C_0_0 - C_0_4);
6820                                          const double tmp216 = w33*(-C_0_3 - C_0_7);                                          const double tmp216 = w36*(-C_0_3 - C_0_7);
6821                                          const double tmp217 = w30*(-C_0_2 - C_0_6);                                          const double tmp217 = w33*(-C_0_2 - C_0_6);
6822                                          const double tmp218 = w31*(-C_1_0 - C_1_4);                                          const double tmp218 = w42*(-C_1_3 - C_1_7);
6823                                          const double tmp219 = w37*(-C_1_2 - C_1_6);                                          const double tmp219 = w37*(-C_1_1 - C_1_5);
6824                                          const double tmp220 = w39*(-C_1_3 - C_1_7);                                          const double tmp220 = w40*(-C_1_2 - C_1_6);
6825                                          const double tmp221 = w34*(-C_1_1 - C_1_5);                                          const double tmp221 = w34*(-C_1_0 - C_1_4);
6826                                          const double tmp222 = w36*(C_0_0 + C_0_6);                                          const double tmp222 = w39*(C_0_0 + C_0_6);
6827                                          const double tmp223 = w33*(C_0_1 + C_0_7);                                          const double tmp223 = w36*(C_0_1 + C_0_7);
6828                                          const double tmp224 = w42*(C_2_2 + C_2_3);                                          const double tmp224 = w38*(C_2_4 + C_2_5);
6829                                          const double tmp225 = w35*(C_2_4 + C_2_5);                                          const double tmp225 = w35*(C_2_6 + C_2_7);
6830                                          const double tmp226 = w32*(C_2_6 + C_2_7);                                          const double tmp226 = w45*(C_2_2 + C_2_3);
6831                                          const double tmp227 = w43*(C_2_0 + C_2_1);                                          const double tmp227 = w46*(C_2_0 + C_2_1);
6832                                          const double tmp228 = w31*(-C_1_1 - C_1_5);                                          const double tmp228 = w38*(-C_2_0 - C_2_2);
6833                                          const double tmp229 = w42*(-C_2_5 - C_2_7);                                          const double tmp229 = w42*(-C_1_2 - C_1_6);
6834                                          const double tmp230 = w35*(-C_2_0 - C_2_2);                                          const double tmp230 = w35*(-C_2_1 - C_2_3);
6835                                          const double tmp231 = w37*(-C_1_3 - C_1_7);                                          const double tmp231 = w37*(-C_1_0 - C_1_4);
6836                                          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);
6837                                          const double tmp233 = w39*(-C_1_2 - C_1_6);                                          const double tmp233 = w45*(-C_2_5 - C_2_7);
6838                                          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);
6839                                          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);
6840                                          const double tmp236 = w43*(-C_2_4 - C_2_6);                                          const double tmp236 = w46*(-C_2_4 - C_2_6);
6841                                          const double tmp237 = w34*(-C_1_0 - C_1_4);                                          const double tmp237 = w34*(-C_1_1 - C_1_5);
6842                                          const double tmp238 = w31*(C_1_3 + C_1_7);                                          const double tmp238 = w42*(C_1_0 + C_1_4);
6843                                          const double tmp239 = w37*(C_1_1 + C_1_5);                                          const double tmp239 = w37*(C_1_2 + C_1_6);
6844                                          const double tmp240 = w39*(C_1_0 + C_1_4);                                          const double tmp240 = w40*(C_1_1 + C_1_5);
6845                                          const double tmp241 = w34*(C_1_2 + C_1_6);                                          const double tmp241 = w34*(C_1_3 + C_1_7);
6846                                          const double tmp242 = w31*(-C_1_6 - C_1_7);                                          const double tmp242 = w38*(-C_2_4 - C_2_5);
6847                                          const double tmp243 = w42*(-C_2_2 - C_2_3);                                          const double tmp243 = w42*(-C_1_0 - C_1_1);
6848                                          const double tmp244 = w35*(-C_2_4 - C_2_5);                                          const double tmp244 = w35*(-C_2_6 - C_2_7);
6849                                          const double tmp245 = w37*(-C_1_4 - C_1_5);                                          const double tmp245 = w37*(-C_1_2 - C_1_3);
6850                                          const double tmp246 = w32*(-C_2_6 - C_2_7);                                          const double tmp246 = w45*(-C_2_2 - C_2_3);
6851                                          const double tmp247 = w39*(-C_1_0 - C_1_1);                                          const double tmp247 = w40*(-C_1_4 - C_1_5);
6852                                          const double tmp248 = w43*(-C_2_0 - C_2_1);                                          const double tmp248 = w46*(-C_2_0 - C_2_1);
6853                                          const double tmp249 = w34*(-C_1_2 - C_1_3);                                          const double tmp249 = w34*(-C_1_6 - C_1_7);
6854                                          const double tmp250 = w31*(-C_1_0 - C_1_1);                                          const double tmp250 = w42*(-C_1_6 - C_1_7);
6855                                          const double tmp251 = w37*(-C_1_2 - C_1_3);                                          const double tmp251 = w37*(-C_1_4 - C_1_5);
6856                                          const double tmp252 = w39*(-C_1_6 - C_1_7);                                          const double tmp252 = w40*(-C_1_2 - C_1_3);
6857                                          const double tmp253 = w34*(-C_1_4 - C_1_5);                                          const double tmp253 = w34*(-C_1_0 - C_1_1);
6858                                          const double tmp254 = w42*(C_2_0 + C_2_2);                                          const double tmp254 = w38*(C_2_5 + C_2_7);
6859                                          const double tmp255 = w35*(C_2_5 + C_2_7);                                          const double tmp255 = w35*(C_2_4 + C_2_6);
6860                                          const double tmp256 = w32*(C_2_4 + C_2_6);                                          const double tmp256 = w45*(C_2_0 + C_2_2);
6861                                          const double tmp257 = w43*(C_2_1 + C_2_3);                                          const double tmp257 = w46*(C_2_1 + C_2_3);
6862                                          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);
6863                                          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);
6864                                          const double tmp260 = w42*(C_2_1 + C_2_3);                                          const double tmp260 = w38*(C_2_4 + C_2_6);
6865                                          const double tmp261 = w35*(C_2_4 + C_2_6);                                          const double tmp261 = w35*(C_2_5 + C_2_7);
6866                                          const double tmp262 = w32*(C_2_5 + C_2_7);                                          const double tmp262 = w45*(C_2_1 + C_2_3);
6867                                          const double tmp263 = w43*(C_2_0 + C_2_2);                                          const double tmp263 = w46*(C_2_0 + C_2_2);
6868                                          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;
6869                                          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;
6870                                          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;
6871                                          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;
6872                                          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;
6873                                          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;
6874                                          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;
6875                                          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;
6876                                          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;
6877                                          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;
6878                                          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;
6879                                          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;
6880                                          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;
6881                                          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;
6882                                          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;
6883                                          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;
6884                                          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;
6885                                          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;
6886                                          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;
6887                                          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;
6888                                          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;
6889                                          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;
6890                                          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;
6891                                          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;
6892                                          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;
6893                                          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;
6894                                          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;
6895                                          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;
6896                                          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;
6897                                          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;
6898                                          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;
6899                                          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;
6900                                          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;
6901                                          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;
6902                                          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;
6903                                          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;
6904                                          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;
6905                                          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;
6906                                          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;
6907                                          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;
6908                                          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;
6909                                          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;
6910                                          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;
6911                                          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;
6912                                          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;
6913                                          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;
6914                                          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;
6915                                          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;
6916                                          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;
6917                                          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;
6918                                          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;
6919                                          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;
6920                                          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;
6921                                          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;
6922                                          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;
6923                                          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;
6924                                          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;
6925                                          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;
6926                                          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;
6927                                          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;
6928                                          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;
6929                                          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;
6930                                          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;
6931                                          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;
6932                                      }                                      }
6933                                  }                                  }
6934                              } else { // constant data                              } else { // constant data
6935                                  for (index_t k=0; k<numEq; k++) {                                  for (index_t k=0; k<numEq; k++) {
6936                                      for (index_t m=0; m<numComp; m++) {                                      for (index_t m=0; m<numComp; m++) {
6937                                          const double C_0 = C_p[INDEX3(k,m,0,numEq,numComp)];                                          const double wC0 = C_p[INDEX3(k,m,0,numEq,numComp)]*w55;
6938                                          const double C_1 = C_p[INDEX3(k,m,1,numEq,numComp)];                                          const double wC1 = C_p[INDEX3(k,m,1,numEq,numComp)]*w56;
6939                                          const double C_2 = C_p[INDEX3(k,m,2,numEq,numComp)];                                          const double wC2 = C_p[INDEX3(k,m,2,numEq,numComp)]*w54;
6940                                          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;
6941                                          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;
6942                                          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;
6943                                          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;
6944                                          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;
6945                                          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;
6946                                          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;
6947                                          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;
6948                                          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;
6949                                          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;
6950                                          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;
6951                                          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;
6952                                          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;
6953                                          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;
6954                                          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;
6955                                          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;
6956                                          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;
6957                                          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;
6958                                          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;
6959                                          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;
6960                                          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;
6961                                          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;
6962                                          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;
6963                                          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;
6964                                          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;
6965                                          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;
6966                                          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;
6967                                          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;
6968                                          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;
6969                                          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;
6970                                          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;
6971                                          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;
6972                                          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;
6973                                          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;
6974                                          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;
6975                                          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;
6976                                          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;
6977                                          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;
6978                                          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;
6979                                          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;
6980                                          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;
6981                                          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;
6982                                          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;
6983                                          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;
6984                                          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;
6985                                          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;
6986                                          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;
6987                                          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;
6988                                          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;
6989                                          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;
6990                                          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;
6991                                          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;
6992                                          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;
6993                                          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;
6994                                          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;
6995                                          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;
6996                                          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;
6997                                          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;
6998                                          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;
6999                                          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;
7000                                          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;
7001                                          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;
7002                                          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;
7003                                          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;
7004                                      }                                      }
7005                                  }                                  }
7006                              }                              }
# Line 7010  void Brick::assemblePDESystem(Paso_Syste Line 7022  void Brick::assemblePDESystem(Paso_Syste
7022                                          const double D_5 = D_p[INDEX3(k,m,5,numEq,numComp)];                                          const double D_5 = D_p[INDEX3(k,m,5,numEq,numComp)];
7023                                          const double D_6 = D_p[INDEX3(k,m,6,numEq,numComp)];                                          const double D_6 = D_p[INDEX3(k,m,6,numEq,numComp)];
7024                                          const double D_7 = D_p[INDEX3(k,m,7,numEq,numComp)];                                          const double D_7 = D_p[INDEX3(k,m,7,numEq,numComp)];
7025                                          const double tmp0 = w54*(D_0 + D_4);                                          const double tmp0 = w59*(D_3 + D_7);
7026                                          const double tmp1 = w55*(D_1 + D_2 + D_5 + D_6);                                          const double tmp1 = w57*(D_0 + D_4);
7027                                          const double tmp2 = w56*(D_3 + D_7);                                          const double tmp2 = w58*(D_1 + D_2 + D_5 + D_6);
7028                                          const double tmp3 = w57*(D_0 + D_1 + D_2 + D_3);                                          const double tmp3 = w60*(D_0 + D_1 + D_2 + D_3);
7029                                          const double tmp4 = w58*(D_4 + D_5 + D_6 + D_7);                                          const double tmp4 = w61*(D_4 + D_5 + D_6 + D_7);
7030                                          const double tmp5 = w54*(D_4 + D_6);                                          const double tmp5 = w59*(D_1 + D_3);
7031                                          const double tmp6 = w55*(D_0 + D_2 + D_5 + D_7);                                          const double tmp6 = w57*(D_4 + D_6);
7032                                          const double tmp7 = w56*(D_1 + D_3);                                          const double tmp7 = w58*(D_0 + D_2 + D_5 + D_7);
7033                                          const double tmp8 = w54*(D_1 + D_3);                                          const double tmp8 = w59*(D_4 + D_6);
7034                                          const double tmp9 = w56*(D_4 + D_6);                                          const double tmp9 = w57*(D_1 + D_3);
7035                                          const double tmp10 = w57*(D_4 + D_5 + D_6 + D_7);                                          const double tmp10 = w60*(D_4 + D_5 + D_6 + D_7);
7036                                          const double tmp11 = w58*(D_0 + D_1 + D_2 + D_3);                                          const double tmp11 = w61*(D_0 + D_1 + D_2 + D_3);
7037                                          const double tmp12 = w54*(D_2 + D_3);                                          const double tmp12 = w59*(D_4 + D_5);
7038                                          const double tmp13 = w55*(D_0 + D_1 + D_6 + D_7);                                          const double tmp13 = w57*(D_2 + D_3);
7039                                          const double tmp14 = w56*(D_4 + D_5);                                          const double tmp14 = w58*(D_0 + D_1 + D_6 + D_7);
7040                                          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);
7041                                          const double tmp16 = w54*(D_1 + D_5);                                          const double tmp16 = w59*(D_2 + D_6);
7042                                          const double tmp17 = w55*(D_0 + D_3 + D_4 + D_7);                                          const double tmp17 = w57*(D_1 + D_5);
7043                                          const double tmp18 = w56*(D_2 + D_6);                                          const double tmp18 = w58*(D_0 + D_3 + D_4 + D_7);
7044                                          const double tmp19 = w54*(D_2 + D_6);                                          const double tmp19 = w59*(D_1 + D_5);
7045                                          const double tmp20 = w56*(D_1 + D_5);                                          const double tmp20 = w57*(D_2 + D_6);
7046                                          const double tmp21 = w57*(D_0 + D_1 + D_4 + D_5);                                          const double tmp21 = w60*(D_0 + D_1 + D_4 + D_5);
7047                                          const double tmp22 = w58*(D_2 + D_3 + D_6 + D_7);                                          const double tmp22 = w61*(D_2 + D_3 + D_6 + D_7);
7048                                          const double tmp23 = w54*(D_3 + D_7);                                          const double tmp23 = w59*(D_0 + D_4);
7049                                          const double tmp24 = w56*(D_0 + D_4);                                          const double tmp24 = w57*(D_3 + D_7);
7050                                          const double tmp25 = w54*(D_0 + D_1);                                          const double tmp25 = w59*(D_6 + D_7);
7051                                          const double tmp26 = w55*(D_2 + D_3 + D_4 + D_5);                                          const double tmp26 = w57*(D_0 + D_1);
7052                                          const double tmp27 = w56*(D_6 + D_7);                                          const double tmp27 = w58*(D_2 + D_3 + D_4 + D_5);
7053                                          const double tmp28 = w57*(D_0 + D_5 + D_6);                                          const double tmp28 = w60*(D_0 + D_5 + D_6);
7054                                          const double tmp29 = w58*(D_1 + D_2 + D_7);                                          const double tmp29 = w61*(D_1 + D_2 + D_7);
7055                                          const double tmp30 = w54*(D_5 + D_7);                                          const double tmp30 = w59*(D_0 + D_2);
7056                                          const double tmp31 = w55*(D_1 + D_3 + D_4 + D_6);                                          const double tmp31 = w57*(D_5 + D_7);
7057                                          const double tmp32 = w56*(D_0 + D_2);                                          const double tmp32 = w58*(D_1 + D_3 + D_4 + D_6);
7058                                          const double tmp33 = w57*(D_1 + D_2 + D_7);                                          const double tmp33 = w60*(D_1 + D_2 + D_7);
7059                                          const double tmp34 = w58*(D_0 + D_5 + D_6);                                          const double tmp34 = w61*(D_0 + D_5 + D_6);
7060                                          const double tmp35 = w57*(D_1 + D_4 + D_7);                                          const double tmp35 = w60*(D_1 + D_4 + D_7);
7061                                          const double tmp36 = w58*(D_0 + D_3 + D_6);                                          const double tmp36 = w61*(D_0 + D_3 + D_6);
7062                                          const double tmp37 = w57*(D_1 + D_2 + D_4);                                          const double tmp37 = w60*(D_1 + D_2 + D_4);
7063                                          const double tmp38 = w58*(D_3 + D_5 + D_6);                                          const double tmp38 = w61*(D_3 + D_5 + D_6);
7064                                          const double tmp39 = w54*(D_0 + D_2);                                          const double tmp39 = w59*(D_5 + D_7);
7065                                          const double tmp40 = w56*(D_5 + D_7);                                          const double tmp40 = w57*(D_0 + D_2);
7066                                          const double tmp41 = w57*(D_0 + D_2 + D_4 + D_6);                                          const double tmp41 = w60*(D_0 + D_2 + D_4 + D_6);
7067                                          const double tmp42 = w58*(D_1 + D_3 + D_5 + D_7);                                          const double tmp42 = w61*(D_1 + D_3 + D_5 + D_7);
7068                                          const double tmp43 = w57*(D_2 + D_3 + D_6 + D_7);                                          const double tmp43 = w60*(D_2 + D_3 + D_6 + D_7);
7069                                          const double tmp44 = w58*(D_0 + D_1 + D_4 + D_5);                                          const double tmp44 = w61*(D_0 + D_1 + D_4 + D_5);
7070                                          const double tmp45 = w57*(D_2 + D_4 + D_7);                                          const double tmp45 = w60*(D_2 + D_4 + D_7);
7071                                          const double tmp46 = w58*(D_0 + D_3 + D_5);                                          const double tmp46 = w61*(D_0 + D_3 + D_5);
7072                                          const double tmp47 = w54*(D_4 + D_5);                                          const double tmp47 = w59*(D_2 + D_3);
7073                                          const double tmp48 = w56*(D_2 + D_3);                                          const double tmp48 = w57*(D_4 + D_5);
7074                                          const double tmp49 = w57*(D_3 + D_5 + D_6);                                          const double tmp49 = w60*(D_3 + D_5 + D_6);
7075                                          const double tmp50 = w58*(D_1 + D_2 + D_4);                                          const double tmp50 = w61*(D_1 + D_2 + D_4);
7076                                          const double tmp51 = w57*(D_0 + D_3 + D_5);                                          const double tmp51 = w60*(D_0 + D_3 + D_5);
7077                                          const double tmp52 = w58*(D_2 + D_4 + D_7);                                          const double tmp52 = w61*(D_2 + D_4 + D_7);
7078                                          const double tmp53 = w57*(D_0 + D_3 + D_6);                                          const double tmp53 = w60*(D_0 + D_3 + D_6);
7079                                          const double tmp54 = w58*(D_1 + D_4 + D_7);                                          const double tmp54 = w61*(D_1 + D_4 + D_7);
7080                                          const double tmp55 = w57*(D_1 + D_3 + D_5 + D_7);                                          const double tmp55 = w60*(D_1 + D_3 + D_5 + D_7);
7081                                          const double tmp56 = w58*(D_0 + D_2 + D_4 + D_6);                                          const double tmp56 = w61*(D_0 + D_2 + D_4 + D_6);
7082                                          const double tmp57 = w54*(D_6 + D_7);                                          const double tmp57 = w59*(D_0 + D_1);
7083                                          const double tmp58 = w56*(D_0 + D_1);                                          const double tmp58 = w57*(D_6 + D_7);
7084                                          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;
7085                                          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;
7086                                          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;
7087                                          EM_S[INDEX4(k,m,0,3,numEq,numComp,8)]+=tmp10 + tmp11;                                          EM_S[INDEX4(k,m,0,3,numEq,numComp,8)]+=tmp10 + tmp11;
7088                                          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;
7089                                          EM_S[INDEX4(k,m,0,5,numEq,numComp,8)]+=tmp43 + tmp44;                                          EM_S[INDEX4(k,m,0,5,numEq,numComp,8)]+=tmp43 + tmp44;
7090                                          EM_S[INDEX4(k,m,0,6,numEq,numComp,8)]+=tmp55 + tmp56;                                          EM_S[INDEX4(k,m,0,6,numEq,numComp,8)]+=tmp55 + tmp56;
7091                                          EM_S[INDEX4(k,m,0,7,numEq,numComp,8)]+=tmp15;                                          EM_S[INDEX4(k,m,0,7,numEq,numComp,8)]+=tmp15;
7092                                          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;
7093                                          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;
7094                                          EM_S[INDEX4(k,m,1,2,numEq,numComp,8)]+=tmp10 + tmp11;                                          EM_S[INDEX4(k,m,1,2,numEq,numComp,8)]+=tmp10 + tmp11;
7095                                          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;
7096                                          EM_S[INDEX4(k,m,1,4,numEq,numComp,8)]+=tmp43 + tmp44;                                          EM_S[INDEX4(k,m,1,4,numEq,numComp,8)]+=tmp43 + tmp44;
7097                                          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;
7098                                          EM_S[INDEX4(k,m,1,6,numEq,numComp,8)]+=tmp15;                                          EM_S[INDEX4(k,m,1,6,numEq,numComp,8)]+=tmp15;
7099                                          EM_S[INDEX4(k,m,1,7,numEq,numComp,8)]+=tmp41 + tmp42;                                          EM_S[INDEX4(k,m,1,7,numEq,numComp,8)]+=tmp41 + tmp42;
7100                                          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;
7101                                          EM_S[INDEX4(k,m,2,1,numEq,numComp,8)]+=tmp10 + tmp11;                                          EM_S[INDEX4(k,m,2,1,numEq,numComp,8)]+=tmp10 + tmp11;
7102                                          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;
7103                                          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;
7104                                          EM_S[INDEX4(k,m,2,4,numEq,numComp,8)]+=tmp55 + tmp56;                                          EM_S[INDEX4(k,m,2,4,numEq,numComp,8)]+=tmp55 + tmp56;
7105                                          EM_S[INDEX4(k,m,2,5,numEq,numComp,8)]+=tmp15;                                          EM_S[INDEX4(k,m,2,5,numEq,numComp,8)]+=tmp15;
7106                                          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;
7107                                          EM_S[INDEX4(k,m,2,7,numEq,numComp,8)]+=tmp21 + tmp22;                                          EM_S[INDEX4(k,m,2,7,numEq,numComp,8)]+=tmp21 + tmp22;
7108                                          EM_S[INDEX4(k,m,3,0,numEq,numComp,8)]+=tmp10 + tmp11;                                          EM_S[INDEX4(k,m,3,0,numEq,numComp,8)]+=tmp10 + tmp11;
7109                                          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;
7110                                          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;
7111                                          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;
7112                                          EM_S[INDEX4(k,m,3,4,numEq,numComp,8)]+=tmp15;                                          EM_S[INDEX4(k,m,3,4,numEq,numComp,8)]+=tmp15;
7113                                          EM_S[INDEX4(k,m,3,5,numEq,numComp,8)]+=tmp41 + tmp42;                                          EM_S[INDEX4(k,m,3,5,numEq,numComp,8)]+=tmp41 + tmp42;
7114                                          EM_S[INDEX4(k,m,3,6,numEq,numComp,8)]+=tmp21 + tmp22;                                          EM_S[INDEX4(k,m,3,6,numEq,numComp,8)]+=tmp21 + tmp22;
7115                                          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;
7116                                          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;
7117                                          EM_S[INDEX4(k,m,4,1,numEq,numComp,8)]+=tmp43 + tmp44;                                          EM_S[INDEX4(k,m,4,1,numEq,numComp,8)]+=tmp43 + tmp44;
7118                                          EM_S[INDEX4(k,m,4,2,numEq,numComp,8)]+=tmp55 + tmp56;                                          EM_S[INDEX4(k,m,4,2,numEq,numComp,8)]+=tmp55 + tmp56;
7119                                          EM_S[INDEX4(k,m,4,3,numEq,numComp,8)]+=tmp15;                                          EM_S[INDEX4(k,m,4,3,numEq,numComp,8)]+=tmp15;
7120                                          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;
7121                                          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;
7122                                          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;
7123                                          EM_S[INDEX4(k,m,4,7,numEq,numComp,8)]+=tmp3 + tmp4;                                          EM_S[INDEX4(k,m,4,7,numEq,numComp,8)]+=tmp3 + tmp4;
7124                                          EM_S[INDEX4(k,m,5,0,numEq,numComp,8)]+=tmp43 + tmp44;                                          EM_S[INDEX4(k,m,5,0,numEq,numComp,8)]+=tmp43 + tmp44;
7125                                          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;
7126                                          EM_S[INDEX4(k,m,5,2,numEq,numComp,8)]+=tmp15;                                          EM_S[INDEX4(k,m,5,2,numEq,numComp,8)]+=tmp15;
7127                                          EM_S[INDEX4(k,m,5,3,numEq,numComp,8)]+=tmp41 + tmp42;                                          EM_S[INDEX4(k,m,5,3,numEq,numComp,8)]+=tmp41 + tmp42;
7128                                          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;
7129                                          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;
7130                                          EM_S[INDEX4(k,m,5,6,numEq,numComp,8)]+=tmp3 + tmp4;                                          EM_S[INDEX4(k,m,5,6,numEq,numComp,8)]+=tmp3 + tmp4;
7131                                          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;
7132                                          EM_S[INDEX4(k,m,6,0,numEq,numComp,8)]+=tmp55 + tmp56;                                          EM_S[INDEX4(k,m,6,0,numEq,numComp,8)]+=tmp55 + tmp56;
7133                                          EM_S[INDEX4(k,m,6,1,numEq,numComp,8)]+=tmp15;                                          EM_S[INDEX4(k,m,6,1,numEq,numComp,8)]+=tmp15;
7134                                          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;
7135                                          EM_S[INDEX4(k,m,6,3,numEq,numComp,8)]+=tmp21 + tmp22;                                          EM_S[INDEX4(k,m,6,3,numEq,numComp,8)]+=tmp21 + tmp22;
7136                                          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;
7137                                          EM_S[INDEX4(k,m,6,5,numEq,numComp,8)]+=tmp3 + tmp4;                                          EM_S[INDEX4(k,m,6,5,numEq,numComp,8)]+=tmp3 + tmp4;
7138                                          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;
7139                                          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;
7140                                          EM_S[INDEX4(k,m,7,0,numEq,numComp,8)]+=tmp15;                                          EM_S[INDEX4(k,m,7,0,numEq,numComp,8)]+=tmp15;
7141                                          EM_S[INDEX4(k,m,7,1,numEq,numComp,8)]+=tmp41 + tmp42;                                          EM_S[INDEX4(k,m,7,1,numEq,numComp,8)]+=tmp41 + tmp42;
7142                                          EM_S[INDEX4(k,m,7,2,numEq,numComp,8)]+=tmp21 + tmp22;                                          EM_S[INDEX4(k,m,7,2,numEq,numComp,8)]+=tmp21 + tmp22;
7143                                          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;
7144                                          EM_S[INDEX4(k,m,7,4,numEq,numComp,8)]+=tmp3 + tmp4;                                          EM_S[INDEX4(k,m,7,4,numEq,numComp,8)]+=tmp3 + tmp4;
7145                                          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;
7146                                          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;
7147                                          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;
7148                                      }                                      }
7149                                   }                                   }
7150                              } else { // constant data                              } else { // constant data
7151                                  for (index_t k=0; k<numEq; k++) {                                  for (index_t k=0; k<numEq; k++) {
7152                                      for (index_t m=0; m<numComp; m++) {                                      for (index_t m=0; m<numComp; m++) {
7153                                          const double D_0 = D_p[INDEX2(k, m, numEq)];                                          const double wD0 = 8*D_p[INDEX2(k, m, numEq)]*w58;
7154                                          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;
7155                                          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;
7156                                          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;
7157                                          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;
7158                                          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;
7159                                          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;
7160                                          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;
7161                                          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;
7162                                          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;
7163                                          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;
7164                                          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;
7165                                          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;
7166                                          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;
7167                                          EM_S[INDEX4(k,m,1,5,numEq,numComp,8)]+=32*D_0*w55;