![]() |
Mesh Oriented datABase
(version 5.4.1)
Array-based unstructured mesh datastructure
|
00001 //-------------------------------------------------------------------------
00002 // Filename : NCHelperHOMME.hpp
00003 //
00004 // Purpose : Climate NC file helper for HOMME grid
00005 //
00006 // Creator : Danqing Wu
00007 //-------------------------------------------------------------------------
00008
00009 #ifndef NCHELPERHOMME_HPP
00010 #define NCHELPERHOMME_HPP
00011
00012 #include "NCHelper.hpp"
00013
00014 namespace moab
00015 {
00016
00017 //! Child helper class for HOMME grid (CAM_SE)
00018 class NCHelperHOMME : public UcdNCHelper
00019 {
00020 public:
00021 NCHelperHOMME( ReadNC* readNC, int fileId, const FileOptions& opts, EntityHandle fileSet );
00022 static bool can_read_file( ReadNC* readNC, int fileId );
00023
00024 private:
00025 //! Implementation of NCHelper::init_mesh_vals()
00026 virtual ErrorCode init_mesh_vals();
00027 //! Implementation of NCHelper::check_existing_mesh()
00028 virtual ErrorCode check_existing_mesh();
00029 //! Implementation of NCHelper::create_mesh()
00030 virtual ErrorCode create_mesh( Range& faces );
00031 //! Implementation of NCHelper::get_mesh_type_name()
00032 virtual std::string get_mesh_type_name()
00033 {
00034 return "CAM_SE";
00035 }
00036
00037 //! Implementation of UcdNCHelper::read_ucd_variables_to_nonset_allocate()
00038 virtual ErrorCode read_ucd_variables_to_nonset_allocate( std::vector< ReadNC::VarData >& vdatas,
00039 std::vector< int >& tstep_nums );
00040 #ifdef MOAB_HAVE_PNETCDF
00041 //! Implementation of UcdNCHelper::read_ucd_variables_to_nonset_async()
00042 virtual ErrorCode read_ucd_variables_to_nonset_async( std::vector< ReadNC::VarData >& vdatas,
00043 std::vector< int >& tstep_nums );
00044 #else
00045 //! Implementation of UcdNCHelper::read_ucd_variables_to_nonset()
00046 virtual ErrorCode read_ucd_variables_to_nonset( std::vector< ReadNC::VarData >& vdatas,
00047 std::vector< int >& tstep_nums );
00048 #endif
00049
00050 private:
00051 int _spectralOrder; // Read from variable 'np'
00052 int connectId; // For connectivity file
00053 bool isConnFile; // Is the data file being read actually a connectivity file in disguise?
00054 };
00055
00056 } // namespace moab
00057
00058 #endif