Branch data Line data Source code
1 : : //-------------------------------------------------------------------------
2 : : // Filename : NCHelperGCRM.hpp
3 : : //
4 : : // Purpose : Climate NC file helper for GCRM grid
5 : : //
6 : : // Creator : Danqing Wu
7 : : //-------------------------------------------------------------------------
8 : :
9 : : #ifndef NCHELPERGCRM_HPP
10 : : #define NCHELPERGCRM_HPP
11 : :
12 : : #include "NCHelper.hpp"
13 : :
14 : : namespace moab
15 : : {
16 : :
17 : : //! Child helper class for GCRM grid
18 [ # # ]: 0 : class NCHelperGCRM : public UcdNCHelper
19 : : {
20 : : public:
21 : : NCHelperGCRM( ReadNC* readNC, int fileId, const FileOptions& opts, EntityHandle fileSet );
22 : : static bool can_read_file( ReadNC* readNC );
23 : :
24 : : private:
25 : : //! Implementation of NCHelper::init_mesh_vals()
26 : : virtual ErrorCode init_mesh_vals();
27 : : //! Implementation of NCHelper::check_existing_mesh()
28 : : virtual ErrorCode check_existing_mesh();
29 : : //! Implementation of NCHelper::create_mesh()
30 : : virtual ErrorCode create_mesh( Range& faces );
31 : : //! Implementation of NCHelper::get_mesh_type_name()
32 : 0 : virtual std::string get_mesh_type_name()
33 : : {
34 [ # # ]: 0 : return "GCRM";
35 : : }
36 : :
37 : : //! Implementation of UcdNCHelper::read_ucd_variables_to_nonset_allocate()
38 : : virtual ErrorCode read_ucd_variables_to_nonset_allocate( std::vector< ReadNC::VarData >& vdatas,
39 : : std::vector< int >& tstep_nums );
40 : : #ifdef MOAB_HAVE_PNETCDF
41 : : //! Implementation of UcdNCHelper::read_ucd_variables_to_nonset_async()
42 : : virtual ErrorCode read_ucd_variables_to_nonset_async( std::vector< ReadNC::VarData >& vdatas,
43 : : std::vector< int >& tstep_nums );
44 : : #else
45 : : //! Implementation of UcdNCHelper::read_ucd_variables_to_nonset()
46 : : virtual ErrorCode read_ucd_variables_to_nonset( std::vector< ReadNC::VarData >& vdatas,
47 : : std::vector< int >& tstep_nums );
48 : : #endif
49 : :
50 : : #ifdef MOAB_HAVE_MPI
51 : : //! Redistribute local cells after trivial partition (e.g. Zoltan partition, if applicable)
52 : : ErrorCode redistribute_local_cells( int start_cell_index );
53 : : #endif
54 : :
55 : : //! Create local vertices
56 : : ErrorCode create_local_vertices( const std::vector< int >& vertices_on_local_cells, EntityHandle& start_vertex );
57 : :
58 : : //! Create local edges (optional)
59 : : ErrorCode create_local_edges( EntityHandle start_vertex );
60 : :
61 : : //! Create local cells with padding (pentagons are padded to hexagons)
62 : : ErrorCode create_padded_local_cells( const std::vector< int >& vertices_on_local_cells, EntityHandle start_vertex,
63 : : Range& faces );
64 : :
65 : : //! Create gather set vertices
66 : : ErrorCode create_gather_set_vertices( EntityHandle gather_set, EntityHandle& gather_set_start_vertex );
67 : :
68 : : //! Create gather set edges (optional)
69 : : ErrorCode create_gather_set_edges( EntityHandle gather_set, EntityHandle gather_set_start_vertex );
70 : :
71 : : //! Create gather set cells with padding (pentagons are padded to hexagons)
72 : : ErrorCode create_padded_gather_set_cells( EntityHandle gather_set, EntityHandle gather_set_start_vertex );
73 : :
74 : : private:
75 : : bool createGatherSet;
76 : : Range facesOwned;
77 : : };
78 : :
79 : : } // namespace moab
80 : :
81 : : #endif
|