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