Merge branch 'master' of ssh://git.code.sf.net/p/foam-extend/foam-extend-3.2
[foam-extend-3.2.git] / applications / utilities / immersedBoundary / refineImmersedBoundaryMesh / refineImmersedBoundaryMesh.C
blobc99d8050940db512e74e47554ba3f3b5e2d25dd4
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | foam-extend: Open Source CFD
4    \\    /   O peration     | Version:     3.2
5     \\  /    A nd           | Web:         http://www.foam-extend.org
6      \\/     M anipulation  | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
8 License
9     This file is part of foam-extend.
11     foam-extend is free software: you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by the
13     Free Software Foundation, either version 3 of the License, or (at your
14     option) any later version.
16     foam-extend is distributed in the hope that it will be useful, but
17     WITHOUT ANY WARRANTY; without even the implied warranty of
18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19     General Public License for more details.
21     You should have received a copy of the GNU General Public License
22     along with foam-extend.  If not, see <http://www.gnu.org/licenses/>.
24 Application
25     refineImmersedBoundaryMesh
27 Description
28     Refine the background mesh around the immersed surface
30 \*---------------------------------------------------------------------------*/
32 #include "fvCFD.H"
33 #include "refineImmersedBoundaryMesh.H"
35 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
37 int main(int argc, char *argv[])
39     argList::validOptions.insert("ibCells", "");
40     argList::validOptions.insert("ibCellCells", "");
41     argList::validOptions.insert("ibCellCellFaces", "");
43 #   include "setRootCase.H"
45 #   include "createTime.H"
46 #   include "createMesh.H"
48     refineImmersedBoundaryMesh rib(mesh);
50     labelList rc;
52     if (args.optionFound("ibCells"))
53     {
54         rc = rib.refinementCells
55         (
56             refineImmersedBoundaryMesh::IB_CELLS
57         );
58     }
59     else if (args.optionFound("ibCellCells"))
60     {
61         rc = rib.refinementCells
62         (
63             refineImmersedBoundaryMesh::IB_CELL_CELLS
64         );
65     }
66     else if (args.optionFound("ibCellCellFaces"))
67     {
68         rc = rib.refinementCells
69         (
70             refineImmersedBoundaryMesh::IB_CELL_CELL_FACES
71         );
72     }
73     else
74     {
75         FatalErrorIn(args.executable())
76             << "Specify one of the available options for cell selection: "
77             << "[-ibCells] [-ibCellCells] [-ibCellCellFaces]" << nl
78             << exit(FatalError);
79     }
81     Info<< "Number of refinement cells = " << rc.size() << endl;
83     rib.refineMesh(rc);
84     mesh.write();
86     Info<< "End\n" << endl;
88     return 0;
92 // ************************************************************************* //