MOAB: Mesh Oriented datABase
(version 5.4.1)
|
00001 /* ***************************************************************** 00002 MESQUITE -- The Mesh Quality Improvement Toolkit 00003 00004 Copyright 2007 Sandia National Laboratories. Developed at the 00005 University of Wisconsin--Madison under SNL contract number 00006 624796. The U.S. Government and the University of Wisconsin 00007 retain certain rights to this software. 00008 00009 This library is free software; you can redistribute it and/or 00010 modify it under the terms of the GNU Lesser General Public 00011 License as published by the Free Software Foundation; either 00012 version 2.1 of the License, or (at your option) any later version. 00013 00014 This library is distributed in the hope that it will be useful, 00015 but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00017 Lesser General Public License for more details. 00018 00019 You should have received a copy of the GNU Lesser General Public License 00020 (lgpl.txt) along with this library; if not, write to the Free Software 00021 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00022 00023 (2009) [email protected] [email protected] 00024 00025 ***************************************************************** */ 00026 00027 /** \file MsqIMeshP.hpp 00028 * \brief Adaptor for ITAPS iMesh interface 00029 * \author Jason Kraftcheck 00030 * \author Martin Isenburg 00031 */ 00032 00033 #ifndef MSQ_I_MESH_P_HPP 00034 #define MSQ_I_MESH_P_HPP 00035 00036 #include "iMeshP.h" 00037 #include "MsqIMesh.hpp" 00038 #include "ParallelMeshInterface.hpp" 00039 00040 namespace MBMesquite 00041 { 00042 00043 /**\class MsqIMeshP 00044 *\brief Mesquite iMesh Adapter 00045 * 00046 * Adpater for interfacing parallel Mesquite with an application 00047 * that provides the ITAPS iMeshP interface for interacting with 00048 * mesh data. 00049 */ 00050 class MsqIMeshP : public MsqIMesh, virtual public ParallelMesh 00051 { 00052 public: 00053 //********* Functions that are NOT inherited ************ 00054 00055 MsqIMeshP(); 00056 virtual ~MsqIMeshP(); 00057 00058 MsqIMeshP( iMesh_Instance imesh, 00059 iMeshP_PartitionHandle partition, 00060 iBase_EntitySetHandle meshset, 00061 iBase_EntityType element_dimension, 00062 MsqError& err, 00063 const iBase_TagHandle* fixed_tag = 0, 00064 const iBase_TagHandle* slaved_tag = 0 ); 00065 00066 MsqIMeshP( iMesh_Instance imesh, 00067 iMeshP_PartitionHandle partition, 00068 iBase_EntityType element_dimension, 00069 MsqError& err, 00070 const iBase_TagHandle* fixed_tag = 0, 00071 const iBase_TagHandle* slaved_tag = 0 ); 00072 00073 //********** Inherited Functions from ParallelMesh **************** 00074 00075 /*! Get global ids for given vertices. 00076 */ 00077 virtual void vertices_get_global_id( const VertexHandle vert_array[], size_t gid[], size_t num_vtx, MsqError& err ); 00078 00079 /*! Get processor ids for given vertices. 00080 */ 00081 virtual void vertices_get_processor_id( const VertexHandle vert_array[], int pid[], size_t num_vtx, MsqError& err ); 00082 00083 protected: 00084 iMeshP_PartitionHandle partitionInstance; 00085 }; 00086 00087 } // namespace MBMesquite 00088 00089 #endif