33 #ifndef OOMPH_INTEGRAL_HEADER 34 #define OOMPH_INTEGRAL_HEADER 39 #include <oomph-lib-config.h> 82 virtual unsigned nweight()
const=0;
85 virtual double knot(
const unsigned &
i,
const unsigned &j)
const=0;
90 throw OomphLibError(
"Not implemented for this integration scheme (yet?).",
91 OOMPH_CURRENT_FUNCTION,
92 OOMPH_EXCEPTION_LOCATION);
96 virtual double weight(
const unsigned &i)
const=0;
113 const unsigned index_s,
114 const double s_reflect,
117 Integral_pt(integral_to_reflect_pt),
119 S_reflect(s_reflect), S_min(s_min), S_max(s_max),
120 S_reflect_fraction(local_to_fraction(s_reflect)){};
123 unsigned nweight()
const {
return 2u*Integral_pt->nweight(); }
126 double knot(
const unsigned &
i,
const unsigned &j)
const;
129 double weight(
const unsigned &i)
const;
135 double local_to_fraction(
const double& local_coord)
const;
139 double fraction_to_local(
const double& fraction)
const;
164 template <
unsigned DIM>
182 Integral0_pt(integral0_pt), Integral1_pt(integral1_pt) {}
187 return Integral0_pt->nweight() * Integral1_pt->nweight();
191 double knot(
const unsigned &
i,
const unsigned &j)
const 193 const unsigned Npts1 = Integral1_pt->nweight();
194 if(j == 0)
return Integral0_pt->knot(i/Npts1,0);
195 if(j == 1)
return Integral1_pt->knot(i%Npts1,0);
198 throw OomphLibError(
"Integral is two dimensional, you requested j>1",
199 OOMPH_CURRENT_FUNCTION,
200 OOMPH_EXCEPTION_LOCATION);
207 const unsigned Npts1 = Integral1_pt->nweight();
208 return Integral0_pt->weight(i/Npts1)*Integral1_pt->weight(i%Npts1);
255 double knot(
const unsigned &
i,
const unsigned &j)
const 258 "Local coordinate vector is of size zero, so this should never be called.",
259 OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION);
266 double weight(
const unsigned &
i)
const {
return 1.0;}
287 template <
unsigned DIM,
unsigned NPTS_1D>
308 static const unsigned Npts=2;
310 static const double Knot[2][1], Weight[2];
334 double knot(
const unsigned &
i,
const unsigned &j)
const 338 double weight(
const unsigned &
i)
const {
return Weight[
i];}
356 static const unsigned Npts=3;
358 static const double Knot[3][1], Weight[3];
382 double knot(
const unsigned &
i,
const unsigned &j)
const 386 double weight(
const unsigned &
i)
const {
return Weight[
i];}
405 static const unsigned Npts=4;
407 static const double Knot[4][1], Weight[4];
430 double knot(
const unsigned &
i,
const unsigned &j)
const 434 double weight(
const unsigned &
i)
const {
return Weight[
i];}
453 static const unsigned Npts=4;
455 static const double Knot[4][2], Weight[4];
479 double knot(
const unsigned &
i,
const unsigned &j)
const 483 double weight(
const unsigned &
i)
const {
return Weight[
i];}
500 static const unsigned Npts=9;
502 static const double Knot[9][2], Weight[9];
526 double knot(
const unsigned &
i,
const unsigned &j)
const 530 double weight(
const unsigned &
i)
const {
return Weight[
i];}
548 static const unsigned Npts=16;
550 static const double Knot[16][2], Weight[16];
575 double knot(
const unsigned &
i,
const unsigned &j)
const 579 double weight(
const unsigned &
i)
const {
return Weight[
i];}
597 static const unsigned Npts=8;
599 static const double Knot[8][3], Weight[8];
623 double knot(
const unsigned &
i,
const unsigned &j)
const 627 double weight(
const unsigned &
i)
const {
return Weight[
i];}
645 static const unsigned Npts=27;
647 static const double Knot[27][3], Weight[27];
671 double knot(
const unsigned &
i,
const unsigned &j)
const 675 double weight(
const unsigned &
i)
const {
return Weight[
i];}
693 static const unsigned Npts=64;
695 static const double Knot[64][3], Weight[64];
718 double knot(
const unsigned &
i,
const unsigned &j)
const 722 double weight(
const unsigned &
i)
const {
return Weight[
i];}
731 template <
unsigned DIM,
unsigned NPTS_1D>
760 Range = upper - lower;
764 double knot(
const unsigned &
i,
const unsigned &j)
const 790 template<
unsigned DIM,
unsigned NPTS_1D>
810 static const unsigned Npts=2;
813 static const double Knot[2][1], Weight[2];
837 double knot(
const unsigned &
i,
const unsigned &j)
const 841 double weight(
const unsigned &
i)
const {
return Weight[
i];}
859 static const unsigned Npts=3;
861 static const double Knot[3][1], Weight[3];
884 double knot(
const unsigned &
i,
const unsigned &j)
const 888 double weight(
const unsigned &
i)
const {
return Weight[
i];}
907 static const unsigned Npts=4;
909 static const double Knot[4][1], Weight[4];
932 double knot(
const unsigned &
i,
const unsigned &j)
const 936 double weight(
const unsigned &
i)
const {
return Weight[
i];}
947 static const unsigned Npts=5;
949 static const double Knot[5][1], Weight[5];
972 double knot(
const unsigned &
i,
const unsigned &j)
const 976 double weight(
const unsigned &
i)
const {
return Weight[
i];}
995 static const unsigned Npts=3;
998 static const double Knot[3][2], Weight[3];
1022 double knot(
const unsigned &
i,
const unsigned &j)
const 1023 {
return Knot[
i][j];}
1026 double weight(
const unsigned &
i)
const {
return Weight[
i];}
1044 static const unsigned Npts=7;
1046 static const double Knot[7][2], Weight[7];
1069 double knot(
const unsigned &
i,
const unsigned &j)
const 1070 {
return Knot[
i][j];}
1073 double weight(
const unsigned &
i)
const {
return Weight[
i];}
1092 static const unsigned Npts=13;
1094 static const double Knot[13][2], Weight[13];
1117 double knot(
const unsigned &
i,
const unsigned &j)
const 1118 {
return Knot[
i][j];}
1121 double weight(
const unsigned &
i)
const {
return Weight[
i];}
1137 static const unsigned Npts=37;
1139 static const double Knot[37][2], Weight[37];
1162 double knot(
const unsigned &
i,
const unsigned &j)
const 1163 {
return Knot[
i][j];}
1166 double weight(
const unsigned &
i)
const {
return Weight[
i];}
1182 static const unsigned Npts=19;
1184 static const double Knot[19][2], Weight[19];
1207 double knot(
const unsigned &
i,
const unsigned &j)
const 1208 {
return Knot[
i][j];}
1211 double weight(
const unsigned &
i)
const {
return Weight[
i];}
1230 static const unsigned Npts=52;
1232 static const double Knot[52][2], Weight[52];
1255 double knot(
const unsigned &
i,
const unsigned &j)
const 1256 {
return Knot[
i][j];}
1259 double weight(
const unsigned &
i)
const {
return Weight[
i];}
1274 static const unsigned Npts=64;
1276 static const double Knot[64][2], Weight[64];
1299 double knot(
const unsigned &
i,
const unsigned &j)
const 1300 {
return Knot[
i][j];}
1303 double weight(
const unsigned &
i)
const {
return Weight[
i];}
1321 static const unsigned Npts=4;
1323 static const double Knot[4][3], Weight[4];
1347 double knot(
const unsigned &
i,
const unsigned &j)
const 1348 {
return Knot[
i][j];}
1351 double weight(
const unsigned &
i)
const {
return Weight[
i];}
1372 static const unsigned Npts=11;
1374 static const double Knot[11][3], Weight[11];
1398 double knot(
const unsigned &
i,
const unsigned &j)
const 1399 {
return Knot[
i][j];}
1402 double weight(
const unsigned &
i)
const {
return Weight[
i];}
1422 static const unsigned Npts=45;
1424 static const double Knot[45][3], Weight[45];
1448 double knot(
const unsigned &
i,
const unsigned &j)
const 1449 {
return Knot[
i][j];}
1452 double weight(
const unsigned &
i)
const {
return Weight[
i];}
1463 template <
unsigned DIM,
unsigned NPTS_1D>
1471 template<
unsigned NPTS_1D>
1477 static const unsigned Npts=NPTS_1D;
1480 double Knot[NPTS_1D][1], Weight[NPTS_1D];
1491 double knot(
const unsigned &
i,
const unsigned &j)
const 1492 {
return Knot[
i][j];}
1495 double weight(
const unsigned &
i)
const {
return Weight[
i];}
1504 template<
unsigned NPTS_1D>
1512 for(
unsigned i=0;
i<NPTS_1D;
i++)
1523 template<
unsigned NPTS_1D>
1529 static const unsigned long int Npts=NPTS_1D*NPTS_1D;
1532 double Knot[NPTS_1D*NPTS_1D][2],
1533 Weight[NPTS_1D*NPTS_1D];
1545 double knot(
const unsigned &
i,
const unsigned &j)
const 1546 {
return Knot[
i][j];}
1549 double weight(
const unsigned &
i)
const {
return Weight[
i];}
1558 template<
unsigned NPTS_1D>
1565 int i_fast=0, i_slow=0;
1566 for(
unsigned i=0;
i<NPTS_1D*NPTS_1D;
i++){
1567 if (i_fast == NPTS_1D){i_fast=0;i_slow++;}
1568 Knot[
i][0]=
s[i_fast];
1569 Knot[
i][1]=
s[i_slow];
1570 Weight[
i]=w[i_fast]*w[i_slow];
1581 template<
unsigned NPTS_1D>
1587 static const unsigned long int Npts=NPTS_1D*NPTS_1D*NPTS_1D;
1590 double Knot[NPTS_1D*NPTS_1D*NPTS_1D][3],
1591 Weight[NPTS_1D*NPTS_1D*NPTS_1D];
1603 double knot(
const unsigned &
i,
const unsigned &j)
const 1604 {
return Knot[
i][j];}
1607 double weight(
const unsigned &
i)
const {
return Weight[
i];}
1616 template<
unsigned NPTS_1D>
1623 for(
unsigned k=0;k<NPTS_1D;k++)
1625 for(
unsigned j=0;j<NPTS_1D;j++)
1627 for(
unsigned i=0;
i<NPTS_1D;
i++)
1629 unsigned index = NPTS_1D*NPTS_1D*k + NPTS_1D*j +
i;
1630 Knot[index][0]=
s[
i];
1631 Knot[index][1]=
s[j];
1632 Knot[index][2]=
s[k];
1633 Weight[index]=w[
i]*w[j]*w[k];
1650 template <
unsigned DIM,
unsigned NPTS_1D>
1658 template<
unsigned NPTS_1D>
1664 static const unsigned Npts=NPTS_1D;
1667 double Knot[NPTS_1D][1], Weight[NPTS_1D];
1678 double knot(
const unsigned &
i,
const unsigned &j)
const 1679 {
return Knot[
i][j];}
1682 double weight(
const unsigned &
i)
const {
return Weight[
i];}
1691 template<
unsigned NPTS_1D>
1699 for(
unsigned i=0;
i<NPTS_1D;
i++)
1710 template<
unsigned NPTS_1D>
1716 static const unsigned long int Npts=NPTS_1D*NPTS_1D;
1719 double Knot[NPTS_1D*NPTS_1D][2],
1720 Weight[NPTS_1D*NPTS_1D];
1732 double knot(
const unsigned &
i,
const unsigned &j)
const 1733 {
return Knot[
i][j];}
1736 double weight(
const unsigned &
i)
const {
return Weight[
i];}
1745 template<
unsigned NPTS_1D>
1752 int i_fast=0, i_slow=0;
1753 for(
unsigned i=0;
i<NPTS_1D*NPTS_1D;
i++){
1754 if (i_fast == NPTS_1D){i_fast=0;i_slow++;}
1755 Knot[
i][0]=
s[i_fast];
1756 Knot[
i][1]=
s[i_slow];
1757 Weight[
i]=w[i_fast]*w[i_slow];
1768 template<
unsigned NPTS_1D>
1774 static const unsigned long int Npts=NPTS_1D*NPTS_1D*NPTS_1D;
1777 double Knot[NPTS_1D*NPTS_1D*NPTS_1D][3],
1778 Weight[NPTS_1D*NPTS_1D*NPTS_1D];
1790 double knot(
const unsigned &
i,
const unsigned &j)
const 1791 {
return Knot[
i][j];}
1794 double weight(
const unsigned &
i)
const {
return Weight[
i];}
1803 template<
unsigned NPTS_1D>
1810 for(
unsigned k=0;k<NPTS_1D;k++)
1812 for(
unsigned j=0;j<NPTS_1D;j++)
1814 for(
unsigned i=0;
i<NPTS_1D;
i++)
1816 unsigned index = NPTS_1D*NPTS_1D*k + NPTS_1D*j +
i;
1817 Knot[index][0]=
s[
i];
1818 Knot[index][1]=
s[j];
1819 Knot[index][2]=
s[k];
1820 Weight[index]=w[
i]*w[j]*w[k];
1842 Weight.resize(Npts);
1852 double knot(
const unsigned &
i,
const unsigned &j)
const {
return Knot[
i]; }
1855 double weight(
const unsigned &
i)
const {
return Weight[
i]; }
Gauss(const Gauss &dummy)
Broken copy constructor.
double weight(const unsigned &i) const
Return weight of integration point i.
TGauss(const TGauss &dummy)
Broken copy constructor.
double knot(const unsigned &i, const unsigned &j) const
Return coordinate x[j] of integration point i.
void broken_copy(const std::string &class_name)
Issue error message and terminate execution.
void operator=(const Gauss &)
Broken assignment operator.
double knot(const unsigned &i, const unsigned &j) const
Return coordinate x[j] of integration point i.
TGauss()
Default constructor (empty)
void operator=(const Gauss &)
Broken assignment operator.
double knot(const unsigned &i, const unsigned &j) const
Return coordinate s[j] (j=0) of integration point i.
void operator=(const TGauss &)
Broken assignment operator.
double weight(const unsigned &i) const
Return weight of integration point i.
TGauss(const TGauss &dummy)
Broken copy constructor.
Gauss()
Default constructor (empty)
TGauss(const TGauss &dummy)
Broken copy constructor.
TGauss()
Default constructor (empty)
TGauss()
Default constructor (empty)
unsigned nweight() const
Number of integration points of the scheme.
unsigned nweight() const
Number of integration points of the scheme.
unsigned nweight() const
Number of integration points of the scheme.
PointIntegral()
Default constructor (empty)
void operator=(const TGauss &)
Broken assignment operator.
unsigned nweight() const
Number of integration points of the scheme.
double weight(const unsigned &i) const
Return weight of integration point i.
unsigned nweight() const
Number of integration points of the scheme.
Gauss(const Gauss &dummy)
Broken copy constructor.
void operator=(const Gauss &)
Broken assignment operator.
double weight(const unsigned &i) const
Return weight of integration point i.
unsigned nweight() const
Number of integration points of the scheme.
Gauss()
Default constructor (empty)
TGauss(const TGauss &dummy)
Broken copy constructor.
unsigned nweight() const
Number of integration points of the scheme.
double knot(const unsigned &i, const unsigned &j) const
Return coordinate s[j] of integration point i.
TGauss(const TGauss &dummy)
Broken copy constructor.
double knot(const unsigned &i, const unsigned &j) const
Return coordinate s[j] of integration point i.
double knot(const unsigned &i, const unsigned &j) const
Return the rescaled knot values s[j] at integration point i.
double weight(const unsigned &i) const
Return weight of integration point i.
double weight(const unsigned &i) const
Return weight of integration point i.
TGauss()
Default constructor (empty)
double weight(const unsigned &i) const
Return weight of integration point i.
Gauss()
Default constructor (empty)
double knot(const unsigned &i, const unsigned &j) const
Return coordinate x[j] of integration point i.
double weight(const unsigned &i) const
Return weight of integration point i.
double knot(const unsigned &i, const unsigned &j) const
Return coordinate s[j] (j=0) of integration point i.
Gauss()
Default constructor (empty)
void operator=(const TGauss &)
Broken assignment operator.
double knot(const unsigned &i, const unsigned &j) const
Return coordinate s[j] of integration point i.
unsigned nweight() const
Number of integration points of the scheme.
double weight(const unsigned &i) const
Return weight of integration point i.
const unsigned Index_s
Index of local coord (s) which scheme will be reflected along.
Vector< double > Weight
Array to hold position of knot points in local coordinates.
Gauss()
Default constructor (empty)
double weight(const unsigned &i) const
Return weight of integration point i.
Gauss()
Default constructor (empty)
unsigned nweight() const
Number of integration points of the scheme.
double weight(const unsigned &i) const
Return weight of integration point i.
double weight(const unsigned &i) const
Return weight of integration point i.
unsigned nweight() const
Number of integration points of the scheme.
unsigned nweight() const
Number of integration points of the scheme.
double weight(const unsigned &i) const
Return weight of integration point i.
void operator=(const Integral &)
Broken assignment operator.
double knot(const unsigned &i, const unsigned &j) const
Return coordinate x[j] of integration point i.
TensorProductIntegral(const Integral *integral0_pt, const Integral *integral1_pt)
Construct tensor product from two integrals.
unsigned nweight() const
Number of integration points of the scheme.
Gauss()
Default constructor (empty)
const double S_min
Minimum value of local coord (s) over whole domain.
TGauss(const TGauss &dummy)
Broken copy constructor.
double knot(const unsigned &i, const unsigned &j) const
Return coordinate s[j] (j=0) of integration point i.
void operator=(const TGauss &)
Broken assignment operator.
TGauss()
Default constructor (empty)
unsigned nweight() const
Number of integration points of the scheme.
double weight(const unsigned &i) const
Return weight of integration point i.
virtual double weight(const unsigned &i) const =0
Return weight of i-th integration point.
double weight(const unsigned &i) const
Return weight of integration point i.
unsigned long int Npts
Number of integration points in scheme.
double weight(const unsigned &i) const
Return weight of integration point i.
void operator=(const Gauss &)
Broken assignment operator.
TGauss()
Default constructor (empty)
unsigned nweight() const
Number of integration points of the scheme.
void operator=(const TGauss &)
Broken assignment operator.
double weight(const unsigned &i) const
Return weight of integration point i.
Gauss()
Default constructor (empty)
RuntimeCalculatedGaussLegendre(const unsigned &npts)
Deafault constructor. Calculates and stores GL nodes.
double weight(const unsigned &i) const
Return weight of integration point i.
Gauss(const Gauss &dummy)
Broken copy constructor.
double knot(const unsigned &i, const unsigned &j) const
Return coordinate s[j] (j=0) of integration point i – deliberately broken!
void operator=(const TGauss &)
Broken assignment operator.
unsigned nweight() const
Number of integration points of the scheme.
const double S_reflect
Value of local coord (s) where scheme will be reflected.
double weight(const unsigned &i) const
Return weight of integration point i.
double weight(const unsigned &i) const
Return weight of integration point i.
double knot(const unsigned &i, const unsigned &j) const
Return coordinate x[j] of integration point i.
double weight(const unsigned &i) const
Return the rescaled weight at integration point i.
void gll_nodes(const unsigned &Nnode, Vector< double > &x)
Calculates the Gauss Lobatto Legendre abscissas for degree p = NNode-1.
unsigned nweight() const
Number of integration points of the scheme.
TGauss()
Default constructor (empty)
const Integral * Integral1_pt
Pointer to integral in direction indexed by 1.
TGauss(const TGauss &dummy)
Broken copy constructor.
void operator=(const Gauss &)
Broken assignment operator.
double weight(const unsigned &i) const
Return weight of integration point i.
double knot(const unsigned &i, const unsigned &j) const
Return coordinate x[j] of integration point i.
void gl_nodes(const unsigned &Nnode, Vector< double > &x)
unsigned nweight() const
Number of integration points of the scheme.
unsigned nweight() const
Number of integration points of the scheme.
Class for multidimensional Gaussian integration rules, over intervals other than -1 to 1...
double weight(const unsigned &i) const
Return weight of integration point i.
unsigned nweight() const
Number of integration points of the scheme.
void operator=(const Gauss_Rescaled &)
Broken assignment operator.
TGauss(const TGauss &dummy)
Broken copy constructor.
void operator=(const Gauss &)
Broken assignment operator.
virtual double knot(const unsigned &i, const unsigned &j) const =0
Return local coordinate s[j] of i-th integration point.
unsigned nweight() const
Number of integration points of the scheme.
TGauss(const TGauss &dummy)
Broken copy constructor.
double knot(const unsigned &i, const unsigned &j) const
Return coordinate s[j] (j=0) of integration point i.
TGauss(const TGauss &dummy)
Broken copy constructor.
double knot(const unsigned &i, const unsigned &j) const
Return coordinate x[j] of integration point i.
double knot(const unsigned &i, const unsigned &j) const
Return coordinate x[j] of integration point i.
double knot(const unsigned &i, const unsigned &j) const
Return coordinate x[j] of integration point i.
double knot(const unsigned &i, const unsigned &j) const
Return coordinate x[j] of integration point i.
void operator=(const TGauss &)
Broken assignment operator.
Gauss_Rescaled(double lower, double upper)
The constructor in this case takes the lower and upper arguments.
TGauss(const TGauss &dummy)
Broken copy constructor.
Integral(const Integral &dummy)
Broken copy constructor.
Gauss(const Gauss &dummy)
Broken copy constructor.
void operator=(const TGauss &)
Broken assignment operator.
void operator=(const TGauss &)
Broken assignment operator.
double weight(const unsigned &i) const
Return weight of integration point i.
double weight(const unsigned &i) const
Return weight of integration point i.
void operator=(const TGauss &)
Broken assignment operator.
double knot(const unsigned &i, const unsigned &j) const
Return coordinate x[j] (j=0) of integration point i.
double knot(const unsigned &i, const unsigned &j) const
Return coordinate x[j] of integration point i.
double knot(const unsigned &i, const unsigned &j) const
Return coordinate s[j] (j=0) of integration point i.
Vector< double > Knot
Array to hold weights.
double weight(const unsigned &i) const
Return weight of integration point i.
double knot(const unsigned &i, const unsigned &j) const
Return coordinate s[j] of integration point i.
TGauss(const TGauss &dummy)
Broken copy constructor.
double weight(const unsigned &i) const
Return weight of integration point i.
unsigned nweight() const
Number of integration points of the scheme.
const Integral * Integral_pt
Pointer to integral which we will reflect.
const Integral * Integral0_pt
Pointer to integral in direction indexed by 0.
PointIntegral(const PointIntegral &dummy)
Broken copy constructor.
unsigned nweight() const
Number of integration points of the scheme.
double knot(const unsigned &i, const unsigned &j) const
Return coordinate x[j] of integration point i.
unsigned nweight() const
Number of integration points of the scheme.
TGauss()
Default constructor (empty)
Gauss(const Gauss &dummy)
Broken copy constructor.
double weight(const unsigned &i) const
Return weight of integration point i.
Gauss(const Gauss &dummy)
Broken copy constructor.
virtual ~Integral()
Virtual destructor (empty)
void broken_assign(const std::string &class_name)
Issue error message and terminate execution.
double knot(const unsigned &i, const unsigned &j) const
Return coordinate x[j] of integration point i.
double knot(const unsigned &i, const unsigned &j) const
Return coordinate s[j] (j=0) of integration point i.
const double S_reflect_fraction
Position where scheme will be reflected as of fraction of domain [0,1].
virtual unsigned nweight() const =0
Return the number of integration points of the scheme.
unsigned nweight() const
Number of integration points of the scheme.
Integral()
Default constructor (empty)
TGauss(const TGauss &dummy)
Broken copy constructor.
Gauss_Rescaled()
Default constructor (empty)
double weight(const unsigned &i) const
Return weight of integration point i.
void operator=(const Gauss &)
Broken assignment operator.
unsigned nweight() const
Number of integration points of the scheme.
unsigned nweight() const
Number of integration points of the scheme.
const double S_max
Maximum value of local coord (s) over whole domain.
void operator=(const PointIntegral &)
Broken assignment operator.
Gauss_Rescaled(const Gauss_Rescaled &dummy)
Broken copy constructor.
double knot(const unsigned &i, const unsigned &j) const
Return coordinate s[j] (j=0) of integration point i.
Gauss(const Gauss &dummy)
Broken copy constructor.
double knot(const unsigned &i, const unsigned &j) const
Return coordinate s[j] (j=0) of integration point i.
void operator=(const TGauss &)
Broken assignment operator.
TGauss()
Default constructor (empty)
void operator=(const TGauss &)
Broken assignment operator.
TGauss()
Default constructor (empty)
double weight(const unsigned &i) const
Return weight of integration point i.
TGauss()
Default constructor (empty)
double weight(const unsigned &i) const
Return weight of integration point i.
unsigned nweight() const
Number of integration points of the scheme.
double knot(const unsigned &i, const unsigned &j) const
Return coordinate x[j] of integration point i.
ReflectedIntegral(const Integral *integral_to_reflect_pt, const unsigned index_s, const double s_reflect, const double s_min, const double s_max)
Construct reflected integral, note s refers to local coordinate.
double knot(const unsigned &i, const unsigned &j) const
Return coordinate x[j] of integration point i.
TGauss()
Default constructor (empty)
unsigned nweight() const
Number of integration points of the scheme.
double weight(const unsigned &i) const
Return weight of integration point i.
void operator=(const TGauss &)
Broken assignment operator.
void operator=(const Gauss &)
Broken assignment operator.
Gauss()
Default constructor (empty)
double knot(const unsigned &i, const unsigned &j) const
Return coordinate x[j] of integration point i.
Gauss(const Gauss &dummy)
Broken copy constructor.
unsigned nweight() const
Number of integration points of the scheme.
TGauss()
Default constructor (empty)
virtual Vector< double > knot(const unsigned &i) const
Return local coordinates of i-th intergration point.
unsigned nweight() const
Number of integration points of the scheme, two times the base scheme.
double knot(const unsigned &i, const unsigned &j) const
Return coordinate x[j] of integration point i.
void operator=(const TGauss &)
Broken assignment operator.
double weight(const unsigned &i) const
Return weight of integration point i.
double knot(const unsigned &i, const unsigned &j) const
Return coordinate s[j] (j=0) of integration point i.
unsigned nweight() const
Number of integration points of the scheme.
unsigned nweight() const
Number of integration points of the scheme.
TGauss(const TGauss &dummy)
Broken copy constructor.
void operator=(const Gauss &)
Broken assignment operator.
Gauss(const Gauss &dummy)
Broken copy constructor.
unsigned nweight() const
Number of integration points of the scheme.
TGauss()
Default constructor (empty)