Skip to content
Snippets Groups Projects
Commit 488cfd59 authored by mattijs's avatar mattijs
Browse files

ENH: dummy agglomeration method for testing: dummyAgglomeration

parent 8acd8169
Branches
Tags
No related merge requests found
...@@ -316,6 +316,10 @@ $(pairGAMGAgglomeration)/pairGAMGAgglomerationCombineLevels.C ...@@ -316,6 +316,10 @@ $(pairGAMGAgglomeration)/pairGAMGAgglomerationCombineLevels.C
algebraicPairGAMGAgglomeration = $(GAMGAgglomerations)/algebraicPairGAMGAgglomeration algebraicPairGAMGAgglomeration = $(GAMGAgglomerations)/algebraicPairGAMGAgglomeration
$(algebraicPairGAMGAgglomeration)/algebraicPairGAMGAgglomeration.C $(algebraicPairGAMGAgglomeration)/algebraicPairGAMGAgglomeration.C
dummyAgglomeration = $(GAMGAgglomerations)/dummyAgglomeration
$(dummyAgglomeration)/dummyAgglomeration.C
meshes/lduMesh/lduMesh.C meshes/lduMesh/lduMesh.C
meshes/lduMesh/lduPrimitiveMesh.C meshes/lduMesh/lduPrimitiveMesh.C
......
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2013 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
\*---------------------------------------------------------------------------*/
#include "dummyAgglomeration.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
defineTypeNameAndDebug(dummyAgglomeration, 0);
addToRunTimeSelectionTable
(
GAMGAgglomeration,
dummyAgglomeration,
lduMesh
);
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::dummyAgglomeration::dummyAgglomeration
(
const lduMesh& mesh,
const dictionary& controlDict
)
:
GAMGAgglomeration(mesh, controlDict),
nLevels_(readLabel(controlDict.lookup("nLevels")))
{
// Get the finest-level interfaces from the mesh
interfaceLevels_.set
(
0,
new lduInterfacePtrsList(mesh.interfaces())
);
const label nCoarseCells = mesh.lduAddr().size();
for
(
label nCreatedLevels = 0;
nCreatedLevels < nLevels_;
nCreatedLevels++
)
{
nCells_[nCreatedLevels] = nCoarseCells;
restrictAddressing_.set
(
nCreatedLevels,
new labelField(identity(nCoarseCells))
);
agglomerateLduAddressing(nCreatedLevels);
}
// Shrink the storage of the levels to those created
compactLevels(nLevels_);
}
// ************************************************************************* //
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2013 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::dummyAgglomeration
Description
Agglomerate without combining cells. Used for testing.
SourceFiles
dummyAgglomeration.C
\*---------------------------------------------------------------------------*/
#ifndef dummyAgglomeration_H
#define dummyAgglomeration_H
#include "GAMGAgglomeration.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
/*---------------------------------------------------------------------------*\
Class dummyAgglomeration Declaration
\*---------------------------------------------------------------------------*/
class dummyAgglomeration
:
public GAMGAgglomeration
{
// Private data
//- Preset number of levels
label nLevels_;
// Private Member Functions
//- Disallow default bitwise copy construct
dummyAgglomeration(const dummyAgglomeration&);
//- Disallow default bitwise assignment
void operator=(const dummyAgglomeration&);
public:
//- Runtime type information
TypeName("dummy");
// Constructors
//- Construct given mesh and controls
dummyAgglomeration
(
const lduMesh& mesh,
const dictionary& controlDict
);
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment