Commit b0ce14ca authored by GILLES Sebastien's avatar GILLES Sebastien
Browse files

#9 QuadratureRuleList moved into a Crtp folder; name and namespace have been both changed.

parent 6d185eb9
......@@ -1023,8 +1023,6 @@
BE90E0FF1A2491AE00CCAFDE /* QuadratureRule.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BEB6B67E18DAF70700B9D6C5 /* QuadratureRule.cpp */; };
BE90E1001A2491AE00CCAFDE /* QuadratureRule.hpp in Headers */ = {isa = PBXBuildFile; fileRef = BEB6B67F18DAF70700B9D6C5 /* QuadratureRule.hpp */; };
BE90E1011A2491AE00CCAFDE /* QuadratureRule.hxx in Headers */ = {isa = PBXBuildFile; fileRef = BEB6B68018DAF70700B9D6C5 /* QuadratureRule.hxx */; };
BE90E1021A2491AE00CCAFDE /* QuadratureRuleList.hpp in Headers */ = {isa = PBXBuildFile; fileRef = BEB6B68118DAF70700B9D6C5 /* QuadratureRuleList.hpp */; };
BE90E1031A2491AE00CCAFDE /* QuadratureRuleList.hxx in Headers */ = {isa = PBXBuildFile; fileRef = BEB6B68218DAF70700B9D6C5 /* QuadratureRuleList.hxx */; };
BE90E1041A2491AE00CCAFDE /* EnumGaussQuadratureFormula.hpp in Headers */ = {isa = PBXBuildFile; fileRef = BEBA258B19D9507900639C85 /* EnumGaussQuadratureFormula.hpp */; };
BE90E1051A2491AE00CCAFDE /* GaussQuadratureFormula.hpp in Headers */ = {isa = PBXBuildFile; fileRef = BECB556219D5AF5B00CC4828 /* GaussQuadratureFormula.hpp */; };
BE90E1061A2491AE00CCAFDE /* GaussQuadratureFormula.hxx in Headers */ = {isa = PBXBuildFile; fileRef = BECB556319D5AF5B00CC4828 /* GaussQuadratureFormula.hxx */; };
......@@ -1186,6 +1184,8 @@
BE96FE9E1B820BF4009BC073 /* Solid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE96FE9B1B820BF4009BC073 /* Solid.cpp */; };
BE96FEA61B821D51009BC073 /* Fluid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE96FEA51B821D51009BC073 /* Fluid.cpp */; };
BE96FEA81B8220D3009BC073 /* Diffusion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE96FEA71B8220D3009BC073 /* Diffusion.cpp */; };
BE9A01D81CB511D100B637EB /* QuadratureRuleList.hpp in Headers */ = {isa = PBXBuildFile; fileRef = BE9A01D31CB511BE00B637EB /* QuadratureRuleList.hpp */; };
BE9A01D91CB511D100B637EB /* QuadratureRuleList.hxx in Headers */ = {isa = PBXBuildFile; fileRef = BE9A01D41CB511BE00B637EB /* QuadratureRuleList.hxx */; };
BE9BE1B51C96D02B0065BEFE /* SolidOnFluidMesh.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE9BE1B21C96D02B0065BEFE /* SolidOnFluidMesh.cpp */; };
BE9C4D171807F682005B94BC /* libFiniteElement.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BE9C4D121807F5DC005B94BC /* libFiniteElement.a */; };
BE9EA02D1B8F15C300B60AC2 /* VectorsAndMatrices.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BEBB31FF196D4DFC004D6C7E /* VectorsAndMatrices.cpp */; };
......@@ -4987,6 +4987,8 @@
BE96FE9B1B820BF4009BC073 /* Solid.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Solid.cpp; path = Parameter/Solid/Solid.cpp; sourceTree = "<group>"; };
BE96FEA51B821D51009BC073 /* Fluid.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Fluid.cpp; path = Parameter/Fluid/Fluid.cpp; sourceTree = "<group>"; };
BE96FEA71B8220D3009BC073 /* Diffusion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Diffusion.cpp; path = Parameter/Diffusion/Diffusion.cpp; sourceTree = "<group>"; };
BE9A01D31CB511BE00B637EB /* QuadratureRuleList.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = QuadratureRuleList.hpp; sourceTree = "<group>"; };
BE9A01D41CB511BE00B637EB /* QuadratureRuleList.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = QuadratureRuleList.hxx; sourceTree = "<group>"; };
BE9BDE2F1CA2A18000D2F654 /* ShapeFunction.doxygen */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; fileEncoding = 4; path = ShapeFunction.doxygen; sourceTree = "<group>"; };
BE9BE1B21C96D02B0065BEFE /* SolidOnFluidMesh.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SolidOnFluidMesh.cpp; path = Private/SolidOnFluidMesh.cpp; sourceTree = "<group>"; };
BE9BE1B31C96D02B0065BEFE /* SolidOnFluidMesh.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = SolidOnFluidMesh.hpp; path = Private/SolidOnFluidMesh.hpp; sourceTree = "<group>"; };
......@@ -5147,8 +5149,6 @@
BEB6B67E18DAF70700B9D6C5 /* QuadratureRule.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = QuadratureRule.cpp; sourceTree = "<group>"; };
BEB6B67F18DAF70700B9D6C5 /* QuadratureRule.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = QuadratureRule.hpp; sourceTree = "<group>"; };
BEB6B68018DAF70700B9D6C5 /* QuadratureRule.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = QuadratureRule.hxx; sourceTree = "<group>"; };
BEB6B68118DAF70700B9D6C5 /* QuadratureRuleList.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = QuadratureRuleList.hpp; sourceTree = "<group>"; };
BEB6B68218DAF70700B9D6C5 /* QuadratureRuleList.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = QuadratureRuleList.hxx; sourceTree = "<group>"; };
BEB6F84618E1899700F59195 /* Edge.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; lineEnding = 0; path = Edge.hxx; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
BEB6F84718E1899700F59195 /* Face.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; lineEnding = 0; path = Face.hxx; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
BEB6F84818E1899700F59195 /* Vertex.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; lineEnding = 0; path = Vertex.hxx; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.cpp; };
......@@ -8374,6 +8374,15 @@
name = Crtp;
sourceTree = "<group>";
};
BE9A01D21CB511BE00B637EB /* Crtp */ = {
isa = PBXGroup;
children = (
BE9A01D31CB511BE00B637EB /* QuadratureRuleList.hpp */,
BE9A01D41CB511BE00B637EB /* QuadratureRuleList.hxx */,
);
path = Crtp;
sourceTree = "<group>";
};
BE9BE1B11C96CFF50065BEFE /* Private */ = {
isa = PBXGroup;
children = (
......@@ -8805,8 +8814,6 @@
BEB6B67E18DAF70700B9D6C5 /* QuadratureRule.cpp */,
BEB6B67F18DAF70700B9D6C5 /* QuadratureRule.hpp */,
BEB6B68018DAF70700B9D6C5 /* QuadratureRule.hxx */,
BEB6B68118DAF70700B9D6C5 /* QuadratureRuleList.hpp */,
BEB6B68218DAF70700B9D6C5 /* QuadratureRuleList.hxx */,
BEBA258B19D9507900639C85 /* EnumGaussQuadratureFormula.hpp */,
BECB556219D5AF5B00CC4828 /* GaussQuadratureFormula.hpp */,
BECB556319D5AF5B00CC4828 /* GaussQuadratureFormula.hxx */,
......@@ -8814,6 +8821,7 @@
BE2E47211C7B715E00AC3DDD /* DetermineDefaultQuadratureRule.hpp */,
BE2E47221C7B715E00AC3DDD /* DetermineDefaultQuadratureRule.hxx */,
BEB6B67518DAF70700B9D6C5 /* Instantiation */,
BE9A01D21CB511BE00B637EB /* Crtp */,
BE4FC35918F2AE87007B6DED /* Exceptions */,
BEBA258419D94F6B00639C85 /* Private */,
);
......@@ -10367,6 +10375,7 @@
BE32218A1B4686B100F27D6C /* Local2GlobalStorage.hpp in Headers */,
BE8F0E671A81260600D81C9F /* ___FILEBASENAME___.hpp in Headers */,
BE3E664F1ACEB94E00A3F7E2 /* Connectivity.hxx in Headers */,
BE9A01D81CB511D100B637EB /* QuadratureRuleList.hpp in Headers */,
BE90E12B1A2491AE00CCAFDE /* Dof.hpp in Headers */,
BE2B66461A2778C700E80864 /* Spectral.hxx in Headers */,
BE2B66611A2778C700E80864 /* RefFEltInLocalOperator.hxx in Headers */,
......@@ -10391,6 +10400,7 @@
BE90E1291A2491AE00CCAFDE /* Node.hxx in Headers */,
BE510D8C1CB3D44900E953FE /* Comp2.hpp in Headers */,
BE2ED6B31CB3DE0400D00CBF /* ComponentFactory.hxx in Headers */,
BE9A01D91CB511D100B637EB /* QuadratureRuleList.hxx in Headers */,
BE2ED6B81CB3DE0400D00CBF /* TComponentManager.hxx in Headers */,
BE510D8A1CB3D44900E953FE /* Comp13.hpp in Headers */,
BE90E1061A2491AE00CCAFDE /* GaussQuadratureFormula.hxx in Headers */,
......@@ -10405,7 +10415,6 @@
BE0170851B2098BB0058FAB1 /* ShapeFunctionOrder0.hpp in Headers */,
BE90E1281A2491AE00CCAFDE /* Node.hpp in Headers */,
BE90E1171A2491AE00CCAFDE /* GaussQuadratureFormula.hxx in Headers */,
BE90E1021A2491AE00CCAFDE /* QuadratureRuleList.hpp in Headers */,
BE90E0681A2491AE00CCAFDE /* FEltSpace.hxx in Headers */,
BE646CD21B32987C008BD37C /* QuadratureRuleTracker.hpp in Headers */,
BE8F0E681A81260600D81C9F /* ___FILEBASENAME___.hxx in Headers */,
......@@ -10486,7 +10495,6 @@
BE3221911B4686C100F27D6C /* FElt.hxx in Headers */,
BE4054051AC196480024D5F9 /* FEltSpace.hxx in Headers */,
BE2B66501A2778C700E80864 /* BasicRefFEltFactory.hpp in Headers */,
BE90E1031A2491AE00CCAFDE /* QuadratureRuleList.hxx in Headers */,
BE5B6F9E1C3C1771004A0284 /* ShapeFunctionTriangleP1Bubble.hxx in Headers */,
BE90E13A1A2491AE00CCAFDE /* DirichletBoundaryCondition.hxx in Headers */,
BE510D841CB3D44900E953FE /* Comp1.hpp in Headers */,
......@@ -248,6 +248,7 @@ namespace HappyHeart
///@} // \addtogroup
///@} // \addtogroup
} // namespace HappyHeart
......
......@@ -27,25 +27,32 @@ namespace HappyHeart
namespace Crtp
{
/*!
* \brief Intended to be used as a CRTP for quadrature rules.
*/
template<class DerivedT>
struct QuadratureRuleListImpl
namespace QuadratureRuleNS
{
/*!
* \brief Intended to be used as a CRTP for quadrature rules.
*/
template<class DerivedT>
struct List
{
//! Number of rules.
static unsigned int Nrule();
//! Number of rules.
static unsigned int Nrule();
//! Maximum degree of exactness.
static unsigned int MaximumDegreeOfExactness();
//! Maximum degree of exactness.
static unsigned int MaximumDegreeOfExactness();
//! Return the cheapest quadrature rule ensuring that polynoms of degree \c degree are computed exactly.
static const QuadratureRule::const_shared_ptr& Rule(unsigned int degree);
//! Return the cheapest quadrature rule ensuring that polynoms of degree \c degree are computed exactly.
static const QuadratureRule::const_shared_ptr& Rule(unsigned int degree);
};
};
} // namespace QuadratureRuleNS
} // namespace Crtp
......@@ -54,7 +61,7 @@ namespace HappyHeart
} // namespace HappyHeart
# include "FiniteElement/QuadratureRules/QuadratureRuleList.hxx"
# include "FiniteElement/QuadratureRules/Crtp/QuadratureRuleList.hxx"
#endif // HAPPY_HEART_x_FINITE_ELEMENT_x_QUADRATURE_RULES_x_QUADRATURE_RULE_LIST_HPP_
//! \file
//
//
// GetQuadratureRule.h
// HappyHeart
//
// Created by Sebastien Gilles on 5/28/13.
// Copyright (c) 2013 Inria. All rights reserved.
//
#ifndef HAPPY_HEART_x_FINITE_ELEMENT_x_QUADRATURE_RULES_x_QUADRATURE_RULE_LIST_HXX_
# define HAPPY_HEART_x_FINITE_ELEMENT_x_QUADRATURE_RULES_x_QUADRATURE_RULE_LIST_HXX_
namespace HappyHeart
{
namespace Crtp
{
namespace QuadratureRuleNS
{
template<class DerivedT>
unsigned int List<DerivedT>::Nrule()
{
return static_cast<unsigned int>(DerivedT::List_().size());
}
template<class DerivedT>
unsigned int List<DerivedT>::MaximumDegreeOfExactness()
{
// As the rules are assumed to be sort in increasing order, this is the degree of the last element.
const auto& list = DerivedT::List_();
assert(!list.empty());
assert(std::is_sorted(list.cbegin(), list.cend(),
[](const QuadratureRule& rule1, const QuadratureRule& rule2)
{
return rule1.DegreeOfExactness() < rule2.DegreeOfExactness();
}
)
);
return list.back().DegreeOfExactness();
}
template<class DerivedT>
const QuadratureRule::const_shared_ptr& List<DerivedT>::Rule(unsigned int degree)
{
const auto& list = DerivedT::GetList();
assert(!list.empty());
auto sorting_rule = [](const QuadratureRule::const_shared_ptr& lhs,
const QuadratureRule::const_shared_ptr& rhs)
{
assert(!(!lhs));
assert(!(!rhs));
return lhs->DegreeOfExactness() < rhs->DegreeOfExactness();
};
// There is a strong assumption in the class that the rules are sort in increasing order; this is checked here.
assert(std::is_sorted(list.cbegin(), list.cend(), sorting_rule));
auto dummy = std::make_shared<QuadratureRule>((*list.cbegin())->GetTopologyIdentifier(), degree);
auto it = std::lower_bound(list.cbegin(), list.cend(), dummy, sorting_rule);
// If the requested degree of exactness is too high, take the biggest available.
if (it == list.cend())
return *(list.crbegin());
//throw ExceptionNS::List::InvalidDegree(degree, MaximumDegreeOfExactness(), __FILE__, __LINE__);
return *it;
}
} // namespace QuadratureRuleNS
} // namespace Crtp
} // namespace HappyHeart
#endif // HAPPY_HEART_x_FINITE_ELEMENT_x_QUADRATURE_RULES_x_QUADRATURE_RULE_LIST_HXX_
......@@ -22,13 +22,19 @@ namespace HappyHeart
{
/*!
* \brief A quick and dirty function to provide quickly default quadrature rules when operators are defined.
*
*/
quadrature_rule_per_topology_type DetermineDefaultQuadratureRule(unsigned int degree_of_exactness);
/// \addtogroup FElt
///@{
/*!
* \brief A quick and dirty function to provide quickly default quadrature rules when operators are defined.
*
*/
quadrature_rule_per_topology_type DetermineDefaultQuadratureRule(unsigned int degree_of_exactness);
///@} // \addtogroup
} // namespace HappyHeart
......
......@@ -20,6 +20,10 @@ namespace HappyHeart
{
/// \addtogroup FElt
///@{
/*!
* \brief Variants of Gauss quadrature formula available.
*/
......
......@@ -31,6 +31,10 @@ namespace HappyHeart
{
/// \addtogroup FElt
///@{
/*!
* \brief Computation of Gauss quadrature formula.
*
......@@ -53,6 +57,9 @@ namespace HappyHeart
std::vector<double>& weights);
///@} // \addtogroup
} // namespace QuadratureNS
......
......@@ -126,7 +126,7 @@ namespace HappyHeart
const std::array<QuadratureRule::const_shared_ptr, 3>& Hexahedron::QuadratureRuleList_()
const std::array<QuadratureRule::const_shared_ptr, 3>& Hexahedron::GetList()
{
static const std::array<QuadratureRule::const_shared_ptr, 3> ret = CreateQuadratureRuleList();
return ret;
......
......@@ -15,7 +15,7 @@
#include <array>
#include "FiniteElement/QuadratureRules/QuadratureRule.hpp"
#include "FiniteElement/QuadratureRules/QuadratureRuleList.hpp"
#include "FiniteElement/QuadratureRules/Crtp/QuadratureRuleList.hpp"
namespace HappyHeart
......@@ -27,7 +27,7 @@ namespace HappyHeart
//! CRTP-defined class for the quadrature rules that concerns Hexahedrons.
struct Hexahedron : public Crtp::QuadratureRuleListImpl<Hexahedron>
struct Hexahedron : public Crtp::QuadratureRuleNS::List<Hexahedron>
{
/*!
......@@ -37,7 +37,7 @@ namespace HappyHeart
*
* \return List as an array.
*/
static const std::array<QuadratureRule::const_shared_ptr, 3>& QuadratureRuleList_();
static const std::array<QuadratureRule::const_shared_ptr, 3>& GetList();
};
......
......@@ -47,7 +47,7 @@ namespace HappyHeart
const std::array<QuadratureRule::const_shared_ptr, 1>& Point::QuadratureRuleList_()
const std::array<QuadratureRule::const_shared_ptr, 1>& Point::GetList()
{
static const std::array<QuadratureRule::const_shared_ptr, 1> ret = CreateQuadratureRuleList();
......
......@@ -15,7 +15,7 @@
#include <array>
#include "FiniteElement/QuadratureRules/QuadratureRule.hpp"
#include "FiniteElement/QuadratureRules/QuadratureRuleList.hpp"
#include "FiniteElement/QuadratureRules/Crtp/QuadratureRuleList.hpp"
namespace HappyHeart
......@@ -27,7 +27,7 @@ namespace HappyHeart
//! CRTP-defined class for the quadrature rules that concerns points.
struct Point : public Crtp::QuadratureRuleListImpl<Point>
struct Point : public Crtp::QuadratureRuleNS::List<Point>
{
/*!
......@@ -37,7 +37,7 @@ namespace HappyHeart
*
* \return List as an array.
*/
static const std::array<QuadratureRule::const_shared_ptr, 1>& QuadratureRuleList_();
static const std::array<QuadratureRule::const_shared_ptr, 1>& GetList();
};
......
......@@ -101,7 +101,7 @@ namespace HappyHeart
const std::array<QuadratureRule::const_shared_ptr, 3>& Quadrangle::QuadratureRuleList_()
const std::array<QuadratureRule::const_shared_ptr, 3>& Quadrangle::GetList()
{
static const std::array<QuadratureRule::const_shared_ptr, 3> ret = CreateQuadratureRuleList();
......
......@@ -15,7 +15,7 @@
#include <array>
#include "FiniteElement/QuadratureRules/QuadratureRule.hpp"
#include "FiniteElement/QuadratureRules/QuadratureRuleList.hpp"
#include "FiniteElement/QuadratureRules/Crtp/QuadratureRuleList.hpp"
namespace HappyHeart
......@@ -27,7 +27,7 @@ namespace HappyHeart
//! CRTP-defined class for the quadrature rules that concerns Quadrangles.
struct Quadrangle : public Crtp::QuadratureRuleListImpl<Quadrangle>
struct Quadrangle : public Crtp::QuadratureRuleNS::List<Quadrangle>
{
/*!
......@@ -37,7 +37,7 @@ namespace HappyHeart
*
* \return List as an array.
*/
static const std::array<QuadratureRule::const_shared_ptr, 3>& QuadratureRuleList_();
static const std::array<QuadratureRule::const_shared_ptr, 3>& GetList();
};
......
......@@ -86,7 +86,7 @@ namespace HappyHeart
const std::array<QuadratureRule::const_shared_ptr, 3>& Segment::QuadratureRuleList_()
const std::array<QuadratureRule::const_shared_ptr, 3>& Segment::GetList()
{
static const std::array<QuadratureRule::const_shared_ptr, 3> ret = CreateQuadratureRuleList();
......
......@@ -15,7 +15,7 @@
#include <array>
#include "FiniteElement/QuadratureRules/QuadratureRule.hpp"
#include "FiniteElement/QuadratureRules/QuadratureRuleList.hpp"
#include "FiniteElement/QuadratureRules/Crtp/QuadratureRuleList.hpp"
namespace HappyHeart
......@@ -27,7 +27,7 @@ namespace HappyHeart
//! CRTP-defined class for the quadrature rules that concerns segments.
struct Segment : public Crtp::QuadratureRuleListImpl<Segment>
struct Segment : public Crtp::QuadratureRuleNS::List<Segment>
{
/*!
......@@ -37,7 +37,7 @@ namespace HappyHeart
*
* \return List as an array.
*/
static const std::array<QuadratureRule::const_shared_ptr, 3>& QuadratureRuleList_();
static const std::array<QuadratureRule::const_shared_ptr, 3>& GetList();
};
......
......@@ -281,7 +281,7 @@ namespace HappyHeart
const std::array<QuadratureRule::const_shared_ptr, 5>& Tetrahedron::QuadratureRuleList_()
const std::array<QuadratureRule::const_shared_ptr, 5>& Tetrahedron::GetList()
{
static const std::array<QuadratureRule::const_shared_ptr, 5> ret = CreateQuadratureRuleList();
......
......@@ -15,7 +15,7 @@
#include <array>
#include "FiniteElement/QuadratureRules/QuadratureRule.hpp"
#include "FiniteElement/QuadratureRules/QuadratureRuleList.hpp"
#include "FiniteElement/QuadratureRules/Crtp/QuadratureRuleList.hpp"
namespace HappyHeart
......@@ -27,7 +27,7 @@ namespace HappyHeart
//! CRTP-defined class for the quadrature rules that concerns tetrahedrons.
struct Tetrahedron : public Crtp::QuadratureRuleListImpl<Tetrahedron>
struct Tetrahedron : public Crtp::QuadratureRuleNS::List<Tetrahedron>
{
/*!
......@@ -37,7 +37,7 @@ namespace HappyHeart
*
* \return List as an array.
*/
static const std::array<QuadratureRule::const_shared_ptr, 5>& QuadratureRuleList_();
static const std::array<QuadratureRule::const_shared_ptr, 5>& GetList();
};
......
......@@ -158,7 +158,7 @@ namespace HappyHeart
const std::array<QuadratureRule::const_shared_ptr, 5>& Triangle::QuadratureRuleList_()
const std::array<QuadratureRule::const_shared_ptr, 5>& Triangle::GetList()
{
static const std::array<QuadratureRule::const_shared_ptr, 5> ret = CreateQuadratureRuleList();
......
......@@ -15,7 +15,7 @@
#include <array>
#include "FiniteElement/QuadratureRules/QuadratureRule.hpp"
#include "FiniteElement/QuadratureRules/QuadratureRuleList.hpp"
#include "FiniteElement/QuadratureRules/Crtp/QuadratureRuleList.hpp"
namespace HappyHeart
......@@ -27,7 +27,7 @@ namespace HappyHeart
//! CRTP-defined class for the quadrature rules that concerns triangles.
struct Triangle : public Crtp::QuadratureRuleListImpl<Triangle>
struct Triangle : public Crtp::QuadratureRuleNS::List<Triangle>
{
/*!
......@@ -37,7 +37,7 @@ namespace HappyHeart
*
* \return List as an array.
*/
static const std::array<QuadratureRule::const_shared_ptr, 5>& QuadratureRuleList_();
static const std::array<QuadratureRule::const_shared_ptr, 5>& GetList();
};
......
......@@ -23,6 +23,9 @@ namespace HappyHeart
{
/// \addtogroup FElt
///@{
/*!
* \brief Quadrature point used to perform discrete integration.
......@@ -100,6 +103,9 @@ namespace HappyHeart
const unsigned int index_;
};
///@} // \addtogroup
} // namespace HappyHeart
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment