OGS
IntegrationMethodProvider.h
Go to the documentation of this file.
1
// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2
// SPDX-License-Identifier: BSD-3-Clause
3
4
#pragma once
5
6
#include "
IntegrationMethodRegistry.h
"
7
#include "
MeshLib/Elements/Quad.h
"
8
9
namespace
NumLib
10
{
13
template
<
typename
T>
14
concept
IntegrationMethodProvider
=
requires
(T t)
15
{
16
{
17
// using Quad as a representative mesh element type
18
t.template getIntegrationMethod<MeshLib::Quad>(
19
std::declval<MeshLib::Element>())
20
} -> std::same_as<GenericIntegrationMethod const&>;
21
};
22
25
class
DefaultIntegrationMethodProvider
26
{
27
public
:
28
explicit
DefaultIntegrationMethodProvider
(
29
IntegrationOrder
const
integration_order)
30
:
integration_order_
{integration_order}
31
{
32
}
33
34
template
<
typename
MeshElement>
35
GenericIntegrationMethod
const
&
getIntegrationMethod
(
36
MeshLib::Element
const
&
/*e*/
)
const
37
{
38
return
IntegrationMethodRegistry::template
getIntegrationMethod
<
39
MeshElement>(
integration_order_
);
40
}
41
42
private
:
43
IntegrationOrder
integration_order_
;
44
};
45
48
inline
DefaultIntegrationMethodProvider
getIntegrationMethodProvider
(
49
NumLib::IntegrationOrder
const
integration_order)
50
{
51
return
DefaultIntegrationMethodProvider
{integration_order};
52
}
53
54
}
// namespace NumLib
IntegrationMethodRegistry.h
Quad.h
MeshLib::Element
Definition
Element.h:25
NumLib::DefaultIntegrationMethodProvider
Definition
IntegrationMethodProvider.h:26
NumLib::DefaultIntegrationMethodProvider::DefaultIntegrationMethodProvider
DefaultIntegrationMethodProvider(IntegrationOrder const integration_order)
Definition
IntegrationMethodProvider.h:28
NumLib::DefaultIntegrationMethodProvider::integration_order_
IntegrationOrder integration_order_
Definition
IntegrationMethodProvider.h:43
NumLib::DefaultIntegrationMethodProvider::getIntegrationMethod
GenericIntegrationMethod const & getIntegrationMethod(MeshLib::Element const &) const
Definition
IntegrationMethodProvider.h:35
NumLib::GenericIntegrationMethod
Definition
GenericIntegrationMethod.h:18
NumLib::IntegrationMethodProvider
Definition
IntegrationMethodProvider.h:14
NumLib
Definition
ProjectData.h:35
NumLib::getIntegrationMethodProvider
DefaultIntegrationMethodProvider getIntegrationMethodProvider(NumLib::IntegrationOrder const integration_order)
Definition
IntegrationMethodProvider.h:48
NumLib::IntegrationOrder
Definition
IntegrationMethodRegistry.h:15
NumLib
Fem
Integration
IntegrationMethodProvider.h
Generated by
1.14.0