21 #include "libmesh/quadrature_monomial.h"    22 #include "libmesh/quadrature_gauss.h"    57                 s=std::sqrt(
Real(1)/3), 
    58                 t=std::sqrt(
Real(2)/3); 
    60               const Real data[2][3] =
    83 #if !defined(LIBMESH_DEFAULT_TRIPLE_PRECISION) && !defined(LIBMESH_DEFAULT_QUADRUPLE_PRECISION)    93               const Real data[4][3] =
    96                   {
Real(0.0000000000000000e+00),  
Real(0.0000000000000000e+00),  
Real(1.1428571428571428e+00)},
    97                   {
Real(0.0000000000000000e+00),  
Real(9.6609178307929590e-01),  
Real(4.3956043956043956e-01)},
    98                   {
Real(8.5191465330460049e-01),  
Real(4.5560372783619284e-01),  
Real(5.6607220700753210e-01)},
    99                   {
Real(6.3091278897675402e-01), 
Real(-7.3162995157313452e-01),  
Real(6.4271900178367668e-01)}
   134               const Real data[3][3] =
   137                   {                   0, std::sqrt(
Real(14)/15), 
Real(20)/63}, 
   138                   {std::sqrt(
Real(3)/5),   std::sqrt(
Real(1)/3), 
Real(20)/36}  
   141               const unsigned int symmetry[3] = {
   160 #if !defined(LIBMESH_DEFAULT_TRIPLE_PRECISION) && !defined(LIBMESH_DEFAULT_QUADRUPLE_PRECISION)   170               const Real data[6][3] =
   183                   {
Real(0.0000000000000000e+00),  
Real(8.6983337525005900e-01),  
Real(3.9275059096434794e-01)},
   184                   {
Real(0.0000000000000000e+00), 
Real(-4.7940635161211124e-01),  
Real(7.5476288124261053e-01)},
   185                   {
Real(8.6374282634615388e-01),  
Real(8.0283751620765670e-01),  
Real(2.0616605058827902e-01)},
   186                   {
Real(5.1869052139258234e-01),  
Real(2.6214366550805818e-01),  
Real(6.8999213848986375e-01)},
   187                   {
Real(9.3397254497284950e-01), 
Real(-3.6309658314806653e-01),  
Real(2.6051748873231697e-01)},
   188                   {
Real(6.0897753601635630e-01), 
Real(-8.9660863276245265e-01),  
Real(2.6956758608606100e-01)}
   213                 r  = std::sqrt(
Real(6)/7),                                    
   214                 s  = std::sqrt( (
Real(114) - 3*std::sqrt(
Real(583))) / 287 ), 
   215                 t  = std::sqrt( (
Real(114) + 3*std::sqrt(
Real(583))) / 287 ), 
   217                 B2 = 4 * (178981 + 2769*std::sqrt(
Real(583))) / 1888920,      
   218                 B3 = 4 * (178981 - 2769*std::sqrt(
Real(583))) / 1888920;      
   220               const Real data[3][3] =
   227               const unsigned int symmetry[3] = {
   246 #if !defined(LIBMESH_DEFAULT_TRIPLE_PRECISION) && !defined(LIBMESH_DEFAULT_QUADRUPLE_PRECISION)   256               const Real data[10][3] =
   273                   {
Real(0.0000000000000000e+00),  
Real(6.5956013196034176e-01),  
Real(4.5027677630559029e-01)},
   274                   {
Real(0.0000000000000000e+00), 
Real(-9.4914292304312538e-01),  
Real(1.6657042677781274e-01)},
   275                   {
Real(9.5250946607156228e-01),  
Real(7.6505181955768362e-01),  
Real(9.8869459933431422e-02)},
   276                   {
Real(5.3232745407420624e-01),  
Real(9.3697598108841598e-01),  
Real(1.5369674714081197e-01)},
   277                   {
Real(6.8473629795173504e-01),  
Real(3.3365671773574759e-01),  
Real(3.9668697607290278e-01)},
   278                   {
Real(2.3314324080140552e-01), 
Real(-7.9583272377396852e-02),  
Real(3.5201436794569501e-01)},
   279                   {
Real(9.2768331930611748e-01), 
Real(-2.7224008061253425e-01),  
Real(1.8958905457779799e-01)},
   280                   {
Real(4.5312068740374942e-01), 
Real(-6.1373535339802760e-01),  
Real(3.7510100114758727e-01)},
   281                   {
Real(8.3750364042281223e-01), 
Real(-8.8847765053597136e-01),  
Real(1.2561879164007201e-01)}
   304               const Real data[5][3] =
   306                   {
Real(0.0000000000000000e+00), 
Real(0.0000000000000000e+00), 
Real(5.2674897119341563e-01)}, 
   307                   {
Real(6.3068011973166885e-01), 
Real(9.6884996636197772e-01), 
Real(8.8879378170198706e-02)}, 
   308                   {
Real(9.2796164595956966e-01), 
Real(7.5027709997890053e-01), 
Real(1.1209960212959648e-01)}, 
   309                   {
Real(4.5333982113564719e-01), 
Real(5.2373582021442933e-01), 
Real(3.9828243926207009e-01)}, 
   310                   {
Real(8.5261572933366230e-01), 
Real(7.6208328192617173e-02), 
Real(2.6905133763978080e-01)}  
   313               const unsigned int symmetry[5] = {
   348               const Real data[6][3] =
   350                   {
Real(6.9807610454956756e-01), 
Real(9.8263922354085547e-01), 
Real(4.8020763350723814e-02)}, 
   351                   {
Real(9.3948638281673690e-01), 
Real(8.2577583590296393e-01), 
Real(6.6071329164550595e-02)}, 
   352                   {
Real(9.5353952820153201e-01), 
Real(1.8858613871864195e-01), 
Real(9.7386777358668164e-02)}, 
   353                   {
Real(3.1562343291525419e-01), 
Real(8.1252054830481310e-01), 
Real(2.1173634999894860e-01)}, 
   354                   {
Real(7.1200191307533630e-01), 
Real(5.2532025036454776e-01), 
Real(2.2562606172886338e-01)}, 
   355                   {
Real(4.2484724884866925e-01), 
Real(4.1658071912022368e-02), 
Real(3.5115871839824543e-01)}  
   358               const unsigned int symmetry[6] = {
   388               const Real data[9][3] =
   390                   {
Real(0.0000000000000000e+00), 
Real(0.0000000000000000e+00), 
Real(3.0038211543122536e-01)}, 
   391                   {
Real(9.8348668243987226e-01), 
Real(7.7880971155441942e-01), 
Real(2.9991838864499131e-02)}, 
   392                   {
Real(8.5955600564163892e-01), 
Real(9.5729769978630736e-01), 
Real(3.8174421317083669e-02)}, 
   393                   {
Real(9.5892517028753485e-01), 
Real(1.3818345986246535e-01), 
Real(6.0424923817749980e-02)}, 
   394                   {
Real(3.9073621612946100e-01), 
Real(9.4132722587292523e-01), 
Real(7.7492738533105339e-02)}, 
   395                   {
Real(8.5007667369974857e-01), 
Real(4.7580862521827590e-01), 
Real(1.1884466730059560e-01)}, 
   396                   {
Real(6.4782163718701073e-01), 
Real(7.5580535657208143e-01), 
Real(1.2976355037000271e-01)}, 
   397                   {
Real(7.0741508996444936e-02), 
Real(6.9625007849174941e-01), 
Real(2.1334158145718938e-01)}, 
   398                   {
Real(4.0930456169403884e-01), 
Real(3.4271655604040678e-01), 
Real(2.5687074948196783e-01)}  
   401               const unsigned int symmetry[9] = {
   434               const Real data[9][3] =
   436                   {9.915377816777667e-01_R, 0.0000000000000000e+00 ,  3.01245207981210e-02_R}, 
   437                   {8.020163879230440e-01_R, 0.0000000000000000e+00 ,  8.71146840209092e-02_R}, 
   438                   {5.648674875232742e-01_R, 0.0000000000000000e+00 , 1.250080294351494e-01_R}, 
   439                   {9.354392392539896e-01_R, 0.0000000000000000e+00 ,  2.67651407861666e-02_R}, 
   440                   {7.624563338825799e-01_R, 0.0000000000000000e+00 ,  9.59651863624437e-02_R}, 
   441                   {2.156164241427213e-01_R, 0.0000000000000000e+00 , 1.750832998343375e-01_R}, 
   442                   {9.769662659711761e-01_R, 6.684480048977932e-01_R,  2.83136372033274e-02_R}, 
   443                   {8.937128379503403e-01_R, 3.735205277617582e-01_R,  8.66414716025093e-02_R}, 
   444                   {6.122485619312083e-01_R, 4.078983303613935e-01_R, 1.150144605755996e-01_R}  
   447               const unsigned int symmetry[9] = {
   481               const Real data[10][3] =
   483                   {
Real(9.8935307451260049e-01), 
Real(0.0000000000000000e+00), 
Real(2.0614915919990959e-02)}, 
   484                   {
Real(3.7628520715797329e-01), 
Real(0.0000000000000000e+00), 
Real(1.2802571617990983e-01)}, 
   485                   {
Real(9.7884827926223311e-01), 
Real(0.0000000000000000e+00), 
Real(5.5117395340318905e-03)}, 
   486                   {
Real(8.8579472916411612e-01), 
Real(0.0000000000000000e+00), 
Real(3.9207712457141880e-02)}, 
   487                   {
Real(1.7175612383834817e-01), 
Real(0.0000000000000000e+00), 
Real(7.6396945079863302e-02)}, 
   488                   {
Real(5.9049927380600241e-01), 
Real(3.1950503663457394e-01), 
Real(1.4151372994997245e-01)}, 
   489                   {
Real(7.9907913191686325e-01), 
Real(5.9797245192945738e-01), 
Real(8.3903279363797602e-02)}, 
   490                   {
Real(8.0374396295874471e-01), 
Real(5.8344481776550529e-02), 
Real(6.0394163649684546e-02)}, 
   491                   {
Real(9.3650627612749478e-01), 
Real(3.4738631616620267e-01), 
Real(5.7387752969212695e-02)}, 
   492                   {
Real(9.8132117980545229e-01), 
Real(7.0600028779864611e-01), 
Real(2.1922559481863763e-02)}, 
   495               const unsigned int symmetry[10] = {
   530       libmesh_fallthrough();
   536         gauss_rule.
init(*
this);
 
void wissmann_rule(const Real rule_data[][3], const unsigned int n_pts)
Wissmann published three interesting "partially symmetric" rules for integrating degree 4...
ElemType _type
The type of element for which the current values have been computed. 
const std::vector< Real > & get_weights() const
The libMesh namespace provides an interface to certain functionality in the library. 
std::vector< Point > _points
The locations of the quadrature points in reference element space. 
std::vector< Real > _weights
The quadrature weights. 
virtual void init_2D() override
Initializes the 2D quadrature rule by filling the points and weights vectors with the appropriate val...
void stroud_rule(const Real rule_data[][3], const unsigned int *rule_symmetry, const unsigned int n_pts)
Stroud's rules for quads and hexes can have one of several different types of symmetry. 
Order _order
The polynomial order which the quadrature rule is capable of integrating exactly. ...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const std::vector< Point > & get_points() const
This class implements specific orders of Gauss quadrature. 
virtual void init(const Elem &e, unsigned int p_level=invalid_uint)
Initializes the data structures for a quadrature rule for the element e.