31#ifndef __B2ELEMENT_CONTINUUM_INTEGRATE_H__ 
   32#define __B2ELEMENT_CONTINUUM_INTEGRATE_H__ 
   36#include "elements/properties/b2solid_mechanics.H" 
   37#include "elements/smr/b2element_continuum_util.H" 
   38#include "utils/b2linear_algebra.H" 
   48    static const int n = 1;
 
   49    static const int o = 1;
 
   50    static const double r[1];
 
   51    static const double w[1];
 
   56    static const int n = 2;
 
   57    static const int o = 3;
 
   58    static const double r[2];
 
   59    static const double w[2];
 
   64    static const int n = 3;
 
   65    static const int o = 5;
 
   66    static const double r[3];
 
   67    static const double w[3];
 
   72    static const int n = 4;
 
   73    static const int o = 7;
 
   74    static const double r[4];
 
   75    static const double w[4];
 
   80    static const int n = 5;
 
   81    static const int o = 9;
 
   82    static const double r[5];
 
   83    static const double w[5];
 
   88    static const int n = 6;
 
   89    static const int o = 11;
 
   90    static const double r[6];
 
   91    static const double w[6];
 
   96    static const int n = 7;
 
   97    static const int o = 13;
 
   98    static const double r[7];
 
   99    static const double w[7];
 
  104    static const int n = 8;
 
  105    static const int o = 15;
 
  106    static const double r[8];
 
  107    static const double w[8];
 
  112    static const int n = 9;
 
  113    static const int o = 17;
 
  114    static const double r[9];
 
  115    static const double w[9];
 
  120    static const int n = 10;
 
  121    static const int o = 19;
 
  122    static const double r[10];
 
  123    static const double w[10];
 
  128    static const int n = 11;
 
  129    static const int o = 21;
 
  130    static const double r[11];
 
  131    static const double w[11];
 
  136    static const int n = 12;
 
  137    static const int o = 23;
 
  138    static const double r[12];
 
  139    static const double w[12];
 
  144    static const int n = 13;
 
  145    static const int o = 25;
 
  146    static const double r[13];
 
  147    static const double w[13];
 
  152    static const int n = 14;
 
  153    static const int o = 27;
 
  154    static const double r[14];
 
  155    static const double w[14];
 
  160    static const int n = 15;
 
  161    static const int o = 29;
 
  162    static const double r[15];
 
  163    static const double w[15];
 
  168    static const int n = 16;
 
  169    static const int o = 31;
 
  170    static const double r[16];
 
  171    static const double w[16];
 
  176    static const int n = 17;
 
  177    static const int o = 33;
 
  178    static const double r[17];
 
  179    static const double w[17];
 
  184    static const int n = 18;
 
  185    static const int o = 35;
 
  186    static const double r[18];
 
  187    static const double w[18];
 
  192    static const int n = 19;
 
  193    static const int o = 37;
 
  194    static const double r[19];
 
  195    static const double w[19];
 
  200    static const int n = 20;
 
  201    static const int o = 39;
 
  202    static const double r[20];
 
  203    static const double w[20];
 
  208    static const int n = 21;
 
  209    static const int o = 41;
 
  210    static const double r[21];
 
  211    static const double w[21];
 
  216    static const int n = 22;
 
  217    static const int o = 43;
 
  218    static const double r[22];
 
  219    static const double w[22];
 
  224    static const int n = 23;
 
  225    static const int o = 45;
 
  226    static const double r[23];
 
  227    static const double w[23];
 
  232    static const int n = 24;
 
  233    static const int o = 47;
 
  234    static const double r[24];
 
  235    static const double w[24];
 
  240    static const int n = 25;
 
  241    static const int o = 49;
 
  242    static const double r[25];
 
  243    static const double w[25];
 
  248    static const int n = 26;
 
  249    static const int o = 51;
 
  250    static const double r[26];
 
  251    static const double w[26];
 
  256    static const int n = 27;
 
  257    static const int o = 53;
 
  258    static const double r[27];
 
  259    static const double w[27];
 
  264    static const int n = 28;
 
  265    static const int o = 55;
 
  266    static const double r[28];
 
  267    static const double w[28];
 
  272    static const int n = 29;
 
  273    static const int o = 57;
 
  274    static const double r[29];
 
  275    static const double w[29];
 
  280    static const int n = 30;
 
  281    static const int o = 59;
 
  282    static const double r[30];
 
  283    static const double w[30];
 
  288    static const int n = 31;
 
  289    static const int o = 61;
 
  290    static const double r[31];
 
  291    static const double w[31];
 
  296    static const int n = 32;
 
  297    static const int o = 63;
 
  298    static const double r[32];
 
  299    static const double w[32];
 
  308    static const int n = 1;
 
  309    static const int o = 1;
 
  310    static const double r[1];
 
  311    static const double w[1];
 
  316    static const int n = 2;
 
  317    static const int o = 1;
 
  318    static const double r[2];
 
  319    static const double w[2];
 
  324    static const int n = 3;
 
  325    static const int o = 3;
 
  326    static const double r[3];
 
  327    static const double w[3];
 
  332    static const int n = 4;
 
  333    static const int o = 5;
 
  334    static const double r[4];
 
  335    static const double w[4];
 
  340    static const int n = 5;
 
  341    static const int o = 7;
 
  342    static const double r[5];
 
  343    static const double w[5];
 
  348    static const int n = 6;
 
  349    static const int o = 9;
 
  350    static const double r[6];
 
  351    static const double w[6];
 
  356    static const int n = 7;
 
  357    static const int o = 11;
 
  358    static const double r[7];
 
  359    static const double w[7];
 
  364    static const int n = 8;
 
  365    static const int o = 13;
 
  366    static const double r[8];
 
  367    static const double w[8];
 
  372    static const int n = 9;
 
  373    static const int o = 15;
 
  374    static const double r[9];
 
  375    static const double w[9];
 
  380    static const int n = 10;
 
  381    static const int o = 17;
 
  382    static const double r[10];
 
  383    static const double w[10];
 
  388    static const int n = 11;
 
  389    static const int o = 19;
 
  390    static const double r[11];
 
  391    static const double w[11];
 
  396    static const int n = 12;
 
  397    static const int o = 21;
 
  398    static const double r[12];
 
  399    static const double w[12];
 
  404    static const int n = 13;
 
  405    static const int o = 23;
 
  406    static const double r[13];
 
  407    static const double w[13];
 
  412    static const int n = 14;
 
  413    static const int o = 25;
 
  414    static const double r[14];
 
  415    static const double w[14];
 
  420    static const int n = 15;
 
  421    static const int o = 27;
 
  422    static const double r[15];
 
  423    static const double w[15];
 
  428    static const int n = 16;
 
  429    static const int o = 29;
 
  430    static const double r[16];
 
  431    static const double w[16];
 
  436    static const int n = 17;
 
  437    static const int o = 31;
 
  438    static const double r[17];
 
  439    static const double w[17];
 
  444    static const int n = 18;
 
  445    static const int o = 33;
 
  446    static const double r[18];
 
  447    static const double w[18];
 
  452    static const int n = 19;
 
  453    static const int o = 35;
 
  454    static const double r[19];
 
  455    static const double w[19];
 
  460    static const int n = 20;
 
  461    static const int o = 37;
 
  462    static const double r[20];
 
  463    static const double w[20];
 
  468    static const int n = 21;
 
  469    static const int o = 39;
 
  470    static const double r[21];
 
  471    static const double w[21];
 
  476    static const int n = 22;
 
  477    static const int o = 41;
 
  478    static const double r[22];
 
  479    static const double w[22];
 
  484    static const int n = 23;
 
  485    static const int o = 43;
 
  486    static const double r[23];
 
  487    static const double w[23];
 
  492    static const int n = 24;
 
  493    static const int o = 45;
 
  494    static const double r[24];
 
  495    static const double w[24];
 
  500    static const int n = 25;
 
  501    static const int o = 47;
 
  502    static const double r[25];
 
  503    static const double w[25];
 
  508    static const int n = 26;
 
  509    static const int o = 49;
 
  510    static const double r[26];
 
  511    static const double w[26];
 
  516    static const int n = 27;
 
  517    static const int o = 51;
 
  518    static const double r[27];
 
  519    static const double w[27];
 
  524    static const int n = 28;
 
  525    static const int o = 53;
 
  526    static const double r[28];
 
  527    static const double w[28];
 
  532    static const int n = 29;
 
  533    static const int o = 55;
 
  534    static const double r[29];
 
  535    static const double w[29];
 
  540    static const int n = 30;
 
  541    static const int o = 57;
 
  542    static const double r[30];
 
  543    static const double w[30];
 
  548    static const int n = 31;
 
  549    static const int o = 59;
 
  550    static const double r[31];
 
  551    static const double w[31];
 
  556    static const int n = 32;
 
  557    static const int o = 61;
 
  558    static const double r[32];
 
  559    static const double w[32];
 
  568    static const int n = 1;
 
  569    static const int o = 1;
 
  570    static const double r[1];
 
  571    static const double w[1];
 
  576    static const int n = 2;
 
  577    static const int o = 1;
 
  578    static const double r[2];
 
  579    static const double w[2];
 
  584    static const int n = 3;
 
  585    static const int o = 3;
 
  586    static const double r[3];
 
  587    static const double w[3];
 
  592    static const int n = 4;
 
  593    static const int o = n - 1;
 
  594    static const double r[4];
 
  595    static const double w[4];
 
  600    static const int n = 5;
 
  601    static const int o = n - 1;
 
  602    static const double r[5];
 
  603    static const double w[5];
 
  608    static const int n = 6;
 
  609    static const int o = n - 1;
 
  610    static const double r[6];
 
  611    static const double w[6];
 
  616    static const int n = 7;
 
  617    static const int o = n - 1;
 
  618    static const double r[7];
 
  619    static const double w[7];
 
  624    static const int n = 8;
 
  625    static const int o = n - 1;
 
  626    static const double r[8];
 
  627    static const double w[8];
 
  632    static const int n = 9;
 
  633    static const int o = n - 1;
 
  634    static const double r[9];
 
  635    static const double w[9];
 
  640    static const int n = 10;
 
  641    static const int o = n - 1;
 
  642    static const double r[10];
 
  643    static const double w[10];
 
  648    static const int n = 11;
 
  649    static const int o = n - 1;
 
  650    static const double r[11];
 
  651    static const double w[11];
 
  656    static const int n = 12;
 
  657    static const int o = n - 1;
 
  658    static const double r[12];
 
  659    static const double w[12];
 
  664    static const int n = 13;
 
  665    static const int o = n - 1;
 
  666    static const double r[13];
 
  667    static const double w[13];
 
  672    static const int n = 14;
 
  673    static const int o = n - 1;
 
  674    static const double r[14];
 
  675    static const double w[14];
 
  680    static const int n = 15;
 
  681    static const int o = n - 1;
 
  682    static const double r[15];
 
  683    static const double w[15];
 
  688    static const int n = 16;
 
  689    static const int o = n - 1;
 
  690    static const double r[16];
 
  691    static const double w[16];
 
  696    static const int n = 17;
 
  697    static const int o = n - 1;
 
  698    static const double r[17];
 
  699    static const double w[17];
 
  704    static const int n = 18;
 
  705    static const int o = n - 1;
 
  706    static const double r[18];
 
  707    static const double w[18];
 
  712    static const int n = 19;
 
  713    static const int o = n - 1;
 
  714    static const double r[19];
 
  715    static const double w[19];
 
  720    static const int n = 20;
 
  721    static const int o = n - 1;
 
  722    static const double r[20];
 
  723    static const double w[20];
 
  728    static const int n = 21;
 
  729    static const int o = n - 1;
 
  730    static const double r[21];
 
  731    static const double w[21];
 
  736    static const int n = 22;
 
  737    static const int o = n - 1;
 
  738    static const double r[22];
 
  739    static const double w[22];
 
  744    static const int n = 23;
 
  745    static const int o = n - 1;
 
  746    static const double r[23];
 
  747    static const double w[23];
 
  752    static const int n = 24;
 
  753    static const int o = n - 1;
 
  754    static const double r[24];
 
  755    static const double w[24];
 
  760    static const int n = 25;
 
  761    static const int o = n - 1;
 
  762    static const double r[25];
 
  763    static const double w[25];
 
  768    static const int n = 26;
 
  769    static const int o = n - 1;
 
  770    static const double r[26];
 
  771    static const double w[26];
 
  776    static const int n = 27;
 
  777    static const int o = n - 1;
 
  778    static const double r[27];
 
  779    static const double w[27];
 
  784    static const int n = 28;
 
  785    static const int o = n - 1;
 
  786    static const double r[28];
 
  787    static const double w[28];
 
  792    static const int n = 29;
 
  793    static const int o = n - 1;
 
  794    static const double r[29];
 
  795    static const double w[29];
 
  800    static const int n = 30;
 
  801    static const int o = n - 1;
 
  802    static const double r[30];
 
  803    static const double w[30];
 
  808    static const int n = 31;
 
  809    static const int o = n - 1;
 
  810    static const double r[31];
 
  811    static const double w[31];
 
  816    static const int n = 32;
 
  817    static const int o = n - 1;
 
  818    static const double r[32];
 
  819    static const double w[32];
 
  824    static const int n = 33;
 
  825    static const int o = n - 1;
 
  826    static const double r[33];
 
  827    static const double w[33];
 
  836    static const int n = 1;
 
  837    static const int o = 1;
 
  838    static const double r[1];
 
  839    static const double s[1];
 
  840    static const double w[1];
 
  845    static const int n = 3;
 
  846    static const int o = 2;
 
  847    static const double r[3];
 
  848    static const double s[3];
 
  849    static const double w[3];
 
  854    static const int n = 6;
 
  855    static const int o = 3;
 
  856    static const double r[6];
 
  857    static const double s[6];
 
  858    static const double w[6];
 
  863    static const int n = 7;
 
  864    static const int o = 5;
 
  865    static const double r[7];
 
  866    static const double s[7];
 
  867    static const double w[7];
 
  872    static const int n = 12;
 
  873    static const int o = 6;
 
  874    static const double r[12];
 
  875    static const double s[12];
 
  876    static const double w[12];
 
  881    static const int n = 15;
 
  882    static const int o = 7;
 
  883    static const double r[15];
 
  884    static const double s[15];
 
  885    static const double w[15];
 
  890    static const int n = 16;
 
  891    static const int o = 8;
 
  892    static const double r[16];
 
  893    static const double s[16];
 
  894    static const double w[16];
 
  899    static const int n = 19;
 
  900    static const int o = 9;
 
  901    static const double r[19];
 
  902    static const double s[19];
 
  903    static const double w[19];
 
  908    static const int n = 25;
 
  909    static const int o = 10;
 
  910    static const double r[25];
 
  911    static const double s[25];
 
  912    static const double w[25];
 
  917    static const int n = 28;
 
  918    static const int o = 11;
 
  919    static const double r[28];
 
  920    static const double s[28];
 
  921    static const double w[28];
 
  926    static const int n = 33;
 
  927    static const int o = 12;
 
  928    static const double r[33];
 
  929    static const double s[33];
 
  930    static const double w[33];
 
  935    static const int n = 37;
 
  936    static const int o = 13;
 
  937    static const double r[37];
 
  938    static const double s[37];
 
  939    static const double w[37];
 
  944    static const int n = 42;
 
  945    static const int o = 14;
 
  946    static const double r[42];
 
  947    static const double s[42];
 
  948    static const double w[42];
 
  953    static const int n = 49;
 
  954    static const int o = 15;
 
  955    static const double r[49];
 
  956    static const double s[49];
 
  957    static const double w[49];
 
  962    static const int n = 55;
 
  963    static const int o = 16;
 
  964    static const double r[55];
 
  965    static const double s[55];
 
  966    static const double w[55];
 
  971    static const int n = 60;
 
  972    static const int o = 17;
 
  973    static const double r[60];
 
  974    static const double s[60];
 
  975    static const double w[60];
 
  980    static const int n = 67;
 
  981    static const int o = 18;
 
  982    static const double r[67];
 
  983    static const double s[67];
 
  984    static const double w[67];
 
  989    static const int n = 73;
 
  990    static const int o = 19;
 
  991    static const double r[73];
 
  992    static const double s[73];
 
  993    static const double w[73];
 
  998    static const int n = 79;
 
  999    static const int o = 20;
 
 1000    static const double r[79];
 
 1001    static const double s[79];
 
 1002    static const double w[79];
 
 1009    static const double r[87];
 
 1010    static const double s[87];
 
 1011    static const double w[87];
 
 1018    static const double r[96];
 
 1019    static const double s[96];
 
 1020    static const double w[96];
 
 1027    static const double r[103];
 
 1028    static const double s[103];
 
 1029    static const double w[103];
 
 1036    static const double r[112];
 
 1037    static const double s[112];
 
 1038    static const double w[112];
 
 1045    static const double r[120];
 
 1046    static const double s[120];
 
 1047    static const double w[120];
 
 1054    static const double r[130];
 
 1055    static const double s[130];
 
 1056    static const double w[130];
 
 1063    static const double r[141];
 
 1064    static const double s[141];
 
 1065    static const double w[141];
 
 1072    static const double r[150];
 
 1073    static const double s[150];
 
 1074    static const double w[150];
 
 1081    static const double r[159];
 
 1082    static const double s[159];
 
 1083    static const double w[159];
 
 1090    static const double r[171];
 
 1091    static const double s[171];
 
 1092    static const double w[171];
 
 1099    static const double r[181];
 
 1100    static const double s[181];
 
 1101    static const double w[181];
 
 1108    static const double r[193];
 
 1109    static const double s[193];
 
 1110    static const double w[193];
 
 1117    static const double r[204];
 
 1118    static const double s[204];
 
 1119    static const double w[204];
 
 1126    static const double r[214];
 
 1127    static const double s[214];
 
 1128    static const double w[214];
 
 1135    static const double r[228];
 
 1136    static const double s[228];
 
 1137    static const double w[228];
 
 1144    static const double r[243];
 
 1145    static const double s[243];
 
 1146    static const double w[243];
 
 1153    static const double r[252];
 
 1154    static const double s[252];
 
 1155    static const double w[252];
 
 1162    static const double r[267];
 
 1163    static const double s[267];
 
 1164    static const double w[267];
 
 1171    static const double r[282];
 
 1172    static const double s[282];
 
 1173    static const double w[282];
 
 1180    static const double r[295];
 
 1181    static const double s[295];
 
 1182    static const double w[295];
 
 1189    static const double r[309];
 
 1190    static const double s[309];
 
 1191    static const double w[309];
 
 1198    static const double r[324];
 
 1199    static const double s[324];
 
 1200    static const double w[324];
 
 1207    static const double r[339];
 
 1208    static const double s[339];
 
 1209    static const double w[339];
 
 1216    static const double r[354];
 
 1217    static const double s[354];
 
 1218    static const double w[354];
 
 1225    static const double r[370];
 
 1226    static const double s[370];
 
 1227    static const double w[370];
 
 1234    static const double r[385];
 
 1235    static const double s[385];
 
 1236    static const double w[385];
 
 1243    static const double r[399];
 
 1244    static const double s[399];
 
 1245    static const double w[399];
 
 1252    static const double r[423];
 
 1253    static const double s[423];
 
 1254    static const double w[423];
 
 1261    static const double r[435];
 
 1262    static const double s[435];
 
 1263    static const double w[435];
 
 1270    static const double r[453];
 
 1271    static const double s[453];
 
 1272    static const double w[453];
 
 1282    static const int o = 1;
 
 1283    static const int n = 1;
 
 1284    static const double r[1];
 
 1285    static const double s[1];
 
 1286    static const double t[1];
 
 1287    static const double w[1];
 
 1290    static const double a1;
 
 1296    static const int o = 2;
 
 1297    static const int n = 4;
 
 1298    static const double r[4];
 
 1299    static const double s[4];
 
 1300    static const double t[4];
 
 1301    static const double w[4];
 
 1304    static const double a1;
 
 1305    static const double a2;
 
 1306    static const double w1;
 
 1312    static const int o = 3;
 
 1313    static const int n = 5;
 
 1314    static const double r[5];
 
 1315    static const double s[5];
 
 1316    static const double t[5];
 
 1317    static const double w[5];
 
 1320    static const double a1;
 
 1321    static const double a2;
 
 1322    static const double a3;
 
 1323    static const double w1;
 
 1324    static const double w2;
 
 1330    static const int o = 4;
 
 1331    static const int n = 14;
 
 1332    static const double r[14];
 
 1333    static const double s[14];
 
 1334    static const double t[14];
 
 1335    static const double w[14];
 
 1341    static const int o = 5;
 
 1342    static const int n = 15;
 
 1343    static const double r[15];
 
 1344    static const double s[15];
 
 1345    static const double t[15];
 
 1346    static const double w[15];
 
 1352    static const int o = 6;
 
 1353    static const int n = 24;
 
 1354    static const double r[24];
 
 1355    static const double s[24];
 
 1356    static const double t[24];
 
 1357    static const double w[24];
 
 1365class Irons_Param_15 {
 
 1367    static const int o = 5;
 
 1368    static const int n = 15;
 
 1369    static const double r[15];
 
 1370    static const double s[15];
 
 1371    static const double t[15];
 
 1372    static const double w[15];
 
 1374    static const double r1;
 
 1375    static const double w1;
 
 1376    static const double w2;
 
 1377    static const double w3;
 
 1385class Hex_Reduced_Param_9 {
 
 1387    static const int o = 3;
 
 1388    static const int n = 9;
 
 1389    static const double r[9];
 
 1390    static const double s[9];
 
 1391    static const double t[9];
 
 1392    static const double w[9];
 
 1394    static const double r1;
 
 1395    static const double w0;
 
 1396    static const double w1;
 
 1405    int get_num()
 const { 
return 1; }
 
 1407    void get_point(
const int point_index, 
double& r, 
double& weight)
 const {
 
 1408        assert(point_index == 0);
 
 1413    void get_point(
const int point_index, Natural_Coor& rst, 
double& weight)
 const {
 
 1414        std::fill(rst.data(), rst.data() + 3, 0.);
 
 1415        get_point(point_index, rst[0], weight);
 
 1425    IS_L() : scheme(0), index(0) {}
 
 1427    int get_num_schemes() 
const;
 
 1429    int get_scheme()
 const { 
return scheme; }
 
 1431    void set_scheme(
const int scheme);
 
 1433    void set_scheme_name(
const std::string& scheme_name);
 
 1435    const char* get_scheme_name()
 const { 
return scheme_names[scheme]; }
 
 1437    void set_order(
const int order);
 
 1439    int get_max_order() 
const;
 
 1441    int get_order() 
const;
 
 1443    void set_num(
const int num_);
 
 1445    int get_num() 
const;
 
 1447    void get_point(
const int point_index, 
double& r, 
double& weight) 
const;
 
 1449    void get_point(
const int point_index, Natural_Coor& rst, 
double& weight)
 const {
 
 1450        std::fill(rst.data(), rst.data() + 3, 0.);
 
 1451        get_point(point_index, rst[0], weight);
 
 1454    void init(ElementProperty& property);
 
 1458        enum { GL = 0, GLL = 1, CC = 2, EVENLYSPACED = 3 };
 
 1461    static const char* scheme_names[4];
 
 1466    static const int gl_nn = 32;
 
 1467    static const int gl_n[gl_nn];
 
 1468    static const int gl_o[gl_nn];
 
 1469    static const double* gl_r[gl_nn];
 
 1470    static const double* gl_w[gl_nn];
 
 1471    static const int gll_nn = 32;
 
 1472    static const int gll_n[gll_nn];
 
 1473    static const int gll_o[gll_nn];
 
 1474    static const double* gll_r[gll_nn];
 
 1475    static const double* gll_w[gll_nn];
 
 1476    static const int cc_nn = 32;
 
 1477    static const int cc_n[cc_nn];
 
 1478    static const int cc_o[cc_nn];
 
 1479    static const double* cc_r[cc_nn];
 
 1480    static const double* cc_w[cc_nn];
 
 1489    IS_T() : scheme(0), index(0) {}
 
 1491    int get_num_schemes()
 const { 
return 1; }
 
 1493    int get_scheme()
 const { 
return scheme; }
 
 1495    void set_scheme(
const int scheme);
 
 1497    void set_scheme_name(
const std::string& scheme);
 
 1499    const char* get_scheme_name()
 const { 
return scheme_names[scheme]; }
 
 1501    void set_order(
const int order);
 
 1503    int get_max_order() 
const;
 
 1505    int get_order() 
const;
 
 1507    void set_num(
const int num_);
 
 1509    int get_num() 
const;
 
 1511    void get_point(
const int point_index, 
double rst[2], 
double& weight) 
const;
 
 1513    void get_point(
const int point_index, Natural_Coor& rst, 
double& weight)
 const {
 
 1514        std::fill(rst.data(), rst.data() + 3, 0.);
 
 1515        get_point(point_index, rst.data(), weight);
 
 1518    void init(ElementProperty& property);
 
 1525    static const char* scheme_names[1];
 
 1527    static const int pt_nn = 50;
 
 1528    static const int pt_n[pt_nn];
 
 1529    static const int pt_o[pt_nn];
 
 1530    static const double* pt_r[pt_nn];
 
 1531    static const double* pt_s[pt_nn];
 
 1532    static const double* pt_w[pt_nn];
 
 1544    const IS_L& operator[](
const int direction)
 const { 
return is_l[direction]; }
 
 1546    IS_L& operator[](
const int direction) { 
return is_l[direction]; }
 
 1548    void set_order(
const int order) {
 
 1570                Exception() << 
THROW;
 
 1573        for (
int i = 0; i != 2; ++i) { is_l[i].set_order(o); }
 
 1576    int get_order()
 const { 
return is_l[0].get_order() + is_l[1].get_order(); }
 
 1578    void set_num(
const int num) {
 
 1633                Exception() << 
THROW;
 
 1636        for (
int i = 0; i != 2; ++i) { is_l[i].set_num(n); }
 
 1639    int get_num()
 const { 
return is_l[0].get_num() * is_l[1].get_num(); }
 
 1641    void get_point(
const int point_index, 
double rst[2], 
double& weight)
 const {
 
 1642        const int n0 = is_l[0].get_num();
 
 1643        const int index[2] = {point_index % n0, point_index / n0};
 
 1645        for (
int i = 0; i != 2; ++i) { is_l[i].get_point(index[i], rst[i], w[i]); }
 
 1646        weight = w[0] * w[1];
 
 1649    void get_point(
const int point_index, Natural_Coor& rst, 
double& weight)
 const {
 
 1650        std::fill(rst.data(), rst.data() + 3, 0.);
 
 1651        get_point(point_index, rst.data(), weight);
 
 1654    void init(ElementProperty& property);
 
 1666    IS_TE() : scheme(0), order(0) {}
 
 1668    int get_num_schemes()
 const { 
return 1; }
 
 1670    int get_scheme()
 const { 
return scheme; }
 
 1672    void set_scheme(
const int scheme);
 
 1674    void set_scheme_name(
const std::string& scheme);
 
 1676    const char* get_scheme_name()
 const { 
return scheme_names[scheme]; }
 
 1678    void set_order(
const int order);
 
 1680    int get_max_order() 
const;
 
 1682    int get_order() 
const;
 
 1684    void set_num(
const int num_);
 
 1686    int get_num() 
const;
 
 1688    void get_point(
const int index, 
double rst[3], 
double& weight) 
const;
 
 1690    void get_point(
const int index, Natural_Coor& rst, 
double& weight)
 const {
 
 1691        get_point(index, rst.data(), weight);
 
 1694    void init(ElementProperty& property);
 
 1701    static const char* scheme_names[1];
 
 1703    static const int pte_nn = 6;
 
 1704    static const int pte_n[pte_nn];
 
 1705    static const double* pte_r[pte_nn];
 
 1706    static const double* pte_s[pte_nn];
 
 1707    static const double* pte_t[pte_nn];
 
 1708    static const double* pte_w[pte_nn];
 
 1710    static const int pt_nn = 7;
 
 1711    static const int pt_n[pt_nn];
 
 1712    static const double* pt_r[pt_nn];
 
 1713    static const double* pt_s[pt_nn];
 
 1714    static const double* pt_w[pt_nn];
 
 1716    static const int pgl_nn = 7;
 
 1717    static const int pgl_gn[pgl_nn];
 
 1718    static const double* pgl_gr[pgl_nn];
 
 1719    static const double* pgl_gw[pgl_nn];
 
 1734    void set_num(
const int num) {
 
 1737                triangle.set_num(1);
 
 1741                triangle.set_num(3);
 
 1745                triangle.set_num(3);
 
 1749                triangle.set_num(7);
 
 1753                Exception() << 
THROW;
 
 1758    int get_num()
 const { 
return triangle.get_num() * line.get_num(); }
 
 1760    void get_point(
const int point_index, 
double rst[3], 
double& weight)
 const {
 
 1761        const int n = triangle.get_num();
 
 1763        triangle.get_point(point_index % n, rst, w[0]);
 
 1764        line.get_point(point_index / n, rst[2], w[1]);
 
 1765        weight = w[0] * w[1];
 
 1768    void get_point(
const int point_index, Natural_Coor& rst, 
double& weight)
 const {
 
 1769        get_point(point_index, rst.data(), weight);
 
 1772    void init(ElementProperty& property);
 
 1781    const IS_L& operator[](
const int direction)
 const { 
return is_l[direction]; }
 
 1783    IS_L& operator[](
const int direction) { 
return is_l[direction]; }
 
 1785    void set_order(
const int order) {
 
 1804                Exception() << 
THROW;
 
 1807        for (
int i = 0; i != 3; ++i) { is_l[i].set_order(o); }
 
 1810    int get_order()
 const {
 
 1811        return is_l[0].get_order() + is_l[1].get_order() + is_l[2].get_order();
 
 1814    void set_num(
const int num) {
 
 1833                Exception() << 
THROW;
 
 1836        for (
int i = 0; i != 3; ++i) { is_l[i].set_num(n); }
 
 1839    int get_num()
 const { 
return is_l[0].get_num() * is_l[1].get_num() * is_l[2].get_num(); }
 
 1841    void get_point(
const int point_index, 
double rst[3], 
double& weight)
 const {
 
 1842        const int n0 = is_l[0].get_num();
 
 1843        const int n1 = is_l[1].get_num();
 
 1844        const int index[3] = {point_index % n0, (point_index / n0) % n1, point_index / (n0 * n1)};
 
 1846        for (
int i = 0; i != 3; ++i) { is_l[i].get_point(index[i], rst[i], w[i]); }
 
 1847        weight = w[0] * w[1] * w[2];
 
 1850    void get_point(
const int point_index, Natural_Coor& rst, 
double& weight)
 const {
 
 1851        get_point(point_index, rst.data(), weight);
 
 1854    void init(ElementProperty& property);
 
#define THROW
Definition b2exception.H:198
 
Contains the base classes for implementing Finite Elements.
Definition b2boundary_condition.H:32