ESYS13
Revision_
|
00001 00002 /******************************************************* 00003 * 00004 * Copyright (c) 2003-2012 by University of Queensland 00005 * Earth Systems Science Computational Center (ESSCC) 00006 * http://www.uq.edu.au/esscc 00007 * 00008 * Primary Business: Queensland, Australia 00009 * Licensed under the Open Software License version 3.0 00010 * http://www.opensource.org/licenses/osl-3.0.php 00011 * 00012 *******************************************************/ 00013 00014 #ifndef __WEIPA_H__ 00015 #define __WEIPA_H__ 00016 00017 #include <string> 00018 #include <vector> 00019 #include <map> 00020 #include <boost/shared_ptr.hpp> 00021 00022 #ifdef ESYS_MPI 00023 #define HAVE_MPI 1 00024 #endif 00025 00026 #if HAVE_MPI 00027 #include <mpi.h> 00028 #endif 00029 00030 #define WEIPA_DLL_API 00031 00032 #ifdef _WIN32 00033 # ifndef WEIPA_STATIC_LIB 00034 # undef WEIPA_DLL_API 00035 # ifdef WEIPA_EXPORTS 00036 # define WEIPA_DLL_API __declspec(dllexport) 00037 # else 00038 # define WEIPA_DLL_API __declspec(dllimport) 00039 # endif 00040 # endif 00041 #endif 00042 00043 namespace weipa { 00044 00045 class DataVar; 00046 class DomainChunk; 00047 class ElementData; 00048 class EscriptDataset; 00049 class NodeData; 00050 00051 typedef std::vector<float> FloatVec; 00052 typedef std::vector<int> IntVec; 00053 typedef std::vector<std::string> StringVec; 00054 typedef std::vector<float*> CoordArray; 00055 typedef std::map<int, size_t> IndexMap; 00056 00057 typedef boost::shared_ptr<DataVar> DataVar_ptr; 00058 typedef boost::shared_ptr<DomainChunk> DomainChunk_ptr; 00059 typedef boost::shared_ptr<ElementData> ElementData_ptr; 00060 typedef boost::shared_ptr<EscriptDataset> EscriptDataset_ptr; 00061 typedef boost::shared_ptr<NodeData> NodeData_ptr; 00062 00063 typedef boost::shared_ptr<const DomainChunk> const_DomainChunk_ptr; 00064 typedef boost::shared_ptr<const EscriptDataset> const_EscriptDataset_ptr; 00065 00066 } // namespace weipa 00067 00068 #endif // __WEIPA_H__ 00069