OpenFOAM logo
Open Source CFD Toolkit

elementMesh.H

Go to the documentation of this file.
00001 /*---------------------------------------------------------------------------*\
00002   =========                 |
00003   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
00004    \\    /   O peration     |
00005     \\  /    A nd           | Copyright (C) 1991-2005 OpenCFD Ltd.
00006      \\/     M anipulation  |
00007 -------------------------------------------------------------------------------
00008 License
00009     This file is part of OpenFOAM.
00010 
00011     OpenFOAM is free software; you can redistribute it and/or modify it
00012     under the terms of the GNU General Public License as published by the
00013     Free Software Foundation; either version 2 of the License, or (at your
00014     option) any later version.
00015 
00016     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
00017     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00018     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
00019     for more details.
00020 
00021     You should have received a copy of the GNU General Public License
00022     along with OpenFOAM; if not, write to the Free Software Foundation,
00023     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
00024 
00025 Class
00026     elementMesh
00027 
00028 Description
00029     Mesh data needed to do the Finite Element discretisation.
00030     Element-based fields.
00031 
00032     In this setup, the finite element is considered to be the complete cell
00033     and the decomposition into tets is done just as an auxiliary tool.
00034     Therefore, all element-based fields are defined "per polyhedron" rather
00035     that per-tet.  
00036 
00037 \*---------------------------------------------------------------------------*/
00038 
00039 #ifndef elementMesh_H
00040 #define elementMesh_H
00041 
00042 #include "tetPolyMesh.H"
00043 #include "tetPolyBoundaryMesh.H"
00044 
00045 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00046 
00047 namespace Foam
00048 {
00049 
00050 /*---------------------------------------------------------------------------*\
00051                            Class elementMesh Declaration
00052 \*---------------------------------------------------------------------------*/
00053 
00054 class elementMesh
00055 {
00056     // Private data
00057 
00058         //- Reference to tetPolyMesh
00059         const tetPolyMesh& mesh_;
00060 
00061 
00062 public:
00063 
00064     // Public typedefs
00065 
00066         typedef tetPolyMesh Mesh;
00067         typedef tetPolyBoundaryMesh BoundaryMesh;
00068 
00069     // Constructors
00070 
00071         //- Construct from tetPolyMesh
00072         elementMesh(const tetPolyMesh& mesh)
00073         :
00074             mesh_(mesh)
00075         {}
00076 
00077 
00078     // Member Functions
00079 
00080         //- Return size
00081         label size() const
00082         {
00083             return size(mesh_);
00084         }
00085 
00086         //- Return size
00087         static label size(const Mesh& mesh)
00088         {
00089             return mesh.nCells();
00090         }
00091 };
00092 
00093 
00094 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00095 
00096 } // End namespace Foam
00097 
00098 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00099 
00100 #endif
00101 
00102 // ************************************************************************* //
For further information go to www.openfoam.org