MFEM v2.0
Public Member Functions | Private Member Functions | Private Attributes | Friends
IntegrationRule Class Reference

Class for integration rule. More...

#include <intrules.hpp>

Collaboration diagram for IntegrationRule:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 IntegrationRule ()
 IntegrationRule (int NP)
 Construct an integration rule with given number of points.
 IntegrationRule (IntegrationRule &irx, IntegrationRule &iry)
 Tensor product of two 1D integration rules.
int GetNPoints () const
 Returns the number of the points in the integration rule.
IntegrationPointIntPoint (int i)
 Returns a reference to the i-th integration point.
const IntegrationPointIntPoint (int i) const
 Returns a const reference to the i-th integration point.
 ~IntegrationRule ()
 Destroys an IntegrationRule object.

Private Member Functions

void GaussianRule ()
 Computes Gaussian integration rule on (0,1) with NPoints.
void UniformRule ()
 Defines composite trapezoidal integration rule on [0,1].
void GrundmannMollerTetrahedronRule (int s)
 Define tetrahedron rule of order (2s+1)
void AddTriMidPoint (const int off, const double weight)
void AddTriPoints3 (const int off, const double a, const double b, const double weight)
void AddTriPoints3 (const int off, const double a, const double weight)
void AddTriPoints3b (const int off, const double b, const double weight)
void AddTriPoints3R (const int off, const double a, const double b, const double c, const double weight)
void AddTriPoints3R (const int off, const double a, const double b, const double weight)
void AddTriPoints6 (const int off, const double a, const double b, const double c, const double weight)
void AddTriPoints6 (const int off, const double a, const double b, const double weight)
void AddTetPoints3 (const int off, const double a, const double b, const double weight)
void AddTetPoints6 (const int off, const double a, const double b, const double c, const double weight)
void AddTetMidPoint (const int off, const double weight)
void AddTetPoints4 (const int off, const double a, const double weight)
void AddTetPoints4b (const int off, const double b, const double weight)
void AddTetPoints6 (const int off, const double a, const double weight)
void AddTetPoints12 (const int off, const double a, const double bc, const double weight)
void AddTetPoints12bc (const int off, const double b, const double c, const double weight)

Private Attributes

int NPoints
IntegrationPointIntPoints

Friends

class IntegrationRules

Detailed Description

Class for integration rule.

Definition at line 49 of file intrules.hpp.


Constructor & Destructor Documentation

IntegrationRule::IntegrationRule ( ) [inline]

Definition at line 178 of file intrules.hpp.

References IntPoints, and NPoints.

IntegrationRule::IntegrationRule ( int  NP) [explicit]

Construct an integration rule with given number of points.

Definition at line 21 of file intrules.cpp.

References IntPoints, and NPoints.

IntegrationRule::IntegrationRule ( IntegrationRule irx,
IntegrationRule iry 
)

Tensor product of two 1D integration rules.

Definition at line 27 of file intrules.cpp.

References GetNPoints(), IntPoint(), IntPoints, NPoints, IntegrationPoint::weight, IntegrationPoint::x, and IntegrationPoint::y.

IntegrationRule::~IntegrationRule ( )

Destroys an IntegrationRule object.

Definition at line 165 of file intrules.cpp.

References IntPoints.


Member Function Documentation

void IntegrationRule::AddTetMidPoint ( const int  off,
const double  weight 
) [inline, private]

Definition at line 131 of file intrules.hpp.

References IntPoints, and IntegrationPoint::Set().

Referenced by IntegrationRules::TetrahedronIntegrationRules().

void IntegrationRule::AddTetPoints12 ( const int  off,
const double  a,
const double  bc,
const double  weight 
) [inline, private]

Definition at line 158 of file intrules.hpp.

References AddTetPoints3(), and AddTetPoints6().

Referenced by IntegrationRules::TetrahedronIntegrationRules().

void IntegrationRule::AddTetPoints12bc ( const int  off,
const double  b,
const double  c,
const double  weight 
) [inline, private]

Definition at line 168 of file intrules.hpp.

References AddTetPoints3(), and AddTetPoints6().

void IntegrationRule::AddTetPoints3 ( const int  off,
const double  a,
const double  b,
const double  weight 
) [inline, private]
void IntegrationRule::AddTetPoints4 ( const int  off,
const double  a,
const double  weight 
) [inline, private]
void IntegrationRule::AddTetPoints4b ( const int  off,
const double  b,
const double  weight 
) [inline, private]
void IntegrationRule::AddTetPoints6 ( const int  off,
const double  a,
const double  weight 
) [inline, private]

Definition at line 150 of file intrules.hpp.

References AddTetPoints3().

void IntegrationRule::AddTetPoints6 ( const int  off,
const double  a,
const double  b,
const double  c,
const double  weight 
) [inline, private]
void IntegrationRule::AddTriMidPoint ( const int  off,
const double  weight 
) [inline, private]

Definition at line 66 of file intrules.hpp.

References IntPoints, and IntegrationPoint::Set2w().

Referenced by IntegrationRules::TriangleIntegrationRules().

void IntegrationRule::AddTriPoints3 ( const int  off,
const double  a,
const double  b,
const double  weight 
) [inline, private]

Definition at line 69 of file intrules.hpp.

References IntPoints, and IntegrationPoint::Set2w().

Referenced by AddTriPoints3b(), and IntegrationRules::TriangleIntegrationRules().

void IntegrationRule::AddTriPoints3 ( const int  off,
const double  a,
const double  weight 
) [inline, private]

Definition at line 77 of file intrules.hpp.

References AddTriPoints3().

Referenced by AddTriPoints3().

void IntegrationRule::AddTriPoints3b ( const int  off,
const double  b,
const double  weight 
) [inline, private]

Definition at line 80 of file intrules.hpp.

References AddTriPoints3().

Referenced by IntegrationRules::TriangleIntegrationRules().

void IntegrationRule::AddTriPoints3R ( const int  off,
const double  a,
const double  b,
const double  c,
const double  weight 
) [inline, private]

Definition at line 83 of file intrules.hpp.

References IntPoints, and IntegrationPoint::Set2w().

Referenced by IntegrationRules::TriangleIntegrationRules().

void IntegrationRule::AddTriPoints3R ( const int  off,
const double  a,
const double  b,
const double  weight 
) [inline, private]

Definition at line 91 of file intrules.hpp.

References AddTriPoints3R().

Referenced by AddTriPoints3R().

void IntegrationRule::AddTriPoints6 ( const int  off,
const double  a,
const double  b,
const double  weight 
) [inline, private]

Definition at line 106 of file intrules.hpp.

References AddTriPoints6().

Referenced by AddTriPoints6().

void IntegrationRule::AddTriPoints6 ( const int  off,
const double  a,
const double  b,
const double  c,
const double  weight 
) [inline, private]

Definition at line 95 of file intrules.hpp.

References IntPoints, and IntegrationPoint::Set2w().

Referenced by IntegrationRules::TriangleIntegrationRules().

void IntegrationRule::GaussianRule ( ) [private]

Computes Gaussian integration rule on (0,1) with NPoints.

Definition at line 51 of file intrules.cpp.

References IntPoints, NPoints, IntegrationPoint::weight, and IntegrationPoint::x.

Referenced by IntegrationRules::SegmentIntegrationRules().

int IntegrationRule::GetNPoints ( ) const [inline]

Returns the number of the points in the integration rule.

Definition at line 187 of file intrules.hpp.

References NPoints.

Referenced by VectorFEMassIntegrator::AssembleElementMatrix(), CurlCurlIntegrator::AssembleElementMatrix(), VectorMassIntegrator::AssembleElementMatrix(), ConvectionIntegrator::AssembleElementMatrix(), MassIntegrator::AssembleElementMatrix(), DiffusionIntegrator::AssembleElementMatrix(), VectorFEMassIntegrator::AssembleElementMatrix2(), DerivativeIntegrator::AssembleElementMatrix2(), VectorFECurlIntegrator::AssembleElementMatrix2(), VectorFEDivergenceIntegrator::AssembleElementMatrix2(), MassIntegrator::AssembleElementMatrix2(), VectorFEBoundaryFluxLFIntegrator::AssembleRHSElementVect(), VectorBoundaryFluxLFIntegrator::AssembleRHSElementVect(), VectorFEDomainLFIntegrator::AssembleRHSElementVect(), VectorBoundaryLFIntegrator::AssembleRHSElementVect(), VectorDomainLFIntegrator::AssembleRHSElementVect(), BoundaryLFIntegrator::AssembleRHSElementVect(), DomainLFIntegrator::AssembleRHSElementVect(), DiffusionIntegrator::ComputeElementFlux(), DiffusionIntegrator::ComputeFluxEnergy(), GridFunction::ComputeH1Error(), GridFunction::ComputeL1Error(), GridFunction::ComputeL2Error(), ComputeLpNorm(), GridFunction::ComputeMaxError(), GridFunction::ComputeW11Error(), VectorCoefficient::Eval(), Mesh::GetElementVolume(), GridFunction::GetFaceValues(), GridFunction::GetFaceVectorValues(), GridFunction::GetGradients(), GridFunction::GetNodalValues(), GridFunction::GetValues(), GridFunction::GetVectorFieldNodalValues(), GridFunction::GetVectorFieldValues(), GridFunction::GetVectorValues(), IntegrationRule(), Mesh::PrintVTK(), GridFunction::ProjectBdrCoefficientNormal(), IntegrationPointTransformation::Transform(), and IsoparametricTransformation::Transform().

void IntegrationRule::GrundmannMollerTetrahedronRule ( int  s) [private]

Define tetrahedron rule of order (2s+1)

Definition at line 105 of file intrules.cpp.

References IntPoints, NPoints, Vector::Size(), IntegrationPoint::weight, IntegrationPoint::x, IntegrationPoint::y, and IntegrationPoint::z.

IntegrationPoint& IntegrationRule::IntPoint ( int  i) [inline]

Returns a reference to the i-th integration point.

Definition at line 190 of file intrules.hpp.

References IntPoints.

Referenced by ElasticityIntegrator::AssembleElementMatrix(), VectorDiffusionIntegrator::AssembleElementMatrix(), DivDivIntegrator::AssembleElementMatrix(), VectorFEMassIntegrator::AssembleElementMatrix(), CurlCurlIntegrator::AssembleElementMatrix(), VectorMassIntegrator::AssembleElementMatrix(), ConvectionIntegrator::AssembleElementMatrix(), MassIntegrator::AssembleElementMatrix(), DiffusionIntegrator::AssembleElementMatrix(), VectorDivergenceIntegrator::AssembleElementMatrix2(), VectorFEMassIntegrator::AssembleElementMatrix2(), DerivativeIntegrator::AssembleElementMatrix2(), VectorFECurlIntegrator::AssembleElementMatrix2(), VectorFEDivergenceIntegrator::AssembleElementMatrix2(), MassIntegrator::AssembleElementMatrix2(), VectorFEBoundaryFluxLFIntegrator::AssembleRHSElementVect(), VectorBoundaryFluxLFIntegrator::AssembleRHSElementVect(), VectorFEDomainLFIntegrator::AssembleRHSElementVect(), VectorBoundaryLFIntegrator::AssembleRHSElementVect(), VectorDomainLFIntegrator::AssembleRHSElementVect(), BoundaryLFIntegrator::AssembleRHSElementVect(), DomainLFIntegrator::AssembleRHSElementVect(), BiCubic2DFiniteElement::BiCubic2DFiniteElement(), BiLinear2DFiniteElement::BiLinear2DFiniteElement(), BiQuad2DFiniteElement::BiQuad2DFiniteElement(), BiQuadPos2DFiniteElement::BiQuadPos2DFiniteElement(), Mesh::CheckDisplacements(), DiffusionIntegrator::ComputeElementFlux(), DiffusionIntegrator::ComputeFluxEnergy(), GridFunction::ComputeH1Error(), GridFunction::ComputeL1Error(), GridFunction::ComputeL2Error(), ComputeLpNorm(), GridFunction::ComputeMaxError(), GridFunction::ComputeW11Error(), CrouzeixRaviartFiniteElement::CrouzeixRaviartFiniteElement(), CrouzeixRaviartQuadFiniteElement::CrouzeixRaviartQuadFiniteElement(), Cubic1DFiniteElement::Cubic1DFiniteElement(), Cubic2DFiniteElement::Cubic2DFiniteElement(), Cubic3DFiniteElement::Cubic3DFiniteElement(), VectorCoefficient::Eval(), GaussBiLinear2DFiniteElement::GaussBiLinear2DFiniteElement(), GaussBiQuad2DFiniteElement::GaussBiQuad2DFiniteElement(), GaussLinear2DFiniteElement::GaussLinear2DFiniteElement(), GaussQuad2DFiniteElement::GaussQuad2DFiniteElement(), Geometry::Geometry(), GridFunction::GetBdrValuesFrom(), GridFunction::GetDerivative(), Mesh::GetElementVolume(), GridFunction::GetGradients(), RT0TetFiniteElement::GetLocalInterpolation(), RT1HexFiniteElement::GetLocalInterpolation(), RT0HexFiniteElement::GetLocalInterpolation(), Nedelec1TetFiniteElement::GetLocalInterpolation(), Nedelec1HexFiniteElement::GetLocalInterpolation(), RT2QuadFiniteElement::GetLocalInterpolation(), RT1QuadFiniteElement::GetLocalInterpolation(), RT1TriangleFiniteElement::GetLocalInterpolation(), RT0QuadFiniteElement::GetLocalInterpolation(), RT0TriangleFiniteElement::GetLocalInterpolation(), Mesh::GetLocalQuadToHexTransformation(), Mesh::GetLocalSegToQuadTransformation(), Mesh::GetLocalSegToTriTransformation(), Mesh::GetLocalTriToTetTransformation(), GridFunction::GetNodalValues(), GridFunction::GetValues(), GridFunction::GetValuesFrom(), GridFunction::GetVectorFieldValues(), GridFunction::GetVectorValues(), H1_HexahedronElement::H1_HexahedronElement(), H1_QuadrilateralElement::H1_QuadrilateralElement(), H1_SegmentElement::H1_SegmentElement(), H1_TetrahedronElement::H1_TetrahedronElement(), H1_TriangleElement::H1_TriangleElement(), IntegrationRule(), L2_HexahedronElement::L2_HexahedronElement(), L2_QuadrilateralElement::L2_QuadrilateralElement(), L2_SegmentElement::L2_SegmentElement(), L2_TetrahedronElement::L2_TetrahedronElement(), L2_TriangleElement::L2_TriangleElement(), Lagrange1DFiniteElement::Lagrange1DFiniteElement(), LagrangeHexFiniteElement::LagrangeHexFiniteElement(), Linear1DFiniteElement::Linear1DFiniteElement(), Linear2DFiniteElement::Linear2DFiniteElement(), Linear3DFiniteElement::Linear3DFiniteElement(), VectorFiniteElement::LocalInterpolation_ND(), VectorFiniteElement::LocalInterpolation_RT(), ND_HexahedronElement::ND_HexahedronElement(), ND_QuadrilateralElement::ND_QuadrilateralElement(), ND_TetrahedronElement::ND_TetrahedronElement(), ND_TriangleElement::ND_TriangleElement(), Nedelec1HexFiniteElement::Nedelec1HexFiniteElement(), Nedelec1TetFiniteElement::Nedelec1TetFiniteElement(), NodalFiniteElement::NodalLocalInterpolation(), P0HexFiniteElement::P0HexFiniteElement(), P0QuadFiniteElement::P0QuadFiniteElement(), P0SegmentFiniteElement::P0SegmentFiniteElement(), P0TetFiniteElement::P0TetFiniteElement(), P0TriangleFiniteElement::P0TriangleFiniteElement(), P1OnQuadFiniteElement::P1OnQuadFiniteElement(), P1SegmentFiniteElement::P1SegmentFiniteElement(), P1TetNonConfFiniteElement::P1TetNonConfFiniteElement(), P2SegmentFiniteElement::P2SegmentFiniteElement(), PointFiniteElement::PointFiniteElement(), RT0TetFiniteElement::Project(), RT1HexFiniteElement::Project(), RT0HexFiniteElement::Project(), Nedelec1TetFiniteElement::Project(), Nedelec1HexFiniteElement::Project(), RT2QuadFiniteElement::Project(), RT1QuadFiniteElement::Project(), RT1TriangleFiniteElement::Project(), RT0QuadFiniteElement::Project(), RT0TriangleFiniteElement::Project(), BiQuadPos2DFiniteElement::Project(), NodalFiniteElement::Project(), VectorFiniteElement::Project_ND(), VectorFiniteElement::Project_RT(), GridFunction::ProjectBdrCoefficient(), GridFunction::ProjectBdrCoefficientNormal(), GridFunction::ProjectCoefficient(), VectorFiniteElement::ProjectCurl_RT(), NodalFiniteElement::ProjectDiv(), NodalFiniteElement::ProjectGrad(), VectorFiniteElement::ProjectGrad_ND(), VectorFiniteElement::ProjectGrad_RT(), Quad1DFiniteElement::Quad1DFiniteElement(), Quad2DFiniteElement::Quad2DFiniteElement(), QuadPos1DFiniteElement::QuadPos1DFiniteElement(), Quadratic3DFiniteElement::Quadratic3DFiniteElement(), GeometryRefiner::Refine(), RefinedBiLinear2DFiniteElement::RefinedBiLinear2DFiniteElement(), RefinedLinear1DFiniteElement::RefinedLinear1DFiniteElement(), RefinedLinear2DFiniteElement::RefinedLinear2DFiniteElement(), RefinedLinear3DFiniteElement::RefinedLinear3DFiniteElement(), RefinedTriLinear3DFiniteElement::RefinedTriLinear3DFiniteElement(), GeometryRefiner::RefineInterior(), RotTriLinearHexFiniteElement::RotTriLinearHexFiniteElement(), RT0HexFiniteElement::RT0HexFiniteElement(), RT0QuadFiniteElement::RT0QuadFiniteElement(), RT0TetFiniteElement::RT0TetFiniteElement(), RT0TriangleFiniteElement::RT0TriangleFiniteElement(), RT1HexFiniteElement::RT1HexFiniteElement(), RT1QuadFiniteElement::RT1QuadFiniteElement(), RT1TriangleFiniteElement::RT1TriangleFiniteElement(), RT2QuadFiniteElement::RT2QuadFiniteElement(), RT2TriangleFiniteElement::RT2TriangleFiniteElement(), RT_HexahedronElement::RT_HexahedronElement(), RT_QuadrilateralElement::RT_QuadrilateralElement(), RT_TetrahedronElement::RT_TetrahedronElement(), RT_TriangleElement::RT_TriangleElement(), IntegrationRules::SegmentIntegrationRules(), IntegrationPointTransformation::Transform(), IsoparametricTransformation::Transform(), and TriLinear3DFiniteElement::TriLinear3DFiniteElement().

const IntegrationPoint& IntegrationRule::IntPoint ( int  i) const [inline]

Returns a const reference to the i-th integration point.

Definition at line 193 of file intrules.hpp.

References IntPoints.

void IntegrationRule::UniformRule ( ) [private]

Defines composite trapezoidal integration rule on [0,1].

Definition at line 90 of file intrules.cpp.

References IntPoints, NPoints, IntegrationPoint::weight, and IntegrationPoint::x.


Friends And Related Function Documentation

friend class IntegrationRules [friend]

Definition at line 55 of file intrules.hpp.


Member Data Documentation

int IntegrationRule::NPoints [private]

The documentation for this class was generated from the following files:
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines