From d6854a45075f1a00aacbff274536212d79dc5ffb Mon Sep 17 00:00:00 2001 From: graham <graham.macpherson@strath.ac.uk> Date: Wed, 1 Apr 2009 19:16:08 +0100 Subject: [PATCH] Rewrite of CV3DMesher to cvMesh. Basic infrastructure and thinking. --- .../mesh/generation/CV3DMesher/calcDualMesh.C | 6 +- .../mesh/generation/cvMesh/Make/files | 3 + .../mesh/generation/cvMesh/Make/options | 25 +++ .../utilities/mesh/generation/cvMesh/cvMesh.C | 80 +++++++++ src/conformalVoronoiMesh/Make/files | 5 + src/conformalVoronoiMesh/Make/options | 25 +++ .../conformalVoronoiMesh.C | 102 ++++++++++++ .../conformalVoronoiMesh.H | 152 ++++++++++++++++++ .../cvControls/cvControls.C | 102 ++++++++++++ .../cvControls/cvControls.H | 144 +++++++++++++++++ .../cvSearchableSurfaces.C | 102 ++++++++++++ .../cvSearchableSurfaces.H | 143 ++++++++++++++++ 12 files changed, 887 insertions(+), 2 deletions(-) create mode 100644 applications/utilities/mesh/generation/cvMesh/Make/files create mode 100644 applications/utilities/mesh/generation/cvMesh/Make/options create mode 100644 applications/utilities/mesh/generation/cvMesh/cvMesh.C create mode 100644 src/conformalVoronoiMesh/Make/files create mode 100644 src/conformalVoronoiMesh/Make/options create mode 100644 src/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.C create mode 100644 src/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.H create mode 100644 src/conformalVoronoiMesh/cvControls/cvControls.C create mode 100644 src/conformalVoronoiMesh/cvControls/cvControls.H create mode 100644 src/conformalVoronoiMesh/cvSearchableSurfaces/cvSearchableSurfaces.C create mode 100644 src/conformalVoronoiMesh/cvSearchableSurfaces/cvSearchableSurfaces.H diff --git a/applications/utilities/mesh/generation/CV3DMesher/calcDualMesh.C b/applications/utilities/mesh/generation/CV3DMesher/calcDualMesh.C index 3e3ceae2479..7407495ccee 100644 --- a/applications/utilities/mesh/generation/CV3DMesher/calcDualMesh.C +++ b/applications/utilities/mesh/generation/CV3DMesher/calcDualMesh.C @@ -346,9 +346,11 @@ void Foam::CV3D::calcDualMesh if (cc1I < 0 || cc2I < 0) { FatalErrorIn("Foam::CV3D::calcDualMesh") - << "Dual face uses circumcenter defined by a " + << "Dual face uses circumcenter defined by a " << "Delaunay tetrahedron with no internal " - << "or boundary points." + << "or boundary points. Defining Delaunay edge ends: " + << topoint(vA->point()) << " " + << topoint(vB->point()) << nl << exit(FatalError); } diff --git a/applications/utilities/mesh/generation/cvMesh/Make/files b/applications/utilities/mesh/generation/cvMesh/Make/files new file mode 100644 index 00000000000..425e0f5b83e --- /dev/null +++ b/applications/utilities/mesh/generation/cvMesh/Make/files @@ -0,0 +1,3 @@ +cvMesh.C + +EXE = $(FOAM_APPBIN)/cvMesh diff --git a/applications/utilities/mesh/generation/cvMesh/Make/options b/applications/utilities/mesh/generation/cvMesh/Make/options new file mode 100644 index 00000000000..d58ae360fd7 --- /dev/null +++ b/applications/utilities/mesh/generation/cvMesh/Make/options @@ -0,0 +1,25 @@ +//EXE_DEBUG = -DFULLDEBUG -g -O0 +EXE_FROUNDING_MATH = -frounding-math +EXE_NDEBUG = -DNDEBUG + +include $(GENERAL_RULES)/CGAL +FFLAGS = -DCGAL_FILES='"${CGAL_PATH}/CGAL/files"' + +EXE_INC = \ + ${EXE_FROUNDING_MATH} \ + ${EXE_NDEBUG} \ + ${CGAL_INC} \ + -I$(WM_THIRD_PARTY_DIR)/mpfr-2.4.1 \ + -I$(LIB_SRC)/finiteVolume/lnInclude \ + -I$(LIB_SRC)/meshTools/lnInclude \ + -I$(LIB_SRC)/dynamicMesh/lnInclude \ + -I$(LIB_SRC)/triSurface/lnInclude + +EXE_LIBS = \ + -L$(BOOST_ROOT)/lib \ + -L$(WM_THIRD_PARTY_DIR)/mpfr-2.4.1/platforms/$(WM_ARCH)$(WM_COMPILER_ARCH)/lib \ + -lmeshTools \ + -ltriSurface \ + -ldynamicMesh \ + -lboost_thread-gcc43-mt-1_38 \ + -lmpfr diff --git a/applications/utilities/mesh/generation/cvMesh/cvMesh.C b/applications/utilities/mesh/generation/cvMesh/cvMesh.C new file mode 100644 index 00000000000..43c53f25fbb --- /dev/null +++ b/applications/utilities/mesh/generation/cvMesh/cvMesh.C @@ -0,0 +1,80 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\/ 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 2 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, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +Application + cvMesh + +Description + Conformal Voronoi automatic mesh generator + +\*---------------------------------------------------------------------------*/ + +#include "fvCFD.H" + +using namespace Foam; + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +int main(int argc, char *argv[]) +{ +# include "setRootCase.H" +# include "createTime.H" + runTime.functionObjects().off(); + + IOdictionary cvMeshDict + ( + IOobject + ( + "cvMeshDict", + runTime.system(), + runTime, + IOobject::MUST_READ, + IOobject::NO_WRITE + ) + ); + + conformalVoronoiMesh mesh(cvMeshDict); + + while (runTime.run()) + { + runTime++; + + Info<< nl << "Time = " << runTime.timeName() + << endl; + + + Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" + << " ClockTime = " << runTime.elapsedClockTime() << " s" + << nl << endl; + } + + mesh.write(); + + Info << nl << "End\n" << endl; + + return 0; +} + + +// ************************************************************************* // diff --git a/src/conformalVoronoiMesh/Make/files b/src/conformalVoronoiMesh/Make/files new file mode 100644 index 00000000000..8a05c11cf0a --- /dev/null +++ b/src/conformalVoronoiMesh/Make/files @@ -0,0 +1,5 @@ +#include CGAL_FILES + + + +LIB = $(FOAM_APPBIN)/conformalVoronoiMesh diff --git a/src/conformalVoronoiMesh/Make/options b/src/conformalVoronoiMesh/Make/options new file mode 100644 index 00000000000..d58ae360fd7 --- /dev/null +++ b/src/conformalVoronoiMesh/Make/options @@ -0,0 +1,25 @@ +//EXE_DEBUG = -DFULLDEBUG -g -O0 +EXE_FROUNDING_MATH = -frounding-math +EXE_NDEBUG = -DNDEBUG + +include $(GENERAL_RULES)/CGAL +FFLAGS = -DCGAL_FILES='"${CGAL_PATH}/CGAL/files"' + +EXE_INC = \ + ${EXE_FROUNDING_MATH} \ + ${EXE_NDEBUG} \ + ${CGAL_INC} \ + -I$(WM_THIRD_PARTY_DIR)/mpfr-2.4.1 \ + -I$(LIB_SRC)/finiteVolume/lnInclude \ + -I$(LIB_SRC)/meshTools/lnInclude \ + -I$(LIB_SRC)/dynamicMesh/lnInclude \ + -I$(LIB_SRC)/triSurface/lnInclude + +EXE_LIBS = \ + -L$(BOOST_ROOT)/lib \ + -L$(WM_THIRD_PARTY_DIR)/mpfr-2.4.1/platforms/$(WM_ARCH)$(WM_COMPILER_ARCH)/lib \ + -lmeshTools \ + -ltriSurface \ + -ldynamicMesh \ + -lboost_thread-gcc43-mt-1_38 \ + -lmpfr diff --git a/src/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.C b/src/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.C new file mode 100644 index 00000000000..c298eee9956 --- /dev/null +++ b/src/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.C @@ -0,0 +1,102 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\/ 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 2 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, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +\*---------------------------------------------------------------------------*/ + +#include "conformalVoronoiMesh.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +const dataType Foam::conformalVoronoiMesh::staticData(); + + +// * * * * * * * * * * * * Static Member Functions * * * * * * * * * * * * * // + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::conformalVoronoiMesh::conformalVoronoiMesh() +: + baseClassName(), + data_() +{} + + +Foam::conformalVoronoiMesh::conformalVoronoiMesh(const dataType& data) +: + baseClassName(), + data_(data) +{} + + +Foam::conformalVoronoiMesh::conformalVoronoiMesh(const conformalVoronoiMesh&) +: + baseClassName(), + data_() +{} + + +// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * // + +Foam::autoPtr<Foam::conformalVoronoiMesh> Foam::conformalVoronoiMesh::New() +{ + return autoPtr<conformalVoronoiMesh>(new conformalVoronoiMesh); +} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +Foam::conformalVoronoiMesh::~conformalVoronoiMesh() +{} + + +// * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * * // + + +// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // + + +// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // + + +// * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * * // + +void Foam::conformalVoronoiMesh::operator=(const conformalVoronoiMesh& rhs) +{ + // Check for assignment to self + if (this == &rhs) + { + FatalErrorIn("Foam::conformalVoronoiMesh::operator=(const Foam::conformalVoronoiMesh&)") + << "Attempted assignment to self" + << abort(FatalError); + } +} + +// * * * * * * * * * * * * * * Friend Functions * * * * * * * * * * * * * * // + + +// * * * * * * * * * * * * * * Friend Operators * * * * * * * * * * * * * * // + + +// ************************************************************************* // diff --git a/src/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.H b/src/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.H new file mode 100644 index 00000000000..7b1ea428ec4 --- /dev/null +++ b/src/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.H @@ -0,0 +1,152 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\/ 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 2 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, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +Class + Foam::conformalVoronoiMesh + +Description + +SourceFiles + conformalVoronoiMeshI.H + conformalVoronoiMesh.C + conformalVoronoiMeshIO.C + +\*---------------------------------------------------------------------------*/ + +#ifndef conformalVoronoiMesh_H +#define conformalVoronoiMesh_H + +#include ".H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// Forward declaration of classes +class Istream; +class Ostream; + +// Forward declaration of friend functions and operators +class conformalVoronoiMesh; +Istream& operator>>(Istream&, conformalVoronoiMesh&); +Ostream& operator<<(Ostream&, const conformalVoronoiMesh&); + + +/*---------------------------------------------------------------------------*\ + Class conformalVoronoiMesh Declaration +\*---------------------------------------------------------------------------*/ + +class conformalVoronoiMesh +: + public baseClassName +{ + // Private data + + //- Description of data_ + dataType data_; + + + // Private Member Functions + + //- Disallow default bitwise copy construct + conformalVoronoiMesh(const conformalVoronoiMesh&); + + //- Disallow default bitwise assignment + void operator=(const conformalVoronoiMesh&); + + +public: + + // Static data members + + //- Static data staticData + static const dataType staticData; + + + // Constructors + + //- Construct null + conformalVoronoiMesh(); + + //- Construct from components + conformalVoronoiMesh(const dataType& data); + + //- Construct from Istream + conformalVoronoiMesh(Istream&); + + //- Construct as copy + conformalVoronoiMesh(const conformalVoronoiMesh&); + + + // Selectors + + //- Select null constructed + static autoPtr<conformalVoronoiMesh> New(); + + + //- Destructor + ~conformalVoronoiMesh(); + + + // Member Functions + + // Access + + // Check + + // Edit + + // Write + + + // Member Operators + + void operator=(const conformalVoronoiMesh&); + + + // Friend Functions + + // Friend Operators + + // IOstream Operators + + friend Istream& operator>>(Istream&, conformalVoronoiMesh&); + friend Ostream& operator<<(Ostream&, const conformalVoronoiMesh&); +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "conformalVoronoiMeshI.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/conformalVoronoiMesh/cvControls/cvControls.C b/src/conformalVoronoiMesh/cvControls/cvControls.C new file mode 100644 index 00000000000..dad66aea381 --- /dev/null +++ b/src/conformalVoronoiMesh/cvControls/cvControls.C @@ -0,0 +1,102 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\/ 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 2 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, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +\*---------------------------------------------------------------------------*/ + +#include "cvControls.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +const dataType Foam::cvControls::staticData(); + + +// * * * * * * * * * * * * Static Member Functions * * * * * * * * * * * * * // + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::cvControls::cvControls() +: + baseClassName(), + data_() +{} + + +Foam::cvControls::cvControls(const dataType& data) +: + baseClassName(), + data_(data) +{} + + +Foam::cvControls::cvControls(const cvControls&) +: + baseClassName(), + data_() +{} + + +// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * // + +Foam::autoPtr<Foam::cvControls> Foam::cvControls::New() +{ + return autoPtr<cvControls>(new cvControls); +} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +Foam::cvControls::~cvControls() +{} + + +// * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * * // + + +// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // + + +// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // + + +// * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * * // + +void Foam::cvControls::operator=(const cvControls& rhs) +{ + // Check for assignment to self + if (this == &rhs) + { + FatalErrorIn("Foam::cvControls::operator=(const Foam::cvControls&)") + << "Attempted assignment to self" + << abort(FatalError); + } +} + +// * * * * * * * * * * * * * * Friend Functions * * * * * * * * * * * * * * // + + +// * * * * * * * * * * * * * * Friend Operators * * * * * * * * * * * * * * // + + +// ************************************************************************* // diff --git a/src/conformalVoronoiMesh/cvControls/cvControls.H b/src/conformalVoronoiMesh/cvControls/cvControls.H new file mode 100644 index 00000000000..2c5b5ec1aa8 --- /dev/null +++ b/src/conformalVoronoiMesh/cvControls/cvControls.H @@ -0,0 +1,144 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\/ 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 2 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, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +Class + Foam::cvControls + +Description + Controls for the conformalVoronoiMesh mesh generator + +SourceFiles + cvControls.C + +\*---------------------------------------------------------------------------*/ + +#ifndef cvControls_H +#define cvControls_H + +#include ".H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// Forward declaration of classes +class conformalVoronoiMesh; + + +/*---------------------------------------------------------------------------*\ + Class cvControls Declaration +\*---------------------------------------------------------------------------*/ + +class cvControls +: +{ + // Private data + + // Reference to the conformalVoronoiMesh holding this cvControls object + const conformalVoronoiMesh& cvMesh_; + + + // Private Member Functions + + //- Disallow default bitwise copy construct + cvControls(const cvControls&); + + //- Disallow default bitwise assignment + void operator=(const cvControls&); + + +public: + + // Static data members + + //- Static data staticData + static const dataType staticData; + + + // Constructors + + //- Construct null + cvControls(); + + //- Construct from components + cvControls(const dataType& data); + + //- Construct from Istream + cvControls(Istream&); + + //- Construct as copy + cvControls(const cvControls&); + + + // Selectors + + //- Select null constructed + static autoPtr<cvControls> New(); + + + //- Destructor + ~cvControls(); + + + // Member Functions + + // Access + + // Check + + // Edit + + // Write + + + // Member Operators + + void operator=(const cvControls&); + + + // Friend Functions + + // Friend Operators + + // IOstream Operators + + friend Istream& operator>>(Istream&, cvControls&); + friend Ostream& operator<<(Ostream&, const cvControls&); +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "cvControlsI.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/conformalVoronoiMesh/cvSearchableSurfaces/cvSearchableSurfaces.C b/src/conformalVoronoiMesh/cvSearchableSurfaces/cvSearchableSurfaces.C new file mode 100644 index 00000000000..fcd212d47bf --- /dev/null +++ b/src/conformalVoronoiMesh/cvSearchableSurfaces/cvSearchableSurfaces.C @@ -0,0 +1,102 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\/ 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 2 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, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +\*---------------------------------------------------------------------------*/ + +#include "cvSearchableSurfaces.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +const dataType Foam::cvSearchableSurfaces::staticData(); + + +// * * * * * * * * * * * * Static Member Functions * * * * * * * * * * * * * // + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::cvSearchableSurfaces::cvSearchableSurfaces() +: + baseClassName(), + data_() +{} + + +Foam::cvSearchableSurfaces::cvSearchableSurfaces(const dataType& data) +: + baseClassName(), + data_(data) +{} + + +Foam::cvSearchableSurfaces::cvSearchableSurfaces(const cvSearchableSurfaces&) +: + baseClassName(), + data_() +{} + + +// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * // + +Foam::autoPtr<Foam::cvSearchableSurfaces> Foam::cvSearchableSurfaces::New() +{ + return autoPtr<cvSearchableSurfaces>(new cvSearchableSurfaces); +} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +Foam::cvSearchableSurfaces::~cvSearchableSurfaces() +{} + + +// * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * * // + + +// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // + + +// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // + + +// * * * * * * * * * * * * * * Member Operators * * * * * * * * * * * * * * // + +void Foam::cvSearchableSurfaces::operator=(const cvSearchableSurfaces& rhs) +{ + // Check for assignment to self + if (this == &rhs) + { + FatalErrorIn("Foam::cvSearchableSurfaces::operator=(const Foam::cvSearchableSurfaces&)") + << "Attempted assignment to self" + << abort(FatalError); + } +} + +// * * * * * * * * * * * * * * Friend Functions * * * * * * * * * * * * * * // + + +// * * * * * * * * * * * * * * Friend Operators * * * * * * * * * * * * * * // + + +// ************************************************************************* // diff --git a/src/conformalVoronoiMesh/cvSearchableSurfaces/cvSearchableSurfaces.H b/src/conformalVoronoiMesh/cvSearchableSurfaces/cvSearchableSurfaces.H new file mode 100644 index 00000000000..19794727e95 --- /dev/null +++ b/src/conformalVoronoiMesh/cvSearchableSurfaces/cvSearchableSurfaces.H @@ -0,0 +1,143 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\/ 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 2 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, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +Class + Foam::cvSearchableSurfaces + +Description + The surface geometry to be meshed with a conformalVoronoiMesh, adding + inside/outside queries and surfaceFeatures + +SourceFiles + cvSearchableSurfaces.C + +\*---------------------------------------------------------------------------*/ + +#ifndef cvSearchableSurfaces_H +#define cvSearchableSurfaces_H + +#include "searchableSurfaces.H" +#include "surfaceFeatures.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +/*---------------------------------------------------------------------------*\ + Class cvSearchableSurfaces Declaration +\*---------------------------------------------------------------------------*/ + +class cvSearchableSurfaces +: + public baseClassName +{ + // Private data + + //- Description of data_ + dataType data_; + + + // Private Member Functions + + //- Disallow default bitwise copy construct + cvSearchableSurfaces(const cvSearchableSurfaces&); + + //- Disallow default bitwise assignment + void operator=(const cvSearchableSurfaces&); + + +public: + + // Static data members + + //- Static data staticData + static const dataType staticData; + + + // Constructors + + //- Construct null + cvSearchableSurfaces(); + + //- Construct from components + cvSearchableSurfaces(const dataType& data); + + //- Construct from Istream + cvSearchableSurfaces(Istream&); + + //- Construct as copy + cvSearchableSurfaces(const cvSearchableSurfaces&); + + + // Selectors + + //- Select null constructed + static autoPtr<cvSearchableSurfaces> New(); + + + //- Destructor + ~cvSearchableSurfaces(); + + + // Member Functions + + // Access + + // Check + + // Edit + + // Write + + + // Member Operators + + void operator=(const cvSearchableSurfaces&); + + + // Friend Functions + + // Friend Operators + + // IOstream Operators + + friend Istream& operator>>(Istream&, cvSearchableSurfaces&); + friend Ostream& operator<<(Ostream&, const cvSearchableSurfaces&); +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "cvSearchableSurfacesI.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // -- GitLab