Merge branch 'master' of ssh://git.code.sf.net/p/foam-extend/foam-extend-3.2
[foam-extend-3.2.git] / applications / utilities / immersedBoundary / surfaceInvertNormal / surfaceInvertNormal.C
blob5f11040f5ff60a37d22e753283a4f62d2080f5a0
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 Description
25     Write surface and normal vector
27 \*---------------------------------------------------------------------------*/
29 #include "argList.H"
30 #include "triSurface.H"
31 #include "IFstream.H"
33 using namespace Foam;
35 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
36 // Main program:
38 int main(int argc, char *argv[])
40     argList::noParallel();
41     argList::validArgs.clear();
43     argList::validArgs.append("surface file");
44     argList::validArgs.append("output surface file");
45     argList args(argc, argv);
47     fileName surfFileName(args.additionalArgs()[0]);
49     Info<< "Reading surf from " << surfFileName << " ..." << endl;
51     fileName outFileName(args.additionalArgs()[1]);
53     Info<< "Writing surf to " << outFileName << " ..." << endl;
55     triSurface ts(surfFileName);
57     triFaceList invertedFaces(ts.size());
59     forAll (ts, tsI)
60     {
61         invertedFaces[tsI] = ts[tsI].reverseFace();
62     }
64     triSurface invertedTs
65     (
66         invertedFaces,
67         ts.points()
68     );
70     invertedTs.write(outFileName);
72     Info << "End\n" << endl;
74     return 0;
78 // ************************************************************************* //