/[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 4377 by caltinay, Tue Apr 23 05:30:02 2013 UTC revision 4477 by caltinay, Thu Jun 20 02:41:28 2013 UTC
# Line 17  Line 17 
17  #include <paso/SystemMatrix.h>  #include <paso/SystemMatrix.h>
18  #include <esysUtils/esysFileWriter.h>  #include <esysUtils/esysFileWriter.h>
19    
20    #include <boost/scoped_array.hpp>
21    
22  #ifdef USE_NETCDF  #ifdef USE_NETCDF
23  #include <netcdfcpp.h>  #include <netcdfcpp.h>
24  #endif  #endif
# Line 294  void Brick::readNcGrid(escript::Data& ou Line 296  void Brick::readNcGrid(escript::Data& ou
296          throw RipleyException("readNcGrid(): only scalar data supported");          throw RipleyException("readNcGrid(): only scalar data supported");
297    
298      const int dims = var->num_dims();      const int dims = var->num_dims();
299      const long *edges = var->edges();      boost::scoped_array<long> edges(var->edges());
300    
301      // is this a slice of the data object (dims!=3)?      // is this a slice of the data object (dims!=3)?
302      // note the expected ordering of edges (as in numpy: z,y,x)      // note the expected ordering of edges (as in numpy: z,y,x)
# Line 2794  void Brick::assemblePDESingle(Paso_Syste Line 2796  void Brick::assemblePDESingle(Paso_Syste
2796          const escript::Data& C, const escript::Data& D,          const escript::Data& C, const escript::Data& D,
2797          const escript::Data& X, const escript::Data& Y) const          const escript::Data& X, const escript::Data& Y) const
2798  {  {
2799      /* GENERATOR SNIP_PDE_SINGLE_PRE TOP */      const double SQRT3 = 1.73205080756887719318;
2800      const double w0 = 0.00093037914038584273081*m_dx[1]*m_dx[2]/m_dx[0];      const double w10 = -m_dx[0]/288;
2801      const double w1 = 0.00093037914038584273081*m_dx[2];      const double w6 = w10*(SQRT3 - 2);
2802      const double w2 = -0.000249294339321148701*m_dx[1];      const double w12 = w10*(-SQRT3 - 2);
2803      const double w3 = 0.00093037914038584273081*m_dx[0]*m_dx[2]/m_dx[1];      const double w4 = w10*(-4*SQRT3 + 7);
2804      const double w4 = -0.000249294339321148701*m_dx[0];      const double w18 = w10*(-4*SQRT3 - 7);
2805      const double w5 = 0.00093037914038584273081*m_dx[1];      const double w11 = m_dx[1]/288;
2806      const double w6 = 0.00093037914038584273081*m_dx[0];      const double w5 = w11*(-SQRT3 + 2);
2807      const double w7 = -0.000249294339321148701*m_dx[0]*m_dx[1]/m_dx[2];      const double w15 = w11*(SQRT3 + 2);
2808      const double w8 = 0.0034722222222222222222*m_dx[2];      const double w2 = w11*(4*SQRT3 - 7);
2809      const double w9 = 0.012958509748503046158*m_dx[0]*m_dx[2]/m_dx[1];      const double w17 = w11*(4*SQRT3 + 7);
2810      const double w10 = -0.0034722222222222222222*m_dx[0];      const double w8 = m_dx[2]/288;
2811      const double w11 = 0.0034722222222222222222*m_dx[1];      const double w1 = w8*(-SQRT3 + 2);
2812      const double w12 = 0.012958509748503046158*m_dx[0];      const double w16 = w8*(SQRT3 + 2);
2813      const double w13 = -0.0034722222222222222222*m_dx[0]*m_dx[1]/m_dx[2];      const double w20 = w8*(4*SQRT3 - 7);
2814      const double w14 = 0.012958509748503046158*m_dx[1]*m_dx[2]/m_dx[0];      const double w21 = w8*(-4*SQRT3 - 7);
2815      const double w15 = 0.012958509748503046158*m_dx[1];      const double w50 = m_dx[0]*m_dx[1]/72;
2816      const double w16 = 0.012958509748503046158*m_dx[2];      const double w65 = -m_dx[0]*m_dx[1]/48;
2817      const double w17 = 0.04836181677178996241*m_dx[1];      const double w35 = w65*(-SQRT3 - 3)/36;
2818      const double w18 = 0.04836181677178996241*m_dx[0];      const double w42 = w65*(SQRT3 - 3)/36;
2819      const double w19 = -0.04836181677178996241*m_dx[0]*m_dx[1]/m_dx[2];      const double w32 = w65*(5*SQRT3 - 9)/36;
2820      const double w20 = -0.000249294339321148701*m_dx[2];      const double w43 = w65*(-5*SQRT3 - 9)/36;
2821      const double w21 = -0.04836181677178996241*m_dx[2];      const double w40 = w65*(-19*SQRT3 - 33)/36;
2822      const double w22 = -0.0034722222222222222222*m_dx[0]*m_dx[2]/m_dx[1];      const double w41 = w65*(19*SQRT3 - 33)/36;
2823      const double w23 = 0.00093037914038584273081*m_dx[0]*m_dx[1]/m_dx[2];      const double w63 = w65*(SQRT3 + 2);
2824      const double w24 = -0.04836181677178996241*m_dx[0]*m_dx[2]/m_dx[1];      const double w67 = w65*(-SQRT3 + 2);
2825      const double w25 = 0.012958509748503046158*m_dx[0]*m_dx[1]/m_dx[2];      const double w51 = -m_dx[0]*m_dx[2]/72;
2826      const double w26 = -0.000249294339321148701*m_dx[0]*m_dx[2]/m_dx[1];      const double w64 = -m_dx[0]*m_dx[2]/48;
2827      const double w27 = -0.0034722222222222222222*m_dx[1]*m_dx[2]/m_dx[0];      const double w34 = w64*(-SQRT3 - 3)/36;
2828      const double w28 = -0.000249294339321148701*m_dx[1]*m_dx[2]/m_dx[0];      const double w37 = w64*(SQRT3 - 3)/36;
2829      const double w29 = -0.04836181677178996241*m_dx[1]*m_dx[2]/m_dx[0];      const double w31 = w64*(5*SQRT3 - 9)/36;
2830      const double w30 = 0.0001966122466178319053*m_dx[1]*m_dx[2];      const double w39 = w64*(-5*SQRT3 - 9)/36;
2831      const double w31 = 0.0001966122466178319053*m_dx[0]*m_dx[2];      const double w44 = w64*(19*SQRT3 + 33)/36;
2832      const double w32 = 0.0001966122466178319053*m_dx[0]*m_dx[1];      const double w45 = w64*(-19*SQRT3 + 33)/36;
2833      const double w33 = 0.0007337668937680108255*m_dx[1]*m_dx[2];      const double w62 = w64*(SQRT3 + 2);
2834      const double w34 = 0.0027384553284542113967*m_dx[0]*m_dx[2];      const double w68 = w64*(-SQRT3 + 2);
2835      const double w35 = 0.0027384553284542113967*m_dx[0]*m_dx[1];      const double w53 = -m_dx[1]*m_dx[2]/72;
2836      const double w36 = 0.0027384553284542113967*m_dx[1]*m_dx[2];      const double w66 = -m_dx[1]*m_dx[2]/48;
2837      const double w37 = 0.0007337668937680108255*m_dx[0]*m_dx[2];      const double w33 = w66*(SQRT3 - 3)/36;
2838      const double w38 = 0.010220054420048834761*m_dx[1]*m_dx[2];      const double w36 = w66*(-SQRT3 - 3)/36;
2839      const double w39 = 0.010220054420048834761*m_dx[0]*m_dx[2];      const double w30 = w66*(5*SQRT3 - 9)/36;
2840      const double w40 = 0.038141762351741127649*m_dx[0]*m_dx[1];      const double w38 = w66*(-5*SQRT3 - 9)/36;
2841      const double w41 = 0.000052682092703316795698*m_dx[0]*m_dx[1];      const double w46 = w66*(19*SQRT3 - 33)/36;
2842      const double w42 = 0.0007337668937680108255*m_dx[0]*m_dx[1];      const double w47 = w66*(-19*SQRT3 - 33)/36;
2843      const double w43 = 0.010220054420048834761*m_dx[0]*m_dx[1];      const double w61 = w66*(SQRT3 + 2);
2844      const double w44 = -0.038141762351741127649*m_dx[0]*m_dx[2];      const double w69 = w66*(-SQRT3 + 2);
2845      const double w45 = -0.000052682092703316795698*m_dx[0]*m_dx[2];      const double w55 = m_dx[0]*m_dx[1]*m_dx[2]/1728;
2846      const double w46 = 0.000052682092703316795698*m_dx[1]*m_dx[2];      const double w57 = w55*(-SQRT3 + 2);
2847      const double w47 = 0.038141762351741127649*m_dx[1]*m_dx[2];      const double w58 = w55*(SQRT3 + 2);
2848      const double w48 = 0.027777777777777777778*m_dx[1]*m_dx[2];      const double w54 = w55*(-4*SQRT3 + 7);
2849      const double w49 = 0.027777777777777777778*m_dx[0]*m_dx[2];      const double w56 = w55*(4*SQRT3 + 7);
2850      const double w50 = 0.055555555555555555556*m_dx[0]*m_dx[1];      const double w59 = w55*(15*SQRT3 + 26);
2851      const double w51 = -0.055555555555555555556*m_dx[0]*m_dx[2];      const double w60 = w55*(-15*SQRT3 + 26);
2852      const double w52 = -0.027777777777777777778*m_dx[0]*m_dx[1];      const double w71 = w55*6*(SQRT3 + 3);
2853      const double w53 = -0.013888888888888888889*m_dx[1]*m_dx[2];      const double w72 = w55*6*(-SQRT3 + 3);
2854      const double w54 = 0.0000415490565535247835*m_dx[0]*m_dx[1]*m_dx[2];      const double w70 = w55*6*(5*SQRT3 + 9);
2855      const double w55 = 0.0005787037037037037037*m_dx[0]*m_dx[1]*m_dx[2];      const double w73 = w55*6*(-5*SQRT3 + 9);
2856      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]);
2857      const double w57 = 0.0001550631900643071218*m_dx[0]*m_dx[1]*m_dx[2];      const double w23 = w13*(SQRT3 - 2);
2858      const double w58 = 0.002159751624750507693*m_dx[0]*m_dx[1]*m_dx[2];      const double w25 = w13*(-SQRT3 - 2);
2859      const double w59 = 0.03008145955644280058*m_dx[0]*m_dx[1]*m_dx[2];      const double w7 = w13*(-4*SQRT3 + 7);
2860      const double w60 = 0.000011133036149792012194*m_dx[0]*m_dx[1]*m_dx[2];      const double w19 = w13*(4*SQRT3 + 7);
2861      const double w61 = -0.077751058491018276948*m_dx[1]*m_dx[2];      const double w22 = -m_dx[0]*m_dx[2]/(288*m_dx[1]);
2862      const double w62 = -0.077751058491018276948*m_dx[0]*m_dx[2];      const double w3 = w22*(SQRT3 - 2);
2863      const double w63 = -0.077751058491018276948*m_dx[0]*m_dx[1];      const double w9 = w22*(-SQRT3 - 2);
2864      const double w64 = -0.020833333333333333333*m_dx[0]*m_dx[2];      const double w24 = w22*(4*SQRT3 + 7);
2865      const double w65 = -0.020833333333333333333*m_dx[0]*m_dx[1];      const double w26 = w22*(-4*SQRT3 + 7);
2866      const double w66 = -0.020833333333333333333*m_dx[1]*m_dx[2];      const double w27 = -m_dx[1]*m_dx[2]/(288*m_dx[0]);
2867      const double w67 = -0.0055822748423150563848*m_dx[0]*m_dx[1];      const double w0 = w27*(SQRT3 - 2);
2868      const double w68 = -0.0055822748423150563848*m_dx[0]*m_dx[2];      const double w14 = w27*(-SQRT3 - 2);
2869      const double w69 = -0.0055822748423150563848*m_dx[1]*m_dx[2];      const double w28 = w27*(-4*SQRT3 + 7);
2870      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 */  
2871    
2872      rhs.requireWrite();      rhs.requireWrite();
2873  #pragma omp parallel  #pragma omp parallel
# Line 2884  void Brick::assemblePDESingle(Paso_Syste Line 2882  void Brick::assemblePDESingle(Paso_Syste
2882                          vector<double> EM_S(8*8, 0);                          vector<double> EM_S(8*8, 0);
2883                          vector<double> EM_F(8, 0);                          vector<double> EM_F(8, 0);
2884                          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 */  
2885                          ///////////////                          ///////////////
2886                          // process A //                          // process A //
2887                          ///////////////                          ///////////////
# Line 3539  void Brick::assemblePDESingle(Paso_Syste Line 3536  void Brick::assemblePDESingle(Paso_Syste
3536                                  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;
3537                                  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;
3538                              } else { // constant data                              } else { // constant data
3539                                  const double A_00 = A_p[INDEX2(0,0,3)];                                  const double Aw00 = 8*A_p[INDEX2(0,0,3)]*w27;
3540                                  const double A_01 = A_p[INDEX2(0,1,3)];                                  const double Aw01 = 12*A_p[INDEX2(0,1,3)]*w8;
3541                                  const double A_02 = A_p[INDEX2(0,2,3)];                                  const double Aw02 = 12*A_p[INDEX2(0,2,3)]*w11;
3542                                  const double A_10 = A_p[INDEX2(1,0,3)];                                  const double Aw10 = 12*A_p[INDEX2(1,0,3)]*w8;
3543                                  const double A_11 = A_p[INDEX2(1,1,3)];                                  const double Aw11 = 8*A_p[INDEX2(1,1,3)]*w22;
3544                                  const double A_12 = A_p[INDEX2(1,2,3)];                                  const double Aw12 = 12*A_p[INDEX2(1,2,3)]*w10;
3545                                  const double A_20 = A_p[INDEX2(2,0,3)];                                  const double Aw20 = 12*A_p[INDEX2(2,0,3)]*w11;
3546                                  const double A_21 = A_p[INDEX2(2,1,3)];                                  const double Aw21 = 12*A_p[INDEX2(2,1,3)]*w10;
3547                                  const double A_22 = A_p[INDEX2(2,2,3)];                                  const double Aw22 = 8*A_p[INDEX2(2,2,3)]*w13;
3548                                  const double tmp0 = 24*w11*(-A_02 + A_20);                                  const double tmp0 = Aw01 + Aw10;
3549                                  const double tmp1 = 24*w10*(A_12 - A_21);                                  const double tmp1 = Aw01 - Aw10;
3550                                  const double tmp2 = 12*w8*(A_01 + A_10);                                  const double tmp2 = -Aw01 - Aw10;
3551                                  const double tmp3 = 12*w11*(-A_02 + A_20);                                  const double tmp3 = -Aw01 + Aw10;
3552                                  const double tmp4 = 12*w10*(A_12 - A_21);                                  const double tmp4 = Aw02 + Aw20;
3553                                  const double tmp5 = 24*w8*(-A_01 - A_10);                                  const double tmp5 = Aw02 - Aw20;
3554                                  const double tmp6 = 12*w11*(-A_02 - A_20);                                  const double tmp6 = -Aw02 - Aw20;
3555                                  const double tmp7 = 24*w10*(-A_12 + A_21);                                  const double tmp7 = -Aw02 + Aw20;
3556                                  const double tmp8 = 24*w8*(A_01 - A_10);                                  const double tmp8 = Aw12 + Aw21;
3557                                  const double tmp9 = 24*w11*(A_02 - A_20);                                  const double tmp9 = Aw12 - Aw21;
3558                                  const double tmp10 = 12*w10*(A_12 + A_21);                                  const double tmp10 = -Aw12 - Aw21;
3559                                  const double tmp11 = 24*w8*(-A_01 + A_10);                                  const double tmp11 = -Aw12 + Aw21;
3560                                  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;
3561                                  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;
3562                                  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;
3563                                  const double tmp15 = 12*w11*(A_02 + A_20);                                  EM_S[INDEX2(0,3,8)]+= 2*Aw00 + 2*Aw11 -   Aw22 + tmp5 + tmp11 + 2*tmp2;
3564                                  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;
3565                                  const double tmp17 = 12*w10*(-A_12 + A_21);                                  EM_S[INDEX2(0,5,8)]+= 2*Aw00 -   Aw11 + 2*Aw22 + 2*tmp6 + tmp1 + tmp9;
3566                                  const double tmp18 = 24*w11*(-A_02 - A_20);                                  EM_S[INDEX2(0,6,8)]+=  -Aw00 + 2*Aw11 + 2*Aw22 + 2*tmp8 + tmp3 + tmp7;
3567                                  const double tmp19 = 12*w8*(A_01 - A_10);                                  EM_S[INDEX2(0,7,8)]+=   Aw00 +   Aw11 +   Aw22 + tmp8 + tmp2 + tmp6;
3568                                  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;
3569                                  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;
3570                                  const double tmp22 = 12*w8*(-A_01 + A_10);                                  EM_S[INDEX2(1,2,8)]+= 2*Aw00 + 2*Aw11 -   Aw22 + 2*tmp0 + tmp11 + tmp7;
3571                                  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;
3572                                  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;
3573                                  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;
3574                                  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;
3575                                  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;
3576                                  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;
3577                                  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;
3578                                  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;
3579                                  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;
3580                                  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;
3581                                  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;
3582                                  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;
3583                                  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;
3584                                  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;
3585                                  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;
3586                                  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;
3587                                  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;
3588                                  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;
3589                                  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;
3590                                  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;
3591                                  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;
3592                                  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;
3593                                  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;
3594                                  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;
3595                                  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;
3596                                  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;
3597                                  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;
3598                                  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;
3599                                  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;
3600                                  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;
3601                                  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;
3602                                  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;
3603                                  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;
3604                                  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;
3605                                  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;
3606                                  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;
3607                                  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;
3608                                  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;
3609                                  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;
3610                                  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;
3611                                  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;
3612                                  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;
3613                                  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;
3614                                  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;
3615                                  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;
3616                                  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;
3617                                  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;
3618                                  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;
3619                                  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;
3620                                  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;
3621                                  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;
3622                                  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;
3623                                  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;  
3624                              }                              }
3625                          }                          }
3626                          ///////////////                          ///////////////
# Line 3998  void Brick::assemblePDESingle(Paso_Syste Line 3983  void Brick::assemblePDESingle(Paso_Syste
3983                                  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;
3984                                  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;
3985                              } else { // constant data                              } else { // constant data
3986                                  const double B_0 = B_p[0];                                  const double wB0 = B_p[0]*w53;
3987                                  const double B_1 = B_p[1];                                  const double wB1 = B_p[1]*w51;
3988                                  const double B_2 = B_p[2];                                  const double wB2 = B_p[2]*w50;
3989                                  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;
3990                                  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;
3991                                  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;
3992                                  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;
3993                                  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;
3994                                  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;
3995                                  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;
3996                                  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;
3997                                  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;
3998                                  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;
3999                                  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;
4000                                  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;
4001                                  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;
4002                                  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;
4003                                  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;
4004                                  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;
4005                                  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;
4006                                  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;
4007                                  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;
4008                                  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;
4009                                  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;
4010                                  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;
4011                                  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;
4012                                  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;
4013                                  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;
4014                                  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;
4015                                  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;
4016                                  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;
4017                                  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;
4018                                  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;
4019                                  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;
4020                                  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;
4021                                  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;
4022                                  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;
4023                                  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;
4024                                  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;
4025                                  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;
4026                                  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;
4027                                  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;
4028                                  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;
4029                                  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;
4030                                  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;
4031                                  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;
4032                                  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;
4033                                  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;
4034                                  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;
4035                                  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;
4036                                  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;
4037                                  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;
4038                                  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;
4039                                  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;
4040                                  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;
4041                                  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;
4042                                  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;
4043                                  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;
4044                                  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;
4045                                  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;
4046                                  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;
4047                                  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;
4048                                  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;
4049                                  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;
4050                                  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;
4051                                  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;
4052                                  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;
4053                              }                              }
4054                          }                          }
4055                          ///////////////                          ///////////////
# Line 4427  void Brick::assemblePDESingle(Paso_Syste Line 4412  void Brick::assemblePDESingle(Paso_Syste
4412                                  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;
4413                                  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;
4414                              } else { // constant data                              } else { // constant data
4415                                  const double C_0 = C_p[0];                                  const double wC0 = C_p[0]*w53;
4416                                  const double C_1 = C_p[1];                                  const double wC1 = C_p[1]*w51;
4417                                  const double C_2 = C_p[2];                                  const double wC2 = C_p[2]*w50;
4418                                  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;
4419                                  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;
4420                                  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;
4421                                  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;
4422                                  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;
4423                                  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;
4424                                  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;
4425                                  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;
4426                                  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;
4427                                  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;
4428                                  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;
4429                                  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;
4430                                  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;
4431                                  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;
4432                                  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;
4433                                  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;
4434                                  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;
4435                                  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;
4436                                  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;
4437                                  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;
4438                                  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;
4439                                  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;
4440                                  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;
4441                                  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;
4442                                  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;
4443                                  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;
4444                                  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;
4445                                  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;
4446                                  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;
4447                                  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;
4448                                  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;
4449                                  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;
4450                                  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;
4451                                  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;
4452                                  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;
4453                                  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;
4454                                  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;
4455                                  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;
4456                                  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;
4457                                  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;
4458                                  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;
4459                                  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;
4460                                  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;
4461                                  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;
4462                                  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;
4463                                  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;
4464                                  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;
4465                                  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;
4466                                  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;
4467                                  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;
4468                                  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;
4469                                  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;
4470                                  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;
4471                                  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;
4472                                  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;
4473                                  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;
4474                                  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;
4475                                  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;
4476                                  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;
4477                                  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;
4478                                  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;
4479                                  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;
4480                                  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;
4481                                  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;
4482                              }                              }
4483                          }                          }
4484                          ///////////////                          ///////////////
# Line 4635  void Brick::assemblePDESingle(Paso_Syste Line 4620  void Brick::assemblePDESingle(Paso_Syste
4620                                  EM_S[INDEX2(7,6,8)]+=tmp25 + tmp26 + tmp27;                                  EM_S[INDEX2(7,6,8)]+=tmp25 + tmp26 + tmp27;
4621                                  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;
4622                              } else { // constant data                              } else { // constant data
4623                                  const double D_0 = D_p[0];                                  const double wD0 = 8*D_p[0]*w55;
4624                                  EM_S[INDEX2(0,0,8)]+=64*D_0*w55;                                  EM_S[INDEX2(0,0,8)]+=8*wD0;
4625                                  EM_S[INDEX2(0,1,8)]+=32*D_0*w55;                                  EM_S[INDEX2(0,1,8)]+=4*wD0;
4626                                  EM_S[INDEX2(0,2,8)]+=32*D_0*w55;                                  EM_S[INDEX2(0,2,8)]+=4*wD0;
4627                                  EM_S[INDEX2(0,3,8)]+=16*D_0*w55;                                  EM_S[INDEX2(0,3,8)]+=2*wD0;
4628                                  EM_S[INDEX2(0,4,8)]+=32*D_0*w55;                                  EM_S[INDEX2(0,4,8)]+=4*wD0;
4629                                  EM_S[INDEX2(0,5,8)]+=16*D_0*w55;                                  EM_S[INDEX2(0,5,8)]+=2*wD0;
4630                                  EM_S[INDEX2(0,6,8)]+=16*D_0*w55;                                  EM_S[INDEX2(0,6,8)]+=2*wD0;
4631                                  EM_S[INDEX2(0,7,8)]+=8*D_0*w55;                                  EM_S[INDEX2(0,7,8)]+=wD0;
4632                                  EM_S[INDEX2(1,0,8)]+=32*D_0*w55;                                  EM_S[INDEX2(1,0,8)]+=4*wD0;
4633                                  EM_S[INDEX2(1,1,8)]+=64*D_0*w55;                                  EM_S[INDEX2(1,1,8)]+=8*wD0;
4634                                  EM_S[INDEX2(1,2,8)]+=16*D_0*w55;                                  EM_S[INDEX2(1,2,8)]+=2*wD0;
4635                                  EM_S[INDEX2(1,3,8)]+=32*D_0*w55;                                  EM_S[INDEX2(1,3,8)]+=4*wD0;
4636                                  EM_S[INDEX2(1,4,8)]+=16*D_0*w55;                                  EM_S[INDEX2(1,4,8)]+=2*wD0;
4637                                  EM_S[INDEX2(1,5,8)]+=32*D_0*w55;                                  EM_S[INDEX2(1,5,8)]+=4*wD0;
4638                                  EM_S[INDEX2(1,6,8)]+=8*D_0*w55;                                  EM_S[INDEX2(1,6,8)]+=wD0;
4639                                  EM_S[INDEX2(1,7,8)]+=16*D_0*w55;                                  EM_S[INDEX2(1,7,8)]+=2*wD0;
4640                                  EM_S[INDEX2(2,0,8)]+=32*D_0*w55;                                  EM_S[INDEX2(2,0,8)]+=4*wD0;
4641                                  EM_S[INDEX2(2,1,8)]+=16*D_0*w55;                                  EM_S[INDEX2(2,1,8)]+=2*wD0;
4642                                  EM_S[INDEX2(2,2,8)]+=64*D_0*w55;                                  EM_S[INDEX2(2,2,8)]+=8*wD0;
4643                                  EM_S[INDEX2(2,3,8)]+=32*D_0*w55;                                  EM_S[INDEX2(2,3,8)]+=4*wD0;
4644                                  EM_S[INDEX2(2,4,8)]+=16*D_0*w55;                                  EM_S[INDEX2(2,4,8)]+=2*wD0;
4645                                  EM_S[INDEX2(2,5,8)]+=8*D_0*w55;                                  EM_S[INDEX2(2,5,8)]+=wD0;
4646                                  EM_S[INDEX2(2,6,8)]+=32*D_0*w55;                                  EM_S[INDEX2(2,6,8)]+=4*wD0;
4647                                  EM_S[INDEX2(2,7,8)]+=16*D_0*w55;                                  EM_S[INDEX2(2,7,8)]+=2*wD0;
4648                                  EM_S[INDEX2(3,0,8)]+=16*D_0*w55;                                  EM_S[INDEX2(3,0,8)]+=2*wD0;
4649                                  EM_S[INDEX2(3,1,8)]+=32*D_0*w55;                                  EM_S[INDEX2(3,1,8)]+=4*wD0;
4650                                  EM_S[INDEX2(3,2,8)]+=32*D_0*w55;                                  EM_S[INDEX2(3,2,8)]+=4*wD0;
4651                                  EM_S[INDEX2(3,3,8)]+=64*D_0*w55;                                  EM_S[INDEX2(3,3,8)]+=8*wD0;
4652                                  EM_S[INDEX2(3,4,8)]+=8*D_0*w55;                                  EM_S[INDEX2(3,4,8)]+=wD0;
4653                                  EM_S[INDEX2(3,5,8)]+=16*D_0*w55;                                  EM_S[INDEX2(3,5,8)]+=2*wD0;
4654                                  EM_S[INDEX2(3,6,8)]+=16*D_0*w55;                                  EM_S[INDEX2(3,6,8)]+=2*wD0;
4655                                  EM_S[INDEX2(3,7,8)]+=32*D_0*w55;                                  EM_S[INDEX2(3,7,8)]+=4*wD0;
4656                                  EM_S[INDEX2(4,0,8)]+=32*D_0*w55;                                  EM_S[INDEX2(4,0,8)]+=4*wD0;
4657                                  EM_S[INDEX2(4,1,8)]+=16*D_0*w55;                                  EM_S[INDEX2(4,1,8)]+=2*wD0;
4658                                  EM_S[INDEX2(4,2,8)]+=16*D_0*w55;                                  EM_S[INDEX2(4,2,8)]+=2*wD0;
4659                                  EM_S[INDEX2(4,3,8)]+=8*D_0*w55;                                  EM_S[INDEX2(4,3,8)]+=wD0;
4660                                  EM_S[INDEX2(4,4,8)]+=64*D_0*w55;                                  EM_S[INDEX2(4,4,8)]+=8*wD0;
4661                                  EM_S[INDEX2(4,5,8)]+=32*D_0*w55;                                  EM_S[INDEX2(4,5,8)]+=4*wD0;
4662                                  EM_S[INDEX2(4,6,8)]+=32*D_0*w55;                                  EM_S[INDEX2(4,6,8)]+=4*wD0;
4663                                  EM_S[INDEX2(4,7,8)]+=16*D_0*w55;                                  EM_S[INDEX2(4,7,8)]+=2*wD0;
4664                                  EM_S[INDEX2(5,0,8)]+=16*D_0*w55;                                  EM_S[INDEX2(5,0,8)]+=2*wD0;
4665                                  EM_S[INDEX2(5,1,8)]+=32*D_0*w55;                                  EM_S[INDEX2(5,1,8)]+=4*wD0;
4666                                  EM_S[INDEX2(5,2,8)]+=8*D_0*w55;                                  EM_S[INDEX2(5,2,8)]+=wD0;
4667                                  EM_S[INDEX2(5,3,8)]+=16*D_0*w55;                                  EM_S[INDEX2(5,3,8)]+=2*wD0;
4668                                  EM_S[INDEX2(5,4,8)]+=32*D_0*w55;                                  EM_S[INDEX2(5,4,8)]+=4*wD0;
4669                                  EM_S[INDEX2(5,5,8)]+=64*D_0*w55;                                  EM_S[INDEX2(5,5,8)]+=8*wD0;
4670                                  EM_S[INDEX2(5,6,8)]+=16*D_0*w55;                                  EM_S[INDEX2(5,6,8)]+=2*wD0;
4671                                  EM_S[INDEX2(5,7,8)]+=32*D_0*w55;                                  EM_S[INDEX2(5,7,8)]+=4*wD0;
4672                                  EM_S[INDEX2(6,0,8)]+=16*D_0*w55;                                  EM_S[INDEX2(6,0,8)]+=2*wD0;
4673                                  EM_S[INDEX2(6,1,8)]+=8*D_0*w55;                                  EM_S[INDEX2(6,1,8)]+=wD0;
4674                                  EM_S[INDEX2(6,2,8)]+=32*D_0*w55;                                  EM_S[INDEX2(6,2,8)]+=4*wD0;
4675                                  EM_S[INDEX2(6,3,8)]+=16*D_0*w55;                                  EM_S[INDEX2(6,3,8)]+=2*wD0;
4676                                  EM_S[INDEX2(6,4,8)]+=32*D_0*w55;                                  EM_S[INDEX2(6,4,8)]+=4*wD0;
4677                                  EM_S[INDEX2(6,5,8)]+=16*D_0*w55;                                  EM_S[INDEX2(6,5,8)]+=2*wD0;
4678                                  EM_S[INDEX2(6,6,8)]+=64*D_0*w55;                                  EM_S[INDEX2(6,6,8)]+=8*wD0;
4679                                  EM_S[INDEX2(6,7,8)]+=32*D_0*w55;                                  EM_S[INDEX2(6,7,8)]+=4*wD0;
4680                                  EM_S[INDEX2(7,0,8)]+=8*D_0*w55;                                  EM_S[INDEX2(7,0,8)]+=wD0;
4681                                  EM_S[INDEX2(7,1,8)]+=16*D_0*w55;                                  EM_S[INDEX2(7,1,8)]+=2*wD0;
4682                                  EM_S[INDEX2(7,2,8)]+=16*D_0*w55;                                  EM_S[INDEX2(7,2,8)]+=2*wD0;
4683                                  EM_S[INDEX2(7,3,8)]+=32*D_0*w55;                                  EM_S[INDEX2(7,3,8)]+=4*wD0;
4684                                  EM_S[INDEX2(7,4,8)]+=16*D_0*w55;                                  EM_S[INDEX2(7,4,8)]+=2*wD0;
4685                                  EM_S[INDEX2(7,5,8)]+=32*D_0*w55;                                  EM_S[INDEX2(7,5,8)]+=4*wD0;
4686                                  EM_S[INDEX2(7,6,8)]+=32*D_0*w55;                                  EM_S[INDEX2(7,6,8)]+=4*wD0;
4687                                  EM_S[INDEX2(7,7,8)]+=64*D_0*w55;                                  EM_S[INDEX2(7,7,8)]+=8*wD0;
4688                              }                              }
4689                          }                          }
4690                          ///////////////                          ///////////////
# Line 4802  void Brick::assemblePDESingle(Paso_Syste Line 4787  void Brick::assemblePDESingle(Paso_Syste
4787                                  EM_F[6]+=tmp0 + tmp27 + tmp43 + tmp48 + tmp49 + tmp50 + tmp51 + tmp52 + tmp53;                                  EM_F[6]+=tmp0 + tmp27 + tmp43 + tmp48 + tmp49 + tmp50 + tmp51 + tmp52 + tmp53;
4788                                  EM_F[7]+=tmp19 + tmp36 + tmp54 + tmp55 + tmp56 + tmp57 + tmp58 + tmp59 + tmp9;                                  EM_F[7]+=tmp19 + tmp36 + tmp54 + tmp55 + tmp56 + tmp57 + tmp58 + tmp59 + tmp9;
4789                              } else { // constant data                              } else { // constant data
4790                                  const double X_0 = X_p[0];                                  const double wX0 = 12*X_p[0]*w66;
4791                                  const double X_1 = X_p[1];                                  const double wX1 = 12*X_p[1]*w64;
4792                                  const double X_2 = X_p[2];                                  const double wX2 = 18*X_p[2]*w50;
4793                                  EM_F[0]+=18*X_0*w53 + 12*X_1*w64 + 12*X_2*w65;                                  EM_F[0]+= wX0 + wX1 - wX2;
4794                                  EM_F[1]+=-18*X_0*w53 + 12*X_1*w64 + 12*X_2*w65;                                  EM_F[1]+=-wX0 + wX1 - wX2;
4795                                  EM_F[2]+=18*X_0*w53 - 12*X_1*w64 + 12*X_2*w65;                                  EM_F[2]+= wX0 - wX1 - wX2;
4796                                  EM_F[3]+=-18*X_0*w53 - 12*X_1*w64 + 12*X_2*w65;                                  EM_F[3]+=-wX0 - wX1 - wX2;
4797                                  EM_F[4]+=18*X_0*w53 + 12*X_1*w64 - 12*X_2*w65;                                  EM_F[4]+= wX0 + wX1 + wX2;
4798                                  EM_F[5]+=-18*X_0*w53 + 12*X_1*w64 - 12*X_2*w65;                                  EM_F[5]+=-wX0 + wX1 + wX2;
4799                                  EM_F[6]+=18*X_0*w53 - 12*X_1*w64 - 12*X_2*w65;                                  EM_F[6]+= wX0 - wX1 + wX2;
4800                                  EM_F[7]+=-18*X_0*w53 - 12*X_1*w64 - 12*X_2*w65;                                  EM_F[7]+=-wX0 - wX1 + wX2;
4801                              }                              }
4802                          }                          }
4803                          ///////////////                          ///////////////
# Line 4855  void Brick::assemblePDESingle(Paso_Syste Line 4840  void Brick::assemblePDESingle(Paso_Syste
4840                                  EM_F[6]+=Y_1*w73 + Y_6*w70 + tmp12 + tmp13;                                  EM_F[6]+=Y_1*w73 + Y_6*w70 + tmp12 + tmp13;
4841                                  EM_F[7]+=Y_0*w73 + Y_7*w70 + tmp14 + tmp15;                                  EM_F[7]+=Y_0*w73 + Y_7*w70 + tmp14 + tmp15;
4842                              } else { // constant data                              } else { // constant data
4843                                  const double Y_0 = Y_p[0];                                  EM_F[0]+=216*Y_p[0]*w55;
4844                                  EM_F[0]+=216*Y_0*w55;                                  EM_F[1]+=216*Y_p[0]*w55;
4845                                  EM_F[1]+=216*Y_0*w55;                                  EM_F[2]+=216*Y_p[0]*w55;
4846                                  EM_F[2]+=216*Y_0*w55;                                  EM_F[3]+=216*Y_p[0]*w55;
4847                                  EM_F[3]+=216*Y_0*w55;                                  EM_F[4]+=216*Y_p[0]*w55;
4848                                  EM_F[4]+=216*Y_0*w55;                                  EM_F[5]+=216*Y_p[0]*w55;
4849                                  EM_F[5]+=216*Y_0*w55;                                  EM_F[6]+=216*Y_p[0]*w55;
4850                                  EM_F[6]+=216*Y_0*w55;                                  EM_F[7]+=216*Y_p[0]*w55;
                                 EM_F[7]+=216*Y_0*w55;  
4851                              }                              }
4852                          }                          }
                         /* GENERATOR SNIP_PDE_SINGLE BOTTOM */  
4853    
4854                          // 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)
4855                          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 4868  void Brick::assemblePDESingleReduced(Pas
4868          const escript::Data& C, const escript::Data& D,          const escript::Data& C, const escript::Data& D,
4869          const escript::Data& X, const escript::Data& Y) const          const escript::Data& X, const escript::Data& Y) const
4870  {  {
4871      const double w6 = 0.0625*m_dx[0];      const double w6 = m_dx[0]/16;
4872      const double w5 = 0.0625*m_dx[1];      const double w5 = m_dx[1]/16;
4873      const double w1 = 0.0625*m_dx[2];      const double w1 = m_dx[2]/16;
4874      const double w14 = 0.03125*m_dx[0]*m_dx[1];      const double w14 = m_dx[0]*m_dx[1]/32;
4875      const double w13 = 0.03125*m_dx[0]*m_dx[2];      const double w13 = m_dx[0]*m_dx[2]/32;
4876      const double w12 = 0.03125*m_dx[1]*m_dx[2];      const double w12 = m_dx[1]*m_dx[2]/32;
4877      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;
4878      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]);
4879      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]);
4880      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]);
4881    
4882      rhs.requireWrite();      rhs.requireWrite();
4883  #pragma omp parallel  #pragma omp parallel
# Line 5267  void Brick::assemblePDESystem(Paso_Syste Line 5250  void Brick::assemblePDESystem(Paso_Syste
5250          numComp=mat->logical_col_block_size;          numComp=mat->logical_col_block_size;
5251      }      }
5252    
5253      /* GENERATOR SNIP_PDE_SYSTEM_PRE TOP */      const double SQRT3 = 1.73205080756887719318;
5254      const double w0 = 0.00093037914038584273081*m_dx[1]*m_dx[2]/m_dx[0];      const double w10 = -m_dx[0]/288;
5255      const double w1 = 0.00093037914038584273081*m_dx[2];      const double w12 = w10*(-SQRT3 - 2);
5256      const double w2 = -0.000249294339321148701*m_dx[1];      const double w6 = w10*(SQRT3 - 2);
5257      const double w3 = 0.00093037914038584273081*m_dx[0]*m_dx[2]/m_dx[1];      const double w18 = w10*(-4*SQRT3 - 7);
5258      const double w4 = -0.000249294339321148701*m_dx[0];      const double w4 = w10*(-4*SQRT3 + 7);
5259      const double w5 = 0.00093037914038584273081*m_dx[1];      const double w11 = m_dx[1]/288;
5260      const double w6 = 0.00093037914038584273081*m_dx[0];      const double w15 = w11*(SQRT3 + 2);
5261      const double w7 = -0.000249294339321148701*m_dx[0]*m_dx[1]/m_dx[2];      const double w5 = w11*(-SQRT3 + 2);
5262      const double w8 = 0.0034722222222222222222*m_dx[2];      const double w2 = w11*(4*SQRT3 - 7);
5263      const double w9 = 0.012958509748503046158*m_dx[0]*m_dx[2]/m_dx[1];      const double w17 = w11*(4*SQRT3 + 7);
5264      const double w10 = -0.0034722222222222222222*m_dx[0];      const double w8 = m_dx[2]/288;
5265      const double w11 = 0.0034722222222222222222*m_dx[1];      const double w16 = w8*(SQRT3 + 2);
5266      const double w12 = 0.012958509748503046158*m_dx[0];      const double w1 = w8*(-SQRT3 + 2);
5267      const double w13 = -0.0034722222222222222222*m_dx[0]*m_dx[1]/m_dx[2];      const double w20 = w8*(4*SQRT3 - 7);
5268      const double w14 = 0.012958509748503046158*m_dx[1]*m_dx[2]/m_dx[0];      const double w21 = w8*(-4*SQRT3 - 7);
5269      const double w15 = 0.012958509748503046158*m_dx[1];      const double w54 = -m_dx[0]*m_dx[1]/72;
5270      const double w16 = 0.012958509748503046158*m_dx[2];      const double w68 = -m_dx[0]*m_dx[1]/48;
5271      const double w17 = 0.04836181677178996241*m_dx[1];      const double w38 = w68*(-SQRT3 - 3)/36;
5272      const double w18 = 0.04836181677178996241*m_dx[0];      const double w45 = w68*(SQRT3 - 3)/36;
5273      const double w19 = -0.04836181677178996241*m_dx[0]*m_dx[1]/m_dx[2];      const double w35 = w68*(5*SQRT3 - 9)/36;
5274      const double w20 = -0.000249294339321148701*m_dx[2];      const double w46 = w68*(-5*SQRT3 - 9)/36;
5275      const double w21 = -0.04836181677178996241*m_dx[2];      const double w43 = w68*(-19*SQRT3 - 33)/36;
5276      const double w22 = -0.0034722222222222222222*m_dx[0]*m_dx[2]/m_dx[1];      const double w44 = w68*(19*SQRT3 - 33)/36;
5277      const double w23 = 0.00093037914038584273081*m_dx[0]*m_dx[1]/m_dx[2];      const double w66 = w68*(SQRT3 + 2);
5278      const double w24 = -0.04836181677178996241*m_dx[0]*m_dx[2]/m_dx[1];      const double w70 = w68*(-SQRT3 + 2);
5279      const double w25 = 0.012958509748503046158*m_dx[0]*m_dx[1]/m_dx[2];      const double w56 = -m_dx[0]*m_dx[2]/72;
5280      const double w26 = -0.000249294339321148701*m_dx[0]*m_dx[2]/m_dx[1];      const double w67 = -m_dx[0]*m_dx[2]/48;
5281      const double w27 = -0.0034722222222222222222*m_dx[1]*m_dx[2]/m_dx[0];      const double w37 = w67*(-SQRT3 - 3)/36;
5282      const double w28 = -0.000249294339321148701*m_dx[1]*m_dx[2]/m_dx[0];      const double w40 = w67*(SQRT3 - 3)/36;
5283      const double w29 = -0.04836181677178996241*m_dx[1]*m_dx[2]/m_dx[0];      const double w34 = w67*(5*SQRT3 - 9)/36;
5284      const double w30 = 0.0001966122466178319053*m_dx[1]*m_dx[2];      const double w42 = w67*(-5*SQRT3 - 9)/36;
5285      const double w31 = 0.0001966122466178319053*m_dx[0]*m_dx[2];      const double w47 = w67*(19*SQRT3 + 33)/36;
5286      const double w32 = 0.0001966122466178319053*m_dx[0]*m_dx[1];      const double w48 = w67*(-19*SQRT3 + 33)/36;
5287      const double w33 = 0.0007337668937680108255*m_dx[1]*m_dx[2];      const double w65 = w67*(SQRT3 + 2);
5288      const double w34 = 0.0027384553284542113967*m_dx[0]*m_dx[2];      const double w71 = w67*(-SQRT3 + 2);
5289      const double w35 = 0.0027384553284542113967*m_dx[0]*m_dx[1];      const double w55 = -m_dx[1]*m_dx[2]/72;
5290      const double w36 = 0.0027384553284542113967*m_dx[1]*m_dx[2];      const double w69 = -m_dx[1]*m_dx[2]/48;
5291      const double w37 = 0.0007337668937680108255*m_dx[0]*m_dx[2];      const double w36 = w69*(SQRT3 - 3)/36;
5292      const double w38 = 0.010220054420048834761*m_dx[1]*m_dx[2];      const double w39 = w69*(-SQRT3 - 3)/36;
5293      const double w39 = 0.010220054420048834761*m_dx[0]*m_dx[2];      const double w33 = w69*(5*SQRT3 - 9)/36;
5294      const double w40 = 0.038141762351741127649*m_dx[0]*m_dx[1];      const double w41 = w69*(-5*SQRT3 - 9)/36;
5295      const double w41 = 0.000052682092703316795698*m_dx[0]*m_dx[1];      const double w49 = w69*(19*SQRT3 - 33)/36;
5296      const double w42 = 0.0007337668937680108255*m_dx[0]*m_dx[1];      const double w50 = w69*(-19*SQRT3 - 33)/36;
5297      const double w43 = 0.010220054420048834761*m_dx[0]*m_dx[1];      const double w64 = w69*(SQRT3 + 2);
5298      const double w44 = -0.038141762351741127649*m_dx[0]*m_dx[2];      const double w72 = w69*(-SQRT3 + 2);
5299      const double w45 = -0.000052682092703316795698*m_dx[0]*m_dx[2];      const double w58 = m_dx[0]*m_dx[1]*m_dx[2]/1728;
5300      const double w46 = 0.000052682092703316795698*m_dx[1]*m_dx[2];      const double w60 = w58*(-SQRT3 + 2);
5301      const double w47 = 0.038141762351741127649*m_dx[1]*m_dx[2];      const double w61 = w58*(SQRT3 + 2);
5302      const double w48 = 0.027777777777777777778*m_dx[1]*m_dx[2];      const double w57 = w58*(-4*SQRT3 + 7);
5303      const double w49 = 0.027777777777777777778*m_dx[0]*m_dx[2];      const double w59 = w58*(4*SQRT3 + 7);
5304      const double w50 = 0.055555555555555555556*m_dx[0]*m_dx[1];      const double w62 = w58*(15*SQRT3 + 26);
5305      const double w51 = -0.055555555555555555556*m_dx[0]*m_dx[2];      const double w63 = w58*(-15*SQRT3 + 26);
5306      const double w52 = -0.027777777777777777778*m_dx[0]*m_dx[1];      const double w75 = w58*6*(SQRT3 + 3);
5307      const double w53 = -0.013888888888888888889*m_dx[1]*m_dx[2];      const double w76 = w58*6*(-SQRT3 + 3);
5308      const double w54 = 0.0000415490565535247835*m_dx[0]*m_dx[1]*m_dx[2];      const double w74 = w58*6*(5*SQRT3 + 9);
5309      const double w55 = 0.0005787037037037037037*m_dx[0]*m_dx[1]*m_dx[2];      const double w77 = w58*6*(-5*SQRT3 + 9);
5310      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]);
5311      const double w57 = 0.0001550631900643071218*m_dx[0]*m_dx[1]*m_dx[2];      const double w19 = w13*(4*SQRT3 + 7);
5312      const double w58 = 0.002159751624750507693*m_dx[0]*m_dx[1]*m_dx[2];      const double w7 = w13*(-4*SQRT3 + 7);
5313      const double w59 = 0.03008145955644280058*m_dx[0]*m_dx[1]*m_dx[2];      const double w23 = w13*(+SQRT3 - 2);
5314      const double w60 = 0.000011133036149792012194*m_dx[0]*m_dx[1]*m_dx[2];      const double w25 = w13*(-SQRT3 - 2);
5315      const double w61 = -0.077751058491018276948*m_dx[1]*m_dx[2];      const double w22 = -m_dx[0]*m_dx[2]/(288*m_dx[1]);
5316      const double w62 = -0.077751058491018276948*m_dx[0]*m_dx[2];      const double w3 = w22*(SQRT3 - 2);
5317      const double w63 = -0.077751058491018276948*m_dx[0]*m_dx[1];      const double w9 = w22*(-SQRT3 - 2);
5318      const double w64 = -0.020833333333333333333*m_dx[0]*m_dx[2];      const double w24 = w22*(4*SQRT3 + 7);
5319      const double w65 = -0.020833333333333333333*m_dx[0]*m_dx[1];      const double w26 = w22*(-4*SQRT3 + 7);
5320      const double w66 = -0.020833333333333333333*m_dx[1]*m_dx[2];      const double w27 = -m_dx[1]*m_dx[2]/(288*m_dx[0]);
5321      const double w67 = -0.0055822748423150563848*m_dx[0]*m_dx[1];      const double w0 = w27*(SQRT3 - 2);
5322      const double w68 = -0.0055822748423150563848*m_dx[0]*m_dx[2];      const double w14 = w27*(-SQRT3 - 2);
5323      const double w69 = -0.0055822748423150563848*m_dx[1]*m_dx[2];      const double w28 = w27*(-4*SQRT3 + 7);
5324      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 */  
5325    
5326      rhs.requireWrite();      rhs.requireWrite();
5327  #pragma omp parallel  #pragma omp parallel
# Line 5357  void Brick::assemblePDESystem(Paso_Syste Line 5336  void Brick::assemblePDESystem(Paso_Syste
5336                          vector<double> EM_S(8*8*numEq*numComp, 0);                          vector<double> EM_S(8*8*numEq*numComp, 0);
5337                          vector<double> EM_F(8*numEq, 0);                          vector<double> EM_F(8*numEq, 0);
5338                          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 */  
5339                          ///////////////                          ///////////////
5340                          // process A //                          // process A //
5341                          ///////////////                          ///////////////
# Line 6018  void Brick::assemblePDESystem(Paso_Syste Line 5996  void Brick::assemblePDESystem(Paso_Syste
5996                              } else { // constant data                              } else { // constant data
5997                                  for (index_t k=0; k<numEq; k++) {                                  for (index_t k=0; k<numEq; k++) {
5998                                      for (index_t m=0; m<numComp; m++) {                                      for (index_t m=0; m<numComp; m++) {
5999                                          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;
6000                                          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;
6001                                          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;
6002                                          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;
6003                                          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;
6004                                          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;
6005                                          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;
6006                                          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;
6007                                          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;
6008                                          const double tmp0 = 24*w11*(-A_02 + A_20);                                          const double tmp0 = Aw01 + Aw10;
6009                                          const double tmp1 = 24*w10*(A_12 - A_21);                                          const double tmp1 = Aw01 - Aw10;
6010                                          const double tmp2 = 12*w8*(A_01 + A_10);                                          const double tmp2 = Aw02 + Aw20;
6011                                          const double tmp3 = 12*w11*(-A_02 + A_20);                                          const double tmp3 = Aw02 - Aw20;
6012                                          const double tmp4 = 12*w10*(A_12 - A_21);                                          const double tmp4 = Aw12 + Aw21;
6013                                          const double tmp5 = 24*w8*(-A_01 - A_10);                                          const double tmp5 = Aw12 - Aw21;
6014                                          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;
6015                                          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;
6016                                          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;
6017                                          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;
6018                                          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;
6019                                          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;
6020                                          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;
6021                                          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;
6022                                          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;
6023                                          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;
6024                                          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;
6025                                          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;
6026                                          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;
6027                                          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;
6028                                          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;
6029                                          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;
6030                                          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;
6031                                          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;
6032                                          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;
6033                                          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;
6034                                          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;
6035                                          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;
6036                                          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;
6037                                          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;
6038                                          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;
6039                                          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;
6040                                          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;
6041                                          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;
6042                                          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;
6043                                          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;
6044                                          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;
6045                                          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;
6046                                          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;
6047                                          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;
6048                                          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;
6049                                          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;
6050                                          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;
6051                                          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;
6052                                          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;
6053                                          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;
6054                                          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;
6055                                          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;
6056                                          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;
6057                                          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;
6058                                          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;
6059                                          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;
6060                                          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;
6061                                          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;
6062                                          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;
6063                                          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;
6064                                          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;
6065                                          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;
6066                                          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;
6067                                          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;
6068                                          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;
6069                                          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;
6070                                          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;
6071                                          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;
6072                                          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;
6073                                          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;
6074                                          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;
6075                                          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;
6076                                          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;
6077                                          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;  
6078                                      }                                      }
6079                                  }                                  }
6080                              }                              }
# Line 6152  void Brick::assemblePDESystem(Paso_Syste Line 6112  void Brick::assemblePDESystem(Paso_Syste
6112                                          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)];
6113                                          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)];
6114                                          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)];
6115                                          const double tmp0 = w38*(B_0_3 + B_0_7);                                          const double tmp0 = w38*(B_2_1 + B_2_2);
6116                                          const double tmp1 = w31*(B_1_0 + B_1_4);                                          const double tmp1 = w42*(B_1_3 + B_1_7);
6117                                          const double tmp2 = w42*(B_2_5 + B_2_6);                                          const double tmp2 = w41*(B_0_3 + B_0_7);
6118                                          const double tmp3 = w35*(B_2_1 + B_2_2);                                          const double tmp3 = w37*(B_1_1 + B_1_5);
6119                                          const double tmp4 = w37*(B_1_2 + B_1_6);                                          const double tmp4 = w39*(B_0_2 + B_0_6);
6120                                          const double tmp5 = w39*(B_1_3 + B_1_7);                                          const double tmp5 = w45*(B_2_5 + B_2_6);
6121                                          const double tmp6 = w36*(B_0_2 + B_0_6);                                          const double tmp6 = w36*(B_0_1 + B_0_5);
6122                                          const double tmp7 = w33*(B_0_1 + B_0_5);                                          const double tmp7 = w40*(B_1_2 + B_1_6);
6123                                          const double tmp8 = w30*(B_0_0 + B_0_4);                                          const double tmp8 = w33*(B_0_0 + B_0_4);
6124                                          const double tmp9 = w34*(B_1_1 + B_1_5);                                          const double tmp9 = w34*(B_1_0 + B_1_4);
6125                                          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);
6126                                          const double tmp11 = w31*(-B_1_0 - B_1_1);                                          const double tmp11 = w42*(-B_1_6 - B_1_7);
6127                                          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);
6128                                          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);
6129                                          const double tmp14 = w37*(-B_1_2 - B_1_3);                                          const double tmp14 = w39*(-B_0_4 - B_0_6);
6130                                          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);
6131                                          const double tmp16 = w36*(-B_0_4 - B_0_6);                                          const double tmp16 = w36*(-B_0_1 - B_0_3);
6132                                          const double tmp17 = w33*(-B_0_1 - B_0_3);                                          const double tmp17 = w40*(-B_1_2 - B_1_3);
6133                                          const double tmp18 = w30*(-B_0_0 - B_0_2);                                          const double tmp18 = w33*(-B_0_0 - B_0_2);
6134                                          const double tmp19 = w34*(-B_1_4 - B_1_5);                                          const double tmp19 = w34*(-B_1_0 - B_1_1);
6135                                          const double tmp20 = w38*(B_0_1 + B_0_3);                                          const double tmp20 = w38*(-B_2_5 - B_2_7);
6136                                          const double tmp21 = w42*(-B_2_0 - B_2_2);                                          const double tmp21 = w35*(-B_2_4 - B_2_6);
6137                                          const double tmp22 = w35*(-B_2_5 - B_2_7);                                          const double tmp22 = w41*(B_0_1 + B_0_3);
6138                                          const double tmp23 = w37*(-B_1_0 - B_1_5);                                          const double tmp23 = w37*(-B_1_2 - B_1_7);
6139                                          const double tmp24 = w32*(-B_2_4 - B_2_6);                                          const double tmp24 = w39*(B_0_0 + B_0_2);
6140                                          const double tmp25 = w36*(B_0_0 + B_0_2);                                          const double tmp25 = w45*(-B_2_0 - B_2_2);
6141                                          const double tmp26 = w33*(B_0_5 + B_0_7);                                          const double tmp26 = w36*(B_0_5 + B_0_7);
6142                                          const double tmp27 = w30*(B_0_4 + B_0_6);                                          const double tmp27 = w40*(-B_1_0 - B_1_5);
6143                                          const double tmp28 = w43*(-B_2_1 - B_2_3);                                          const double tmp28 = w33*(B_0_4 + B_0_6);
6144                                          const double tmp29 = w34*(-B_1_2 - B_1_7);                                          const double tmp29 = w46*(-B_2_1 - B_2_3);
6145                                          const double tmp30 = w38*(-B_0_4 - B_0_6);                                          const double tmp30 = w38*(B_2_0 + B_2_2);
6146                                          const double tmp31 = w42*(B_2_5 + B_2_7);                                          const double tmp31 = w35*(B_2_1 + B_2_3);
6147                                          const double tmp32 = w35*(B_2_0 + B_2_2);                                          const double tmp32 = w41*(-B_0_4 - B_0_6);
6148                                          const double tmp33 = w37*(B_1_2 + B_1_7);                                          const double tmp33 = w37*(B_1_0 + B_1_5);
6149                                          const double tmp34 = w32*(B_2_1 + B_2_3);                                          const double tmp34 = w39*(-B_0_5 - B_0_7);
6150                                          const double tmp35 = w36*(-B_0_5 - B_0_7);                                          const double tmp35 = w45*(B_2_5 + B_2_7);
6151                                          const double tmp36 = w33*(-B_0_0 - B_0_2);                                          const double tmp36 = w36*(-B_0_0 - B_0_2);
6152                                          const double tmp37 = w30*(-B_0_1 - B_0_3);                                          const double tmp37 = w40*(B_1_2 + B_1_7);
6153                                          const double tmp38 = w43*(B_2_4 + B_2_6);                                          const double tmp38 = w33*(-B_0_1 - B_0_3);
6154                                          const double tmp39 = w34*(B_1_0 + B_1_5);                                          const double tmp39 = w46*(B_2_4 + B_2_6);
6155                                          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);
6156                                          const double tmp41 = w31*(B_1_6 + B_1_7);                                          const double tmp41 = w42*(B_1_0 + B_1_1);
6157                                          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);
6158                                          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);
6159                                          const double tmp44 = w37*(B_1_4 + B_1_5);                                          const double tmp44 = w39*(B_0_1 + B_0_3);
6160                                          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);
6161                                          const double tmp46 = w36*(B_0_1 + B_0_3);                                          const double tmp46 = w36*(B_0_4 + B_0_6);
6162                                          const double tmp47 = w33*(B_0_4 + B_0_6);                                          const double tmp47 = w40*(B_1_4 + B_1_5);
6163                                          const double tmp48 = w30*(B_0_5 + B_0_7);                                          const double tmp48 = w33*(B_0_5 + B_0_7);
6164                                          const double tmp49 = w34*(B_1_2 + B_1_3);                                          const double tmp49 = w34*(B_1_6 + B_1_7);
6165                                          const double tmp50 = w31*(-B_1_2 - B_1_3);                                          const double tmp50 = w38*(B_2_0 + B_2_1);
6166                                          const double tmp51 = w42*(B_2_6 + B_2_7);                                          const double tmp51 = w42*(-B_1_4 - B_1_5);
6167                                          const double tmp52 = w35*(B_2_0 + B_2_1);                                          const double tmp52 = w35*(B_2_2 + B_2_3);
6168                                          const double tmp53 = w37*(-B_1_0 - B_1_1);                                          const double tmp53 = w37*(-B_1_6 - B_1_7);
6169                                          const double tmp54 = w32*(B_2_2 + B_2_3);                                          const double tmp54 = w39*(B_0_0 + B_0_6);
6170                                          const double tmp55 = w39*(-B_1_4 - B_1_5);                                          const double tmp55 = w45*(B_2_6 + B_2_7);
6171                                          const double tmp56 = w36*(B_0_0 + B_0_6);                                          const double tmp56 = w36*(B_0_1 + B_0_7);
6172                                          const double tmp57 = w33*(B_0_1 + B_0_7);                                          const double tmp57 = w40*(-B_1_0 - B_1_1);
6173                                          const double tmp58 = w43*(B_2_4 + B_2_5);                                          const double tmp58 = w46*(B_2_4 + B_2_5);
6174                                          const double tmp59 = w34*(-B_1_6 - B_1_7);                                          const double tmp59 = w34*(-B_1_2 - B_1_3);
6175                                          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);
6176                                          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);
6177                                          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);
6178                                          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);
6179                                          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);
6180                                          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);
6181                                          const double tmp66 = w38*(B_0_4 + B_0_6);                                          const double tmp66 = w41*(B_0_4 + B_0_6);
6182                                          const double tmp67 = w36*(B_0_5 + B_0_7);                                          const double tmp67 = w39*(B_0_5 + B_0_7);
6183                                          const double tmp68 = w33*(B_0_0 + B_0_2);                                          const double tmp68 = w36*(B_0_0 + B_0_2);
6184                                          const double tmp69 = w30*(B_0_1 + B_0_3);                                          const double tmp69 = w33*(B_0_1 + B_0_3);
6185                                          const double tmp70 = w38*(-B_0_2 - B_0_6);                                          const double tmp70 = w38*(-B_2_4 - B_2_7);
6186                                          const double tmp71 = w31*(B_1_1 + B_1_5);                                          const double tmp71 = w42*(B_1_2 + B_1_6);
6187                                          const double tmp72 = w42*(-B_2_0 - B_2_3);                                          const double tmp72 = w41*(-B_0_2 - B_0_6);
6188                                          const double tmp73 = w35*(-B_2_4 - B_2_7);                                          const double tmp73 = w37*(B_1_0 + B_1_4);
6189                                          const double tmp74 = w37*(B_1_3 + B_1_7);                                          const double tmp74 = w39*(-B_0_3 - B_0_7);
6190                                          const double tmp75 = w39*(B_1_2 + B_1_6);                                          const double tmp75 = w45*(-B_2_0 - B_2_3);
6191                                          const double tmp76 = w36*(-B_0_3 - B_0_7);                                          const double tmp76 = w36*(-B_0_0 - B_0_4);
6192                                          const double tmp77 = w33*(-B_0_0 - B_0_4);                                          const double tmp77 = w40*(B_1_3 + B_1_7);
6193                                          const double tmp78 = w30*(-B_0_1 - B_0_5);                                          const double tmp78 = w33*(-B_0_1 - B_0_5);
6194                                          const double tmp79 = w34*(B_1_0 + B_1_4);                                          const double tmp79 = w34*(B_1_1 + B_1_5);
6195                                          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);
6196                                          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);
6197                                          const double tmp82 = w38*(B_0_1 + B_0_5);                                          const double tmp82 = w38*(B_2_0 + B_2_3);
6198                                          const double tmp83 = w31*(-B_1_2 - B_1_6);                                          const double tmp83 = w42*(-B_1_1 - B_1_5);
6199                                          const double tmp84 = w42*(B_2_4 + B_2_7);                                          const double tmp84 = w41*(B_0_1 + B_0_5);
6200                                          const double tmp85 = w35*(B_2_0 + B_2_3);                                          const double tmp85 = w37*(-B_1_3 - B_1_7);
6201                                          const double tmp86 = w37*(-B_1_0 - B_1_4);                                          const double tmp86 = w39*(B_0_0 + B_0_4);
6202                                          const double tmp87 = w39*(-B_1_1 - B_1_5);                                          const double tmp87 = w45*(B_2_4 + B_2_7);
6203                                          const double tmp88 = w36*(B_0_0 + B_0_4);                                          const double tmp88 = w36*(B_0_3 + B_0_7);
6204                                          const double tmp89 = w33*(B_0_3 + B_0_7);                                          const double tmp89 = w40*(-B_1_0 - B_1_4);
6205                                          const double tmp90 = w30*(B_0_2 + B_0_6);                                          const double tmp90 = w33*(B_0_2 + B_0_6);
6206                                          const double tmp91 = w34*(-B_1_3 - B_1_7);                                          const double tmp91 = w34*(-B_1_2 - B_1_6);
6207                                          const double tmp92 = w42*(-B_2_1 - B_2_2);                                          const double tmp92 = w38*(-B_2_5 - B_2_6);
6208                                          const double tmp93 = w35*(-B_2_5 - B_2_6);                                          const double tmp93 = w45*(-B_2_1 - B_2_2);
6209                                          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);
6210                                          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);
6211                                          const double tmp96 = w38*(-B_0_1 - B_0_3);                                          const double tmp96 = w42*(-B_1_2 - B_1_3);
6212                                          const double tmp97 = w31*(-B_1_4 - B_1_5);                                          const double tmp97 = w41*(-B_0_1 - B_0_3);
6213                                          const double tmp98 = w37*(-B_1_6 - B_1_7);                                          const double tmp98 = w37*(-B_1_0 - B_1_1);
6214                                          const double tmp99 = w39*(-B_1_2 - B_1_3);                                          const double tmp99 = w39*(-B_0_0 - B_0_2);
6215                                          const double tmp100 = w36*(-B_0_0 - B_0_2);                                          const double tmp100 = w36*(-B_0_5 - B_0_7);
6216                                          const double tmp101 = w33*(-B_0_5 - B_0_7);                                          const double tmp101 = w40*(-B_1_6 - B_1_7);
6217                                          const double tmp102 = w30*(-B_0_4 - B_0_6);                                          const double tmp102 = w33*(-B_0_4 - B_0_6);
6218                                          const double tmp103 = w34*(-B_1_0 - B_1_1);                                          const double tmp103 = w34*(-B_1_4 - B_1_5);
6219                                          const double tmp104 = w38*(B_0_2 + B_0_6);                                          const double tmp104 = w38*(B_2_6 + B_2_7);
6220                                          const double tmp105 = w42*(B_2_0 + B_2_1);                                          const double tmp105 = w35*(B_2_4 + B_2_5);
6221                                          const double tmp106 = w35*(B_2_6 + B_2_7);                                          const double tmp106 = w41*(B_0_2 + B_0_6);
6222                                          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);
6223                                          const double tmp108 = w32*(B_2_4 + B_2_5);                                          const double tmp108 = w39*(B_0_3 + B_0_7);
6224                                          const double tmp109 = w36*(B_0_3 + B_0_7);                                          const double tmp109 = w45*(B_2_0 + B_2_1);
6225                                          const double tmp110 = w33*(B_0_0 + B_0_4);                                          const double tmp110 = w36*(B_0_0 + B_0_4);
6226                                          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);
6227                                          const double tmp112 = w43*(B_2_2 + B_2_3);                                          const double tmp112 = w33*(B_0_1 + B_0_5);
6228                                          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);
6229                                          const double tmp114 = w38*(-B_0_0 - B_0_4);                                          const double tmp114 = w42*(-B_1_0 - B_1_4);
6230                                          const double tmp115 = w31*(-B_1_3 - B_1_7);                                          const double tmp115 = w41*(-B_0_0 - B_0_4);
6231                                          const double tmp116 = w37*(-B_1_1 - B_1_5);                                          const double tmp116 = w37*(-B_1_2 - B_1_6);
6232                                          const double tmp117 = w39*(-B_1_0 - B_1_4);                                          const double tmp117 = w39*(-B_0_1 - B_0_5);
6233                                          const double tmp118 = w36*(-B_0_1 - B_0_5);                                          const double tmp118 = w36*(-B_0_2 - B_0_6);
6234                                          const double tmp119 = w33*(-B_0_2 - B_0_6);                                          const double tmp119 = w40*(-B_1_1 - B_1_5);
6235                                          const double tmp120 = w30*(-B_0_3 - B_0_7);                                          const double tmp120 = w33*(-B_0_3 - B_0_7);
6236                                          const double tmp121 = w34*(-B_1_2 - B_1_6);                                          const double tmp121 = w34*(-B_1_3 - B_1_7);
6237                                          const double tmp122 = w31*(B_1_0 + B_1_1);                                          const double tmp122 = w38*(B_2_2 + B_2_3);
6238                                          const double tmp123 = w42*(B_2_4 + B_2_5);                                          const double tmp123 = w42*(B_1_6 + B_1_7);
6239                                          const double tmp124 = w35*(B_2_2 + B_2_3);                                          const double tmp124 = w35*(B_2_0 + B_2_1);
6240                                          const double tmp125 = w37*(B_1_2 + B_1_3);                                          const double tmp125 = w37*(B_1_4 + B_1_5);
6241                                          const double tmp126 = w32*(B_2_0 + B_2_1);                                          const double tmp126 = w39*(-B_0_3 - B_0_5);
6242                                          const double tmp127 = w39*(B_1_6 + B_1_7);                                          const double tmp127 = w45*(B_2_4 + B_2_5);
6243                                          const double tmp128 = w36*(-B_0_3 - B_0_5);                                          const double tmp128 = w36*(-B_0_2 - B_0_4);
6244                                          const double tmp129 = w33*(-B_0_2 - B_0_4);                                          const double tmp129 = w40*(B_1_2 + B_1_3);
6245                                          const double tmp130 = w43*(B_2_6 + B_2_7);                                          const double tmp130 = w46*(B_2_6 + B_2_7);
6246                                          const double tmp131 = w34*(B_1_4 + B_1_5);                                          const double tmp131 = w34*(B_1_0 + B_1_1);
6247                                          const double tmp132 = w42*(-B_2_5 - B_2_6);                                          const double tmp132 = w38*(-B_2_1 - B_2_2);
6248                                          const double tmp133 = w35*(-B_2_1 - B_2_2);                                          const double tmp133 = w37*(B_1_2 + B_1_7);
6249                                          const double tmp134 = w37*(B_1_0 + B_1_5);                                          const double tmp134 = w39*(B_0_1 + B_0_7);
6250                                          const double tmp135 = w36*(B_0_1 + B_0_7);                                          const double tmp135 = w36*(B_0_0 + B_0_6);
6251                                          const double tmp136 = w33*(B_0_0 + B_0_6);                                          const double tmp136 = w40*(B_1_0 + B_1_5);
6252                                          const double tmp137 = w34*(B_1_2 + B_1_7);                                          const double tmp137 = w45*(-B_2_5 - B_2_6);
6253                                          const double tmp138 = w38*(-B_0_0 - B_0_2);                                          const double tmp138 = w38*(-B_2_4 - B_2_6);
6254                                          const double tmp139 = w42*(-B_2_1 - B_2_3);                                          const double tmp139 = w35*(-B_2_5 - B_2_7);
6255                                          const double tmp140 = w35*(-B_2_4 - B_2_6);                                          const double tmp140 = w41*(-B_0_0 - B_0_2);
6256                                          const double tmp141 = w37*(B_1_3 + B_1_6);                                          const double tmp141 = w37*(B_1_1 + B_1_4);
6257                                          const double tmp142 = w32*(-B_2_5 - B_2_7);                                          const double tmp142 = w39*(-B_0_1 - B_0_3);
6258                                          const double tmp143 = w36*(-B_0_1 - B_0_3);                                          const double tmp143 = w45*(-B_2_1 - B_2_3);
6259                                          const double tmp144 = w33*(-B_0_4 - B_0_6);                                          const double tmp144 = w36*(-B_0_4 - B_0_6);
6260                                          const double tmp145 = w30*(-B_0_5 - B_0_7);                                          const double tmp145 = w40*(B_1_3 + B_1_6);
6261                                          const double tmp146 = w43*(-B_2_0 - B_2_2);                                          const double tmp146 = w33*(-B_0_5 - B_0_7);
6262                                          const double tmp147 = w34*(B_1_1 + B_1_4);                                          const double tmp147 = w46*(-B_2_0 - B_2_2);
6263                                          const double tmp148 = w36*(B_0_2 + B_0_4);                                          const double tmp148 = w39*(B_0_2 + B_0_4);
6264                                          const double tmp149 = w33*(B_0_3 + B_0_5);                                          const double tmp149 = w36*(B_0_3 + B_0_5);
6265                                          const double tmp150 = w42*(B_2_1 + B_2_2);                                          const double tmp150 = w38*(B_2_5 + B_2_6);
6266                                          const double tmp151 = w35*(B_2_5 + B_2_6);                                          const double tmp151 = w37*(-B_1_0 - B_1_5);
6267                                          const double tmp152 = w37*(-B_1_2 - B_1_7);                                          const double tmp152 = w39*(-B_0_0 - B_0_6);
6268                                          const double tmp153 = w36*(-B_0_0 - B_0_6);                                          const double tmp153 = w45*(B_2_1 + B_2_2);
6269                                          const double tmp154 = w33*(-B_0_1 - B_0_7);                                          const double tmp154 = w36*(-B_0_1 - B_0_7);
6270                                          const double tmp155 = w34*(-B_1_0 - B_1_5);                                          const double tmp155 = w40*(-B_1_2 - B_1_7);
6271                                          const double tmp156 = w38*(-B_0_3 - B_0_7);                                          const double tmp156 = w41*(-B_0_3 - B_0_7);
6272                                          const double tmp157 = w36*(-B_0_2 - B_0_6);                                          const double tmp157 = w39*(-B_0_2 - B_0_6);
6273                                          const double tmp158 = w33*(-B_0_1 - B_0_5);                                          const double tmp158 = w36*(-B_0_1 - B_0_5);
6274                                          const double tmp159 = w30*(-B_0_0 - B_0_4);                                          const double tmp159 = w33*(-B_0_0 - B_0_4);
6275                                          const double tmp160 = w42*(-B_2_4 - B_2_5);                                          const double tmp160 = w38*(-B_2_2 - B_2_3);
6276                                          const double tmp161 = w35*(-B_2_2 - B_2_3);                                          const double tmp161 = w35*(-B_2_0 - B_2_1);
6277                                          const double tmp162 = w32*(-B_2_0 - B_2_1);                                          const double tmp162 = w45*(-B_2_4 - B_2_5);
6278                                          const double tmp163 = w43*(-B_2_6 - B_2_7);                                          const double tmp163 = w46*(-B_2_6 - B_2_7);
6279                                          const double tmp164 = w42*(-B_2_4 - B_2_7);                                          const double tmp164 = w38*(-B_2_0 - B_2_3);
6280                                          const double tmp165 = w35*(-B_2_0 - B_2_3);                                          const double tmp165 = w37*(B_1_3 + B_1_6);
6281                                          const double tmp166 = w37*(B_1_1 + B_1_4);                                          const double tmp166 = w40*(B_1_1 + B_1_4);
6282                                          const double tmp167 = w34*(B_1_3 + B_1_6);                                          const double tmp167 = w45*(-B_2_4 - B_2_7);
6283                                          const double tmp168 = w36*(B_0_3 + B_0_5);                                          const double tmp168 = w39*(B_0_3 + B_0_5);
6284                                          const double tmp169 = w33*(B_0_2 + B_0_4);                                          const double tmp169 = w36*(B_0_2 + B_0_4);
6285                                          const double tmp170 = w38*(B_0_5 + B_0_7);                                          const double tmp170 = w38*(B_2_1 + B_2_3);
6286                                          const double tmp171 = w42*(B_2_4 + B_2_6);                                          const double tmp171 = w35*(B_2_0 + B_2_2);
6287                                          const double tmp172 = w35*(B_2_1 + B_2_3);                                          const double tmp172 = w41*(B_0_5 + B_0_7);
6288                                          const double tmp173 = w37*(-B_1_1 - B_1_4);                                          const double tmp173 = w37*(-B_1_3 - B_1_6);
6289                                          const double tmp174 = w32*(B_2_0 + B_2_2);                                          const double tmp174 = w39*(B_0_4 + B_0_6);
6290                                          const double tmp175 = w36*(B_0_4 + B_0_6);                                          const double tmp175 = w45*(B_2_4 + B_2_6);
6291                                          const double tmp176 = w33*(B_0_1 + B_0_3);                                          const double tmp176 = w36*(B_0_1 + B_0_3);
6292                                          const double tmp177 = w30*(B_0_0 + B_0_2);                                          const double tmp177 = w40*(-B_1_1 - B_1_4);
6293                                          const double tmp178 = w43*(B_2_5 + B_2_7);                                          const double tmp178 = w33*(B_0_0 + B_0_2);
6294                                          const double tmp179 = w34*(-B_1_3 - B_1_6);                                          const double tmp179 = w46*(B_2_5 + B_2_7);
6295                                          const double tmp180 = w31*(-B_1_0 - B_1_4);                                          const double tmp180 = w38*(B_2_5 + B_2_7);
6296                                          const double tmp181 = w42*(B_2_0 + B_2_2);                                          const double tmp181 = w42*(-B_1_3 - B_1_7);
6297                                          const double tmp182 = w35*(B_2_5 + B_2_7);                                          const double tmp182 = w35*(B_2_4 + B_2_6);
6298                                          const double tmp183 = w37*(-B_1_2 - B_1_6);                                          const double tmp183 = w37*(-B_1_1 - B_1_5);
6299                                          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);
6300                                          const double tmp185 = w39*(-B_1_3 - B_1_7);                                          const double tmp185 = w45*(B_2_0 + B_2_2);
6301                                          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);
6302                                          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);
6303                                          const double tmp188 = w43*(B_2_1 + B_2_3);                                          const double tmp188 = w46*(B_2_1 + B_2_3);
6304                                          const double tmp189 = w34*(-B_1_1 - B_1_5);                                          const double tmp189 = w34*(-B_1_0 - B_1_4);
6305                                          const double tmp190 = w38*(-B_0_1 - B_0_5);                                          const double tmp190 = w38*(B_2_4 + B_2_5);
6306                                          const double tmp191 = w42*(B_2_2 + B_2_3);                                          const double tmp191 = w35*(B_2_6 + B_2_7);
6307                                          const double tmp192 = w35*(B_2_4 + B_2_5);                                          const double tmp192 = w41*(-B_0_1 - B_0_5);
6308                                          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);
6309                                          const double tmp194 = w32*(B_2_6 + B_2_7);                                          const double tmp194 = w39*(-B_0_0 - B_0_4);
6310                                          const double tmp195 = w36*(-B_0_0 - B_0_4);                                          const double tmp195 = w45*(B_2_2 + B_2_3);
6311                                          const double tmp196 = w33*(-B_0_3 - B_0_7);                                          const double tmp196 = w36*(-B_0_3 - B_0_7);
6312                                          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);
6313                                          const double tmp198 = w43*(B_2_0 + B_2_1);                                          const double tmp198 = w33*(-B_0_2 - B_0_6);
6314                                          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);
6315                                          const double tmp200 = w31*(B_1_4 + B_1_5);                                          const double tmp200 = w38*(-B_2_6 - B_2_7);
6316                                          const double tmp201 = w42*(-B_2_0 - B_2_1);                                          const double tmp201 = w42*(B_1_2 + B_1_3);
6317                                          const double tmp202 = w35*(-B_2_6 - B_2_7);                                          const double tmp202 = w35*(-B_2_4 - B_2_5);
6318                                          const double tmp203 = w37*(B_1_6 + B_1_7);                                          const double tmp203 = w37*(B_1_0 + B_1_1);
6319                                          const double tmp204 = w32*(-B_2_4 - B_2_5);                                          const double tmp204 = w45*(-B_2_0 - B_2_1);
6320                                          const double tmp205 = w39*(B_1_2 + B_1_3);                                          const double tmp205 = w40*(B_1_6 + B_1_7);
6321                                          const double tmp206 = w43*(-B_2_2 - B_2_3);                                          const double tmp206 = w46*(-B_2_2 - B_2_3);
6322                                          const double tmp207 = w34*(B_1_0 + B_1_1);                                          const double tmp207 = w34*(B_1_4 + B_1_5);
6323                                          const double tmp208 = w37*(-B_1_3 - B_1_6);                                          const double tmp208 = w37*(-B_1_1 - B_1_4);
6324                                          const double tmp209 = w36*(-B_0_2 - B_0_4);                                          const double tmp209 = w39*(-B_0_2 - B_0_4);
6325                                          const double tmp210 = w33*(-B_0_3 - B_0_5);                                          const double tmp210 = w36*(-B_0_3 - B_0_5);
6326                                          const double tmp211 = w34*(-B_1_1 - B_1_4);                                          const double tmp211 = w40*(-B_1_3 - B_1_6);
6327                                          const double tmp212 = w42*(B_2_0 + B_2_3);                                          const double tmp212 = w38*(B_2_4 + B_2_7);
6328                                          const double tmp213 = w35*(B_2_4 + B_2_7);                                          const double tmp213 = w45*(B_2_0 + B_2_3);
6329                                          const double tmp214 = w38*(B_0_0 + B_0_4);                                          const double tmp214 = w41*(B_0_0 + B_0_4);
6330                                          const double tmp215 = w36*(B_0_1 + B_0_5);                                          const double tmp215 = w39*(B_0_1 + B_0_5);
6331                                          const double tmp216 = w33*(B_0_2 + B_0_6);                                          const double tmp216 = w36*(B_0_2 + B_0_6);
6332                                          const double tmp217 = w30*(B_0_3 + B_0_7);                                          const double tmp217 = w33*(B_0_3 + B_0_7);
6333                                          const double tmp218 = w31*(B_1_2 + B_1_6);                                          const double tmp218 = w42*(B_1_1 + B_1_5);
6334                                          const double tmp219 = w37*(B_1_0 + B_1_4);                                          const double tmp219 = w37*(B_1_3 + B_1_7);
6335                                          const double tmp220 = w39*(B_1_1 + B_1_5);                                          const double tmp220 = w40*(B_1_0 + B_1_4);
6336                                          const double tmp221 = w34*(B_1_3 + B_1_7);                                          const double tmp221 = w34*(B_1_2 + B_1_6);
6337                                          const double tmp222 = w36*(-B_0_1 - B_0_7);                                          const double tmp222 = w39*(-B_0_1 - B_0_7);
6338                                          const double tmp223 = w33*(-B_0_0 - B_0_6);                                          const double tmp223 = w36*(-B_0_0 - B_0_6);
6339                                          const double tmp224 = w42*(-B_2_6 - B_2_7);                                          const double tmp224 = w38*(-B_2_0 - B_2_1);
6340                                          const double tmp225 = w35*(-B_2_0 - B_2_1);                                          const double tmp225 = w35*(-B_2_2 - B_2_3);
6341                                          const double tmp226 = w32*(-B_2_2 - B_2_3);                                          const double tmp226 = w45*(-B_2_6 - B_2_7);
6342                                          const double tmp227 = w43*(-B_2_4 - B_2_5);                                          const double tmp227 = w46*(-B_2_4 - B_2_5);
6343                                          const double tmp228 = w31*(B_1_3 + B_1_7);                                          const double tmp228 = w38*(B_2_4 + B_2_6);
6344                                          const double tmp229 = w42*(B_2_1 + B_2_3);                                          const double tmp229 = w42*(B_1_0 + B_1_4);
6345                                          const double tmp230 = w35*(B_2_4 + B_2_6);                                          const double tmp230 = w35*(B_2_5 + B_2_7);
6346                                          const double tmp231 = w37*(B_1_1 + B_1_5);                                          const double tmp231 = w37*(B_1_2 + B_1_6);
6347                                          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);
6348                                          const double tmp233 = w39*(B_1_0 + B_1_4);                                          const double tmp233 = w45*(B_2_1 + B_2_3);
6349                                          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);
6350                                          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);
6351                                          const double tmp236 = w43*(B_2_0 + B_2_2);                                          const double tmp236 = w46*(B_2_0 + B_2_2);
6352                                          const double tmp237 = w34*(B_1_2 + B_1_6);                                          const double tmp237 = w34*(B_1_3 + B_1_7);
6353                                          const double tmp238 = w31*(-B_1_1 - B_1_5);                                          const double tmp238 = w42*(-B_1_2 - B_1_6);
6354                                          const double tmp239 = w37*(-B_1_3 - B_1_7);                                          const double tmp239 = w37*(-B_1_0 - B_1_4);
6355                                          const double tmp240 = w39*(-B_1_2 - B_1_6);                                          const double tmp240 = w40*(-B_1_3 - B_1_7);
6356                                          const double tmp241 = w34*(-B_1_0 - B_1_4);                                          const double tmp241 = w34*(-B_1_1 - B_1_5);
6357                                          const double tmp242 = w31*(-B_1_6 - B_1_7);                                          const double tmp242 = w38*(-B_2_4 - B_2_5);
6358                                          const double tmp243 = w42*(-B_2_2 - B_2_3);                                          const double tmp243 = w42*(-B_1_0 - B_1_1);
6359                                          const double tmp244 = w35*(-B_2_4 - B_2_5);                                          const double tmp244 = w35*(-B_2_6 - B_2_7);
6360                                          const double tmp245 = w37*(-B_1_4 - B_1_5);                                          const double tmp245 = w37*(-B_1_2 - B_1_3);
6361                                          const double tmp246 = w32*(-B_2_6 - B_2_7);                                          const double tmp246 = w45*(-B_2_2 - B_2_3);
6362                                          const double tmp247 = w39*(-B_1_0 - B_1_1);                                          const double tmp247 = w40*(-B_1_4 - B_1_5);
6363                                          const double tmp248 = w43*(-B_2_0 - B_2_1);                                          const double tmp248 = w46*(-B_2_0 - B_2_1);
6364                                          const double tmp249 = w34*(-B_1_2 - B_1_3);                                          const double tmp249 = w34*(-B_1_6 - B_1_7);
6365                                          const double tmp250 = w31*(B_1_2 + B_1_3);                                          const double tmp250 = w42*(B_1_4 + B_1_5);
6366                                          const double tmp251 = w37*(B_1_0 + B_1_1);                                          const double tmp251 = w37*(B_1_6 + B_1_7);
6367                                          const double tmp252 = w39*(B_1_4 + B_1_5);                                          const double tmp252 = w40*(B_1_0 + B_1_1);
6368                                          const double tmp253 = w34*(B_1_6 + B_1_7);                                          const double tmp253 = w34*(B_1_2 + B_1_3);
6369                                          const double tmp254 = w42*(-B_2_4 - B_2_6);                                          const double tmp254 = w38*(-B_2_1 - B_2_3);
6370                                          const double tmp255 = w35*(-B_2_1 - B_2_3);                                          const double tmp255 = w35*(-B_2_0 - B_2_2);
6371                                          const double tmp256 = w32*(-B_2_0 - B_2_2);                                          const double tmp256 = w45*(-B_2_4 - B_2_6);
6372                                          const double tmp257 = w43*(-B_2_5 - B_2_7);                                          const double tmp257 = w46*(-B_2_5 - B_2_7);
6373                                          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);
6374                                          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);
6375                                          const double tmp260 = w42*(-B_2_5 - B_2_7);                                          const double tmp260 = w38*(-B_2_0 - B_2_2);
6376                                          const double tmp261 = w35*(-B_2_0 - B_2_2);                                          const double tmp261 = w35*(-B_2_1 - B_2_3);
6377                                          const double tmp262 = w32*(-B_2_1 - B_2_3);                                          const double tmp262 = w45*(-B_2_5 - B_2_7);
6378                                          const double tmp263 = w43*(-B_2_4 - B_2_6);                                          const double tmp263 = w46*(-B_2_4 - B_2_6);
6379                                          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;
6380                                          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;
6381                                          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;
6382                                          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;
6383                                          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;
6384                                          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;
6385                                          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;
6386                                          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;
6387                                          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;
6388                                          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;
6389                                          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;
6390                                          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;
6391                                          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;
6392                                          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;
6393                                          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;
6394                                          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;
6395                                          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;
6396                                          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;
6397                                          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;
6398                                          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;
6399                                          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;
6400                                          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;
6401                                          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;
6402                                          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;
6403                                          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;
6404                                          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;
6405                                          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;
6406                                          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;
6407                                          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;
6408                                          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;
6409                                          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;
6410                                          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;
6411                                          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;
6412                                          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;
6413                                          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;
6414                                          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;
6415                                          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;
6416                                          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;
6417                                          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;
6418                                          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;
6419                                          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;
6420                                          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;
6421                                          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;
6422                                          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;
6423                                          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;
6424                                          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;
6425                                          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;
6426                                          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;
6427                                          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;
6428                                          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;
6429                                          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;
6430                                          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;
6431                                          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;
6432                                          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;
6433                                          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;
6434                                          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;
6435                                          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;
6436                                          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;
6437                                          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;
6438                                          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;
6439                                          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;
6440                                          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;
6441                                          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;
6442                                          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;
6443                                      }                                      }
6444                                  }                                  }
6445                              } else { // constant data                              } else { // constant data
6446                                  for (index_t k=0; k<numEq; k++) {                                  for (index_t k=0; k<numEq; k++) {
6447                                      for (index_t m=0; m<numComp; m++) {                                      for (index_t m=0; m<numComp; m++) {
6448                                          const double B_0 = B_p[INDEX3(k,0,m,numEq,3)];                                          const double wB0 = B_p[INDEX3(k,0,m,numEq,3)]*w55;
6449                                          const double B_1 = B_p[INDEX3(k,1,m,numEq,3)];                                          const double wB1 = B_p[INDEX3(k,1,m,numEq,3)]*w56;
6450                                          const double B_2 = B_p[INDEX3(k,2,m,numEq,3)];                                          const double wB2 = B_p[INDEX3(k,2,m,numEq,3)]*w54;
6451                                          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;
6452                                          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;
6453                                          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;
6454                                          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;
6455                                          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;
6456                                          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;
6457                                          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;
6458                                          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;
6459                                          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;
6460                                          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;
6461                                          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;
6462                                          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;
6463                                          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;
6464                                          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;
6465                                          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;
6466                                          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;
6467                                          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;
6468                                          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;
6469                                          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;
6470                                          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;
6471                                          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;
6472                                          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;
6473                                          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;
6474                                          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;
6475                                          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;
6476                                          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;
6477                                          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;
6478                                          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;
6479                                          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;
6480                                          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;
6481                                          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;
6482                                          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;
6483                                          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;
6484                                          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;
6485                                          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;
6486                                          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;
6487                                          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;
6488                                          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;
6489                                          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;
6490                                          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;
6491                                          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;
6492                                          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;
6493                                          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;
6494                                          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;
6495                                          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;
6496                                          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;
6497                                          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;
6498                                          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;
6499                                          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;
6500                                          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;
6501                                          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;
6502                                          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;
6503                                          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;
6504                                          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;
6505                                          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;
6506                                          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;
6507                                          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;
6508                                          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;
6509                                          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;
6510                                          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;
6511                                          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;
6512                                          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;
6513                                          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;
6514                                          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;
6515                                      }                                      }
6516                                  }                                  }
6517                              }                              }
# Line 6589  void Brick::assemblePDESystem(Paso_Syste Line 6549  void Brick::assemblePDESystem(Paso_Syste
6549                                          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)];
6550                                          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)];
6551                                          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)];
6552                                          const double tmp0 = w38*(C_0_3 + C_0_7);                                          const double tmp0 = w38*(-C_2_5 - C_2_6);
6553                                          const double tmp1 = w31*(C_1_0 + C_1_4);                                          const double tmp1 = w42*(C_1_3 + C_1_7);
6554                                          const double tmp2 = w42*(-C_2_1 - C_2_2);                                          const double tmp2 = w41*(C_0_3 + C_0_7);
6555                                          const double tmp3 = w35*(-C_2_5 - C_2_6);                                          const double tmp3 = w37*(C_1_1 + C_1_5);
6556                                          const double tmp4 = w37*(C_1_2 + C_1_6);                                          const double tmp4 = w39*(C_0_2 + C_0_6);
6557                                          const double tmp5 = w39*(C_1_3 + C_1_7);                                          const double tmp5 = w45*(-C_2_1 - C_2_2);
6558                                          const double tmp6 = w36*(C_0_2 + C_0_6);                                          const double tmp6 = w36*(C_0_1 + C_0_5);
6559                                          const double tmp7 = w33*(C_0_1 + C_0_5);                                          const double tmp7 = w40*(C_1_2 + C_1_6);
6560                                          const double tmp8 = w30*(C_0_0 + C_0_4);                                          const double tmp8 = w33*(C_0_0 + C_0_4);
6561                                          const double tmp9 = w34*(C_1_1 + C_1_5);                                          const double tmp9 = w34*(C_1_0 + C_1_4);
6562                                          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);
6563                                          const double tmp11 = w31*(C_1_2 + C_1_3);                                          const double tmp11 = w42*(C_1_4 + C_1_5);
6564                                          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);
6565                                          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);
6566                                          const double tmp14 = w37*(C_1_0 + C_1_1);                                          const double tmp14 = w39*(C_0_5 + C_0_7);
6567                                          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);
6568                                          const double tmp16 = w36*(C_0_5 + C_0_7);                                          const double tmp16 = w36*(C_0_0 + C_0_2);
6569                                          const double tmp17 = w33*(C_0_0 + C_0_2);                                          const double tmp17 = w40*(C_1_0 + C_1_1);
6570                                          const double tmp18 = w30*(C_0_1 + C_0_3);                                          const double tmp18 = w33*(C_0_1 + C_0_3);
6571                                          const double tmp19 = w34*(C_1_6 + C_1_7);                                          const double tmp19 = w34*(C_1_2 + C_1_3);
6572                                          const double tmp20 = w38*(C_0_1 + C_0_3);                                          const double tmp20 = w38*(-C_2_5 - C_2_7);
6573                                          const double tmp21 = w42*(-C_2_0 - C_2_2);                                          const double tmp21 = w35*(-C_2_4 - C_2_6);
6574                                          const double tmp22 = w35*(-C_2_5 - C_2_7);                                          const double tmp22 = w41*(C_0_1 + C_0_3);
6575                                          const double tmp23 = w37*(C_1_2 + C_1_7);                                          const double tmp23 = w37*(C_1_0 + C_1_5);
6576                                          const double tmp24 = w32*(-C_2_4 - C_2_6);                                          const double tmp24 = w39*(C_0_0 + C_0_2);
6577                                          const double tmp25 = w36*(C_0_0 + C_0_2);                                          const double tmp25 = w45*(-C_2_0 - C_2_2);
6578                                          const double tmp26 = w33*(C_0_5 + C_0_7);                                          const double tmp26 = w36*(C_0_5 + C_0_7);
6579                                          const double tmp27 = w30*(C_0_4 + C_0_6);                                          const double tmp27 = w40*(C_1_2 + C_1_7);
6580                                          const double tmp28 = w43*(-C_2_1 - C_2_3);                                          const double tmp28 = w33*(C_0_4 + C_0_6);
6581                                          const double tmp29 = w34*(C_1_0 + C_1_5);                                          const double tmp29 = w46*(-C_2_1 - C_2_3);
6582                                          const double tmp30 = w38*(-C_0_4 - C_0_6);                                          const double tmp30 = w38*(C_2_0 + C_2_2);
6583                                          const double tmp31 = w42*(C_2_5 + C_2_7);                                          const double tmp31 = w35*(C_2_1 + C_2_3);
6584                                          const double tmp32 = w35*(C_2_0 + C_2_2);                                          const double tmp32 = w41*(-C_0_4 - C_0_6);
6585                                          const double tmp33 = w37*(-C_1_0 - C_1_5);                                          const double tmp33 = w37*(-C_1_2 - C_1_7);
6586                                          const double tmp34 = w32*(C_2_1 + C_2_3);                                          const double tmp34 = w39*(-C_0_5 - C_0_7);
6587                                          const double tmp35 = w36*(-C_0_5 - C_0_7);                                          const double tmp35 = w45*(C_2_5 + C_2_7);
6588                                          const double tmp36 = w33*(-C_0_0 - C_0_2);                                          const double tmp36 = w36*(-C_0_0 - C_0_2);
6589                                          const double tmp37 = w30*(-C_0_1 - C_0_3);                                          const double tmp37 = w40*(-C_1_0 - C_1_5);
6590                                          const double tmp38 = w43*(C_2_4 + C_2_6);                                          const double tmp38 = w33*(-C_0_1 - C_0_3);
6591                                          const double tmp39 = w34*(-C_1_2 - C_1_7);                                          const double tmp39 = w46*(C_2_4 + C_2_6);
6592                                          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);
6593                                          const double tmp41 = w31*(-C_1_4 - C_1_5);                                          const double tmp41 = w42*(-C_1_2 - C_1_3);
6594                                          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);
6595                                          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);
6596                                          const double tmp44 = w37*(-C_1_6 - C_1_7);                                          const double tmp44 = w39*(-C_0_0 - C_0_2);
6597                                          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);
6598                                          const double tmp46 = w36*(-C_0_0 - C_0_2);                                          const double tmp46 = w36*(-C_0_5 - C_0_7);
6599                                          const double tmp47 = w33*(-C_0_5 - C_0_7);                                          const double tmp47 = w40*(-C_1_6 - C_1_7);
6600                                          const double tmp48 = w30*(-C_0_4 - C_0_6);                                          const double tmp48 = w33*(-C_0_4 - C_0_6);
6601                                          const double tmp49 = w34*(-C_1_0 - C_1_1);                                          const double tmp49 = w34*(-C_1_4 - C_1_5);
6602                                          const double tmp50 = w31*(-C_1_2 - C_1_3);                                          const double tmp50 = w38*(C_2_0 + C_2_1);
6603                                          const double tmp51 = w42*(C_2_6 + C_2_7);                                          const double tmp51 = w42*(-C_1_4 - C_1_5);
6604                                          const double tmp52 = w35*(C_2_0 + C_2_1);                                          const double tmp52 = w35*(C_2_2 + C_2_3);
6605                                          const double tmp53 = w37*(-C_1_0 - C_1_1);                                          const double tmp53 = w37*(-C_1_6 - C_1_7);
6606                                          const double tmp54 = w32*(C_2_2 + C_2_3);                                          const double tmp54 = w39*(-C_0_1 - C_0_7);
6607                                          const double tmp55 = w39*(-C_1_4 - C_1_5);                                          const double tmp55 = w45*(C_2_6 + C_2_7);
6608                                          const double tmp56 = w36*(-C_0_1 - C_0_7);                                          const double tmp56 = w36*(-C_0_0 - C_0_6);
6609                                          const double tmp57 = w33*(-C_0_0 - C_0_6);                                          const double tmp57 = w40*(-C_1_0 - C_1_1);
6610                                          const double tmp58 = w43*(C_2_4 + C_2_5);                                          const double tmp58 = w46*(C_2_4 + C_2_5);
6611                                          const double tmp59 = w34*(-C_1_6 - C_1_7);                                          const double tmp59 = w34*(-C_1_2 - C_1_3);
6612                                          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);
6613                                          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);
6614                                          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);
6615                                          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);
6616                                          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);
6617                                          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);
6618                                          const double tmp66 = w38*(-C_0_5 - C_0_7);                                          const double tmp66 = w41*(-C_0_5 - C_0_7);
6619                                          const double tmp67 = w36*(-C_0_4 - C_0_6);                                          const double tmp67 = w39*(-C_0_4 - C_0_6);
6620                                          const double tmp68 = w33*(-C_0_1 - C_0_3);                                          const double tmp68 = w36*(-C_0_1 - C_0_3);
6621                                          const double tmp69 = w30*(-C_0_0 - C_0_2);                                          const double tmp69 = w33*(-C_0_0 - C_0_2);
6622                                          const double tmp70 = w38*(-C_0_2 - C_0_6);                                          const double tmp70 = w38*(C_2_0 + C_2_3);
6623                                          const double tmp71 = w31*(C_1_1 + C_1_5);                                          const double tmp71 = w42*(C_1_2 + C_1_6);
6624                                          const double tmp72 = w42*(C_2_4 + C_2_7);                                          const double tmp72 = w41*(-C_0_2 - C_0_6);
6625                                          const double tmp73 = w35*(C_2_0 + C_2_3);                                          const double tmp73 = w37*(C_1_0 + C_1_4);
6626                                          const double tmp74 = w37*(C_1_3 + C_1_7);                                          const double tmp74 = w39*(-C_0_3 - C_0_7);
6627                                          const double tmp75 = w39*(C_1_2 + C_1_6);                                          const double tmp75 = w45*(C_2_4 + C_2_7);
6628                                          const double tmp76 = w36*(-C_0_3 - C_0_7);                                          const double tmp76 = w36*(-C_0_0 - C_0_4);
6629                                          const double tmp77 = w33*(-C_0_0 - C_0_4);                                          const double tmp77 = w40*(C_1_3 + C_1_7);
6630                                          const double tmp78 = w30*(-C_0_1 - C_0_5);                                          const double tmp78 = w33*(-C_0_1 - C_0_5);
6631                                          const double tmp79 = w34*(C_1_0 + C_1_4);                                          const double tmp79 = w34*(C_1_1 + C_1_5);
6632                                          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);
6633                                          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);
6634                                          const double tmp82 = w38*(C_0_1 + C_0_5);                                          const double tmp82 = w38*(-C_2_4 - C_2_7);
6635                                          const double tmp83 = w31*(-C_1_2 - C_1_6);                                          const double tmp83 = w42*(-C_1_1 - C_1_5);
6636                                          const double tmp84 = w42*(-C_2_0 - C_2_3);                                          const double tmp84 = w41*(C_0_1 + C_0_5);
6637                                          const double tmp85 = w35*(-C_2_4 - C_2_7);                                          const double tmp85 = w37*(-C_1_3 - C_1_7);
6638                                          const double tmp86 = w37*(-C_1_0 - C_1_4);                                          const double tmp86 = w39*(C_0_0 + C_0_4);
6639                                          const double tmp87 = w39*(-C_1_1 - C_1_5);                                          const double tmp87 = w45*(-C_2_0 - C_2_3);
6640                                          const double tmp88 = w36*(C_0_0 + C_0_4);                                          const double tmp88 = w36*(C_0_3 + C_0_7);
6641                                          const double tmp89 = w33*(C_0_3 + C_0_7);                                          const double tmp89 = w40*(-C_1_0 - C_1_4);
6642                                          const double tmp90 = w30*(C_0_2 + C_0_6);                                          const double tmp90 = w33*(C_0_2 + C_0_6);
6643                                          const double tmp91 = w34*(-C_1_3 - C_1_7);                                          const double tmp91 = w34*(-C_1_2 - C_1_6);
6644                                          const double tmp92 = w42*(C_2_5 + C_2_6);                                          const double tmp92 = w38*(C_2_1 + C_2_2);
6645                                          const double tmp93 = w35*(C_2_1 + C_2_2);                                          const double tmp93 = w45*(C_2_5 + C_2_6);
6646                                          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);
6647                                          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);
6648                                          const double tmp96 = w38*(C_0_0 + C_0_2);                                          const double tmp96 = w42*(C_1_0 + C_1_1);
6649                                          const double tmp97 = w31*(C_1_6 + C_1_7);                                          const double tmp97 = w41*(C_0_0 + C_0_2);
6650                                          const double tmp98 = w37*(C_1_4 + C_1_5);                                          const double tmp98 = w37*(C_1_2 + C_1_3);
6651                                          const double tmp99 = w39*(C_1_0 + C_1_1);                                          const double tmp99 = w39*(C_0_1 + C_0_3);
6652                                          const double tmp100 = w36*(C_0_1 + C_0_3);                                          const double tmp100 = w36*(C_0_4 + C_0_6);
6653                                          const double tmp101 = w33*(C_0_4 + C_0_6);                                          const double tmp101 = w40*(C_1_4 + C_1_5);
6654                                          const double tmp102 = w30*(C_0_5 + C_0_7);                                          const double tmp102 = w33*(C_0_5 + C_0_7);
6655                                          const double tmp103 = w34*(C_1_2 + C_1_3);                                          const double tmp103 = w34*(C_1_6 + C_1_7);
6656                                          const double tmp104 = w38*(-C_0_3 - C_0_7);                                          const double tmp104 = w38*(-C_2_2 - C_2_3);
6657                                          const double tmp105 = w42*(-C_2_4 - C_2_5);                                          const double tmp105 = w35*(-C_2_0 - C_2_1);
6658                                          const double tmp106 = w35*(-C_2_2 - C_2_3);                                          const double tmp106 = w41*(-C_0_3 - C_0_7);
6659                                          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);
6660                                          const double tmp108 = w32*(-C_2_0 - C_2_1);                                          const double tmp108 = w39*(-C_0_2 - C_0_6);
6661                                          const double tmp109 = w36*(-C_0_2 - C_0_6);                                          const double tmp109 = w45*(-C_2_4 - C_2_5);
6662                                          const double tmp110 = w33*(-C_0_1 - C_0_5);                                          const double tmp110 = w36*(-C_0_1 - C_0_5);
6663                                          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);
6664                                          const double tmp112 = w43*(-C_2_6 - C_2_7);                                          const double tmp112 = w33*(-C_0_0 - C_0_4);
6665                                          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);
6666                                          const double tmp114 = w38*(-C_0_0 - C_0_4);                                          const double tmp114 = w42*(-C_1_0 - C_1_4);
6667                                          const double tmp115 = w31*(-C_1_3 - C_1_7);                                          const double tmp115 = w41*(-C_0_0 - C_0_4);
6668                                          const double tmp116 = w37*(-C_1_1 - C_1_5);                                          const double tmp116 = w37*(-C_1_2 - C_1_6);
6669                                          const double tmp117 = w39*(-C_1_0 - C_1_4);                                          const double tmp117 = w39*(-C_0_1 - C_0_5);
6670                                          const double tmp118 = w36*(-C_0_1 - C_0_5);                                          const double tmp118 = w36*(-C_0_2 - C_0_6);
6671                                          const double tmp119 = w33*(-C_0_2 - C_0_6);                                          const double tmp119 = w40*(-C_1_1 - C_1_5);
6672                                          const double tmp120 = w30*(-C_0_3 - C_0_7);                                          const double tmp120 = w33*(-C_0_3 - C_0_7);
6673                                          const double tmp121 = w34*(-C_1_2 - C_1_6);                                          const double tmp121 = w34*(-C_1_3 - C_1_7);
6674                                          const double tmp122 = w31*(C_1_0 + C_1_1);                                          const double tmp122 = w38*(C_2_2 + C_2_3);
6675                                          const double tmp123 = w42*(C_2_4 + C_2_5);                                          const double tmp123 = w42*(C_1_6 + C_1_7);
6676                                          const double tmp124 = w35*(C_2_2 + C_2_3);                                          const double tmp124 = w35*(C_2_0 + C_2_1);
6677                                          const double tmp125 = w37*(C_1_2 + C_1_3);                                          const double tmp125 = w37*(C_1_4 + C_1_5);
6678                                          const double tmp126 = w32*(C_2_0 + C_2_1);                                          const double tmp126 = w39*(C_0_2 + C_0_4);
6679                                          const double tmp127 = w39*(C_1_6 + C_1_7);                                          const double tmp127 = w45*(C_2_4 + C_2_5);
6680                                          const double tmp128 = w36*(C_0_2 + C_0_4);                                          const double tmp128 = w36*(C_0_3 + C_0_5);
6681                                          const double tmp129 = w33*(C_0_3 + C_0_5);                                          const double tmp129 = w40*(C_1_2 + C_1_3);
6682                                          const double tmp130 = w43*(C_2_6 + C_2_7);                                          const double tmp130 = w46*(C_2_6 + C_2_7);
6683                                          const double tmp131 = w34*(C_1_4 + C_1_5);                                          const double tmp131 = w34*(C_1_0 + C_1_1);
6684                                          const double tmp132 = w42*(-C_2_5 - C_2_6);                                          const double tmp132 = w38*(-C_2_1 - C_2_2);
6685                                          const double tmp133 = w35*(-C_2_1 - C_2_2);                                          const double tmp133 = w37*(C_1_2 + C_1_7);
6686                                          const double tmp134 = w37*(C_1_0 + C_1_5);                                          const double tmp134 = w39*(C_0_1 + C_0_7);
6687                                          const double tmp135 = w36*(C_0_1 + C_0_7);                                          const double tmp135 = w36*(C_0_0 + C_0_6);
6688                                          const double tmp136 = w33*(C_0_0 + C_0_6);                                          const double tmp136 = w40*(C_1_0 + C_1_5);
6689                                          const double tmp137 = w34*(C_1_2 + C_1_7);                                          const double tmp137 = w45*(-C_2_5 - C_2_6);
6690                                          const double tmp138 = w38*(-C_0_0 - C_0_2);                                          const double tmp138 = w38*(-C_2_4 - C_2_6);
6691                                          const double tmp139 = w42*(-C_2_1 - C_2_3);                                          const double tmp139 = w35*(-C_2_5 - C_2_7);
6692                                          const double tmp140 = w35*(-C_2_4 - C_2_6);                                          const double tmp140 = w41*(-C_0_0 - C_0_2);
6693                                          const double tmp141 = w37*(-C_1_1 - C_1_4);                                          const double tmp141 = w37*(-C_1_3 - C_1_6);
6694                                          const double tmp142 = w32*(-C_2_5 - C_2_7);                                          const double tmp142 = w39*(-C_0_1 - C_0_3);
6695                                          const double tmp143 = w36*(-C_0_1 - C_0_3);                                          const double tmp143 = w45*(-C_2_1 - C_2_3);
6696                                          const double tmp144 = w33*(-C_0_4 - C_0_6);                                          const double tmp144 = w36*(-C_0_4 - C_0_6);
6697                                          const double tmp145 = w30*(-C_0_5 - C_0_7);                                          const double tmp145 = w40*(-C_1_1 - C_1_4);
6698                                          const double tmp146 = w43*(-C_2_0 - C_2_2);                                          const double tmp146 = w33*(-C_0_5 - C_0_7);
6699                                          const double tmp147 = w34*(-C_1_3 - C_1_6);                                          const double tmp147 = w46*(-C_2_0 - C_2_2);
6700                                          const double tmp148 = w36*(-C_0_3 - C_0_5);                                          const double tmp148 = w39*(-C_0_3 - C_0_5);
6701                                          const double tmp149 = w33*(-C_0_2 - C_0_4);                                          const double tmp149 = w36*(-C_0_2 - C_0_4);
6702                                          const double tmp150 = w42*(C_2_1 + C_2_2);                                          const double tmp150 = w38*(C_2_5 + C_2_6);
6703                                          const double tmp151 = w35*(C_2_5 + C_2_6);                                          const double tmp151 = w37*(-C_1_0 - C_1_5);
6704                                          const double tmp152 = w37*(-C_1_2 - C_1_7);                                          const double tmp152 = w39*(-C_0_0 - C_0_6);
6705                                          const double tmp153 = w36*(-C_0_0 - C_0_6);                                          const double tmp153 = w45*(C_2_1 + C_2_2);
6706                                          const double tmp154 = w33*(-C_0_1 - C_0_7);                                          const double tmp154 = w36*(-C_0_1 - C_0_7);
6707                                          const double tmp155 = w34*(-C_1_0 - C_1_5);                                          const double tmp155 = w40*(-C_1_2 - C_1_7);
6708                                          const double tmp156 = w38*(C_0_2 + C_0_6);                                          const double tmp156 = w41*(C_0_2 + C_0_6);
6709                                          const double tmp157 = w36*(C_0_3 + C_0_7);                                          const double tmp157 = w39*(C_0_3 + C_0_7);
6710                                          const double tmp158 = w33*(C_0_0 + C_0_4);                                          const double tmp158 = w36*(C_0_0 + C_0_4);
6711                                          const double tmp159 = w30*(C_0_1 + C_0_5);                                          const double tmp159 = w33*(C_0_1 + C_0_5);
6712                                          const double tmp160 = w42*(C_2_0 + C_2_1);                                          const double tmp160 = w38*(C_2_6 + C_2_7);
6713                                          const double tmp161 = w35*(C_2_6 + C_2_7);                                          const double tmp161 = w35*(C_2_4 + C_2_5);
6714                                          const double tmp162 = w32*(C_2_4 + C_2_5);                                          const double tmp162 = w45*(C_2_0 + C_2_1);
6715                                          const double tmp163 = w43*(C_2_2 + C_2_3);                                          const double tmp163 = w46*(C_2_2 + C_2_3);
6716                                          const double tmp164 = w42*(-C_2_4 - C_2_7);                                          const double tmp164 = w38*(-C_2_0 - C_2_3);
6717                                          const double tmp165 = w35*(-C_2_0 - C_2_3);                                          const double tmp165 = w37*(C_1_3 + C_1_6);
6718                                          const double tmp166 = w37*(C_1_1 + C_1_4);                                          const double tmp166 = w40*(C_1_1 + C_1_4);
6719                                          const double tmp167 = w34*(C_1_3 + C_1_6);                                          const double tmp167 = w45*(-C_2_4 - C_2_7);
6720                                          const double tmp168 = w36*(C_0_3 + C_0_5);                                          const double tmp168 = w39*(C_0_3 + C_0_5);
6721                                          const double tmp169 = w33*(C_0_2 + C_0_4);                                          const double tmp169 = w36*(C_0_2 + C_0_4);
6722                                          const double tmp170 = w38*(C_0_5 + C_0_7);                                          const double tmp170 = w38*(C_2_1 + C_2_3);
6723                                          const double tmp171 = w42*(C_2_4 + C_2_6);                                          const double tmp171 = w35*(C_2_0 + C_2_2);
6724                                          const double tmp172 = w35*(C_2_1 + C_2_3);                                          const double tmp172 = w41*(C_0_5 + C_0_7);
6725                                          const double tmp173 = w37*(C_1_3 + C_1_6);                                          const double tmp173 = w37*(C_1_1 + C_1_4);
6726                                          const double tmp174 = w32*(C_2_0 + C_2_2);                                          const double tmp174 = w39*(C_0_4 + C_0_6);
6727                                          const double tmp175 = w36*(C_0_4 + C_0_6);                                          const double tmp175 = w45*(C_2_4 + C_2_6);
6728                                          const double tmp176 = w33*(C_0_1 + C_0_3);                                          const double tmp176 = w36*(C_0_1 + C_0_3);
6729                                          const double tmp177 = w30*(C_0_0 + C_0_2);                                          const double tmp177 = w40*(C_1_3 + C_1_6);
6730                                          const double tmp178 = w43*(C_2_5 + C_2_7);                                          const double tmp178 = w33*(C_0_0 + C_0_2);
6731                                          const double tmp179 = w34*(C_1_1 + C_1_4);                                          const double tmp179 = w46*(C_2_5 + C_2_7);
6732                                          const double tmp180 = w31*(C_1_2 + C_1_6);                                          const double tmp180 = w38*(-C_2_1 - C_2_3);
6733                                          const double tmp181 = w42*(-C_2_4 - C_2_6);                                          const double tmp181 = w42*(C_1_1 + C_1_5);
6734                                          const double tmp182 = w35*(-C_2_1 - C_2_3);                                          const double tmp182 = w35*(-C_2_0 - C_2_2);
6735                                          const double tmp183 = w37*(C_1_0 + C_1_4);                                          const double tmp183 = w37*(C_1_3 + C_1_7);
6736                                          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);
6737                                          const double tmp185 = w39*(C_1_1 + C_1_5);                                          const double tmp185 = w45*(-C_2_4 - C_2_6);
6738                                          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);
6739                                          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);
6740                                          const double tmp188 = w43*(-C_2_5 - C_2_7);                                          const double tmp188 = w46*(-C_2_5 - C_2_7);
6741                                          const double tmp189 = w34*(C_1_3 + C_1_7);                                          const double tmp189 = w34*(C_1_2 + C_1_6);
6742                                          const double tmp190 = w38*(C_0_0 + C_0_4);                                          const double tmp190 = w38*(-C_2_0 - C_2_1);
6743                                          const double tmp191 = w42*(-C_2_6 - C_2_7);                                          const double tmp191 = w35*(-C_2_2 - C_2_3);
6744                                          const double tmp192 = w35*(-C_2_0 - C_2_1);                                          const double tmp192 = w41*(C_0_0 + C_0_4);
6745                                          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);
6746                                          const double tmp194 = w32*(-C_2_2 - C_2_3);                                          const double tmp194 = w39*(C_0_1 + C_0_5);
6747                                          const double tmp195 = w36*(C_0_1 + C_0_5);                                          const double tmp195 = w45*(-C_2_6 - C_2_7);
6748                                          const double tmp196 = w33*(C_0_2 + C_0_6);                                          const double tmp196 = w36*(C_0_2 + C_0_6);
6749                                          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);
6750                                          const double tmp198 = w43*(-C_2_4 - C_2_5);                                          const double tmp198 = w33*(C_0_3 + C_0_7);
6751                                          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);
6752                                          const double tmp200 = w31*(C_1_4 + C_1_5);                                          const double tmp200 = w38*(-C_2_6 - C_2_7);
6753                                          const double tmp201 = w42*(-C_2_0 - C_2_1);                                          const double tmp201 = w42*(C_1_2 + C_1_3);
6754                                          const double tmp202 = w35*(-C_2_6 - C_2_7);                                          const double tmp202 = w35*(-C_2_4 - C_2_5);
6755                                          const double tmp203 = w37*(C_1_6 + C_1_7);                                          const double tmp203 = w37*(C_1_0 + C_1_1);
6756                                          const double tmp204 = w32*(-C_2_4 - C_2_5);                                          const double tmp204 = w45*(-C_2_0 - C_2_1);
6757                                          const double tmp205 = w39*(C_1_2 + C_1_3);                                          const double tmp205 = w40*(C_1_6 + C_1_7);
6758                                          const double tmp206 = w43*(-C_2_2 - C_2_3);                                          const double tmp206 = w46*(-C_2_2 - C_2_3);
6759                                          const double tmp207 = w34*(C_1_0 + C_1_1);                                          const double tmp207 = w34*(C_1_4 + C_1_5);
6760                                          const double tmp208 = w37*(-C_1_3 - C_1_6);                                          const double tmp208 = w37*(-C_1_1 - C_1_4);
6761                                          const double tmp209 = w36*(-C_0_2 - C_0_4);                                          const double tmp209 = w39*(-C_0_2 - C_0_4);
6762                                          const double tmp210 = w33*(-C_0_3 - C_0_5);                                          const double tmp210 = w36*(-C_0_3 - C_0_5);
6763                                          const double tmp211 = w34*(-C_1_1 - C_1_4);                                          const double tmp211 = w40*(-C_1_3 - C_1_6);
6764                                          const double tmp212 = w42*(C_2_0 + C_2_3);                                          const double tmp212 = w38*(C_2_4 + C_2_7);
6765                                          const double tmp213 = w35*(C_2_4 + C_2_7);                                          const double tmp213 = w45*(C_2_0 + C_2_3);
6766                                          const double tmp214 = w38*(-C_0_1 - C_0_5);                                          const double tmp214 = w41*(-C_0_1 - C_0_5);
6767                                          const double tmp215 = w36*(-C_0_0 - C_0_4);                                          const double tmp215 = w39*(-C_0_0 - C_0_4);
6768                                          const double tmp216 = w33*(-C_0_3 - C_0_7);                                          const double tmp216 = w36*(-C_0_3 - C_0_7);
6769                                          const double tmp217 = w30*(-C_0_2 - C_0_6);                                          const double tmp217 = w33*(-C_0_2 - C_0_6);
6770                                          const double tmp218 = w31*(-C_1_0 - C_1_4);                                          const double tmp218 = w42*(-C_1_3 - C_1_7);
6771                                          const double tmp219 = w37*(-C_1_2 - C_1_6);                                          const double tmp219 = w37*(-C_1_1 - C_1_5);
6772                                          const double tmp220 = w39*(-C_1_3 - C_1_7);                                          const double tmp220 = w40*(-C_1_2 - C_1_6);
6773                                          const double tmp221 = w34*(-C_1_1 - C_1_5);                                          const double tmp221 = w34*(-C_1_0 - C_1_4);
6774                                          const double tmp222 = w36*(C_0_0 + C_0_6);                                          const double tmp222 = w39*(C_0_0 + C_0_6);
6775                                          const double tmp223 = w33*(C_0_1 + C_0_7);                                          const double tmp223 = w36*(C_0_1 + C_0_7);
6776                                          const double tmp224 = w42*(C_2_2 + C_2_3);                                          const double tmp224 = w38*(C_2_4 + C_2_5);
6777                                          const double tmp225 = w35*(C_2_4 + C_2_5);                                          const double tmp225 = w35*(C_2_6 + C_2_7);
6778                                          const double tmp226 = w32*(C_2_6 + C_2_7);                                          const double tmp226 = w45*(C_2_2 + C_2_3);
6779                                          const double tmp227 = w43*(C_2_0 + C_2_1);                                          const double tmp227 = w46*(C_2_0 + C_2_1);
6780                                          const double tmp228 = w31*(-C_1_1 - C_1_5);                                          const double tmp228 = w38*(-C_2_0 - C_2_2);
6781                                          const double tmp229 = w42*(-C_2_5 - C_2_7);                                          const double tmp229 = w42*(-C_1_2 - C_1_6);
6782                                          const double tmp230 = w35*(-C_2_0 - C_2_2);                                          const double tmp230 = w35*(-C_2_1 - C_2_3);
6783                                          const double tmp231 = w37*(-C_1_3 - C_1_7);                                          const double tmp231 = w37*(-C_1_0 - C_1_4);
6784                                          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);
6785                                          const double tmp233 = w39*(-C_1_2 - C_1_6);                                          const double tmp233 = w45*(-C_2_5 - C_2_7);
6786                                          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);
6787                                          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);
6788                                          const double tmp236 = w43*(-C_2_4 - C_2_6);                                          const double tmp236 = w46*(-C_2_4 - C_2_6);
6789                                          const double tmp237 = w34*(-C_1_0 - C_1_4);                                          const double tmp237 = w34*(-C_1_1 - C_1_5);
6790                                          const double tmp238 = w31*(C_1_3 + C_1_7);                                          const double tmp238 = w42*(C_1_0 + C_1_4);
6791                                          const double tmp239 = w37*(C_1_1 + C_1_5);                                          const double tmp239 = w37*(C_1_2 + C_1_6);
6792                                          const double tmp240 = w39*(C_1_0 + C_1_4);                                          const double tmp240 = w40*(C_1_1 + C_1_5);
6793                                          const double tmp241 = w34*(C_1_2 + C_1_6);                                          const double tmp241 = w34*(C_1_3 + C_1_7);
6794                                          const double tmp242 = w31*(-C_1_6 - C_1_7);                                          const double tmp242 = w38*(-C_2_4 - C_2_5);
6795                                          const double tmp243 = w42*(-C_2_2 - C_2_3);                                          const double tmp243 = w42*(-C_1_0 - C_1_1);
6796                                          const double tmp244 = w35*(-C_2_4 - C_2_5);                                          const double tmp244 = w35*(-C_2_6 - C_2_7);
6797                                          const double tmp245 = w37*(-C_1_4 - C_1_5);                                          const double tmp245 = w37*(-C_1_2 - C_1_3);
6798                                          const double tmp246 = w32*(-C_2_6 - C_2_7);                                          const double tmp246 = w45*(-C_2_2 - C_2_3);
6799                                          const double tmp247 = w39*(-C_1_0 - C_1_1);                                          const double tmp247 = w40*(-C_1_4 - C_1_5);
6800                                          const double tmp248 = w43*(-C_2_0 - C_2_1);                                          const double tmp248 = w46*(-C_2_0 - C_2_1);
6801                                          const double tmp249 = w34*(-C_1_2 - C_1_3);                                          const double tmp249 = w34*(-C_1_6 - C_1_7);
6802                                          const double tmp250 = w31*(-C_1_0 - C_1_1);                                          const double tmp250 = w42*(-C_1_6 - C_1_7);
6803                                          const double tmp251 = w37*(-C_1_2 - C_1_3);                                          const double tmp251 = w37*(-C_1_4 - C_1_5);
6804                                          const double tmp252 = w39*(-C_1_6 - C_1_7);                                          const double tmp252 = w40*(-C_1_2 - C_1_3);
6805                                          const double tmp253 = w34*(-C_1_4 - C_1_5);                                          const double tmp253 = w34*(-C_1_0 - C_1_1);
6806                                          const double tmp254 = w42*(C_2_0 + C_2_2);                                          const double tmp254 = w38*(C_2_5 + C_2_7);
6807                                          const double tmp255 = w35*(C_2_5 + C_2_7);                                          const double tmp255 = w35*(C_2_4 + C_2_6);
6808                                          const double tmp256 = w32*(C_2_4 + C_2_6);                                          const double tmp256 = w45*(C_2_0 + C_2_2);
6809                                          const double tmp257 = w43*(C_2_1 + C_2_3);                                          const double tmp257 = w46*(C_2_1 + C_2_3);
6810                                          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);
6811                                          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);
6812                                          const double tmp260 = w42*(C_2_1 + C_2_3);                                          const double tmp260 = w38*(C_2_4 + C_2_6);
6813                                          const double tmp261 = w35*(C_2_4 + C_2_6);                                          const double tmp261 = w35*(C_2_5 + C_2_7);
6814                                          const double tmp262 = w32*(C_2_5 + C_2_7);                                          const double tmp262 = w45*(C_2_1 + C_2_3);
6815                                          const double tmp263 = w43*(C_2_0 + C_2_2);                                          const double tmp263 = w46*(C_2_0 + C_2_2);
6816                                          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;
6817                                          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;
6818                                          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;
6819                                          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;
6820                                          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;
6821                                          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;
6822                                          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;
6823                                          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;
6824                                          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;
6825                                          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;
6826                                          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;
6827                                          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;
6828                                          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;
6829                                          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;
6830                                          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;
6831                                          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;
6832                                          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;
6833                                          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;
6834                                          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;
6835                                          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;
6836                                          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;
6837                                          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;
6838                                          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;
6839                                          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;
6840                                          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;
6841                                          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;
6842                                          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;
6843                                          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;
6844                                          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;
6845                                          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;
6846                                          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;
6847                                          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;
6848                                          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;
6849                                          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;
6850                                          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;
6851                                          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;
6852                                          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;
6853                                          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;
6854                                          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;
6855                                          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;
6856                                          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;
6857                                          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;
6858                                          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;
6859                                          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;
6860                                          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;
6861                                          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;
6862                                          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;
6863                                          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;
6864                                          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;
6865                                          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;
6866                                          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;
6867                                          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;
6868                                          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;
6869                                          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;
6870                                          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;
6871                                          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;
6872                                          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;
6873                                          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;
6874                                          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;
6875                                          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;
6876                                          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;
6877                                          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;
6878                                          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;
6879                                          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;
6880                                      }                                      }
6881                                  }                                  }
6882                              } else { // constant data                              } else { // constant data
6883                                  for (index_t k=0; k<numEq; k++) {                                  for (index_t k=0; k<numEq; k++) {
6884                                      for (index_t m=0; m<numComp; m++) {                                      for (index_t m=0; m<numComp; m++) {
6885                                          const double C_0 = C_p[INDEX3(k,m,0,numEq,numComp)];                                          const double wC0 = C_p[INDEX3(k,m,0,numEq,numComp)]*w55;
6886                                          const double C_1 = C_p[INDEX3(k,m,1,numEq,numComp)];                                          const double wC1 = C_p[INDEX3(k,m,1,numEq,numComp)]*w56;
6887                                          const double C_2 = C_p[INDEX3(k,m,2,numEq,numComp)];                                          const double wC2 = C_p[INDEX3(k,m,2,numEq,numComp)]*w54;
6888                                          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;
6889                                          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;
6890                                          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;
6891                                          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;
6892                                          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;
6893                                          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;
6894                                          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;
6895                                          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;
6896                                          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;
6897                                          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;
6898                                          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;
6899                                          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;
6900                                          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;
6901                                          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;
6902                                          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;
6903                                          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;
6904                                          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;
6905                                          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;
6906                                          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;
6907                                          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;
6908                                          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;
6909                                          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;
6910                                          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;
6911                                          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;
6912                                          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;
6913                                          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;
6914                                          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;
6915                                          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;
6916                                          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;
6917                                          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;
6918                                          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;
6919                                          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;
6920                                          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;
6921                                          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;
6922                                          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;
6923                                          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;
6924                                          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;
6925                                          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;
6926                                          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;
6927                                          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;
6928                                          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;
6929                                          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;
6930                                          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;
6931                                          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;
6932                                          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;
6933                                          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;
6934                                          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;
6935                                          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;
6936                                          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;
6937                                          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;
6938                                          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;
6939                                          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;
6940                                          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;
6941                                          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;
6942                                          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;
6943                                          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;
6944                                          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;
6945                                          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;
6946                                          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;
6947                                          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;
6948                                          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;
6949                                          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;
6950                                          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;
6951                                          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;
6952                                      }                                      }
6953                                  }                                  }
6954                              }                              }
# Line 7010  void Brick::assemblePDESystem(Paso_Syste Line 6970  void Brick::assemblePDESystem(Paso_Syste
6970                                          const double D_5 = D_p[INDEX3(k,m,5,numEq,numComp)];                                          const double D_5 = D_p[INDEX3(k,m,5,numEq,numComp)];
6971                                          const double D_6 = D_p[INDEX3(k,m,6,numEq,numComp)];                                          const double D_6 = D_p[INDEX3(k,m,6,numEq,numComp)];
6972                                          const double D_7 = D_p[INDEX3(k,m,7,numEq,numComp)];                                          const double D_7 = D_p[INDEX3(k,m,7,numEq,numComp)];
6973                                          const double tmp0 = w54*(D_0 + D_4);                                          const double tmp0 = w59*(D_3 + D_7);
6974                                          const double tmp1 = w55*(D_1 + D_2 + D_5 + D_6);                                          const double tmp1 = w57*(D_0 + D_4);
6975                                          const double tmp2 = w56*(D_3 + D_7);                                          const double tmp2 = w58*(D_1 + D_2 + D_5 + D_6);
6976                                          const double tmp3 = w57*(D_0 + D_1 + D_2 + D_3);                                          const double tmp3 = w60*(D_0 + D_1 + D_2 + D_3);
6977                                          const double tmp4 = w58*(D_4 + D_5 + D_6 + D_7);                                          const double tmp4 = w61*(D_4 + D_5 + D_6 + D_7);
6978                                          const double tmp5 = w54*(D_4 + D_6);                                          const double tmp5 = w59*(D_1 + D_3);
6979                                          const double tmp6 = w55*(D_0 + D_2 + D_5 + D_7);                                          const double tmp6 = w57*(D_4 + D_6);
6980                                          const double tmp7 = w56*(D_1 + D_3);                                          const double tmp7 = w58*(D_0 + D_2 + D_5 + D_7);
6981                                          const double tmp8 = w54*(D_1 + D_3);                                          const double tmp8 = w59*(D_4 + D_6);
6982                                          const double tmp9 = w56*(D_4 + D_6);                                          const double tmp9 = w57*(D_1 + D_3);
6983                                          const double tmp10 = w57*(D_4 + D_5 + D_6 + D_7);                                          const double tmp10 = w60*(D_4 + D_5 + D_6 + D_7);
6984                                          const double tmp11 = w58*(D_0 + D_1 + D_2 + D_3);                                          const double tmp11 = w61*(D_0 + D_1 + D_2 + D_3);
6985                                          const double tmp12 = w54*(D_2 + D_3);                                          const double tmp12 = w59*(D_4 + D_5);
6986                                          const double tmp13 = w55*(D_0 + D_1 + D_6 + D_7);                                          const double tmp13 = w57*(D_2 + D_3);
6987                                          const double tmp14 = w56*(D_4 + D_5);                                          const double tmp14 = w58*(D_0 + D_1 + D_6 + D_7);
6988                                          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);
6989                                          const double tmp16 = w54*(D_1 + D_5);                                          const double tmp16 = w59*(D_2 + D_6);
6990                                          const double tmp17 = w55*(D_0 + D_3 + D_4 + D_7);                                          const double tmp17 = w57*(D_1 + D_5);
6991                                          const double tmp18 = w56*(D_2 + D_6);                                          const double tmp18 = w58*(D_0 + D_3 + D_4 + D_7);
6992                                          const double tmp19 = w54*(D_2 + D_6);                                          const double tmp19 = w59*(D_1 + D_5);
6993                                          const double tmp20 = w56*(D_1 + D_5);                                          const double tmp20 = w57*(D_2 + D_6);
6994                                          const double tmp21 = w57*(D_0 + D_1 + D_4 + D_5);                                          const double tmp21 = w60*(D_0 + D_1 + D_4 + D_5);
6995                                          const double tmp22 = w58*(D_2 + D_3 + D_6 + D_7);                                          const double tmp22 = w61*(D_2 + D_3 + D_6 + D_7);
6996                                          const double tmp23 = w54*(D_3 + D_7);                                          const double tmp23 = w59*(D_0 + D_4);
6997                                          const double tmp24 = w56*(D_0 + D_4);                                          const double tmp24 = w57*(D_3 + D_7);
6998                                          const double tmp25 = w54*(D_0 + D_1);                                          const double tmp25 = w59*(D_6 + D_7);
6999                                          const double tmp26 = w55*(D_2 + D_3 + D_4 + D_5);                                          const double tmp26 = w57*(D_0 + D_1);
7000                                          const double tmp27 = w56*(D_6 + D_7);                                          const double tmp27 = w58*(D_2 + D_3 + D_4 + D_5);
7001                                          const double tmp28 = w57*(D_0 + D_5 + D_6);                                          const double tmp28 = w60*(D_0 + D_5 + D_6);
7002                                          const double tmp29 = w58*(D_1 + D_2 + D_7);                                          const double tmp29 = w61*(D_1 + D_2 + D_7);
7003                                          const double tmp30 = w54*(D_5 + D_7);                                          const double tmp30 = w59*(D_0 + D_2);
7004                                          const double tmp31 = w55*(D_1 + D_3 + D_4 + D_6);                                          const double tmp31 = w57*(D_5 + D_7);
7005                                          const double tmp32 = w56*(D_0 + D_2);                                          const double tmp32 = w58*(D_1 + D_3 + D_4 + D_6);
7006                                          const double tmp33 = w57*(D_1 + D_2 + D_7);                                          const double tmp33 = w60*(D_1 + D_2 + D_7);
7007                                          const double tmp34 = w58*(D_0 + D_5 + D_6);                                          const double tmp34 = w61*(D_0 + D_5 + D_6);
7008                                          const double tmp35 = w57*(D_1 + D_4 + D_7);                                          const double tmp35 = w60*(D_1 + D_4 + D_7);
7009                                          const double tmp36 = w58*(D_0 + D_3 + D_6);                                          const double tmp36 = w61*(D_0 + D_3 + D_6);
7010                                          const double tmp37 = w57*(D_1 + D_2 + D_4);                                          const double tmp37 = w60*(D_1 + D_2 + D_4);
7011                                          const double tmp38 = w58*(D_3 + D_5 + D_6);                                          const double tmp38 = w61*(D_3 + D_5 + D_6);
7012                                          const double tmp39 = w54*(D_0 + D_2);                                          const double tmp39 = w59*(D_5 + D_7);
7013                                          const double tmp40 = w56*(D_5 + D_7);                                          const double tmp40 = w57*(D_0 + D_2);
7014                                          const double tmp41 = w57*(D_0 + D_2 + D_4 + D_6);                                          const double tmp41 = w60*(D_0 + D_2 + D_4 + D_6);
7015                                          const double tmp42 = w58*(D_1 + D_3 + D_5 + D_7);                                          const double tmp42 = w61*(D_1 + D_3 + D_5 + D_7);
7016                                          const double tmp43 = w57*(D_2 + D_3 + D_6 + D_7);                                          const double tmp43 = w60*(D_2 + D_3 + D_6 + D_7);
7017                                          const double tmp44 = w58*(D_0 + D_1 + D_4 + D_5);                                          const double tmp44 = w61*(D_0 + D_1 + D_4 + D_5);
7018                                          const double tmp45 = w57*(D_2 + D_4 + D_7);                                          const double tmp45 = w60*(D_2 + D_4 + D_7);
7019                                          const double tmp46 = w58*(D_0 + D_3 + D_5);                                          const double tmp46 = w61*(D_0 + D_3 + D_5);
7020                                          const double tmp47 = w54*(D_4 + D_5);                                          const double tmp47 = w59*(D_2 + D_3);
7021                                          const double tmp48 = w56*(D_2 + D_3);                                          const double tmp48 = w57*(D_4 + D_5);
7022                                          const double tmp49 = w57*(D_3 + D_5 + D_6);                                          const double tmp49 = w60*(D_3 + D_5 + D_6);
7023                                          const double tmp50 = w58*(D_1 + D_2 + D_4);                                          const double tmp50 = w61*(D_1 + D_2 + D_4);
7024                                          const double tmp51 = w57*(D_0 + D_3 + D_5);                                          const double tmp51 = w60*(D_0 + D_3 + D_5);
7025                                          const double tmp52 = w58*(D_2 + D_4 + D_7);                                          const double tmp52 = w61*(D_2 + D_4 + D_7);
7026                                          const double tmp53 = w57*(D_0 + D_3 + D_6);                                          const double tmp53 = w60*(D_0 + D_3 + D_6);
7027                                          const double tmp54 = w58*(D_1 + D_4 + D_7);                                          const double tmp54 = w61*(D_1 + D_4 + D_7);
7028                                          const double tmp55 = w57*(D_1 + D_3 + D_5 + D_7);                                          const double tmp55 = w60*(D_1 + D_3 + D_5 + D_7);
7029                                          const double tmp56 = w58*(D_0 + D_2 + D_4 + D_6);                                          const double tmp56 = w61*(D_0 + D_2 + D_4 + D_6);
7030                                          const double tmp57 = w54*(D_6 + D_7);                                          const double tmp57 = w59*(D_0 + D_1);
7031                                          const double tmp58 = w56*(D_0 + D_1);                                          const double tmp58 = w57*(D_6 + D_7);
7032                                          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;
7033                                          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;
7034                                          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;
7035                                          EM_S[INDEX4(k,m,0,3,numEq,numComp,8)]+=tmp10 + tmp11;                                          EM_S[INDEX4(k,m,0,3,numEq,numComp,8)]+=tmp10 + tmp11;
7036                                          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;
7037                                          EM_S[INDEX4(k,m,0,5,numEq,numComp,8)]+=tmp43 + tmp44;                                          EM_S[INDEX4(k,m,0,5,numEq,numComp,8)]+=tmp43 + tmp44;
7038                                          EM_S[INDEX4(k,m,0,6,numEq,numComp,8)]+=tmp55 + tmp56;                                          EM_S[INDEX4(k,m,0,6,numEq,numComp,8)]+=tmp55 + tmp56;
7039                                          EM_S[INDEX4(k,m,0,7,numEq,numComp,8)]+=tmp15;                                          EM_S[INDEX4(k,m,0,7,numEq,numComp,8)]+=tmp15;
7040                                          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;
7041                                          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;
7042                                          EM_S[INDEX4(k,m,1,2,numEq,numComp,8)]+=tmp10 + tmp11;                                          EM_S[INDEX4(k,m,1,2,numEq,numComp,8)]+=tmp10 + tmp11;
7043                                          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;
7044                                          EM_S[INDEX4(k,m,1,4,numEq,numComp,8)]+=tmp43 + tmp44;                                          EM_S[INDEX4(k,m,1,4,numEq,numComp,8)]+=tmp43 + tmp44;
7045                                          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;
7046                                          EM_S[INDEX4(k,m,1,6,numEq,numComp,8)]+=tmp15;                                          EM_S[INDEX4(k,m,1,6,numEq,numComp,8)]+=tmp15;
7047                                          EM_S[INDEX4(k,m,1,7,numEq,numComp,8)]+=tmp41 + tmp42;                                          EM_S[INDEX4(k,m,1,7,numEq,numComp,8)]+=tmp41 + tmp42;
7048                                          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;
7049                                          EM_S[INDEX4(k,m,2,1,numEq,numComp,8)]+=tmp10 + tmp11;                                          EM_S[INDEX4(k,m,2,1,numEq,numComp,8)]+=tmp10 + tmp11;
7050                                          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;
7051                                          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;
7052                                          EM_S[INDEX4(k,m,2,4,numEq,numComp,8)]+=tmp55 + tmp56;                                          EM_S[INDEX4(k,m,2,4,numEq,numComp,8)]+=tmp55 + tmp56;
7053                                          EM_S[INDEX4(k,m,2,5,numEq,numComp,8)]+=tmp15;                                          EM_S[INDEX4(k,m,2,5,numEq,numComp,8)]+=tmp15;
7054                                          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;
7055                                          EM_S[INDEX4(k,m,2,7,numEq,numComp,8)]+=tmp21 + tmp22;                                          EM_S[INDEX4(k,m,2,7,numEq,numComp,8)]+=tmp21 + tmp22;
7056                                          EM_S[INDEX4(k,m,3,0,numEq,numComp,8)]+=tmp10 + tmp11;                                          EM_S[INDEX4(k,m,3,0,numEq,numComp,8)]+=tmp10 + tmp11;
7057                                          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;
7058                                          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;
7059                                          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;
7060                                          EM_S[INDEX4(k,m,3,4,numEq,numComp,8)]+=tmp15;                                          EM_S[INDEX4(k,m,3,4,numEq,numComp,8)]+=tmp15;
7061                                          EM_S[INDEX4(k,m,3,5,numEq,numComp,8)]+=tmp41 + tmp42;                                          EM_S[INDEX4(k,m,3,5,numEq,numComp,8)]+=tmp41 + tmp42;
7062                                          EM_S[INDEX4(k,m,3,6,numEq,numComp,8)]+=tmp21 + tmp22;                                          EM_S[INDEX4(k,m,3,6,numEq,numComp,8)]+=tmp21 + tmp22;
7063                                          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;
7064                                          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;
7065                                          EM_S[INDEX4(k,m,4,1,numEq,numComp,8)]+=tmp43 + tmp44;                                          EM_S[INDEX4(k,m,4,1,numEq,numComp,8)]+=tmp43 + tmp44;
7066                                          EM_S[INDEX4(k,m,4,2,numEq,numComp,8)]+=tmp55 + tmp56;                                          EM_S[INDEX4(k,m,4,2,numEq,numComp,8)]+=tmp55 + tmp56;
7067                                          EM_S[INDEX4(k,m,4,3,numEq,numComp,8)]+=tmp15;                                          EM_S[INDEX4(k,m,4,3,numEq,numComp,8)]+=tmp15;
7068                                          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;
7069                                          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;
7070                                          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;
7071                                          EM_S[INDEX4(k,m,4,7,numEq,numComp,8)]+=tmp3 + tmp4;                                          EM_S[INDEX4(k,m,4,7,numEq,numComp,8)]+=tmp3 + tmp4;
7072                                          EM_S[INDEX4(k,m,5,0,numEq,numComp,8)]+=tmp43 + tmp44;                                          EM_S[INDEX4(k,m,5,0,numEq,numComp,8)]+=tmp43 + tmp44;
7073                                          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;
7074                                          EM_S[INDEX4(k,m,5,2,numEq,numComp,8)]+=tmp15;                                          EM_S[INDEX4(k,m,5,2,numEq,numComp,8)]+=tmp15;
7075                                          EM_S[INDEX4(k,m,5,3,numEq,numComp,8)]+=tmp41 + tmp42;                                          EM_S[INDEX4(k,m,5,3,numEq,numComp,8)]+=tmp41 + tmp42;
7076                                          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;
7077                                          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;
7078                                          EM_S[INDEX4(k,m,5,6,numEq,numComp,8)]+=tmp3 + tmp4;                                          EM_S[INDEX4(k,m,5,6,numEq,numComp,8)]+=tmp3 + tmp4;
7079                                          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;
7080                                          EM_S[INDEX4(k,m,6,0,numEq,numComp,8)]+=tmp55 + tmp56;                                          EM_S[INDEX4(k,m,6,0,numEq,numComp,8)]+=tmp55 + tmp56;
7081                                          EM_S[INDEX4(k,m,6,1,numEq,numComp,8)]+=tmp15;                                          EM_S[INDEX4(k,m,6,1,numEq,numComp,8)]+=tmp15;
7082                                          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;
7083                                          EM_S[INDEX4(k,m,6,3,numEq,numComp,8)]+=tmp21 + tmp22;                                          EM_S[INDEX4(k,m,6,3,numEq,numComp,8)]+=tmp21 + tmp22;
7084                                          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;
7085                                          EM_S[INDEX4(k,m,6,5,numEq,numComp,8)]+=tmp3 + tmp4;                                          EM_S[INDEX4(k,m,6,5,numEq,numComp,8)]+=tmp3 + tmp4;
7086                                          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;
7087                                          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;
7088                                          EM_S[INDEX4(k,m,7,0,numEq,numComp,8)]+=tmp15;                                          EM_S[INDEX4(k,m,7,0,numEq,numComp,8)]+=tmp15;
7089                                          EM_S[INDEX4(k,m,7,1,numEq,numComp,8)]+=tmp41 + tmp42;                                          EM_S[INDEX4(k,m,7,1,numEq,numComp,8)]+=tmp41 + tmp42;
7090                                          EM_S[INDEX4(k,m,7,2,numEq,numComp,8)]+=tmp21 + tmp22;                                          EM_S[INDEX4(k,m,7,2,numEq,numComp,8)]+=tmp21 + tmp22;
7091                                          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;
7092                                          EM_S[INDEX4(k,m,7,4,numEq,numComp,8)]+=tmp3 + tmp4;                                          EM_S[INDEX4(k,m,7,4,numEq,numComp,8)]+=tmp3 + tmp4;
7093                                          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;
7094                                          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;
7095                                          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;
7096                                      }                                      }
7097                                   }                                   }
7098                              } else { // constant data                              } else { // constant data
7099                                  for (index_t k=0; k<numEq; k++) {                                  for (index_t k=0; k<numEq; k++) {
7100                                      for (index_t m=0; m<numComp; m++) {                                      for (index_t m=0; m<numComp; m++) {
7101                                          const double D_0 = D_p[INDEX2(k, m, numEq)];                                          const double wD0 = 8*D_p[INDEX2(k, m, numEq)]*w58;
7102                                          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;
7103                                          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;
7104                                          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;
7105                                          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;
7106                                          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;
7107                                          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;
7108                                          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;
7109                                          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;
7110                                          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;
7111                                          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;
7112                                          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;
7113                                          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;
7114                                          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;
7115                                          EM_S[INDEX4(k,m,1,5,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,1,5,numEq,numComp,8)]+=4*wD0;
7116                                          EM_S[INDEX4(k,m,1,6,numEq,numComp,8)]+=8*D_0*w55;                                          EM_S[INDEX4(k,m,1,6,numEq,numComp,8)]+=  wD0;
7117                                          EM_S[INDEX4(k,m,1,7,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,1,7,numEq,numComp,8)]+=2*wD0;
7118                                          EM_S[INDEX4(k,m,2,0,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,2,0,numEq,numComp,8)]+=4*wD0;
7119                                          EM_S[INDEX4(k,m,2,1,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,2,1,numEq,numComp,8)]+=2*wD0;
7120                                          EM_S[INDEX4(k,m,2,2,numEq,numComp,8)]+=64*D_0*w55;                                          EM_S[INDEX4(k,m,2,2,numEq,numComp,8)]+=8*wD0;
7121                                          EM_S[INDEX4(k,m,2,3,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,2,3,numEq,numComp,8)]+=4*wD0;
7122                                          EM_S[INDEX4(k,m,2,4,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,2,4,numEq,numComp,8)]+=2*wD0;
7123                                          EM_S[INDEX4(k,m,2,5,numEq,numComp,8)]+=8*D_0*w55;                                          EM_S[INDEX4(k,m,2,5,numEq,numComp,8)]+=  wD0;
7124                                          EM_S[INDEX4(k,m,2,6,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,2,6,numEq,numComp,8)]+=4*wD0;
7125                                          EM_S[INDEX4(k,m,2,7,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,2,7,numEq,numComp,8)]+=2*wD0;
7126                                          EM_S[INDEX4(k,m,3,0,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,3,0,numEq,numComp,8)]+=2*wD0;
7127                                          EM_S[INDEX4(k,m,3,1,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,3,1,numEq,numComp,8)]+=4*wD0;
7128                                          EM_S[INDEX4(k,m,3,2,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,3,2,numEq,numComp,8)]+=4*wD0;
7129                                          EM_S[INDEX4(k,m,3,3,numEq,numComp,8)]+=64*D_0*w55;                                          EM_S[INDEX4(k,m,3,3,numEq,numComp,8)]+=8*wD0;
7130                                          EM_S[INDEX4(k,m,3,4,numEq,numComp,8)]+=8*D_0*w55;                                          EM_S[INDEX4(k,m,3,4,numEq,numComp,8)]+=  wD0;
7131                                          EM_S[INDEX4(k,m,3,5,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,3,5,numEq,numComp,8)]+=2*wD0;
7132                                          EM_S[INDEX4(k,m,3,6,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,3,6,numEq,numComp,8)]+=2*wD0;
7133                                          EM_S[INDEX4(k,m,3,7,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,3,7,numEq,numComp,8)]+=4*wD0;
7134                                          EM_S[INDEX4(k,m,4,0,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,4,0,numEq,numComp,8)]+=4*wD0;
7135                                          EM_S[INDEX4(k,m,4,1,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,4,1,numEq,numComp,8)]+=2*wD0;
7136                                          EM_S[INDEX4(k,m,4,2,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,4,2,numEq,numComp,8)]+=2*wD0;
7137                                          EM_S[INDEX4(k,m,4,3,numEq,numComp,8)]+=8*D_0*w55;                                          EM_S[INDEX4(k,m,4,3,numEq,numComp,8)]+=  wD0;
7138                                          EM_S[INDEX4(k,m,4,4,numEq,numComp,8)]+=64*D_0*w55;                                          EM_S[INDEX4(k,m,4,4,numEq,numComp,8)]+=8*wD0;
7139                                          EM_S[INDEX4(k,m,4,5,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,4,5,numEq,numComp,8)]+=4*wD0;
7140                                          EM_S[INDEX4(k,m,4,6,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,4,6,numEq,numComp,8)]+=4*wD0;
7141                                          EM_S[INDEX4(k,m,4,7,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,4,7,numEq,numComp,8)]+=2*wD0;
7142                                          EM_S[INDEX4(k,m,5,0,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,5,0,numEq,numComp,8)]+=2*wD0;
7143                                          EM_S[INDEX4(k,m,5,1,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,5,1,numEq,numComp,8)]+=4*wD0;
7144                                          EM_S[INDEX4(k,m,5,2,numEq,numComp,8)]+=8*D_0*w55;                                          EM_S[INDEX4(k,m,5,2,numEq,numComp,8)]+=  wD0;
7145                                          EM_S[INDEX4(k,m,5,3,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,5,3,numEq,numComp,8)]+=2*wD0;
7146                                          EM_S[INDEX4(k,m,5,4,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,5,4,numEq,numComp,8)]+=4*wD0;
7147                                          EM_S[INDEX4(k,m,5,5,numEq,numComp,8)]+=64*D_0*w55;                                          EM_S[INDEX4(k,m,5,5,numEq,numComp,8)]+=8*wD0;
7148                                          EM_S[INDEX4(k,m,5,6,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,5,6,numEq,numComp,8)]+=2*wD0;
7149                                          EM_S[INDEX4(k,m,5,7,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,5,7,numEq,numComp,8)]+=4*wD0;
7150                                          EM_S[INDEX4(k,m,6,0,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,6,0,numEq,numComp,8)]+=2*wD0;
7151                                          EM_S[INDEX4(k,m,6,1,numEq,numComp,8)]+=8*D_0*w55;                                          EM_S[INDEX4(k,m,6,1,numEq,numComp,8)]+=  wD0;
7152                                          EM_S[INDEX4(k,m,6,2,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,6,2,numEq,numComp,8)]+=4*wD0;
7153                                          EM_S[INDEX4(k,m,6,3,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,6,3,numEq,numComp,8)]+=2*wD0;
7154                                          EM_S[INDEX4(k,m,6,4,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,6,4,numEq,numComp,8)]+=4*wD0;
7155                                          EM_S[INDEX4(k,m,6,5,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,6,5,numEq,numComp,8)]+=2*wD0;
7156                                          EM_S[INDEX4(k,m,6,6,numEq,numComp,8)]+=64*D_0*w55;                                          EM_S[INDEX4(k,m,6,6,numEq,numComp,8)]+=8*wD0;
7157                                          EM_S[INDEX4(k,m,6,7,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,6,7,numEq,numComp,8)]+=4*wD0;
7158                                          EM_S[INDEX4(k,m,7,0,numEq,numComp,8)]+=8*D_0*w55;                                          EM_S[INDEX4(k,m,7,0,numEq,numComp,8)]+=  wD0;
7159                                          EM_S[INDEX4(k,m,7,1,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,7,1,numEq,numComp,8)]+=2*wD0;
7160                                          EM_S[INDEX4(k,m,7,2,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,7,2,numEq,numComp,8)]+=2*wD0;
7161                                          EM_S[INDEX4(k,m,7,3,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,7,3,numEq,numComp,8)]+=4*wD0;
7162                                          EM_S[INDEX4(k,m,7,4,numEq,numComp,8)]+=16*D_0*w55;                                          EM_S[INDEX4(k,m,7,4,numEq,numComp,8)]+=2*wD0;
7163                                          EM_S[INDEX4(k,m,7,5,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,7,5,numEq,numComp,8)]+=4*wD0;
7164                                          EM_S[INDEX4(k,m,7,6,numEq,numComp,8)]+=32*D_0*w55;                                          EM_S[INDEX4(k,m,7,6,numEq,numComp,8)]+=4*wD0;
7165                                          EM_S[INDEX4(k,m,7,7,numEq,numComp,8)]+=64*D_0*w55;                                          EM_S[INDEX4(k,m,7,7,numEq,numComp,8)]+=8*wD0;
7166                                      }                                      }
7167                                  }                                  }
7168                              }                              }
# Line 7239  void Brick::assemblePDESystem(Paso_Syste Line 7199  void Brick::assemblePDESystem(Paso_Syste
7199                                      const double X_0_7 = X_p[INDEX3(k,0,7,numEq,3)];                                      const double X_0_7 = X_p[INDEX3(k,0,7,numEq,3)];
7200                                      const double X_1_7 = X_p[INDEX3(k,1,7,numEq,3)];                                      const double X_1_7 = X_p[INDEX3(k,1,7,numEq,3)];
7201                                      const double X_2_7 = X_p[INDEX3(k,2,7,numEq,3)];                                      const double X_2_7 = X_p[INDEX3(k,2,7,numEq,3)];
7202                                      const double tmp0 = w66*(X_0_2 + X_0_3 + X_0_4 + X_0_5);                                      const double tmp0 = w72*(X_0_6 + X_0_7);
7203                                      const double tmp1 = w64*(X_1_1 + X_1_3 + X_1_4 + X_1_6);                                      const double tmp1 = w66*(X_2_0 + X_2_4);
7204                                      const double tmp2 = w61*(X_0_0 + X_0_1);                                      const double tmp2 = w64*(X_0_0 + X_0_1);
7205                                      const double tmp3 = w68*(X_1_5 + X_1_7);                                      const double tmp3 = w68*(X_2_1 + X_2_2 + X_2_5 + X_2_6);
7206                                      const double tmp4 = w65*(X_2_1 + X_2_2 + X_2_5 + X_2_6);                                      const double tmp4 = w65*(X_1_0 + X_1_2);
7207                                      const double tmp5 = w63*(X_2_0 + X_2_4);                                      const double tmp5 = w70*(X_2_3 + X_2_7);
7208                                      const double tmp6 = w67*(X_2_3 + X_2_7);                                      const double tmp6 = w67*(X_1_1 + X_1_3 + X_1_4 + X_1_6);
7209                                      const double tmp7 = w69*(X_0_6 + X_0_7);                                      const double tmp7 = w71*(X_1_5 + X_1_7);
7210                                      const double tmp8 = w62*(X_1_0 + X_1_2);                                      const double tmp8 = w69*(X_0_2 + X_0_3 + X_0_4 + X_0_5);
7211                                      const double tmp9 = w66*(-X_0_2 - X_0_3 - X_0_4 - X_0_5);                                      const double tmp9 = w72*(-X_0_6 - X_0_7);
7212                                      const double tmp10 = w64*(X_1_0 + X_1_2 + X_1_5 + X_1_7);                                      const double tmp10 = w66*(X_2_1 + X_2_5);
7213                                      const double tmp11 = w61*(-X_0_0 - X_0_1);                                      const double tmp11 = w64*(-X_0_0 - X_0_1);
7214                                      const double tmp12 = w68*(X_1_4 + X_1_6);                                      const double tmp12 = w68*(X_2_0 + X_2_3 + X_2_4 + X_2_7);
7215                                      const double tmp13 = w65*(X_2_0 + X_2_3 + X_2_4 + X_2_7);                                      const double tmp13 = w65*(X_1_1 + X_1_3);
7216                                      const double tmp14 = w63*(X_2_1 + X_2_5);                                      const double tmp14 = w70*(X_2_2 + X_2_6);
7217                                      const double tmp15 = w67*(X_2_2 + X_2_6);                                      const double tmp15 = w67*(X_1_0 + X_1_2 + X_1_5 + X_1_7);
7218                                      const double tmp16 = w69*(-X_0_6 - X_0_7);                                      const double tmp16 = w71*(X_1_4 + X_1_6);
7219                                      const double tmp17 = w62*(X_1_1 + X_1_3);                                      const double tmp17 = w69*(-X_0_2 - X_0_3 - X_0_4 - X_0_5);
7220                                      const double tmp18 = w66*(X_0_0 + X_0_1 + X_0_6 + X_0_7);                                      const double tmp18 = w72*(X_0_4 + X_0_5);
7221                                      const double tmp19 = w64*(-X_1_1 - X_1_3 - X_1_4 - X_1_6);                                      const double tmp19 = w66*(X_2_2 + X_2_6);
7222                                      const double tmp20 = w61*(X_0_2 + X_0_3);                                      const double tmp20 = w64*(X_0_2 + X_0_3);
7223                                      const double tmp21 = w68*(-X_1_5 - X_1_7);                                      const double tmp21 = w65*(-X_1_0 - X_1_2);
7224                                      const double tmp22 = w63*(X_2_2 + X_2_6);                                      const double tmp22 = w70*(X_2_1 + X_2_5);
7225                                      const double tmp23 = w67*(X_2_1 + X_2_5);                                      const double tmp23 = w67*(-X_1_1 - X_1_3 - X_1_4 - X_1_6);
7226                                      const double tmp24 = w69*(X_0_4 + X_0_5);                                      const double tmp24 = w71*(-X_1_5 - X_1_7);
7227                                      const double tmp25 = w62*(-X_1_0 - X_1_2);                                      const double tmp25 = w69*(X_0_0 + X_0_1 + X_0_6 + X_0_7);
7228                                      const double tmp26 = w66*(-X_0_0 - X_0_1 - X_0_6 - X_0_7);                                      const double tmp26 = w72*(-X_0_4 - X_0_5);
7229                                      const double tmp27 = w64*(-X_1_0 - X_1_2 - X_1_5 - X_1_7);                                      const double tmp27 = w66*(X_2_3 + X_2_7);
7230                                      const double tmp28 = w61*(-X_0_2 - X_0_3);                                      const double tmp28 = w64*(-X_0_2 - X_0_3);
7231                                      const double tmp29 = w68*(-X_1_4 - X_1_6);                                      const double tmp29 = w65*(-X_1_1 - X_1_3);
7232                                      const double tmp30 = w63*(X_2_3 + X_2_7);                                      const double tmp30 = w70*(X_2_0 + X_2_4);
7233                                      const double tmp31 = w67*(X_2_0 + X_2_4);                                      const double tmp31 = w67*(-X_1_0 - X_1_2 - X_1_5 - X_1_7);
7234                                      const double tmp32 = w69*(-X_0_4 - X_0_5);                                      const double tmp32 = w71*(-X_1_4 - X_1_6);
7235                                      const double tmp33 = w62*(-X_1_1 - X_1_3);                                      const double tmp33 = w69*(-X_0_0 - X_0_1 - X_0_6 - X_0_7);
7236                                      const double tmp34 = w61*(X_0_4 + X_0_5);                                      const double tmp34 = w72*(X_0_2 + X_0_3);
7237                                      const double tmp35 = w68*(X_1_1 + X_1_3);                                      const double tmp35 = w66*(-X_2_0 - X_2_4);
7238                                      const double tmp36 = w65*(-X_2_1 - X_2_2 - X_2_5 - X_2_6);                                      const double tmp36 = w64*(X_0_4 + X_0_5);
7239                                      const double tmp37 = w63*(-X_2_0 - X_2_4);                                      const double tmp37 = w68*(-X_2_1 - X_2_2 - X_2_5 - X_2_6);
7240                                      const double tmp38 = w67*(-X_2_3 - X_2_7);                                      const double tmp38 = w65*(X_1_4 + X_1_6);
7241                                      const double tmp39 = w69*(X_0_2 + X_0_3);                                      const double tmp39 = w70*(-X_2_3 - X_2_7);
7242                                      const double tmp40 = w62*(X_1_4 + X_1_6);                                      const double tmp40 = w71*(X_1_1 + X_1_3);
7243                                      const double tmp41 = w61*(-X_0_4 - X_0_5);                                      const double tmp41 = w72*(-X_0_2 - X_0_3);
7244                                      const double tmp42 = w68*(X_1_0 + X_1_2);                                      const double tmp42 = w66*(-X_2_1 - X_2_5);
7245                                      const double tmp43 = w65*(-X_2_0 - X_2_3 - X_2_4 - X_2_7);                                      const double tmp43 = w64*(-X_0_4 - X_0_5);
7246                                      const double tmp44 = w63*(-X_2_1 - X_2_5);                                      const double tmp44 = w68*(-X_2_0 - X_2_3 - X_2_4 - X_2_7);
7247                                      const double tmp45 = w67*(-X_2_2 - X_2_6);                                      const double tmp45 = w65*(X_1_5 + X_1_7);
7248                                      const double tmp46 = w69*(-X_0_2 - X_0_3);                                      const double tmp46 = w70*(-X_2_2 - X_2_6);
7249                                      const double tmp47 = w62*(X_1_5 + X_1_7);                                      const double tmp47 = w71*(X_1_0 + X_1_2);
7250                                      const double tmp48 = w61*(X_0_6 + X_0_7);                                      const double tmp48 = w72*(X_0_0 + X_0_1);
7251                                      const double tmp49 = w68*(-X_1_1 - X_1_3);                                      const double tmp49 = w66*(-X_2_2 - X_2_6);
7252                                      const double tmp50 = w63*(-X_2_2 - X_2_6);                                      const double tmp50 = w64*(X_0_6 + X_0_7);
7253                                      const double tmp51 = w67*(-X_2_1 - X_2_5);                                      const double tmp51 = w65*(-X_1_4 - X_1_6);
7254                                      const double tmp52 = w69*(X_0_0 + X_0_1);                                      const double tmp52 = w70*(-X_2_1 - X_2_5);
7255                                      const double tmp53 = w62*(-X_1_4 - X_1_6);                                      const double tmp53 = w71*(-X_1_1 - X_1_3);
7256                                      const double tmp54 = w61*(-X_0_6 - X_0_7);                                      const double tmp54 = w72*(-X_0_0 - X_0_1);
7257                                      const double tmp55 = w68*(-X_1_0 - X_1_2);                                      const double tmp55 = w66*(-X_2_3 - X_2_7);
7258                                      const double tmp56 = w63*(-X_2_3 - X_2_7);                                      const double tmp56 = w64*(-X_0_6 - X_0_7);
7259                                      const double tmp57 = w67*(-X_2_0 - X_2_4);                                      const double tmp57 = w65*(-X_1_5 - X_1_7);
7260                                      const double tmp58 = w69*(-X_0_0 - X_0_1);                                      const double tmp58 = w70*(-X_2_0 - X_2_4);
7261                                      const double tmp59 = w62*(-X_1_5 - X_1_7);                                      const double tmp59 = w71*(-X_1_0 - X_1_2);
7262                                      EM_F[INDEX2(k,0,numEq)]+=tmp0 + tmp1 + tmp2 + tmp3 + tmp4 + tmp5 + tmp6 + tmp7 + tmp8;                                      EM_F[INDEX2(k,0,numEq)]+=tmp0 + tmp1 + tmp2 + tmp3 + tmp4 + tmp5 + tmp6 + tmp7 + tmp8;
7263                                      EM_F[INDEX2(k,1,numEq)]+=tmp10 + tmp11 + tmp12 + tmp13 + tmp14 + tmp15 + tmp16 + tmp17 + tmp9;                                      EM_F[INDEX2(k,1,numEq)]+=tmp10 + tmp11 + tmp12 + tmp13 + tmp14 + tmp15 + tmp16 + tmp17 + tmp9;
7264                                      EM_F[INDEX2(k,2,numEq)]+=tmp13 + tmp18 + tmp19 + tmp20 + tmp21 + tmp22 + tmp23 + tmp24 + tmp25;                                      EM_F[INDEX2(k,2,numEq)]+=tmp12 + tmp18 + tmp19 + tmp20 + tmp21 + tmp22 + tmp23 + tmp24 + tmp25;
7265                                      EM_F[INDEX2(k,3,numEq)]+=tmp26 + tmp27 + tmp28 + tmp29 + tmp30 + tmp31 + tmp32 + tmp33 + tmp4;                                      EM_F[INDEX2(k,3,numEq)]+=tmp26 + tmp27 + tmp28 + tmp29 + tmp3 + tmp30 + tmp31 + tmp32 + tmp33;
7266                                      EM_F[INDEX2(k,4,numEq)]+=tmp10 + tmp18 + tmp34 + tmp35 + tmp36 + tmp37 + tmp38 + tmp39 + tmp40;                                      EM_F[INDEX2(k,4,numEq)]+=tmp15 + tmp25 + tmp34 + tmp35 + tmp36 + tmp37 + tmp38 + tmp39 + tmp40;
7267                                      EM_F[INDEX2(k,5,numEq)]+=tmp1 + tmp26 + tmp41 + tmp42 + tmp43 + tmp44 + tmp45 + tmp46 + tmp47;                                      EM_F[INDEX2(k,5,numEq)]+=tmp33 + tmp41 + tmp42 + tmp43 + tmp44 + tmp45 + tmp46 + tmp47 + tmp6;
7268                                      EM_F[INDEX2(k,6,numEq)]+=tmp0 + tmp27 + tmp43 + tmp48 + tmp49 + tmp50 + tmp51 + tmp52 + tmp53;                                      EM_F[INDEX2(k,6,numEq)]+=tmp31 + tmp44 + tmp48 + tmp49 + tmp50 + tmp51 + tmp52 + tmp53 + tmp8;
7269                                      EM_F[INDEX2(k,7,numEq)]+=tmp19 + tmp36 + tmp54 + tmp55 + tmp56 + tmp57 + tmp58 + tmp59 + tmp9;                                      EM_F[INDEX2(k,7,numEq)]+=tmp17 + tmp23 + tmp37 + tmp54 + tmp55 + tmp56 + tmp57 + tmp58 + tmp59;
7270                                  }                                  }
7271                              } else { // constant data                              } else { // constant data
7272                                  for (index_t k=0; k<numEq; k++) {                                  for (index_t k=0; k<numEq; k++) {
7273                                      const double X_0 = X_p[INDEX2(k, 0, numEq)];                                      const double wX0 = 18*X_p[INDEX2(k, 0, numEq)]*w55;
7274                                      const double X_1 = X_p[INDEX2(k, 1, numEq)];                                      const double wX1 = 18*X_p[INDEX2(k, 1, numEq)]*w56;
7275                                      const double X_2 = X_p[INDEX2(k, 2, numEq)];                                      const double wX2 = 18*X_p[INDEX2(k, 2, numEq)]*w54;
7276                                      EM_F[INDEX2(k,0,numEq)]+=18*X_0*w53 + 12*X_1*w64 + 12*X_2*w65;                                      EM_F[INDEX2(k,0,numEq)]+= wX0 + wX1 + wX2;
7277                                      EM_F[INDEX2(k,1,numEq)]+=-18*X_0*w53 + 12*X_1*w64 + 12*X_2*w65;                                      EM_F[INDEX2(k,1,numEq)]+=-wX0 + wX1 + wX2;
7278                                      EM_F[INDEX2(k,2,numEq)]+=18*X_0*w53 - 12*X_1*w64 + 12*X_2*w65;                                      EM_F[INDEX2(k,2,numEq)]+= wX0 - wX1 + wX2;
7279                                      EM_F[INDEX2(k,3,numEq)]+=-18*X_0*w53 - 12*X_1*w64 + 12*X_2*w65;                                      EM_F[INDEX2(k,3,numEq)]+=-wX0 - wX1 + wX2;
7280                                      EM_F[INDEX2(k,4,numEq)]+=18*X_0*w53 + 12*X_1*w64 - 12*X_2*w65;                                      EM_F[INDEX2(k,4,numEq)]+= wX0 + wX1 - wX2;
7281                                      EM_F[INDEX2(k,5,numEq)]+=-18*X_0*w53 + 12*X_1*w64 - 12*X_2*w65;                                      EM_F[INDEX2(k,5,numEq)]+=-wX0 + wX1 - wX2;
7282                                      EM_F[INDEX2(k,6,numEq)]+=18*X_0*w53 - 12*X_1*w64 - 12*X_2*w65;                                      EM_F[INDEX2(k,6,numEq)]+= wX0 - wX1 - wX2;
7283                                      EM_F[INDEX2(k,7,numEq)]+=-18*X_0*w53 - 12*X_1*w64 - 12*X_2*w65;                                      EM_F[INDEX2(k,7,numEq)]+=-wX0 - wX1 - wX2;
7284                                  }                                  }
7285                              }                              }
7286                          }                          }
# Line 7340  void Brick::assemblePDESystem(Paso_Syste Line 7300  void Brick::assemblePDESystem(Paso_Syste
7300                                      const double Y_5 = Y_p[INDEX2(k, 5, numEq)];                                      const double Y_5 = Y_p[INDEX2(k, 5, numEq)];
7301                                      const double Y_6 = Y_p[INDEX2(k, 6, numEq)];                             &