Loading [MathJax]/extensions/tex2jax.js
Mesh Oriented datABase  (version 5.5.1)
An array-based unstructured mesh library
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
WriteGmsh.hpp
Go to the documentation of this file.
1 /** 2  * MOAB, a Mesh-Oriented datABase, is a software component for creating, 3  * storing and accessing finite element mesh data. 4  * 5  * Copyright 2004 Sandia Corporation. Under the terms of Contract 6  * DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government 7  * retains certain rights in this software. 8  * 9  * This library is free software; you can redistribute it and/or 10  * modify it under the terms of the GNU Lesser General Public 11  * License as published by the Free Software Foundation; either 12  * version 2.1 of the License, or (at your option) any later version. 13  * 14  */ 15  16 #ifndef WRITE_GMSH_HPP 17 #define WRITE_GMSH_HPP 18  19 #include "moab/Forward.hpp" 20 #include "moab/WriterIface.hpp" 21 #include <cstdio> 22  23 namespace moab 24 { 25  26 class WriteUtilIface; 27  28 /** 29  * \brief Export Gmsh files. 30  * \author Jason Kraftcheck 31  * 32  * Known limitations: 33  * - Tag data and most sets cannot be saved. 34  * - For blocks, geometry sets, and parallel partitions, the 35  * sets are saved but the IDs may be lost. 36  * - File format does not support general polygons or polyhedra. 37  * - File format does not support higher-order volume elements 38  * other than TET10 and HEX27. 39  */ 40 class WriteGmsh : public WriterIface 41 { 42  43  public: 44  //! factory method 45  static WriterIface* factory( Interface* ); 46  47  //! Constructor 48  WriteGmsh( Interface* impl ); 49  50  //! Destructor 51  virtual ~WriteGmsh(); 52  53  //! writes out a file 54  ErrorCode write_file( const char* file_name, 55  const bool overwrite, 56  const FileOptions& opts, 57  const EntityHandle* output_list, 58  const int num_sets, 59  const std::vector< std::string >& qa_list, 60  const Tag* tag_list = NULL, 61  int num_tags = 0, 62  int export_dimension = 3 ); 63  64  private: 65  //! interface instance 66  Interface* mbImpl; 67  WriteUtilIface* mWriteIface; 68 }; 69  70 } // namespace moab 71  72 #endif