polyMeshGenGeometryModification.C
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | cfMesh: A library for mesh generation
4  \\ / O peration |
5  \\ / A nd | Author: Franjo Juretic (franjo.juretic@c-fields.com)
6  \\/ M anipulation | Copyright (C) Creative Fields, Ltd.
7 -------------------------------------------------------------------------------
8 License
9  This file is part of cfMesh.
10 
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.
15 
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
19  for more details.
20 
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/>.
23 
24 \*---------------------------------------------------------------------------*/
25 
27 #include "dictionary.H"
28 
29 namespace Foam
30 {
31 
32 // * * * * * * * * * * * * * * Private member functions* * * * * * * * * * * //
33 
35 {
36  if( meshDict_.found("anisotropicSources") )
37  {
38  modificationActive_ = true;
39 
40  const dictionary& anisotropicDict =
41  meshDict_.subDict("anisotropicSources");
42 
43  coordinateModifierPtr_ = new coordinateModifier(anisotropicDict);
44  }
45 }
46 
47 // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
48 
50 (
52  const dictionary& meshDict
53 )
54 :
55  mesh_(mesh),
56  meshDict_(meshDict),
57  coordinateModifierPtr_(NULL),
58  modificationActive_(false)
59 {
60  checkModification();
61 }
62 
64 {
66 }
67 
68 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
69 
71 {
72  return modificationActive_;
73 }
74 
76 {
77  if( !modificationActive_ )
78  {
79  WarningIn
80  (
81  "const triSurf* polyMeshGenGeometryModification"
82  "::modifyGeometry() const"
83  ) << "Modification is not active" << endl;
84 
85  return;
86  }
87 
88  pointFieldPMG& pts = mesh_.points();
89 
90  # ifdef USE_OMP
91  # pragma omp parallel for schedule(dynamic, 50)
92  # endif
93  forAll(pts, pointI)
94  pts[pointI] = coordinateModifierPtr_->modifiedPoint(pts[pointI]);
95 }
96 
98 {
99  if( !modificationActive_ )
100  {
101  WarningIn
102  (
103  "const triSurf* polyMeshGenGeometryModification"
104  "::revertGeometryModification() const"
105  ) << "Modification is not active" << endl;
106 
107  return;
108  }
109 
110  pointFieldPMG& pts = mesh_.points();
111 
112  # ifdef USE_OMP
113  # pragma omp parallel for schedule(dynamic, 50)
114  # endif
115  forAll(pts, pointI)
116  pts[pointI] =
118 }
119 
120 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
121 
122 } // End namespace Foam
123 
124 // ************************************************************************* //
Foam::polyMeshGenGeometryModification::modificationActive_
bool modificationActive_
is mofdification active
Definition: polyMeshGenGeometryModification.H:66
forAll
#define forAll(list, i)
Loop across all elements in list.
Definition: UList.H:406
Foam::coordinateModifier::modifiedPoint
point modifiedPoint(const point &) const
calculate the modified coordinate of the point
Definition: coordinateModifier.C:193
Foam::polyMeshGenGeometryModification::~polyMeshGenGeometryModification
~polyMeshGenGeometryModification()
Definition: polyMeshGenGeometryModification.C:63
Foam::polyMeshGenGeometryModification::coordinateModifierPtr_
coordinateModifier * coordinateModifierPtr_
contruct coordinate modification
Definition: polyMeshGenGeometryModification.H:63
Foam::polyMeshGen
Definition: polyMeshGen.H:46
Foam::endl
Ostream & endl(Ostream &os)
Add newline and flush stream.
Definition: Ostream.H:251
Foam::polyMeshGenPoints::points
const pointFieldPMG & points() const
access to points
Definition: polyMeshGenPointsI.H:44
Foam::polyMeshGenGeometryModification::polyMeshGenGeometryModification
polyMeshGenGeometryModification(const polyMeshGenGeometryModification &)
disable bitwise copy construct
Foam::polyMeshGenGeometryModification::meshDict_
const dictionary & meshDict_
length of box sides
Definition: polyMeshGenGeometryModification.H:60
Foam::deleteDemandDrivenData
void deleteDemandDrivenData(DataPtr &dataPtr)
Definition: demandDrivenData.H:40
polyMeshGenGeometryModification.H
Foam::dictionary::found
bool found(const word &, bool recursive=false, bool patternMatch=true) const
Search dictionary for given keyword.
Definition: dictionary.C:304
Foam::dictionary
A list of keyword definitions, which are a keyword followed by any number of values (e....
Definition: dictionary.H:137
mesh
dynamicFvMesh & mesh
Definition: createDynamicFvMesh.H:18
Foam
Namespace for OpenFOAM.
Definition: combustionModel.C:30
Foam::polyMeshGenGeometryModification::revertGeometryModification
void revertGeometryModification()
revert modification of coorinates
Definition: polyMeshGenGeometryModification.C:97
Foam::polyMeshGenGeometryModification::mesh_
polyMeshGen & mesh_
reference to polyMeshGen
Definition: polyMeshGenGeometryModification.H:57
Foam::polyMeshGenGeometryModification::modifyGeometry
void modifyGeometry()
modify coordinates
Definition: polyMeshGenGeometryModification.C:75
dictionary.H
Foam::polyMeshGenGeometryModification::activeModification
bool activeModification() const
is geometry modification active
Definition: polyMeshGenGeometryModification.C:70
WarningIn
#define WarningIn(functionName)
Report a warning using Foam::Warning.
Definition: messageStream.H:254
Foam::coordinateModifier
Definition: coordinateModifier.H:54
Foam::coordinateModifier::backwardModifiedPoint
point backwardModifiedPoint(const point &) const
calculate the displacement vector for the backward modification
Definition: coordinateModifier.C:205
Foam::dictionary::subDict
const dictionary & subDict(const word &) const
Find and return a sub-dictionary.
Definition: dictionary.C:631
Foam::pointFieldPMG
Definition: pointFieldPMG.H:50
Foam::polyMeshGenGeometryModification::checkModification
void checkModification()
check existence of geometry modifiers
Definition: polyMeshGenGeometryModification.C:34