oomph::GaussLegendre< 3, NPTS_1D > Class Template Reference

3D Gauss Legendre integration class More...

#include <integral.h>

+ Inheritance diagram for oomph::GaussLegendre< 3, NPTS_1D >:

Public Member Functions

 GaussLegendre ()
 Deafault constructor. Calculates and stores GLL nodes. More...
 
unsigned nweight () const
 Number of integration points of the scheme. More...
 
double knot (const unsigned &i, const unsigned &j) const
 Return coordinate s[j] (j=0) of integration point i. More...
 
double weight (const unsigned &i) const
 Return weight of integration point i. More...
 
- Public Member Functions inherited from oomph::Integral
 Integral ()
 Default constructor (empty) More...
 
 Integral (const Integral &dummy)=delete
 Broken copy constructor. More...
 
void operator= (const Integral &)=delete
 Broken assignment operator. More...
 
virtual ~Integral ()
 Virtual destructor (empty) More...
 
virtual Vector< doubleknot (const unsigned &i) const
 Return local coordinates of i-th intergration point. Broken virtual. More...
 

Private Attributes

double Knot [NPTS_1D *NPTS_1D *NPTS_1D][3]
 Array to hold weight and knot points. More...
 
double Weight [NPTS_1D *NPTS_1D *NPTS_1D]
 

Static Private Attributes

static const unsigned long int Npts = NPTS_1D * NPTS_1D * NPTS_1D
 Number of integration points in scheme. More...
 

Detailed Description

template<unsigned NPTS_1D>
class oomph::GaussLegendre< 3, NPTS_1D >

3D Gauss Legendre integration class

Constructor & Destructor Documentation

◆ GaussLegendre()

template<unsigned NPTS_1D>
oomph::GaussLegendre< 3, NPTS_1D >::GaussLegendre

Deafault constructor. Calculates and stores GLL nodes.

Calculate positions and weights for the 3D Gauss Legendre integration class

1656  {
1657  // Tempoarary storage for the 1D knots and weights
1658  Vector<double> s(NPTS_1D), w(NPTS_1D);
1659  // Call the function to populate the array
1660  Orthpoly::gl_nodes(NPTS_1D, s, w);
1661  for (unsigned k = 0; k < NPTS_1D; k++)
1662  {
1663  for (unsigned j = 0; j < NPTS_1D; j++)
1664  {
1665  for (unsigned i = 0; i < NPTS_1D; i++)
1666  {
1667  unsigned index = NPTS_1D * NPTS_1D * k + NPTS_1D * j + i;
1668  Knot[index][0] = s[i];
1669  Knot[index][1] = s[j];
1670  Knot[index][2] = s[k];
1671  Weight[index] = w[i] * w[j] * w[k];
1672  }
1673  }
1674  }
1675  }
int i
Definition: BiCGSTAB_step_by_step.cpp:9
RowVector3d w
Definition: Matrix_resize_int.cpp:3
double Knot[NPTS_1D *NPTS_1D *NPTS_1D][3]
Array to hold weight and knot points.
Definition: integral.h:1622
double Weight[NPTS_1D *NPTS_1D *NPTS_1D]
Definition: integral.h:1623
RealScalar s
Definition: level1_cplx_impl.h:130
char char char int int * k
Definition: level2_impl.h:374
void gl_nodes(const unsigned &Nnode, Vector< double > &x)
Definition: orthpoly.cc:105
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2

References oomph::Orthpoly::gl_nodes(), i, j, k, s, w, and ProblemParameters::Weight.

Member Function Documentation

◆ knot()

template<unsigned NPTS_1D>
double oomph::GaussLegendre< 3, NPTS_1D >::knot ( const unsigned i,
const unsigned j 
) const
inlinevirtual

Return coordinate s[j] (j=0) of integration point i.

Implements oomph::Integral.

1638  {
1639  return Knot[i][j];
1640  }

References i, and j.

◆ nweight()

template<unsigned NPTS_1D>
unsigned oomph::GaussLegendre< 3, NPTS_1D >::nweight ( ) const
inlinevirtual

Number of integration points of the scheme.

Implements oomph::Integral.

1632  {
1633  return Npts;
1634  }
static const unsigned long int Npts
Number of integration points in scheme.
Definition: integral.h:1619

◆ weight()

template<unsigned NPTS_1D>
double oomph::GaussLegendre< 3, NPTS_1D >::weight ( const unsigned i) const
inlinevirtual

Return weight of integration point i.

Implements oomph::Integral.

1644  {
1645  return Weight[i];
1646  }

References i, and ProblemParameters::Weight.

Member Data Documentation

◆ Knot

template<unsigned NPTS_1D>
double oomph::GaussLegendre< 3, NPTS_1D >::Knot[NPTS_1D *NPTS_1D *NPTS_1D][3]
private

Array to hold weight and knot points.

◆ Npts

template<unsigned NPTS_1D>
const unsigned long int oomph::GaussLegendre< 3, NPTS_1D >::Npts = NPTS_1D * NPTS_1D * NPTS_1D
staticprivate

Number of integration points in scheme.

◆ Weight

template<unsigned NPTS_1D>
double oomph::GaussLegendre< 3, NPTS_1D >::Weight[NPTS_1D *NPTS_1D *NPTS_1D]
private

The documentation for this class was generated from the following file: