1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | cfMesh: A library for mesh generation
5 \\ / A nd | Author: Franjo Juretic (franjo.juretic@c-fields.com)
6 \\/ M anipulation | Copyright (C) Creative Fields, Ltd.
7 -------------------------------------------------------------------------------
9 This file is part of cfMesh.
11 cfMesh 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 cfMesh is distributed in the hope that it will be useful, but WITHOUT
17 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21 You should have received a copy of the GNU General Public License
22 along with cfMesh. If not, see <http://www.gnu.org/licenses/>.
26 \*---------------------------------------------------------------------------*/
28 #include "triangulateNonPlanarBaseFaces.H"
29 #include "dictionary.H"
30 #include "demandDrivenData.H"
32 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
37 // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
39 triangulateNonPlanarBaseFaces::triangulateNonPlanarBaseFaces
45 invertedCell_(mesh_.cells().size(), false),
46 decomposeFace_(mesh_.faces().size(), false),
50 // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
52 triangulateNonPlanarBaseFaces::~triangulateNonPlanarBaseFaces()
55 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
57 void triangulateNonPlanarBaseFaces::setRelativeTolerance(const scalar tol)
62 void triangulateNonPlanarBaseFaces::triangulateLayers()
64 if( findNonPlanarBoundaryFaces() )
66 Info << "Decomposing twisted boundary faces" << endl;
68 decomposeBoundaryFaces();
70 decomposeCellsIntoPyramids();
74 Info << "All boundary faces are flat" << endl;
78 void triangulateNonPlanarBaseFaces::readSettings
80 const dictionary& meshDict,
81 triangulateNonPlanarBaseFaces& triangulator
84 if( meshDict.found("boundaryLayers") )
86 const dictionary& layersDict = meshDict.subDict("boundaryLayers");
88 if( layersDict.found("optimisationParameters") )
90 const dictionary& optLayerDict =
91 layersDict.subDict("optimisationParameters");
93 if( optLayerDict.found("relFlatnessTol") )
96 readScalar(optLayerDict.lookup("relFlatnessTol"));
98 triangulator.setRelativeTolerance(relTol);
104 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
106 } // End namespace Foam
108 // ************************************************************************* //