OGS
IntegrationMethodProvider.h
Go to the documentation of this file.
1
11#pragma once
12
15
16namespace NumLib
17{
20template <typename T>
21concept IntegrationMethodProvider = requires(T t)
22{
23 {
24 // using Quad as a representative mesh element type
25 t.template getIntegrationMethod<MeshLib::Quad>(
26 std::declval<MeshLib::Element>())
27 } -> std::same_as<GenericIntegrationMethod const&>;
28};
29
33{
34public:
36 IntegrationOrder const integration_order)
37 : integration_order_{integration_order}
38 {
39 }
40
41 template <typename MeshElement>
43 MeshLib::Element const& /*e*/) const
44 {
45 return IntegrationMethodRegistry::template getIntegrationMethod<
46 MeshElement>(integration_order_);
47 }
48
49private:
51};
52
60
61} // namespace NumLib
Definition of the Quad class.
DefaultIntegrationMethodProvider(IntegrationOrder const integration_order)
GenericIntegrationMethod const & getIntegrationMethod(MeshLib::Element const &) const
DefaultIntegrationMethodProvider getIntegrationMethodProvider(NumLib::IntegrationOrder const integration_order)