OpenLB 1.8.1
Loading...
Searching...
No Matches
integral.h
Go to the documentation of this file.
1/* This file is part of the OpenLB library
2 *
3 * Copyright (C) 2024 Adrian Kummerlaender
4 * E-mail contact: info@openlb.net
5 * The most recent release of OpenLB can be downloaded at
6 * <http://www.openlb.net/>
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License
10 * as published by the Free Software Foundation; either version 2
11 * of the License, or (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public
19 * License along with this program; if not, write to the Free
20 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 * Boston, MA 02110-1301, USA.
22*/
23
24#ifndef FSI_INTEGRAL_H
25#define FSI_INTEGRAL_H
26
27#include "fields.h"
28
29namespace olb {
30
32template <typename... FIELDS>
35
40 >;
41
42 int getPriority() const {
43 return 2;
44 }
45
46 template <typename BLOCK>
47 struct type {
48 void setup(BLOCK& blockLattice) { }
49 void apply(BLOCK& blockLattice) {
50 throw std::runtime_error("IntegratePorousElementFieldsO not implemented");
51 }
52 };
53
54 template <typename BLOCK>
55 void setup(BLOCK& blockLattice) {
56 type<BLOCK>{}.setup(blockLattice);
57 }
58
59 template <typename BLOCK>
60 void apply(BLOCK& blockLattice) {
61 type<BLOCK>{}.apply(blockLattice);
62 }
63
64};
65
66}
67
68#endif
Top level namespace for all of OpenLB.
OperatorScope
Block-wide operator application scopes.
@ PerBlock
Per-block application, i.e. OPERATOR::apply is passed a ConcreteBlockLattice.
void apply(BLOCK &blockLattice)
Definition integral.h:49
void setup(BLOCK &blockLattice)
Definition integral.h:48
Operator for integrating per-element momentum exchange forces in a HLBM-FSI context.
Definition integral.h:33
void setup(BLOCK &blockLattice)
Definition integral.h:55
void apply(BLOCK &blockLattice)
Definition integral.h:60
static constexpr OperatorScope scope
Definition integral.h:34
Base of a field of pointers to the individual columns of FIELD.
Definition fields.h:175
Plain wrapper for list of types.
Definition meta.h:276