abaqus_io.h
Go to the documentation of this file.
1 // The libMesh Finite Element Library.
2 // Copyright (C) 2002-2014 Benjamin S. Kirk, John W. Peterson, Roy H. Stogner
3 
4 // This library is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU Lesser General Public
6 // License as published by the Free Software Foundation; either
7 // version 2.1 of the License, or (at your option) any later version.
8 
9 // This library is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 // Lesser General Public License for more details.
13 
14 // You should have received a copy of the GNU Lesser General Public
15 // License along with this library; if not, write to the Free Software
16 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 
18 
19 #ifndef LIBMESH_ABAQUS_IO_H
20 #define LIBMESH_ABAQUS_IO_H
21 
22 // Local includes
23 #include "libmesh/libmesh_common.h"
24 #include "libmesh/mesh_input.h"
25 
26 // C++ includes
27 #include <fstream>
28 #include <set>
29 
30 namespace libMesh
31 {
38  class AbaqusIO : public MeshInput<MeshBase>
39  {
40  public:
44  explicit
46 
50  virtual ~AbaqusIO ();
51 
55  virtual void read (const std::string& name);
56 
63 
64  private:
68  typedef std::map<std::string, std::vector<dof_id_type> > container_t;
69 
75  typedef std::map<std::string, std::vector<std::pair<dof_id_type, unsigned> > > sideset_container_t;
76 
81  void read_nodes();
82 
90  void read_elements(std::string upper);
91 
99  std::string parse_label(std::string line, std::string label_name);
100 
106  void read_ids(std::string set_name, container_t& container);
107 
129  void assign_subdomain_ids();
130 
136  void read_sideset(std::string sideset_name, sideset_container_t& container);
137 
145 
150  void assign_sideset_ids();
151 
159 
168 
172  std::ifstream _in;
173 
178  std::set<ElemType> _elem_types;
179 
184  // std::map<dof_id_type, dof_id_type> _libmesh_to_abaqus_elem_mapping;
185  std::map<dof_id_type, dof_id_type> _abaqus_to_libmesh_elem_mapping;
186 
194  std::map<dof_id_type, dof_id_type> _abaqus_to_libmesh_node_mapping;
195 
203  };
204 
205 } // namespace
206 
207 #endif // LIBMESH_ABAQUS_IO_H

Site Created By: libMesh Developers
Last modified: February 07 2014 16:57:04 UTC

Hosted By:
SourceForge.net Logo