|
LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
|
Rules for numerical quadrature on reference entity shapes. More...
Classes | |
| class | QuadRule |
| Represents a Quadrature Rule over one of the Reference Elements. More... | |
| class | QuadRuleCache |
| A cache for make_QuadRule() More... | |
Typedefs | |
| using | quadDegree_t = unsigned int |
Functions | |
| std::tuple< Eigen::VectorXd, Eigen::VectorXd > | GaussLegendre (unsigned num_points) |
| std::tuple< Eigen::VectorXd, Eigen::VectorXd > | GaussJacobi (quadDegree_t num_points, double alpha, double beta) |
| Computes the quadrature points and weights for the interval [-1,1] of a Gauss-Jacobi quadrature rule with weight function \( (1-x)^\alpha (1+x)^\beta \). More... | |
| std::tuple< Eigen::VectorXd, Eigen::VectorXd > | GaussLegendre (unsigned int num_points) |
| Computes the quadrature points and weights for the interval [0,1] of a Gauss-Legendre quadrature rule using a newton algorithm. More... | |
| QuadRule | make_QuadRule (base::RefEl ref_el, unsigned degree) |
| Returns a QuadRule object for the given Reference Element and Degree. More... | |
| QuadRule | make_TriaQR_MidpointRule () |
| midpoint quadrature rule for triangles More... | |
| QuadRule | make_TriaQR_EdgeMidpointRule () |
| edge midpoint quadrature rule for reference triangles More... | |
| QuadRule | make_QuadQR_EdgeMidpointRule () |
| edge midpoint quadrature rule for unit square (= reference quad) More... | |
| QuadRule | make_TriaQR_P6O4 () |
| Six point triangular quadrature rule of order 4. More... | |
| QuadRule | make_TriaQR_P7O6 () |
| Seven point triangular quadrature rule of order 6. More... | |
| QuadRule | make_TriaQR_P1O2 () |
| QuadRule | make_TriaQR_P3O3 () |
| QuadRule | make_QuadQR_MidpointRule () |
| midpoint quadrature rule for quadrilaterals More... | |
| QuadRule | make_QuadQR_P1O2 () |
| QuadRule | make_QuadQR_P4O2 () |
| QuadRule | make_QuadQR_P4O4 () |
| Fourth-order tensor product Gauss rule for quadrilaterals. More... | |
| QuadRule | make_QuadRuleNodal (base::RefEl ref_el) |
| Create a quadrature rule that evaluates the quadrand only at the nodes of the reference element. More... | |
| std::ostream & | operator<< (std::ostream &stream, const lf::quad::QuadRule &quadrule) |
| Output operator for quadrature rules. More... | |
Rules for numerical quadrature on reference entity shapes.
Quadrature rules are specified by
Refer to Lecture Document Paragraph 2.7.5.39.
| using lf::quad::quadDegree_t = typedef unsigned int |
Definition at line 19 of file quad_rule.h.
| std::tuple< Eigen::VectorXd, Eigen::VectorXd > lf::quad::GaussJacobi | ( | quadDegree_t | num_points, |
| double | alpha, | ||
| double | beta | ||
| ) |
Computes the quadrature points and weights for the interval [-1,1] of a Gauss-Jacobi quadrature rule with weight function \( (1-x)^\alpha (1+x)^\beta \).
| num_points | The number of points/weights that should be used. |
| alpha | The exponent of the weight function |
| beta | The exponent of the weight function |
Definition at line 71 of file gauss_quadrature.cc.
Referenced by make_QuadRule().
| std::tuple< Eigen::VectorXd, Eigen::VectorXd > lf::quad::GaussLegendre | ( | unsigned int | num_points | ) |
Computes the quadrature points and weights for the interval [0,1] of a Gauss-Legendre quadrature rule using a newton algorithm.
| num_points | The number of points/weights that should be used. |
| std::tuple< Eigen::VectorXd, Eigen::VectorXd > lf::quad::GaussLegendre | ( | unsigned | num_points | ) |
Definition at line 16 of file gauss_quadrature.cc.
Referenced by make_QuadRule().
| QuadRule lf::quad::make_QuadRule | ( | base::RefEl | ref_el, |
| unsigned | degree | ||
| ) |
Returns a QuadRule object for the given Reference Element and Degree.
| ref_el | The type of reference element |
| degree | The minimum degree that the QuadRule object should have. |
degreeThis method tries to return optimal quadrature rules when possible:
Definition at line 21 of file make_quad_rule.cc.
References GaussJacobi(), GaussLegendre(), lf::base::RefEl::kQuad(), lf::base::RefEl::kSegment(), and lf::base::RefEl::kTria().
Referenced by lf::geometry::test_utils::checkChildGeometryVolume(), projects::hldo_sphere::post_processing::compare_results(), projects::hldo_sphere::debugging::DiracConvergenceTest::Compute(), projects::dpg::ConvectionElementMatrixProvider< SCALAR, CONVECTION_COEFF_1, CONVECTION_COEFF_2 >::ConvectionElementMatrixProvider(), projects::dpg::DiffusionElementMatrixProvider< SCALAR, DIFF_COEFF >::DiffusionElementMatrixProvider(), projects::dpg::FluxElementMatrixProvider< SCALAR, DIFF_COEFF >::FluxElementMatrixProvider(), lf::quad::QuadRuleCache::Get(), projects::hldo_sphere::debugging::WhitneyOneBasisExpansionCoeffs::GetL2Error(), projects::dpg::LoadElementVectorProvider< SCALAR, FUNCTOR >::LoadElementVectorProvider(), make_QuadQR_MidpointRule(), make_QuadQR_P4O4(), projects::hldo_sphere::post_processing::process_results(), lf::uscalfe::ReactionDiffusionElementMatrixProvider< SCALAR, DIFF_COEFF, REACTION_COEFF >::ReactionDiffusionElementMatrixProvider(), projects::dpg::ReactionElementMatrixProvider< SCALAR, REACTION_COEFF >::ReactionElementMatrixProvider(), lf::uscalfe::ScalarLoadElementVectorProvider< SCALAR, MESH_FUNCTION >::ScalarLoadElementVectorProvider(), and projects::dpg::TraceElementMatrixProvider< SCALAR, COEFF >::TraceElementMatrixProvider().
| QuadRule lf::quad::make_QuadRuleNodal | ( | base::RefEl | ref_el | ) |
Create a quadrature rule that evaluates the quadrand only at the nodes of the reference element.
| ref_el | The reference element for which the quadrule is. |
Definition at line 14 of file make_quad_rule_nodal.cc.
References lf::base::RefEl::kTria(), lf::base::RefEl::NodeCoords(), and lf::base::RefEl::NumNodes().
| std::ostream & lf::quad::operator<< | ( | std::ostream & | stream, |
| const lf::quad::QuadRule & | quadrule | ||
| ) |
Output operator for quadrature rules.
| stream | The stream to which this function should output |
| quadrule | the quadrature rule to be printed |
Definition at line 19 of file quad_rule.cc.
References lf::quad::QuadRule::PrintInfo().