33 : numData( nd ), policy( np ), preferredNode( node )
78 Id create(
string type,
string name,
unsigned int numData,
80 unsigned int preferredNode = 1 );
95 void setCwe(
ObjId cwe );
100 ObjId getCwe()
const;
105 bool isRunning()
const;
118 Id doCreate(
string type,
ObjId parent,
string name,
119 unsigned int numData,
121 unsigned int preferredNode = 1 );
130 bool doDelete(
ObjId oid );
138 ObjId doAddMsg(
const string& msgType,
139 ObjId src,
const string& srcField,
140 ObjId dest,
const string& destField );
153 void doStart(
double runtime,
bool notify =
false );
164 void doNonBlockingStart(
double runtime );
190 void doMove(
Id orig,
ObjId newParent );
198 Id doCopy(
Id orig,
ObjId newParent,
string newName,
199 unsigned int n,
bool toGlobal,
bool copyExtMsgs );
206 ObjId doFind(
const string&
path )
const;
215 void doUseClock(
string path,
string field,
unsigned int tick );
224 Id doLoadModel(
const string& fname,
const string& modelpath,
225 const string& solverClass =
"" );
239 void doSaveModel(
Id model,
const string& fileName,
bool qflag = 0 )
const;
247 void doSyncDataHandler(
Id tgt );
256 void doReacDiffMesh(
Id baseCompartment );
265 void doSetParserIdleFlag(
bool isParserIdle );
273 static void clearRestructuringQ();
282 void start(
double runTime );
302 void handleAck(
unsigned int ackNode,
unsigned int status );
307 bool isAckPending()
const;
315 void handleCreate(
const Eref& e,
316 string type,
ObjId parent,
Id newElm,
string name,
328 void innerCreate(
string type,
ObjId parent,
Id newElm,
string name,
329 const NodeBalance& nb,
unsigned int parentMsgIndex );
332 bool innerCopy(
const vector< ObjId >& args,
const string& newName,
333 unsigned int n,
bool toGlobal,
bool copyExtMsgs );
341 const Msg* innerAddMsg(
string msgType,
ObjId src,
string srcField,
342 ObjId dest,
string destField,
unsigned int msgIndex );
349 void handleAddMsg(
const Eref& e,
351 ObjId src,
string srcField,
352 ObjId dest,
string destField,
353 unsigned int msgIndex );
358 bool innerMove(
Id orig,
ObjId newParent );
363 void handleMove(
const Eref& e,
380 void handleCopy(
const Eref& e,
381 vector< ObjId > args,
string newName,
unsigned int n,
382 bool toGlobal,
bool copyExtMsgs );
387 bool innerUseClock(
string path,
string field,
388 unsigned int tick,
unsigned int msgIndex);
390 void handleUseClock(
const Eref& e,
391 string path,
string field,
unsigned int tick,
392 unsigned int msgIndex );
398 void addClockMsgs(
const vector< ObjId >& list,
399 const string& field,
unsigned int tick,
unsigned int msgIndex );
405 static void dropClockMsgs(
406 const vector< ObjId >& list,
const string& field );
416 static void setHardware(
420 static unsigned int myNode();
423 static unsigned int numProcessThreads();
429 static void loadBalance();
431 static void launchParser();
437 static bool inBlockingParserCall();
448 static bool isSingleThreaded();
453 static bool keepLooping();
459 static bool isParserIdle();
466 static void launchThreads();
471 static unsigned int reduceInt(
unsigned int val );
477 void doSetClock(
unsigned int tickNum,
double dt );
481 void warning(
const string& text );
482 void error(
const string& text );
484 static const Cinfo* initCinfo();
489 static bool adopt(
ObjId parent,
Id child,
unsigned int msgIndex );
490 static bool adopt(
Id parent,
Id child,
unsigned int msgIndex );
496 void setShellElement(
Element* shelle );
501 const ProcInfo* getProcInfo(
unsigned int index )
const;
509 static bool chopString(
const string& path, vector< string >& ret,
510 char separator =
'/' );
516 static bool isNameValid(
const string& name );
532 static bool chopPath(
const string& path, vector< string >& ret,
533 vector< unsigned int >& index );
543 static void cleanSimulation();
548 void expectVector(
bool flag );
static unsigned int numCores
static unsigned int myNode_
static bool isParserIdle_
static unsigned int numAcks_
static const unsigned int OkStatus
ObjId cwe_
Current working Element.
static vector< ProcInfo > threadProcs_
static unsigned int numNodes_
static unsigned int numProcessThreads_
static bool isBlockedOnParser_
vector< double * > getBuf_
static unsigned int myNode
static unsigned int numCores_
NodeBalance(unsigned int nd, NodePolicy np, unsigned int node)
static unsigned int numNodes
unsigned int numGetVecReturns_
static const unsigned int ErrorStatus
static vector< unsigned int > acked_
unsigned int preferredNode