Loading...
Searching...
No Matches
manualGAMGProcAgglomeration.H
Go to the documentation of this file.
1/*---------------------------------------------------------------------------*\
2 ========= |
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4 \\ / O peration |
5 \\ / A nd | www.openfoam.com
6 \\/ M anipulation |
7-------------------------------------------------------------------------------
8 Copyright (C) 2013-2016 OpenFOAM Foundation
9 Copyright (C) 2023 OpenCFD Ltd.
10-------------------------------------------------------------------------------
11License
12 This file is part of OpenFOAM.
13
14 OpenFOAM is free software: you can redistribute it and/or modify it
15 under the terms of the GNU General Public License as published by
16 the Free Software Foundation, either version 3 of the License, or
17 (at your option) any later version.
18
19 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
20 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
21 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22 for more details.
23
24 You should have received a copy of the GNU General Public License
25 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
26
27Class
28 Foam::manualGAMGProcAgglomeration
29
30Description
31 Manual processor agglomeration of GAMGAgglomerations.
32
33 In the GAMG control dictionary:
34
35 processorAgglomerator manual;
36 // List of level+procagglomeration where
37 // procagglomeration is a set of labelLists. Each labelList is
38 // a cluster of processor which gets combined onto the first element
39 // in the list.
40 processorAgglomeration
41 (
42 (
43 3 //at level 3
44 (
45 (0 1) //coarse 0 from 0,1 (and moved onto 0)
46 (3 2) //coarse 1 from 2,3 (and moved onto 3)
47 )
48 )
49 (
50 6 //at level6
51 (
52 (0 1) //coarse 0 from 0,1 (and moved onto 0)
53 )
54 )
55 );
56
57SourceFiles
58 manualGAMGProcAgglomeration.C
59
60\*---------------------------------------------------------------------------*/
61
62#ifndef Foam_manualGAMGProcAgglomeration_H
63#define Foam_manualGAMGProcAgglomeration_H
64
66#include "Tuple2.H"
67
68// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
69
70namespace Foam
71{
73/*---------------------------------------------------------------------------*\
74 Class manualGAMGProcAgglomeration Declaration
75\*---------------------------------------------------------------------------*/
76
78:
80{
81 // Private Data
82
83 //- Per level the agglomeration map
84 const List<Tuple2<label, List<labelList>>> procAgglomMaps_;
85
86
87public:
88
89 //- Runtime type information
90 TypeName("manual");
91
92
93 //- No copy construct
96 //- No copy assignment
97 void operator=(const manualGAMGProcAgglomeration&) = delete;
98
99
100 // Constructors
101
102 //- Construct given agglomerator and controls
104 (
105 GAMGAgglomeration& agglom,
107 );
108
109
110 //- Destructor
112
113
114 // Member Functions
115
116 //- Modify agglomeration. Return true if modified
117 virtual bool agglomerate();
118};
119
120
121// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
122
123} // End namespace Foam
124
125// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
126
127#endif
128
129// ************************************************************************* //
Geometric agglomerated algebraic multigrid agglomeration class.
GAMGProcAgglomeration(const GAMGProcAgglomeration &)=delete
No copy construct.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
Definition List.H:72
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition dictionary.H:133
manualGAMGProcAgglomeration(const manualGAMGProcAgglomeration &)=delete
No copy construct.
TypeName("manual")
Runtime type information.
virtual bool agglomerate()
Modify agglomeration. Return true if modified.
void operator=(const manualGAMGProcAgglomeration &)=delete
No copy assignment.
runTime controlDict().readEntry("adjustTimeStep"
Namespace for OpenFOAM.
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
Definition typeInfo.H:68