Mesh Oriented datABase  (version 5.5.1)
An array-based unstructured mesh library
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
68 };
69 
70 } // namespace moab
71 
72 #endif