Branch data Line data Source code
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 MB_READ_UTIL_HPP
17 : : #define MB_READ_UTIL_HPP
18 : :
19 : : #ifndef IS_BUILDING_MB
20 : : #error "ReadUtil.hpp isn't supposed to be included into an application"
21 : : #endif
22 : :
23 : : #include "moab/ReadUtilIface.hpp"
24 : :
25 : : namespace moab
26 : : {
27 : :
28 : : class Core;
29 : : class Error;
30 : :
31 : : class ReadUtil : public ReadUtilIface
32 : : {
33 : : private:
34 : : //! Pointer to the Core
35 : : Core* mMB;
36 : :
37 : : public:
38 : : //! Constructor takes Core pointer
39 : : ReadUtil( Core* mdb, Error* error_handler );
40 : :
41 : : //! Destructor
42 [ - + ]: 668 : ~ReadUtil() {}
43 : :
44 : : //! Get arrays for coordinate data from the MB
45 : : ErrorCode get_node_coords( const int num_arrays, const int num_nodes, const int preferred_start_id,
46 : : EntityHandle& actual_start_handle, std::vector< double* >& arrays,
47 : : int sequence_size = -1 );
48 : :
49 : : //! Get array for connectivity data from the MB
50 : : ErrorCode get_element_connect( const int num_elements, const int verts_per_element, const EntityType mdb_type,
51 : : const int preferred_start_id, EntityHandle& actual_start_handle,
52 : : EntityHandle*& array, int sequence_size = -1 );
53 : :
54 : : /**
55 : : *\brief Gather entities related to those in the partition
56 : : * Gather entities related to those in the input partition. Related
57 : : * means down-adjacent to, contained in, etc.
58 : : * \param partition Entities for which to gather related entities
59 : : * \param related_ents Related entities
60 : : * \param all_sets If non-NULL, all sets in mesh instance are returned
61 : : * in the pointed-to range
62 : : */
63 : : ErrorCode gather_related_ents( Range& partition, Range& related_ents, EntityHandle* file_set = NULL );
64 : :
65 : : ErrorCode create_entity_sets( EntityID num_sets, const unsigned* set_flags, EntityID preffered_start_id,
66 : : EntityHandle& actual_start_handle );
67 : :
68 : : //! Tell MB which elements have been added to the database
69 : : ErrorCode update_adjacencies( const EntityHandle start_handle, const int number_elements,
70 : : const int number_vertices_per_element, const EntityHandle* conn_array );
71 : :
72 : : //! Given an ordered list of bounding entities and the sense of
73 : : //! those entities, return an ordered list of vertices
74 : : ErrorCode get_ordered_vertices( EntityHandle* bound_ents, int* sense, int num_bound, int dim,
75 : : EntityHandle* bound_verts, EntityType& etype );
76 : :
77 : : ErrorCode assign_ids( Tag id_tag, const Range& ents, int start = 0 );
78 : :
79 : : ErrorCode assign_ids( Tag id_tag, const EntityHandle* ents, size_t num_ents, int start = 0 );
80 : :
81 : : //! Create a new gather set with tag GATHER_SET
82 : : ErrorCode create_gather_set( EntityHandle& gather_set );
83 : :
84 : : //! Get entity handle of an existing gather set
85 : : ErrorCode get_gather_set( EntityHandle& gather_set );
86 : : };
87 : :
88 : : } // namespace moab
89 : :
90 : : #endif
|