MFEM v2.0
|
Class for integration rule. More...
#include <intrules.hpp>
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. | |
IntegrationPoint & | IntPoint (int i) |
Returns a reference to the i-th integration point. | |
const IntegrationPoint & | IntPoint (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 |
IntegrationPoint * | IntPoints |
Friends | |
class | IntegrationRules |
Class for integration rule.
Definition at line 49 of file intrules.hpp.
IntegrationRule::IntegrationRule | ( | ) | [inline] |
Definition at line 178 of file intrules.hpp.
IntegrationRule::IntegrationRule | ( | int | NP | ) | [explicit] |
Construct an integration rule with given number of points.
Definition at line 21 of file intrules.cpp.
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.
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] |
Definition at line 111 of file intrules.hpp.
References IntPoints, and IntegrationPoint::Set().
Referenced by AddTetPoints12(), AddTetPoints12bc(), AddTetPoints4(), AddTetPoints4b(), and AddTetPoints6().
void IntegrationRule::AddTetPoints4 | ( | const int | off, |
const double | a, | ||
const double | weight | ||
) | [inline, private] |
Definition at line 135 of file intrules.hpp.
References AddTetPoints3(), IntPoints, and IntegrationPoint::Set().
Referenced by IntegrationRules::TetrahedronIntegrationRules().
void IntegrationRule::AddTetPoints4b | ( | const int | off, |
const double | b, | ||
const double | weight | ||
) | [inline, private] |
Definition at line 142 of file intrules.hpp.
References AddTetPoints3(), IntPoints, and IntegrationPoint::Set().
Referenced by IntegrationRules::TetrahedronIntegrationRules().
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] |
Definition at line 120 of file intrules.hpp.
References IntPoints, and IntegrationPoint::Set().
Referenced by AddTetPoints12(), AddTetPoints12bc(), and IntegrationRules::TetrahedronIntegrationRules().
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.
friend class IntegrationRules [friend] |
Definition at line 55 of file intrules.hpp.
IntegrationPoint* IntegrationRule::IntPoints [private] |
Definition at line 53 of file intrules.hpp.
Referenced by AddTetMidPoint(), AddTetPoints3(), AddTetPoints4(), AddTetPoints4b(), AddTetPoints6(), AddTriMidPoint(), AddTriPoints3(), AddTriPoints3R(), AddTriPoints6(), GaussianRule(), GrundmannMollerTetrahedronRule(), IntegrationRule(), IntPoint(), UniformRule(), and ~IntegrationRule().
int IntegrationRule::NPoints [private] |
Definition at line 52 of file intrules.hpp.
Referenced by GaussianRule(), GetNPoints(), GrundmannMollerTetrahedronRule(), IntegrationRule(), and UniformRule().