18#ifndef escript_SubWorld_H
19#define escript_SubWorld_H
52 unsigned int subworldcount,
unsigned int local_id,
61 void addJob(boost::python::object j);
62 char runJobs(std::string& errmsg);
66 void removeVariable(std::string& name);
67 void clearVariable(std::string& name);
68 std::list<std::pair<std::string, bool> > getVarList();
69 std::list<std::pair<std::string, std::string> > getVarInfo();
72 bool localTransport(std::string& errmsg);
73 bool checkRemoteCompatibility(std::string& errmsg);
76 bool deliverImports(std::string& errmsg);
80 boost::python::object getLocalObjectVariable(
const std::string& name);
86 bool synchVariableInfo(std::string& err);
87 bool synchVariableValues(std::string& err);
90 void copyVariable(
const std::string& src,
const std::string& dest);
102 std::vector<boost::python::object>
jobvec;
109 typedef std::map<std::string, unsigned char>
str2char;
116 std::vector<unsigned char> globalvarinfo;
118 typedef std::map<unsigned char, int> countmap;
119 typedef std::map<std::string, countmap> str2countmap;
120 str2countmap globalvarcounts;
121 bool globalinfoinvalid;
124 bool makeComm(
MPI_Comm& sourcecom,
JMPI& sub,std::vector<int>& members);
129 bool makeGroupComm1(
MPI_Comm& srccom,
int vnum,
char mystate,
JMPI& com);
132 bool makeGroupReduceGroups(
MPI_Comm& srccom,
int vnum,
char mystate,
JMPI& red,
JMPI& cop,
bool& incopy);
137 bool makeGroupComm2(
MPI_Comm& srccom,
int vnum,
char mystate,
JMPI& com,
bool& ingroup);
142 void setMyVarState(
const std::string& vname,
char state);
143 void setVarState(
const std::string& vname,
char state,
int swid);
144 void setAllVarsState(
const std::string& name,
char state);
int MPI_Comm
Definition: EsysMPI.h:44
#define REFCOUNT_BASE_CLASS(x)
Definition: Pointers.h:31
Definition: SubWorld.h:49
str2char varstate
Definition: SubWorld.h:111
JMPI swmpi
Definition: SubWorld.h:96
std::vector< boost::python::object > jobvec
Definition: SubWorld.h:102
bool manualimports
Definition: SubWorld.h:113
escript::Domain_ptr domain
Definition: SubWorld.h:101
str2reduce reducemap
Definition: SubWorld.h:110
JMPI corrmpi
Definition: SubWorld.h:97
std::map< std::string, Reducer_ptr > str2reduce
Definition: SubWorld.h:108
unsigned int swcount
Definition: SubWorld.h:105
std::map< std::string, unsigned char > str2char
Definition: SubWorld.h:109
unsigned int localid
Definition: SubWorld.h:106
JMPI everyone
Definition: SubWorld.h:95
#define ESCRIPT_DLL_API
Definition: escriptcore/src/system_dep.h:30
double real_t
type of all real-valued scalars in escript
Definition: DataTypes.h:52
Definition: AbstractContinuousDomain.cpp:23
boost::shared_ptr< SubWorld > SubWorld_ptr
Definition: SubWorld.h:147
boost::shared_ptr< AbstractReducer > Reducer_ptr
Definition: AbstractReducer.h:119
boost::shared_ptr< AbstractDomain > Domain_ptr
Definition: AbstractDomain.h:43
boost::shared_ptr< JMPI_ > JMPI
Definition: EsysMPI.h:76