escript  Revision_
VisItData.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_VISITDATA_H__
00018 #define __WEIPA_VISITDATA_H__
00019 
00020 #include <escript/AbstractDomain.h>
00021 #include <escript/Data.h>
00022 #include <weipa/EscriptDataset.h>
00023 
00024 #include <VisItInterfaceTypes_V2.h>
00025 
00026 namespace weipa {
00027 
00028 class VisItData {
00029 
00030 public:
00031     VisItData() : runFlag(false) {}
00032 
00033     void publishData(EscriptDataset_ptr ds) { dataset=ds; }
00034     void setCommandNames(std::vector<std::string> names) { cmdNames=names; }
00035     void setSimulationStatus(bool running) { runFlag=running; }
00036 
00037     visit_handle getDomainList();
00038     visit_handle getMesh(const char* name);
00039     visit_handle getSimMetaData();
00040     visit_handle getVariable(const char* name);
00041 
00042 private:
00043     void addExpressionMetadata(visit_handle smd, const std::string& name,
00044                                const std::string& def, int type);
00045     void addMeshMetadata(visit_handle smd, const std::string& name,
00046                          int dim, int numDoms);
00047     void addVariableMetadata(visit_handle smd, const std::string& name,
00048                              const std::string& meshName, int centering,
00049                              int rank);
00050 
00051     bool runFlag;
00052     EscriptDataset_ptr dataset;
00053     std::vector<std::string> cmdNames;
00054     std::map<std::string, DataVar_ptr> variables;
00055 };
00056 
00057 typedef boost::shared_ptr<VisItData> VisItData_ptr;
00058 
00059 
00060 } // namespace weipa
00061 
00062 #endif // __WEIPA_VISITDATA_H__
00063