/[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

branches/ripleygmg_from_3668/ripley/src/Brick.cpp revision 3777 by caltinay, Thu Jan 19 06:17:38 2012 UTC trunk/ripley/src/Brick.cpp revision 3792 by caltinay, Wed Feb 1 06:16:25 2012 UTC
# Line 13  Line 13 
13    
14  #include <ripley/Brick.h>  #include <ripley/Brick.h>
15  extern "C" {  extern "C" {
16  #include "paso/SystemMatrix.h"  #include <paso/SystemMatrix.h>
17  }  }
18    
19  #if USE_SILO  #if USE_SILO
# Line 29  using namespace std; Line 29  using namespace std;
29    
30  namespace ripley {  namespace ripley {
31    
32  Brick::Brick(int n0, int n1, int n2, double l0, double l1, double l2, int d0,  Brick::Brick(int n0, int n1, int n2, double x0, double y0, double z0,
33               int d1, int d2) :               double x1, double y1, double z1, int d0, int d1, int d2) :
34      RipleyDomain(3),      RipleyDomain(3),
35      m_gNE0(n0),      m_gNE0(n0),
36      m_gNE1(n1),      m_gNE1(n1),
37      m_gNE2(n2),      m_gNE2(n2),
38      m_l0(l0),      m_x0(x0),
39      m_l1(l1),      m_y0(y0),
40      m_l2(l2),      m_z0(z0),
41        m_l0(x1-x0),
42        m_l1(y1-y0),
43        m_l2(z1-z0),
44      m_NX(d0),      m_NX(d0),
45      m_NY(d1),      m_NY(d1),
46      m_NZ(d2)      m_NZ(d2)
# Line 95  Brick::Brick(int n0, int n1, int n2, dou Line 98  Brick::Brick(int n0, int n1, int n2, dou
98    
99  Brick::~Brick()  Brick::~Brick()
100  {  {
101        Paso_SystemMatrixPattern_free(m_pattern);
102        Paso_Connector_free(m_connector);
103  }  }
104    
105  string Brick::getDescription() const  string Brick::getDescription() const
# Line 108  bool Brick::operator==(const AbstractDom Line 113  bool Brick::operator==(const AbstractDom
113      if (o) {      if (o) {
114          return (RipleyDomain::operator==(other) &&          return (RipleyDomain::operator==(other) &&
115                  m_gNE0==o->m_gNE0 && m_gNE1==o->m_gNE1 && m_gNE2==o->m_gNE2                  m_gNE0==o->m_gNE0 && m_gNE1==o->m_gNE1 && m_gNE2==o->m_gNE2
116                    && m_x0==o->m_x0 && m_y0==o->m_y0 && m_z0==o->m_z0
117                  && m_l0==o->m_l0 && m_l1==o->m_l1 && m_l2==o->m_l2                  && m_l0==o->m_l0 && m_l1==o->m_l1 && m_l2==o->m_l2
118                  && m_NX==o->m_NX && m_NY==o->m_NY && m_NZ==o->m_NZ);                  && m_NX==o->m_NX && m_NY==o->m_NY && m_NZ==o->m_NZ);
119      }      }
# Line 256  void Brick::dump(const string& fileName) Line 262  void Brick::dump(const string& fileName)
262      }      }
263    
264  #else // USE_SILO  #else // USE_SILO
265      throw RipleyException("dump(): no Silo support");      throw RipleyException("dump: no Silo support");
266  #endif  #endif
267  }  }
268    
# Line 280  const int* Brick::borrowSampleReferenceI Line 286  const int* Brick::borrowSampleReferenceI
286      }      }
287    
288      stringstream msg;      stringstream msg;
289      msg << "borrowSampleReferenceIDs() not implemented for function space type "      msg << "borrowSampleReferenceIDs: invalid function space type "<<fsType;
         << fsType;  
290      throw RipleyException(msg.str());      throw RipleyException(msg.str());
291  }  }
292    
# Line 335  bool Brick::ownSample(int fsType, index_ Line 340  bool Brick::ownSample(int fsType, index_
340      }      }
341    
342      stringstream msg;      stringstream msg;
343      msg << "ownSample() not implemented for "      msg << "ownSample: invalid function space type " << fsType;
         << functionSpaceTypeAsString(fsType);  
344      throw RipleyException(msg.str());      throw RipleyException(msg.str());
345  }  }
346    
# Line 509  void Brick::setToNormal(escript::Data& o Line 513  void Brick::setToNormal(escript::Data& o
513    
514      } else {      } else {
515          stringstream msg;          stringstream msg;
516          msg << "setToNormal() not implemented for "          msg << "setToNormal: invalid function space type "
517              << functionSpaceTypeAsString(out.getFunctionSpace().getTypeCode());              << out.getFunctionSpace().getTypeCode();
518          throw RipleyException(msg.str());          throw RipleyException(msg.str());
519      }      }
520  }  }
# Line 608  void Brick::setToSize(escript::Data& out Line 612  void Brick::setToSize(escript::Data& out
612    
613      } else {      } else {
614          stringstream msg;          stringstream msg;
615          msg << "setToSize() not implemented for "          msg << "setToSize: invalid function space type "
616              << functionSpaceTypeAsString(out.getFunctionSpace().getTypeCode());              << out.getFunctionSpace().getTypeCode();
617          throw RipleyException(msg.str());          throw RipleyException(msg.str());
618      }      }
619  }  }
# Line 697  IndexVector Brick::getNumSubdivisionsPer Line 701  IndexVector Brick::getNumSubdivisionsPer
701  pair<double,double> Brick::getFirstCoordAndSpacing(dim_t dim) const  pair<double,double> Brick::getFirstCoordAndSpacing(dim_t dim) const
702  {  {
703      if (dim==0)      if (dim==0)
704          return pair<double,double>((m_l0*m_offset0)/m_gNE0, m_l0/m_gNE0);          return pair<double,double>(m_x0+(m_l0*m_offset0)/m_gNE0, m_l0/m_gNE0);
705      else if (dim==1)      else if (dim==1)
706          return pair<double,double>((m_l1*m_offset1)/m_gNE1, m_l1/m_gNE1);          return pair<double,double>(m_y0+(m_l1*m_offset1)/m_gNE1, m_l1/m_gNE1);
707      else if (dim==2)      else if (dim==2)
708          return pair<double,double>((m_l2*m_offset2)/m_gNE2, m_l2/m_gNE2);          return pair<double,double>(m_z0+(m_l2*m_offset2)/m_gNE2, m_l2/m_gNE2);
709    
710      throw RipleyException("getFirstCoordAndSpacing(): invalid argument");      throw RipleyException("getFirstCoordAndSpacing: invalid argument");
711  }  }
712    
713  //protected  //protected
# Line 1526  void Brick::populateSampleIds() Line 1530  void Brick::populateSampleIds()
1530      // globally      // globally
1531    
1532      // build node distribution vector first.      // build node distribution vector first.
1533      // rank i owns m_nodeDistribution[i+1]-nodeDistribution[i] nodes      // rank i owns m_nodeDistribution[i+1]-nodeDistribution[i] nodes which is
1534        // constant for all ranks in this implementation
1535      m_nodeDistribution.assign(m_mpiInfo->size+1, 0);      m_nodeDistribution.assign(m_mpiInfo->size+1, 0);
1536      const dim_t numDOF=getNumDOF();      const dim_t numDOF=getNumDOF();
1537      for (dim_t k=1; k<m_mpiInfo->size; k++) {      for (dim_t k=1; k<m_mpiInfo->size; k++) {
# Line 3282  void Brick::assemblePDESingle(Paso_Syste Line 3287  void Brick::assemblePDESingle(Paso_Syste
3287                                  const double tmp380_1 = tmp195_0*w23;                                  const double tmp380_1 = tmp195_0*w23;
3288                                  const double tmp456_1 = tmp218_0*w27;                                  const double tmp456_1 = tmp218_0*w27;
3289                                  const double tmp288_1 = tmp154_0*w29;                                  const double tmp288_1 = tmp154_0*w29;
3290                                  EM_S[INDEX2(7,3,8)]+=tmp0_1 + tmp10_1 + tmp11_1 + tmp12_1 + tmp13_1 + tmp14_1 + tmp15_1 + tmp16_1 + tmp17_1 + tmp18_1 + tmp19_1 + tmp1_1 + tmp20_1 + tmp21_1 + tmp22_1 + tmp23_1 + tmp24_1 + tmp25_1 + tmp26_1 + tmp27_1 + tmp28_1 + tmp29_1 + tmp2_1 + tmp3_1 + tmp4_1 + tmp5_1 + tmp6_1 + tmp7_1 + tmp8_1 + tmp9_1;                                  EM_S[INDEX2(0,0,8)]+=tmp264_1 + tmp268_1 + tmp292_1 + tmp327_1 + tmp342_1 + tmp369_1 + tmp377_1 + tmp379_1 + tmp384_1 + tmp389_1 + tmp390_1 + tmp394_1 + tmp415_1 + tmp424_1 + tmp427_1 + tmp434_1 + tmp447_1 + tmp448_1 + tmp449_1 + tmp450_1 + tmp451_1 + tmp452_1 + tmp453_1 + tmp454_1;
3291                                  EM_S[INDEX2(4,7,8)]+=tmp30_1 + tmp31_1 + tmp32_1 + tmp33_1 + tmp34_1 + tmp35_1 + tmp36_1 + tmp37_1 + tmp38_1 + tmp39_1 + tmp40_1 + tmp41_1 + tmp42_1 + tmp43_1 + tmp44_1 + tmp45_1 + tmp46_1 + tmp47_1 + tmp48_1 + tmp49_1 + tmp50_1 + tmp51_1;                                  EM_S[INDEX2(1,0,8)]+=tmp140_1 + tmp147_1 + tmp182_1 + tmp196_1 + tmp200_1 + tmp203_1 + tmp206_1 + tmp207_1 + tmp208_1 + tmp224_1 + tmp22_1 + tmp275_1 + tmp277_1 + tmp279_1 + tmp441_1 + tmp444_1 + tmp473_1 + tmp474_1 + tmp491_1 + tmp495_1 + tmp498_1 + tmp500_1 + tmp506_1 + tmp507_1 + tmp508_1 + tmp509_1 + tmp510_1 + tmp511_1 + tmp512_1 + tmp513_1;
3292                                  EM_S[INDEX2(1,3,8)]+=tmp52_1 + tmp53_1 + tmp54_1 + tmp55_1 + tmp56_1 + tmp57_1 + tmp58_1 + tmp59_1 + tmp60_1 + tmp61_1 + tmp62_1 + tmp63_1 + tmp64_1 + tmp65_1 + tmp66_1 + tmp67_1 + tmp68_1 + tmp69_1 + tmp70_1 + tmp71_1 + tmp72_1 + tmp73_1 + tmp74_1 + tmp75_1 + tmp76_1 + tmp77_1 + tmp78_1 + tmp79_1 + tmp80_1 + tmp81_1;                                  EM_S[INDEX2(2,0,8)]+=tmp102_1 + tmp11_1 + tmp193_1 + tmp302_1 + tmp303_1 + tmp304_1 + tmp305_1 + tmp306_1 + tmp307_1 + tmp308_1 + tmp309_1 + tmp310_1 + tmp311_1 + tmp312_1 + tmp313_1 + tmp314_1 + tmp315_1 + tmp316_1 + tmp317_1 + tmp318_1 + tmp319_1 + tmp320_1 + tmp321_1 + tmp52_1 + tmp54_1 + tmp57_1 + tmp68_1 + tmp70_1 + tmp76_1 + tmp94_1;
                                 EM_S[INDEX2(6,4,8)]+=tmp100_1 + tmp101_1 + tmp102_1 + tmp103_1 + tmp104_1 + tmp105_1 + tmp59_1 + tmp63_1 + tmp67_1 + tmp74_1 + tmp75_1 + tmp80_1 + tmp82_1 + tmp83_1 + tmp84_1 + tmp85_1 + tmp86_1 + tmp87_1 + tmp88_1 + tmp89_1 + tmp90_1 + tmp91_1 + tmp92_1 + tmp93_1 + tmp94_1 + tmp95_1 + tmp96_1 + tmp97_1 + tmp98_1 + tmp99_1;  
3293                                  EM_S[INDEX2(3,0,8)]+=tmp106_1 + tmp107_1 + tmp108_1 + tmp109_1 + tmp110_1 + tmp111_1 + tmp112_1 + tmp113_1 + tmp114_1 + tmp115_1 + tmp116_1 + tmp117_1 + tmp118_1 + tmp119_1 + tmp120_1 + tmp121_1 + tmp35_1 + tmp38_1 + tmp41_1 + tmp42_1 + tmp47_1 + tmp50_1;                                  EM_S[INDEX2(3,0,8)]+=tmp106_1 + tmp107_1 + tmp108_1 + tmp109_1 + tmp110_1 + tmp111_1 + tmp112_1 + tmp113_1 + tmp114_1 + tmp115_1 + tmp116_1 + tmp117_1 + tmp118_1 + tmp119_1 + tmp120_1 + tmp121_1 + tmp35_1 + tmp38_1 + tmp41_1 + tmp42_1 + tmp47_1 + tmp50_1;
                                 EM_S[INDEX2(5,4,8)]+=tmp122_1 + tmp123_1 + tmp124_1 + tmp125_1 + tmp126_1 + tmp127_1 + tmp128_1 + tmp129_1 + tmp130_1 + tmp131_1 + tmp132_1 + tmp133_1 + tmp134_1 + tmp135_1 + tmp136_1 + tmp137_1 + tmp138_1 + tmp139_1 + tmp140_1 + tmp141_1 + tmp142_1 + tmp143_1 + tmp144_1 + tmp145_1 + tmp146_1 + tmp147_1 + tmp148_1 + tmp149_1 + tmp150_1 + tmp151_1;  
                                 EM_S[INDEX2(0,7,8)]+=tmp132_1 + tmp152_1 + tmp153_1 + tmp154_1 + tmp155_1 + tmp156_1 + tmp157_1 + tmp158_1 + tmp159_1 + tmp160_1 + tmp161_1 + tmp74_1;  
                                 EM_S[INDEX2(5,6,8)]+=tmp162_1 + tmp163_1 + tmp164_1 + tmp165_1 + tmp166_1 + tmp167_1 + tmp168_1 + tmp169_1 + tmp170_1 + tmp171_1 + tmp172_1 + tmp31_1 + tmp34_1 + tmp35_1 + tmp37_1 + tmp39_1 + tmp41_1 + tmp43_1 + tmp45_1 + tmp46_1 + tmp49_1 + tmp50_1;  
                                 EM_S[INDEX2(2,6,8)]+=tmp104_1 + tmp158_1 + tmp16_1 + tmp173_1 + tmp174_1 + tmp175_1 + tmp176_1 + tmp177_1 + tmp178_1 + tmp179_1 + tmp180_1 + tmp181_1 + tmp182_1 + tmp183_1 + tmp184_1 + tmp185_1 + tmp186_1 + tmp187_1 + tmp188_1 + tmp19_1 + tmp24_1 + tmp28_1 + tmp2_1 + tmp59_1 + tmp86_1 + tmp88_1 + tmp8_1 + tmp91_1 + tmp92_1 + tmp99_1;  
                                 EM_S[INDEX2(1,6,8)]+=tmp132_1 + tmp155_1 + tmp156_1 + tmp157_1 + tmp159_1 + tmp161_1 + tmp189_1 + tmp18_1 + tmp190_1 + tmp191_1 + tmp192_1 + tmp193_1;  
                                 EM_S[INDEX2(5,1,8)]+=tmp13_1 + tmp158_1 + tmp182_1 + tmp184_1 + tmp185_1 + tmp186_1 + tmp194_1 + tmp195_1 + tmp196_1 + tmp197_1 + tmp198_1 + tmp199_1 + tmp200_1 + tmp201_1 + tmp202_1 + tmp203_1 + tmp204_1 + tmp205_1 + tmp206_1 + tmp207_1 + tmp208_1 + tmp209_1 + tmp4_1 + tmp56_1 + tmp58_1 + tmp59_1 + tmp62_1 + tmp64_1 + tmp72_1 + tmp79_1;  
                                 EM_S[INDEX2(3,7,8)]+=tmp0_1 + tmp12_1 + tmp139_1 + tmp13_1 + tmp18_1 + tmp19_1 + tmp1_1 + tmp20_1 + tmp210_1 + tmp211_1 + tmp212_1 + tmp213_1 + tmp214_1 + tmp215_1 + tmp216_1 + tmp217_1 + tmp218_1 + tmp219_1 + tmp220_1 + tmp221_1 + tmp23_1 + tmp2_1 + tmp4_1 + tmp55_1 + tmp62_1 + tmp64_1 + tmp72_1 + tmp79_1 + tmp80_1 + tmp81_1;  
                                 EM_S[INDEX2(2,5,8)]+=tmp153_1 + tmp155_1 + tmp159_1 + tmp160_1 + tmp161_1 + tmp18_1 + tmp222_1 + tmp223_1 + tmp224_1 + tmp225_1 + tmp226_1 + tmp74_1;  
                                 EM_S[INDEX2(0,3,8)]+=tmp107_1 + tmp109_1 + tmp110_1 + tmp115_1 + tmp116_1 + tmp117_1 + tmp166_1 + tmp169_1 + tmp227_1 + tmp228_1 + tmp229_1 + tmp230_1 + tmp231_1 + tmp232_1 + tmp233_1 + tmp234_1 + tmp235_1 + tmp236_1 + tmp237_1 + tmp238_1 + tmp239_1 + tmp41_1;  
                                 EM_S[INDEX2(7,2,8)]+=tmp112_1 + tmp113_1 + tmp240_1 + tmp241_1 + tmp242_1 + tmp243_1 + tmp244_1 + tmp245_1 + tmp246_1 + tmp247_1 + tmp248_1 + tmp249_1 + tmp250_1 + tmp251_1 + tmp252_1 + tmp253_1 + tmp254_1 + tmp255_1 + tmp35_1 + tmp46_1 + tmp49_1 + tmp50_1;  
3294                                  EM_S[INDEX2(4,0,8)]+=tmp104_1 + tmp105_1 + tmp124_1 + tmp130_1 + tmp138_1 + tmp139_1 + tmp148_1 + tmp150_1 + tmp151_1 + tmp175_1 + tmp181_1 + tmp18_1 + tmp195_1 + tmp204_1 + tmp20_1 + tmp216_1 + tmp218_1 + tmp256_1 + tmp257_1 + tmp258_1 + tmp259_1 + tmp260_1 + tmp261_1 + tmp262_1 + tmp263_1 + tmp80_1 + tmp85_1 + tmp91_1 + tmp92_1 + tmp99_1;                                  EM_S[INDEX2(4,0,8)]+=tmp104_1 + tmp105_1 + tmp124_1 + tmp130_1 + tmp138_1 + tmp139_1 + tmp148_1 + tmp150_1 + tmp151_1 + tmp175_1 + tmp181_1 + tmp18_1 + tmp195_1 + tmp204_1 + tmp20_1 + tmp216_1 + tmp218_1 + tmp256_1 + tmp257_1 + tmp258_1 + tmp259_1 + tmp260_1 + tmp261_1 + tmp262_1 + tmp263_1 + tmp80_1 + tmp85_1 + tmp91_1 + tmp92_1 + tmp99_1;
3295                                    EM_S[INDEX2(5,0,8)]+=tmp229_1 + tmp235_1 + tmp237_1 + tmp238_1 + tmp242_1 + tmp334_1 + tmp339_1 + tmp347_1 + tmp349_1 + tmp414_1 + tmp417_1 + tmp418_1 + tmp419_1 + tmp420_1 + tmp422_1 + tmp440_1 + tmp461_1 + tmp462_1 + tmp463_1 + tmp464_1 + tmp465_1 + tmp466_1;
3296                                    EM_S[INDEX2(6,0,8)]+=tmp163_1 + tmp166_1 + tmp169_1 + tmp172_1 + tmp234_1 + tmp236_1 + tmp240_1 + tmp248_1 + tmp250_1 + tmp254_1 + tmp338_1 + tmp340_1 + tmp407_1 + tmp416_1 + tmp421_1 + tmp484_1 + tmp485_1 + tmp486_1 + tmp487_1 + tmp488_1 + tmp489_1 + tmp490_1;
3297                                    EM_S[INDEX2(7,0,8)]+=tmp132_1 + tmp155_1 + tmp158_1 + tmp159_1 + tmp161_1 + tmp518_1 + tmp519_1 + tmp520_1 + tmp521_1 + tmp522_1 + tmp523_1 + tmp74_1;
3298                                    EM_S[INDEX2(0,1,8)]+=tmp130_1 + tmp138_1 + tmp140_1 + tmp147_1 + tmp148_1 + tmp151_1 + tmp218_1 + tmp224_1 + tmp258_1 + tmp259_1 + tmp277_1 + tmp302_1 + tmp307_1 + tmp310_1 + tmp325_1 + tmp354_1 + tmp359_1 + tmp441_1 + tmp444_1 + tmp507_1 + tmp508_1 + tmp511_1 + tmp512_1 + tmp52_1 + tmp57_1 + tmp61_1 + tmp67_1 + tmp70_1 + tmp71_1 + tmp76_1;
3299                                    EM_S[INDEX2(1,1,8)]+=tmp109_1 + tmp116_1 + tmp284_1 + tmp294_1 + tmp300_1 + tmp334_1 + tmp339_1 + tmp375_1 + tmp384_1 + tmp387_1 + tmp388_1 + tmp425_1 + tmp426_1 + tmp427_1 + tmp428_1 + tmp429_1 + tmp430_1 + tmp431_1 + tmp432_1 + tmp433_1 + tmp434_1 + tmp435_1 + tmp436_1 + tmp437_1;
3300                                    EM_S[INDEX2(2,1,8)]+=tmp107_1 + tmp110_1 + tmp112_1 + tmp113_1 + tmp115_1 + tmp117_1 + tmp118_1 + tmp120_1 + tmp166_1 + tmp167_1 + tmp169_1 + tmp228_1 + tmp234_1 + tmp236_1 + tmp239_1 + tmp264_1 + tmp268_1 + tmp35_1 + tmp41_1 + tmp501_1 + tmp502_1 + tmp50_1;
3301                                    EM_S[INDEX2(3,1,8)]+=tmp136_1 + tmp14_1 + tmp15_1 + tmp21_1 + tmp25_1 + tmp26_1 + tmp279_1 + tmp29_1 + tmp356_1 + tmp357_1 + tmp358_1 + tmp491_1 + tmp492_1 + tmp495_1 + tmp496_1 + tmp498_1 + tmp500_1 + tmp510_1 + tmp513_1 + tmp54_1 + tmp5_1 + tmp65_1 + tmp66_1 + tmp68_1 + tmp69_1 + tmp73_1 + tmp74_1 + tmp75_1 + tmp77_1 + tmp78_1;
3302                                    EM_S[INDEX2(4,1,8)]+=tmp229_1 + tmp235_1 + tmp237_1 + tmp238_1 + tmp242_1 + tmp248_1 + tmp250_1 + tmp362_1 + tmp403_1 + tmp410_1 + tmp413_1 + tmp414_1 + tmp415_1 + tmp416_1 + tmp417_1 + tmp418_1 + tmp419_1 + tmp420_1 + tmp421_1 + tmp422_1 + tmp423_1 + tmp424_1;
3303                                    EM_S[INDEX2(5,1,8)]+=tmp13_1 + tmp158_1 + tmp182_1 + tmp184_1 + tmp185_1 + tmp186_1 + tmp194_1 + tmp195_1 + tmp196_1 + tmp197_1 + tmp198_1 + tmp199_1 + tmp200_1 + tmp201_1 + tmp202_1 + tmp203_1 + tmp204_1 + tmp205_1 + tmp206_1 + tmp207_1 + tmp208_1 + tmp209_1 + tmp4_1 + tmp56_1 + tmp58_1 + tmp59_1 + tmp62_1 + tmp64_1 + tmp72_1 + tmp79_1;
3304                                    EM_S[INDEX2(6,1,8)]+=tmp132_1 + tmp155_1 + tmp159_1 + tmp161_1 + tmp18_1 + tmp193_1 + tmp222_1 + tmp223_1 + tmp521_1 + tmp522_1 + tmp528_1 + tmp529_1;
3305                                    EM_S[INDEX2(7,1,8)]+=tmp108_1 + tmp121_1 + tmp297_1 + tmp299_1 + tmp346_1 + tmp347_1 + tmp349_1 + tmp350_1 + tmp404_1 + tmp405_1 + tmp407_1 + tmp408_1 + tmp409_1 + tmp40_1 + tmp42_1 + tmp461_1 + tmp466_1 + tmp467_1 + tmp468_1 + tmp469_1 + tmp47_1 + tmp48_1;
3306                                    EM_S[INDEX2(0,2,8)]+=tmp102_1 + tmp104_1 + tmp141_1 + tmp176_1 + tmp186_1 + tmp188_1 + tmp193_1 + tmp216_1 + tmp260_1 + tmp261_1 + tmp275_1 + tmp304_1 + tmp313_1 + tmp316_1 + tmp317_1 + tmp320_1 + tmp491_1 + tmp495_1 + tmp497_1 + tmp498_1 + tmp499_1 + tmp500_1 + tmp506_1 + tmp509_1 + tmp54_1 + tmp68_1 + tmp91_1 + tmp92_1 + tmp94_1 + tmp99_1;
3307                                  EM_S[INDEX2(1,2,8)]+=tmp107_1 + tmp108_1 + tmp110_1 + tmp114_1 + tmp115_1 + tmp117_1 + tmp119_1 + tmp121_1 + tmp229_1 + tmp231_1 + tmp233_1 + tmp235_1 + tmp237_1 + tmp238_1 + tmp264_1 + tmp265_1 + tmp266_1 + tmp267_1 + tmp268_1 + tmp41_1 + tmp42_1 + tmp47_1;                                  EM_S[INDEX2(1,2,8)]+=tmp107_1 + tmp108_1 + tmp110_1 + tmp114_1 + tmp115_1 + tmp117_1 + tmp119_1 + tmp121_1 + tmp229_1 + tmp231_1 + tmp233_1 + tmp235_1 + tmp237_1 + tmp238_1 + tmp264_1 + tmp265_1 + tmp266_1 + tmp267_1 + tmp268_1 + tmp41_1 + tmp42_1 + tmp47_1;
3308                                  EM_S[INDEX2(6,7,8)]+=tmp122_1 + tmp125_1 + tmp131_1 + tmp134_1 + tmp142_1 + tmp146_1 + tmp16_1 + tmp174_1 + tmp182_1 + tmp187_1 + tmp224_1 + tmp22_1 + tmp24_1 + tmp269_1 + tmp270_1 + tmp271_1 + tmp272_1 + tmp273_1 + tmp274_1 + tmp275_1 + tmp276_1 + tmp277_1 + tmp278_1 + tmp279_1 + tmp280_1 + tmp281_1 + tmp28_1 + tmp6_1 + tmp7_1 + tmp8_1;                                  EM_S[INDEX2(2,2,8)]+=tmp109_1 + tmp116_1 + tmp283_1 + tmp287_1 + tmp295_1 + tmp338_1 + tmp340_1 + tmp345_1 + tmp353_1 + tmp366_1 + tmp367_1 + tmp368_1 + tmp369_1 + tmp370_1 + tmp371_1 + tmp372_1 + tmp373_1 + tmp374_1 + tmp375_1 + tmp376_1 + tmp377_1 + tmp378_1 + tmp379_1 + tmp380_1;
3309                                    EM_S[INDEX2(3,2,8)]+=tmp132_1 + tmp137_1 + tmp16_1 + tmp177_1 + tmp178_1 + tmp17_1 + tmp185_1 + tmp24_1 + tmp278_1 + tmp27_1 + tmp281_1 + tmp28_1 + tmp308_1 + tmp312_1 + tmp314_1 + tmp3_1 + tmp441_1 + tmp442_1 + tmp443_1 + tmp444_1 + tmp445_1 + tmp446_1 + tmp52_1 + tmp53_1 + tmp57_1 + tmp60_1 + tmp63_1 + tmp70_1 + tmp76_1 + tmp8_1;
3310                                    EM_S[INDEX2(4,2,8)]+=tmp163_1 + tmp166_1 + tmp169_1 + tmp172_1 + tmp234_1 + tmp236_1 + tmp343_1 + tmp347_1 + tmp349_1 + tmp351_1 + tmp407_1 + tmp450_1 + tmp451_1 + tmp464_1 + tmp465_1 + tmp484_1 + tmp485_1 + tmp487_1 + tmp490_1 + tmp503_1 + tmp504_1 + tmp505_1;
3311                                    EM_S[INDEX2(5,2,8)]+=tmp155_1 + tmp159_1 + tmp161_1 + tmp189_1 + tmp18_1 + tmp190_1 + tmp224_1 + tmp519_1 + tmp523_1 + tmp526_1 + tmp527_1 + tmp74_1;
3312                                    EM_S[INDEX2(6,2,8)]+=tmp145_1 + tmp158_1 + tmp173_1 + tmp175_1 + tmp179_1 + tmp180_1 + tmp181_1 + tmp183_1 + tmp184_1 + tmp19_1 + tmp213_1 + tmp217_1 + tmp219_1 + tmp221_1 + tmp2_1 + tmp303_1 + tmp309_1 + tmp311_1 + tmp315_1 + tmp318_1 + tmp319_1 + tmp321_1 + tmp323_1 + tmp325_1 + tmp326_1 + tmp358_1 + tmp493_1 + tmp494_1 + tmp524_1 + tmp525_1;
3313                                    EM_S[INDEX2(7,2,8)]+=tmp112_1 + tmp113_1 + tmp240_1 + tmp241_1 + tmp242_1 + tmp243_1 + tmp244_1 + tmp245_1 + tmp246_1 + tmp247_1 + tmp248_1 + tmp249_1 + tmp250_1 + tmp251_1 + tmp252_1 + tmp253_1 + tmp254_1 + tmp255_1 + tmp35_1 + tmp46_1 + tmp49_1 + tmp50_1;
3314                                    EM_S[INDEX2(0,3,8)]+=tmp107_1 + tmp109_1 + tmp110_1 + tmp115_1 + tmp116_1 + tmp117_1 + tmp166_1 + tmp169_1 + tmp227_1 + tmp228_1 + tmp229_1 + tmp230_1 + tmp231_1 + tmp232_1 + tmp233_1 + tmp234_1 + tmp235_1 + tmp236_1 + tmp237_1 + tmp238_1 + tmp239_1 + tmp41_1;
3315                                    EM_S[INDEX2(1,3,8)]+=tmp52_1 + tmp53_1 + tmp54_1 + tmp55_1 + tmp56_1 + tmp57_1 + tmp58_1 + tmp59_1 + tmp60_1 + tmp61_1 + tmp62_1 + tmp63_1 + tmp64_1 + tmp65_1 + tmp66_1 + tmp67_1 + tmp68_1 + tmp69_1 + tmp70_1 + tmp71_1 + tmp72_1 + tmp73_1 + tmp74_1 + tmp75_1 + tmp76_1 + tmp77_1 + tmp78_1 + tmp79_1 + tmp80_1 + tmp81_1;
3316                                    EM_S[INDEX2(2,3,8)]+=tmp132_1 + tmp136_1 + tmp137_1 + tmp139_1 + tmp141_1 + tmp145_1 + tmp210_1 + tmp213_1 + tmp217_1 + tmp219_1 + tmp220_1 + tmp221_1 + tmp278_1 + tmp281_1 + tmp441_1 + tmp442_1 + tmp443_1 + tmp444_1 + tmp445_1 + tmp446_1 + tmp491_1 + tmp492_1 + tmp493_1 + tmp494_1 + tmp495_1 + tmp496_1 + tmp497_1 + tmp498_1 + tmp499_1 + tmp500_1;
3317                                  EM_S[INDEX2(3,3,8)]+=tmp249_1 + tmp255_1 + tmp264_1 + tmp268_1 + tmp282_1 + tmp283_1 + tmp284_1 + tmp285_1 + tmp286_1 + tmp287_1 + tmp288_1 + tmp289_1 + tmp290_1 + tmp291_1 + tmp292_1 + tmp293_1 + tmp294_1 + tmp295_1 + tmp296_1 + tmp297_1 + tmp298_1 + tmp299_1 + tmp300_1 + tmp301_1;                                  EM_S[INDEX2(3,3,8)]+=tmp249_1 + tmp255_1 + tmp264_1 + tmp268_1 + tmp282_1 + tmp283_1 + tmp284_1 + tmp285_1 + tmp286_1 + tmp287_1 + tmp288_1 + tmp289_1 + tmp290_1 + tmp291_1 + tmp292_1 + tmp293_1 + tmp294_1 + tmp295_1 + tmp296_1 + tmp297_1 + tmp298_1 + tmp299_1 + tmp300_1 + tmp301_1;
3318                                  EM_S[INDEX2(2,0,8)]+=tmp102_1 + tmp11_1 + tmp193_1 + tmp302_1 + tmp303_1 + tmp304_1 + tmp305_1 + tmp306_1 + tmp307_1 + tmp308_1 + tmp309_1 + tmp310_1 + tmp311_1 + tmp312_1 + tmp313_1 + tmp314_1 + tmp315_1 + tmp316_1 + tmp317_1 + tmp318_1 + tmp319_1 + tmp320_1 + tmp321_1 + tmp52_1 + tmp54_1 + tmp57_1 + tmp68_1 + tmp70_1 + tmp76_1 + tmp94_1;                                  EM_S[INDEX2(4,3,8)]+=tmp152_1 + tmp154_1 + tmp155_1 + tmp158_1 + tmp159_1 + tmp161_1 + tmp193_1 + tmp224_1 + tmp526_1 + tmp527_1 + tmp528_1 + tmp529_1;
3319                                  EM_S[INDEX2(7,6,8)]+=tmp101_1 + tmp125_1 + tmp134_1 + tmp211_1 + tmp212_1 + tmp213_1 + tmp217_1 + tmp218_1 + tmp219_1 + tmp221_1 + tmp224_1 + tmp270_1 + tmp271_1 + tmp274_1 + tmp276_1 + tmp277_1 + tmp278_1 + tmp281_1 + tmp310_1 + tmp322_1 + tmp323_1 + tmp324_1 + tmp325_1 + tmp326_1 + tmp67_1 + tmp82_1 + tmp87_1 + tmp90_1 + tmp97_1 + tmp98_1;                                  EM_S[INDEX2(5,3,8)]+=tmp108_1 + tmp121_1 + tmp245_1 + tmp248_1 + tmp250_1 + tmp251_1 + tmp387_1 + tmp388_1 + tmp403_1 + tmp404_1 + tmp405_1 + tmp406_1 + tmp407_1 + tmp408_1 + tmp409_1 + tmp40_1 + tmp410_1 + tmp411_1 + tmp412_1 + tmp42_1 + tmp47_1 + tmp48_1;
                                 EM_S[INDEX2(4,4,8)]+=tmp162_1 + tmp170_1 + tmp284_1 + tmp287_1 + tmp290_1 + tmp292_1 + tmp293_1 + tmp298_1 + tmp327_1 + tmp328_1 + tmp329_1 + tmp330_1 + tmp331_1 + tmp332_1 + tmp333_1 + tmp334_1 + tmp335_1 + tmp336_1 + tmp337_1 + tmp338_1 + tmp339_1 + tmp340_1 + tmp341_1 + tmp342_1;  
3320                                  EM_S[INDEX2(6,3,8)]+=tmp112_1 + tmp113_1 + tmp241_1 + tmp242_1 + tmp246_1 + tmp247_1 + tmp252_1 + tmp343_1 + tmp344_1 + tmp345_1 + tmp346_1 + tmp347_1 + tmp348_1 + tmp349_1 + tmp350_1 + tmp351_1 + tmp352_1 + tmp353_1 + tmp35_1 + tmp46_1 + tmp49_1 + tmp50_1;                                  EM_S[INDEX2(6,3,8)]+=tmp112_1 + tmp113_1 + tmp241_1 + tmp242_1 + tmp246_1 + tmp247_1 + tmp252_1 + tmp343_1 + tmp344_1 + tmp345_1 + tmp346_1 + tmp347_1 + tmp348_1 + tmp349_1 + tmp350_1 + tmp351_1 + tmp352_1 + tmp353_1 + tmp35_1 + tmp46_1 + tmp49_1 + tmp50_1;
3321                                    EM_S[INDEX2(7,3,8)]+=tmp0_1 + tmp10_1 + tmp11_1 + tmp12_1 + tmp13_1 + tmp14_1 + tmp15_1 + tmp16_1 + tmp17_1 + tmp18_1 + tmp19_1 + tmp1_1 + tmp20_1 + tmp21_1 + tmp22_1 + tmp23_1 + tmp24_1 + tmp25_1 + tmp26_1 + tmp27_1 + tmp28_1 + tmp29_1 + tmp2_1 + tmp3_1 + tmp4_1 + tmp5_1 + tmp6_1 + tmp7_1 + tmp8_1 + tmp9_1;
3322                                    EM_S[INDEX2(0,4,8)]+=tmp11_1 + tmp175_1 + tmp17_1 + tmp181_1 + tmp18_1 + tmp195_1 + tmp200_1 + tmp203_1 + tmp204_1 + tmp206_1 + tmp208_1 + tmp20_1 + tmp22_1 + tmp256_1 + tmp257_1 + tmp262_1 + tmp263_1 + tmp26_1 + tmp305_1 + tmp306_1 + tmp309_1 + tmp311_1 + tmp315_1 + tmp318_1 + tmp470_1 + tmp471_1 + tmp472_1 + tmp473_1 + tmp474_1 + tmp475_1;
3323                                    EM_S[INDEX2(1,4,8)]+=tmp118_1 + tmp120_1 + tmp242_1 + tmp347_1 + tmp348_1 + tmp349_1 + tmp35_1 + tmp37_1 + tmp39_1 + tmp414_1 + tmp415_1 + tmp417_1 + tmp418_1 + tmp422_1 + tmp424_1 + tmp461_1 + tmp464_1 + tmp465_1 + tmp466_1 + tmp482_1 + tmp483_1 + tmp50_1;
3324                                    EM_S[INDEX2(2,4,8)]+=tmp114_1 + tmp119_1 + tmp240_1 + tmp248_1 + tmp250_1 + tmp254_1 + tmp32_1 + tmp407_1 + tmp411_1 + tmp416_1 + tmp421_1 + tmp42_1 + tmp450_1 + tmp451_1 + tmp47_1 + tmp484_1 + tmp485_1 + tmp487_1 + tmp490_1 + tmp51_1 + tmp538_1 + tmp539_1;
3325                                    EM_S[INDEX2(3,4,8)]+=tmp155_1 + tmp158_1 + tmp159_1 + tmp161_1 + tmp191_1 + tmp192_1 + tmp193_1 + tmp224_1 + tmp225_1 + tmp226_1 + tmp518_1 + tmp520_1;
3326                                    EM_S[INDEX2(4,4,8)]+=tmp162_1 + tmp170_1 + tmp284_1 + tmp287_1 + tmp290_1 + tmp292_1 + tmp293_1 + tmp298_1 + tmp327_1 + tmp328_1 + tmp329_1 + tmp330_1 + tmp331_1 + tmp332_1 + tmp333_1 + tmp334_1 + tmp335_1 + tmp336_1 + tmp337_1 + tmp338_1 + tmp339_1 + tmp340_1 + tmp341_1 + tmp342_1;
3327                                    EM_S[INDEX2(5,4,8)]+=tmp122_1 + tmp123_1 + tmp124_1 + tmp125_1 + tmp126_1 + tmp127_1 + tmp128_1 + tmp129_1 + tmp130_1 + tmp131_1 + tmp132_1 + tmp133_1 + tmp134_1 + tmp135_1 + tmp136_1 + tmp137_1 + tmp138_1 + tmp139_1 + tmp140_1 + tmp141_1 + tmp142_1 + tmp143_1 + tmp144_1 + tmp145_1 + tmp146_1 + tmp147_1 + tmp148_1 + tmp149_1 + tmp150_1 + tmp151_1;
3328                                    EM_S[INDEX2(6,4,8)]+=tmp100_1 + tmp101_1 + tmp102_1 + tmp103_1 + tmp104_1 + tmp105_1 + tmp59_1 + tmp63_1 + tmp67_1 + tmp74_1 + tmp75_1 + tmp80_1 + tmp82_1 + tmp83_1 + tmp84_1 + tmp85_1 + tmp86_1 + tmp87_1 + tmp88_1 + tmp89_1 + tmp90_1 + tmp91_1 + tmp92_1 + tmp93_1 + tmp94_1 + tmp95_1 + tmp96_1 + tmp97_1 + tmp98_1 + tmp99_1;
3329                                    EM_S[INDEX2(7,4,8)]+=tmp163_1 + tmp165_1 + tmp166_1 + tmp169_1 + tmp171_1 + tmp172_1 + tmp229_1 + tmp232_1 + tmp238_1 + tmp31_1 + tmp33_1 + tmp34_1 + tmp363_1 + tmp364_1 + tmp419_1 + tmp41_1 + tmp420_1 + tmp43_1 + tmp44_1 + tmp45_1 + tmp530_1 + tmp531_1;
3330                                    EM_S[INDEX2(0,5,8)]+=tmp118_1 + tmp120_1 + tmp242_1 + tmp248_1 + tmp250_1 + tmp253_1 + tmp334_1 + tmp339_1 + tmp35_1 + tmp37_1 + tmp39_1 + tmp403_1 + tmp410_1 + tmp414_1 + tmp416_1 + tmp417_1 + tmp418_1 + tmp421_1 + tmp422_1 + tmp50_1 + tmp536_1 + tmp537_1;
3331                                  EM_S[INDEX2(1,5,8)]+=tmp127_1 + tmp128_1 + tmp130_1 + tmp138_1 + tmp13_1 + tmp145_1 + tmp148_1 + tmp14_1 + tmp151_1 + tmp158_1 + tmp15_1 + tmp184_1 + tmp194_1 + tmp195_1 + tmp201_1 + tmp202_1 + tmp204_1 + tmp205_1 + tmp21_1 + tmp25_1 + tmp319_1 + tmp325_1 + tmp354_1 + tmp355_1 + tmp356_1 + tmp357_1 + tmp358_1 + tmp359_1 + tmp360_1 + tmp4_1;                                  EM_S[INDEX2(1,5,8)]+=tmp127_1 + tmp128_1 + tmp130_1 + tmp138_1 + tmp13_1 + tmp145_1 + tmp148_1 + tmp14_1 + tmp151_1 + tmp158_1 + tmp15_1 + tmp184_1 + tmp194_1 + tmp195_1 + tmp201_1 + tmp202_1 + tmp204_1 + tmp205_1 + tmp21_1 + tmp25_1 + tmp319_1 + tmp325_1 + tmp354_1 + tmp355_1 + tmp356_1 + tmp357_1 + tmp358_1 + tmp359_1 + tmp360_1 + tmp4_1;
3332                                  EM_S[INDEX2(3,6,8)]+=tmp229_1 + tmp231_1 + tmp233_1 + tmp238_1 + tmp240_1 + tmp241_1 + tmp242_1 + tmp245_1 + tmp246_1 + tmp247_1 + tmp248_1 + tmp250_1 + tmp251_1 + tmp252_1 + tmp254_1 + tmp345_1 + tmp353_1 + tmp361_1 + tmp362_1 + tmp363_1 + tmp364_1 + tmp365_1;                                  EM_S[INDEX2(2,5,8)]+=tmp153_1 + tmp155_1 + tmp159_1 + tmp160_1 + tmp161_1 + tmp18_1 + tmp222_1 + tmp223_1 + tmp224_1 + tmp225_1 + tmp226_1 + tmp74_1;
3333                                  EM_S[INDEX2(2,2,8)]+=tmp109_1 + tmp116_1 + tmp283_1 + tmp287_1 + tmp295_1 + tmp338_1 + tmp340_1 + tmp345_1 + tmp353_1 + tmp366_1 + tmp367_1 + tmp368_1 + tmp369_1 + tmp370_1 + tmp371_1 + tmp372_1 + tmp373_1 + tmp374_1 + tmp375_1 + tmp376_1 + tmp377_1 + tmp378_1 + tmp379_1 + tmp380_1;                                  EM_S[INDEX2(3,5,8)]+=tmp165_1 + tmp166_1 + tmp169_1 + tmp171_1 + tmp228_1 + tmp239_1 + tmp346_1 + tmp347_1 + tmp349_1 + tmp350_1 + tmp387_1 + tmp388_1 + tmp404_1 + tmp405_1 + tmp407_1 + tmp408_1 + tmp409_1 + tmp461_1 + tmp466_1 + tmp504_1 + tmp516_1 + tmp517_1;
                                 EM_S[INDEX2(7,7,8)]+=tmp162_1 + tmp170_1 + tmp282_1 + tmp292_1 + tmp301_1 + tmp345_1 + tmp353_1 + tmp369_1 + tmp381_1 + tmp382_1 + tmp383_1 + tmp384_1 + tmp385_1 + tmp386_1 + tmp387_1 + tmp388_1 + tmp389_1 + tmp390_1 + tmp391_1 + tmp392_1 + tmp393_1 + tmp394_1 + tmp395_1 + tmp396_1;  
                                 EM_S[INDEX2(5,7,8)]+=tmp101_1 + tmp10_1 + tmp11_1 + tmp14_1 + tmp15_1 + tmp193_1 + tmp21_1 + tmp25_1 + tmp310_1 + tmp312_1 + tmp317_1 + tmp319_1 + tmp322_1 + tmp324_1 + tmp355_1 + tmp360_1 + tmp397_1 + tmp398_1 + tmp399_1 + tmp400_1 + tmp401_1 + tmp402_1 + tmp66_1 + tmp77_1 + tmp82_1 + tmp84_1 + tmp87_1 + tmp95_1 + tmp97_1 + tmp9_1;  
                                 EM_S[INDEX2(5,3,8)]+=tmp108_1 + tmp121_1 + tmp245_1 + tmp248_1 + tmp250_1 + tmp251_1 + tmp387_1 + tmp388_1 + tmp403_1 + tmp404_1 + tmp405_1 + tmp406_1 + tmp407_1 + tmp408_1 + tmp409_1 + tmp40_1 + tmp410_1 + tmp411_1 + tmp412_1 + tmp42_1 + tmp47_1 + tmp48_1;  
                                 EM_S[INDEX2(4,1,8)]+=tmp229_1 + tmp235_1 + tmp237_1 + tmp238_1 + tmp242_1 + tmp248_1 + tmp250_1 + tmp362_1 + tmp403_1 + tmp410_1 + tmp413_1 + tmp414_1 + tmp415_1 + tmp416_1 + tmp417_1 + tmp418_1 + tmp419_1 + tmp420_1 + tmp421_1 + tmp422_1 + tmp423_1 + tmp424_1;  
                                 EM_S[INDEX2(1,1,8)]+=tmp109_1 + tmp116_1 + tmp284_1 + tmp294_1 + tmp300_1 + tmp334_1 + tmp339_1 + tmp375_1 + tmp384_1 + tmp387_1 + tmp388_1 + tmp425_1 + tmp426_1 + tmp427_1 + tmp428_1 + tmp429_1 + tmp430_1 + tmp431_1 + tmp432_1 + tmp433_1 + tmp434_1 + tmp435_1 + tmp436_1 + tmp437_1;  
                                 EM_S[INDEX2(2,7,8)]+=tmp229_1 + tmp231_1 + tmp233_1 + tmp238_1 + tmp241_1 + tmp242_1 + tmp246_1 + tmp247_1 + tmp249_1 + tmp252_1 + tmp255_1 + tmp343_1 + tmp346_1 + tmp347_1 + tmp349_1 + tmp350_1 + tmp351_1 + tmp363_1 + tmp364_1 + tmp438_1 + tmp439_1 + tmp440_1;  
                                 EM_S[INDEX2(3,2,8)]+=tmp132_1 + tmp137_1 + tmp16_1 + tmp177_1 + tmp178_1 + tmp17_1 + tmp185_1 + tmp24_1 + tmp278_1 + tmp27_1 + tmp281_1 + tmp28_1 + tmp308_1 + tmp312_1 + tmp314_1 + tmp3_1 + tmp441_1 + tmp442_1 + tmp443_1 + tmp444_1 + tmp445_1 + tmp446_1 + tmp52_1 + tmp53_1 + tmp57_1 + tmp60_1 + tmp63_1 + tmp70_1 + tmp76_1 + tmp8_1;  
                                 EM_S[INDEX2(0,0,8)]+=tmp264_1 + tmp268_1 + tmp292_1 + tmp327_1 + tmp342_1 + tmp369_1 + tmp377_1 + tmp379_1 + tmp384_1 + tmp389_1 + tmp390_1 + tmp394_1 + tmp415_1 + tmp424_1 + tmp427_1 + tmp434_1 + tmp447_1 + tmp448_1 + tmp449_1 + tmp450_1 + tmp451_1 + tmp452_1 + tmp453_1 + tmp454_1;  
                                 EM_S[INDEX2(6,6,8)]+=tmp249_1 + tmp255_1 + tmp284_1 + tmp335_1 + tmp33_1 + tmp341_1 + tmp366_1 + tmp375_1 + tmp378_1 + tmp381_1 + tmp384_1 + tmp392_1 + tmp431_1 + tmp433_1 + tmp435_1 + tmp44_1 + tmp450_1 + tmp451_1 + tmp455_1 + tmp456_1 + tmp457_1 + tmp458_1 + tmp459_1 + tmp460_1;  
                                 EM_S[INDEX2(5,0,8)]+=tmp229_1 + tmp235_1 + tmp237_1 + tmp238_1 + tmp242_1 + tmp334_1 + tmp339_1 + tmp347_1 + tmp349_1 + tmp414_1 + tmp417_1 + tmp418_1 + tmp419_1 + tmp420_1 + tmp422_1 + tmp440_1 + tmp461_1 + tmp462_1 + tmp463_1 + tmp464_1 + tmp465_1 + tmp466_1;  
                                 EM_S[INDEX2(7,1,8)]+=tmp108_1 + tmp121_1 + tmp297_1 + tmp299_1 + tmp346_1 + tmp347_1 + tmp349_1 + tmp350_1 + tmp404_1 + tmp405_1 + tmp407_1 + tmp408_1 + tmp409_1 + tmp40_1 + tmp42_1 + tmp461_1 + tmp466_1 + tmp467_1 + tmp468_1 + tmp469_1 + tmp47_1 + tmp48_1;  
3334                                  EM_S[INDEX2(4,5,8)]+=tmp101_1 + tmp125_1 + tmp126_1 + tmp129_1 + tmp132_1 + tmp134_1 + tmp137_1 + tmp140_1 + tmp144_1 + tmp147_1 + tmp149_1 + tmp17_1 + tmp185_1 + tmp198_1 + tmp199_1 + tmp200_1 + tmp203_1 + tmp206_1 + tmp208_1 + tmp312_1 + tmp398_1 + tmp400_1 + tmp470_1 + tmp471_1 + tmp63_1 + tmp82_1 + tmp83_1 + tmp87_1 + tmp89_1 + tmp97_1;                                  EM_S[INDEX2(4,5,8)]+=tmp101_1 + tmp125_1 + tmp126_1 + tmp129_1 + tmp132_1 + tmp134_1 + tmp137_1 + tmp140_1 + tmp144_1 + tmp147_1 + tmp149_1 + tmp17_1 + tmp185_1 + tmp198_1 + tmp199_1 + tmp200_1 + tmp203_1 + tmp206_1 + tmp208_1 + tmp312_1 + tmp398_1 + tmp400_1 + tmp470_1 + tmp471_1 + tmp63_1 + tmp82_1 + tmp83_1 + tmp87_1 + tmp89_1 + tmp97_1;
                                 EM_S[INDEX2(0,4,8)]+=tmp11_1 + tmp175_1 + tmp17_1 + tmp181_1 + tmp18_1 + tmp195_1 + tmp200_1 + tmp203_1 + tmp204_1 + tmp206_1 + tmp208_1 + tmp20_1 + tmp22_1 + tmp256_1 + tmp257_1 + tmp262_1 + tmp263_1 + tmp26_1 + tmp305_1 + tmp306_1 + tmp309_1 + tmp311_1 + tmp315_1 + tmp318_1 + tmp470_1 + tmp471_1 + tmp472_1 + tmp473_1 + tmp474_1 + tmp475_1;  
3335                                  EM_S[INDEX2(5,5,8)]+=tmp287_1 + tmp297_1 + tmp299_1 + tmp328_1 + tmp336_1 + tmp33_1 + tmp369_1 + tmp372_1 + tmp374_1 + tmp375_1 + tmp376_1 + tmp385_1 + tmp391_1 + tmp415_1 + tmp424_1 + tmp425_1 + tmp436_1 + tmp44_1 + tmp476_1 + tmp477_1 + tmp478_1 + tmp479_1 + tmp480_1 + tmp481_1;                                  EM_S[INDEX2(5,5,8)]+=tmp287_1 + tmp297_1 + tmp299_1 + tmp328_1 + tmp336_1 + tmp33_1 + tmp369_1 + tmp372_1 + tmp374_1 + tmp375_1 + tmp376_1 + tmp385_1 + tmp391_1 + tmp415_1 + tmp424_1 + tmp425_1 + tmp436_1 + tmp44_1 + tmp476_1 + tmp477_1 + tmp478_1 + tmp479_1 + tmp480_1 + tmp481_1;
                                 EM_S[INDEX2(1,4,8)]+=tmp118_1 + tmp120_1 + tmp242_1 + tmp347_1 + tmp348_1 + tmp349_1 + tmp35_1 + tmp37_1 + tmp39_1 + tmp414_1 + tmp415_1 + tmp417_1 + tmp418_1 + tmp422_1 + tmp424_1 + tmp461_1 + tmp464_1 + tmp465_1 + tmp466_1 + tmp482_1 + tmp483_1 + tmp50_1;  
                                 EM_S[INDEX2(6,0,8)]+=tmp163_1 + tmp166_1 + tmp169_1 + tmp172_1 + tmp234_1 + tmp236_1 + tmp240_1 + tmp248_1 + tmp250_1 + tmp254_1 + tmp338_1 + tmp340_1 + tmp407_1 + tmp416_1 + tmp421_1 + tmp484_1 + tmp485_1 + tmp486_1 + tmp487_1 + tmp488_1 + tmp489_1 + tmp490_1;  
                                 EM_S[INDEX2(7,5,8)]+=tmp122_1 + tmp131_1 + tmp135_1 + tmp141_1 + tmp142_1 + tmp143_1 + tmp146_1 + tmp186_1 + tmp193_1 + tmp197_1 + tmp209_1 + tmp214_1 + tmp215_1 + tmp216_1 + tmp269_1 + tmp272_1 + tmp275_1 + tmp317_1 + tmp397_1 + tmp399_1 + tmp401_1 + tmp402_1 + tmp62_1 + tmp64_1 + tmp66_1 + tmp72_1 + tmp77_1 + tmp79_1 + tmp84_1 + tmp95_1;  
                                 EM_S[INDEX2(2,3,8)]+=tmp132_1 + tmp136_1 + tmp137_1 + tmp139_1 + tmp141_1 + tmp145_1 + tmp210_1 + tmp213_1 + tmp217_1 + tmp219_1 + tmp220_1 + tmp221_1 + tmp278_1 + tmp281_1 + tmp441_1 + tmp442_1 + tmp443_1 + tmp444_1 + tmp445_1 + tmp446_1 + tmp491_1 + tmp492_1 + tmp493_1 + tmp494_1 + tmp495_1 + tmp496_1 + tmp497_1 + tmp498_1 + tmp499_1 + tmp500_1;  
                                 EM_S[INDEX2(2,1,8)]+=tmp107_1 + tmp110_1 + tmp112_1 + tmp113_1 + tmp115_1 + tmp117_1 + tmp118_1 + tmp120_1 + tmp166_1 + tmp167_1 + tmp169_1 + tmp228_1 + tmp234_1 + tmp236_1 + tmp239_1 + tmp264_1 + tmp268_1 + tmp35_1 + tmp41_1 + tmp501_1 + tmp502_1 + tmp50_1;  
                                 EM_S[INDEX2(4,2,8)]+=tmp163_1 + tmp166_1 + tmp169_1 + tmp172_1 + tmp234_1 + tmp236_1 + tmp343_1 + tmp347_1 + tmp349_1 + tmp351_1 + tmp407_1 + tmp450_1 + tmp451_1 + tmp464_1 + tmp465_1 + tmp484_1 + tmp485_1 + tmp487_1 + tmp490_1 + tmp503_1 + tmp504_1 + tmp505_1;  
                                 EM_S[INDEX2(1,0,8)]+=tmp140_1 + tmp147_1 + tmp182_1 + tmp196_1 + tmp200_1 + tmp203_1 + tmp206_1 + tmp207_1 + tmp208_1 + tmp224_1 + tmp22_1 + tmp275_1 + tmp277_1 + tmp279_1 + tmp441_1 + tmp444_1 + tmp473_1 + tmp474_1 + tmp491_1 + tmp495_1 + tmp498_1 + tmp500_1 + tmp506_1 + tmp507_1 + tmp508_1 + tmp509_1 + tmp510_1 + tmp511_1 + tmp512_1 + tmp513_1;  
3336                                  EM_S[INDEX2(6,5,8)]+=tmp162_1 + tmp170_1 + tmp229_1 + tmp238_1 + tmp266_1 + tmp31_1 + tmp32_1 + tmp34_1 + tmp363_1 + tmp364_1 + tmp40_1 + tmp419_1 + tmp41_1 + tmp420_1 + tmp42_1 + tmp43_1 + tmp45_1 + tmp47_1 + tmp48_1 + tmp514_1 + tmp515_1 + tmp51_1;                                  EM_S[INDEX2(6,5,8)]+=tmp162_1 + tmp170_1 + tmp229_1 + tmp238_1 + tmp266_1 + tmp31_1 + tmp32_1 + tmp34_1 + tmp363_1 + tmp364_1 + tmp40_1 + tmp419_1 + tmp41_1 + tmp420_1 + tmp42_1 + tmp43_1 + tmp45_1 + tmp47_1 + tmp48_1 + tmp514_1 + tmp515_1 + tmp51_1;
3337                                  EM_S[INDEX2(3,5,8)]+=tmp165_1 + tmp166_1 + tmp169_1 + tmp171_1 + tmp228_1 + tmp239_1 + tmp346_1 + tmp347_1 + tmp349_1 + tmp350_1 + tmp387_1 + tmp388_1 + tmp404_1 + tmp405_1 + tmp407_1 + tmp408_1 + tmp409_1 + tmp461_1 + tmp466_1 + tmp504_1 + tmp516_1 + tmp517_1;                                  EM_S[INDEX2(7,5,8)]+=tmp122_1 + tmp131_1 + tmp135_1 + tmp141_1 + tmp142_1 + tmp143_1 + tmp146_1 + tmp186_1 + tmp193_1 + tmp197_1 + tmp209_1 + tmp214_1 + tmp215_1 + tmp216_1 + tmp269_1 + tmp272_1 + tmp275_1 + tmp317_1 + tmp397_1 + tmp399_1 + tmp401_1 + tmp402_1 + tmp62_1 + tmp64_1 + tmp66_1 + tmp72_1 + tmp77_1 + tmp79_1 + tmp84_1 + tmp95_1;
                                 EM_S[INDEX2(0,1,8)]+=tmp130_1 + tmp138_1 + tmp140_1 + tmp147_1 + tmp148_1 + tmp151_1 + tmp218_1 + tmp224_1 + tmp258_1 + tmp259_1 + tmp277_1 + tmp302_1 + tmp307_1 + tmp310_1 + tmp325_1 + tmp354_1 + tmp359_1 + tmp441_1 + tmp444_1 + tmp507_1 + tmp508_1 + tmp511_1 + tmp512_1 + tmp52_1 + tmp57_1 + tmp61_1 + tmp67_1 + tmp70_1 + tmp71_1 + tmp76_1;  
                                 EM_S[INDEX2(7,0,8)]+=tmp132_1 + tmp155_1 + tmp158_1 + tmp159_1 + tmp161_1 + tmp518_1 + tmp519_1 + tmp520_1 + tmp521_1 + tmp522_1 + tmp523_1 + tmp74_1;  
                                 EM_S[INDEX2(4,6,8)]+=tmp100_1 + tmp102_1 + tmp103_1 + tmp122_1 + tmp123_1 + tmp131_1 + tmp133_1 + tmp136_1 + tmp142_1 + tmp146_1 + tmp26_1 + tmp273_1 + tmp279_1 + tmp280_1 + tmp309_1 + tmp311_1 + tmp315_1 + tmp318_1 + tmp358_1 + tmp472_1 + tmp475_1 + tmp524_1 + tmp525_1 + tmp74_1 + tmp75_1 + tmp84_1 + tmp93_1 + tmp94_1 + tmp95_1 + tmp96_1;  
                                 EM_S[INDEX2(5,2,8)]+=tmp155_1 + tmp159_1 + tmp161_1 + tmp189_1 + tmp18_1 + tmp190_1 + tmp224_1 + tmp519_1 + tmp523_1 + tmp526_1 + tmp527_1 + tmp74_1;  
                                 EM_S[INDEX2(6,1,8)]+=tmp132_1 + tmp155_1 + tmp159_1 + tmp161_1 + tmp18_1 + tmp193_1 + tmp222_1 + tmp223_1 + tmp521_1 + tmp522_1 + tmp528_1 + tmp529_1;  
                                 EM_S[INDEX2(3,1,8)]+=tmp136_1 + tmp14_1 + tmp15_1 + tmp21_1 + tmp25_1 + tmp26_1 + tmp279_1 + tmp29_1 + tmp356_1 + tmp357_1 + tmp358_1 + tmp491_1 + tmp492_1 + tmp495_1 + tmp496_1 + tmp498_1 + tmp500_1 + tmp510_1 + tmp513_1 + tmp54_1 + tmp5_1 + tmp65_1 + tmp66_1 + tmp68_1 + tmp69_1 + tmp73_1 + tmp74_1 + tmp75_1 + tmp77_1 + tmp78_1;  
                                 EM_S[INDEX2(0,2,8)]+=tmp102_1 + tmp104_1 + tmp141_1 + tmp176_1 + tmp186_1 + tmp188_1 + tmp193_1 + tmp216_1 + tmp260_1 + tmp261_1 + tmp275_1 + tmp304_1 + tmp313_1 + tmp316_1 + tmp317_1 + tmp320_1 + tmp491_1 + tmp495_1 + tmp497_1 + tmp498_1 + tmp499_1 + tmp500_1 + tmp506_1 + tmp509_1 + tmp54_1 + tmp68_1 + tmp91_1 + tmp92_1 + tmp94_1 + tmp99_1;  
                                 EM_S[INDEX2(7,4,8)]+=tmp163_1 + tmp165_1 + tmp166_1 + tmp169_1 + tmp171_1 + tmp172_1 + tmp229_1 + tmp232_1 + tmp238_1 + tmp31_1 + tmp33_1 + tmp34_1 + tmp363_1 + tmp364_1 + tmp419_1 + tmp41_1 + tmp420_1 + tmp43_1 + tmp44_1 + tmp45_1 + tmp530_1 + tmp531_1;  
3338                                  EM_S[INDEX2(0,6,8)]+=tmp114_1 + tmp119_1 + tmp32_1 + tmp338_1 + tmp340_1 + tmp343_1 + tmp347_1 + tmp349_1 + tmp351_1 + tmp407_1 + tmp42_1 + tmp464_1 + tmp465_1 + tmp469_1 + tmp47_1 + tmp484_1 + tmp485_1 + tmp487_1 + tmp490_1 + tmp51_1 + tmp532_1 + tmp533_1;                                  EM_S[INDEX2(0,6,8)]+=tmp114_1 + tmp119_1 + tmp32_1 + tmp338_1 + tmp340_1 + tmp343_1 + tmp347_1 + tmp349_1 + tmp351_1 + tmp407_1 + tmp42_1 + tmp464_1 + tmp465_1 + tmp469_1 + tmp47_1 + tmp484_1 + tmp485_1 + tmp487_1 + tmp490_1 + tmp51_1 + tmp532_1 + tmp533_1;
3339                                  EM_S[INDEX2(6,2,8)]+=tmp145_1 + tmp158_1 + tmp173_1 + tmp175_1 + tmp179_1 + tmp180_1 + tmp181_1 + tmp183_1 + tmp184_1 + tmp19_1 + tmp213_1 + tmp217_1 + tmp219_1 + tmp221_1 + tmp2_1 + tmp303_1 + tmp309_1 + tmp311_1 + tmp315_1 + tmp318_1 + tmp319_1 + tmp321_1 + tmp323_1 + tmp325_1 + tmp326_1 + tmp358_1 + tmp493_1 + tmp494_1 + tmp524_1 + tmp525_1;                                  EM_S[INDEX2(1,6,8)]+=tmp132_1 + tmp155_1 + tmp156_1 + tmp157_1 + tmp159_1 + tmp161_1 + tmp189_1 + tmp18_1 + tmp190_1 + tmp191_1 + tmp192_1 + tmp193_1;
3340                                  EM_S[INDEX2(4,3,8)]+=tmp152_1 + tmp154_1 + tmp155_1 + tmp158_1 + tmp159_1 + tmp161_1 + tmp193_1 + tmp224_1 + tmp526_1 + tmp527_1 + tmp528_1 + tmp529_1;                                  EM_S[INDEX2(2,6,8)]+=tmp104_1 + tmp158_1 + tmp16_1 + tmp173_1 + tmp174_1 + tmp175_1 + tmp176_1 + tmp177_1 + tmp178_1 + tmp179_1 + tmp180_1 + tmp181_1 + tmp182_1 + tmp183_1 + tmp184_1 + tmp185_1 + tmp186_1 + tmp187_1 + tmp188_1 + tmp19_1 + tmp24_1 + tmp28_1 + tmp2_1 + tmp59_1 + tmp86_1 + tmp88_1 + tmp8_1 + tmp91_1 + tmp92_1 + tmp99_1;
3341                                    EM_S[INDEX2(3,6,8)]+=tmp229_1 + tmp231_1 + tmp233_1 + tmp238_1 + tmp240_1 + tmp241_1 + tmp242_1 + tmp245_1 + tmp246_1 + tmp247_1 + tmp248_1 + tmp250_1 + tmp251_1 + tmp252_1 + tmp254_1 + tmp345_1 + tmp353_1 + tmp361_1 + tmp362_1 + tmp363_1 + tmp364_1 + tmp365_1;
3342                                    EM_S[INDEX2(4,6,8)]+=tmp100_1 + tmp102_1 + tmp103_1 + tmp122_1 + tmp123_1 + tmp131_1 + tmp133_1 + tmp136_1 + tmp142_1 + tmp146_1 + tmp26_1 + tmp273_1 + tmp279_1 + tmp280_1 + tmp309_1 + tmp311_1 + tmp315_1 + tmp318_1 + tmp358_1 + tmp472_1 + tmp475_1 + tmp524_1 + tmp525_1 + tmp74_1 + tmp75_1 + tmp84_1 + tmp93_1 + tmp94_1 + tmp95_1 + tmp96_1;
3343                                    EM_S[INDEX2(5,6,8)]+=tmp162_1 + tmp163_1 + tmp164_1 + tmp165_1 + tmp166_1 + tmp167_1 + tmp168_1 + tmp169_1 + tmp170_1 + tmp171_1 + tmp172_1 + tmp31_1 + tmp34_1 + tmp35_1 + tmp37_1 + tmp39_1 + tmp41_1 + tmp43_1 + tmp45_1 + tmp46_1 + tmp49_1 + tmp50_1;
3344                                    EM_S[INDEX2(6,6,8)]+=tmp249_1 + tmp255_1 + tmp284_1 + tmp335_1 + tmp33_1 + tmp341_1 + tmp366_1 + tmp375_1 + tmp378_1 + tmp381_1 + tmp384_1 + tmp392_1 + tmp431_1 + tmp433_1 + tmp435_1 + tmp44_1 + tmp450_1 + tmp451_1 + tmp455_1 + tmp456_1 + tmp457_1 + tmp458_1 + tmp459_1 + tmp460_1;
3345                                    EM_S[INDEX2(7,6,8)]+=tmp101_1 + tmp125_1 + tmp134_1 + tmp211_1 + tmp212_1 + tmp213_1 + tmp217_1 + tmp218_1 + tmp219_1 + tmp221_1 + tmp224_1 + tmp270_1 + tmp271_1 + tmp274_1 + tmp276_1 + tmp277_1 + tmp278_1 + tmp281_1 + tmp310_1 + tmp322_1 + tmp323_1 + tmp324_1 + tmp325_1 + tmp326_1 + tmp67_1 + tmp82_1 + tmp87_1 + tmp90_1 + tmp97_1 + tmp98_1;
3346                                    EM_S[INDEX2(0,7,8)]+=tmp132_1 + tmp152_1 + tmp153_1 + tmp154_1 + tmp155_1 + tmp156_1 + tmp157_1 + tmp158_1 + tmp159_1 + tmp160_1 + tmp161_1 + tmp74_1;
3347                                  EM_S[INDEX2(1,7,8)]+=tmp165_1 + tmp166_1 + tmp169_1 + tmp171_1 + tmp228_1 + tmp239_1 + tmp245_1 + tmp248_1 + tmp250_1 + tmp251_1 + tmp297_1 + tmp299_1 + tmp403_1 + tmp404_1 + tmp405_1 + tmp407_1 + tmp408_1 + tmp409_1 + tmp410_1 + tmp489_1 + tmp534_1 + tmp535_1;                                  EM_S[INDEX2(1,7,8)]+=tmp165_1 + tmp166_1 + tmp169_1 + tmp171_1 + tmp228_1 + tmp239_1 + tmp245_1 + tmp248_1 + tmp250_1 + tmp251_1 + tmp297_1 + tmp299_1 + tmp403_1 + tmp404_1 + tmp405_1 + tmp407_1 + tmp408_1 + tmp409_1 + tmp410_1 + tmp489_1 + tmp534_1 + tmp535_1;
3348                                  EM_S[INDEX2(0,5,8)]+=tmp118_1 + tmp120_1 + tmp242_1 + tmp248_1 + tmp250_1 + tmp253_1 + tmp334_1 + tmp339_1 + tmp35_1 + tmp37_1 + tmp39_1 + tmp403_1 + tmp410_1 + tmp414_1 + tmp416_1 + tmp417_1 + tmp418_1 + tmp421_1 + tmp422_1 + tmp50_1 + tmp536_1 + tmp537_1;                                  EM_S[INDEX2(2,7,8)]+=tmp229_1 + tmp231_1 + tmp233_1 + tmp238_1 + tmp241_1 + tmp242_1 + tmp246_1 + tmp247_1 + tmp249_1 + tmp252_1 + tmp255_1 + tmp343_1 + tmp346_1 + tmp347_1 + tmp349_1 + tmp350_1 + tmp351_1 + tmp363_1 + tmp364_1 + tmp438_1 + tmp439_1 + tmp440_1;
3349                                  EM_S[INDEX2(3,4,8)]+=tmp155_1 + tmp158_1 + tmp159_1 + tmp161_1 + tmp191_1 + tmp192_1 + tmp193_1 + tmp224_1 + tmp225_1 + tmp226_1 + tmp518_1 + tmp520_1;                                  EM_S[INDEX2(3,7,8)]+=tmp0_1 + tmp12_1 + tmp139_1 + tmp13_1 + tmp18_1 + tmp19_1 + tmp1_1 + tmp20_1 + tmp210_1 + tmp211_1 + tmp212_1 + tmp213_1 + tmp214_1 + tmp215_1 + tmp216_1 + tmp217_1 + tmp218_1 + tmp219_1 + tmp220_1 + tmp221_1 + tmp23_1 + tmp2_1 + tmp4_1 + tmp55_1 + tmp62_1 + tmp64_1 + tmp72_1 + tmp79_1 + tmp80_1 + tmp81_1;
3350                                  EM_S[INDEX2(2,4,8)]+=tmp114_1 + tmp119_1 + tmp240_1 + tmp248_1 + tmp250_1 + tmp254_1 + tmp32_1 + tmp407_1 + tmp411_1 + tmp416_1 + tmp421_1 + tmp42_1 + tmp450_1 + tmp451_1 + tmp47_1 + tmp484_1 + tmp485_1 + tmp487_1 + tmp490_1 + tmp51_1 + tmp538_1 + tmp539_1;                                  EM_S[INDEX2(4,7,8)]+=tmp30_1 + tmp31_1 + tmp32_1 + tmp33_1 + tmp34_1 + tmp35_1 + tmp36_1 + tmp37_1 + tmp38_1 + tmp39_1 + tmp40_1 + tmp41_1 + tmp42_1 + tmp43_1 + tmp44_1 + tmp45_1 + tmp46_1 + tmp47_1 + tmp48_1 + tmp49_1 + tmp50_1 + tmp51_1;
3351                                    EM_S[INDEX2(5,7,8)]+=tmp101_1 + tmp10_1 + tmp11_1 + tmp14_1 + tmp15_1 + tmp193_1 + tmp21_1 + tmp25_1 + tmp310_1 + tmp312_1 + tmp317_1 + tmp319_1 + tmp322_1 + tmp324_1 + tmp355_1 + tmp360_1 + tmp397_1 + tmp398_1 + tmp399_1 + tmp400_1 + tmp401_1 + tmp402_1 + tmp66_1 + tmp77_1 + tmp82_1 + tmp84_1 + tmp87_1 + tmp95_1 + tmp97_1 + tmp9_1;
3352                                    EM_S[INDEX2(6,7,8)]+=tmp122_1 + tmp125_1 + tmp131_1 + tmp134_1 + tmp142_1 + tmp146_1 + tmp16_1 + tmp174_1 + tmp182_1 + tmp187_1 + tmp224_1 + tmp22_1 + tmp24_1 + tmp269_1 + tmp270_1 + tmp271_1 + tmp272_1 + tmp273_1 + tmp274_1 + tmp275_1 + tmp276_1 + tmp277_1 + tmp278_1 + tmp279_1 + tmp280_1 + tmp281_1 + tmp28_1 + tmp6_1 + tmp7_1 + tmp8_1;
3353                                    EM_S[INDEX2(7,7,8)]+=tmp162_1 + tmp170_1 + tmp282_1 + tmp292_1 + tmp301_1 + tmp345_1 + tmp353_1 + tmp369_1 + tmp381_1 + tmp382_1 + tmp383_1 + tmp384_1 + tmp385_1 + tmp386_1 + tmp387_1 + tmp388_1 + tmp389_1 + tmp390_1 + tmp391_1 + tmp392_1 + tmp393_1 + tmp394_1 + tmp395_1 + tmp396_1;
3354                              } else { // constant data                              } else { // constant data
3355                                  const double A_00 = A_p[INDEX2(0,0,3)];                                  const double A_00 = A_p[INDEX2(0,0,3)];
3356                                  const double A_01 = A_p[INDEX2(0,1,3)];                                  const double A_01 = A_p[INDEX2(0,1,3)];
# Line 3413  void Brick::assemblePDESingle(Paso_Syste Line 3418  void Brick::assemblePDESingle(Paso_Syste
3418                                  const double tmp20_1 = A_12*w66;                                  const double tmp20_1 = A_12*w66;
3419                                  const double tmp1_1 = A_12*w64;                                  const double tmp1_1 = A_12*w64;
3420                                  const double tmp24_1 = A_20*w62;                                  const double tmp24_1 = A_20*w62;
3421                                  EM_S[INDEX2(7,3,8)]+=tmp0_1 + tmp1_1 + tmp2_1 + tmp3_1 + tmp4_1 + tmp5_1 + tmp6_1 + tmp7_1;                                  EM_S[INDEX2(0,0,8)]+=tmp35_1 + tmp46_1 + tmp47_1 + tmp48_1 + tmp51_1 + tmp52_1;
3422                                  EM_S[INDEX2(4,7,8)]+=tmp10_1 + tmp11_1 + tmp12_1 + tmp13_1 + tmp14_1 + tmp15_1 + tmp8_1 + tmp9_1;                                  EM_S[INDEX2(1,0,8)]+=tmp21_1 + tmp25_1 + tmp26_1 + tmp28_1 + tmp37_1 + tmp3_1 + tmp4_1 + tmp6_1;
3423                                  EM_S[INDEX2(1,3,8)]+=tmp0_1 + tmp16_1 + tmp17_1 + tmp18_1 + tmp19_1 + tmp20_1 + tmp21_1 + tmp22_1;                                  EM_S[INDEX2(2,0,8)]+=tmp0_1 + tmp18_1 + tmp19_1 + tmp1_1 + tmp21_1 + tmp22_1 + tmp36_1 + tmp5_1;
                                 EM_S[INDEX2(6,4,8)]+=tmp0_1 + tmp16_1 + tmp17_1 + tmp18_1 + tmp19_1 + tmp20_1 + tmp21_1 + tmp22_1;  
3424                                  EM_S[INDEX2(3,0,8)]+=tmp10_1 + tmp11_1 + tmp12_1 + tmp13_1 + tmp14_1 + tmp15_1 + tmp8_1 + tmp9_1;                                  EM_S[INDEX2(3,0,8)]+=tmp10_1 + tmp11_1 + tmp12_1 + tmp13_1 + tmp14_1 + tmp15_1 + tmp8_1 + tmp9_1;
                                 EM_S[INDEX2(5,4,8)]+=tmp21_1 + tmp23_1 + tmp24_1 + tmp25_1 + tmp26_1 + tmp27_1 + tmp28_1 + tmp6_1;  
                                 EM_S[INDEX2(0,7,8)]+=tmp16_1 + tmp27_1 + tmp29_1 + tmp30_1 + tmp31_1 + tmp32_1;  
                                 EM_S[INDEX2(5,6,8)]+=tmp11_1 + tmp14_1 + tmp15_1 + tmp33_1 + tmp34_1 + tmp35_1 + tmp8_1 + tmp9_1;  
                                 EM_S[INDEX2(2,6,8)]+=tmp0_1 + tmp17_1 + tmp20_1 + tmp30_1 + tmp3_1 + tmp4_1 + tmp6_1 + tmp7_1;  
                                 EM_S[INDEX2(1,6,8)]+=tmp27_1 + tmp29_1 + tmp2_1 + tmp31_1 + tmp32_1 + tmp36_1;  
                                 EM_S[INDEX2(5,1,8)]+=tmp0_1 + tmp17_1 + tmp20_1 + tmp30_1 + tmp3_1 + tmp4_1 + tmp6_1 + tmp7_1;  
                                 EM_S[INDEX2(3,7,8)]+=tmp0_1 + tmp17_1 + tmp20_1 + tmp23_1 + tmp24_1 + tmp2_1 + tmp6_1 + tmp7_1;  
                                 EM_S[INDEX2(2,5,8)]+=tmp16_1 + tmp29_1 + tmp2_1 + tmp31_1 + tmp32_1 + tmp37_1;  
                                 EM_S[INDEX2(0,3,8)]+=tmp11_1 + tmp13_1 + tmp15_1 + tmp33_1 + tmp34_1 + tmp38_1 + tmp39_1 + tmp8_1;  
                                 EM_S[INDEX2(7,2,8)]+=tmp11_1 + tmp14_1 + tmp40_1 + tmp41_1 + tmp42_1 + tmp43_1 + tmp44_1 + tmp9_1;  
3425                                  EM_S[INDEX2(4,0,8)]+=tmp0_1 + tmp17_1 + tmp20_1 + tmp23_1 + tmp24_1 + tmp2_1 + tmp6_1 + tmp7_1;                                  EM_S[INDEX2(4,0,8)]+=tmp0_1 + tmp17_1 + tmp20_1 + tmp23_1 + tmp24_1 + tmp2_1 + tmp6_1 + tmp7_1;
3426                                    EM_S[INDEX2(5,0,8)]+=tmp11_1 + tmp38_1 + tmp39_1 + tmp42_1 + tmp43_1 + tmp44_1 + tmp49_1 + tmp50_1;
3427                                    EM_S[INDEX2(6,0,8)]+=tmp33_1 + tmp34_1 + tmp40_1 + tmp41_1 + tmp42_1 + tmp45_1 + tmp53_1 + tmp8_1;
3428                                    EM_S[INDEX2(7,0,8)]+=tmp16_1 + tmp27_1 + tmp29_1 + tmp30_1 + tmp31_1 + tmp32_1;
3429                                    EM_S[INDEX2(0,1,8)]+=tmp19_1 + tmp21_1 + tmp22_1 + tmp23_1 + tmp24_1 + tmp26_1 + tmp37_1 + tmp6_1;
3430                                    EM_S[INDEX2(1,1,8)]+=tmp13_1 + tmp43_1 + tmp46_1 + tmp47_1 + tmp48_1 + tmp52_1;
3431                                    EM_S[INDEX2(2,1,8)]+=tmp11_1 + tmp14_1 + tmp15_1 + tmp33_1 + tmp34_1 + tmp35_1 + tmp8_1 + tmp9_1;
3432                                    EM_S[INDEX2(3,1,8)]+=tmp0_1 + tmp16_1 + tmp18_1 + tmp1_1 + tmp21_1 + tmp25_1 + tmp28_1 + tmp5_1;
3433                                    EM_S[INDEX2(4,1,8)]+=tmp11_1 + tmp38_1 + tmp39_1 + tmp40_1 + tmp41_1 + tmp42_1 + tmp44_1 + tmp51_1;
3434                                    EM_S[INDEX2(5,1,8)]+=tmp0_1 + tmp17_1 + tmp20_1 + tmp30_1 + tmp3_1 + tmp4_1 + tmp6_1 + tmp7_1;
3435                                    EM_S[INDEX2(6,1,8)]+=tmp27_1 + tmp29_1 + tmp2_1 + tmp31_1 + tmp32_1 + tmp36_1;
3436                                    EM_S[INDEX2(7,1,8)]+=tmp10_1 + tmp12_1 + tmp42_1 + tmp45_1 + tmp49_1 + tmp50_1 + tmp53_1 + tmp8_1;
3437                                    EM_S[INDEX2(0,2,8)]+=tmp0_1 + tmp17_1 + tmp18_1 + tmp20_1 + tmp21_1 + tmp25_1 + tmp28_1 + tmp36_1;
3438                                  EM_S[INDEX2(1,2,8)]+=tmp10_1 + tmp11_1 + tmp12_1 + tmp15_1 + tmp35_1 + tmp38_1 + tmp39_1 + tmp8_1;                                  EM_S[INDEX2(1,2,8)]+=tmp10_1 + tmp11_1 + tmp12_1 + tmp15_1 + tmp35_1 + tmp38_1 + tmp39_1 + tmp8_1;
3439                                  EM_S[INDEX2(6,7,8)]+=tmp21_1 + tmp25_1 + tmp26_1 + tmp28_1 + tmp37_1 + tmp3_1 + tmp4_1 + tmp6_1;                                  EM_S[INDEX2(2,2,8)]+=tmp13_1 + tmp45_1 + tmp46_1 + tmp47_1 + tmp48_1 + tmp51_1;
3440                                    EM_S[INDEX2(3,2,8)]+=tmp19_1 + tmp21_1 + tmp22_1 + tmp26_1 + tmp27_1 + tmp3_1 + tmp4_1 + tmp6_1;
3441                                    EM_S[INDEX2(4,2,8)]+=tmp33_1 + tmp34_1 + tmp42_1 + tmp49_1 + tmp50_1 + tmp52_1 + tmp53_1 + tmp8_1;
3442                                    EM_S[INDEX2(5,2,8)]+=tmp16_1 + tmp29_1 + tmp2_1 + tmp31_1 + tmp32_1 + tmp37_1;
3443                                    EM_S[INDEX2(6,2,8)]+=tmp0_1 + tmp1_1 + tmp23_1 + tmp24_1 + tmp30_1 + tmp5_1 + tmp6_1 + tmp7_1;
3444                                    EM_S[INDEX2(7,2,8)]+=tmp11_1 + tmp14_1 + tmp40_1 + tmp41_1 + tmp42_1 + tmp43_1 + tmp44_1 + tmp9_1;
3445                                    EM_S[INDEX2(0,3,8)]+=tmp11_1 + tmp13_1 + tmp15_1 + tmp33_1 + tmp34_1 + tmp38_1 + tmp39_1 + tmp8_1;
3446                                    EM_S[INDEX2(1,3,8)]+=tmp0_1 + tmp16_1 + tmp17_1 + tmp18_1 + tmp19_1 + tmp20_1 + tmp21_1 + tmp22_1;
3447                                    EM_S[INDEX2(2,3,8)]+=tmp21_1 + tmp23_1 + tmp24_1 + tmp25_1 + tmp26_1 + tmp27_1 + tmp28_1 + tmp6_1;
3448                                  EM_S[INDEX2(3,3,8)]+=tmp35_1 + tmp43_1 + tmp45_1 + tmp46_1 + tmp47_1 + tmp48_1;                                  EM_S[INDEX2(3,3,8)]+=tmp35_1 + tmp43_1 + tmp45_1 + tmp46_1 + tmp47_1 + tmp48_1;
3449                                  EM_S[INDEX2(2,0,8)]+=tmp0_1 + tmp18_1 + tmp19_1 + tmp1_1 + tmp21_1 + tmp22_1 + tmp36_1 + tmp5_1;                                  EM_S[INDEX2(4,3,8)]+=tmp29_1 + tmp30_1 + tmp31_1 + tmp32_1 + tmp36_1 + tmp37_1;
3450                                  EM_S[INDEX2(7,6,8)]+=tmp19_1 + tmp21_1 + tmp22_1 + tmp23_1 + tmp24_1 + tmp26_1 + tmp37_1 + tmp6_1;                                  EM_S[INDEX2(5,3,8)]+=tmp10_1 + tmp12_1 + tmp40_1 + tmp41_1 + tmp42_1 + tmp52_1 + tmp53_1 + tmp8_1;
                                 EM_S[INDEX2(4,4,8)]+=tmp35_1 + tmp43_1 + tmp45_1 + tmp46_1 + tmp47_1 + tmp48_1;  
3451                                  EM_S[INDEX2(6,3,8)]+=tmp11_1 + tmp14_1 + tmp42_1 + tmp44_1 + tmp49_1 + tmp50_1 + tmp51_1 + tmp9_1;                                  EM_S[INDEX2(6,3,8)]+=tmp11_1 + tmp14_1 + tmp42_1 + tmp44_1 + tmp49_1 + tmp50_1 + tmp51_1 + tmp9_1;
3452                                    EM_S[INDEX2(7,3,8)]+=tmp0_1 + tmp1_1 + tmp2_1 + tmp3_1 + tmp4_1 + tmp5_1 + tmp6_1 + tmp7_1;
3453                                    EM_S[INDEX2(0,4,8)]+=tmp0_1 + tmp1_1 + tmp2_1 + tmp3_1 + tmp4_1 + tmp5_1 + tmp6_1 + tmp7_1;
3454                                    EM_S[INDEX2(1,4,8)]+=tmp11_1 + tmp14_1 + tmp42_1 + tmp44_1 + tmp49_1 + tmp50_1 + tmp51_1 + tmp9_1;
3455                                    EM_S[INDEX2(2,4,8)]+=tmp10_1 + tmp12_1 + tmp40_1 + tmp41_1 + tmp42_1 + tmp52_1 + tmp53_1 + tmp8_1;
3456                                    EM_S[INDEX2(3,4,8)]+=tmp29_1 + tmp30_1 + tmp31_1 + tmp32_1 + tmp36_1 + tmp37_1;
3457                                    EM_S[INDEX2(4,4,8)]+=tmp35_1 + tmp43_1 + tmp45_1 + tmp46_1 + tmp47_1 + tmp48_1;
3458                                    EM_S[INDEX2(5,4,8)]+=tmp21_1 + tmp23_1 + tmp24_1 + tmp25_1 + tmp26_1 + tmp27_1 + tmp28_1 + tmp6_1;
3459                                    EM_S[INDEX2(6,4,8)]+=tmp0_1 + tmp16_1 + tmp17_1 + tmp18_1 + tmp19_1 + tmp20_1 + tmp21_1 + tmp22_1;
3460                                    EM_S[INDEX2(7,4,8)]+=tmp11_1 + tmp13_1 + tmp15_1 + tmp33_1 + tmp34_1 + tmp38_1 + tmp39_1 + tmp8_1;
3461                                    EM_S[INDEX2(0,5,8)]+=tmp11_1 + tmp14_1 + tmp40_1 + tmp41_1 + tmp42_1 + tmp43_1 + tmp44_1 + tmp9_1;
3462                                  EM_S[INDEX2(1,5,8)]+=tmp0_1 + tmp1_1 + tmp23_1 + tmp24_1 + tmp30_1 + tmp5_1 + tmp6_1 + tmp7_1;                                  EM_S[INDEX2(1,5,8)]+=tmp0_1 + tmp1_1 + tmp23_1 + tmp24_1 + tmp30_1 + tmp5_1 + tmp6_1 + tmp7_1;
3463                                  EM_S[INDEX2(3,6,8)]+=tmp11_1 + tmp38_1 + tmp39_1 + tmp40_1 + tmp41_1 + tmp42_1 + tmp44_1 + tmp51_1;                                  EM_S[INDEX2(2,5,8)]+=tmp16_1 + tmp29_1 + tmp2_1 + tmp31_1 + tmp32_1 + tmp37_1;
3464                                  EM_S[INDEX2(2,2,8)]+=tmp13_1 + tmp45_1 + tmp46_1 + tmp47_1 + tmp48_1 + tmp51_1;                                  EM_S[INDEX2(3,5,8)]+=tmp33_1 + tmp34_1 + tmp42_1 + tmp49_1 + tmp50_1 + tmp52_1 + tmp53_1 + tmp8_1;
                                 EM_S[INDEX2(7,7,8)]+=tmp35_1 + tmp46_1 + tmp47_1 + tmp48_1 + tmp51_1 + tmp52_1;  
                                 EM_S[INDEX2(5,7,8)]+=tmp0_1 + tmp18_1 + tmp19_1 + tmp1_1 + tmp21_1 + tmp22_1 + tmp36_1 + tmp5_1;  
                                 EM_S[INDEX2(5,3,8)]+=tmp10_1 + tmp12_1 + tmp40_1 + tmp41_1 + tmp42_1 + tmp52_1 + tmp53_1 + tmp8_1;  
                                 EM_S[INDEX2(4,1,8)]+=tmp11_1 + tmp38_1 + tmp39_1 + tmp40_1 + tmp41_1 + tmp42_1 + tmp44_1 + tmp51_1;  
                                 EM_S[INDEX2(1,1,8)]+=tmp13_1 + tmp43_1 + tmp46_1 + tmp47_1 + tmp48_1 + tmp52_1;  
                                 EM_S[INDEX2(2,7,8)]+=tmp11_1 + tmp38_1 + tmp39_1 + tmp42_1 + tmp43_1 + tmp44_1 + tmp49_1 + tmp50_1;  
                                 EM_S[INDEX2(3,2,8)]+=tmp19_1 + tmp21_1 + tmp22_1 + tmp26_1 + tmp27_1 + tmp3_1 + tmp4_1 + tmp6_1;  
                                 EM_S[INDEX2(0,0,8)]+=tmp35_1 + tmp46_1 + tmp47_1 + tmp48_1 + tmp51_1 + tmp52_1;  
                                 EM_S[INDEX2(6,6,8)]+=tmp13_1 + tmp43_1 + tmp46_1 + tmp47_1 + tmp48_1 + tmp52_1;  
                                 EM_S[INDEX2(5,0,8)]+=tmp11_1 + tmp38_1 + tmp39_1 + tmp42_1 + tmp43_1 + tmp44_1 + tmp49_1 + tmp50_1;  
                                 EM_S[INDEX2(7,1,8)]+=tmp10_1 + tmp12_1 + tmp42_1 + tmp45_1 + tmp49_1 + tmp50_1 + tmp53_1 + tmp8_1;  
3465                                  EM_S[INDEX2(4,5,8)]+=tmp19_1 + tmp21_1 + tmp22_1 + tmp26_1 + tmp27_1 + tmp3_1 + tmp4_1 + tmp6_1;                                  EM_S[INDEX2(4,5,8)]+=tmp19_1 + tmp21_1 + tmp22_1 + tmp26_1 + tmp27_1 + tmp3_1 + tmp4_1 + tmp6_1;
                                 EM_S[INDEX2(0,4,8)]+=tmp0_1 + tmp1_1 + tmp2_1 + tmp3_1 + tmp4_1 + tmp5_1 + tmp6_1 + tmp7_1;  
3466                                  EM_S[INDEX2(5,5,8)]+=tmp13_1 + tmp45_1 + tmp46_1 + tmp47_1 + tmp48_1 + tmp51_1;                                  EM_S[INDEX2(5,5,8)]+=tmp13_1 + tmp45_1 + tmp46_1 + tmp47_1 + tmp48_1 + tmp51_1;
                                 EM_S[INDEX2(1,4,8)]+=tmp11_1 + tmp14_1 + tmp42_1 + tmp44_1 + tmp49_1 + tmp50_1 + tmp51_1 + tmp9_1;  
                                 EM_S[INDEX2(6,0,8)]+=tmp33_1 + tmp34_1 + tmp40_1 + tmp41_1 + tmp42_1 + tmp45_1 + tmp53_1 + tmp8_1;  
                                 EM_S[INDEX2(7,5,8)]+=tmp0_1 + tmp17_1 + tmp18_1 + tmp20_1 + tmp21_1 + tmp25_1 + tmp28_1 + tmp36_1;  
                                 EM_S[INDEX2(2,3,8)]+=tmp21_1 + tmp23_1 + tmp24_1 + tmp25_1 + tmp26_1 + tmp27_1 + tmp28_1 + tmp6_1;  
                                 EM_S[INDEX2(2,1,8)]+=tmp11_1 + tmp14_1 + tmp15_1 + tmp33_1 + tmp34_1 + tmp35_1 + tmp8_1 + tmp9_1;  
                                 EM_S[INDEX2(4,2,8)]+=tmp33_1 + tmp34_1 + tmp42_1 + tmp49_1 + tmp50_1 + tmp52_1 + tmp53_1 + tmp8_1;  
                                 EM_S[INDEX2(1,0,8)]+=tmp21_1 + tmp25_1 + tmp26_1 + tmp28_1 + tmp37_1 + tmp3_1 + tmp4_1 + tmp6_1;  
3467                                  EM_S[INDEX2(6,5,8)]+=tmp10_1 + tmp11_1 + tmp12_1 + tmp15_1 + tmp35_1 + tmp38_1 + tmp39_1 + tmp8_1;                                  EM_S[INDEX2(6,5,8)]+=tmp10_1 + tmp11_1 + tmp12_1 + tmp15_1 + tmp35_1 + tmp38_1 + tmp39_1 + tmp8_1;
3468                                  EM_S[INDEX2(3,5,8)]+=tmp33_1 + tmp34_1 + tmp42_1 + tmp49_1 + tmp50_1 + tmp52_1 + tmp53_1 + tmp8_1;                                  EM_S[INDEX2(7,5,8)]+=tmp0_1 + tmp17_1 + tmp18_1 + tmp20_1 + tmp21_1 + tmp25_1 + tmp28_1 + tmp36_1;
                                 EM_S[INDEX2(0,1,8)]+=tmp19_1 + tmp21_1 + tmp22_1 + tmp23_1 + tmp24_1 + tmp26_1 + tmp37_1 + tmp6_1;  
                                 EM_S[INDEX2(7,0,8)]+=tmp16_1 + tmp27_1 + tmp29_1 + tmp30_1 + tmp31_1 + tmp32_1;  
                                 EM_S[INDEX2(4,6,8)]+=tmp0_1 + tmp16_1 + tmp18_1 + tmp1_1 + tmp21_1 + tmp25_1 + tmp28_1 + tmp5_1;  
                                 EM_S[INDEX2(5,2,8)]+=tmp16_1 + tmp29_1 + tmp2_1 + tmp31_1 + tmp32_1 + tmp37_1;  
                                 EM_S[INDEX2(6,1,8)]+=tmp27_1 + tmp29_1 + tmp2_1 + tmp31_1 + tmp32_1 + tmp36_1;  
                                 EM_S[INDEX2(3,1,8)]+=tmp0_1 + tmp16_1 + tmp18_1 + tmp1_1 + tmp21_1 + tmp25_1 + tmp28_1 + tmp5_1;  
                                 EM_S[INDEX2(0,2,8)]+=tmp0_1 + tmp17_1 + tmp18_1 + tmp20_1 + tmp21_1 + tmp25_1 + tmp28_1 + tmp36_1;  
                                 EM_S[INDEX2(7,4,8)]+=tmp11_1 + tmp13_1 + tmp15_1 + tmp33_1 + tmp34_1 + tmp38_1 + tmp39_1 + tmp8_1;  
3469                                  EM_S[INDEX2(0,6,8)]+=tmp10_1 + tmp12_1 + tmp42_1 + tmp45_1 + tmp49_1 + tmp50_1 + tmp53_1 + tmp8_1;                                  EM_S[INDEX2(0,6,8)]+=tmp10_1 + tmp12_1 + tmp42_1 + tmp45_1 + tmp49_1 + tmp50_1 + tmp53_1 + tmp8_1;
3470                                  EM_S[INDEX2(6,2,8)]+=tmp0_1 + tmp1_1 + tmp23_1 + tmp24_1 + tmp30_1 + tmp5_1 + tmp6_1 + tmp7_1;                                  EM_S[INDEX2(1,6,8)]+=tmp27_1 + tmp29_1 + tmp2_1 + tmp31_1 + tmp32_1 + tmp36_1;
3471                                  EM_S[INDEX2(4,3,8)]+=tmp29_1 + tmp30_1 + tmp31_1 + tmp32_1 + tmp36_1 + tmp37_1;                                  EM_S[INDEX2(2,6,8)]+=tmp0_1 + tmp17_1 + tmp20_1 + tmp30_1 + tmp3_1 + tmp4_1 + tmp6_1 + tmp7_1;
3472                                    EM_S[INDEX2(3,6,8)]+=tmp11_1 + tmp38_1 + tmp39_1 + tmp40_1 + tmp41_1 + tmp42_1 + tmp44_1 + tmp51_1;
3473                                    EM_S[INDEX2(4,6,8)]+=tmp0_1 + tmp16_1 + tmp18_1 + tmp1_1 + tmp21_1 + tmp25_1 + tmp28_1 + tmp5_1;
3474                                    EM_S[INDEX2(5,6,8)]+=tmp11_1 + tmp14_1 + tmp15_1 + tmp33_1 + tmp34_1 + tmp35_1 + tmp8_1 + tmp9_1;
3475                                    EM_S[INDEX2(6,6,8)]+=tmp13_1 + tmp43_1 + tmp46_1 + tmp47_1 + tmp48_1 + tmp52_1;
3476                                    EM_S[INDEX2(7,6,8)]+=tmp19_1 + tmp21_1 + tmp22_1 + tmp23_1 + tmp24_1 + tmp26_1 + tmp37_1 + tmp6_1;
3477                                    EM_S[INDEX2(0,7,8)]+=tmp16_1 + tmp27_1 + tmp29_1 + tmp30_1 + tmp31_1 + tmp32_1;
3478                                  EM_S[INDEX2(1,7,8)]+=tmp33_1 + tmp34_1 + tmp40_1 + tmp41_1 + tmp42_1 + tmp45_1 + tmp53_1 + tmp8_1;                                  EM_S[INDEX2(1,7,8)]+=tmp33_1 + tmp34_1 + tmp40_1 + tmp41_1 + tmp42_1 + tmp45_1 + tmp53_1 + tmp8_1;
3479                                  EM_S[INDEX2(0,5,8)]+=tmp11_1 + tmp14_1 + tmp40_1 + tmp41_1 + tmp42_1 + tmp43_1 + tmp44_1 + tmp9_1;                                  EM_S[INDEX2(2,7,8)]+=tmp11_1 + tmp38_1 + tmp39_1 + tmp42_1 + tmp43_1 + tmp44_1 + tmp49_1 + tmp50_1;
3480                                  EM_S[INDEX2(3,4,8)]+=tmp29_1 + tmp30_1 + tmp31_1 + tmp32_1 + tmp36_1 + tmp37_1;                                  EM_S[INDEX2(3,7,8)]+=tmp0_1 + tmp17_1 + tmp20_1 + tmp23_1 + tmp24_1 + tmp2_1 + tmp6_1 + tmp7_1;
3481                                  EM_S[INDEX2(2,4,8)]+=tmp10_1 + tmp12_1 + tmp40_1 + tmp41_1 + tmp42_1 + tmp52_1 + tmp53_1 + tmp8_1;                                  EM_S[INDEX2(4,7,8)]+=tmp10_1 + tmp11_1 + tmp12_1 + tmp13_1 + tmp14_1 + tmp15_1 + tmp8_1 + tmp9_1;
3482                                    EM_S[INDEX2(5,7,8)]+=tmp0_1 + tmp18_1 + tmp19_1 + tmp1_1 + tmp21_1 + tmp22_1 + tmp36_1 + tmp5_1;
3483                                    EM_S[INDEX2(6,7,8)]+=tmp21_1 + tmp25_1 + tmp26_1 + tmp28_1 + tmp37_1 + tmp3_1 + tmp4_1 + tmp6_1;
3484                                    EM_S[INDEX2(7,7,8)]+=tmp35_1 + tmp46_1 + tmp47_1 + tmp48_1 + tmp51_1 + tmp52_1;
3485                              }                              }
3486                          }                          }
3487                          ///////////////                          ///////////////
# Line 4008  void Brick::assemblePDESingle(Paso_Syste Line 4013  void Brick::assemblePDESingle(Paso_Syste
4013                                  const double tmp240_1 = B_1_0*w99;                                  const double tmp240_1 = B_1_0*w99;
4014                                  const double tmp160_1 = B_0_1*w104;                                  const double tmp160_1 = B_0_1*w104;
4015                                  const double tmp377_1 = B_2_5*w100;                                  const double tmp377_1 = B_2_5*w100;
4016                                  EM_S[INDEX2(7,3,8)]+=tmp0_1 + tmp10_1 + tmp11_1 + tmp12_1 + tmp13_1 + tmp1_1 + tmp2_1 + tmp3_1 + tmp4_1 + tmp5_1 + tmp6_1 + tmp7_1 + tmp8_1 + tmp9_1;                                  EM_S[INDEX2(0,0,8)]+=tmp175_1 + tmp178_1 + tmp324_1 + tmp325_1 + tmp326_1 + tmp327_1 + tmp328_1 + tmp329_1 + tmp330_1 + tmp331_1 + tmp332_1 + tmp333_1 + tmp334_1 + tmp335_1 + tmp336_1 + tmp337_1 + tmp338_1 + tmp339_1;
4017                                  EM_S[INDEX2(4,7,8)]+=tmp14_1 + tmp15_1 + tmp16_1 + tmp17_1 + tmp18_1 + tmp19_1 + tmp20_1 + tmp21_1 + tmp22_1 + tmp23_1;                                  EM_S[INDEX2(1,0,8)]+=tmp200_1 + tmp202_1 + tmp410_1 + tmp411_1 + tmp412_1 + tmp413_1 + tmp414_1 + tmp415_1 + tmp416_1 + tmp417_1 + tmp418_1 + tmp419_1 + tmp420_1 + tmp421_1;
4018                                  EM_S[INDEX2(1,3,8)]+=tmp24_1 + tmp25_1 + tmp26_1 + tmp27_1 + tmp28_1 + tmp29_1 + tmp30_1 + tmp31_1 + tmp32_1 + tmp33_1 + tmp34_1 + tmp35_1 + tmp36_1 + tmp37_1;                                  EM_S[INDEX2(2,0,8)]+=tmp186_1 + tmp187_1 + tmp188_1 + tmp189_1 + tmp190_1 + tmp191_1 + tmp192_1 + tmp193_1 + tmp194_1 + tmp195_1 + tmp196_1 + tmp197_1 + tmp198_1 + tmp199_1;
                                 EM_S[INDEX2(6,4,8)]+=tmp38_1 + tmp39_1 + tmp40_1 + tmp41_1 + tmp42_1 + tmp43_1 + tmp44_1 + tmp45_1 + tmp46_1 + tmp47_1 + tmp48_1 + tmp49_1 + tmp50_1 + tmp51_1;  
4019                                  EM_S[INDEX2(3,0,8)]+=tmp52_1 + tmp53_1 + tmp54_1 + tmp55_1 + tmp56_1 + tmp57_1 + tmp58_1 + tmp59_1 + tmp60_1 + tmp61_1;                                  EM_S[INDEX2(3,0,8)]+=tmp52_1 + tmp53_1 + tmp54_1 + tmp55_1 + tmp56_1 + tmp57_1 + tmp58_1 + tmp59_1 + tmp60_1 + tmp61_1;
                                 EM_S[INDEX2(5,4,8)]+=tmp62_1 + tmp63_1 + tmp64_1 + tmp65_1 + tmp66_1 + tmp67_1 + tmp68_1 + tmp69_1 + tmp70_1 + tmp71_1 + tmp72_1 + tmp73_1 + tmp74_1 + tmp75_1;  
                                 EM_S[INDEX2(0,7,8)]+=tmp76_1 + tmp77_1 + tmp78_1 + tmp79_1 + tmp80_1 + tmp81_1;  
                                 EM_S[INDEX2(5,6,8)]+=tmp17_1 + tmp18_1 + tmp19_1 + tmp21_1 + tmp22_1 + tmp23_1 + tmp82_1 + tmp83_1 + tmp84_1 + tmp85_1;  
                                 EM_S[INDEX2(2,6,8)]+=tmp86_1 + tmp87_1 + tmp88_1 + tmp89_1 + tmp90_1 + tmp91_1 + tmp92_1 + tmp93_1 + tmp94_1 + tmp95_1 + tmp96_1 + tmp97_1 + tmp98_1 + tmp99_1;  
                                 EM_S[INDEX2(1,6,8)]+=tmp100_1 + tmp101_1 + tmp78_1 + tmp79_1 + tmp80_1 + tmp81_1;  
                                 EM_S[INDEX2(5,1,8)]+=tmp102_1 + tmp103_1 + tmp104_1 + tmp105_1 + tmp106_1 + tmp107_1 + tmp108_1 + tmp109_1 + tmp110_1 + tmp111_1 + tmp112_1 + tmp113_1 + tmp114_1 + tmp115_1;  
                                 EM_S[INDEX2(3,7,8)]+=tmp0_1 + tmp10_1 + tmp116_1 + tmp117_1 + tmp118_1 + tmp119_1 + tmp11_1 + tmp120_1 + tmp121_1 + tmp12_1 + tmp1_1 + tmp4_1 + tmp7_1 + tmp8_1;  
                                 EM_S[INDEX2(2,5,8)]+=tmp122_1 + tmp123_1 + tmp76_1 + tmp77_1 + tmp80_1 + tmp81_1;  
                                 EM_S[INDEX2(0,3,8)]+=tmp124_1 + tmp125_1 + tmp126_1 + tmp127_1 + tmp128_1 + tmp129_1 + tmp130_1 + tmp131_1 + tmp55_1 + tmp58_1;  
                                 EM_S[INDEX2(7,2,8)]+=tmp132_1 + tmp133_1 + tmp134_1 + tmp135_1 + tmp136_1 + tmp137_1 + tmp138_1 + tmp139_1 + tmp140_1 + tmp141_1;  
4020                                  EM_S[INDEX2(4,0,8)]+=tmp13_1 + tmp142_1 + tmp143_1 + tmp144_1 + tmp145_1 + tmp146_1 + tmp147_1 + tmp148_1 + tmp149_1 + tmp150_1 + tmp151_1 + tmp152_1 + tmp153_1 + tmp6_1;                                  EM_S[INDEX2(4,0,8)]+=tmp13_1 + tmp142_1 + tmp143_1 + tmp144_1 + tmp145_1 + tmp146_1 + tmp147_1 + tmp148_1 + tmp149_1 + tmp150_1 + tmp151_1 + tmp152_1 + tmp153_1 + tmp6_1;
4021                                    EM_S[INDEX2(5,0,8)]+=tmp292_1 + tmp293_1 + tmp294_1 + tmp295_1 + tmp296_1 + tmp298_1 + tmp354_1 + tmp355_1 + tmp356_1 + tmp357_1;
4022                                    EM_S[INDEX2(6,0,8)]+=tmp388_1 + tmp389_1 + tmp390_1 + tmp391_1 + tmp392_1 + tmp393_1 + tmp394_1 + tmp395_1 + tmp396_1 + tmp397_1;
4023                                    EM_S[INDEX2(7,0,8)]+=tmp100_1 + tmp101_1 + tmp122_1 + tmp123_1 + tmp434_1 + tmp435_1;
4024                                    EM_S[INDEX2(0,1,8)]+=tmp154_1 + tmp155_1 + tmp411_1 + tmp412_1 + tmp413_1 + tmp414_1 + tmp416_1 + tmp417_1 + tmp419_1 + tmp421_1 + tmp430_1 + tmp431_1 + tmp432_1 + tmp433_1;
4025                                    EM_S[INDEX2(1,1,8)]+=tmp211_1 + tmp212_1 + tmp244_1 + tmp246_1 + tmp252_1 + tmp254_1 + tmp300_1 + tmp301_1 + tmp302_1 + tmp303_1 + tmp304_1 + tmp305_1 + tmp306_1 + tmp307_1 + tmp308_1 + tmp309_1 + tmp310_1 + tmp311_1;
4026                                    EM_S[INDEX2(2,1,8)]+=tmp124_1 + tmp125_1 + tmp126_1 + tmp127_1 + tmp54_1 + tmp55_1 + tmp57_1 + tmp58_1 + tmp59_1 + tmp61_1;
4027                                    EM_S[INDEX2(3,1,8)]+=tmp24_1 + tmp26_1 + tmp29_1 + tmp30_1 + tmp31_1 + tmp32_1 + tmp34_1 + tmp35_1 + tmp440_1 + tmp441_1 + tmp442_1 + tmp443_1 + tmp46_1 + tmp48_1;
4028                                    EM_S[INDEX2(4,1,8)]+=tmp290_1 + tmp291_1 + tmp292_1 + tmp293_1 + tmp294_1 + tmp295_1 + tmp296_1 + tmp297_1 + tmp298_1 + tmp299_1;
4029                                    EM_S[INDEX2(5,1,8)]+=tmp102_1 + tmp103_1 + tmp104_1 + tmp105_1 + tmp106_1 + tmp107_1 + tmp108_1 + tmp109_1 + tmp110_1 + tmp111_1 + tmp112_1 + tmp113_1 + tmp114_1 + tmp115_1;
4030                                    EM_S[INDEX2(6,1,8)]+=tmp122_1 + tmp123_1 + tmp434_1 + tmp435_1 + tmp76_1 + tmp77_1;
4031                                    EM_S[INDEX2(7,1,8)]+=tmp280_1 + tmp281_1 + tmp282_1 + tmp283_1 + tmp286_1 + tmp289_1 + tmp358_1 + tmp359_1 + tmp360_1 + tmp361_1;
4032                                    EM_S[INDEX2(0,2,8)]+=tmp186_1 + tmp187_1 + tmp188_1 + tmp189_1 + tmp191_1 + tmp192_1 + tmp194_1 + tmp197_1 + tmp272_1 + tmp273_1 + tmp444_1 + tmp445_1 + tmp446_1 + tmp447_1;
4033                                  EM_S[INDEX2(1,2,8)]+=tmp128_1 + tmp129_1 + tmp130_1 + tmp131_1 + tmp52_1 + tmp53_1 + tmp55_1 + tmp56_1 + tmp58_1 + tmp60_1;                                  EM_S[INDEX2(1,2,8)]+=tmp128_1 + tmp129_1 + tmp130_1 + tmp131_1 + tmp52_1 + tmp53_1 + tmp55_1 + tmp56_1 + tmp58_1 + tmp60_1;
4034                                  EM_S[INDEX2(6,7,8)]+=tmp154_1 + tmp155_1 + tmp156_1 + tmp157_1 + tmp158_1 + tmp159_1 + tmp160_1 + tmp161_1 + tmp162_1 + tmp163_1 + tmp164_1 + tmp165_1 + tmp166_1 + tmp167_1;                                  EM_S[INDEX2(2,2,8)]+=tmp206_1 + tmp207_1 + tmp236_1 + tmp237_1 + tmp238_1 + tmp239_1 + tmp240_1 + tmp241_1 + tmp242_1 + tmp243_1 + tmp244_1 + tmp245_1 + tmp246_1 + tmp247_1 + tmp248_1 + tmp249_1 + tmp250_1 + tmp251_1;
4035                                    EM_S[INDEX2(3,2,8)]+=tmp312_1 + tmp313_1 + tmp314_1 + tmp315_1 + tmp316_1 + tmp317_1 + tmp318_1 + tmp319_1 + tmp320_1 + tmp321_1 + tmp322_1 + tmp323_1 + tmp62_1 + tmp64_1;
4036                                    EM_S[INDEX2(4,2,8)]+=tmp388_1 + tmp389_1 + tmp390_1 + tmp391_1 + tmp393_1 + tmp397_1 + tmp406_1 + tmp407_1 + tmp408_1 + tmp409_1;
4037                                    EM_S[INDEX2(5,2,8)]+=tmp100_1 + tmp101_1 + tmp434_1 + tmp435_1 + tmp78_1 + tmp79_1;
4038                                    EM_S[INDEX2(6,2,8)]+=tmp109_1 + tmp112_1 + tmp452_1 + tmp453_1 + tmp454_1 + tmp455_1 + tmp87_1 + tmp88_1 + tmp89_1 + tmp91_1 + tmp94_1 + tmp95_1 + tmp97_1 + tmp99_1;
4039                                    EM_S[INDEX2(7,2,8)]+=tmp132_1 + tmp133_1 + tmp134_1 + tmp135_1 + tmp136_1 + tmp137_1 + tmp138_1 + tmp139_1 + tmp140_1 + tmp141_1;
4040                                    EM_S[INDEX2(0,3,8)]+=tmp124_1 + tmp125_1 + tmp126_1 + tmp127_1 + tmp128_1 + tmp129_1 + tmp130_1 + tmp131_1 + tmp55_1 + tmp58_1;
4041                                    EM_S[INDEX2(1,3,8)]+=tmp24_1 + tmp25_1 + tmp26_1 + tmp27_1 + tmp28_1 + tmp29_1 + tmp30_1 + tmp31_1 + tmp32_1 + tmp33_1 + tmp34_1 + tmp35_1 + tmp36_1 + tmp37_1;
4042                                    EM_S[INDEX2(2,3,8)]+=tmp313_1 + tmp314_1 + tmp315_1 + tmp317_1 + tmp318_1 + tmp319_1 + tmp320_1 + tmp323_1 + tmp362_1 + tmp363_1 + tmp402_1 + tmp403_1 + tmp404_1 + tmp405_1;
4043                                  EM_S[INDEX2(3,3,8)]+=tmp168_1 + tmp169_1 + tmp170_1 + tmp171_1 + tmp172_1 + tmp173_1 + tmp174_1 + tmp175_1 + tmp176_1 + tmp177_1 + tmp178_1 + tmp179_1 + tmp180_1 + tmp181_1 + tmp182_1 + tmp183_1 + tmp184_1 + tmp185_1;                                  EM_S[INDEX2(3,3,8)]+=tmp168_1 + tmp169_1 + tmp170_1 + tmp171_1 + tmp172_1 + tmp173_1 + tmp174_1 + tmp175_1 + tmp176_1 + tmp177_1 + tmp178_1 + tmp179_1 + tmp180_1 + tmp181_1 + tmp182_1 + tmp183_1 + tmp184_1 + tmp185_1;
4044                                  EM_S[INDEX2(2,0,8)]+=tmp186_1 + tmp187_1 + tmp188_1 + tmp189_1 + tmp190_1 + tmp191_1 + tmp192_1 + tmp193_1 + tmp194_1 + tmp195_1 + tmp196_1 + tmp197_1 + tmp198_1 + tmp199_1;                                  EM_S[INDEX2(4,3,8)]+=tmp434_1 + tmp435_1 + tmp76_1 + tmp77_1 + tmp78_1 + tmp79_1;
4045                                  EM_S[INDEX2(7,6,8)]+=tmp157_1 + tmp158_1 + tmp159_1 + tmp161_1 + tmp162_1 + tmp164_1 + tmp166_1 + tmp167_1 + tmp200_1 + tmp201_1 + tmp202_1 + tmp203_1 + tmp204_1 + tmp205_1;                                  EM_S[INDEX2(5,3,8)]+=tmp280_1 + tmp281_1 + tmp282_1 + tmp283_1 + tmp284_1 + tmp285_1 + tmp286_1 + tmp287_1 + tmp288_1 + tmp289_1;
                                 EM_S[INDEX2(4,4,8)]+=tmp206_1 + tmp207_1 + tmp208_1 + tmp209_1 + tmp210_1 + tmp211_1 + tmp212_1 + tmp213_1 + tmp214_1 + tmp215_1 + tmp216_1 + tmp217_1 + tmp218_1 + tmp219_1 + tmp220_1 + tmp221_1 + tmp222_1 + tmp223_1;  
4046                                  EM_S[INDEX2(6,3,8)]+=tmp134_1 + tmp135_1 + tmp136_1 + tmp138_1 + tmp140_1 + tmp141_1 + tmp224_1 + tmp225_1 + tmp226_1 + tmp227_1;                                  EM_S[INDEX2(6,3,8)]+=tmp134_1 + tmp135_1 + tmp136_1 + tmp138_1 + tmp140_1 + tmp141_1 + tmp224_1 + tmp225_1 + tmp226_1 + tmp227_1;
4047                                    EM_S[INDEX2(7,3,8)]+=tmp0_1 + tmp10_1 + tmp11_1 + tmp12_1 + tmp13_1 + tmp1_1 + tmp2_1 + tmp3_1 + tmp4_1 + tmp5_1 + tmp6_1 + tmp7_1 + tmp8_1 + tmp9_1;
4048                                    EM_S[INDEX2(0,4,8)]+=tmp119_1 + tmp120_1 + tmp142_1 + tmp143_1 + tmp144_1 + tmp146_1 + tmp147_1 + tmp149_1 + tmp151_1 + tmp152_1 + tmp368_1 + tmp369_1 + tmp370_1 + tmp371_1;
4049                                    EM_S[INDEX2(1,4,8)]+=tmp294_1 + tmp295_1 + tmp354_1 + tmp355_1 + tmp356_1 + tmp357_1 + tmp384_1 + tmp385_1 + tmp386_1 + tmp387_1;
4050                                    EM_S[INDEX2(2,4,8)]+=tmp388_1 + tmp389_1 + tmp392_1 + tmp394_1 + tmp395_1 + tmp396_1 + tmp448_1 + tmp449_1 + tmp450_1 + tmp451_1;
4051                                    EM_S[INDEX2(3,4,8)]+=tmp100_1 + tmp101_1 + tmp122_1 + tmp123_1 + tmp80_1 + tmp81_1;
4052                                    EM_S[INDEX2(4,4,8)]+=tmp206_1 + tmp207_1 + tmp208_1 + tmp209_1 + tmp210_1 + tmp211_1 + tmp212_1 + tmp213_1 + tmp214_1 + tmp215_1 + tmp216_1 + tmp217_1 + tmp218_1 + tmp219_1 + tmp220_1 + tmp221_1 + tmp222_1 + tmp223_1;
4053                                    EM_S[INDEX2(5,4,8)]+=tmp62_1 + tmp63_1 + tmp64_1 + tmp65_1 + tmp66_1 + tmp67_1 + tmp68_1 + tmp69_1 + tmp70_1 + tmp71_1 + tmp72_1 + tmp73_1 + tmp74_1 + tmp75_1;
4054                                    EM_S[INDEX2(6,4,8)]+=tmp38_1 + tmp39_1 + tmp40_1 + tmp41_1 + tmp42_1 + tmp43_1 + tmp44_1 + tmp45_1 + tmp46_1 + tmp47_1 + tmp48_1 + tmp49_1 + tmp50_1 + tmp51_1;
4055                                    EM_S[INDEX2(7,4,8)]+=tmp19_1 + tmp23_1 + tmp422_1 + tmp423_1 + tmp424_1 + tmp425_1 + tmp82_1 + tmp83_1 + tmp84_1 + tmp85_1;
4056                                    EM_S[INDEX2(0,5,8)]+=tmp290_1 + tmp291_1 + tmp294_1 + tmp295_1 + tmp297_1 + tmp299_1 + tmp384_1 + tmp385_1 + tmp386_1 + tmp387_1;
4057                                  EM_S[INDEX2(1,5,8)]+=tmp102_1 + tmp103_1 + tmp106_1 + tmp107_1 + tmp110_1 + tmp113_1 + tmp114_1 + tmp115_1 + tmp228_1 + tmp229_1 + tmp230_1 + tmp231_1 + tmp86_1 + tmp96_1;                                  EM_S[INDEX2(1,5,8)]+=tmp102_1 + tmp103_1 + tmp106_1 + tmp107_1 + tmp110_1 + tmp113_1 + tmp114_1 + tmp115_1 + tmp228_1 + tmp229_1 + tmp230_1 + tmp231_1 + tmp86_1 + tmp96_1;
4058                                  EM_S[INDEX2(3,6,8)]+=tmp132_1 + tmp133_1 + tmp137_1 + tmp138_1 + tmp139_1 + tmp140_1 + tmp232_1 + tmp233_1 + tmp234_1 + tmp235_1;                                  EM_S[INDEX2(2,5,8)]+=tmp122_1 + tmp123_1 + tmp76_1 + tmp77_1 + tmp80_1 + tmp81_1;
4059                                  EM_S[INDEX2(2,2,8)]+=tmp206_1 + tmp207_1 + tmp236_1 + tmp237_1 + tmp238_1 + tmp239_1 + tmp240_1 + tmp241_1 + tmp242_1 + tmp243_1 + tmp244_1 + tmp245_1 + tmp246_1 + tmp247_1 + tmp248_1 + tmp249_1 + tmp250_1 + tmp251_1;                                  EM_S[INDEX2(3,5,8)]+=tmp280_1 + tmp281_1 + tmp358_1 + tmp359_1 + tmp360_1 + tmp361_1 + tmp426_1 + tmp427_1 + tmp428_1 + tmp429_1;
                                 EM_S[INDEX2(7,7,8)]+=tmp215_1 + tmp222_1 + tmp247_1 + tmp250_1 + tmp252_1 + tmp253_1 + tmp254_1 + tmp255_1 + tmp256_1 + tmp257_1 + tmp258_1 + tmp259_1 + tmp260_1 + tmp261_1 + tmp262_1 + tmp263_1 + tmp264_1 + tmp265_1;  
                                 EM_S[INDEX2(5,7,8)]+=tmp266_1 + tmp267_1 + tmp268_1 + tmp269_1 + tmp270_1 + tmp271_1 + tmp272_1 + tmp273_1 + tmp274_1 + tmp275_1 + tmp276_1 + tmp277_1 + tmp278_1 + tmp279_1;  
                                 EM_S[INDEX2(5,3,8)]+=tmp280_1 + tmp281_1 + tmp282_1 + tmp283_1 + tmp284_1 + tmp285_1 + tmp286_1 + tmp287_1 + tmp288_1 + tmp289_1;  
                                 EM_S[INDEX2(4,1,8)]+=tmp290_1 + tmp291_1 + tmp292_1 + tmp293_1 + tmp294_1 + tmp295_1 + tmp296_1 + tmp297_1 + tmp298_1 + tmp299_1;  
                                 EM_S[INDEX2(1,1,8)]+=tmp211_1 + tmp212_1 + tmp244_1 + tmp246_1 + tmp252_1 + tmp254_1 + tmp300_1 + tmp301_1 + tmp302_1 + tmp303_1 + tmp304_1 + tmp305_1 + tmp306_1 + tmp307_1 + tmp308_1 + tmp309_1 + tmp310_1 + tmp311_1;  
                                 EM_S[INDEX2(2,7,8)]+=tmp138_1 + tmp140_1 + tmp224_1 + tmp225_1 + tmp226_1 + tmp227_1 + tmp232_1 + tmp233_1 + tmp234_1 + tmp235_1;  
                                 EM_S[INDEX2(3,2,8)]+=tmp312_1 + tmp313_1 + tmp314_1 + tmp315_1 + tmp316_1 + tmp317_1 + tmp318_1 + tmp319_1 + tmp320_1 + tmp321_1 + tmp322_1 + tmp323_1 + tmp62_1 + tmp64_1;  
                                 EM_S[INDEX2(0,0,8)]+=tmp175_1 + tmp178_1 + tmp324_1 + tmp325_1 + tmp326_1 + tmp327_1 + tmp328_1 + tmp329_1 + tmp330_1 + tmp331_1 + tmp332_1 + tmp333_1 + tmp334_1 + tmp335_1 + tmp336_1 + tmp337_1 + tmp338_1 + tmp339_1;  
                                 EM_S[INDEX2(6,6,8)]+=tmp179_1 + tmp184_1 + tmp325_1 + tmp326_1 + tmp340_1 + tmp341_1 + tmp342_1 + tmp343_1 + tmp344_1 + tmp345_1 + tmp346_1 + tmp347_1 + tmp348_1 + tmp349_1 + tmp350_1 + tmp351_1 + tmp352_1 + tmp353_1;  
                                 EM_S[INDEX2(5,0,8)]+=tmp292_1 + tmp293_1 + tmp294_1 + tmp295_1 + tmp296_1 + tmp298_1 + tmp354_1 + tmp355_1 + tmp356_1 + tmp357_1;  
                                 EM_S[INDEX2(7,1,8)]+=tmp280_1 + tmp281_1 + tmp282_1 + tmp283_1 + tmp286_1 + tmp289_1 + tmp358_1 + tmp359_1 + tmp360_1 + tmp361_1;  
4060                                  EM_S[INDEX2(4,5,8)]+=tmp362_1 + tmp363_1 + tmp364_1 + tmp365_1 + tmp366_1 + tmp367_1 + tmp65_1 + tmp66_1 + tmp67_1 + tmp68_1 + tmp69_1 + tmp71_1 + tmp72_1 + tmp75_1;                                  EM_S[INDEX2(4,5,8)]+=tmp362_1 + tmp363_1 + tmp364_1 + tmp365_1 + tmp366_1 + tmp367_1 + tmp65_1 + tmp66_1 + tmp67_1 + tmp68_1 + tmp69_1 + tmp71_1 + tmp72_1 + tmp75_1;
                                 EM_S[INDEX2(0,4,8)]+=tmp119_1 + tmp120_1 + tmp142_1 + tmp143_1 + tmp144_1 + tmp146_1 + tmp147_1 + tmp149_1 + tmp151_1 + tmp152_1 + tmp368_1 + tmp369_1 + tmp370_1 + tmp371_1;  
4061                                  EM_S[INDEX2(5,5,8)]+=tmp168_1 + tmp170_1 + tmp330_1 + tmp335_1 + tmp345_1 + tmp352_1 + tmp372_1 + tmp373_1 + tmp374_1 + tmp375_1 + tmp376_1 + tmp377_1 + tmp378_1 + tmp379_1 + tmp380_1 + tmp381_1 + tmp382_1 + tmp383_1;                                  EM_S[INDEX2(5,5,8)]+=tmp168_1 + tmp170_1 + tmp330_1 + tmp335_1 + tmp345_1 + tmp352_1 + tmp372_1 + tmp373_1 + tmp374_1 + tmp375_1 + tmp376_1 + tmp377_1 + tmp378_1 + tmp379_1 + tmp380_1 + tmp381_1 + tmp382_1 + tmp383_1;
                                 EM_S[INDEX2(1,4,8)]+=tmp294_1 + tmp295_1 + tmp354_1 + tmp355_1 + tmp356_1 + tmp357_1 + tmp384_1 + tmp385_1 + tmp386_1 + tmp387_1;  
                                 EM_S[INDEX2(6,0,8)]+=tmp388_1 + tmp389_1 + tmp390_1 + tmp391_1 + tmp392_1 + tmp393_1 + tmp394_1 + tmp395_1 + tmp396_1 + tmp397_1;  
                                 EM_S[INDEX2(7,5,8)]+=tmp195_1 + tmp198_1 + tmp266_1 + tmp268_1 + tmp269_1 + tmp271_1 + tmp274_1 + tmp275_1 + tmp278_1 + tmp279_1 + tmp398_1 + tmp399_1 + tmp400_1 + tmp401_1;  
                                 EM_S[INDEX2(2,3,8)]+=tmp313_1 + tmp314_1 + tmp315_1 + tmp317_1 + tmp318_1 + tmp319_1 + tmp320_1 + tmp323_1 + tmp362_1 + tmp363_1 + tmp402_1 + tmp403_1 + tmp404_1 + tmp405_1;  
                                 EM_S[INDEX2(2,1,8)]+=tmp124_1 + tmp125_1 + tmp126_1 + tmp127_1 + tmp54_1 + tmp55_1 + tmp57_1 + tmp58_1 + tmp59_1 + tmp61_1;  
                                 EM_S[INDEX2(4,2,8)]+=tmp388_1 + tmp389_1 + tmp390_1 + tmp391_1 + tmp393_1 + tmp397_1 + tmp406_1 + tmp407_1 + tmp408_1 + tmp409_1;  
                                 EM_S[INDEX2(1,0,8)]+=tmp200_1 + tmp202_1 + tmp410_1 + tmp411_1 + tmp412_1 + tmp413_1 + tmp414_1 + tmp415_1 + tmp416_1 + tmp417_1 + tmp418_1 + tmp419_1 + tmp420_1 + tmp421_1;  
4062                                  EM_S[INDEX2(6,5,8)]+=tmp14_1 + tmp15_1 + tmp16_1 + tmp19_1 + tmp20_1 + tmp23_1 + tmp422_1 + tmp423_1 + tmp424_1 + tmp425_1;                                  EM_S[INDEX2(6,5,8)]+=tmp14_1 + tmp15_1 + tmp16_1 + tmp19_1 + tmp20_1 + tmp23_1 + tmp422_1 + tmp423_1 + tmp424_1 + tmp425_1;
4063                                  EM_S[INDEX2(3,5,8)]+=tmp280_1 + tmp281_1 + tmp358_1 + tmp359_1 + tmp360_1 + tmp361_1 + tmp426_1 + tmp427_1 + tmp428_1 + tmp429_1;                                  EM_S[INDEX2(7,5,8)]+=tmp195_1 + tmp198_1 + tmp266_1 + tmp268_1 + tmp269_1 + tmp271_1 + tmp274_1 + tmp275_1 + tmp278_1 + tmp279_1 + tmp398_1 + tmp399_1 + tmp400_1 + tmp401_1;
                                 EM_S[INDEX2(0,1,8)]+=tmp154_1 + tmp155_1 + tmp411_1 + tmp412_1 + tmp413_1 + tmp414_1 + tmp416_1 + tmp417_1 + tmp419_1 + tmp421_1 + tmp430_1 + tmp431_1 + tmp432_1 + tmp433_1;  
                                 EM_S[INDEX2(7,0,8)]+=tmp100_1 + tmp101_1 + tmp122_1 + tmp123_1 + tmp434_1 + tmp435_1;  
                                 EM_S[INDEX2(4,6,8)]+=tmp27_1 + tmp28_1 + tmp38_1 + tmp39_1 + tmp40_1 + tmp41_1 + tmp436_1 + tmp437_1 + tmp438_1 + tmp439_1 + tmp43_1 + tmp44_1 + tmp50_1 + tmp51_1;  
                                 EM_S[INDEX2(5,2,8)]+=tmp100_1 + tmp101_1 + tmp434_1 + tmp435_1 + tmp78_1 + tmp79_1;  
                                 EM_S[INDEX2(6,1,8)]+=tmp122_1 + tmp123_1 + tmp434_1 + tmp435_1 + tmp76_1 + tmp77_1;  
                                 EM_S[INDEX2(3,1,8)]+=tmp24_1 + tmp26_1 + tmp29_1 + tmp30_1 + tmp31_1 + tmp32_1 + tmp34_1 + tmp35_1 + tmp440_1 + tmp441_1 + tmp442_1 + tmp443_1 + tmp46_1 + tmp48_1;  
                                 EM_S[INDEX2(0,2,8)]+=tmp186_1 + tmp187_1 + tmp188_1 + tmp189_1 + tmp191_1 + tmp192_1 + tmp194_1 + tmp197_1 + tmp272_1 + tmp273_1 + tmp444_1 + tmp445_1 + tmp446_1 + tmp447_1;  
                                 EM_S[INDEX2(7,4,8)]+=tmp19_1 + tmp23_1 + tmp422_1 + tmp423_1 + tmp424_1 + tmp425_1 + tmp82_1 + tmp83_1 + tmp84_1 + tmp85_1;  
4064                                  EM_S[INDEX2(0,6,8)]+=tmp388_1 + tmp389_1 + tmp406_1 + tmp407_1 + tmp408_1 + tmp409_1 + tmp448_1 + tmp449_1 + tmp450_1 + tmp451_1;                                  EM_S[INDEX2(0,6,8)]+=tmp388_1 + tmp389_1 + tmp406_1 + tmp407_1 + tmp408_1 + tmp409_1 + tmp448_1 + tmp449_1 + tmp450_1 + tmp451_1;
4065                                  EM_S[INDEX2(6,2,8)]+=tmp109_1 + tmp112_1 + tmp452_1 + tmp453_1 + tmp454_1 + tmp455_1 + tmp87_1 + tmp88_1 + tmp89_1 + tmp91_1 + tmp94_1 + tmp95_1 + tmp97_1 + tmp99_1;                                  EM_S[INDEX2(1,6,8)]+=tmp100_1 + tmp101_1 + tmp78_1 + tmp79_1 + tmp80_1 + tmp81_1;
4066                                  EM_S[INDEX2(4,3,8)]+=tmp434_1 + tmp435_1 + tmp76_1 + tmp77_1 + tmp78_1 + tmp79_1;                                  EM_S[INDEX2(2,6,8)]+=tmp86_1 + tmp87_1 + tmp88_1 + tmp89_1 + tmp90_1 + tmp91_1 + tmp92_1 + tmp93_1 + tmp94_1 + tmp95_1 + tmp96_1 + tmp97_1 + tmp98_1 + tmp99_1;
4067                                    EM_S[INDEX2(3,6,8)]+=tmp132_1 + tmp133_1 + tmp137_1 + tmp138_1 + tmp139_1 + tmp140_1 + tmp232_1 + tmp233_1 + tmp234_1 + tmp235_1;
4068                                    EM_S[INDEX2(4,6,8)]+=tmp27_1 + tmp28_1 + tmp38_1 + tmp39_1 + tmp40_1 + tmp41_1 + tmp436_1 + tmp437_1 + tmp438_1 + tmp439_1 + tmp43_1 + tmp44_1 + tmp50_1 + tmp51_1;
4069                                    EM_S[INDEX2(5,6,8)]+=tmp17_1 + tmp18_1 + tmp19_1 + tmp21_1 + tmp22_1 + tmp23_1 + tmp82_1 + tmp83_1 + tmp84_1 + tmp85_1;
4070                                    EM_S[INDEX2(6,6,8)]+=tmp179_1 + tmp184_1 + tmp325_1 + tmp326_1 + tmp340_1 + tmp341_1 + tmp342_1 + tmp343_1 + tmp344_1 + tmp345_1 + tmp346_1 + tmp347_1 + tmp348_1 + tmp349_1 + tmp350_1 + tmp351_1 + tmp352_1 + tmp353_1;
4071                                    EM_S[INDEX2(7,6,8)]+=tmp157_1 + tmp158_1 + tmp159_1 + tmp161_1 + tmp162_1 + tmp164_1 + tmp166_1 + tmp167_1 + tmp200_1 + tmp201_1 + tmp202_1 + tmp203_1 + tmp204_1 + tmp205_1;
4072                                    EM_S[INDEX2(0,7,8)]+=tmp76_1 + tmp77_1 + tmp78_1 + tmp79_1 + tmp80_1 + tmp81_1;
4073                                  EM_S[INDEX2(1,7,8)]+=tmp280_1 + tmp281_1 + tmp284_1 + tmp285_1 + tmp287_1 + tmp288_1 + tmp426_1 + tmp427_1 + tmp428_1 + tmp429_1;                                  EM_S[INDEX2(1,7,8)]+=tmp280_1 + tmp281_1 + tmp284_1 + tmp285_1 + tmp287_1 + tmp288_1 + tmp426_1 + tmp427_1 + tmp428_1 + tmp429_1;
4074                                  EM_S[INDEX2(0,5,8)]+=tmp290_1 + tmp291_1 + tmp294_1 + tmp295_1 + tmp297_1 + tmp299_1 + tmp384_1 + tmp385_1 + tmp386_1 + tmp387_1;                                  EM_S[INDEX2(2,7,8)]+=tmp138_1 + tmp140_1 + tmp224_1 + tmp225_1 + tmp226_1 + tmp227_1 + tmp232_1 + tmp233_1 + tmp234_1 + tmp235_1;
4075                                  EM_S[INDEX2(3,4,8)]+=tmp100_1 + tmp101_1 + tmp122_1 + tmp123_1 + tmp80_1 + tmp81_1;                                  EM_S[INDEX2(3,7,8)]+=tmp0_1 + tmp10_1 + tmp116_1 + tmp117_1 + tmp118_1 + tmp119_1 + tmp11_1 + tmp120_1 + tmp121_1 + tmp12_1 + tmp1_1 + tmp4_1 + tmp7_1 + tmp8_1;
4076                                  EM_S[INDEX2(2,4,8)]+=tmp388_1 + tmp389_1 + tmp392_1 + tmp394_1 + tmp395_1 + tmp396_1 + tmp448_1 + tmp449_1 + tmp450_1 + tmp451_1;                                  EM_S[INDEX2(4,7,8)]+=tmp14_1 + tmp15_1 + tmp16_1 + tmp17_1 + tmp18_1 + tmp19_1 + tmp20_1 + tmp21_1 + tmp22_1 + tmp23_1;
4077                                    EM_S[INDEX2(5,7,8)]+=tmp266_1 + tmp267_1 + tmp268_1 + tmp269_1 + tmp270_1 + tmp271_1 + tmp272_1 + tmp273_1 + tmp274_1 + tmp275_1 + tmp276_1 + tmp277_1 + tmp278_1 + tmp279_1;
4078                                    EM_S[INDEX2(6,7,8)]+=tmp154_1 + tmp155_1 + tmp156_1 + tmp157_1 + tmp158_1 + tmp159_1 + tmp160_1 + tmp161_1 + tmp162_1 + tmp163_1 + tmp164_1 + tmp165_1 + tmp166_1 + tmp167_1;
4079                                    EM_S[INDEX2(7,7,8)]+=tmp215_1 + tmp222_1 + tmp247_1 + tmp250_1 + tmp252_1 + tmp253_1 + tmp254_1 + tmp255_1 + tmp256_1 + tmp257_1 + tmp258_1 + tmp259_1 + tmp260_1 + tmp261_1 + tmp262_1 + tmp263_1 + tmp264_1 + tmp265_1;
4080                              } else { // constant data                              } else { // constant data
4081                                  const double B_0 = B_p[0];                                  const double B_0 = B_p[0];
4082                                  const double B_1 = B_p[1];                                  const double B_1 = B_p[1];
# Line 4094  void Brick::assemblePDESingle(Paso_Syste Line 4099  void Brick::assemblePDESingle(Paso_Syste
4099                                  const double tmp0_1 = B_2*w128;                                  const double tmp0_1 = B_2*w128;
4100                                  const double tmp16_1 = B_1*w142;                                  const double tmp16_1 = B_1*w142;
4101                                  const double tmp11_1 = B_0*w137;                                  const double tmp11_1 = B_0*w137;
4102                                  EM_S[INDEX2(7,3,8)]+=tmp0_1 + tmp1_1 + tmp2_1;                                  EM_S[INDEX2(0,0,8)]+=tmp14_1 + tmp17_1 + tmp6_1;
4103                                  EM_S[INDEX2(4,7,8)]+=tmp3_1 + tmp4_1 + tmp5_1;                                  EM_S[INDEX2(1,0,8)]+=tmp11_1 + tmp4_1 + tmp7_1;
4104                                  EM_S[INDEX2(1,3,8)]+=tmp2_1 + tmp6_1 + tmp7_1;                                  EM_S[INDEX2(2,0,8)]+=tmp3_1 + tmp7_1 + tmp9_1;
                                 EM_S[INDEX2(6,4,8)]+=tmp3_1 + tmp8_1 + tmp9_1;  
4105                                  EM_S[INDEX2(3,0,8)]+=tmp10_1 + tmp1_1 + tmp2_1;                                  EM_S[INDEX2(3,0,8)]+=tmp10_1 + tmp1_1 + tmp2_1;
                                 EM_S[INDEX2(5,4,8)]+=tmp11_1 + tmp4_1 + tmp8_1;  
                                 EM_S[INDEX2(0,7,8)]+=tmp10_1 + tmp12_1 + tmp13_1;  
                                 EM_S[INDEX2(5,6,8)]+=tmp2_1 + tmp4_1 + tmp5_1;  
                                 EM_S[INDEX2(2,6,8)]+=tmp14_1 + tmp1_1 + tmp3_1;  
                                 EM_S[INDEX2(1,6,8)]+=tmp10_1 + tmp13_1 + tmp15_1;  
                                 EM_S[INDEX2(5,1,8)]+=tmp0_1 + tmp2_1 + tmp4_1;  
                                 EM_S[INDEX2(3,7,8)]+=tmp14_1 + tmp1_1 + tmp2_1;  
                                 EM_S[INDEX2(2,5,8)]+=tmp10_1 + tmp12_1 + tmp16_1;  
                                 EM_S[INDEX2(0,3,8)]+=tmp10_1 + tmp3_1 + tmp4_1;  
                                 EM_S[INDEX2(7,2,8)]+=tmp16_1 + tmp2_1 + tmp8_1;  
4106                                  EM_S[INDEX2(4,0,8)]+=tmp0_1 + tmp3_1 + tmp4_1;                                  EM_S[INDEX2(4,0,8)]+=tmp0_1 + tmp3_1 + tmp4_1;
4107                                    EM_S[INDEX2(5,0,8)]+=tmp13_1 + tmp2_1 + tmp8_1;
4108                                    EM_S[INDEX2(6,0,8)]+=tmp12_1 + tmp1_1 + tmp8_1;
4109                                    EM_S[INDEX2(7,0,8)]+=tmp15_1 + tmp16_1 + tmp5_1;
4110                                    EM_S[INDEX2(0,1,8)]+=tmp17_1 + tmp4_1 + tmp7_1;
4111                                    EM_S[INDEX2(1,1,8)]+=tmp11_1 + tmp14_1 + tmp6_1;
4112                                    EM_S[INDEX2(2,1,8)]+=tmp10_1 + tmp1_1 + tmp3_1;
4113                                    EM_S[INDEX2(3,1,8)]+=tmp2_1 + tmp7_1 + tmp9_1;
4114                                    EM_S[INDEX2(4,1,8)]+=tmp13_1 + tmp3_1 + tmp8_1;
4115                                    EM_S[INDEX2(5,1,8)]+=tmp0_1 + tmp2_1 + tmp4_1;
4116                                    EM_S[INDEX2(6,1,8)]+=tmp12_1 + tmp16_1 + tmp5_1;
4117                                    EM_S[INDEX2(7,1,8)]+=tmp15_1 + tmp1_1 + tmp8_1;
4118                                    EM_S[INDEX2(0,2,8)]+=tmp3_1 + tmp6_1 + tmp7_1;
4119                                  EM_S[INDEX2(1,2,8)]+=tmp10_1 + tmp2_1 + tmp4_1;                                  EM_S[INDEX2(1,2,8)]+=tmp10_1 + tmp2_1 + tmp4_1;
4120                                  EM_S[INDEX2(6,7,8)]+=tmp17_1 + tmp1_1 + tmp8_1;                                  EM_S[INDEX2(2,2,8)]+=tmp14_1 + tmp17_1 + tmp9_1;
4121                                    EM_S[INDEX2(3,2,8)]+=tmp11_1 + tmp1_1 + tmp7_1;
4122                                    EM_S[INDEX2(4,2,8)]+=tmp12_1 + tmp4_1 + tmp8_1;
4123                                    EM_S[INDEX2(5,2,8)]+=tmp13_1 + tmp15_1 + tmp5_1;
4124                                    EM_S[INDEX2(6,2,8)]+=tmp0_1 + tmp1_1 + tmp3_1;
4125                                    EM_S[INDEX2(7,2,8)]+=tmp16_1 + tmp2_1 + tmp8_1;
4126                                    EM_S[INDEX2(0,3,8)]+=tmp10_1 + tmp3_1 + tmp4_1;
4127                                    EM_S[INDEX2(1,3,8)]+=tmp2_1 + tmp6_1 + tmp7_1;
4128                                    EM_S[INDEX2(2,3,8)]+=tmp17_1 + tmp1_1 + tmp7_1;
4129                                  EM_S[INDEX2(3,3,8)]+=tmp11_1 + tmp14_1 + tmp9_1;                                  EM_S[INDEX2(3,3,8)]+=tmp11_1 + tmp14_1 + tmp9_1;
4130                                  EM_S[INDEX2(2,0,8)]+=tmp3_1 + tmp7_1 + tmp9_1;                                  EM_S[INDEX2(4,3,8)]+=tmp12_1 + tmp13_1 + tmp5_1;
4131                                  EM_S[INDEX2(7,6,8)]+=tmp11_1 + tmp1_1 + tmp8_1;                                  EM_S[INDEX2(5,3,8)]+=tmp15_1 + tmp4_1 + tmp8_1;
                                 EM_S[INDEX2(4,4,8)]+=tmp0_1 + tmp17_1 + tmp6_1;  
4132                                  EM_S[INDEX2(6,3,8)]+=tmp16_1 + tmp3_1 + tmp8_1;                                  EM_S[INDEX2(6,3,8)]+=tmp16_1 + tmp3_1 + tmp8_1;
4133                                    EM_S[INDEX2(7,3,8)]+=tmp0_1 + tmp1_1 + tmp2_1;
4134                                    EM_S[INDEX2(0,4,8)]+=tmp14_1 + tmp3_1 + tmp4_1;
4135                                    EM_S[INDEX2(1,4,8)]+=tmp13_1 + tmp2_1 + tmp7_1;
4136                                    EM_S[INDEX2(2,4,8)]+=tmp12_1 + tmp1_1 + tmp7_1;
4137                                    EM_S[INDEX2(3,4,8)]+=tmp10_1 + tmp15_1 + tmp16_1;
4138                                    EM_S[INDEX2(4,4,8)]+=tmp0_1 + tmp17_1 + tmp6_1;
4139                                    EM_S[INDEX2(5,4,8)]+=tmp11_1 + tmp4_1 + tmp8_1;
4140                                    EM_S[INDEX2(6,4,8)]+=tmp3_1 + tmp8_1 + tmp9_1;
4141                                    EM_S[INDEX2(7,4,8)]+=tmp1_1 + tmp2_1 + tmp5_1;
4142                                    EM_S[INDEX2(0,5,8)]+=tmp13_1 + tmp3_1 + tmp7_1;
4143                                  EM_S[INDEX2(1,5,8)]+=tmp14_1 + tmp2_1 + tmp4_1;                                  EM_S[INDEX2(1,5,8)]+=tmp14_1 + tmp2_1 + tmp4_1;
4144                                  EM_S[INDEX2(3,6,8)]+=tmp16_1 + tmp2_1 + tmp7_1;                                  EM_S[INDEX2(2,5,8)]+=tmp10_1 + tmp12_1 + tmp16_1;
4145                                  EM_S[INDEX2(2,2,8)]+=tmp14_1 + tmp17_1 + tmp9_1;                                  EM_S[INDEX2(3,5,8)]+=tmp15_1 + tmp1_1 + tmp7_1;
                                 EM_S[INDEX2(7,7,8)]+=tmp0_1 + tmp11_1 + tmp9_1;  
                                 EM_S[INDEX2(5,7,8)]+=tmp2_1 + tmp6_1 + tmp8_1;  
                                 EM_S[INDEX2(5,3,8)]+=tmp15_1 + tmp4_1 + tmp8_1;  
                                 EM_S[INDEX2(4,1,8)]+=tmp13_1 + tmp3_1 + tmp8_1;  
                                 EM_S[INDEX2(1,1,8)]+=tmp11_1 + tmp14_1 + tmp6_1;  
                                 EM_S[INDEX2(2,7,8)]+=tmp16_1 + tmp3_1 + tmp7_1;  
                                 EM_S[INDEX2(3,2,8)]+=tmp11_1 + tmp1_1 + tmp7_1;  
                                 EM_S[INDEX2(0,0,8)]+=tmp14_1 + tmp17_1 + tmp6_1;  
                                 EM_S[INDEX2(6,6,8)]+=tmp0_1 + tmp17_1 + tmp9_1;  
                                 EM_S[INDEX2(5,0,8)]+=tmp13_1 + tmp2_1 + tmp8_1;  
                                 EM_S[INDEX2(7,1,8)]+=tmp15_1 + tmp1_1 + tmp8_1;  
4146                                  EM_S[INDEX2(4,5,8)]+=tmp17_1 + tmp4_1 + tmp8_1;                                  EM_S[INDEX2(4,5,8)]+=tmp17_1 + tmp4_1 + tmp8_1;
                                 EM_S[INDEX2(0,4,8)]+=tmp14_1 + tmp3_1 + tmp4_1;  
4147                                  EM_S[INDEX2(5,5,8)]+=tmp0_1 + tmp11_1 + tmp6_1;                                  EM_S[INDEX2(5,5,8)]+=tmp0_1 + tmp11_1 + tmp6_1;
                                 EM_S[INDEX2(1,4,8)]+=tmp13_1 + tmp2_1 + tmp7_1;  
                                 EM_S[INDEX2(6,0,8)]+=tmp12_1 + tmp1_1 + tmp8_1;  
                                 EM_S[INDEX2(7,5,8)]+=tmp2_1 + tmp8_1 + tmp9_1;  
                                 EM_S[INDEX2(2,3,8)]+=tmp17_1 + tmp1_1 + tmp7_1;  
                                 EM_S[INDEX2(2,1,8)]+=tmp10_1 + tmp1_1 + tmp3_1;  
                                 EM_S[INDEX2(4,2,8)]+=tmp12_1 + tmp4_1 + tmp8_1;  
                                 EM_S[INDEX2(1,0,8)]+=tmp11_1 + tmp4_1 + tmp7_1;  
4148                                  EM_S[INDEX2(6,5,8)]+=tmp1_1 + tmp3_1 + tmp5_1;                                  EM_S[INDEX2(6,5,8)]+=tmp1_1 + tmp3_1 + tmp5_1;
4149                                  EM_S[INDEX2(3,5,8)]+=tmp15_1 + tmp1_1 + tmp7_1;                                  EM_S[INDEX2(7,5,8)]+=tmp2_1 + tmp8_1 + tmp9_1;
                                 EM_S[INDEX2(0,1,8)]+=tmp17_1 + tmp4_1 + tmp7_1;  
                                 EM_S[INDEX2(7,0,8)]+=tmp15_1 + tmp16_1 + tmp5_1;  
                                 EM_S[INDEX2(4,6,8)]+=tmp3_1 + tmp6_1 + tmp8_1;  
                                 EM_S[INDEX2(5,2,8)]+=tmp13_1 + tmp15_1 + tmp5_1;  
                                 EM_S[INDEX2(6,1,8)]+=tmp12_1 + tmp16_1 + tmp5_1;  
                                 EM_S[INDEX2(3,1,8)]+=tmp2_1 + tmp7_1 + tmp9_1;  
                                 EM_S[INDEX2(0,2,8)]+=tmp3_1 + tmp6_1 + tmp7_1;  
                                 EM_S[INDEX2(7,4,8)]+=tmp1_1 + tmp2_1 + tmp5_1;  
4150                                  EM_S[INDEX2(0,6,8)]+=tmp12_1 + tmp4_1 + tmp7_1;                                  EM_S[INDEX2(0,6,8)]+=tmp12_1 + tmp4_1 + tmp7_1;
4151                                  EM_S[INDEX2(6,2,8)]+=tmp0_1 + tmp1_1 + tmp3_1;                                  EM_S[INDEX2(1,6,8)]+=tmp10_1 + tmp13_1 + tmp15_1;
4152                                  EM_S[INDEX2(4,3,8)]+=tmp12_1 + tmp13_1 + tmp5_1;                                  EM_S[INDEX2(2,6,8)]+=tmp14_1 + tmp1_1 + tmp3_1;
4153                                    EM_S[INDEX2(3,6,8)]+=tmp16_1 + tmp2_1 + tmp7_1;
4154                                    EM_S[INDEX2(4,6,8)]+=tmp3_1 + tmp6_1 + tmp8_1;
4155                                    EM_S[INDEX2(5,6,8)]+=tmp2_1 + tmp4_1 + tmp5_1;
4156                                    EM_S[INDEX2(6,6,8)]+=tmp0_1 + tmp17_1 + tmp9_1;
4157                                    EM_S[INDEX2(7,6,8)]+=tmp11_1 + tmp1_1 + tmp8_1;
4158                                    EM_S[INDEX2(0,7,8)]+=tmp10_1 + tmp12_1 + tmp13_1;
4159                                  EM_S[INDEX2(1,7,8)]+=tmp15_1 + tmp4_1 + tmp7_1;                                  EM_S[INDEX2(1,7,8)]+=tmp15_1 + tmp4_1 + tmp7_1;
4160                                  EM_S[INDEX2(0,5,8)]+=tmp13_1 + tmp3_1 + tmp7_1;                                  EM_S[INDEX2(2,7,8)]+=tmp16_1 + tmp3_1 + tmp7_1;
4161                                  EM_S[INDEX2(3,4,8)]+=tmp10_1 + tmp15_1 + tmp16_1;                                  EM_S[INDEX2(3,7,8)]+=tmp14_1 + tmp1_1 + tmp2_1;
4162                                  EM_S[INDEX2(2,4,8)]+=tmp12_1 + tmp1_1 + tmp7_1;                                  EM_S[INDEX2(4,7,8)]+=tmp3_1 + tmp4_1 + tmp5_1;
4163                                    EM_S[INDEX2(5,7,8)]+=tmp2_1 + tmp6_1 + tmp8_1;
4164                                    EM_S[INDEX2(6,7,8)]+=tmp17_1 + tmp1_1 + tmp8_1;
4165                                    EM_S[INDEX2(7,7,8)]+=tmp0_1 + tmp11_1 + tmp9_1;
4166                              }                              }
4167                          }                          }
4168                          ///////////////                          ///////////////
# Line 4689  void Brick::assemblePDESingle(Paso_Syste Line 4694  void Brick::assemblePDESingle(Paso_Syste
4694                                  const double tmp410_1 = C_0_7*w104;                                  const double tmp410_1 = C_0_7*w104;
4695                                  const double tmp268_1 = tmp21_0*w103;                                  const double tmp268_1 = tmp21_0*w103;
4696                                  const double tmp305_1 = C_2_1*w123;                                  const double tmp305_1 = C_2_1*w123;
4697                                  EM_S[INDEX2(7,3,8)]+=tmp0_1 + tmp10_1 + tmp11_1 + tmp12_1 + tmp13_1 + tmp1_1 + tmp2_1 + tmp3_1 + tmp4_1 + tmp5_1 + tmp6_1 + tmp7_1 + tmp8_1 + tmp9_1;                                  EM_S[INDEX2(0,0,8)]+=tmp175_1 + tmp178_1 + tmp324_1 + tmp325_1 + tmp326_1 + tmp327_1 + tmp328_1 + tmp329_1 + tmp330_1 + tmp331_1 + tmp332_1 + tmp333_1 + tmp334_1 + tmp335_1 + tmp336_1 + tmp337_1 + tmp338_1 + tmp339_1;
4698                                  EM_S[INDEX2(4,7,8)]+=tmp14_1 + tmp15_1 + tmp16_1 + tmp17_1 + tmp18_1 + tmp19_1 + tmp20_1 + tmp21_1 + tmp22_1 + tmp23_1;                                  EM_S[INDEX2(1,0,8)]+=tmp200_1 + tmp201_1 + tmp410_1 + tmp411_1 + tmp412_1 + tmp413_1 + tmp414_1 + tmp415_1 + tmp416_1 + tmp417_1 + tmp418_1 + tmp419_1 + tmp420_1 + tmp421_1;
4699                                  EM_S[INDEX2(1,3,8)]+=tmp24_1 + tmp25_1 + tmp26_1 + tmp27_1 + tmp28_1 + tmp29_1 + tmp30_1 + tmp31_1 + tmp32_1 + tmp33_1 + tmp34_1 + tmp35_1 + tmp36_1 + tmp37_1;                                  EM_S[INDEX2(2,0,8)]+=tmp186_1 + tmp187_1 + tmp188_1 + tmp189_1 + tmp190_1 + tmp191_1 + tmp192_1 + tmp193_1 + tmp194_1 + tmp195_1 + tmp196_1 + tmp197_1 + tmp198_1 + tmp199_1;
                                 EM_S[INDEX2(6,4,8)]+=tmp38_1 + tmp39_1 + tmp40_1 + tmp41_1 + tmp42_1 + tmp43_1 + tmp44_1 + tmp45_1 + tmp46_1 + tmp47_1 + tmp48_1 + tmp49_1 + tmp50_1 + tmp51_1;  
4700                                  EM_S[INDEX2(3,0,8)]+=tmp52_1 + tmp53_1 + tmp54_1 + tmp55_1 + tmp56_1 + tmp57_1 + tmp58_1 + tmp59_1 + tmp60_1 + tmp61_1;                                  EM_S[INDEX2(3,0,8)]+=tmp52_1 + tmp53_1 + tmp54_1 + tmp55_1 + tmp56_1 + tmp57_1 + tmp58_1 + tmp59_1 + tmp60_1 + tmp61_1;
                                 EM_S[INDEX2(5,4,8)]+=tmp62_1 + tmp63_1 + tmp64_1 + tmp65_1 + tmp66_1 + tmp67_1 + tmp68_1 + tmp69_1 + tmp70_1 + tmp71_1 + tmp72_1 + tmp73_1 + tmp74_1 + tmp75_1;  
                                 EM_S[INDEX2(0,7,8)]+=tmp76_1 + tmp77_1 + tmp78_1 + tmp79_1 + tmp80_1 + tmp81_1;  
                                 EM_S[INDEX2(5,6,8)]+=tmp16_1 + tmp17_1 + tmp19_1 + tmp20_1 + tmp22_1 + tmp23_1 + tmp82_1 + tmp83_1 + tmp84_1 + tmp85_1;  
                                 EM_S[INDEX2(2,6,8)]+=tmp86_1 + tmp87_1 + tmp88_1 + tmp89_1 + tmp90_1 + tmp91_1 + tmp92_1 + tmp93_1 + tmp94_1 + tmp95_1 + tmp96_1 + tmp97_1 + tmp98_1 + tmp99_1;  
                                 EM_S[INDEX2(1,6,8)]+=tmp100_1 + tmp101_1 + tmp78_1 + tmp79_1 + tmp80_1 + tmp81_1;  
                                 EM_S[INDEX2(5,1,8)]+=tmp102_1 + tmp103_1 + tmp104_1 + tmp105_1 + tmp106_1 + tmp107_1 + tmp108_1 + tmp109_1 + tmp110_1 + tmp111_1 + tmp112_1 + tmp113_1 + tmp114_1 + tmp115_1;  
                                 EM_S[INDEX2(3,7,8)]+=tmp0_1 + tmp10_1 + tmp116_1 + tmp117_1 + tmp118_1 + tmp119_1 + tmp120_1 + tmp121_1 + tmp12_1 + tmp13_1 + tmp1_1 + tmp3_1 + tmp7_1 + tmp8_1;  
                                 EM_S[INDEX2(2,5,8)]+=tmp122_1 + tmp123_1 + tmp76_1 + tmp77_1 + tmp78_1 + tmp81_1;  
                                 EM_S[INDEX2(0,3,8)]+=tmp124_1 + tmp125_1 + tmp126_1 + tmp127_1 + tmp128_1 + tmp129_1 + tmp130_1 + tmp131_1 + tmp58_1 + tmp59_1;  
                                 EM_S[INDEX2(7,2,8)]+=tmp132_1 + tmp133_1 + tmp134_1 + tmp135_1 + tmp136_1 + tmp137_1 + tmp138_1 + tmp139_1 + tmp140_1 + tmp141_1;  
4701                                  EM_S[INDEX2(4,0,8)]+=tmp142_1 + tmp143_1 + tmp144_1 + tmp145_1 + tmp146_1 + tmp147_1 + tmp148_1 + tmp149_1 + tmp150_1 + tmp151_1 + tmp152_1 + tmp153_1 + tmp6_1 + tmp9_1;                                  EM_S[INDEX2(4,0,8)]+=tmp142_1 + tmp143_1 + tmp144_1 + tmp145_1 + tmp146_1 + tmp147_1 + tmp148_1 + tmp149_1 + tmp150_1 + tmp151_1 + tmp152_1 + tmp153_1 + tmp6_1 + tmp9_1;
4702                                    EM_S[INDEX2(5,0,8)]+=tmp292_1 + tmp293_1 + tmp294_1 + tmp295_1 + tmp297_1 + tmp298_1 + tmp354_1 + tmp355_1 + tmp356_1 + tmp357_1;
4703                                    EM_S[INDEX2(6,0,8)]+=tmp388_1 + tmp389_1 + tmp390_1 + tmp391_1 + tmp392_1 + tmp393_1 + tmp394_1 + tmp395_1 + tmp396_1 + tmp397_1;
4704                                    EM_S[INDEX2(7,0,8)]+=tmp100_1 + tmp101_1 + tmp122_1 + tmp123_1 + tmp434_1 + tmp435_1;
4705                                    EM_S[INDEX2(0,1,8)]+=tmp154_1 + tmp156_1 + tmp412_1 + tmp413_1 + tmp414_1 + tmp415_1 + tmp416_1 + tmp418_1 + tmp419_1 + tmp421_1 + tmp430_1 + tmp431_1 + tmp432_1 + tmp433_1;
4706                                    EM_S[INDEX2(1,1,8)]+=tmp211_1 + tmp212_1 + tmp244_1 + tmp246_1 + tmp252_1 + tmp254_1 + tmp300_1 + tmp301_1 + tmp302_1 + tmp303_1 + tmp304_1 + tmp305_1 + tmp306_1 + tmp307_1 + tmp308_1 + tmp309_1 + tmp310_1 + tmp311_1;
4707                                    EM_S[INDEX2(2,1,8)]+=tmp124_1 + tmp125_1 + tmp127_1 + tmp130_1 + tmp56_1 + tmp57_1 + tmp58_1 + tmp59_1 + tmp60_1 + tmp61_1;
4708                                    EM_S[INDEX2(3,1,8)]+=tmp24_1 + tmp25_1 + tmp27_1 + tmp28_1 + tmp29_1 + tmp31_1 + tmp34_1 + tmp35_1 + tmp43_1 + tmp440_1 + tmp441_1 + tmp442_1 + tmp443_1 + tmp44_1;
4709                                    EM_S[INDEX2(4,1,8)]+=tmp290_1 + tmp291_1 + tmp292_1 + tmp293_1 + tmp294_1 + tmp295_1 + tmp296_1 + tmp297_1 + tmp298_1 + tmp299_1;
4710                                    EM_S[INDEX2(5,1,8)]+=tmp102_1 + tmp103_1 + tmp104_1 + tmp105_1 + tmp106_1 + tmp107_1 + tmp108_1 + tmp109_1 + tmp110_1 + tmp111_1 + tmp112_1 + tmp113_1 + tmp114_1 + tmp115_1;
4711                                    EM_S[INDEX2(6,1,8)]+=tmp122_1 + tmp123_1 + tmp434_1 + tmp435_1 + tmp76_1 + tmp77_1;
4712                                    EM_S[INDEX2(7,1,8)]+=tmp280_1 + tmp281_1 + tmp283_1 + tmp284_1 + tmp286_1 + tmp288_1 + tmp358_1 + tmp359_1 + tmp360_1 + tmp361_1;
4713                                    EM_S[INDEX2(0,2,8)]+=tmp186_1 + tmp187_1 + tmp188_1 + tmp189_1 + tmp192_1 + tmp194_1 + tmp195_1 + tmp197_1 + tmp274_1 + tmp277_1 + tmp444_1 + tmp445_1 + tmp446_1 + tmp447_1;
4714                                  EM_S[INDEX2(1,2,8)]+=tmp126_1 + tmp128_1 + tmp129_1 + tmp131_1 + tmp52_1 + tmp53_1 + tmp54_1 + tmp55_1 + tmp58_1 + tmp59_1;                                  EM_S[INDEX2(1,2,8)]+=tmp126_1 + tmp128_1 + tmp129_1 + tmp131_1 + tmp52_1 + tmp53_1 + tmp54_1 + tmp55_1 + tmp58_1 + tmp59_1;
4715                                  EM_S[INDEX2(6,7,8)]+=tmp154_1 + tmp155_1 + tmp156_1 + tmp157_1 + tmp158_1 + tmp159_1 + tmp160_1 + tmp161_1 + tmp162_1 + tmp163_1 + tmp164_1 + tmp165_1 + tmp166_1 + tmp167_1;                                  EM_S[INDEX2(2,2,8)]+=tmp206_1 + tmp207_1 + tmp236_1 + tmp237_1 + tmp238_1 + tmp239_1 + tmp240_1 + tmp241_1 + tmp242_1 + tmp243_1 + tmp244_1 + tmp245_1 + tmp246_1 + tmp247_1 + tmp248_1 + tmp249_1 + tmp250_1 + tmp251_1;
4716                                    EM_S[INDEX2(3,2,8)]+=tmp312_1 + tmp313_1 + tmp314_1 + tmp315_1 + tmp316_1 + tmp317_1 + tmp318_1 + tmp319_1 + tmp320_1 + tmp321_1 + tmp322_1 + tmp323_1 + tmp62_1 + tmp63_1;
4717                                    EM_S[INDEX2(4,2,8)]+=tmp388_1 + tmp389_1 + tmp392_1 + tmp393_1 + tmp394_1 + tmp395_1 + tmp406_1 + tmp407_1 + tmp408_1 + tmp409_1;
4718                                    EM_S[INDEX2(5,2,8)]+=tmp100_1 + tmp101_1 + tmp434_1 + tmp435_1 + tmp79_1 + tmp80_1;
4719                                    EM_S[INDEX2(6,2,8)]+=tmp109_1 + tmp111_1 + tmp452_1 + tmp453_1 + tmp454_1 + tmp455_1 + tmp86_1 + tmp87_1 + tmp88_1 + tmp90_1 + tmp93_1 + tmp94_1 + tmp96_1 + tmp97_1;
4720                                    EM_S[INDEX2(7,2,8)]+=tmp132_1 + tmp133_1 + tmp134_1 + tmp135_1 + tmp136_1 + tmp137_1 + tmp138_1 + tmp139_1 + tmp140_1 + tmp141_1;
4721                                    EM_S[INDEX2(0,3,8)]+=tmp124_1 + tmp125_1 + tmp126_1 + tmp127_1 + tmp128_1 + tmp129_1 + tmp130_1 + tmp131_1 + tmp58_1 + tmp59_1;
4722                                    EM_S[INDEX2(1,3,8)]+=tmp24_1 + tmp25_1 + tmp26_1 + tmp27_1 + tmp28_1 + tmp29_1 + tmp30_1 + tmp31_1 + tmp32_1 + tmp33_1 + tmp34_1 + tmp35_1 + tmp36_1 + tmp37_1;
4723                                    EM_S[INDEX2(2,3,8)]+=tmp312_1 + tmp314_1 + tmp315_1 + tmp317_1 + tmp318_1 + tmp319_1 + tmp321_1 + tmp322_1 + tmp362_1 + tmp364_1 + tmp402_1 + tmp403_1 + tmp404_1 + tmp405_1;
4724                                  EM_S[INDEX2(3,3,8)]+=tmp168_1 + tmp169_1 + tmp170_1 + tmp171_1 + tmp172_1 + tmp173_1 + tmp174_1 + tmp175_1 + tmp176_1 + tmp177_1 + tmp178_1 + tmp179_1 + tmp180_1 + tmp181_1 + tmp182_1 + tmp183_1 + tmp184_1 + tmp185_1;                                  EM_S[INDEX2(3,3,8)]+=tmp168_1 + tmp169_1 + tmp170_1 + tmp171_1 + tmp172_1 + tmp173_1 + tmp174_1 + tmp175_1 + tmp176_1 + tmp177_1 + tmp178_1 + tmp179_1 + tmp180_1 + tmp181_1 + tmp182_1 + tmp183_1 + tmp184_1 + tmp185_1;
4725                                  EM_S[INDEX2(2,0,8)]+=tmp186_1 + tmp187_1 + tmp188_1 + tmp189_1 + tmp190_1 + tmp191_1 + tmp192_1 + tmp193_1 + tmp194_1 + tmp195_1 + tmp196_1 + tmp197_1 + tmp198_1 + tmp199_1;                                  EM_S[INDEX2(4,3,8)]+=tmp434_1 + tmp435_1 + tmp76_1 + tmp77_1 + tmp79_1 + tmp80_1;
4726                                  EM_S[INDEX2(7,6,8)]+=tmp157_1 + tmp158_1 + tmp159_1 + tmp160_1 + tmp162_1 + tmp163_1 + tmp166_1 + tmp167_1 + tmp200_1 + tmp201_1 + tmp202_1 + tmp203_1 + tmp204_1 + tmp205_1;                                  EM_S[INDEX2(5,3,8)]+=tmp280_1 + tmp281_1 + tmp282_1 + tmp283_1 + tmp284_1 + tmp285_1 + tmp286_1 + tmp287_1 + tmp288_1 + tmp289_1;
                                 EM_S[INDEX2(4,4,8)]+=tmp206_1 + tmp207_1 + tmp208_1 + tmp209_1 + tmp210_1 + tmp211_1 + tmp212_1 + tmp213_1 + tmp214_1 + tmp215_1 + tmp216_1 + tmp217_1 + tmp218_1 + tmp219_1 + tmp220_1 + tmp221_1 + tmp222_1 + tmp223_1;  
4727                                  EM_S[INDEX2(6,3,8)]+=tmp132_1 + tmp136_1 + tmp138_1 + tmp139_1 + tmp140_1 + tmp141_1 + tmp224_1 + tmp225_1 + tmp226_1 + tmp227_1;                                  EM_S[INDEX2(6,3,8)]+=tmp132_1 + tmp136_1 + tmp138_1 + tmp139_1 + tmp140_1 + tmp141_1 + tmp224_1 + tmp225_1 + tmp226_1 + tmp227_1;
4728                                    EM_S[INDEX2(7,3,8)]+=tmp0_1 + tmp10_1 + tmp11_1 + tmp12_1 + tmp13_1 + tmp1_1 + tmp2_1 + tmp3_1 + tmp4_1 + tmp5_1 + tmp6_1 + tmp7_1 + tmp8_1 + tmp9_1;
4729                                    EM_S[INDEX2(0,4,8)]+=tmp119_1 + tmp121_1 + tmp142_1 + tmp143_1 + tmp144_1 + tmp146_1 + tmp147_1 + tmp150_1 + tmp151_1 + tmp153_1 + tmp368_1 + tmp369_1 + tmp370_1 + tmp371_1;
4730                                    EM_S[INDEX2(1,4,8)]+=tmp292_1 + tmp293_1 + tmp354_1 + tmp355_1 + tmp356_1 + tmp357_1 + tmp384_1 + tmp385_1 + tmp386_1 + tmp387_1;
4731                                    EM_S[INDEX2(2,4,8)]+=tmp388_1 + tmp389_1 + tmp390_1 + tmp391_1 + tmp396_1 + tmp397_1 + tmp448_1 + tmp449_1 + tmp450_1 + tmp451_1;
4732                                    EM_S[INDEX2(3,4,8)]+=tmp100_1 + tmp101_1 + tmp122_1 + tmp123_1 + tmp78_1 + tmp81_1;
4733                                    EM_S[INDEX2(4,4,8)]+=tmp206_1 + tmp207_1 + tmp208_1 + tmp209_1 + tmp210_1 + tmp211_1 + tmp212_1 + tmp213_1 + tmp214_1 + tmp215_1 + tmp216_1 + tmp217_1 + tmp218_1 + tmp219_1 + tmp220_1 + tmp221_1 + tmp222_1 + tmp223_1;
4734                                    EM_S[INDEX2(5,4,8)]+=tmp62_1 + tmp63_1 + tmp64_1 + tmp65_1 + tmp66_1 + tmp67_1 + tmp68_1 + tmp69_1 + tmp70_1 + tmp71_1 + tmp72_1 + tmp73_1 + tmp74_1 + tmp75_1;
4735                                    EM_S[INDEX2(6,4,8)]+=tmp38_1 + tmp39_1 + tmp40_1 + tmp41_1 + tmp42_1 + tmp43_1 + tmp44_1 + tmp45_1 + tmp46_1 + tmp47_1 + tmp48_1 + tmp49_1 + tmp50_1 + tmp51_1;
4736                                    EM_S[INDEX2(7,4,8)]+=tmp17_1 + tmp23_1 + tmp422_1 + tmp423_1 + tmp424_1 + tmp425_1 + tmp82_1 + tmp83_1 + tmp84_1 + tmp85_1;
4737                                    EM_S[INDEX2(0,5,8)]+=tmp290_1 + tmp291_1 + tmp292_1 + tmp293_1 + tmp296_1 + tmp299_1 + tmp384_1 + tmp385_1 + tmp386_1 + tmp387_1;
4738                                  EM_S[INDEX2(1,5,8)]+=tmp102_1 + tmp103_1 + tmp105_1 + tmp106_1 + tmp110_1 + tmp112_1 + tmp113_1 + tmp115_1 + tmp228_1 + tmp229_1 + tmp230_1 + tmp231_1 + tmp92_1 + tmp98_1;                                  EM_S[INDEX2(1,5,8)]+=tmp102_1 + tmp103_1 + tmp105_1 + tmp106_1 + tmp110_1 + tmp112_1 + tmp113_1 + tmp115_1 + tmp228_1 + tmp229_1 + tmp230_1 + tmp231_1 + tmp92_1 + tmp98_1;
4739                                  EM_S[INDEX2(3,6,8)]+=tmp133_1 + tmp134_1 + tmp135_1 + tmp137_1 + tmp139_1 + tmp141_1 + tmp232_1 + tmp233_1 + tmp234_1 + tmp235_1;                                  EM_S[INDEX2(2,5,8)]+=tmp122_1 + tmp123_1 + tmp76_1 + tmp77_1 + tmp78_1 + tmp81_1;
4740                                  EM_S[INDEX2(2,2,8)]+=tmp206_1 + tmp207_1 + tmp236_1 + tmp237_1 + tmp238_1 + tmp239_1 + tmp240_1 + tmp241_1 + tmp242_1 + tmp243_1 + tmp244_1 + tmp245_1 + tmp246_1 + tmp247_1 + tmp248_1 + tmp249_1 + tmp250_1 + tmp251_1;                                  EM_S[INDEX2(3,5,8)]+=tmp280_1 + tmp281_1 + tmp358_1 + tmp359_1 + tmp360_1 + tmp361_1 + tmp426_1 + tmp427_1 + tmp428_1 + tmp429_1;
                                 EM_S[INDEX2(7,7,8)]+=tmp215_1 + tmp222_1 + tmp247_1 + tmp250_1 + tmp252_1 + tmp253_1 + tmp254_1 + tmp255_1 + tmp256_1 + tmp257_1 + tmp258_1 + tmp259_1 + tmp260_1 + tmp261_1 + tmp262_1 + tmp263_1 + tmp264_1 + tmp265_1;  
                                 EM_S[INDEX2(5,7,8)]+=tmp266_1 + tmp267_1 + tmp268_1 + tmp269_1 + tmp270_1 + tmp271_1 + tmp272_1 + tmp273_1 + tmp274_1 + tmp275_1 + tmp276_1 + tmp277_1 + tmp278_1 + tmp279_1;  
                                 EM_S[INDEX2(5,3,8)]+=tmp280_1 + tmp281_1 + tmp282_1 + tmp283_1 + tmp284_1 + tmp285_1 + tmp286_1 + tmp287_1 + tmp288_1 + tmp289_1;  
                                 EM_S[INDEX2(4,1,8)]+=tmp290_1 + tmp291_1 + tmp292_1 + tmp293_1 + tmp294_1 + tmp295_1 + tmp296_1 + tmp297_1 + tmp298_1 + tmp299_1;  
                                 EM_S[INDEX2(1,1,8)]+=tmp211_1 + tmp212_1 + tmp244_1 + tmp246_1 + tmp252_1 + tmp254_1 + tmp300_1 + tmp301_1 + tmp302_1 + tmp303_1 + tmp304_1 + tmp305_1 + tmp306_1 + tmp307_1 + tmp308_1 + tmp309_1 + tmp310_1 + tmp311_1;  
                                 EM_S[INDEX2(2,7,8)]+=tmp139_1 + tmp141_1 + tmp224_1 + tmp225_1 + tmp226_1 + tmp227_1 + tmp232_1 + tmp233_1 + tmp234_1 + tmp235_1;  
                                 EM_S[INDEX2(3,2,8)]+=tmp312_1 + tmp313_1 + tmp314_1 + tmp315_1 + tmp316_1 + tmp317_1 + tmp318_1 + tmp319_1 + tmp320_1 + tmp321_1 + tmp322_1 + tmp323_1 + tmp62_1 + tmp63_1;  
                                 EM_S[INDEX2(0,0,8)]+=tmp175_1 + tmp178_1 + tmp324_1 + tmp325_1 + tmp326_1 + tmp327_1 + tmp328_1 + tmp329_1 + tmp330_1 + tmp331_1 + tmp332_1 + tmp333_1 + tmp334_1 + tmp335_1 + tmp336_1 + tmp337_1 + tmp338_1 + tmp339_1;  
                                 EM_S[INDEX2(6,6,8)]+=tmp179_1 + tmp184_1 + tmp325_1 + tmp326_1 + tmp340_1 + tmp341_1 + tmp342_1 + tmp343_1 + tmp344_1 + tmp345_1 + tmp346_1 + tmp347_1 + tmp348_1 + tmp349_1 + tmp350_1 + tmp351_1 + tmp352_1 + tmp353_1;  
                                 EM_S[INDEX2(5,0,8)]+=tmp292_1 + tmp293_1 + tmp294_1 + tmp295_1 + tmp297_1 + tmp298_1 + tmp354_1 + tmp355_1 + tmp356_1 + tmp357_1;  
                                 EM_S[INDEX2(7,1,8)]+=tmp280_1 + tmp281_1 + tmp283_1 + tmp284_1 + tmp286_1 + tmp288_1 + tmp358_1 + tmp359_1 + tmp360_1 + tmp361_1;  
4741                                  EM_S[INDEX2(4,5,8)]+=tmp362_1 + tmp363_1 + tmp364_1 + tmp365_1 + tmp366_1 + tmp367_1 + tmp65_1 + tmp66_1 + tmp67_1 + tmp68_1 + tmp70_1 + tmp72_1 + tmp74_1 + tmp75_1;                                  EM_S[INDEX2(4,5,8)]+=tmp362_1 + tmp363_1 + tmp364_1 + tmp365_1 + tmp366_1 + tmp367_1 + tmp65_1 + tmp66_1 + tmp67_1 + tmp68_1 + tmp70_1 + tmp72_1 + tmp74_1 + tmp75_1;
                                 EM_S[INDEX2(0,4,8)]+=tmp119_1 + tmp121_1 + tmp142_1 + tmp143_1 + tmp144_1 + tmp146_1 + tmp147_1 + tmp150_1 + tmp151_1 + tmp153_1 + tmp368_1 + tmp369_1 + tmp370_1 + tmp371_1;  
4742                                  EM_S[INDEX2(5,5,8)]+=tmp168_1 + tmp170_1 + tmp330_1 + tmp335_1 + tmp345_1 + tmp352_1 + tmp372_1 + tmp373_1 + tmp374_1 + tmp375_1 + tmp376_1 + tmp377_1 + tmp378_1 + tmp379_1 + tmp380_1 + tmp381_1 + tmp382_1 + tmp383_1;                                  EM_S[INDEX2(5,5,8)]+=tmp168_1 + tmp170_1 + tmp330_1 + tmp335_1 + tmp345_1 + tmp352_1 + tmp372_1 + tmp373_1 + tmp374_1 + tmp375_1 + tmp376_1 + tmp377_1 + tmp378_1 + tmp379_1 + tmp380_1 + tmp381_1 + tmp382_1 + tmp383_1;
                                 EM_S[INDEX2(1,4,8)]+=tmp292_1 + tmp293_1 + tmp354_1 + tmp355_1 + tmp356_1 + tmp357_1 + tmp384_1 + tmp385_1 + tmp386_1 + tmp387_1;  
                                 EM_S[INDEX2(6,0,8)]+=tmp388_1 + tmp389_1 + tmp390_1 + tmp391_1 + tmp392_1 + tmp393_1 + tmp394_1 + tmp395_1 + tmp396_1 + tmp397_1;  
                                 EM_S[INDEX2(7,5,8)]+=tmp190_1 + tmp191_1 + tmp266_1 + tmp267_1 + tmp268_1 + tmp269_1 + tmp271_1 + tmp272_1 + tmp276_1 + tmp279_1 + tmp398_1 + tmp399_1 + tmp400_1 + tmp401_1;  
                                 EM_S[INDEX2(2,3,8)]+=tmp312_1 + tmp314_1 + tmp315_1 + tmp317_1 + tmp318_1 + tmp319_1 + tmp321_1 + tmp322_1 + tmp362_1 + tmp364_1 + tmp402_1 + tmp403_1 + tmp404_1 + tmp405_1;  
                                 EM_S[INDEX2(2,1,8)]+=tmp124_1 + tmp125_1 + tmp127_1 + tmp130_1 + tmp56_1 + tmp57_1 + tmp58_1 + tmp59_1 + tmp60_1 + tmp61_1;  
                                 EM_S[INDEX2(4,2,8)]+=tmp388_1 + tmp389_1 + tmp392_1 + tmp393_1 + tmp394_1 + tmp395_1 + tmp406_1 + tmp407_1 + tmp408_1 + tmp409_1;  
                                 EM_S[INDEX2(1,0,8)]+=tmp200_1 + tmp201_1 + tmp410_1 + tmp411_1 + tmp412_1 + tmp413_1 + tmp414_1 + tmp415_1 + tmp416_1 + tmp417_1 + tmp418_1 + tmp419_1 + tmp420_1 + tmp421_1;  
4743                                  EM_S[INDEX2(6,5,8)]+=tmp14_1 + tmp15_1 + tmp17_1 + tmp18_1 + tmp21_1 + tmp23_1 + tmp422_1 + tmp423_1 + tmp424_1 + tmp425_1;                                  EM_S[INDEX2(6,5,8)]+=tmp14_1 + tmp15_1 + tmp17_1 + tmp18_1 + tmp21_1 + tmp23_1 + tmp422_1 + tmp423_1 + tmp424_1 + tmp425_1;
4744                                  EM_S[INDEX2(3,5,8)]+=tmp280_1 + tmp281_1 + tmp358_1 + tmp359_1 + tmp360_1 + tmp361_1 + tmp426_1 + tmp427_1 + tmp428_1 + tmp429_1;                                  EM_S[INDEX2(7,5,8)]+=tmp190_1 + tmp191_1 + tmp266_1 + tmp267_1 + tmp268_1 + tmp269_1 + tmp271_1 + tmp272_1 + tmp276_1 + tmp279_1 + tmp398_1 + tmp399_1 + tmp400_1 + tmp401_1;
                                 EM_S[INDEX2(0,1,8)]+=tmp154_1 + tmp156_1 + tmp412_1 + tmp413_1 + tmp414_1 + tmp415_1 + tmp416_1 + tmp418_1 + tmp419_1 + tmp421_1 + tmp430_1 + tmp431_1 + tmp432_1 + tmp433_1;  
                                 EM_S[INDEX2(7,0,8)]+=tmp100_1 + tmp101_1 + tmp122_1 + tmp123_1 + tmp434_1 + tmp435_1;  
                                 EM_S[INDEX2(4,6,8)]+=tmp32_1 + tmp36_1 + tmp38_1 + tmp39_1 + tmp40_1 + tmp42_1 + tmp436_1 + tmp437_1 + tmp438_1 + tmp439_1 + tmp46_1 + tmp47_1 + tmp48_1 + tmp51_1;  
                                 EM_S[INDEX2(5,2,8)]+=tmp100_1 + tmp101_1 + tmp434_1 + tmp435_1 + tmp79_1 + tmp80_1;  
                                 EM_S[INDEX2(6,1,8)]+=tmp122_1 + tmp123_1 + tmp434_1 + tmp435_1 + tmp76_1 + tmp77_1;  
                                 EM_S[INDEX2(3,1,8)]+=tmp24_1 + tmp25_1 + tmp27_1 + tmp28_1 + tmp29_1 + tmp31_1 + tmp34_1 + tmp35_1 + tmp43_1 + tmp440_1 + tmp441_1 + tmp442_1 + tmp443_1 + tmp44_1;  
                                 EM_S[INDEX2(0,2,8)]+=tmp186_1 + tmp187_1 + tmp188_1 + tmp189_1 + tmp192_1 + tmp194_1 + tmp195_1 + tmp197_1 + tmp274_1 + tmp277_1 + tmp444_1 + tmp445_1 + tmp446_1 + tmp447_1;  
                                 EM_S[INDEX2(7,4,8)]+=tmp17_1 + tmp23_1 + tmp422_1 + tmp423_1 + tmp424_1 + tmp425_1 + tmp82_1 + tmp83_1 + tmp84_1 + tmp85_1;  
4745                                  EM_S[INDEX2(0,6,8)]+=tmp388_1 + tmp389_1 + tmp406_1 + tmp407_1 + tmp408_1 + tmp409_1 + tmp448_1 + tmp449_1 + tmp450_1 + tmp451_1;                                  EM_S[INDEX2(0,6,8)]+=tmp388_1 + tmp389_1 + tmp406_1 + tmp407_1 + tmp408_1 + tmp409_1 + tmp448_1 + tmp449_1 + tmp450_1 + tmp451_1;
4746                                  EM_S[INDEX2(6,2,8)]+=tmp109_1 + tmp111_1 + tmp452_1 + tmp453_1 + tmp454_1 + tmp455_1 + tmp86_1 + tmp87_1 + tmp88_1 + tmp90_1 + tmp93_1 + tmp94_1 + tmp96_1 + tmp97_1;                                  EM_S[INDEX2(1,6,8)]+=tmp100_1 + tmp101_1 + tmp78_1 + tmp79_1 + tmp80_1 + tmp81_1;
4747                                  EM_S[INDEX2(4,3,8)]+=tmp434_1 + tmp435_1 + tmp76_1 + tmp77_1 + tmp79_1 + tmp80_1;                                  EM_S[INDEX2(2,6,8)]+=tmp86_1 + tmp87_1 + tmp88_1 + tmp89_1 + tmp90_1 + tmp91_1 + tmp92_1 + tmp93_1 + tmp94_1 + tmp95_1 + tmp96_1 + tmp97_1 + tmp98_1 + tmp99_1;
4748                                    EM_S[INDEX2(3,6,8)]+=tmp133_1 + tmp134_1 + tmp135_1 + tmp137_1 + tmp139_1 + tmp141_1 + tmp232_1 + tmp233_1 + tmp234_1 + tmp235_1;
4749                                    EM_S[INDEX2(4,6,8)]+=tmp32_1 + tmp36_1 + tmp38_1 + tmp39_1 + tmp40_1 + tmp42_1 + tmp436_1 + tmp437_1 + tmp438_1 + tmp439_1 + tmp46_1 + tmp47_1 + tmp48_1 + tmp51_1;
4750                                    EM_S[INDEX2(5,6,8)]+=tmp16_1 + tmp17_1 + tmp19_1 + tmp20_1 + tmp22_1 + tmp23_1 + tmp82_1 + tmp83_1 + tmp84_1 + tmp85_1;
4751                                    EM_S[INDEX2(6,6,8)]+=tmp179_1 + tmp184_1 + tmp325_1 + tmp326_1 + tmp340_1 + tmp341_1 + tmp342_1 + tmp343_1 + tmp344_1 + tmp345_1 + tmp346_1 + tmp347_1 + tmp348_1 + tmp349_1 + tmp350_1 + tmp351_1 + tmp352_1 + tmp353_1;
4752                                    EM_S[INDEX2(7,6,8)]+=tmp157_1 + tmp158_1 + tmp159_1 + tmp160_1 + tmp162_1 + tmp163_1 + tmp166_1 + tmp167_1 + tmp200_1 + tmp201_1 + tmp202_1 + tmp203_1 + tmp204_1 + tmp205_1;
4753                                    EM_S[INDEX2(0,7,8)]+=tmp76_1 + tmp77_1 + tmp78_1 + tmp79_1 + tmp80_1 + tmp81_1;
4754                                  EM_S[INDEX2(1,7,8)]+=tmp280_1 + tmp281_1 + tmp282_1 + tmp285_1 + tmp287_1 + tmp289_1 + tmp426_1 + tmp427_1 + tmp428_1 + tmp429_1;                                  EM_S[INDEX2(1,7,8)]+=tmp280_1 + tmp281_1 + tmp282_1 + tmp285_1 + tmp287_1 + tmp289_1 + tmp426_1 + tmp427_1 + tmp428_1 + tmp429_1;
4755                                  EM_S[INDEX2(0,5,8)]+=tmp290_1 + tmp291_1 + tmp292_1 + tmp293_1 + tmp296_1 + tmp299_1 + tmp384_1 + tmp385_1 + tmp386_1 + tmp387_1;                                  EM_S[INDEX2(2,7,8)]+=tmp139_1 + tmp141_1 + tmp224_1 + tmp225_1 + tmp226_1 + tmp227_1 + tmp232_1 + tmp233_1 + tmp234_1 + tmp235_1;
4756                                  EM_S[INDEX2(3,4,8)]+=tmp100_1 + tmp101_1 + tmp122_1 + tmp123_1 + tmp78_1 + tmp81_1;                                  EM_S[INDEX2(3,7,8)]+=tmp0_1 + tmp10_1 + tmp116_1 + tmp117_1 + tmp118_1 + tmp119_1 + tmp120_1 + tmp121_1 + tmp12_1 + tmp13_1 + tmp1_1 + tmp3_1 + tmp7_1 + tmp8_1;
4757                                  EM_S[INDEX2(2,4,8)]+=tmp388_1 + tmp389_1 + tmp390_1 + tmp391_1 + tmp396_1 + tmp397_1 + tmp448_1 + tmp449_1 + tmp450_1 + tmp451_1;                                  EM_S[INDEX2(4,7,8)]+=tmp14_1 + tmp15_1 + tmp16_1 + tmp17_1 + tmp18_1 + tmp19_1 + tmp20_1 + tmp21_1 + tmp22_1 + tmp23_1;
4758                                    EM_S[INDEX2(5,7,8)]+=tmp266_1 + tmp267_1 + tmp268_1 + tmp269_1 + tmp270_1 + tmp271_1 + tmp272_1 + tmp273_1 + tmp274_1 + tmp275_1 + tmp276_1 + tmp277_1 + tmp278_1 + tmp279_1;
4759                                    EM_S[INDEX2(6,7,8)]+=tmp154_1 + tmp155_1 + tmp156_1 + tmp157_1 + tmp158_1 + tmp159_1 + tmp160_1 + tmp161_1 + tmp162_1 + tmp163_1 + tmp164_1 + tmp165_1 + tmp166_1 + tmp167_1;
4760                                    EM_S[INDEX2(7,7,8)]+=tmp215_1 + tmp222_1 + tmp247_1 + tmp250_1 + tmp252_1 + tmp253_1 + tmp254_1 + tmp255_1 + tmp256_1 + tmp257_1 + tmp258_1 + tmp259_1 + tmp260_1 + tmp261_1 + tmp262_1 + tmp263_1 + tmp264_1 + tmp265_1;
4761                              } else { // constant data                              } else { // constant data
4762                                  const double C_0 = C_p[0];                                  const double C_0 = C_p[0];
4763                                  const double C_1 = C_p[1];                                  const double C_1 = C_p[1];
# Line 4775  void Brick::assemblePDESingle(Paso_Syste Line 4780  void Brick::assemblePDESingle(Paso_Syste
4780                                  const double tmp6_1 = C_2*w135;                                  const double tmp6_1 = C_2*w135;
4781                                  const double tmp10_1 = C_2*w136;                                  const double tmp10_1 = C_2*w136;
4782                                  const double tmp9_1 = C_1*w130;                                  const double tmp9_1 = C_1*w130;
4783                                  EM_S[INDEX2(7,3,8)]+=tmp0_1 + tmp1_1 + tmp2_1;                                  EM_S[INDEX2(0,0,8)]+=tmp0_1 + tmp11_1 + tmp8_1;
4784                                  EM_S[INDEX2(4,7,8)]+=tmp1_1 + tmp2_1 + tmp3_1;                                  EM_S[INDEX2(1,0,8)]+=tmp11_1 + tmp4_1 + tmp9_1;
4785                                  EM_S[INDEX2(1,3,8)]+=tmp2_1 + tmp4_1 + tmp5_1;                                  EM_S[INDEX2(2,0,8)]+=tmp4_1 + tmp7_1 + tmp8_1;
                                 EM_S[INDEX2(6,4,8)]+=tmp6_1 + tmp7_1 + tmp8_1;  
4786                                  EM_S[INDEX2(3,0,8)]+=tmp10_1 + tmp7_1 + tmp9_1;                                  EM_S[INDEX2(3,0,8)]+=tmp10_1 + tmp7_1 + tmp9_1;
                                 EM_S[INDEX2(5,4,8)]+=tmp11_1 + tmp6_1 + tmp9_1;  
                                 EM_S[INDEX2(0,7,8)]+=tmp12_1 + tmp13_1 + tmp3_1;  
                                 EM_S[INDEX2(5,6,8)]+=tmp1_1 + tmp3_1 + tmp7_1;  
                                 EM_S[INDEX2(2,6,8)]+=tmp14_1 + tmp1_1 + tmp7_1;  
                                 EM_S[INDEX2(1,6,8)]+=tmp12_1 + tmp15_1 + tmp3_1;  
                                 EM_S[INDEX2(5,1,8)]+=tmp0_1 + tmp2_1 + tmp9_1;  
                                 EM_S[INDEX2(3,7,8)]+=tmp14_1 + tmp1_1 + tmp2_1;  
                                 EM_S[INDEX2(2,5,8)]+=tmp13_1 + tmp16_1 + tmp3_1;  
                                 EM_S[INDEX2(0,3,8)]+=tmp10_1 + tmp1_1 + tmp2_1;  
                                 EM_S[INDEX2(7,2,8)]+=tmp12_1 + tmp4_1 + tmp7_1;  
4787                                  EM_S[INDEX2(4,0,8)]+=tmp0_1 + tmp7_1 + tmp9_1;                                  EM_S[INDEX2(4,0,8)]+=tmp0_1 + tmp7_1 + tmp9_1;
4788                                    EM_S[INDEX2(5,0,8)]+=tmp16_1 + tmp4_1 + tmp7_1;
4789                                    EM_S[INDEX2(6,0,8)]+=tmp15_1 + tmp4_1 + tmp9_1;
4790                                    EM_S[INDEX2(7,0,8)]+=tmp10_1 + tmp15_1 + tmp16_1;
4791                                    EM_S[INDEX2(0,1,8)]+=tmp17_1 + tmp4_1 + tmp9_1;
4792                                    EM_S[INDEX2(1,1,8)]+=tmp0_1 + tmp17_1 + tmp8_1;
4793                                    EM_S[INDEX2(2,1,8)]+=tmp10_1 + tmp2_1 + tmp9_1;
4794                                    EM_S[INDEX2(3,1,8)]+=tmp2_1 + tmp4_1 + tmp8_1;
4795                                    EM_S[INDEX2(4,1,8)]+=tmp16_1 + tmp2_1 + tmp4_1;
4796                                    EM_S[INDEX2(5,1,8)]+=tmp0_1 + tmp2_1 + tmp9_1;
4797                                    EM_S[INDEX2(6,1,8)]+=tmp10_1 + tmp13_1 + tmp16_1;
4798                                    EM_S[INDEX2(7,1,8)]+=tmp13_1 + tmp4_1 + tmp9_1;
4799                                    EM_S[INDEX2(0,2,8)]+=tmp4_1 + tmp5_1 + tmp7_1;
4800                                  EM_S[INDEX2(1,2,8)]+=tmp10_1 + tmp1_1 + tmp7_1;                                  EM_S[INDEX2(1,2,8)]+=tmp10_1 + tmp1_1 + tmp7_1;
4801                                  EM_S[INDEX2(6,7,8)]+=tmp17_1 + tmp1_1 + tmp6_1;                                  EM_S[INDEX2(2,2,8)]+=tmp0_1 + tmp11_1 + tmp5_1;
4802                                    EM_S[INDEX2(3,2,8)]+=tmp11_1 + tmp1_1 + tmp4_1;
4803                                    EM_S[INDEX2(4,2,8)]+=tmp15_1 + tmp1_1 + tmp4_1;
4804                                    EM_S[INDEX2(5,2,8)]+=tmp10_1 + tmp12_1 + tmp15_1;
4805                                    EM_S[INDEX2(6,2,8)]+=tmp0_1 + tmp1_1 + tmp7_1;
4806                                    EM_S[INDEX2(7,2,8)]+=tmp12_1 + tmp4_1 + tmp7_1;
4807                                    EM_S[INDEX2(0,3,8)]+=tmp10_1 + tmp1_1 + tmp2_1;
4808                                    EM_S[INDEX2(1,3,8)]+=tmp2_1 + tmp4_1 + tmp5_1;
4809                                    EM_S[INDEX2(2,3,8)]+=tmp17_1 + tmp1_1 + tmp4_1;
4810                                  EM_S[INDEX2(3,3,8)]+=tmp0_1 + tmp17_1 + tmp5_1;                                  EM_S[INDEX2(3,3,8)]+=tmp0_1 + tmp17_1 + tmp5_1;
4811                                  EM_S[INDEX2(2,0,8)]+=tmp4_1 + tmp7_1 + tmp8_1;                                  EM_S[INDEX2(4,3,8)]+=tmp10_1 + tmp12_1 + tmp13_1;
4812                                  EM_S[INDEX2(7,6,8)]+=tmp11_1 + tmp1_1 + tmp6_1;                                  EM_S[INDEX2(5,3,8)]+=tmp13_1 + tmp1_1 + tmp4_1;
                                 EM_S[INDEX2(4,4,8)]+=tmp11_1 + tmp14_1 + tmp8_1;  
4813                                  EM_S[INDEX2(6,3,8)]+=tmp12_1 + tmp2_1 + tmp4_1;                                  EM_S[INDEX2(6,3,8)]+=tmp12_1 + tmp2_1 + tmp4_1;
4814                                    EM_S[INDEX2(7,3,8)]+=tmp0_1 + tmp1_1 + tmp2_1;
4815                                    EM_S[INDEX2(0,4,8)]+=tmp14_1 + tmp7_1 + tmp9_1;
4816                                    EM_S[INDEX2(1,4,8)]+=tmp16_1 + tmp6_1 + tmp7_1;
4817                                    EM_S[INDEX2(2,4,8)]+=tmp15_1 + tmp6_1 + tmp9_1;
4818                                    EM_S[INDEX2(3,4,8)]+=tmp15_1 + tmp16_1 + tmp3_1;
4819                                    EM_S[INDEX2(4,4,8)]+=tmp11_1 + tmp14_1 + tmp8_1;
4820                                    EM_S[INDEX2(5,4,8)]+=tmp11_1 + tmp6_1 + tmp9_1;
4821                                    EM_S[INDEX2(6,4,8)]+=tmp6_1 + tmp7_1 + tmp8_1;
4822                                    EM_S[INDEX2(7,4,8)]+=tmp3_1 + tmp7_1 + tmp9_1;
4823                                    EM_S[INDEX2(0,5,8)]+=tmp16_1 + tmp2_1 + tmp6_1;
4824                                  EM_S[INDEX2(1,5,8)]+=tmp14_1 + tmp2_1 + tmp9_1;                                  EM_S[INDEX2(1,5,8)]+=tmp14_1 + tmp2_1 + tmp9_1;
4825                                  EM_S[INDEX2(3,6,8)]+=tmp12_1 + tmp6_1 + tmp7_1;                                  EM_S[INDEX2(2,5,8)]+=tmp13_1 + tmp16_1 + tmp3_1;
4826                                  EM_S[INDEX2(2,2,8)]+=tmp0_1 + tmp11_1 + tmp5_1;                                  EM_S[INDEX2(3,5,8)]+=tmp13_1 + tmp6_1 + tmp9_1;
                                 EM_S[INDEX2(7,7,8)]+=tmp14_1 + tmp17_1 + tmp5_1;  
                                 EM_S[INDEX2(5,7,8)]+=tmp2_1 + tmp5_1 + tmp6_1;  
                                 EM_S[INDEX2(5,3,8)]+=tmp13_1 + tmp1_1 + tmp4_1;  
                                 EM_S[INDEX2(4,1,8)]+=tmp16_1 + tmp2_1 + tmp4_1;  
                                 EM_S[INDEX2(1,1,8)]+=tmp0_1 + tmp17_1 + tmp8_1;  
                                 EM_S[INDEX2(2,7,8)]+=tmp12_1 + tmp2_1 + tmp6_1;  
                                 EM_S[INDEX2(3,2,8)]+=tmp11_1 + tmp1_1 + tmp4_1;  
                                 EM_S[INDEX2(0,0,8)]+=tmp0_1 + tmp11_1 + tmp8_1;  
                                 EM_S[INDEX2(6,6,8)]+=tmp11_1 + tmp14_1 + tmp5_1;  
                                 EM_S[INDEX2(5,0,8)]+=tmp16_1 + tmp4_1 + tmp7_1;  
                                 EM_S[INDEX2(7,1,8)]+=tmp13_1 + tmp4_1 + tmp9_1;  
4827                                  EM_S[INDEX2(4,5,8)]+=tmp17_1 + tmp6_1 + tmp9_1;                                  EM_S[INDEX2(4,5,8)]+=tmp17_1 + tmp6_1 + tmp9_1;
                                 EM_S[INDEX2(0,4,8)]+=tmp14_1 + tmp7_1 + tmp9_1;  
4828                                  EM_S[INDEX2(5,5,8)]+=tmp14_1 + tmp17_1 + tmp8_1;                                  EM_S[INDEX2(5,5,8)]+=tmp14_1 + tmp17_1 + tmp8_1;
                                 EM_S[INDEX2(1,4,8)]+=tmp16_1 + tmp6_1 + tmp7_1;  
                                 EM_S[INDEX2(6,0,8)]+=tmp15_1 + tmp4_1 + tmp9_1;  
                                 EM_S[INDEX2(7,5,8)]+=tmp2_1 + tmp6_1 + tmp8_1;  
                                 EM_S[INDEX2(2,3,8)]+=tmp17_1 + tmp1_1 + tmp4_1;  
                                 EM_S[INDEX2(2,1,8)]+=tmp10_1 + tmp2_1 + tmp9_1;  
                                 EM_S[INDEX2(4,2,8)]+=tmp15_1 + tmp1_1 + tmp4_1;  
                                 EM_S[INDEX2(1,0,8)]+=tmp11_1 + tmp4_1 + tmp9_1;  
4829                                  EM_S[INDEX2(6,5,8)]+=tmp2_1 + tmp3_1 + tmp9_1;                                  EM_S[INDEX2(6,5,8)]+=tmp2_1 + tmp3_1 + tmp9_1;
4830                                  EM_S[INDEX2(3,5,8)]+=tmp13_1 + tmp6_1 + tmp9_1;                                  EM_S[INDEX2(7,5,8)]+=tmp2_1 + tmp6_1 + tmp8_1;
                                 EM_S[INDEX2(0,1,8)]+=tmp17_1 + tmp4_1 + tmp9_1;  
                                 EM_S[INDEX2(7,0,8)]+=tmp10_1 + tmp15_1 + tmp16_1;  
                                 EM_S[INDEX2(4,6,8)]+=tmp5_1 + tmp6_1 + tmp7_1;  
                                 EM_S[INDEX2(5,2,8)]+=tmp10_1 + tmp12_1 + tmp15_1;  
                                 EM_S[INDEX2(6,1,8)]+=tmp10_1 + tmp13_1 + tmp16_1;  
                                 EM_S[INDEX2(3,1,8)]+=tmp2_1 + tmp4_1 + tmp8_1;  
                                 EM_S[INDEX2(0,2,8)]+=tmp4_1 + tmp5_1 + tmp7_1;  
                                 EM_S[INDEX2(7,4,8)]+=tmp3_1 + tmp7_1 + tmp9_1;  
4831                                  EM_S[INDEX2(0,6,8)]+=tmp15_1 + tmp1_1 + tmp6_1;                                  EM_S[INDEX2(0,6,8)]+=tmp15_1 + tmp1_1 + tmp6_1;
4832                                  EM_S[INDEX2(6,2,8)]+=tmp0_1 + tmp1_1 + tmp7_1;                                  EM_S[INDEX2(1,6,8)]+=tmp12_1 + tmp15_1 + tmp3_1;
4833                                  EM_S[INDEX2(4,3,8)]+=tmp10_1 + tmp12_1 + tmp13_1;                                  EM_S[INDEX2(2,6,8)]+=tmp14_1 + tmp1_1 + tmp7_1;
4834                                    EM_S[INDEX2(3,6,8)]+=tmp12_1 + tmp6_1 + tmp7_1;
4835                                    EM_S[INDEX2(4,6,8)]+=tmp5_1 + tmp6_1 + tmp7_1;
4836                                    EM_S[INDEX2(5,6,8)]+=tmp1_1 + tmp3_1 + tmp7_1;
4837                                    EM_S[INDEX2(6,6,8)]+=tmp11_1 + tmp14_1 + tmp5_1;
4838                                    EM_S[INDEX2(7,6,8)]+=tmp11_1 + tmp1_1 + tmp6_1;
4839                                    EM_S[INDEX2(0,7,8)]+=tmp12_1 + tmp13_1 + tmp3_1;
4840                                  EM_S[INDEX2(1,7,8)]+=tmp13_1 + tmp1_1 + tmp6_1;                                  EM_S[INDEX2(1,7,8)]+=tmp13_1 + tmp1_1 + tmp6_1;
4841                                  EM_S[INDEX2(0,5,8)]+=tmp16_1 + tmp2_1 + tmp6_1;                                  EM_S[INDEX2(2,7,8)]+=tmp12_1 + tmp2_1 + tmp6_1;
4842                                  EM_S[INDEX2(3,4,8)]+=tmp15_1 + tmp16_1 + tmp3_1;                                  EM_S[INDEX2(3,7,8)]+=tmp14_1 + tmp1_1 + tmp2_1;
4843                                  EM_S[INDEX2(2,4,8)]+=tmp15_1 + tmp6_1 + tmp9_1;                                  EM_S[INDEX2(4,7,8)]+=tmp1_1 + tmp2_1 + tmp3_1;
4844                                    EM_S[INDEX2(5,7,8)]+=tmp2_1 + tmp5_1 + tmp6_1;
4845                                    EM_S[INDEX2(6,7,8)]+=tmp17_1 + tmp1_1 + tmp6_1;
4846                                    EM_S[INDEX2(7,7,8)]+=tmp14_1 + tmp17_1 + tmp5_1;
4847                              }                              }
4848                          }                          }
4849                          ///////////////                          ///////////////
# Line 5034  void Brick::assemblePDESingle(Paso_Syste Line 5039  void Brick::assemblePDESingle(Paso_Syste
5039                                  const double tmp0_1 = D_0*w151;                                  const double tmp0_1 = D_0*w151;
5040                                  const double tmp2_1 = D_0*w153;                                  const double tmp2_1 = D_0*w153;
5041                                  const double tmp1_1 = D_0*w152;                                  const double tmp1_1 = D_0*w152;
5042                                  EM_S[INDEX2(7,3,8)]+=tmp0_1;                                  EM_S[INDEX2(0,0,8)]+=tmp3_1;
5043                                  EM_S[INDEX2(4,7,8)]+=tmp1_1;                                  EM_S[INDEX2(1,0,8)]+=tmp0_1;
5044                                  EM_S[INDEX2(1,3,8)]+=tmp0_1;                                  EM_S[INDEX2(2,0,8)]+=tmp0_1;
                                 EM_S[INDEX2(6,4,8)]+=tmp0_1;  
5045                                  EM_S[INDEX2(3,0,8)]+=tmp1_1;                                  EM_S[INDEX2(3,0,8)]+=tmp1_1;
                                 EM_S[INDEX2(5,4,8)]+=tmp0_1;  
                                 EM_S[INDEX2(0,7,8)]+=tmp2_1;  
                                 EM_S[INDEX2(5,6,8)]+=tmp1_1;  
                                 EM_S[INDEX2(2,6,8)]+=tmp0_1;  
                                 EM_S[INDEX2(1,6,8)]+=tmp2_1;  
                                 EM_S[INDEX2(5,1,8)]+=tmp0_1;  
                                 EM_S[INDEX2(3,7,8)]+=tmp0_1;  
                                 EM_S[INDEX2(2,5,8)]+=tmp2_1;  
                                 EM_S[INDEX2(0,3,8)]+=tmp1_1;  
                                 EM_S[INDEX2(7,2,8)]+=tmp1_1;  
5046                                  EM_S[INDEX2(4,0,8)]+=tmp0_1;                                  EM_S[INDEX2(4,0,8)]+=tmp0_1;
5047                                    EM_S[INDEX2(5,0,8)]+=tmp1_1;
5048                                    EM_S[INDEX2(6,0,8)]+=tmp1_1;
5049                                    EM_S[INDEX2(7,0,8)]+=tmp2_1;
5050                                    EM_S[INDEX2(0,1,8)]+=tmp0_1;
5051                                    EM_S[INDEX2(1,1,8)]+=tmp3_1;
5052                                    EM_S[INDEX2(2,1,8)]+=tmp1_1;
5053                                    EM_S[INDEX2(3,1,8)]+=tmp0_1;
5054                                    EM_S[INDEX2(4,1,8)]+=tmp1_1;
5055                                    EM_S[INDEX2(5,1,8)]+=tmp0_1;
5056                                    EM_S[INDEX2(6,1,8)]+=tmp2_1;
5057                                    EM_S[INDEX2(7,1,8)]+=tmp1_1;
5058                                    EM_S[INDEX2(0,2,8)]+=tmp0_1;
5059                                  EM_S[INDEX2(1,2,8)]+=tmp1_1;                                  EM_S[INDEX2(1,2,8)]+=tmp1_1;
5060                                  EM_S[INDEX2(6,7,8)]+=tmp0_1;                                  EM_S[INDEX2(2,2,8)]+=tmp3_1;
5061                                    EM_S[INDEX2(3,2,8)]+=tmp0_1;
5062                                    EM_S[INDEX2(4,2,8)]+=tmp1_1;
5063                                    EM_S[INDEX2(5,2,8)]+=tmp2_1;
5064                                    EM_S[INDEX2(6,2,8)]+=tmp0_1;
5065                                    EM_S[INDEX2(7,2,8)]+=tmp1_1;
5066                                    EM_S[INDEX2(0,3,8)]+=tmp1_1;
5067                                    EM_S[INDEX2(1,3,8)]+=tmp0_1;
5068                                    EM_S[INDEX2(2,3,8)]+=tmp0_1;
5069                                  EM_S[INDEX2(3,3,8)]+=tmp3_1;                                  EM_S[INDEX2(3,3,8)]+=tmp3_1;
5070                                  EM_S[INDEX2(2,0,8)]+=tmp0_1;                                  EM_S[INDEX2(4,3,8)]+=tmp2_1;
5071                                  EM_S[INDEX2(7,6,8)]+=tmp0_1;                                  EM_S[INDEX2(5,3,8)]+=tmp1_1;
                                 EM_S[INDEX2(4,4,8)]+=tmp3_1;  
5072                                  EM_S[INDEX2(6,3,8)]+=tmp1_1;                                  EM_S[INDEX2(6,3,8)]+=tmp1_1;
5073                                    EM_S[INDEX2(7,3,8)]+=tmp0_1;
5074                                    EM_S[INDEX2(0,4,8)]+=tmp0_1;
5075                                    EM_S[INDEX2(1,4,8)]+=tmp1_1;
5076                                    EM_S[INDEX2(2,4,8)]+=tmp1_1;
5077                                    EM_S[INDEX2(3,4,8)]+=tmp2_1;
5078                                    EM_S[INDEX2(4,4,8)]+=tmp3_1;
5079                                    EM_S[INDEX2(5,4,8)]+=tmp0_1;
5080                                    EM_S[INDEX2(6,4,8)]+=tmp0_1;
5081                                    EM_S[INDEX2(7,4,8)]+=tmp1_1;
5082                                    EM_S[INDEX2(0,5,8)]+=tmp1_1;
5083                                  EM_S[INDEX2(1,5,8)]+=tmp0_1;                                  EM_S[INDEX2(1,5,8)]+=tmp0_1;
5084                                  EM_S[INDEX2(3,6,8)]+=tmp1_1;                                  EM_S[INDEX2(2,5,8)]+=tmp2_1;
5085                                  EM_S[INDEX2(2,2,8)]+=tmp3_1;                                  EM_S[INDEX2(3,5,8)]+=tmp1_1;
                                 EM_S[INDEX2(7,7,8)]+=tmp3_1;  
                                 EM_S[INDEX2(5,7,8)]+=tmp0_1;  
                                 EM_S[INDEX2(5,3,8)]+=tmp1_1;  
                                 EM_S[INDEX2(4,1,8)]+=tmp1_1;  
                                 EM_S[INDEX2(1,1,8)]+=tmp3_1;  
                                 EM_S[INDEX2(2,7,8)]+=tmp1_1;  
                                 EM_S[INDEX2(3,2,8)]+=tmp0_1;  
                                 EM_S[INDEX2(0,0,8)]+=tmp3_1;  
                                 EM_S[INDEX2(6,6,8)]+=tmp3_1;  
                                 EM_S[INDEX2(5,0,8)]+=tmp1_1;  
                                 EM_S[INDEX2(7,1,8)]+=tmp1_1;  
5086                                  EM_S[INDEX2(4,5,8)]+=tmp0_1;                                  EM_S[INDEX2(4,5,8)]+=tmp0_1;
                                 EM_S[INDEX2(0,4,8)]+=tmp0_1;  
5087                                  EM_S[INDEX2(5,5,8)]+=tmp3_1;                                  EM_S[INDEX2(5,5,8)]+=tmp3_1;
                                 EM_S[INDEX2(1,4,8)]+=tmp1_1;  
                                 EM_S[INDEX2(6,0,8)]+=tmp1_1;  
                                 EM_S[INDEX2(7,5,8)]+=tmp0_1;  
                                 EM_S[INDEX2(2,3,8)]+=tmp0_1;  
                                 EM_S[INDEX2(2,1,8)]+=tmp1_1;  
                                 EM_S[INDEX2(4,2,8)]+=tmp1_1;  
                                 EM_S[INDEX2(1,0,8)]+=tmp0_1;  
5088                                  EM_S[INDEX2(6,5,8)]+=tmp1_1;                                  EM_S[INDEX2(6,5,8)]+=tmp1_1;
5089                                  EM_S[INDEX2(3,5,8)]+=tmp1_1;                                  EM_S[INDEX2(7,5,8)]+=tmp0_1;
                                 EM_S[INDEX2(0,1,8)]+=tmp0_1;  
                                 EM_S[INDEX2(7,0,8)]+=tmp2_1;  
                                 EM_S[INDEX2(4,6,8)]+=tmp0_1;  
                                 EM_S[INDEX2(5,2,8)]+=tmp2_1;  
                                 EM_S[INDEX2(6,1,8)]+=tmp2_1;  
                                 EM_S[INDEX2(3,1,8)]+=tmp0_1;  
                                 EM_S[INDEX2(0,2,8)]+=tmp0_1;  
                                 EM_S[INDEX2(7,4,8)]+=tmp1_1;  
5090                                  EM_S[INDEX2(0,6,8)]+=tmp1_1;                                  EM_S[INDEX2(0,6,8)]+=tmp1_1;
5091                                  EM_S[INDEX2(6,2,8)]+=tmp0_1;                                  EM_S[INDEX2(1,6,8)]+=tmp2_1;
5092                                  EM_S[INDEX2(4,3,8)]+=tmp2_1;                                  EM_S[INDEX2(2,6,8)]+=tmp0_1;
5093                                    EM_S[INDEX2(3,6,8)]+=tmp1_1;
5094                                    EM_S[INDEX2(4,6,8)]+=tmp0_1;
5095                                    EM_S[INDEX2(5,6,8)]+=tmp1_1;
5096                                    EM_S[INDEX2(6,6,8)]+=tmp3_1;
5097                                    EM_S[INDEX2(7,6,8)]+=tmp0_1;
5098                                    EM_S[INDEX2(0,7,8)]+=tmp2_1;
5099                                  EM_S[INDEX2(1,7,8)]+=tmp1_1;                                  EM_S[INDEX2(1,7,8)]+=tmp1_1;
5100                                  EM_S[INDEX2(0,5,8)]+=tmp1_1;                                  EM_S[INDEX2(2,7,8)]+=tmp1_1;
5101                                  EM_S[INDEX2(3,4,8)]+=tmp2_1;                                  EM_S[INDEX2(3,7,8)]+=tmp0_1;
5102                                  EM_S[INDEX2(2,4,8)]+=tmp1_1;                                  EM_S[INDEX2(4,7,8)]+=tmp1_1;
5103                                    EM_S[INDEX2(5,7,8)]+=tmp0_1;
5104                                    EM_S[INDEX2(6,7,8)]+=tmp0_1;
5105                                    EM_S[INDEX2(7,7,8)]+=tmp3_1;
5106                              }                              }
5107                          }                          }
5108                          ///////////////                          ///////////////
# Line 5381  void Brick::assemblePDESingleReduced(Pas Line 5386  void Brick::assemblePDESingleReduced(Pas
5386                              add_EM_S=true;                              add_EM_S=true;
5387                              const double* A_p=const_cast<escript::Data*>(&A)->getSampleDataRO(e);                              const double* A_p=const_cast<escript::Data*>(&A)->getSampleDataRO(e);
5388                              const double A_00 = A_p[INDEX2(0,0,3)];                              const double A_00 = A_p[INDEX2(0,0,3)];
                             const double A_01 = A_p[INDEX2(0,1,3)];  
                             const double A_02 = A_p[INDEX2(0,2,3)];  
5389                              const double A_10 = A_p[INDEX2(1,0,3)];                              const double A_10 = A_p[INDEX2(1,0,3)];
                             const double A_11 = A_p[INDEX2(1,1,3)];  
                             const double A_12 = A_p[INDEX2(1,2,3)];  
5390                              const double A_20 = A_p[INDEX2(2,0,3)];                              const double A_20 = A_p[INDEX2(2,0,3)];
5391                                const double A_01 = A_p[INDEX2(0,1,3)];
5392                                const double A_11 = A_p[INDEX2(1,1,3)];
5393                              const double A_21 = A_p[INDEX2(2,1,3)];                              const double A_21 = A_p[INDEX2(2,1,3)];
5394                                const double A_02 = A_p[INDEX2(0,2,3)];
5395                                const double A_12 = A_p[INDEX2(1,2,3)];
5396                              const double A_22 = A_p[INDEX2(2,2,3)];                              const double A_22 = A_p[INDEX2(2,2,3)];
5397                              const double tmp0_0 = A_01 + A_10;                              const double tmp0_0 = A_01 + A_10;
5398                              const double tmp1_0 = A_02 + A_20;                              const double tmp1_0 = A_02 + A_20;
# Line 5416  void Brick::assemblePDESingleReduced(Pas Line 5421  void Brick::assemblePDESingleReduced(Pas
5421                              const double tmp16_1 = A_10*w9;                              const double tmp16_1 = A_10*w9;
5422                              const double tmp11_1 = tmp0_0*w9;                              const double tmp11_1 = tmp0_0*w9;
5423                              const double tmp17_1 = A_10*w1;                              const double tmp17_1 = A_10*w1;
5424                              EM_S[INDEX2(7,3,8)]+=tmp0_1 + tmp1_1 + tmp2_1 + tmp3_1 + tmp4_1 + tmp5_1 + tmp6_1 + tmp7_1;                              EM_S[INDEX2(0,0,8)]+=tmp0_1 + tmp22_1 + tmp23_1 + tmp2_1 + tmp4_1 + tmp9_1;
5425                              EM_S[INDEX2(4,7,8)]+=tmp10_1 + tmp11_1 + tmp1_1 + tmp5_1 + tmp6_1 + tmp7_1 + tmp8_1 + tmp9_1;                              EM_S[INDEX2(1,0,8)]+=tmp17_1 + tmp20_1 + tmp23_1 + tmp4_1 + tmp6_1 + tmp7_1 + tmp8_1 + tmp9_1;
5426                              EM_S[INDEX2(1,3,8)]+=tmp10_1 + tmp12_1 + tmp13_1 + tmp14_1 + tmp15_1 + tmp16_1 + tmp2_1 + tmp9_1;                              EM_S[INDEX2(2,0,8)]+=tmp10_1 + tmp12_1 + tmp16_1 + tmp1_1 + tmp22_1 + tmp2_1 + tmp5_1 + tmp9_1;
                             EM_S[INDEX2(6,4,8)]+=tmp10_1 + tmp12_1 + tmp13_1 + tmp14_1 + tmp15_1 + tmp16_1 + tmp2_1 + tmp9_1;  
5427                              EM_S[INDEX2(3,0,8)]+=tmp10_1 + tmp11_1 + tmp1_1 + tmp5_1 + tmp6_1 + tmp7_1 + tmp8_1 + tmp9_1;                              EM_S[INDEX2(3,0,8)]+=tmp10_1 + tmp11_1 + tmp1_1 + tmp5_1 + tmp6_1 + tmp7_1 + tmp8_1 + tmp9_1;
                             EM_S[INDEX2(5,4,8)]+=tmp17_1 + tmp18_1 + tmp19_1 + tmp20_1 + tmp21_1 + tmp4_1 + tmp8_1 + tmp9_1;  
                             EM_S[INDEX2(0,7,8)]+=tmp10_1 + tmp11_1 + tmp15_1 + tmp18_1 + tmp3_1 + tmp8_1;  
                             EM_S[INDEX2(5,6,8)]+=tmp0_1 + tmp10_1 + tmp19_1 + tmp1_1 + tmp21_1 + tmp5_1 + tmp8_1 + tmp9_1;  
                             EM_S[INDEX2(2,6,8)]+=tmp11_1 + tmp13_1 + tmp14_1 + tmp2_1 + tmp3_1 + tmp4_1 + tmp6_1 + tmp7_1;  
                             EM_S[INDEX2(1,6,8)]+=tmp0_1 + tmp10_1 + tmp18_1 + tmp22_1 + tmp3_1 + tmp8_1;  
                             EM_S[INDEX2(5,1,8)]+=tmp11_1 + tmp13_1 + tmp14_1 + tmp2_1 + tmp3_1 + tmp4_1 + tmp6_1 + tmp7_1;  
                             EM_S[INDEX2(3,7,8)]+=tmp0_1 + tmp13_1 + tmp14_1 + tmp19_1 + tmp21_1 + tmp2_1 + tmp3_1 + tmp4_1;  
                             EM_S[INDEX2(2,5,8)]+=tmp0_1 + tmp10_1 + tmp15_1 + tmp23_1 + tmp3_1 + tmp8_1;  
                             EM_S[INDEX2(0,3,8)]+=tmp10_1 + tmp11_1 + tmp13_1 + tmp14_1 + tmp19_1 + tmp21_1 + tmp8_1 + tmp9_1;  
                             EM_S[INDEX2(7,2,8)]+=tmp12_1 + tmp15_1 + tmp16_1 + tmp1_1 + tmp3_1 + tmp4_1 + tmp5_1 + tmp8_1;  
5428                              EM_S[INDEX2(4,0,8)]+=tmp0_1 + tmp13_1 + tmp14_1 + tmp19_1 + tmp21_1 + tmp2_1 + tmp3_1 + tmp4_1;                              EM_S[INDEX2(4,0,8)]+=tmp0_1 + tmp13_1 + tmp14_1 + tmp19_1 + tmp21_1 + tmp2_1 + tmp3_1 + tmp4_1;
5429                                EM_S[INDEX2(5,0,8)]+=tmp13_1 + tmp14_1 + tmp15_1 + tmp17_1 + tmp20_1 + tmp3_1 + tmp4_1 + tmp8_1;
5430                                EM_S[INDEX2(6,0,8)]+=tmp10_1 + tmp12_1 + tmp16_1 + tmp18_1 + tmp19_1 + tmp21_1 + tmp2_1 + tmp3_1;
5431                                EM_S[INDEX2(7,0,8)]+=tmp10_1 + tmp11_1 + tmp15_1 + tmp18_1 + tmp3_1 + tmp8_1;
5432                                EM_S[INDEX2(0,1,8)]+=tmp12_1 + tmp16_1 + tmp19_1 + tmp21_1 + tmp23_1 + tmp4_1 + tmp8_1 + tmp9_1;
5433                                EM_S[INDEX2(1,1,8)]+=tmp11_1 + tmp15_1 + tmp23_1 + tmp2_1 + tmp4_1 + tmp9_1;
5434                                EM_S[INDEX2(2,1,8)]+=tmp0_1 + tmp10_1 + tmp19_1 + tmp1_1 + tmp21_1 + tmp5_1 + tmp8_1 + tmp9_1;
5435                                EM_S[INDEX2(3,1,8)]+=tmp10_1 + tmp15_1 + tmp17_1 + tmp1_1 + tmp20_1 + tmp2_1 + tmp5_1 + tmp9_1;
5436                                EM_S[INDEX2(4,1,8)]+=tmp12_1 + tmp13_1 + tmp14_1 + tmp16_1 + tmp22_1 + tmp3_1 + tmp4_1 + tmp8_1;
5437                                EM_S[INDEX2(5,1,8)]+=tmp11_1 + tmp13_1 + tmp14_1 + tmp2_1 + tmp3_1 + tmp4_1 + tmp6_1 + tmp7_1;
5438                                EM_S[INDEX2(6,1,8)]+=tmp0_1 + tmp10_1 + tmp18_1 + tmp22_1 + tmp3_1 + tmp8_1;
5439                                EM_S[INDEX2(7,1,8)]+=tmp10_1 + tmp17_1 + tmp18_1 + tmp20_1 + tmp2_1 + tmp3_1 + tmp6_1 + tmp7_1;
5440                                EM_S[INDEX2(0,2,8)]+=tmp10_1 + tmp13_1 + tmp14_1 + tmp17_1 + tmp20_1 + tmp22_1 + tmp2_1 + tmp9_1;
5441                              EM_S[INDEX2(1,2,8)]+=tmp0_1 + tmp10_1 + tmp13_1 + tmp14_1 + tmp6_1 + tmp7_1 + tmp8_1 + tmp9_1;                              EM_S[INDEX2(1,2,8)]+=tmp0_1 + tmp10_1 + tmp13_1 + tmp14_1 + tmp6_1 + tmp7_1 + tmp8_1 + tmp9_1;
5442                              EM_S[INDEX2(6,7,8)]+=tmp17_1 + tmp20_1 + tmp23_1 + tmp4_1 + tmp6_1 + tmp7_1 + tmp8_1 + tmp9_1;                              EM_S[INDEX2(2,2,8)]+=tmp11_1 + tmp18_1 + tmp22_1 + tmp2_1 + tmp4_1 + tmp9_1;
5443                                EM_S[INDEX2(3,2,8)]+=tmp12_1 + tmp16_1 + tmp18_1 + tmp4_1 + tmp6_1 + tmp7_1 + tmp8_1 + tmp9_1;
5444                                EM_S[INDEX2(4,2,8)]+=tmp10_1 + tmp17_1 + tmp19_1 + tmp20_1 + tmp21_1 + tmp23_1 + tmp2_1 + tmp3_1;
5445                                EM_S[INDEX2(5,2,8)]+=tmp0_1 + tmp10_1 + tmp15_1 + tmp23_1 + tmp3_1 + tmp8_1;
5446                                EM_S[INDEX2(6,2,8)]+=tmp11_1 + tmp19_1 + tmp1_1 + tmp21_1 + tmp2_1 + tmp3_1 + tmp4_1 + tmp5_1;
5447                                EM_S[INDEX2(7,2,8)]+=tmp12_1 + tmp15_1 + tmp16_1 + tmp1_1 + tmp3_1 + tmp4_1 + tmp5_1 + tmp8_1;
5448                                EM_S[INDEX2(0,3,8)]+=tmp10_1 + tmp11_1 + tmp13_1 + tmp14_1 + tmp19_1 + tmp21_1 + tmp8_1 + tmp9_1;
5449                                EM_S[INDEX2(1,3,8)]+=tmp10_1 + tmp12_1 + tmp13_1 + tmp14_1 + tmp15_1 + tmp16_1 + tmp2_1 + tmp9_1;
5450                                EM_S[INDEX2(2,3,8)]+=tmp17_1 + tmp18_1 + tmp19_1 + tmp20_1 + tmp21_1 + tmp4_1 + tmp8_1 + tmp9_1;
5451                              EM_S[INDEX2(3,3,8)]+=tmp0_1 + tmp15_1 + tmp18_1 + tmp2_1 + tmp4_1 + tmp9_1;                              EM_S[INDEX2(3,3,8)]+=tmp0_1 + tmp15_1 + tmp18_1 + tmp2_1 + tmp4_1 + tmp9_1;
5452                              EM_S[INDEX2(2,0,8)]+=tmp10_1 + tmp12_1 + tmp16_1 + tmp1_1 + tmp22_1 + tmp2_1 + tmp5_1 + tmp9_1;                              EM_S[INDEX2(4,3,8)]+=tmp10_1 + tmp11_1 + tmp22_1 + tmp23_1 + tmp3_1 + tmp8_1;
5453                              EM_S[INDEX2(7,6,8)]+=tmp12_1 + tmp16_1 + tmp19_1 + tmp21_1 + tmp23_1 + tmp4_1 + tmp8_1 + tmp9_1;                              EM_S[INDEX2(5,3,8)]+=tmp10_1 + tmp12_1 + tmp16_1 + tmp23_1 + tmp2_1 + tmp3_1 + tmp6_1 + tmp7_1;
                             EM_S[INDEX2(4,4,8)]+=tmp0_1 + tmp15_1 + tmp18_1 + tmp2_1 + tmp4_1 + tmp9_1;  
5454                              EM_S[INDEX2(6,3,8)]+=tmp17_1 + tmp1_1 + tmp20_1 + tmp22_1 + tmp3_1 + tmp4_1 + tmp5_1 + tmp8_1;                              EM_S[INDEX2(6,3,8)]+=tmp17_1 + tmp1_1 + tmp20_1 + tmp22_1 + tmp3_1 + tmp4_1 + tmp5_1 + tmp8_1;
5455                                EM_S[INDEX2(7,3,8)]+=tmp0_1 + tmp1_1 + tmp2_1 + tmp3_1 + tmp4_1 + tmp5_1 + tmp6_1 + tmp7_1;
5456                                EM_S[INDEX2(0,4,8)]+=tmp0_1 + tmp1_1 + tmp2_1 + tmp3_1 + tmp4_1 + tmp5_1 + tmp6_1 + tmp7_1;
5457                                EM_S[INDEX2(1,4,8)]+=tmp17_1 + tmp1_1 + tmp20_1 + tmp22_1 + tmp3_1 + tmp4_1 + tmp5_1 + tmp8_1;
5458                                EM_S[INDEX2(2,4,8)]+=tmp10_1 + tmp12_1 + tmp16_1 + tmp23_1 + tmp2_1 + tmp3_1 + tmp6_1 + tmp7_1;
5459                                EM_S[INDEX2(3,4,8)]+=tmp10_1 + tmp11_1 + tmp22_1 + tmp23_1 + tmp3_1 + tmp8_1;
5460                                EM_S[INDEX2(4,4,8)]+=tmp0_1 + tmp15_1 + tmp18_1 + tmp2_1 + tmp4_1 + tmp9_1;
5461                                EM_S[INDEX2(5,4,8)]+=tmp17_1 + tmp18_1 + tmp19_1 + tmp20_1 + tmp21_1 + tmp4_1 + tmp8_1 + tmp9_1;
5462                                EM_S[INDEX2(6,4,8)]+=tmp10_1 + tmp12_1 + tmp13_1 + tmp14_1 + tmp15_1 + tmp16_1 + tmp2_1 + tmp9_1;
5463                                EM_S[INDEX2(7,4,8)]+=tmp10_1 + tmp11_1 + tmp13_1 + tmp14_1 + tmp19_1 + tmp21_1 + tmp8_1 + tmp9_1;
5464                                EM_S[INDEX2(0,5,8)]+=tmp12_1 + tmp15_1 + tmp16_1 + tmp1_1 + tmp3_1 + tmp4_1 + tmp5_1 + tmp8_1;
5465                              EM_S[INDEX2(1,5,8)]+=tmp11_1 + tmp19_1 + tmp1_1 + tmp21_1 + tmp2_1 + tmp3_1 + tmp4_1 + tmp5_1;                              EM_S[INDEX2(1,5,8)]+=tmp11_1 + tmp19_1 + tmp1_1 + tmp21_1 + tmp2_1 + tmp3_1 + tmp4_1 + tmp5_1;
5466                              EM_S[INDEX2(3,6,8)]+=tmp12_1 + tmp13_1 + tmp14_1 + tmp16_1 + tmp22_1 + tmp3_1 + tmp4_1 + tmp8_1;                              EM_S[INDEX2(2,5,8)]+=tmp0_1 + tmp10_1 + tmp15_1 + tmp23_1 + tmp3_1 + tmp8_1;
5467                              EM_S[INDEX2(2,2,8)]+=tmp11_1 + tmp18_1 + tmp22_1 + tmp2_1 + tmp4_1 + tmp9_1;                              EM_S[INDEX2(3,5,8)]+=tmp10_1 + tmp17_1 + tmp19_1 + tmp20_1 + tmp21_1 + tmp23_1 + tmp2_1 + tmp3_1;
                             EM_S[INDEX2(7,7,8)]+=tmp0_1 + tmp22_1 + tmp23_1 + tmp2_1 + tmp4_1 + tmp9_1;  
                             EM_S[INDEX2(5,7,8)]+=tmp10_1 + tmp12_1 + tmp16_1 + tmp1_1 + tmp22_1 + tmp2_1 + tmp5_1 + tmp9_1;  
                             EM_S[INDEX2(5,3,8)]+=tmp10_1 + tmp12_1 + tmp16_1 + tmp23_1 + tmp2_1 + tmp3_1 + tmp6_1 + tmp7_1;  
                             EM_S[INDEX2(4,1,8)]+=tmp12_1 + tmp13_1 + tmp14_1 + tmp16_1 + tmp22_1 + tmp3_1 + tmp4_1 + tmp8_1;  
                             EM_S[INDEX2(1,1,8)]+=tmp11_1 + tmp15_1 + tmp23_1 + tmp2_1 + tmp4_1 + tmp9_1;  
                             EM_S[INDEX2(2,7,8)]+=tmp13_1 + tmp14_1 + tmp15_1 + tmp17_1 + tmp20_1 + tmp3_1 + tmp4_1 + tmp8_1;  
                             EM_S[INDEX2(3,2,8)]+=tmp12_1 + tmp16_1 + tmp18_1 + tmp4_1 + tmp6_1 + tmp7_1 + tmp8_1 + tmp9_1;  
                             EM_S[INDEX2(0,0,8)]+=tmp0_1 + tmp22_1 + tmp23_1 + tmp2_1 + tmp4_1 + tmp9_1;  
                             EM_S[INDEX2(6,6,8)]+=tmp11_1 + tmp15_1 + tmp23_1 + tmp2_1 + tmp4_1 + tmp9_1;  
                             EM_S[INDEX2(5,0,8)]+=tmp13_1 + tmp14_1 + tmp15_1 + tmp17_1 + tmp20_1 + tmp3_1 + tmp4_1 + tmp8_1;  
                             EM_S[INDEX2(7,1,8)]+=tmp10_1 + tmp17_1 + tmp18_1 + tmp20_1 + tmp2_1 + tmp3_1 + tmp6_1 + tmp7_1;  
5468                              EM_S[INDEX2(4,5,8)]+=tmp12_1 + tmp16_1 + tmp18_1 + tmp4_1 + tmp6_1 + tmp7_1 + tmp8_1 + tmp9_1;                              EM_S[INDEX2(4,5,8)]+=tmp12_1 + tmp16_1 + tmp18_1 + tmp4_1 + tmp6_1 + tmp7_1 + tmp8_1 + tmp9_1;
                             EM_S[INDEX2(0,4,8)]+=tmp0_1 + tmp1_1 + tmp2_1 + tmp3_1 + tmp4_1 + tmp5_1 + tmp6_1 + tmp7_1;  
5469                              EM_S[INDEX2(5,5,8)]+=tmp11_1 + tmp18_1 + tmp22_1 + tmp2_1 + tmp4_1 + tmp9_1;                              EM_S[INDEX2(5,5,8)]+=tmp11_1 + tmp18_1 + tmp22_1 + tmp2_1 + tmp4_1 + tmp9_1;
                             EM_S[INDEX2(1,4,8)]+=tmp17_1 + tmp1_1 + tmp20_1 + tmp22_1 + tmp3_1 + tmp4_1 + tmp5_1 + tmp8_1;  
                             EM_S[INDEX2(6,0,8)]+=tmp10_1 + tmp12_1 + tmp16_1 + tmp18_1 + tmp19_1 + tmp21_1 + tmp2_1 + tmp3_1;  
                             EM_S[INDEX2(7,5,8)]+=tmp10_1 + tmp13_1 + tmp14_1 + tmp17_1 + tmp20_1 + tmp22_1 + tmp2_1 + tmp9_1;  
                             EM_S[INDEX2(2,3,8)]+=tmp17_1 + tmp18_1 + tmp19_1 + tmp20_1 + tmp21_1 + tmp4_1 + tmp8_1 + tmp9_1;  
                             EM_S[INDEX2(2,1,8)]+=tmp0_1 + tmp10_1 + tmp19_1 + tmp1_1 + tmp21_1 + tmp5_1 + tmp8_1 + tmp9_1;  
                             EM_S[INDEX2(4,2,8)]+=tmp10_1 + tmp17_1 + tmp19_1 + tmp20_1 + tmp21_1 + tmp23_1 + tmp2_1 + tmp3_1;  
                             EM_S[INDEX2(1,0,8)]+=tmp17_1 + tmp20_1 + tmp23_1 + tmp4_1 + tmp6_1 + tmp7_1 + tmp8_1 + tmp9_1;  
5470                              EM_S[INDEX2(6,5,8)]+=tmp0_1 + tmp10_1 + tmp13_1 + tmp14_1 + tmp6_1 + tmp7_1 + tmp8_1 + tmp9_1;                              EM_S[INDEX2(6,5,8)]+=tmp0_1 + tmp10_1 + tmp13_1 + tmp14_1 + tmp6_1 + tmp7_1 + tmp8_1 + tmp9_1;
5471                              EM_S[INDEX2(3,5,8)]+=tmp10_1 + tmp17_1 + tmp19_1 + tmp20_1 + tmp21_1 + tmp23_1 + tmp2_1 + tmp3_1;                              EM_S[INDEX2(7,5,8)]+=tmp10_1 + tmp13_1 + tmp14_1 + tmp17_1 + tmp20_1 + tmp22_1 + tmp2_1 + tmp9_1;
                             EM_S[INDEX2(0,1,8)]+=tmp12_1 + tmp16_1 + tmp19_1 + tmp21_1 + tmp23_1 + tmp4_1 + tmp8_1 + tmp9_1;  
                             EM_S[INDEX2(7,0,8)]+=tmp10_1 + tmp11_1 + tmp15_1 + tmp18_1 + tmp3_1 + tmp8_1;  
                             EM_S[INDEX2(4,6,8)]+=tmp10_1 + tmp15_1 + tmp17_1 + tmp1_1 + tmp20_1 + tmp2_1 + tmp5_1 + tmp9_1;  
                             EM_S[INDEX2(5,2,8)]+=tmp0_1 + tmp10_1 + tmp15_1 + tmp23_1 + tmp3_1 + tmp8_1;  
                             EM_S[INDEX2(6,1,8)]+=tmp0_1 + tmp10_1 + tmp18_1 + tmp22_1 + tmp3_1 + tmp8_1;  
                             EM_S[INDEX2(3,1,8)]+=tmp10_1 + tmp15_1 + tmp17_1 + tmp1_1 + tmp20_1 + tmp2_1 + tmp5_1 + tmp9_1;  
                             EM_S[INDEX2(0,2,8)]+=tmp10_1 + tmp13_1 + tmp14_1 + tmp17_1 + tmp20_1 + tmp22_1 + tmp2_1 + tmp9_1;  
                             EM_S[INDEX2(7,4,8)]+=tmp10_1 + tmp11_1 + tmp13_1 + tmp14_1 + tmp19_1 + tmp21_1 + tmp8_1 + tmp9_1;  
5472                              EM_S[INDEX2(0,6,8)]+=tmp10_1 + tmp17_1 + tmp18_1 + tmp20_1 + tmp2_1 + tmp3_1 + tmp6_1 + tmp7_1;                              EM_S[INDEX2(0,6,8)]+=tmp10_1 + tmp17_1 + tmp18_1 + tmp20_1 + tmp2_1 + tmp3_1 + tmp6_1 + tmp7_1;
5473                              EM_S[INDEX2(6,2,8)]+=tmp11_1 + tmp19_1 + tmp1_1 + tmp21_1 + tmp2_1 + tmp3_1 + tmp4_1 + tmp5_1;                              EM_S[INDEX2(1,6,8)]+=tmp0_1 + tmp10_1 + tmp18_1 + tmp22_1 + tmp3_1 + tmp8_1;
5474                              EM_S[INDEX2(4,3,8)]+=tmp10_1 + tmp11_1 + tmp22_1 + tmp23_1 + tmp3_1 + tmp8_1;                              EM_S[INDEX2(2,6,8)]+=tmp11_1 + tmp13_1 + tmp14_1 + tmp2_1 + tmp3_1 + tmp4_1 + tmp6_1 + tmp7_1;
5475                                EM_S[INDEX2(3,6,8)]+=tmp12_1 + tmp13_1 + tmp14_1 + tmp16_1 + tmp22_1 + tmp3_1 + tmp4_1 + tmp8_1;
5476                                EM_S[INDEX2(4,6,8)]+=tmp10_1 + tmp15_1 + tmp17_1 + tmp1_1 + tmp20_1 + tmp2_1 + tmp5_1 + tmp9_1;
5477                                EM_S[INDEX2(5,6,8)]+=tmp0_1 + tmp10_1 + tmp19_1 + tmp1_1 + tmp21_1 + tmp5_1 + tmp8_1 + tmp9_1;
5478                                EM_S[INDEX2(6,6,8)]+=tmp11_1 + tmp15_1 + tmp23_1 + tmp2_1 + tmp4_1 + tmp9_1;
5479                                EM_S[INDEX2(7,6,8)]+=tmp12_1 + tmp16_1 + tmp19_1 + tmp21_1 + tmp23_1 + tmp4_1 + tmp8_1 + tmp9_1;
5480                                EM_S[INDEX2(0,7,8)]+=tmp10_1 + tmp11_1 + tmp15_1 + tmp18_1 + tmp3_1 + tmp8_1;
5481                              EM_S[INDEX2(1,7,8)]+=tmp10_1 + tmp12_1 + tmp16_1 + tmp18_1 + tmp19_1 + tmp21_1 + tmp2_1 + tmp3_1;                              EM_S[INDEX2(1,7,8)]+=tmp10_1 + tmp12_1 + tmp16_1 + tmp18_1 + tmp19_1 + tmp21_1 + tmp2_1 + tmp3_1;
5482                              EM_S[INDEX2(0,5,8)]+=tmp12_1 + tmp15_1 + tmp16_1 + tmp1_1 + tmp3_1 + tmp4_1 + tmp5_1 + tmp8_1;                              EM_S[INDEX2(2,7,8)]+=tmp13_1 + tmp14_1 + tmp15_1 + tmp17_1 + tmp20_1 + tmp3_1 + tmp4_1 + tmp8_1;
5483                              EM_S[INDEX2(3,4,8)]+=tmp10_1 + tmp11_1 + tmp22_1 + tmp23_1 + tmp3_1 + tmp8_1;                              EM_S[INDEX2(3,7,8)]+=tmp0_1 + tmp13_1 + tmp14_1 + tmp19_1 + tmp21_1 + tmp2_1 + tmp3_1 + tmp4_1;
5484                              EM_S[INDEX2(2,4,8)]+=tmp10_1 + tmp12_1 + tmp16_1 + tmp23_1 + tmp2_1 + tmp3_1 + tmp6_1 + tmp7_1;                              EM_S[INDEX2(4,7,8)]+=tmp10_1 + tmp11_1 + tmp1_1 + tmp5_1 + tmp6_1 + tmp7_1 + tmp8_1 + tmp9_1;
5485                                EM_S[INDEX2(5,7,8)]+=tmp10_1 + tmp12_1 + tmp16_1 + tmp1_1 + tmp22_1 + tmp2_1 + tmp5_1 + tmp9_1;
5486                                EM_S[INDEX2(6,7,8)]+=tmp17_1 + tmp20_1 + tmp23_1 + tmp4_1 + tmp6_1 + tmp7_1 + tmp8_1 + tmp9_1;
5487                                EM_S[INDEX2(7,7,8)]+=tmp0_1 + tmp22_1 + tmp23_1 + tmp2_1 + tmp4_1 + tmp9_1;
5488                          }                          }
5489                          ///////////////                          ///////////////
5490                          // process B //                          // process B //
# Line 5496  void Brick::assemblePDESingleReduced(Pas Line 5501  void Brick::assemblePDESingleReduced(Pas
5501                              const double tmp5_1 = B_2*w17;                              const double tmp5_1 = B_2*w17;
5502                              const double tmp1_1 = B_2*w14;                              const double tmp1_1 = B_2*w14;
5503                              const double tmp0_1 = B_1*w13;                              const double tmp0_1 = B_1*w13;
5504                              EM_S[INDEX2(7,3,8)]+=tmp0_1 + tmp1_1 + tmp2_1;                              EM_S[INDEX2(0,0,8)]+=tmp3_1 + tmp4_1 + tmp5_1;
5505                              EM_S[INDEX2(4,7,8)]+=tmp1_1 + tmp3_1 + tmp4_1;                              EM_S[INDEX2(1,0,8)]+=tmp2_1 + tmp3_1 + tmp5_1;
5506                              EM_S[INDEX2(1,3,8)]+=tmp2_1 + tmp3_1 + tmp5_1;                              EM_S[INDEX2(2,0,8)]+=tmp0_1 + tmp4_1 + tmp5_1;
                             EM_S[INDEX2(6,4,8)]+=tmp0_1 + tmp1_1 + tmp4_1;  
5507                              EM_S[INDEX2(3,0,8)]+=tmp0_1 + tmp2_1 + tmp5_1;                              EM_S[INDEX2(3,0,8)]+=tmp0_1 + tmp2_1 + tmp5_1;
                             EM_S[INDEX2(5,4,8)]+=tmp1_1 + tmp2_1 + tmp3_1;  
                             EM_S[INDEX2(0,7,8)]+=tmp3_1 + tmp4_1 + tmp5_1;  
                             EM_S[INDEX2(5,6,8)]+=tmp1_1 + tmp2_1 + tmp3_1;  
                             EM_S[INDEX2(2,6,8)]+=tmp0_1 + tmp4_1 + tmp5_1;  
                             EM_S[INDEX2(1,6,8)]+=tmp2_1 + tmp3_1 + tmp5_1;  
                             EM_S[INDEX2(5,1,8)]+=tmp1_1 + tmp2_1 + tmp3_1;  
                             EM_S[INDEX2(3,7,8)]+=tmp0_1 + tmp2_1 + tmp5_1;  
                             EM_S[INDEX2(2,5,8)]+=tmp0_1 + tmp4_1 + tmp5_1;  
                             EM_S[INDEX2(0,3,8)]+=tmp3_1 + tmp4_1 + tmp5_1;  
                             EM_S[INDEX2(7,2,8)]+=tmp0_1 + tmp1_1 + tmp2_1;  
5508                              EM_S[INDEX2(4,0,8)]+=tmp1_1 + tmp3_1 + tmp4_1;                              EM_S[INDEX2(4,0,8)]+=tmp1_1 + tmp3_1 + tmp4_1;
5509                                EM_S[INDEX2(5,0,8)]+=tmp1_1 + tmp2_1 + tmp3_1;
5510                                EM_S[INDEX2(6,0,8)]+=tmp0_1 + tmp1_1 + tmp4_1;
5511                                EM_S[INDEX2(7,0,8)]+=tmp0_1 + tmp1_1 + tmp2_1;
5512                                EM_S[INDEX2(0,1,8)]+=tmp3_1 + tmp4_1 + tmp5_1;
5513                                EM_S[INDEX2(1,1,8)]+=tmp2_1 + tmp3_1 + tmp5_1;
5514                                EM_S[INDEX2(2,1,8)]+=tmp0_1 + tmp4_1 + tmp5_1;
5515                                EM_S[INDEX2(3,1,8)]+=tmp0_1 + tmp2_1 + tmp5_1;
5516                                EM_S[INDEX2(4,1,8)]+=tmp1_1 + tmp3_1 + tmp4_1;
5517                                EM_S[INDEX2(5,1,8)]+=tmp1_1 + tmp2_1 + tmp3_1;
5518                                EM_S[INDEX2(6,1,8)]+=tmp0_1 + tmp1_1 + tmp4_1;
5519                                EM_S[INDEX2(7,1,8)]+=tmp0_1 + tmp1_1 + tmp2_1;
5520                                EM_S[INDEX2(0,2,8)]+=tmp3_1 + tmp4_1 + tmp5_1;
5521                              EM_S[INDEX2(1,2,8)]+=tmp2_1 + tmp3_1 + tmp5_1;                              EM_S[INDEX2(1,2,8)]+=tmp2_1 + tmp3_1 + tmp5_1;
5522                              EM_S[INDEX2(6,7,8)]+=tmp0_1 + tmp1_1 + tmp4_1;                              EM_S[INDEX2(2,2,8)]+=tmp0_1 + tmp4_1 + tmp5_1;
5523                                EM_S[INDEX2(3,2,8)]+=tmp0_1 + tmp2_1 + tmp5_1;
5524                                EM_S[INDEX2(4,2,8)]+=tmp1_1 + tmp3_1 + tmp4_1;
5525                                EM_S[INDEX2(5,2,8)]+=tmp1_1 + tmp2_1 + tmp3_1;
5526                                EM_S[INDEX2(6,2,8)]+=tmp0_1 + tmp1_1 + tmp4_1;
5527                                EM_S[INDEX2(7,2,8)]+=tmp0_1 + tmp1_1 + tmp2_1;
5528                                EM_S[INDEX2(0,3,8)]+=tmp3_1 + tmp4_1 + tmp5_1;
5529                                EM_S[INDEX2(1,3,8)]+=tmp2_1 + tmp3_1 + tmp5_1;
5530                                EM_S[INDEX2(2,3,8)]+=tmp0_1 + tmp4_1 + tmp5_1;
5531                              EM_S[INDEX2(3,3,8)]+=tmp0_1 + tmp2_1 + tmp5_1;                              EM_S[INDEX2(3,3,8)]+=tmp0_1 + tmp2_1 + tmp5_1;
5532                              EM_S[INDEX2(2,0,8)]+=tmp0_1 + tmp4_1 + tmp5_1;                              EM_S[INDEX2(4,3,8)]+=tmp1_1 + tmp3_1 + tmp4_1;
5533                              EM_S[INDEX2(7,6,8)]+=tmp0_1 + tmp1_1 + tmp2_1;                              EM_S[INDEX2(5,3,8)]+=tmp1_1 + tmp2_1 + tmp3_1;
                             EM_S[INDEX2(4,4,8)]+=tmp1_1 + tmp3_1 + tmp4_1;  
5534                              EM_S[INDEX2(6,3,8)]+=tmp0_1 + tmp1_1 + tmp4_1;                              EM_S[INDEX2(6,3,8)]+=tmp0_1 + tmp1_1 + tmp4_1;
5535                                EM_S[INDEX2(7,3,8)]+=tmp0_1 + tmp1_1 + tmp2_1;
5536                                EM_S[INDEX2(0,4,8)]+=tmp3_1 + tmp4_1 + tmp5_1;
5537                                EM_S[INDEX2(1,4,8)]+=tmp2_1 + tmp3_1 + tmp5_1;
5538                                EM_S[INDEX2(2,4,8)]+=tmp0_1 + tmp4_1 + tmp5_1;
5539                                EM_S[INDEX2(3,4,8)]+=tmp0_1 + tmp2_1 + tmp5_1;
5540                                EM_S[INDEX2(4,4,8)]+=tmp1_1 + tmp3_1 + tmp4_1;
5541                                EM_S[INDEX2(5,4,8)]+=tmp1_1 + tmp2_1 + tmp3_1;
5542                                EM_S[INDEX2(6,4,8)]+=tmp0_1 + tmp1_1 + tmp4_1;
5543                                EM_S[INDEX2(7,4,8)]+=tmp0_1 + tmp1_1 + tmp2_1;
5544                                EM_S[INDEX2(0,5,8)]+=tmp3_1 + tmp4_1 + tmp5_1;
5545                              EM_S[INDEX2(1,5,8)]+=tmp2_1 + tmp3_1 + tmp5_1;                              EM_S[INDEX2(1,5,8)]+=tmp2_1 + tmp3_1 + tmp5_1;
5546                              EM_S[INDEX2(3,6,8)]+=tmp0_1 + tmp2_1 + tmp5_1;                              EM_S[INDEX2(2,5,8)]+=tmp0_1 + tmp4_1 + tmp5_1;
5547                              EM_S[INDEX2(2,2,8)]+=tmp0_1 + tmp4_1 + tmp5_1;                              EM_S[INDEX2(3,5,8)]+=tmp0_1 + tmp2_1 + tmp5_1;
                             EM_S[INDEX2(7,7,8)]+=tmp0_1 + tmp1_1 + tmp2_1;  
                             EM_S[INDEX2(5,7,8)]+=tmp1_1 + tmp2_1 + tmp3_1;  
                             EM_S[INDEX2(5,3,8)]+=tmp1_1 + tmp2_1 + tmp3_1;  
                             EM_S[INDEX2(4,1,8)]+=tmp1_1 + tmp3_1 + tmp4_1;  
                             EM_S[INDEX2(1,1,8)]+=tmp2_1 + tmp3_1 + tmp5_1;  
                             EM_S[INDEX2(2,7,8)]+=tmp0_1 + tmp4_1 + tmp5_1;  
                             EM_S[INDEX2(3,2,8)]+=tmp0_1 + tmp2_1 + tmp5_1;  
                             EM_S[INDEX2(0,0,8)]+=tmp3_1 + tmp4_1 + tmp5_1;  
                             EM_S[INDEX2(6,6,8)]+=tmp0_1 + tmp1_1 + tmp4_1;  
                             EM_S[INDEX2(5,0,8)]+=tmp1_1 + tmp2_1 + tmp3_1;  
                             EM_S[INDEX2(7,1,8)]+=tmp0_1 + tmp1_1 + tmp2_1;  
5548                              EM_S[INDEX2(4,5,8)]+=tmp1_1 + tmp3_1 + tmp4_1;                              EM_S[INDEX2(4,5,8)]+=tmp1_1 + tmp3_1 + tmp4_1;
                             EM_S[INDEX2(0,4,8)]+=tmp3_1 + tmp4_1 + tmp5_1;  
5549                              EM_S[INDEX2(5,5,8)]+=tmp1_1 + tmp2_1 + tmp3_1;                              EM_S[INDEX2(5,5,8)]+=tmp1_1 + tmp2_1 + tmp3_1;
                             EM_S[INDEX2(1,4,8)]+=tmp2_1 + tmp3_1 + tmp5_1;  
                             EM_S[INDEX2(6,0,8)]+=tmp0_1 + tmp1_1 + tmp4_1;  
                             EM_S[INDEX2(7,5,8)]+=tmp0_1 + tmp1_1 + tmp2_1;  
                             EM_S[INDEX2(2,3,8)]+=tmp0_1 + tmp4_1 + tmp5_1;  
                             EM_S[INDEX2(2,1,8)]+=tmp0_1 + tmp4_1 + tmp5_1;  
                             EM_S[INDEX2(4,2,8)]+=tmp1_1 + tmp3_1 + tmp4_1;  
                             EM_S[INDEX2(1,0,8)]+=tmp2_1 + tmp3_1 + tmp5_1;  
5550                              EM_S[INDEX2(6,5,8)]+=tmp0_1 + tmp1_1 + tmp4_1;                              EM_S[INDEX2(6,5,8)]+=tmp0_1 + tmp1_1 + tmp4_1;
5551                              EM_S[INDEX2(3,5,8)]+=tmp0_1 + tmp2_1 + tmp5_1;                              EM_S[INDEX2(7,5,8)]+=tmp0_1 + tmp1_1 + tmp2_1;
                             EM_S[INDEX2(0,1,8)]+=tmp3_1 + tmp4_1 + tmp5_1;  
                             EM_S[INDEX2(7,0,8)]+=tmp0_1 + tmp1_1 + tmp2_1;  
                             EM_S[INDEX2(4,6,8)]+=tmp1_1 + tmp3_1 + tmp4_1;  
                             EM_S[INDEX2(5,2,8)]+=tmp1_1 + tmp2_1 + tmp3_1;  
                             EM_S[INDEX2(6,1,8)]+=tmp0_1 + tmp1_1 + tmp4_1;  
                             EM_S[INDEX2(3,1,8)]+=tmp0_1 + tmp2_1 + tmp5_1;  
                             EM_S[INDEX2(0,2,8)]+=tmp3_1 + tmp4_1 + tmp5_1;  
                             EM_S[INDEX2(7,4,8)]+=tmp0_1 + tmp1_1 + tmp2_1;  
5552                              EM_S[INDEX2(0,6,8)]+=tmp3_1 + tmp4_1 + tmp5_1;                              EM_S[INDEX2(0,6,8)]+=tmp3_1 + tmp4_1 + tmp5_1;
5553                              EM_S[INDEX2(6,2,8)]+=tmp0_1 + tmp1_1 + tmp4_1;                              EM_S[INDEX2(1,6,8)]+=tmp2_1 + tmp3_1 + tmp5_1;
5554                              EM_S[INDEX2(4,3,8)]+=tmp1_1 + tmp3_1 + tmp4_1;                              EM_S[INDEX2(2,6,8)]+=tmp0_1 + tmp4_1 + tmp5_1;
5555                                EM_S[INDEX2(3,6,8)]+=tmp0_1 + tmp2_1 + tmp5_1;
5556                                EM_S[INDEX2(4,6,8)]+=tmp1_1 + tmp3_1 + tmp4_1;
5557                                EM_S[INDEX2(5,6,8)]+=tmp1_1 + tmp2_1 + tmp3_1;
5558                                EM_S[INDEX2(6,6,8)]+=tmp0_1 + tmp1_1 + tmp4_1;
5559                                EM_S[INDEX2(7,6,8)]+=tmp0_1 + tmp1_1 + tmp2_1;
5560                                EM_S[INDEX2(0,7,8)]+=tmp3_1 + tmp4_1 + tmp5_1;
5561                              EM_S[INDEX2(1,7,8)]+=tmp2_1 + tmp3_1 + tmp5_1;                              EM_S[INDEX2(1,7,8)]+=tmp2_1 + tmp3_1 + tmp5_1;
5562                              EM_S[INDEX2(0,5,8)]+=tmp3_1 + tmp4_1 + tmp5_1;                              EM_S[INDEX2(2,7,8)]+=tmp0_1 + tmp4_1 + tmp5_1;
5563                              EM_S[INDEX2(3,4,8)]+=tmp0_1 + tmp2_1 + tmp5_1;                              EM_S[INDEX2(3,7,8)]+=tmp0_1 + tmp2_1 + tmp5_1;
5564                              EM_S[INDEX2(2,4,8)]+=tmp0_1 + tmp4_1 + tmp5_1;                              EM_S[INDEX2(4,7,8)]+=tmp1_1 + tmp3_1 + tmp4_1;
5565                                EM_S[INDEX2(5,7,8)]+=tmp1_1 + tmp2_1 + tmp3_1;
5566                                EM_S[INDEX2(6,7,8)]+=tmp0_1 + tmp1_1 + tmp4_1;
5567                                EM_S[INDEX2(7,7,8)]+=tmp0_1 + tmp1_1 + tmp2_1;
5568                          }                          }
5569                          ///////////////                          ///////////////
5570                          // process C //                          // process C //
# Line 5576  void Brick::assemblePDESingleReduced(Pas Line 5581  void Brick::assemblePDESingleReduced(Pas
5581                              const double tmp1_1 = C_2*w17;                              const double tmp1_1 = C_2*w17;
5582                              const double tmp3_1 = C_2*w14;                              const double tmp3_1 = C_2*w14;
5583                              const double tmp0_1 = C_1*w13;                              const double tmp0_1 = C_1*w13;
5584                              EM_S[INDEX2(7,3,8)]+=tmp0_1 + tmp1_1 + tmp2_1;                              EM_S[INDEX2(0,0,8)]+=tmp1_1 + tmp4_1 + tmp5_1;
5585                              EM_S[INDEX2(4,7,8)]+=tmp0_1 + tmp2_1 + tmp3_1;                              EM_S[INDEX2(1,0,8)]+=tmp1_1 + tmp4_1 + tmp5_1;
5586                              EM_S[INDEX2(1,3,8)]+=tmp0_1 + tmp1_1 + tmp2_1;                              EM_S[INDEX2(2,0,8)]+=tmp1_1 + tmp4_1 + tmp5_1;
                             EM_S[INDEX2(6,4,8)]+=tmp3_1 + tmp4_1 + tmp5_1;  
5587                              EM_S[INDEX2(3,0,8)]+=tmp1_1 + tmp4_1 + tmp5_1;                              EM_S[INDEX2(3,0,8)]+=tmp1_1 + tmp4_1 + tmp5_1;
                             EM_S[INDEX2(5,4,8)]+=tmp3_1 + tmp4_1 + tmp5_1;  
                             EM_S[INDEX2(0,7,8)]+=tmp0_1 + tmp2_1 + tmp3_1;  
                             EM_S[INDEX2(5,6,8)]+=tmp0_1 + tmp3_1 + tmp5_1;  
                             EM_S[INDEX2(2,6,8)]+=tmp0_1 + tmp3_1 + tmp5_1;  
                             EM_S[INDEX2(1,6,8)]+=tmp0_1 + tmp3_1 + tmp5_1;  
                             EM_S[INDEX2(5,1,8)]+=tmp1_1 + tmp2_1 + tmp4_1;  
                             EM_S[INDEX2(3,7,8)]+=tmp0_1 + tmp2_1 + tmp3_1;  
                             EM_S[INDEX2(2,5,8)]+=tmp2_1 + tmp3_1 + tmp4_1;  
                             EM_S[INDEX2(0,3,8)]+=tmp0_1 + tmp1_1 + tmp2_1;  
                             EM_S[INDEX2(7,2,8)]+=tmp0_1 + tmp1_1 + tmp5_1;  
5588                              EM_S[INDEX2(4,0,8)]+=tmp1_1 + tmp4_1 + tmp5_1;                              EM_S[INDEX2(4,0,8)]+=tmp1_1 + tmp4_1 + tmp5_1;
5589                                EM_S[INDEX2(5,0,8)]+=tmp1_1 + tmp4_1 + tmp5_1;
5590                                EM_S[INDEX2(6,0,8)]+=tmp1_1 + tmp4_1 + tmp5_1;
5591                                EM_S[INDEX2(7,0,8)]+=tmp1_1 + tmp4_1 + tmp5_1;
5592                                EM_S[INDEX2(0,1,8)]+=tmp1_1 + tmp2_1 + tmp4_1;
5593                                EM_S[INDEX2(1,1,8)]+=tmp1_1 + tmp2_1 + tmp4_1;
5594                                EM_S[INDEX2(2,1,8)]+=tmp1_1 + tmp2_1 + tmp4_1;
5595                                EM_S[INDEX2(3,1,8)]+=tmp1_1 + tmp2_1 + tmp4_1;
5596                                EM_S[INDEX2(4,1,8)]+=tmp1_1 + tmp2_1 + tmp4_1;
5597                                EM_S[INDEX2(5,1,8)]+=tmp1_1 + tmp2_1 + tmp4_1;
5598                                EM_S[INDEX2(6,1,8)]+=tmp1_1 + tmp2_1 + tmp4_1;
5599                                EM_S[INDEX2(7,1,8)]+=tmp1_1 + tmp2_1 + tmp4_1;
5600                                EM_S[INDEX2(0,2,8)]+=tmp0_1 + tmp1_1 + tmp5_1;
5601                              EM_S[INDEX2(1,2,8)]+=tmp0_1 + tmp1_1 + tmp5_1;                              EM_S[INDEX2(1,2,8)]+=tmp0_1 + tmp1_1 + tmp5_1;
5602                              EM_S[INDEX2(6,7,8)]+=tmp0_1 + tmp2_1 + tmp3_1;                              EM_S[INDEX2(2,2,8)]+=tmp0_1 + tmp1_1 + tmp5_1;
5603                                EM_S[INDEX2(3,2,8)]+=tmp0_1 + tmp1_1 + tmp5_1;
5604                                EM_S[INDEX2(4,2,8)]+=tmp0_1 + tmp1_1 + tmp5_1;
5605                                EM_S[INDEX2(5,2,8)]+=tmp0_1 + tmp1_1 + tmp5_1;
5606                                EM_S[INDEX2(6,2,8)]+=tmp0_1 + tmp1_1 + tmp5_1;
5607                                EM_S[INDEX2(7,2,8)]+=tmp0_1 + tmp1_1 + tmp5_1;
5608                                EM_S[INDEX2(0,3,8)]+=tmp0_1 + tmp1_1 + tmp2_1;
5609                                EM_S[INDEX2(1,3,8)]+=tmp0_1 + tmp1_1 + tmp2_1;
5610                                EM_S[INDEX2(2,3,8)]+=tmp0_1 + tmp1_1 + tmp2_1;
5611                              EM_S[INDEX2(3,3,8)]+=tmp0_1 + tmp1_1 + tmp2_1;                              EM_S[INDEX2(3,3,8)]+=tmp0_1 + tmp1_1 + tmp2_1;
5612                              EM_S[INDEX2(2,0,8)]+=tmp1_1 + tmp4_1 + tmp5_1;                              EM_S[INDEX2(4,3,8)]+=tmp0_1 + tmp1_1 + tmp2_1;
5613                              EM_S[INDEX2(7,6,8)]+=tmp0_1 + tmp3_1 + tmp5_1;                              EM_S[INDEX2(5,3,8)]+=tmp0_1 + tmp1_1 + tmp2_1;
                             EM_S[INDEX2(4,4,8)]+=tmp3_1 + tmp4_1 + tmp5_1;  
5614                              EM_S[INDEX2(6,3,8)]+=tmp0_1 + tmp1_1 + tmp2_1;                              EM_S[INDEX2(6,3,8)]+=tmp0_1 + tmp1_1 + tmp2_1;
5615                                EM_S[INDEX2(7,3,8)]+=tmp0_1 + tmp1_1 + tmp2_1;
5616                                EM_S[INDEX2(0,4,8)]+=tmp3_1 + tmp4_1 + tmp5_1;
5617                                EM_S[INDEX2(1,4,8)]+=tmp3_1 + tmp4_1 + tmp5_1;
5618                                EM_S[INDEX2(2,4,8)]+=tmp3_1 + tmp4_1 + tmp5_1;
5619                                EM_S[INDEX2(3,4,8)]+=tmp3_1 + tmp4_1 + tmp5_1;
5620                                EM_S[INDEX2(4,4,8)]+=tmp3_1 + tmp4_1 + tmp5_1;
5621                                EM_S[INDEX2(5,4,8)]+=tmp3_1 + tmp4_1 + tmp5_1;
5622                                EM_S[INDEX2(6,4,8)]+=tmp3_1 + tmp4_1 + tmp5_1;
5623                                EM_S[INDEX2(7,4,8)]+=tmp3_1 + tmp4_1 + tmp5_1;
5624                                EM_S[INDEX2(0,5,8)]+=tmp2_1 + tmp3_1 + tmp4_1;
5625                              EM_S[INDEX2(1,5,8)]+=tmp2_1 + tmp3_1 + tmp4_1;                              EM_S[INDEX2(1,5,8)]+=tmp2_1 + tmp3_1 + tmp4_1;
5626                              EM_S[INDEX2(3,6,8)]+=tmp0_1 + tmp3_1 + tmp5_1;                              EM_S[INDEX2(2,5,8)]+=tmp2_1 + tmp3_1 + tmp4_1;
5627                              EM_S[INDEX2(2,2,8)]+=tmp0_1 + tmp1_1 + tmp5_1;                              EM_S[INDEX2(3,5,8)]+=tmp2_1 + tmp3_1 + tmp4_1;
                             EM_S[INDEX2(7,7,8)]+=tmp0_1 + tmp2_1 + tmp3_1;  
                             EM_S[INDEX2(5,7,8)]+=tmp0_1 + tmp2_1 + tmp3_1;  
                             EM_S[INDEX2(5,3,8)]+=tmp0_1 + tmp1_1 + tmp2_1;  
                             EM_S[INDEX2(4,1,8)]+=tmp1_1 + tmp2_1 + tmp4_1;  
                             EM_S[INDEX2(1,1,8)]+=tmp1_1 + tmp2_1 + tmp4_1;  
                             EM_S[INDEX2(2,7,8)]+=tmp0_1 + tmp2_1 + tmp3_1;  
                             EM_S[INDEX2(3,2,8)]+=tmp0_1 + tmp1_1 + tmp5_1;  
                             EM_S[INDEX2(0,0,8)]+=tmp1_1 + tmp4_1 + tmp5_1;  
                             EM_S[INDEX2(6,6,8)]+=tmp0_1 + tmp3_1 + tmp5_1;  
                             EM_S[INDEX2(5,0,8)]+=tmp1_1 + tmp4_1 + tmp5_1;  
                             EM_S[INDEX2(7,1,8)]+=tmp1_1 + tmp2_1 + tmp4_1;  
5628                              EM_S[INDEX2(4,5,8)]+=tmp2_1 + tmp3_1 + tmp4_1;                              EM_S[INDEX2(4,5,8)]+=tmp2_1 + tmp3_1 + tmp4_1;
                             EM_S[INDEX2(0,4,8)]+=tmp3_1 + tmp4_1 + tmp5_1;  
5629                              EM_S[INDEX2(5,5,8)]+=tmp2_1 + tmp3_1 + tmp4_1;                              EM_S[INDEX2(5,5,8)]+=tmp2_1 + tmp3_1 + tmp4_1;
                             EM_S[INDEX2(1,4,8)]+=tmp3_1 + tmp4_1 + tmp5_1;  
                             EM_S[INDEX2(6,0,8)]+=tmp1_1 + tmp4_1 + tmp5_1;  
                             EM_S[INDEX2(7,5,8)]+=tmp2_1 + tmp3_1 + tmp4_1;  
                             EM_S[INDEX2(2,3,8)]+=tmp0_1 + tmp1_1 + tmp2_1;  
                             EM_S[INDEX2(2,1,8)]+=tmp1_1 + tmp2_1 + tmp4_1;  
                             EM_S[INDEX2(4,2,8)]+=tmp0_1 + tmp1_1 + tmp5_1;  
                             EM_S[INDEX2(1,0,8)]+=tmp1_1 + tmp4_1 + tmp5_1;  
5630                              EM_S[INDEX2(6,5,8)]+=tmp2_1 + tmp3_1 + tmp4_1;                              EM_S[INDEX2(6,5,8)]+=tmp2_1 + tmp3_1 + tmp4_1;
5631                              EM_S[INDEX2(3,5,8)]+=tmp2_1 + tmp3_1 + tmp4_1;                              EM_S[INDEX2(7,5,8)]+=tmp2_1 + tmp3_1 + tmp4_1;
                             EM_S[INDEX2(0,1,8)]+=tmp1_1 + tmp2_1 + tmp4_1;  
                             EM_S[INDEX2(7,0,8)]+=tmp1_1 + tmp4_1 + tmp5_1;  
                             EM_S[INDEX2(4,6,8)]+=tmp0_1 + tmp3_1 + tmp5_1;  
                             EM_S[INDEX2(5,2,8)]+=tmp0_1 + tmp1_1 + tmp5_1;  
                             EM_S[INDEX2(6,1,8)]+=tmp1_1 + tmp2_1 + tmp4_1;  
                             EM_S[INDEX2(3,1,8)]+=tmp1_1 + tmp2_1 + tmp4_1;  
                             EM_S[INDEX2(0,2,8)]+=tmp0_1 + tmp1_1 + tmp5_1;  
                             EM_S[INDEX2(7,4,8)]+=tmp3_1 + tmp4_1 + tmp5_1;  
5632                              EM_S[INDEX2(0,6,8)]+=tmp0_1 + tmp3_1 + tmp5_1;                              EM_S[INDEX2(0,6,8)]+=tmp0_1 + tmp3_1 + tmp5_1;
5633                              EM_S[INDEX2(6,2,8)]+=tmp0_1 + tmp1_1 + tmp5_1;                              EM_S[INDEX2(1,6,8)]+=tmp0_1 + tmp3_1 + tmp5_1;
5634                              EM_S[INDEX2(4,3,8)]+=tmp0_1 + tmp1_1 + tmp2_1;                              EM_S[INDEX2(2,6,8)]+=tmp0_1 + tmp3_1 + tmp5_1;
5635                                EM_S[INDEX2(3,6,8)]+=tmp0_1 + tmp3_1 + tmp5_1;
5636                                EM_S[INDEX2(4,6,8)]+=tmp0_1 + tmp3_1 + tmp5_1;
5637                                EM_S[INDEX2(5,6,8)]+=tmp0_1 + tmp3_1 + tmp5_1;
5638                                EM_S[INDEX2(6,6,8)]+=tmp0_1 + tmp3_1 + tmp5_1;
5639                                EM_S[INDEX2(7,6,8)]+=tmp0_1 + tmp3_1 + tmp5_1;
5640                                EM_S[INDEX2(0,7,8)]+=tmp0_1 + tmp2_1 + tmp3_1;
5641                              EM_S[INDEX2(1,7,8)]+=tmp0_1 + tmp2_1 + tmp3_1;                              EM_S[INDEX2(1,7,8)]+=tmp0_1 + tmp2_1 + tmp3_1;
5642                              EM_S[INDEX2(0,5,8)]+=tmp2_1 + tmp3_1 + tmp4_1;                              EM_S[INDEX2(2,7,8)]+=tmp0_1 + tmp2_1 + tmp3_1;
5643                              EM_S[INDEX2(3,4,8)]+=tmp3_1 + tmp4_1 + tmp5_1;                              EM_S[INDEX2(3,7,8)]+=tmp0_1 + tmp2_1 + tmp3_1;
5644                              EM_S[INDEX2(2,4,8)]+=tmp3_1 + tmp4_1 + tmp5_1;                              EM_S[INDEX2(4,7,8)]+=tmp0_1 + tmp2_1 + tmp3_1;
5645                                EM_S[INDEX2(5,7,8)]+=tmp0_1 + tmp2_1 + tmp3_1;
5646                                EM_S[INDEX2(6,7,8)]+=tmp0_1 + tmp2_1 + tmp3_1;
5647                                EM_S[INDEX2(7,7,8)]+=tmp0_1 + tmp2_1 + tmp3_1;
5648                          }                          }
5649                          ///////////////                          ///////////////
5650                          // process D //                          // process D //
# Line 5647  void Brick::assemblePDESingleReduced(Pas Line 5652  void Brick::assemblePDESingleReduced(Pas
5652                          if (!D.isEmpty()) {                          if (!D.isEmpty()) {
5653                              add_EM_S=true;                              add_EM_S=true;
5654                              const double* D_p=const_cast<escript::Data*>(&D)->getSampleDataRO(e);                              const double* D_p=const_cast<escript::Data*>(&D)->getSampleDataRO(e);
5655                              const double D_0 = D_p[0];                              const double tmp0_1 = D_p[0]*w18;
5656                              const double tmp0_1 = D_0*w18;                              EM_S[INDEX2(0,0,8)]+=tmp0_1;
5657                              EM_S[INDEX2(7,3,8)]+=tmp0_1;                              EM_S[INDEX2(1,0,8)]+=tmp0_1;
5658                              EM_S[INDEX2(4,7,8)]+=tmp0_1;                              EM_S[INDEX2(2,0,8)]+=tmp0_1;
                             EM_S[INDEX2(1,3,8)]+=tmp0_1;  
                             EM_S[INDEX2(6,4,8)]+=tmp0_1;  
5659                              EM_S[INDEX2(3,0,8)]+=tmp0_1;                              EM_S[INDEX2(3,0,8)]+=tmp0_1;
                             EM_S[INDEX2(5,4,8)]+=tmp0_1;  
                             EM_S[INDEX2(0,7,8)]+=tmp0_1;  
                             EM_S[INDEX2(5,6,8)]+=tmp0_1;  
                             EM_S[INDEX2(2,6,8)]+=tmp0_1;  
                             EM_S[INDEX2(1,6,8)]+=tmp0_1;  
                             EM_S[INDEX2(5,1,8)]+=tmp0_1;  
                             EM_S[INDEX2(3,7,8)]+=tmp0_1;  
                             EM_S[INDEX2(2,5,8)]+=tmp0_1;  
                             EM_S[INDEX2(0,3,8)]+=tmp0_1;  
                             EM_S[INDEX2(7,2,8)]+=tmp0_1;  
5660                              EM_S[INDEX2(4,0,8)]+=tmp0_1;                              EM_S[INDEX2(4,0,8)]+=tmp0_1;
5661                                EM_S[INDEX2(5,0,8)]+=tmp0_1;
5662                                EM_S[INDEX2(6,0,8)]+=tmp0_1;
5663                                EM_S[INDEX2(7,0,8)]+=tmp0_1;
5664                                EM_S[INDEX2(0,1,8)]+=tmp0_1;
5665                                EM_S[INDEX2(1,1,8)]+=tmp0_1;
5666                                EM_S[INDEX2(2,1,8)]+=tmp0_1;
5667                                EM_S[INDEX2(3,1,8)]+=tmp0_1;
5668                                EM_S[INDEX2(4,1,8)]+=tmp0_1;
5669                                EM_S[INDEX2(5,1,8)]+=tmp0_1;
5670                                EM_S[INDEX2(6,1,8)]+=tmp0_1;
5671                                EM_S[INDEX2(7,1,8)]+=tmp0_1;
5672                                EM_S[INDEX2(0,2,8)]+=tmp0_1;
5673                              EM_S[INDEX2(1,2,8)]+=tmp0_1;                              EM_S[INDEX2(1,2,8)]+=tmp0_1;
5674                              EM_S[INDEX2(6,7,8)]+=tmp0_1;                              EM_S[INDEX2(2,2,8)]+=tmp0_1;
5675                                EM_S[INDEX2(3,2,8)]+=tmp0_1;
5676                                EM_S[INDEX2(4,2,8)]+=tmp0_1;
5677                                EM_S[INDEX2(5,2,8)]+=tmp0_1;
5678                                EM_S[INDEX2(6,2,8)]+=tmp0_1;
5679                                EM_S[INDEX2(7,2,8)]+=tmp0_1;
5680                                EM_S[INDEX2(0,3,8)]+=tmp0_1;
5681                                EM_S[INDEX2(1,3,8)]+=tmp0_1;
5682                                EM_S[INDEX2(2,3,8)]+=tmp0_1;
5683                              EM_S[INDEX2(3,3,8)]+=tmp0_1;                              EM_S[INDEX2(3,3,8)]+=tmp0_1;
5684                              EM_S[INDEX2(2,0,8)]+=tmp0_1;                              EM_S[INDEX2(4,3,8)]+=tmp0_1;
5685                              EM_S[INDEX2(7,6,8)]+=tmp0_1;                              EM_S[INDEX2(5,3,8)]+=tmp0_1;
                             EM_S[INDEX2(4,4,8)]+=tmp0_1;  
5686                              EM_S[INDEX2(6,3,8)]+=tmp0_1;                              EM_S[INDEX2(6,3,8)]+=tmp0_1;
5687                                EM_S[INDEX2(7,3,8)]+=tmp0_1;
5688                                EM_S[INDEX2(0,4,8)]+=tmp0_1;
5689                                EM_S[INDEX2(1,4,8)]+=tmp0_1;
5690                                EM_S[INDEX2(2,4,8)]+=tmp0_1;
5691                                EM_S[INDEX2(3,4,8)]+=tmp0_1;
5692                                EM_S[INDEX2(4,4,8)]+=tmp0_1;
5693                                EM_S[INDEX2(5,4,8)]+=tmp0_1;
5694                                EM_S[INDEX2(6,4,8)]+=tmp0_1;
5695                                EM_S[INDEX2(7,4,8)]+=tmp0_1;
5696                                EM_S[INDEX2(0,5,8)]+=tmp0_1;
5697                              EM_S[INDEX2(1,5,8)]+=tmp0_1;                              EM_S[INDEX2(1,5,8)]+=tmp0_1;
5698                              EM_S[INDEX2(3,6,8)]+=tmp0_1;                              EM_S[INDEX2(2,5,8)]+=tmp0_1;
5699                              EM_S[INDEX2(2,2,8)]+=tmp0_1;                              EM_S[INDEX2(3,5,8)]+=tmp0_1;
                             EM_S[INDEX2(7,7,8)]+=tmp0_1;  
                             EM_S[INDEX2(5,7,8)]+=tmp0_1;  
                             EM_S[INDEX2(5,3,8)]+=tmp0_1;  
                             EM_S[INDEX2(4,1,8)]+=tmp0_1;  
                             EM_S[INDEX2(1,1,8)]+=tmp0_1;  
                             EM_S[INDEX2(2,7,8)]+=tmp0_1;  
                             EM_S[INDEX2(3,2,8)]+=tmp0_1;  
                             EM_S[INDEX2(0,0,8)]+=tmp0_1;  
                             EM_S[INDEX2(6,6,8)]+=tmp0_1;  
                             EM_S[INDEX2(5,0,8)]+=tmp0_1;  
                             EM_S[INDEX2(7,1,8)]+=tmp0_1;  
5700                              EM_S[INDEX2(4,5,8)]+=tmp0_1;                              EM_S[INDEX2(4,5,8)]+=tmp0_1;
                             EM_S[INDEX2(0,4,8)]+=tmp0_1;  
5701                              EM_S[INDEX2(5,5,8)]+=tmp0_1;                              EM_S[INDEX2(5,5,8)]+=tmp0_1;
                             EM_S[INDEX2(1,4,8)]+=tmp0_1;  
                             EM_S[INDEX2(6,0,8)]+=tmp0_1;  
                             EM_S[INDEX2(7,5,8)]+=tmp0_1;  
                             EM_S[INDEX2(2,3,8)]+=tmp0_1;  
                             EM_S[INDEX2(2,1,8)]+=tmp0_1;  
                             EM_S[INDEX2(4,2,8)]+=tmp0_1;  
                             EM_S[INDEX2(1,0,8)]+=tmp0_1;  
5702                              EM_S[INDEX2(6,5,8)]+=tmp0_1;                              EM_S[INDEX2(6,5,8)]+=tmp0_1;
5703                              EM_S[INDEX2(3,5,8)]+=tmp0_1;                              EM_S[INDEX2(7,5,8)]+=tmp0_1;
                             EM_S[INDEX2(0,1,8)]+=tmp0_1;  
                             EM_S[INDEX2(7,0,8)]+=tmp0_1;  
                             EM_S[INDEX2(4,6,8)]+=tmp0_1;  
                             EM_S[INDEX2(5,2,8)]+=tmp0_1;  
                             EM_S[INDEX2(6,1,8)]+=tmp0_1;  
                             EM_S[INDEX2(3,1,8)]+=tmp0_1;  
                             EM_S[INDEX2(0,2,8)]+=tmp0_1;  
                             EM_S[INDEX2(7,4,8)]+=tmp0_1;  
5704                              EM_S[INDEX2(0,6,8)]+=tmp0_1;                              EM_S[INDEX2(0,6,8)]+=tmp0_1;
5705                              EM_S[INDEX2(6,2,8)]+=tmp0_1;                              EM_S[INDEX2(1,6,8)]+=tmp0_1;
5706                              EM_S[INDEX2(4,3,8)]+=tmp0_1;                              EM_S[INDEX2(2,6,8)]+=tmp0_1;
5707                                EM_S[INDEX2(3,6,8)]+=tmp0_1;
5708                                EM_S[INDEX2(4,6,8)]+=tmp0_1;
5709                                EM_S[INDEX2(5,6,8)]+=tmp0_1;
5710                                EM_S[INDEX2(6,6,8)]+=tmp0_1;
5711                                EM_S[INDEX2(7,6,8)]+=tmp0_1;
5712                                EM_S[INDEX2(0,7,8)]+=tmp0_1;
5713                              EM_S[INDEX2(1,7,8)]+=tmp0_1;                              EM_S[INDEX2(1,7,8)]+=tmp0_1;
5714                              EM_S[INDEX2(0,5,8)]+=tmp0_1;                              EM_S[INDEX2(2,7,8)]+=tmp0_1;
5715                              EM_S[INDEX2(3,4,8)]+=tmp0_1;                              EM_S[INDEX2(3,7,8)]+=tmp0_1;
5716                              EM_S[INDEX2(2,4,8)]+=tmp0_1;                              EM_S[INDEX2(4,7,8)]+=tmp0_1;
5717                                EM_S[INDEX2(5,7,8)]+=tmp0_1;
5718                                EM_S[INDEX2(6,7,8)]+=tmp0_1;
5719                                EM_S[INDEX2(7,7,8)]+=tmp0_1;
5720                          }                          }
5721                          ///////////////                          ///////////////
5722                          // process X //                          // process X //
# Line 9391  void Brick::assemblePDEBoundarySingle(Pa Line 9395  void Brick::assemblePDEBoundarySingle(Pa
9395      const double h0 = m_l0/m_gNE0;      const double h0 = m_l0/m_gNE0;
9396      const double h1 = m_l1/m_gNE1;      const double h1 = m_l1/m_gNE1;
9397      const double h2 = m_l2/m_gNE2;      const double h2 = m_l2/m_gNE2;
     /* GENERATOR SNIP_PDEBC_SINGLE_PRE TOP */  
9398      const double w0 = 0.0018607582807716854616*h1*h2;      const double w0 = 0.0018607582807716854616*h1*h2;
9399      const double w1 = 0.025917019497006092316*h1*h2;      const double w1 = 0.025917019497006092316*h1*h2;
9400      const double w2 = 0.0069444444444444444444*h1*h2;      const double w2 = 0.0069444444444444444444*h1*h2;
# Line 9428  void Brick::assemblePDEBoundarySingle(Pa Line 9431  void Brick::assemblePDEBoundarySingle(Pa
9431      const double w33 = 0.041666666666666666667*h0*h1;      const double w33 = 0.041666666666666666667*h0*h1;
9432      const double w34 = 0.01116454968463011277*h0*h1;      const double w34 = 0.01116454968463011277*h0*h1;
9433      const double w35 = 0.25*h0*h1;      const double w35 = 0.25*h0*h1;
     /* GENERATOR SNIP_PDEBC_SINGLE_PRE BOTTOM */  
9434      const bool add_EM_S=!d.isEmpty();      const bool add_EM_S=!d.isEmpty();
9435      const bool add_EM_F=!y.isEmpty();      const bool add_EM_F=!y.isEmpty();
9436      rhs.requireWrite();      rhs.requireWrite();
# Line 9442  void Brick::assemblePDEBoundarySingle(Pa Line 9444  void Brick::assemblePDEBoundarySingle(Pa
9444                          vector<double> EM_S(8*8, 0);                          vector<double> EM_S(8*8, 0);
9445                          vector<double> EM_F(8, 0);                          vector<double> EM_F(8, 0);
9446                          const index_t e = INDEX2(k1,k2,m_NE1);                          const index_t e = INDEX2(k1,k2,m_NE1);
                         /* GENERATOR SNIP_PDEBC_SINGLE_0 TOP */  
9447                          ///////////////                          ///////////////
9448                          // process d //                          // process d //
9449                          ///////////////                          ///////////////
# Line 9479  void Brick::assemblePDEBoundarySingle(Pa Line 9480  void Brick::assemblePDEBoundarySingle(Pa
9480                                  const double tmp10_1 = tmp4_0*w2;                                  const double tmp10_1 = tmp4_0*w2;
9481                                  const double tmp11_1 = d_2*w3;                                  const double tmp11_1 = d_2*w3;
9482                                  const double tmp0_1 = tmp0_0*w0;                                  const double tmp0_1 = tmp0_0*w0;
                                 EM_S[INDEX2(6,4,8)]+=tmp0_1 + tmp1_1;  
                                 EM_S[INDEX2(2,6,8)]+=tmp2_1 + tmp3_1;  
                                 EM_S[INDEX2(4,0,8)]+=tmp4_1 + tmp5_1;  
                                 EM_S[INDEX2(2,0,8)]+=tmp6_1 + tmp7_1;  
                                 EM_S[INDEX2(4,4,8)]+=tmp10_1 + tmp8_1 + tmp9_1;  
                                 EM_S[INDEX2(2,2,8)]+=tmp10_1 + tmp11_1 + tmp12_1;  
9483                                  EM_S[INDEX2(0,0,8)]+=tmp13_1 + tmp14_1 + tmp15_1;                                  EM_S[INDEX2(0,0,8)]+=tmp13_1 + tmp14_1 + tmp15_1;
9484                                  EM_S[INDEX2(6,6,8)]+=tmp15_1 + tmp16_1 + tmp17_1;                                  EM_S[INDEX2(2,0,8)]+=tmp6_1 + tmp7_1;
9485                                  EM_S[INDEX2(0,4,8)]+=tmp4_1 + tmp5_1;                                  EM_S[INDEX2(4,0,8)]+=tmp4_1 + tmp5_1;
9486                                  EM_S[INDEX2(6,0,8)]+=tmp18_1;                                  EM_S[INDEX2(6,0,8)]+=tmp18_1;
                                 EM_S[INDEX2(4,2,8)]+=tmp18_1;  
                                 EM_S[INDEX2(4,6,8)]+=tmp0_1 + tmp1_1;  
9487                                  EM_S[INDEX2(0,2,8)]+=tmp6_1 + tmp7_1;                                  EM_S[INDEX2(0,2,8)]+=tmp6_1 + tmp7_1;
9488                                  EM_S[INDEX2(0,6,8)]+=tmp18_1;                                  EM_S[INDEX2(2,2,8)]+=tmp10_1 + tmp11_1 + tmp12_1;
9489                                    EM_S[INDEX2(4,2,8)]+=tmp18_1;
9490                                  EM_S[INDEX2(6,2,8)]+=tmp2_1 + tmp3_1;                                  EM_S[INDEX2(6,2,8)]+=tmp2_1 + tmp3_1;
9491                                    EM_S[INDEX2(0,4,8)]+=tmp4_1 + tmp5_1;
9492                                  EM_S[INDEX2(2,4,8)]+=tmp18_1;                                  EM_S[INDEX2(2,4,8)]+=tmp18_1;
9493                                    EM_S[INDEX2(4,4,8)]+=tmp10_1 + tmp8_1 + tmp9_1;
9494                                    EM_S[INDEX2(6,4,8)]+=tmp0_1 + tmp1_1;
9495                                    EM_S[INDEX2(0,6,8)]+=tmp18_1;
9496                                    EM_S[INDEX2(2,6,8)]+=tmp2_1 + tmp3_1;
9497                                    EM_S[INDEX2(4,6,8)]+=tmp0_1 + tmp1_1;
9498                                    EM_S[INDEX2(6,6,8)]+=tmp15_1 + tmp16_1 + tmp17_1;
9499                              } else { /* constant data */                              } else { /* constant data */
9500                                  const double tmp0_1 = d_p[0]*w5;                                  const double tmp0_1 = d_p[0]*w5;
9501                                  const double tmp2_1 = d_p[0]*w7;                                  const double tmp2_1 = d_p[0]*w7;
9502                                  const double tmp1_1 = d_p[0]*w6;                                  const double tmp1_1 = d_p[0]*w6;
                                 EM_S[INDEX2(6,4,8)]+=tmp0_1;  
                                 EM_S[INDEX2(2,6,8)]+=tmp0_1;  
                                 EM_S[INDEX2(4,0,8)]+=tmp0_1;  
                                 EM_S[INDEX2(2,0,8)]+=tmp0_1;  
                                 EM_S[INDEX2(4,4,8)]+=tmp1_1;  
                                 EM_S[INDEX2(2,2,8)]+=tmp1_1;  
9503                                  EM_S[INDEX2(0,0,8)]+=tmp1_1;                                  EM_S[INDEX2(0,0,8)]+=tmp1_1;
9504                                  EM_S[INDEX2(6,6,8)]+=tmp1_1;                                  EM_S[INDEX2(2,0,8)]+=tmp0_1;
9505                                  EM_S[INDEX2(0,4,8)]+=tmp0_1;                                  EM_S[INDEX2(4,0,8)]+=tmp0_1;
9506                                  EM_S[INDEX2(6,0,8)]+=tmp2_1;                                  EM_S[INDEX2(6,0,8)]+=tmp2_1;
                                 EM_S[INDEX2(4,2,8)]+=tmp2_1;  
                                 EM_S[INDEX2(4,6,8)]+=tmp0_1;  
9507                                  EM_S[INDEX2(0,2,8)]+=tmp0_1;                                  EM_S[INDEX2(0,2,8)]+=tmp0_1;
9508                                  EM_S[INDEX2(0,6,8)]+=tmp2_1;                                  EM_S[INDEX2(2,2,8)]+=tmp1_1;
9509                                    EM_S[INDEX2(4,2,8)]+=tmp2_1;
9510                                  EM_S[INDEX2(6,2,8)]+=tmp0_1;                                  EM_S[INDEX2(6,2,8)]+=tmp0_1;
9511                                    EM_S[INDEX2(0,4,8)]+=tmp0_1;
9512                                  EM_S[INDEX2(2,4,8)]+=tmp2_1;                                  EM_S[INDEX2(2,4,8)]+=tmp2_1;
9513                                    EM_S[INDEX2(4,4,8)]+=tmp1_1;
9514                                    EM_S[INDEX2(6,4,8)]+=tmp0_1;
9515                                    EM_S[INDEX2(0,6,8)]+=tmp2_1;
9516                                    EM_S[INDEX2(2,6,8)]+=tmp0_1;
9517                                    EM_S[INDEX2(4,6,8)]+=tmp0_1;
9518                                    EM_S[INDEX2(6,6,8)]+=tmp1_1;
9519                              }                              }
9520                          }                          }
9521                          ///////////////                          ///////////////
# Line 9551  void Brick::assemblePDEBoundarySingle(Pa Line 9552  void Brick::assemblePDEBoundarySingle(Pa
9552                                  EM_F[6]+=tmp0_1;                                  EM_F[6]+=tmp0_1;
9553                              }                              }
9554                          }                          }
                         /* GENERATOR SNIP_PDEBC_SINGLE_0 BOTTOM */  
9555                          const index_t firstNode=m_N0*m_N1*k2+m_N0*k1;                          const index_t firstNode=m_N0*m_N1*k2+m_N0*k1;
9556                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,
9557                                  add_EM_F, firstNode);                                  add_EM_F, firstNode);
# Line 9568  void Brick::assemblePDEBoundarySingle(Pa Line 9568  void Brick::assemblePDEBoundarySingle(Pa
9568                          vector<double> EM_S(8*8, 0);                          vector<double> EM_S(8*8, 0);
9569                          vector<double> EM_F(8, 0);                          vector<double> EM_F(8, 0);
9570                          const index_t e = m_faceOffset[1]+INDEX2(k1,k2,m_NE1);                          const index_t e = m_faceOffset[1]+INDEX2(k1,k2,m_NE1);
                         /* GENERATOR SNIP_PDEBC_SINGLE_1 TOP */  
9571                          ///////////////                          ///////////////
9572                          // process d //                          // process d //
9573                          ///////////////                          ///////////////
# Line 9605  void Brick::assemblePDEBoundarySingle(Pa Line 9604  void Brick::assemblePDEBoundarySingle(Pa
9604                                  const double tmp8_1 = tmp4_0*w2;                                  const double tmp8_1 = tmp4_0*w2;
9605                                  const double tmp6_1 = d_2*w3;                                  const double tmp6_1 = d_2*w3;
9606                                  const double tmp0_1 = tmp0_0*w0;                                  const double tmp0_1 = tmp0_0*w0;
9607                                  EM_S[INDEX2(7,3,8)]+=tmp0_1 + tmp1_1;                                  EM_S[INDEX2(1,1,8)]+=tmp11_1 + tmp15_1 + tmp16_1;
9608                                  EM_S[INDEX2(1,3,8)]+=tmp2_1 + tmp3_1;                                  EM_S[INDEX2(3,1,8)]+=tmp2_1 + tmp3_1;
9609                                  EM_S[INDEX2(5,1,8)]+=tmp4_1 + tmp5_1;                                  EM_S[INDEX2(5,1,8)]+=tmp4_1 + tmp5_1;
9610                                  EM_S[INDEX2(3,7,8)]+=tmp0_1 + tmp1_1;                                  EM_S[INDEX2(7,1,8)]+=tmp14_1;
9611                                    EM_S[INDEX2(1,3,8)]+=tmp2_1 + tmp3_1;
9612                                  EM_S[INDEX2(3,3,8)]+=tmp6_1 + tmp7_1 + tmp8_1;                                  EM_S[INDEX2(3,3,8)]+=tmp6_1 + tmp7_1 + tmp8_1;
                                 EM_S[INDEX2(1,5,8)]+=tmp4_1 + tmp5_1;  
                                 EM_S[INDEX2(7,7,8)]+=tmp10_1 + tmp11_1 + tmp9_1;  
                                 EM_S[INDEX2(5,7,8)]+=tmp12_1 + tmp13_1;  
9613                                  EM_S[INDEX2(5,3,8)]+=tmp14_1;                                  EM_S[INDEX2(5,3,8)]+=tmp14_1;
9614                                  EM_S[INDEX2(1,1,8)]+=tmp11_1 + tmp15_1 + tmp16_1;                                  EM_S[INDEX2(7,3,8)]+=tmp0_1 + tmp1_1;
9615                                  EM_S[INDEX2(7,1,8)]+=tmp14_1;                                  EM_S[INDEX2(1,5,8)]+=tmp4_1 + tmp5_1;
9616                                    EM_S[INDEX2(3,5,8)]+=tmp14_1;
9617                                  EM_S[INDEX2(5,5,8)]+=tmp17_1 + tmp18_1 + tmp8_1;                                  EM_S[INDEX2(5,5,8)]+=tmp17_1 + tmp18_1 + tmp8_1;
9618                                  EM_S[INDEX2(7,5,8)]+=tmp12_1 + tmp13_1;                                  EM_S[INDEX2(7,5,8)]+=tmp12_1 + tmp13_1;
                                 EM_S[INDEX2(3,5,8)]+=tmp14_1;  
                                 EM_S[INDEX2(3,1,8)]+=tmp2_1 + tmp3_1;  
9619                                  EM_S[INDEX2(1,7,8)]+=tmp14_1;                                  EM_S[INDEX2(1,7,8)]+=tmp14_1;
9620                                    EM_S[INDEX2(3,7,8)]+=tmp0_1 + tmp1_1;
9621                                    EM_S[INDEX2(5,7,8)]+=tmp12_1 + tmp13_1;
9622                                    EM_S[INDEX2(7,7,8)]+=tmp10_1 + tmp11_1 + tmp9_1;
9623                              } else { /* constant data */                              } else { /* constant data */
9624                                  const double tmp0_1 = d_p[0]*w5;                                  const double tmp0_1 = d_p[0]*w5;
9625                                  const double tmp2_1 = d_p[0]*w7;                                  const double tmp2_1 = d_p[0]*w7;
9626                                  const double tmp1_1 = d_p[0]*w6;                                  const double tmp1_1 = d_p[0]*w6;
9627                                  EM_S[INDEX2(7,3,8)]+=tmp0_1;                                  EM_S[INDEX2(1,1,8)]+=tmp1_1;
9628                                  EM_S[INDEX2(1,3,8)]+=tmp0_1;                                  EM_S[INDEX2(3,1,8)]+=tmp0_1;
9629                                  EM_S[INDEX2(5,1,8)]+=tmp0_1;                                  EM_S[INDEX2(5,1,8)]+=tmp0_1;
9630                                  EM_S[INDEX2(3,7,8)]+=tmp0_1;                                  EM_S[INDEX2(7,1,8)]+=tmp2_1;
9631                                    EM_S[INDEX2(1,3,8)]+=tmp0_1;
9632                                  EM_S[INDEX2(3,3,8)]+=tmp1_1;                                  EM_S[INDEX2(3,3,8)]+=tmp1_1;
                                 EM_S[INDEX2(1,5,8)]+=tmp0_1;  
                                 EM_S[INDEX2(7,7,8)]+=tmp1_1;  
                                 EM_S[INDEX2(5,7,8)]+=tmp0_1;  
9633                                  EM_S[INDEX2(5,3,8)]+=tmp2_1;                                  EM_S[INDEX2(5,3,8)]+=tmp2_1;
9634                                  EM_S[INDEX2(1,1,8)]+=tmp1_1;                                  EM_S[INDEX2(7,3,8)]+=tmp0_1;
9635                                  EM_S[INDEX2(7,1,8)]+=tmp2_1;                                  EM_S[INDEX2(1,5,8)]+=tmp0_1;
9636                                    EM_S[INDEX2(3,5,8)]+=tmp2_1;
9637                                  EM_S[INDEX2(5,5,8)]+=tmp1_1;                                  EM_S[INDEX2(5,5,8)]+=tmp1_1;
9638                                  EM_S[INDEX2(7,5,8)]+=tmp0_1;                                  EM_S[INDEX2(7,5,8)]+=tmp0_1;
                                 EM_S[INDEX2(3,5,8)]+=tmp2_1;  
                                 EM_S[INDEX2(3,1,8)]+=tmp0_1;  
9639                                  EM_S[INDEX2(1,7,8)]+=tmp2_1;                                  EM_S[INDEX2(1,7,8)]+=tmp2_1;
9640                                    EM_S[INDEX2(3,7,8)]+=tmp0_1;
9641                                    EM_S[INDEX2(5,7,8)]+=tmp0_1;
9642                                    EM_S[INDEX2(7,7,8)]+=tmp1_1;
9643                              }                              }
9644                          }                          }
9645                          ///////////////                          ///////////////
# Line 9677  void Brick::assemblePDEBoundarySingle(Pa Line 9676  void Brick::assemblePDEBoundarySingle(Pa
9676                                  EM_F[7]+=tmp0_1;                                  EM_F[7]+=tmp0_1;
9677                              }                              }
9678                          }                          }
                         /* GENERATOR SNIP_PDEBC_SINGLE_1 BOTTOM */  
9679                          const index_t firstNode=m_N0*m_N1*k2+m_N0*(k1+1)-2;                          const index_t firstNode=m_N0*m_N1*k2+m_N0*(k1+1)-2;
9680                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,
9681                                  add_EM_F, firstNode);                                  add_EM_F, firstNode);
# Line 9694  void Brick::assemblePDEBoundarySingle(Pa Line 9692  void Brick::assemblePDEBoundarySingle(Pa
9692                          vector<double> EM_S(8*8, 0);                          vector<double> EM_S(8*8, 0);
9693                          vector<double> EM_F(8, 0);                          vector<double> EM_F(8, 0);
9694                          const index_t e = m_faceOffset[2]+INDEX2(k0,k2,m_NE0);                          const index_t e = m_faceOffset[2]+INDEX2(k0,k2,m_NE0);
                         /* GENERATOR SNIP_PDEBC_SINGLE_2 TOP */  
9695                          ///////////////                          ///////////////
9696                          // process d //                          // process d //
9697                          ///////////////                          ///////////////
# Line 9731  void Brick::assemblePDEBoundarySingle(Pa Line 9728  void Brick::assemblePDEBoundarySingle(Pa
9728                                  const double tmp6_1 = d_2*w16;                                  const double tmp6_1 = d_2*w16;
9729                                  const double tmp9_1 = tmp5_0*w14;                                  const double tmp9_1 = tmp5_0*w14;
9730                                  const double tmp4_1 = tmp3_0*w13;                                  const double tmp4_1 = tmp3_0*w13;
                                 EM_S[INDEX2(5,4,8)]+=tmp0_1 + tmp1_1;  
                                 EM_S[INDEX2(5,1,8)]+=tmp2_1 + tmp3_1;  
                                 EM_S[INDEX2(4,0,8)]+=tmp4_1 + tmp5_1;  
                                 EM_S[INDEX2(4,4,8)]+=tmp6_1 + tmp7_1 + tmp8_1;  
                                 EM_S[INDEX2(1,5,8)]+=tmp2_1 + tmp3_1;  
                                 EM_S[INDEX2(4,1,8)]+=tmp9_1;  
                                 EM_S[INDEX2(1,1,8)]+=tmp10_1 + tmp11_1 + tmp7_1;  
9731                                  EM_S[INDEX2(0,0,8)]+=tmp12_1 + tmp13_1 + tmp14_1;                                  EM_S[INDEX2(0,0,8)]+=tmp12_1 + tmp13_1 + tmp14_1;
9732                                    EM_S[INDEX2(1,0,8)]+=tmp17_1 + tmp18_1;
9733                                    EM_S[INDEX2(4,0,8)]+=tmp4_1 + tmp5_1;
9734                                  EM_S[INDEX2(5,0,8)]+=tmp9_1;                                  EM_S[INDEX2(5,0,8)]+=tmp9_1;
9735                                  EM_S[INDEX2(4,5,8)]+=tmp0_1 + tmp1_1;                                  EM_S[INDEX2(0,1,8)]+=tmp17_1 + tmp18_1;
9736                                    EM_S[INDEX2(1,1,8)]+=tmp10_1 + tmp11_1 + tmp7_1;
9737                                    EM_S[INDEX2(4,1,8)]+=tmp9_1;
9738                                    EM_S[INDEX2(5,1,8)]+=tmp2_1 + tmp3_1;
9739                                  EM_S[INDEX2(0,4,8)]+=tmp4_1 + tmp5_1;                                  EM_S[INDEX2(0,4,8)]+=tmp4_1 + tmp5_1;
                                 EM_S[INDEX2(5,5,8)]+=tmp13_1 + tmp15_1 + tmp16_1;  
9740                                  EM_S[INDEX2(1,4,8)]+=tmp9_1;                                  EM_S[INDEX2(1,4,8)]+=tmp9_1;
9741                                  EM_S[INDEX2(1,0,8)]+=tmp17_1 + tmp18_1;                                  EM_S[INDEX2(4,4,8)]+=tmp6_1 + tmp7_1 + tmp8_1;
9742                                  EM_S[INDEX2(0,1,8)]+=tmp17_1 + tmp18_1;                                  EM_S[INDEX2(5,4,8)]+=tmp0_1 + tmp1_1;
9743                                  EM_S[INDEX2(0,5,8)]+=tmp9_1;                                  EM_S[INDEX2(0,5,8)]+=tmp9_1;
9744                                    EM_S[INDEX2(1,5,8)]+=tmp2_1 + tmp3_1;
9745                                    EM_S[INDEX2(4,5,8)]+=tmp0_1 + tmp1_1;
9746                                    EM_S[INDEX2(5,5,8)]+=tmp13_1 + tmp15_1 + tmp16_1;
9747                              } else { /* constant data */                              } else { /* constant data */
9748                                  const double tmp0_1 = d_p[0]*w17;                                  const double tmp0_1 = d_p[0]*w17;
9749                                  const double tmp2_1 = d_p[0]*w19;                                  const double tmp2_1 = d_p[0]*w19;
9750                                  const double tmp1_1 = d_p[0]*w18;                                  const double tmp1_1 = d_p[0]*w18;
                                 EM_S[INDEX2(5,4,8)]+=tmp0_1;  
                                 EM_S[INDEX2(5,1,8)]+=tmp0_1;  
                                 EM_S[INDEX2(4,0,8)]+=tmp0_1;  
                                 EM_S[INDEX2(4,4,8)]+=tmp1_1;  
                                 EM_S[INDEX2(1,5,8)]+=tmp0_1;  
                                 EM_S[INDEX2(4,1,8)]+=tmp2_1;  
                                 EM_S[INDEX2(1,1,8)]+=tmp1_1;  
9751                                  EM_S[INDEX2(0,0,8)]+=tmp1_1;                                  EM_S[INDEX2(0,0,8)]+=tmp1_1;
9752                                    EM_S[INDEX2(1,0,8)]+=tmp0_1;
9753                                    EM_S[INDEX2(4,0,8)]+=tmp0_1;
9754                                  EM_S[INDEX2(5,0,8)]+=tmp2_1;                                  EM_S[INDEX2(5,0,8)]+=tmp2_1;
9755                                  EM_S[INDEX2(4,5,8)]+=tmp0_1;                                  EM_S[INDEX2(0,1,8)]+=tmp0_1;
9756                                    EM_S[INDEX2(1,1,8)]+=tmp1_1;
9757                                    EM_S[INDEX2(4,1,8)]+=tmp2_1;
9758                                    EM_S[INDEX2(5,1,8)]+=tmp0_1;
9759                                  EM_S[INDEX2(0,4,8)]+=tmp0_1;                                  EM_S[INDEX2(0,4,8)]+=tmp0_1;
                                 EM_S[INDEX2(5,5,8)]+=tmp1_1;  
9760                                  EM_S[INDEX2(1,4,8)]+=tmp2_1;                                  EM_S[INDEX2(1,4,8)]+=tmp2_1;
9761                                  EM_S[INDEX2(1,0,8)]+=tmp0_1;                                  EM_S[INDEX2(4,4,8)]+=tmp1_1;
9762                                  EM_S[INDEX2(0,1,8)]+=tmp0_1;                                  EM_S[INDEX2(5,4,8)]+=tmp0_1;
9763                                  EM_S[INDEX2(0,5,8)]+=tmp2_1;                                  EM_S[INDEX2(0,5,8)]+=tmp2_1;
9764                                    EM_S[INDEX2(1,5,8)]+=tmp0_1;
9765                                    EM_S[INDEX2(4,5,8)]+=tmp0_1;
9766                                    EM_S[INDEX2(5,5,8)]+=tmp1_1;
9767                              }                              }
9768                          }                          }
9769                          ///////////////                          ///////////////
# Line 9803  void Brick::assemblePDEBoundarySingle(Pa Line 9800  void Brick::assemblePDEBoundarySingle(Pa
9800                                  EM_F[5]+=tmp0_1;                                  EM_F[5]+=tmp0_1;
9801                              }                              }
9802                          }                          }
                         /* GENERATOR SNIP_PDEBC_SINGLE_2 BOTTOM */  
9803                          const index_t firstNode=m_N0*m_N1*k2+k0;                          const index_t firstNode=m_N0*m_N1*k2+k0;
9804                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,
9805                                  add_EM_F, firstNode);                                  add_EM_F, firstNode);
# Line 9820  void Brick::assemblePDEBoundarySingle(Pa Line 9816  void Brick::assemblePDEBoundarySingle(Pa
9816                          vector<double> EM_S(8*8, 0);                          vector<double> EM_S(8*8, 0);
9817                          vector<double> EM_F(8, 0);                          vector<double> EM_F(8, 0);
9818                          const index_t e = m_faceOffset[3]+INDEX2(k0,k2,m_NE0);                          const index_t e = m_faceOffset[3]+INDEX2(k0,k2,m_NE0);
                         /* GENERATOR SNIP_PDEBC_SINGLE_3 TOP */  
9819                          ///////////////                          ///////////////
9820                          // process d //                          // process d //
9821                          ///////////////                          ///////////////
# Line 9857  void Brick::assemblePDEBoundarySingle(Pa Line 9852  void Brick::assemblePDEBoundarySingle(Pa
9852                                  const double tmp17_1 = d_2*w16;                                  const double tmp17_1 = d_2*w16;
9853                                  const double tmp8_1 = tmp5_0*w14;                                  const double tmp8_1 = tmp5_0*w14;
9854                                  const double tmp5_1 = tmp3_0*w13;                                  const double tmp5_1 = tmp3_0*w13;
9855                                  EM_S[INDEX2(7,3,8)]+=tmp0_1 + tmp1_1;                                  EM_S[INDEX2(2,2,8)]+=tmp10_1 + tmp11_1 + tmp12_1;
9856                                  EM_S[INDEX2(2,6,8)]+=tmp2_1 + tmp3_1;                                  EM_S[INDEX2(3,2,8)]+=tmp15_1 + tmp16_1;
9857                                  EM_S[INDEX2(3,7,8)]+=tmp0_1 + tmp1_1;                                  EM_S[INDEX2(6,2,8)]+=tmp2_1 + tmp3_1;
9858                                  EM_S[INDEX2(7,2,8)]+=tmp4_1;                                  EM_S[INDEX2(7,2,8)]+=tmp4_1;
9859                                  EM_S[INDEX2(6,7,8)]+=tmp5_1 + tmp6_1;                                  EM_S[INDEX2(2,3,8)]+=tmp15_1 + tmp16_1;
9860                                  EM_S[INDEX2(3,3,8)]+=tmp7_1 + tmp8_1 + tmp9_1;                                  EM_S[INDEX2(3,3,8)]+=tmp7_1 + tmp8_1 + tmp9_1;
                                 EM_S[INDEX2(7,6,8)]+=tmp5_1 + tmp6_1;  
9861                                  EM_S[INDEX2(6,3,8)]+=tmp4_1;                                  EM_S[INDEX2(6,3,8)]+=tmp4_1;
9862                                    EM_S[INDEX2(7,3,8)]+=tmp0_1 + tmp1_1;
9863                                    EM_S[INDEX2(2,6,8)]+=tmp2_1 + tmp3_1;
9864                                  EM_S[INDEX2(3,6,8)]+=tmp4_1;                                  EM_S[INDEX2(3,6,8)]+=tmp4_1;
                                 EM_S[INDEX2(2,2,8)]+=tmp10_1 + tmp11_1 + tmp12_1;  
                                 EM_S[INDEX2(7,7,8)]+=tmp11_1 + tmp13_1 + tmp14_1;  
                                 EM_S[INDEX2(2,7,8)]+=tmp4_1;  
                                 EM_S[INDEX2(3,2,8)]+=tmp15_1 + tmp16_1;  
9865                                  EM_S[INDEX2(6,6,8)]+=tmp17_1 + tmp18_1 + tmp8_1;                                  EM_S[INDEX2(6,6,8)]+=tmp17_1 + tmp18_1 + tmp8_1;
9866                                  EM_S[INDEX2(2,3,8)]+=tmp15_1 + tmp16_1;                                  EM_S[INDEX2(7,6,8)]+=tmp5_1 + tmp6_1;
9867                                  EM_S[INDEX2(6,2,8)]+=tmp2_1 + tmp3_1;                                  EM_S[INDEX2(2,7,8)]+=tmp4_1;
9868                                    EM_S[INDEX2(3,7,8)]+=tmp0_1 + tmp1_1;
9869                                    EM_S[INDEX2(6,7,8)]+=tmp5_1 + tmp6_1;
9870                                    EM_S[INDEX2(7,7,8)]+=tmp11_1 + tmp13_1 + tmp14_1;
9871                              } else { /* constant data */                              } else { /* constant data */
9872                                  const double tmp0_1 = d_p[0]*w17;                                  const double tmp0_1 = d_p[0]*w17;
9873                                  const double tmp1_1 = d_p[0]*w19;                                  const double tmp1_1 = d_p[0]*w19;
9874                                  const double tmp2_1 = d_p[0]*w18;                                  const double tmp2_1 = d_p[0]*w18;
9875                                  EM_S[INDEX2(7,3,8)]+=tmp0_1;                                  EM_S[INDEX2(2,2,8)]+=tmp2_1;
9876                                  EM_S[INDEX2(2,6,8)]+=tmp0_1;                                  EM_S[INDEX2(3,2,8)]+=tmp0_1;
9877                                  EM_S[INDEX2(3,7,8)]+=tmp0_1;                                  EM_S[INDEX2(6,2,8)]+=tmp0_1;
9878                                  EM_S[INDEX2(7,2,8)]+=tmp1_1;                                  EM_S[INDEX2(7,2,8)]+=tmp1_1;
9879                                  EM_S[INDEX2(6,7,8)]+=tmp0_1;                                  EM_S[INDEX2(2,3,8)]+=tmp0_1;
9880                                  EM_S[INDEX2(3,3,8)]+=tmp2_1;                                  EM_S[INDEX2(3,3,8)]+=tmp2_1;
                                 EM_S[INDEX2(7,6,8)]+=tmp0_1;  
9881                                  EM_S[INDEX2(6,3,8)]+=tmp1_1;                                  EM_S[INDEX2(6,3,8)]+=tmp1_1;
9882                                    EM_S[INDEX2(7,3,8)]+=tmp0_1;
9883                                    EM_S[INDEX2(2,6,8)]+=tmp0_1;
9884                                  EM_S[INDEX2(3,6,8)]+=tmp1_1;                                  EM_S[INDEX2(3,6,8)]+=tmp1_1;
                                 EM_S[INDEX2(2,2,8)]+=tmp2_1;  
                                 EM_S[INDEX2(7,7,8)]+=tmp2_1;  
                                 EM_S[INDEX2(2,7,8)]+=tmp1_1;  
                                 EM_S[INDEX2(3,2,8)]+=tmp0_1;  
9885                                  EM_S[INDEX2(6,6,8)]+=tmp2_1;                                  EM_S[INDEX2(6,6,8)]+=tmp2_1;
9886                                  EM_S[INDEX2(2,3,8)]+=tmp0_1;                                  EM_S[INDEX2(7,6,8)]+=tmp0_1;
9887                                  EM_S[INDEX2(6,2,8)]+=tmp0_1;                                  EM_S[INDEX2(2,7,8)]+=tmp1_1;
9888                                    EM_S[INDEX2(3,7,8)]+=tmp0_1;
9889                                    EM_S[INDEX2(6,7,8)]+=tmp0_1;
9890                                    EM_S[INDEX2(7,7,8)]+=tmp2_1;
9891                              }                              }
9892                          }                          }
9893                          ///////////////                          ///////////////
# Line 9929  void Brick::assemblePDEBoundarySingle(Pa Line 9924  void Brick::assemblePDEBoundarySingle(Pa
9924                                  EM_F[7]+=tmp0_1;                                  EM_F[7]+=tmp0_1;
9925                              }                              }
9926                          }                          }
                         /* GENERATOR SNIP_PDEBC_SINGLE_3 BOTTOM */  
9927                          const index_t firstNode=m_N0*m_N1*k2+m_N0*(m_N1-2)+k0;                          const index_t firstNode=m_N0*m_N1*k2+m_N0*(m_N1-2)+k0;
9928                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,
9929                                  add_EM_F, firstNode);                                  add_EM_F, firstNode);
# Line 9946  void Brick::assemblePDEBoundarySingle(Pa Line 9940  void Brick::assemblePDEBoundarySingle(Pa
9940                          vector<double> EM_S(8*8, 0);                          vector<double> EM_S(8*8, 0);
9941                          vector<double> EM_F(8, 0);                          vector<double> EM_F(8, 0);
9942                          const index_t e = m_faceOffset[4]+INDEX2(k0,k1,m_NE0);                          const index_t e = m_faceOffset[4]+INDEX2(k0,k1,m_NE0);
                         /* GENERATOR SNIP_PDEBC_SINGLE_4 TOP */  
9943                          ///////////////                          ///////////////
9944                          // process d //                          // process d //
9945                          ///////////////                          ///////////////
# Line 9983  void Brick::assemblePDEBoundarySingle(Pa Line 9976  void Brick::assemblePDEBoundarySingle(Pa
9976                                  const double tmp3_1 = d_3*w28;                                  const double tmp3_1 = d_3*w28;
9977                                  const double tmp10_1 = tmp4_0*w26;                                  const double tmp10_1 = tmp4_0*w26;
9978                                  const double tmp1_1 = tmp1_0*w24;                                  const double tmp1_1 = tmp1_0*w24;
                                 EM_S[INDEX2(1,3,8)]+=tmp0_1 + tmp1_1;  
                                 EM_S[INDEX2(3,0,8)]+=tmp2_1;  
                                 EM_S[INDEX2(0,3,8)]+=tmp2_1;  
                                 EM_S[INDEX2(1,2,8)]+=tmp2_1;  
                                 EM_S[INDEX2(3,3,8)]+=tmp3_1 + tmp4_1 + tmp5_1;  
                                 EM_S[INDEX2(2,0,8)]+=tmp6_1 + tmp7_1;  
                                 EM_S[INDEX2(2,2,8)]+=tmp10_1 + tmp8_1 + tmp9_1;  
                                 EM_S[INDEX2(1,1,8)]+=tmp10_1 + tmp11_1 + tmp12_1;  
                                 EM_S[INDEX2(3,2,8)]+=tmp13_1 + tmp14_1;  
9979                                  EM_S[INDEX2(0,0,8)]+=tmp15_1 + tmp16_1 + tmp5_1;                                  EM_S[INDEX2(0,0,8)]+=tmp15_1 + tmp16_1 + tmp5_1;
                                 EM_S[INDEX2(2,3,8)]+=tmp13_1 + tmp14_1;  
                                 EM_S[INDEX2(2,1,8)]+=tmp2_1;  
9980                                  EM_S[INDEX2(1,0,8)]+=tmp17_1 + tmp18_1;                                  EM_S[INDEX2(1,0,8)]+=tmp17_1 + tmp18_1;
9981                                    EM_S[INDEX2(2,0,8)]+=tmp6_1 + tmp7_1;
9982                                    EM_S[INDEX2(3,0,8)]+=tmp2_1;
9983                                  EM_S[INDEX2(0,1,8)]+=tmp17_1 + tmp18_1;                                  EM_S[INDEX2(0,1,8)]+=tmp17_1 + tmp18_1;
9984                                    EM_S[INDEX2(1,1,8)]+=tmp10_1 + tmp11_1 + tmp12_1;
9985                                    EM_S[INDEX2(2,1,8)]+=tmp2_1;
9986                                  EM_S[INDEX2(3,1,8)]+=tmp0_1 + tmp1_1;                                  EM_S[INDEX2(3,1,8)]+=tmp0_1 + tmp1_1;
9987                                  EM_S[INDEX2(0,2,8)]+=tmp6_1 + tmp7_1;                                  EM_S[INDEX2(0,2,8)]+=tmp6_1 + tmp7_1;
9988                                    EM_S[INDEX2(1,2,8)]+=tmp2_1;
9989                                    EM_S[INDEX2(2,2,8)]+=tmp10_1 + tmp8_1 + tmp9_1;
9990                                    EM_S[INDEX2(3,2,8)]+=tmp13_1 + tmp14_1;
9991                                    EM_S[INDEX2(0,3,8)]+=tmp2_1;
9992                                    EM_S[INDEX2(1,3,8)]+=tmp0_1 + tmp1_1;
9993                                    EM_S[INDEX2(2,3,8)]+=tmp13_1 + tmp14_1;
9994                                    EM_S[INDEX2(3,3,8)]+=tmp3_1 + tmp4_1 + tmp5_1;
9995                              } else { /* constant data */                              } else { /* constant data */
9996                                  const double tmp2_1 = d_p[0]*w31;                                  const double tmp2_1 = d_p[0]*w31;
9997                                  const double tmp1_1 = d_p[0]*w30;                                  const double tmp1_1 = d_p[0]*w30;
9998                                  const double tmp0_1 = d_p[0]*w29;                                  const double tmp0_1 = d_p[0]*w29;
                                 EM_S[INDEX2(1,3,8)]+=tmp0_1;  
                                 EM_S[INDEX2(3,0,8)]+=tmp1_1;  
                                 EM_S[INDEX2(0,3,8)]+=tmp1_1;  
                                 EM_S[INDEX2(1,2,8)]+=tmp1_1;  
                                 EM_S[INDEX2(3,3,8)]+=tmp2_1;  
                                 EM_S[INDEX2(2,0,8)]+=tmp0_1;  
                                 EM_S[INDEX2(2,2,8)]+=tmp2_1;  
                                 EM_S[INDEX2(1,1,8)]+=tmp2_1;  
                                 EM_S[INDEX2(3,2,8)]+=tmp0_1;  
9999                                  EM_S[INDEX2(0,0,8)]+=tmp2_1;                                  EM_S[INDEX2(0,0,8)]+=tmp2_1;
                                 EM_S[INDEX2(2,3,8)]+=tmp0_1;  
                                 EM_S[INDEX2(2,1,8)]+=tmp1_1;  
10000                                  EM_S[INDEX2(1,0,8)]+=tmp0_1;                                  EM_S[INDEX2(1,0,8)]+=tmp0_1;
10001                                    EM_S[INDEX2(2,0,8)]+=tmp0_1;
10002                                    EM_S[INDEX2(3,0,8)]+=tmp1_1;
10003                                  EM_S[INDEX2(0,1,8)]+=tmp0_1;                                  EM_S[INDEX2(0,1,8)]+=tmp0_1;
10004                                    EM_S[INDEX2(1,1,8)]+=tmp2_1;
10005                                    EM_S[INDEX2(2,1,8)]+=tmp1_1;
10006                                  EM_S[INDEX2(3,1,8)]+=tmp0_1;                                  EM_S[INDEX2(3,1,8)]+=tmp0_1;
10007                                  EM_S[INDEX2(0,2,8)]+=tmp0_1;                                  EM_S[INDEX2(0,2,8)]+=tmp0_1;
10008                                    EM_S[INDEX2(1,2,8)]+=tmp1_1;
10009                                    EM_S[INDEX2(2,2,8)]+=tmp2_1;
10010                                    EM_S[INDEX2(3,2,8)]+=tmp0_1;
10011                                    EM_S[INDEX2(0,3,8)]+=tmp1_1;
10012                                    EM_S[INDEX2(1,3,8)]+=tmp0_1;
10013                                    EM_S[INDEX2(2,3,8)]+=tmp0_1;
10014                                    EM_S[INDEX2(3,3,8)]+=tmp2_1;
10015                              }                              }
10016                          }                          }
10017                          ///////////////                          ///////////////
# Line 10055  void Brick::assemblePDEBoundarySingle(Pa Line 10048  void Brick::assemblePDEBoundarySingle(Pa
10048                                  EM_F[3]+=tmp0_1;                                  EM_F[3]+=tmp0_1;
10049                              }                              }
10050                          }                          }
                         /* GENERATOR SNIP_PDEBC_SINGLE_4 BOTTOM */  
10051                          const index_t firstNode=m_N0*k1+k0;                          const index_t firstNode=m_N0*k1+k0;
10052                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,
10053                                  add_EM_F, firstNode);                                  add_EM_F, firstNode);
# Line 10072  void Brick::assemblePDEBoundarySingle(Pa Line 10064  void Brick::assemblePDEBoundarySingle(Pa
10064                          vector<double> EM_S(8*8, 0);                          vector<double> EM_S(8*8, 0);
10065                          vector<double> EM_F(8, 0);                          vector<double> EM_F(8, 0);
10066                          const index_t e = m_faceOffset[5]+INDEX2(k0,k1,m_NE0);                          const index_t e = m_faceOffset[5]+INDEX2(k0,k1,m_NE0);
                         /* GENERATOR SNIP_PDEBC_SINGLE_5 TOP */  
10067                          ///////////////                          ///////////////
10068                          // process d //                          // process d //
10069                          ///////////////                          ///////////////
# Line 10109  void Brick::assemblePDEBoundarySingle(Pa Line 10100  void Brick::assemblePDEBoundarySingle(Pa
10100                                  const double tmp5_1 = tmp4_0*w25;                                  const double tmp5_1 = tmp4_0*w25;
10101                                  const double tmp8_1 = d_3*w27;                                  const double tmp8_1 = d_3*w27;
10102                                  const double tmp13_1 = tmp1_0*w24;                                  const double tmp13_1 = tmp1_0*w24;
                                 EM_S[INDEX2(4,7,8)]+=tmp0_1;  
                                 EM_S[INDEX2(6,4,8)]+=tmp1_1 + tmp2_1;  
                                 EM_S[INDEX2(5,4,8)]+=tmp3_1 + tmp4_1;  
                                 EM_S[INDEX2(5,6,8)]+=tmp0_1;  
                                 EM_S[INDEX2(6,7,8)]+=tmp5_1 + tmp6_1;  
                                 EM_S[INDEX2(7,6,8)]+=tmp5_1 + tmp6_1;  
10103                                  EM_S[INDEX2(4,4,8)]+=tmp7_1 + tmp8_1 + tmp9_1;                                  EM_S[INDEX2(4,4,8)]+=tmp7_1 + tmp8_1 + tmp9_1;
10104                                  EM_S[INDEX2(7,7,8)]+=tmp10_1 + tmp11_1 + tmp9_1;                                  EM_S[INDEX2(5,4,8)]+=tmp3_1 + tmp4_1;
10105                                  EM_S[INDEX2(5,7,8)]+=tmp12_1 + tmp13_1;                                  EM_S[INDEX2(6,4,8)]+=tmp1_1 + tmp2_1;
10106                                  EM_S[INDEX2(6,6,8)]+=tmp14_1 + tmp15_1 + tmp16_1;                                  EM_S[INDEX2(7,4,8)]+=tmp0_1;
10107                                  EM_S[INDEX2(4,5,8)]+=tmp3_1 + tmp4_1;                                  EM_S[INDEX2(4,5,8)]+=tmp3_1 + tmp4_1;
10108                                  EM_S[INDEX2(5,5,8)]+=tmp16_1 + tmp17_1 + tmp18_1;                                  EM_S[INDEX2(5,5,8)]+=tmp16_1 + tmp17_1 + tmp18_1;
                                 EM_S[INDEX2(7,5,8)]+=tmp12_1 + tmp13_1;  
10109                                  EM_S[INDEX2(6,5,8)]+=tmp0_1;                                  EM_S[INDEX2(6,5,8)]+=tmp0_1;
10110                                    EM_S[INDEX2(7,5,8)]+=tmp12_1 + tmp13_1;
10111                                  EM_S[INDEX2(4,6,8)]+=tmp1_1 + tmp2_1;                                  EM_S[INDEX2(4,6,8)]+=tmp1_1 + tmp2_1;
10112                                  EM_S[INDEX2(7,4,8)]+=tmp0_1;                                  EM_S[INDEX2(5,6,8)]+=tmp0_1;
10113                                    EM_S[INDEX2(6,6,8)]+=tmp14_1 + tmp15_1 + tmp16_1;
10114                                    EM_S[INDEX2(7,6,8)]+=tmp5_1 + tmp6_1;
10115                                    EM_S[INDEX2(4,7,8)]+=tmp0_1;
10116                                    EM_S[INDEX2(5,7,8)]+=tmp12_1 + tmp13_1;
10117                                    EM_S[INDEX2(6,7,8)]+=tmp5_1 + tmp6_1;
10118                                    EM_S[INDEX2(7,7,8)]+=tmp10_1 + tmp11_1 + tmp9_1;
10119                              } else { /* constant data */                              } else { /* constant data */
10120                                  const double tmp2_1 = d_p[0]*w31;                                  const double tmp2_1 = d_p[0]*w31;
10121                                  const double tmp0_1 = d_p[0]*w30;                                  const double tmp0_1 = d_p[0]*w30;
10122                                  const double tmp1_1 = d_p[0]*w29;                                  const double tmp1_1 = d_p[0]*w29;
10123                                  EM_S[INDEX2(4,7,8)]+=tmp0_1;                                  EM_S[INDEX2(4,4,8)]+=tmp2_1;
                                 EM_S[INDEX2(6,4,8)]+=tmp1_1;  
10124                                  EM_S[INDEX2(5,4,8)]+=tmp1_1;                                  EM_S[INDEX2(5,4,8)]+=tmp1_1;
10125                                    EM_S[INDEX2(6,4,8)]+=tmp1_1;
10126                                    EM_S[INDEX2(7,4,8)]+=tmp0_1;
10127                                    EM_S[INDEX2(4,6,8)]+=tmp1_1;
10128                                  EM_S[INDEX2(5,6,8)]+=tmp0_1;                                  EM_S[INDEX2(5,6,8)]+=tmp0_1;
                                 EM_S[INDEX2(6,7,8)]+=tmp1_1;  
                                 EM_S[INDEX2(7,6,8)]+=tmp1_1;  
                                 EM_S[INDEX2(4,4,8)]+=tmp2_1;  
                                 EM_S[INDEX2(7,7,8)]+=tmp2_1;  
                                 EM_S[INDEX2(5,7,8)]+=tmp1_1;  
10129                                  EM_S[INDEX2(6,6,8)]+=tmp2_1;                                  EM_S[INDEX2(6,6,8)]+=tmp2_1;
10130                                    EM_S[INDEX2(7,6,8)]+=tmp1_1;
10131                                  EM_S[INDEX2(4,5,8)]+=tmp1_1;                                  EM_S[INDEX2(4,5,8)]+=tmp1_1;
10132                                  EM_S[INDEX2(5,5,8)]+=tmp2_1;                                  EM_S[INDEX2(5,5,8)]+=tmp2_1;
                                 EM_S[INDEX2(7,5,8)]+=tmp1_1;  
10133                                  EM_S[INDEX2(6,5,8)]+=tmp0_1;                                  EM_S[INDEX2(6,5,8)]+=tmp0_1;
10134                                  EM_S[INDEX2(4,6,8)]+=tmp1_1;                                  EM_S[INDEX2(7,5,8)]+=tmp1_1;
10135                                  EM_S[INDEX2(7,4,8)]+=tmp0_1;                                  EM_S[INDEX2(4,7,8)]+=tmp0_1;
10136                                    EM_S[INDEX2(5,7,8)]+=tmp1_1;
10137                                    EM_S[INDEX2(6,7,8)]+=tmp1_1;
10138                                    EM_S[INDEX2(7,7,8)]+=tmp2_1;
10139                              }                              }
10140                          }                          }
10141                          ///////////////                          ///////////////
# Line 10181  void Brick::assemblePDEBoundarySingle(Pa Line 10172  void Brick::assemblePDEBoundarySingle(Pa
10172                                  EM_F[7]+=tmp0_1;                                  EM_F[7]+=tmp0_1;
10173                              }                              }
10174                          }                          }
                         /* GENERATOR SNIP_PDEBC_SINGLE_5 BOTTOM */  
10175                          const index_t firstNode=m_N0*m_N1*(m_N2-2)+m_N0*k1+k0;                          const index_t firstNode=m_N0*m_N1*(m_N2-2)+m_N0*k1+k0;
10176                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,
10177                                  add_EM_F, firstNode);                                  add_EM_F, firstNode);
# Line 10199  void Brick::assemblePDEBoundarySingleRed Line 10189  void Brick::assemblePDEBoundarySingleRed
10189      const double h0 = m_l0/m_gNE0;      const double h0 = m_l0/m_gNE0;
10190      const double h1 = m_l1/m_gNE1;      const double h1 = m_l1/m_gNE1;
10191      const double h2 = m_l2/m_gNE2;      const double h2 = m_l2/m_gNE2;
     /* GENERATOR SNIP_PDEBC_SINGLE_REDUCED_PRE TOP */  
10192      const double w0 = 0.0625*h1*h2;      const double w0 = 0.0625*h1*h2;
10193      const double w1 = 0.25*h1*h2;      const double w1 = 0.25*h1*h2;
10194      const double w2 = 0.0625*h0*h2;      const double w2 = 0.0625*h0*h2;
10195      const double w3 = 0.25*h0*h2;      const double w3 = 0.25*h0*h2;
10196      const double w4 = 0.0625*h0*h1;      const double w4 = 0.0625*h0*h1;
10197      const double w5 = 0.25*h0*h1;      const double w5 = 0.25*h0*h1;
     /* GENERATOR SNIP_PDEBC_SINGLE_REDUCED_PRE BOTTOM */  
10198      const bool add_EM_S=!d.isEmpty();      const bool add_EM_S=!d.isEmpty();
10199      const bool add_EM_F=!y.isEmpty();      const bool add_EM_F=!y.isEmpty();
10200      rhs.requireWrite();      rhs.requireWrite();
# Line 10220  void Brick::assemblePDEBoundarySingleRed Line 10208  void Brick::assemblePDEBoundarySingleRed
10208                          vector<double> EM_S(8*8, 0);                          vector<double> EM_S(8*8, 0);
10209                          vector<double> EM_F(8, 0);                          vector<double> EM_F(8, 0);
10210                          const index_t e = INDEX2(k1,k2,m_NE1);                          const index_t e = INDEX2(k1,k2,m_NE1);
                         /* GENERATOR SNIP_PDEBC_SINGLE_REDUCED_0 TOP */  
10211                          ///////////////                          ///////////////
10212                          // process d //                          // process d //
10213                          ///////////////                          ///////////////
# Line 10228  void Brick::assemblePDEBoundarySingleRed Line 10215  void Brick::assemblePDEBoundarySingleRed
10215                              const double* d_p=const_cast<escript::Data*>(&d)->getSampleDataRO(e);                              const double* d_p=const_cast<escript::Data*>(&d)->getSampleDataRO(e);
10216                              const double d_0 = d_p[0];                              const double d_0 = d_p[0];
10217                              const double tmp0_1 = d_0*w0;                              const double tmp0_1 = d_0*w0;
                             EM_S[INDEX2(6,4,8)]+=tmp0_1;  
                             EM_S[INDEX2(2,6,8)]+=tmp0_1;  
                             EM_S[INDEX2(4,0,8)]+=tmp0_1;  
                             EM_S[INDEX2(2,0,8)]+=tmp0_1;  
                             EM_S[INDEX2(4,4,8)]+=tmp0_1;  
                             EM_S[INDEX2(2,2,8)]+=tmp0_1;  
10218                              EM_S[INDEX2(0,0,8)]+=tmp0_1;                              EM_S[INDEX2(0,0,8)]+=tmp0_1;
10219                              EM_S[INDEX2(6,6,8)]+=tmp0_1;                              EM_S[INDEX2(2,0,8)]+=tmp0_1;
10220                              EM_S[INDEX2(0,4,8)]+=tmp0_1;                              EM_S[INDEX2(4,0,8)]+=tmp0_1;
10221                              EM_S[INDEX2(6,0,8)]+=tmp0_1;                              EM_S[INDEX2(6,0,8)]+=tmp0_1;
                             EM_S[INDEX2(4,2,8)]+=tmp0_1;  
                             EM_S[INDEX2(4,6,8)]+=tmp0_1;  
10222                              EM_S[INDEX2(0,2,8)]+=tmp0_1;                              EM_S[INDEX2(0,2,8)]+=tmp0_1;
10223                              EM_S[INDEX2(0,6,8)]+=tmp0_1;                              EM_S[INDEX2(2,2,8)]+=tmp0_1;
10224                                EM_S[INDEX2(4,2,8)]+=tmp0_1;
10225                              EM_S[INDEX2(6,2,8)]+=tmp0_1;                              EM_S[INDEX2(6,2,8)]+=tmp0_1;
10226                                EM_S[INDEX2(0,4,8)]+=tmp0_1;
10227                              EM_S[INDEX2(2,4,8)]+=tmp0_1;                              EM_S[INDEX2(2,4,8)]+=tmp0_1;
10228                                EM_S[INDEX2(4,4,8)]+=tmp0_1;
10229                                EM_S[INDEX2(6,4,8)]+=tmp0_1;
10230                                EM_S[INDEX2(0,6,8)]+=tmp0_1;
10231                                EM_S[INDEX2(2,6,8)]+=tmp0_1;
10232                                EM_S[INDEX2(4,6,8)]+=tmp0_1;
10233                                EM_S[INDEX2(6,6,8)]+=tmp0_1;
10234                          }                          }
10235                          ///////////////                          ///////////////
10236                          // process y //                          // process y //
# Line 10257  void Brick::assemblePDEBoundarySingleRed Line 10244  void Brick::assemblePDEBoundarySingleRed
10244                              EM_F[4]+=tmp0_1;                              EM_F[4]+=tmp0_1;
10245                              EM_F[6]+=tmp0_1;                              EM_F[6]+=tmp0_1;
10246                          }                          }
                         /* GENERATOR SNIP_PDEBC_SINGLE_REDUCED_0 BOTTOM */  
10247                          const index_t firstNode=m_N0*m_N1*k2+m_N0*k1;                          const index_t firstNode=m_N0*m_N1*k2+m_N0*k1;
10248                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,
10249                                  add_EM_F, firstNode);                                  add_EM_F, firstNode);
# Line 10274  void Brick::assemblePDEBoundarySingleRed Line 10260  void Brick::assemblePDEBoundarySingleRed
10260                          vector<double> EM_S(8*8, 0);                          vector<double> EM_S(8*8, 0);
10261                          vector<double> EM_F(8, 0);                          vector<double> EM_F(8, 0);
10262                          const index_t e = m_faceOffset[1]+INDEX2(k1,k2,m_NE1);                          const index_t e = m_faceOffset[1]+INDEX2(k1,k2,m_NE1);
                         /* GENERATOR SNIP_PDEBC_SINGLE_REDUCED_1 TOP */  
10263                          ///////////////                          ///////////////
10264                          // process d //                          // process d //
10265                          ///////////////                          ///////////////
# Line 10282  void Brick::assemblePDEBoundarySingleRed Line 10267  void Brick::assemblePDEBoundarySingleRed
10267                              const double* d_p=const_cast<escript::Data*>(&d)->getSampleDataRO(e);                              const double* d_p=const_cast<escript::Data*>(&d)->getSampleDataRO(e);
10268                              const double d_0 = d_p[0];                              const double d_0 = d_p[0];
10269                              const double tmp0_1 = d_0*w0;                              const double tmp0_1 = d_0*w0;
10270                              EM_S[INDEX2(7,3,8)]+=tmp0_1;                              EM_S[INDEX2(1,1,8)]+=tmp0_1;
10271                              EM_S[INDEX2(1,3,8)]+=tmp0_1;                              EM_S[INDEX2(3,1,8)]+=tmp0_1;
10272                              EM_S[INDEX2(5,1,8)]+=tmp0_1;                              EM_S[INDEX2(5,1,8)]+=tmp0_1;
10273                              EM_S[INDEX2(3,7,8)]+=tmp0_1;                              EM_S[INDEX2(7,1,8)]+=tmp0_1;
10274                                EM_S[INDEX2(1,3,8)]+=tmp0_1;
10275                              EM_S[INDEX2(3,3,8)]+=tmp0_1;                              EM_S[INDEX2(3,3,8)]+=tmp0_1;
                             EM_S[INDEX2(1,5,8)]+=tmp0_1;  
                             EM_S[INDEX2(7,7,8)]+=tmp0_1;  
                             EM_S[INDEX2(5,7,8)]+=tmp0_1;  
10276                              EM_S[INDEX2(5,3,8)]+=tmp0_1;                              EM_S[INDEX2(5,3,8)]+=tmp0_1;
10277                              EM_S[INDEX2(1,1,8)]+=tmp0_1;                              EM_S[INDEX2(7,3,8)]+=tmp0_1;
10278                              EM_S[INDEX2(7,1,8)]+=tmp0_1;                              EM_S[INDEX2(1,5,8)]+=tmp0_1;
10279                                EM_S[INDEX2(3,5,8)]+=tmp0_1;
10280                              EM_S[INDEX2(5,5,8)]+=tmp0_1;                              EM_S[INDEX2(5,5,8)]+=tmp0_1;
10281                              EM_S[INDEX2(7,5,8)]+=tmp0_1;                              EM_S[INDEX2(7,5,8)]+=tmp0_1;
                             EM_S[INDEX2(3,5,8)]+=tmp0_1;  
                             EM_S[INDEX2(3,1,8)]+=tmp0_1;  
10282                              EM_S[INDEX2(1,7,8)]+=tmp0_1;                              EM_S[INDEX2(1,7,8)]+=tmp0_1;
10283                                EM_S[INDEX2(3,7,8)]+=tmp0_1;
10284                                EM_S[INDEX2(5,7,8)]+=tmp0_1;
10285                                EM_S[INDEX2(7,7,8)]+=tmp0_1;
10286                          }                          }
10287                          ///////////////                          ///////////////
10288                          // process y //                          // process y //
# Line 10311  void Brick::assemblePDEBoundarySingleRed Line 10296  void Brick::assemblePDEBoundarySingleRed
10296                              EM_F[5]+=tmp0_1;                              EM_F[5]+=tmp0_1;
10297                              EM_F[7]+=tmp0_1;                              EM_F[7]+=tmp0_1;
10298                          }                          }
                         /* GENERATOR SNIP_PDEBC_SINGLE_REDUCED_1 BOTTOM */  
10299                          const index_t firstNode=m_N0*m_N1*k2+m_N0*(k1+1)-2;                          const index_t firstNode=m_N0*m_N1*k2+m_N0*(k1+1)-2;
10300                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,
10301                                  add_EM_F, firstNode);                                  add_EM_F, firstNode);
# Line 10328  void Brick::assemblePDEBoundarySingleRed Line 10312  void Brick::assemblePDEBoundarySingleRed
10312                          vector<double> EM_S(8*8, 0);                          vector<double> EM_S(8*8, 0);
10313                          vector<double> EM_F(8, 0);                          vector<double> EM_F(8, 0);
10314                          const index_t e = m_faceOffset[2]+INDEX2(k0,k2,m_NE0);                          const index_t e = m_faceOffset[2]+INDEX2(k0,k2,m_NE0);
                         /* GENERATOR SNIP_PDEBC_SINGLE_REDUCED_2 TOP */  
10315                          ///////////////                          ///////////////
10316                          // process d //                          // process d //
10317                          ///////////////                          ///////////////
# Line 10336  void Brick::assemblePDEBoundarySingleRed Line 10319  void Brick::assemblePDEBoundarySingleRed
10319                              const double* d_p=const_cast<escript::Data*>(&d)->getSampleDataRO(e);                              const double* d_p=const_cast<escript::Data*>(&d)->getSampleDataRO(e);
10320                              const double d_0 = d_p[0];                              const double d_0 = d_p[0];
10321                              const double tmp0_1 = d_0*w2;                              const double tmp0_1 = d_0*w2;
                             EM_S[INDEX2(5,4,8)]+=tmp0_1;  
                             EM_S[INDEX2(5,1,8)]+=tmp0_1;  
                             EM_S[INDEX2(4,0,8)]+=tmp0_1;  
                             EM_S[INDEX2(4,4,8)]+=tmp0_1;  
                             EM_S[INDEX2(1,5,8)]+=tmp0_1;  
                             EM_S[INDEX2(4,1,8)]+=tmp0_1;  
                             EM_S[INDEX2(1,1,8)]+=tmp0_1;  
10322                              EM_S[INDEX2(0,0,8)]+=tmp0_1;                              EM_S[INDEX2(0,0,8)]+=tmp0_1;
10323                                EM_S[INDEX2(1,0,8)]+=tmp0_1;
10324                                EM_S[INDEX2(4,0,8)]+=tmp0_1;
10325                              EM_S[INDEX2(5,0,8)]+=tmp0_1;                              EM_S[INDEX2(5,0,8)]+=tmp0_1;
10326                              EM_S[INDEX2(4,5,8)]+=tmp0_1;                              EM_S[INDEX2(0,1,8)]+=tmp0_1;
10327                                EM_S[INDEX2(1,1,8)]+=tmp0_1;
10328                                EM_S[INDEX2(4,1,8)]+=tmp0_1;
10329                                EM_S[INDEX2(5,1,8)]+=tmp0_1;
10330                              EM_S[INDEX2(0,4,8)]+=tmp0_1;                              EM_S[INDEX2(0,4,8)]+=tmp0_1;
                             EM_S[INDEX2(5,5,8)]+=tmp0_1;  
10331                              EM_S[INDEX2(1,4,8)]+=tmp0_1;                              EM_S[INDEX2(1,4,8)]+=tmp0_1;
10332                              EM_S[INDEX2(1,0,8)]+=tmp0_1;                              EM_S[INDEX2(4,4,8)]+=tmp0_1;
10333                              EM_S[INDEX2(0,1,8)]+=tmp0_1;                              EM_S[INDEX2(5,4,8)]+=tmp0_1;
10334                              EM_S[INDEX2(0,5,8)]+=tmp0_1;                              EM_S[INDEX2(0,5,8)]+=tmp0_1;
10335                                EM_S[INDEX2(1,5,8)]+=tmp0_1;
10336                                EM_S[INDEX2(4,5,8)]+=tmp0_1;
10337                                EM_S[INDEX2(5,5,8)]+=tmp0_1;
10338                          }                          }
10339                          ///////////////                          ///////////////
10340                          // process y //                          // process y //
10341                          ///////////////                          ///////////////
10342                          if (add_EM_F) {                          if (add_EM_F) {
10343                              const double* y_p=const_cast<escript::Data*>(&y)->getSampleDataRO(e);                              const double* y_p=const_cast<escript::Data*>(&y)->getSampleDataRO(e);
10344                              const double y_0 = y_p[0];                              const double tmp0_1 = w3*y_p[0];
                             const double tmp0_1 = w3*y_0;  
10345                              EM_F[0]+=tmp0_1;                              EM_F[0]+=tmp0_1;
10346                              EM_F[1]+=tmp0_1;                              EM_F[1]+=tmp0_1;
10347                              EM_F[4]+=tmp0_1;                              EM_F[4]+=tmp0_1;
10348                              EM_F[5]+=tmp0_1;                              EM_F[5]+=tmp0_1;
10349                          }                          }
                         /* GENERATOR SNIP_PDEBC_SINGLE_REDUCED_2 BOTTOM */  
10350                          const index_t firstNode=m_N0*m_N1*k2+k0;                          const index_t firstNode=m_N0*m_N1*k2+k0;
10351                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,
10352                                  add_EM_F, firstNode);                                  add_EM_F, firstNode);
# Line 10382  void Brick::assemblePDEBoundarySingleRed Line 10363  void Brick::assemblePDEBoundarySingleRed
10363                          vector<double> EM_S(8*8, 0);                          vector<double> EM_S(8*8, 0);
10364                          vector<double> EM_F(8, 0);                          vector<double> EM_F(8, 0);
10365                          const index_t e = m_faceOffset[3]+INDEX2(k0,k2,m_NE0);                          const index_t e = m_faceOffset[3]+INDEX2(k0,k2,m_NE0);
                         /* GENERATOR SNIP_PDEBC_SINGLE_REDUCED_3 TOP */  
10366                          ///////////////                          ///////////////
10367                          // process d //                          // process d //
10368                          ///////////////                          ///////////////
# Line 10390  void Brick::assemblePDEBoundarySingleRed Line 10370  void Brick::assemblePDEBoundarySingleRed
10370                              const double* d_p=const_cast<escript::Data*>(&d)->getSampleDataRO(e);                              const double* d_p=const_cast<escript::Data*>(&d)->getSampleDataRO(e);
10371                              const double d_0 = d_p[0];                              const double d_0 = d_p[0];
10372                              const double tmp0_1 = d_0*w2;                              const double tmp0_1 = d_0*w2;
10373                              EM_S[INDEX2(7,3,8)]+=tmp0_1;                              EM_S[INDEX2(2,2,8)]+=tmp0_1;
10374                              EM_S[INDEX2(2,6,8)]+=tmp0_1;                              EM_S[INDEX2(3,2,8)]+=tmp0_1;
10375                              EM_S[INDEX2(3,7,8)]+=tmp0_1;                              EM_S[INDEX2(6,2,8)]+=tmp0_1;
10376                              EM_S[INDEX2(7,2,8)]+=tmp0_1;                              EM_S[INDEX2(7,2,8)]+=tmp0_1;
10377                              EM_S[INDEX2(6,7,8)]+=tmp0_1;                              EM_S[INDEX2(2,3,8)]+=tmp0_1;
10378                              EM_S[INDEX2(3,3,8)]+=tmp0_1;                              EM_S[INDEX2(3,3,8)]+=tmp0_1;
                             EM_S[INDEX2(7,6,8)]+=tmp0_1;  
10379                              EM_S[INDEX2(6,3,8)]+=tmp0_1;                              EM_S[INDEX2(6,3,8)]+=tmp0_1;
10380                                EM_S[INDEX2(7,3,8)]+=tmp0_1;
10381                                EM_S[INDEX2(2,6,8)]+=tmp0_1;
10382                              EM_S[INDEX2(3,6,8)]+=tmp0_1;                              EM_S[INDEX2(3,6,8)]+=tmp0_1;
                             EM_S[INDEX2(2,2,8)]+=tmp0_1;  
                             EM_S[INDEX2(7,7,8)]+=tmp0_1;  
                             EM_S[INDEX2(2,7,8)]+=tmp0_1;  
                             EM_S[INDEX2(3,2,8)]+=tmp0_1;  
10383                              EM_S[INDEX2(6,6,8)]+=tmp0_1;                              EM_S[INDEX2(6,6,8)]+=tmp0_1;
10384                              EM_S[INDEX2(2,3,8)]+=tmp0_1;                              EM_S[INDEX2(7,6,8)]+=tmp0_1;
10385                              EM_S[INDEX2(6,2,8)]+=tmp0_1;                              EM_S[INDEX2(2,7,8)]+=tmp0_1;
10386                                EM_S[INDEX2(3,7,8)]+=tmp0_1;
10387                                EM_S[INDEX2(6,7,8)]+=tmp0_1;
10388                                EM_S[INDEX2(7,7,8)]+=tmp0_1;
10389                          }                          }
10390                          ///////////////                          ///////////////
10391                          // process y //                          // process y //
# Line 10419  void Brick::assemblePDEBoundarySingleRed Line 10399  void Brick::assemblePDEBoundarySingleRed
10399                              EM_F[6]+=tmp0_1;                              EM_F[6]+=tmp0_1;
10400                              EM_F[7]+=tmp0_1;                              EM_F[7]+=tmp0_1;
10401                          }                          }
                         /* GENERATOR SNIP_PDEBC_SINGLE_REDUCED_3 BOTTOM */  
10402                          const index_t firstNode=m_N0*m_N1*k2+m_N0*(m_N1-2)+k0;                          const index_t firstNode=m_N0*m_N1*k2+m_N0*(m_N1-2)+k0;
10403                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,
10404                                  add_EM_F, firstNode);                                  add_EM_F, firstNode);
# Line 10436  void Brick::assemblePDEBoundarySingleRed Line 10415  void Brick::assemblePDEBoundarySingleRed
10415                          vector<double> EM_S(8*8, 0);                          vector<double> EM_S(8*8, 0);
10416                          vector<double> EM_F(8, 0);                          vector<double> EM_F(8, 0);
10417                          const index_t e = m_faceOffset[4]+INDEX2(k0,k1,m_NE0);                          const index_t e = m_faceOffset[4]+INDEX2(k0,k1,m_NE0);
                         /* GENERATOR SNIP_PDEBC_SINGLE_REDUCED_4 TOP */  
10418                          ///////////////                          ///////////////
10419                          // process d //                          // process d //
10420                          ///////////////                          ///////////////
# Line 10444  void Brick::assemblePDEBoundarySingleRed Line 10422  void Brick::assemblePDEBoundarySingleRed
10422                              const double* d_p=const_cast<escript::Data*>(&d)->getSampleDataRO(e);                              const double* d_p=const_cast<escript::Data*>(&d)->getSampleDataRO(e);
10423                              const double d_0 = d_p[0];                              const double d_0 = d_p[0];
10424                              const double tmp0_1 = d_0*w4;                              const double tmp0_1 = d_0*w4;
                             EM_S[INDEX2(1,3,8)]+=tmp0_1;  
                             EM_S[INDEX2(3,0,8)]+=tmp0_1;  
                             EM_S[INDEX2(0,3,8)]+=tmp0_1;  
                             EM_S[INDEX2(1,2,8)]+=tmp0_1;  
                             EM_S[INDEX2(3,3,8)]+=tmp0_1;  
                             EM_S[INDEX2(2,0,8)]+=tmp0_1;  
                             EM_S[INDEX2(2,2,8)]+=tmp0_1;  
                             EM_S[INDEX2(1,1,8)]+=tmp0_1;  
                             EM_S[INDEX2(3,2,8)]+=tmp0_1;  
10425                              EM_S[INDEX2(0,0,8)]+=tmp0_1;                              EM_S[INDEX2(0,0,8)]+=tmp0_1;
                             EM_S[INDEX2(2,3,8)]+=tmp0_1;  
                             EM_S[INDEX2(2,1,8)]+=tmp0_1;  
10426                              EM_S[INDEX2(1,0,8)]+=tmp0_1;                              EM_S[INDEX2(1,0,8)]+=tmp0_1;
10427                                EM_S[INDEX2(2,0,8)]+=tmp0_1;
10428                                EM_S[INDEX2(3,0,8)]+=tmp0_1;
10429                              EM_S[INDEX2(0,1,8)]+=tmp0_1;                              EM_S[INDEX2(0,1,8)]+=tmp0_1;
10430                                EM_S[INDEX2(1,1,8)]+=tmp0_1;
10431                                EM_S[INDEX2(2,1,8)]+=tmp0_1;
10432                              EM_S[INDEX2(3,1,8)]+=tmp0_1;                              EM_S[INDEX2(3,1,8)]+=tmp0_1;
10433                              EM_S[INDEX2(0,2,8)]+=tmp0_1;                              EM_S[INDEX2(0,2,8)]+=tmp0_1;
10434                                EM_S[INDEX2(1,2,8)]+=tmp0_1;
10435                                EM_S[INDEX2(2,2,8)]+=tmp0_1;
10436                                EM_S[INDEX2(3,2,8)]+=tmp0_1;
10437                                EM_S[INDEX2(0,3,8)]+=tmp0_1;
10438                                EM_S[INDEX2(1,3,8)]+=tmp0_1;
10439                                EM_S[INDEX2(2,3,8)]+=tmp0_1;
10440                                EM_S[INDEX2(3,3,8)]+=tmp0_1;
10441                          }                          }
10442                          ///////////////                          ///////////////
10443                          // process y //                          // process y //
# Line 10473  void Brick::assemblePDEBoundarySingleRed Line 10451  void Brick::assemblePDEBoundarySingleRed
10451                              EM_F[2]+=tmp0_1;                              EM_F[2]+=tmp0_1;
10452                              EM_F[3]+=tmp0_1;                              EM_F[3]+=tmp0_1;
10453                          }                          }
                         /* GENERATOR SNIP_PDEBC_SINGLE_REDUCED_4 BOTTOM */  
10454                          const index_t firstNode=m_N0*k1+k0;                          const index_t firstNode=m_N0*k1+k0;
10455                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,
10456                                  add_EM_F, firstNode);                                  add_EM_F, firstNode);
# Line 10490  void Brick::assemblePDEBoundarySingleRed Line 10467  void Brick::assemblePDEBoundarySingleRed
10467                          vector<double> EM_S(8*8, 0);                          vector<double> EM_S(8*8, 0);
10468                          vector<double> EM_F(8, 0);                          vector<double> EM_F(8, 0);
10469                          const index_t e = m_faceOffset[5]+INDEX2(k0,k1,m_NE0);                          const index_t e = m_faceOffset[5]+INDEX2(k0,k1,m_NE0);
                         /* GENERATOR SNIP_PDEBC_SINGLE_REDUCED_5 TOP */  
10470                          ///////////////                          ///////////////
10471                          // process d //                          // process d //
10472                          ///////////////                          ///////////////
# Line 10498  void Brick::assemblePDEBoundarySingleRed Line 10474  void Brick::assemblePDEBoundarySingleRed
10474                              const double* d_p=const_cast<escript::Data*>(&d)->getSampleDataRO(e);                              const double* d_p=const_cast<escript::Data*>(&d)->getSampleDataRO(e);
10475                              const double d_0 = d_p[0];                              const double d_0 = d_p[0];
10476                              const double tmp0_1 = d_0*w4;                              const double tmp0_1 = d_0*w4;
                             EM_S[INDEX2(4,7,8)]+=tmp0_1;  
                             EM_S[INDEX2(6,4,8)]+=tmp0_1;  
                             EM_S[INDEX2(5,4,8)]+=tmp0_1;  
                             EM_S[INDEX2(5,6,8)]+=tmp0_1;  
                             EM_S[INDEX2(6,7,8)]+=tmp0_1;  
                             EM_S[INDEX2(7,6,8)]+=tmp0_1;  
10477                              EM_S[INDEX2(4,4,8)]+=tmp0_1;                              EM_S[INDEX2(4,4,8)]+=tmp0_1;
10478                              EM_S[INDEX2(7,7,8)]+=tmp0_1;                              EM_S[INDEX2(5,4,8)]+=tmp0_1;
10479                              EM_S[INDEX2(5,7,8)]+=tmp0_1;                              EM_S[INDEX2(6,4,8)]+=tmp0_1;
10480                              EM_S[INDEX2(6,6,8)]+=tmp0_1;                              EM_S[INDEX2(7,4,8)]+=tmp0_1;
10481                              EM_S[INDEX2(4,5,8)]+=tmp0_1;                              EM_S[INDEX2(4,5,8)]+=tmp0_1;
10482                              EM_S[INDEX2(5,5,8)]+=tmp0_1;                              EM_S[INDEX2(5,5,8)]+=tmp0_1;
                             EM_S[INDEX2(7,5,8)]+=tmp0_1;  
10483                              EM_S[INDEX2(6,5,8)]+=tmp0_1;                              EM_S[INDEX2(6,5,8)]+=tmp0_1;
10484                                EM_S[INDEX2(7,5,8)]+=tmp0_1;
10485                              EM_S[INDEX2(4,6,8)]+=tmp0_1;                              EM_S[INDEX2(4,6,8)]+=tmp0_1;
10486                              EM_S[INDEX2(7,4,8)]+=tmp0_1;                              EM_S[INDEX2(5,6,8)]+=tmp0_1;
10487                                EM_S[INDEX2(6,6,8)]+=tmp0_1;
10488                                EM_S[INDEX2(7,6,8)]+=tmp0_1;
10489                                EM_S[INDEX2(4,7,8)]+=tmp0_1;
10490                                EM_S[INDEX2(5,7,8)]+=tmp0_1;
10491                                EM_S[INDEX2(6,7,8)]+=tmp0_1;
10492                                EM_S[INDEX2(7,7,8)]+=tmp0_1;
10493                          }                          }
10494                          ///////////////                          ///////////////
10495                          // process y //                          // process y //
# Line 10527  void Brick::assemblePDEBoundarySingleRed Line 10503  void Brick::assemblePDEBoundarySingleRed
10503                              EM_F[6]+=tmp0_1;                              EM_F[6]+=tmp0_1;
10504                              EM_F[7]+=tmp0_1;                              EM_F[7]+=tmp0_1;
10505                          }                          }
                         /* GENERATOR SNIP_PDEBC_SINGLE_REDUCED_5 BOTTOM */  
10506                          const index_t firstNode=m_N0*m_N1*(m_N2-2)+m_N0*k1+k0;                          const index_t firstNode=m_N0*m_N1*(m_N2-2)+m_N0*k1+k0;
10507                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,
10508                                  add_EM_F, firstNode);                                  add_EM_F, firstNode);
# Line 10552  void Brick::assemblePDEBoundarySystem(Pa Line 10527  void Brick::assemblePDEBoundarySystem(Pa
10527          numEq=mat->logical_row_block_size;          numEq=mat->logical_row_block_size;
10528          numComp=mat->logical_col_block_size;          numComp=mat->logical_col_block_size;
10529      }      }
     /* GENERATOR SNIP_PDEBC_SYSTEM_PRE TOP */  
10530      const double w0 = 0.0018607582807716854616*h1*h2;      const double w0 = 0.0018607582807716854616*h1*h2;
10531      const double w1 = 0.025917019497006092316*h1*h2;      const double w1 = 0.025917019497006092316*h1*h2;
10532      const double w10 = 0.01116454968463011277*h1*h2;      const double w10 = 0.01116454968463011277*h1*h2;
# Line 10589  void Brick::assemblePDEBoundarySystem(Pa Line 10563  void Brick::assemblePDEBoundarySystem(Pa
10563      const double w7 = 0.027777777777777777778*h1*h2;      const double w7 = 0.027777777777777777778*h1*h2;
10564      const double w8 = 0.1555021169820365539*h1*h2;      const double w8 = 0.1555021169820365539*h1*h2;
10565      const double w9 = 0.041666666666666666667*h1*h2;      const double w9 = 0.041666666666666666667*h1*h2;
     /* GENERATOR SNIP_PDEBC_SYSTEM_PRE BOTTOM */  
10566      const bool add_EM_S=!d.isEmpty();      const bool add_EM_S=!d.isEmpty();
10567      const bool add_EM_F=!y.isEmpty();      const bool add_EM_F=!y.isEmpty();
10568      rhs.requireWrite();      rhs.requireWrite();
# Line 10603  void Brick::assemblePDEBoundarySystem(Pa Line 10576  void Brick::assemblePDEBoundarySystem(Pa
10576                          vector<double> EM_S(8*8*numEq*numComp, 0);                          vector<double> EM_S(8*8*numEq*numComp, 0);
10577                          vector<double> EM_F(8*numEq, 0);                          vector<double> EM_F(8*numEq, 0);
10578                          const index_t e = INDEX2(k1,k2,m_NE1);                          const index_t e = INDEX2(k1,k2,m_NE1);
                         /* GENERATOR SNIP_PDEBC_SYSTEM_0 TOP */  
10579                          ///////////////                          ///////////////
10580                          // process d //                          // process d //
10581                          ///////////////                          ///////////////
# Line 10726  void Brick::assemblePDEBoundarySystem(Pa Line 10698  void Brick::assemblePDEBoundarySystem(Pa
10698                                  }                                  }
10699                              }                              }
10700                          }                          }
                         /* GENERATOR SNIP_PDEBC_SYSTEM_0 BOTTOM */  
10701                          const index_t firstNode=m_N0*m_N1*k2+m_N0*k1;                          const index_t firstNode=m_N0*m_N1*k2+m_N0*k1;
10702                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,
10703                                  add_EM_F, firstNode, numEq, numComp);                                  add_EM_F, firstNode, numEq, numComp);
# Line 10743  void Brick::assemblePDEBoundarySystem(Pa Line 10714  void Brick::assemblePDEBoundarySystem(Pa
10714                          vector<double> EM_S(8*8*numEq*numComp, 0);                          vector<double> EM_S(8*8*numEq*numComp, 0);
10715                          vector<double> EM_F(8*numEq, 0);                          vector<double> EM_F(8*numEq, 0);
10716                          const index_t e = m_faceOffset[1]+INDEX2(k1,k2,m_NE1);                          const index_t e = m_faceOffset[1]+INDEX2(k1,k2,m_NE1);
                         /* GENERATOR SNIP_PDEBC_SYSTEM_1 TOP */  
10717                          ///////////////                          ///////////////
10718                          // process d //                          // process d //
10719                          ///////////////                          ///////////////
# Line 10866  void Brick::assemblePDEBoundarySystem(Pa Line 10836  void Brick::assemblePDEBoundarySystem(Pa
10836                                  }                                  }
10837                              }                              }
10838                          }                          }
                         /* GENERATOR SNIP_PDEBC_SYSTEM_1 BOTTOM */  
10839                          const index_t firstNode=m_N0*m_N1*k2+m_N0*(k1+1)-2;                          const index_t firstNode=m_N0*m_N1*k2+m_N0*(k1+1)-2;
10840                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,
10841                                  add_EM_F, firstNode, numEq, numComp);                                  add_EM_F, firstNode, numEq, numComp);
# Line 10883  void Brick::assemblePDEBoundarySystem(Pa Line 10852  void Brick::assemblePDEBoundarySystem(Pa
10852                          vector<double> EM_S(8*8*numEq*numComp, 0);                          vector<double> EM_S(8*8*numEq*numComp, 0);
10853                          vector<double> EM_F(8*numEq, 0);                          vector<double> EM_F(8*numEq, 0);
10854                          const index_t e = m_faceOffset[2]+INDEX2(k0,k2,m_NE0);                          const index_t e = m_faceOffset[2]+INDEX2(k0,k2,m_NE0);
                         /* GENERATOR SNIP_PDEBC_SYSTEM_2 TOP */  
10855                          ///////////////                          ///////////////
10856                          // process d //                          // process d //
10857                          ///////////////                          ///////////////
# Line 11006  void Brick::assemblePDEBoundarySystem(Pa Line 10974  void Brick::assemblePDEBoundarySystem(Pa
10974                                  }                                  }
10975                              }                              }
10976                          }                          }
                         /* GENERATOR SNIP_PDEBC_SYSTEM_2 BOTTOM */  
10977                          const index_t firstNode=m_N0*m_N1*k2+k0;                          const index_t firstNode=m_N0*m_N1*k2+k0;
10978                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,
10979                                  add_EM_F, firstNode, numEq, numComp);                                  add_EM_F, firstNode, numEq, numComp);
# Line 11023  void Brick::assemblePDEBoundarySystem(Pa Line 10990  void Brick::assemblePDEBoundarySystem(Pa
10990                          vector<double> EM_S(8*8*numEq*numComp, 0);                          vector<double> EM_S(8*8*numEq*numComp, 0);
10991                          vector<double> EM_F(8*numEq, 0);                          vector<double> EM_F(8*numEq, 0);
10992                          const index_t e = m_faceOffset[3]+INDEX2(k0,k2,m_NE0);                          const index_t e = m_faceOffset[3]+INDEX2(k0,k2,m_NE0);
                         /* GENERATOR SNIP_PDEBC_SYSTEM_3 TOP */  
10993                          ///////////////                          ///////////////
10994                          // process d //                          // process d //
10995                          ///////////////                          ///////////////
# Line 11146  void Brick::assemblePDEBoundarySystem(Pa Line 11112  void Brick::assemblePDEBoundarySystem(Pa
11112                                  }                                  }
11113                              }                              }
11114                          }                          }
                         /* GENERATOR SNIP_PDEBC_SYSTEM_3 BOTTOM */  
11115                          const index_t firstNode=m_N0*m_N1*k2+m_N0*(m_N1-2)+k0;                          const index_t firstNode=m_N0*m_N1*k2+m_N0*(m_N1-2)+k0;
11116                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,
11117                                  add_EM_F, firstNode, numEq, numComp);                                  add_EM_F, firstNode, numEq, numComp);
# Line 11163  void Brick::assemblePDEBoundarySystem(Pa Line 11128  void Brick::assemblePDEBoundarySystem(Pa
11128                          vector<double> EM_S(8*8*numEq*numComp, 0);                          vector<double> EM_S(8*8*numEq*numComp, 0);
11129                          vector<double> EM_F(8*numEq, 0);                          vector<double> EM_F(8*numEq, 0);
11130                          const index_t e = m_faceOffset[4]+INDEX2(k0,k1,m_NE0);                          const index_t e = m_faceOffset[4]+INDEX2(k0,k1,m_NE0);
                         /* GENERATOR SNIP_PDEBC_SYSTEM_4 TOP */  
11131                          ///////////////                          ///////////////
11132                          // process d //                          // process d //
11133                          ///////////////                          ///////////////
# Line 11286  void Brick::assemblePDEBoundarySystem(Pa Line 11250  void Brick::assemblePDEBoundarySystem(Pa
11250                                  }                                  }
11251                              }                              }
11252                          }                          }
                         /* GENERATOR SNIP_PDEBC_SYSTEM_4 BOTTOM */  
11253                          const index_t firstNode=m_N0*k1+k0;                          const index_t firstNode=m_N0*k1+k0;
11254                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,
11255                                  add_EM_F, firstNode, numEq, numComp);                                  add_EM_F, firstNode, numEq, numComp);
# Line 11303  void Brick::assemblePDEBoundarySystem(Pa Line 11266  void Brick::assemblePDEBoundarySystem(Pa
11266                          vector<double> EM_S(8*8*numEq*numComp, 0);                          vector<double> EM_S(8*8*numEq*numComp, 0);
11267                          vector<double> EM_F(8*numEq, 0);                          vector<double> EM_F(8*numEq, 0);
11268                          const index_t e = m_faceOffset[5]+INDEX2(k0,k1,m_NE0);                          const index_t e = m_faceOffset[5]+INDEX2(k0,k1,m_NE0);
                         /* GENERATOR SNIP_PDEBC_SYSTEM_5 TOP */  
11269                          ///////////////                          ///////////////
11270                          // process d //                          // process d //
11271                          ///////////////                          ///////////////
# Line 11426  void Brick::assemblePDEBoundarySystem(Pa Line 11388  void Brick::assemblePDEBoundarySystem(Pa
11388                                  }                                  }
11389                              }                              }
11390                          }                          }
                         /* GENERATOR SNIP_PDEBC_SYSTEM_5 BOTTOM */  
11391                          const index_t firstNode=m_N0*m_N1*(m_N2-2)+m_N0*k1+k0;                          const index_t firstNode=m_N0*m_N1*(m_N2-2)+m_N0*k1+k0;
11392                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,
11393                                  add_EM_F, firstNode, numEq, numComp);                                  add_EM_F, firstNode, numEq, numComp);
# Line 11451  void Brick::assemblePDEBoundarySystemRed Line 11412  void Brick::assemblePDEBoundarySystemRed
11412          numEq=mat->logical_row_block_size;          numEq=mat->logical_row_block_size;
11413          numComp=mat->logical_col_block_size;          numComp=mat->logical_col_block_size;
11414      }      }
     /* GENERATOR SNIP_PDEBC_SYSTEM_REDUCED_PRE TOP */  
11415      const double w0 = 0.0625*h1*h2;      const double w0 = 0.0625*h1*h2;
11416      const double w1 = 0.25*h1*h2;      const double w1 = 0.25*h1*h2;
11417      const double w2 = 0.0625*h0*h2;      const double w2 = 0.0625*h0*h2;
11418      const double w3 = 0.25*h0*h2;      const double w3 = 0.25*h0*h2;
11419      const double w4 = 0.0625*h0*h1;      const double w4 = 0.0625*h0*h1;
11420      const double w5 = 0.25*h0*h1;      const double w5 = 0.25*h0*h1;
     /* GENERATOR SNIP_PDEBC_SYSTEM_REDUCED_PRE BOTTOM */  
11421      const bool add_EM_S=!d.isEmpty();      const bool add_EM_S=!d.isEmpty();
11422      const bool add_EM_F=!y.isEmpty();      const bool add_EM_F=!y.isEmpty();
11423      rhs.requireWrite();      rhs.requireWrite();
# Line 11472  void Brick::assemblePDEBoundarySystemRed Line 11431  void Brick::assemblePDEBoundarySystemRed
11431                          vector<double> EM_S(8*8*numEq*numComp, 0);                          vector<double> EM_S(8*8*numEq*numComp, 0);
11432                          vector<double> EM_F(8*numEq, 0);                          vector<double> EM_F(8*numEq, 0);
11433                          const index_t e = INDEX2(k1,k2,m_NE1);                          const index_t e = INDEX2(k1,k2,m_NE1);
                         /* GENERATOR SNIP_PDEBC_SYSTEM_REDUCED_0 TOP */  
11434                          ///////////////                          ///////////////
11435                          // process d //                          // process d //
11436                          ///////////////                          ///////////////
# Line 11515  void Brick::assemblePDEBoundarySystemRed Line 11473  void Brick::assemblePDEBoundarySystemRed
11473                                  EM_F[INDEX2(k,6,numEq)]+=tmp0_1;                                  EM_F[INDEX2(k,6,numEq)]+=tmp0_1;
11474                              }                              }
11475                          }                          }
                         /* GENERATOR SNIP_PDEBC_SYSTEM_REDUCED_0 BOTTOM */  
11476                          const index_t firstNode=m_N0*m_N1*k2+m_N0*k1;                          const index_t firstNode=m_N0*m_N1*k2+m_N0*k1;
11477                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,
11478                                  add_EM_F, firstNode, numEq, numComp);                                  add_EM_F, firstNode, numEq, numComp);
# Line 11532  void Brick::assemblePDEBoundarySystemRed Line 11489  void Brick::assemblePDEBoundarySystemRed
11489                          vector<double> EM_S(8*8*numEq*numComp, 0);                          vector<double> EM_S(8*8*numEq*numComp, 0);
11490                          vector<double> EM_F(8*numEq, 0);                          vector<double> EM_F(8*numEq, 0);
11491                          const index_t e = m_faceOffset[1]+INDEX2(k1,k2,m_NE1);                          const index_t e = m_faceOffset[1]+INDEX2(k1,k2,m_NE1);
                         /* GENERATOR SNIP_PDEBC_SYSTEM_REDUCED_1 TOP */  
11492                          ///////////////                          ///////////////
11493                          // process d //                          // process d //
11494                          ///////////////                          ///////////////
# Line 11575  void Brick::assemblePDEBoundarySystemRed Line 11531  void Brick::assemblePDEBoundarySystemRed
11531                                  EM_F[INDEX2(k,7,numEq)]+=tmp0_1;                                  EM_F[INDEX2(k,7,numEq)]+=tmp0_1;
11532                              }                              }
11533                          }                          }
                         /* GENERATOR SNIP_PDEBC_SYSTEM_REDUCED_1 BOTTOM */  
11534                          const index_t firstNode=m_N0*m_N1*k2+m_N0*(k1+1)-2;                          const index_t firstNode=m_N0*m_N1*k2+m_N0*(k1+1)-2;
11535                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,
11536                                  add_EM_F, firstNode, numEq, numComp);                                  add_EM_F, firstNode, numEq, numComp);
# Line 11592  void Brick::assemblePDEBoundarySystemRed Line 11547  void Brick::assemblePDEBoundarySystemRed
11547                          vector<double> EM_S(8*8*numEq*numComp, 0);                          vector<double> EM_S(8*8*numEq*numComp, 0);
11548                          vector<double> EM_F(8*numEq, 0);                          vector<double> EM_F(8*numEq, 0);
11549                          const index_t e = m_faceOffset[2]+INDEX2(k0,k2,m_NE0);                          const index_t e = m_faceOffset[2]+INDEX2(k0,k2,m_NE0);
                         /* GENERATOR SNIP_PDEBC_SYSTEM_REDUCED_2 TOP */  
11550                          ///////////////                          ///////////////
11551                          // process d //                          // process d //
11552                          ///////////////                          ///////////////
# Line 11635  void Brick::assemblePDEBoundarySystemRed Line 11589  void Brick::assemblePDEBoundarySystemRed
11589                                  EM_F[INDEX2(k,5,numEq)]+=tmp0_1;                                  EM_F[INDEX2(k,5,numEq)]+=tmp0_1;
11590                              }                              }
11591                          }                          }
                         /* GENERATOR SNIP_PDEBC_SYSTEM_REDUCED_2 BOTTOM */  
11592                          const index_t firstNode=m_N0*m_N1*k2+k0;                          const index_t firstNode=m_N0*m_N1*k2+k0;
11593                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,
11594                                  add_EM_F, firstNode, numEq, numComp);                                  add_EM_F, firstNode, numEq, numComp);
# Line 11652  void Brick::assemblePDEBoundarySystemRed Line 11605  void Brick::assemblePDEBoundarySystemRed
11605                          vector<double> EM_S(8*8*numEq*numComp, 0);                          vector<double> EM_S(8*8*numEq*numComp, 0);
11606                          vector<double> EM_F(8*numEq, 0);                          vector<double> EM_F(8*numEq, 0);
11607                          const index_t e = m_faceOffset[3]+INDEX2(k0,k2,m_NE0);                          const index_t e = m_faceOffset[3]+INDEX2(k0,k2,m_NE0);
                         /* GENERATOR SNIP_PDEBC_SYSTEM_REDUCED_3 TOP */  
11608                          ///////////////                          ///////////////
11609                          // process d //                          // process d //
11610                          ///////////////                          ///////////////
# Line 11695  void Brick::assemblePDEBoundarySystemRed Line 11647  void Brick::assemblePDEBoundarySystemRed
11647                                  EM_F[INDEX2(k,7,numEq)]+=tmp0_1;                                  EM_F[INDEX2(k,7,numEq)]+=tmp0_1;
11648                              }                              }
11649                          }                          }
                         /* GENERATOR SNIP_PDEBC_SYSTEM_REDUCED_3 BOTTOM */  
11650                          const index_t firstNode=m_N0*m_N1*k2+m_N0*(m_N1-2)+k0;                          const index_t firstNode=m_N0*m_N1*k2+m_N0*(m_N1-2)+k0;
11651                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,
11652                                  add_EM_F, firstNode, numEq, numComp);                                  add_EM_F, firstNode, numEq, numComp);
# Line 11712  void Brick::assemblePDEBoundarySystemRed Line 11663  void Brick::assemblePDEBoundarySystemRed
11663                          vector<double> EM_S(8*8*numEq*numComp, 0);                          vector<double> EM_S(8*8*numEq*numComp, 0);
11664                          vector<double> EM_F(8*numEq, 0);                          vector<double> EM_F(8*numEq, 0);
11665                          const index_t e = m_faceOffset[4]+INDEX2(k0,k1,m_NE0);                          const index_t e = m_faceOffset[4]+INDEX2(k0,k1,m_NE0);
                         /* GENERATOR SNIP_PDEBC_SYSTEM_REDUCED_4 TOP */  
11666                          ///////////////                          ///////////////
11667                          // process d //                          // process d //
11668                          ///////////////                          ///////////////
# Line 11755  void Brick::assemblePDEBoundarySystemRed Line 11705  void Brick::assemblePDEBoundarySystemRed
11705                                  EM_F[INDEX2(k,3,numEq)]+=tmp0_1;                                  EM_F[INDEX2(k,3,numEq)]+=tmp0_1;
11706                              }                              }
11707                          }                          }
                         /* GENERATOR SNIP_PDEBC_SYSTEM_REDUCED_4 BOTTOM */  
11708                          const index_t firstNode=m_N0*k1+k0;                          const index_t firstNode=m_N0*k1+k0;
11709                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,
11710                                  add_EM_F, firstNode, numEq, numComp);                                  add_EM_F, firstNode, numEq, numComp);
# Line 11772  void Brick::assemblePDEBoundarySystemRed Line 11721  void Brick::assemblePDEBoundarySystemRed
11721                          vector<double> EM_S(8*8*numEq*numComp, 0);                          vector<double> EM_S(8*8*numEq*numComp, 0);
11722                          vector<double> EM_F(8*numEq, 0);                          vector<double> EM_F(8*numEq, 0);
11723                          const index_t e = m_faceOffset[5]+INDEX2(k0,k1,m_NE0);                          const index_t e = m_faceOffset[5]+INDEX2(k0,k1,m_NE0);
                         /* GENERATOR SNIP_PDEBC_SYSTEM_REDUCED_5 TOP */  
11724                          ///////////////                          ///////////////
11725                          // process d //                          // process d //
11726                          ///////////////                          ///////////////
# Line 11815  void Brick::assemblePDEBoundarySystemRed Line 11763  void Brick::assemblePDEBoundarySystemRed
11763                                  EM_F[INDEX2(k,7,numEq)]+=tmp0_1;                                  EM_F[INDEX2(k,7,numEq)]+=tmp0_1;
11764                              }                              }
11765                          }                          }
                         /* GENERATOR SNIP_PDEBC_SYSTEM_REDUCED_5 BOTTOM */  
11766                          const index_t firstNode=m_N0*m_N1*(m_N2-2)+m_N0*k1+k0;                          const index_t firstNode=m_N0*m_N1*(m_N2-2)+m_N0*k1+k0;
11767                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,                          addToMatrixAndRHS(mat, rhs, EM_S, EM_F, add_EM_S,
11768                                  add_EM_F, firstNode, numEq, numComp);                                  add_EM_F, firstNode, numEq, numComp);

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

  ViewVC Help
Powered by ViewVC 1.1.26