From bd3a0d39b5410c7881d2648ee79732b4804095de Mon Sep 17 00:00:00 2001 From: graham Date: Fri, 21 Jan 2011 14:00:39 +0000 Subject: [PATCH] ENH: Adding triSurfacePointFields for vertex data. --- .../triSurfaceFields/triSurfaceFields.C | 24 ++++- .../triSurfaceFields/triSurfaceFields.H | 3 +- .../triSurfaceFields/triSurfaceFieldsFwd.H | 17 +++- .../triSurfaceFields/triSurfaceGeoMesh.H | 2 +- .../triSurfaceFields/triSurfacePointGeoMesh.H | 87 +++++++++++++++++++ 5 files changed, 129 insertions(+), 4 deletions(-) create mode 100644 src/triSurface/triSurfaceFields/triSurfacePointGeoMesh.H diff --git a/src/triSurface/triSurfaceFields/triSurfaceFields.C b/src/triSurface/triSurfaceFields/triSurfaceFields.C index 71ad3d24bd..d4d7bcff1e 100644 --- a/src/triSurface/triSurfaceFields/triSurfaceFields.C +++ b/src/triSurface/triSurfaceFields/triSurfaceFields.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -52,6 +52,28 @@ const word triSurfaceSymmTensorField::typeName template<> const word triSurfaceTensorField::typeName("triSurfaceTensorField"); + +template<> +const word triSurfacePointLabelField::typeName("triSurfacePointLabelField"); + +template<> +const word triSurfacePointScalarField::typeName("triSurfacePointScalarField"); + +template<> +const word triSurfacePointVectorField::typeName("triSurfacePointVectorField"); + +template<> +const word triSurfacePointSphericalTensorField::typeName +("triSurfacePointSphericalTensorField"); + +template<> +const word triSurfacePointSymmTensorField::typeName +("triSurfacePointSymmTensorField"); + +template<> +const word triSurfacePointTensorField::typeName("triSurfacePointTensorField"); + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace Foam diff --git a/src/triSurface/triSurfaceFields/triSurfaceFields.H b/src/triSurface/triSurfaceFields/triSurfaceFields.H index f08337b195..91187c08c3 100644 --- a/src/triSurface/triSurfaceFields/triSurfaceFields.H +++ b/src/triSurface/triSurfaceFields/triSurfaceFields.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -37,6 +37,7 @@ SourceFiles #include "DimensionedField.H" #include "triSurfaceGeoMesh.H" +#include "triSurfacePointGeoMesh.H" #include "triSurfaceFieldsFwd.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/triSurface/triSurfaceFields/triSurfaceFieldsFwd.H b/src/triSurface/triSurfaceFields/triSurfaceFieldsFwd.H index 76ebd1d52d..faa126a1c9 100644 --- a/src/triSurface/triSurfaceFields/triSurfaceFieldsFwd.H +++ b/src/triSurface/triSurfaceFields/triSurfaceFieldsFwd.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -54,6 +54,21 @@ typedef Foam::DimensionedField typedef Foam::DimensionedField triSurfaceTensorField; +class triSurfacePointGeoMesh; + +typedef Foam::DimensionedField + triSurfacePointLabelField; +typedef Foam::DimensionedField + triSurfacePointScalarField; +typedef Foam::DimensionedField + triSurfacePointVectorField; +typedef Foam::DimensionedField + triSurfacePointSphericalTensorField; +typedef Foam::DimensionedField + triSurfacePointSymmTensorField; +typedef Foam::DimensionedField + triSurfacePointTensorField; + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace Foam diff --git a/src/triSurface/triSurfaceFields/triSurfaceGeoMesh.H b/src/triSurface/triSurfaceFields/triSurfaceGeoMesh.H index d7455ae532..ee0b09b3b9 100644 --- a/src/triSurface/triSurfaceFields/triSurfaceGeoMesh.H +++ b/src/triSurface/triSurfaceFields/triSurfaceGeoMesh.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/src/triSurface/triSurfaceFields/triSurfacePointGeoMesh.H b/src/triSurface/triSurfaceFields/triSurfacePointGeoMesh.H new file mode 100644 index 0000000000..f95585abd5 --- /dev/null +++ b/src/triSurface/triSurfaceFields/triSurfacePointGeoMesh.H @@ -0,0 +1,87 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2011-2011 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 3 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, see . + +Class + Foam::triSurfaceGeoMesh + +Description + The triSurface point GeoMesh (for holding vertex fields). + + Similar to the volMesh used for the Finite Volume discretization. + +\*---------------------------------------------------------------------------*/ + +#ifndef triSurfacePointGeoMesh_H +#define triSurfacePointGeoMesh_H + +#include "GeoMesh.H" +#include "triSurface.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +class triSurfacePointGeoMesh +: + public GeoMesh +{ + +public: + + // Constructors + + //- Construct from triSurface reference + explicit triSurfacePointGeoMesh(const triSurface& mesh) + : + GeoMesh(mesh) + {} + + + // Member Functions + + //- Return size + static label size(const triSurface& mesh) + { + return mesh.points().size(); + } + + //- Return size + label size() const + { + return size(mesh_); + } + +}; + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* //