MOOSE - Multiscale Object Oriented Simulation Environment
|
#include <OneToOneMsg.h>
Public Member Functions | |
Msg * | copy (Id origSrc, Id newSrc, Id newTgt, FuncId fid, unsigned int b, unsigned int n) const |
ObjId | findOtherEnd (ObjId end) const |
Eref | firstTgt (const Eref &src) const |
Id | managerId () const |
OneToOneMsg (const Eref &e1, const Eref &e2, unsigned int msgIndex) | |
void | sources (vector< vector< Eref > > &v) const |
void | targets (vector< vector< Eref > > &v) const |
~OneToOneMsg () | |
![]() | |
Element * | e1 () const |
Element * | e2 () const |
ObjId | getAdjacent (ObjId) const |
vector< string > | getDestFieldsOnE1 () const |
vector< string > | getDestFieldsOnE2 () const |
Id | getE1 () const |
Id | getE2 () const |
vector< string > | getSrcFieldsOnE1 () const |
vector< string > | getSrcFieldsOnE2 () const |
bool | isForward (const Element *src) const |
ObjId | mid () const |
Msg (ObjId mid, Element *e1, Element *e2) | |
Constructor. More... | |
virtual | ~Msg () |
Destructor. More... | |
Static Public Member Functions | |
static const Cinfo * | initCinfo () |
Setup function for Element-style access to Msg fields. More... | |
static char * | lookupMsg (unsigned int index) |
Static function for Msg access. More... | |
static unsigned int | numMsg () |
Msg lookup functions. More... | |
![]() | |
static void | clearAllMsgs () |
static void | deleteMsg (ObjId mid) |
static const Msg * | getMsg (ObjId m) |
static const Cinfo * | initCinfo () |
static unsigned int | initMsgManagers () |
static bool | isLastTrump () |
True when MOOSE has been terminated and is being cleaned up. More... | |
static const Msg * | lastMsg () |
Private Attributes | |
DataId | i1_ |
DataId | i2_ |
Static Private Attributes | |
static Id | managerId_ |
static vector< OneToOneMsg * > | msg_ |
Friends | |
unsigned int | Msg::initMsgManagers () |
Additional Inherited Members | |
![]() | |
Element * | e1_ |
Index of this Msg on the msg_ vector. More... | |
Element * | e2_ |
Element 1 attached to Msg. More... | |
ObjId | mid_ |
![]() | |
static bool | lastTrump_ = false |
Flag to indicate termination of program. More... | |
static Id | msgManagerId_ |
Element 2 attached to Msg. More... | |
Manages a projection where each entry in source array connects to the corresponding entry (with same index) in dest array. If there is a mismatch in number of entries, the overhang is ignored. If the dest array is a FieldElement, then it uses its internal DataId i2_ to fill in the DataIndex for the dest. The OneToOne matching is assumed to be between DataIndex on e1 and FieldIndex on e2.
Definition at line 22 of file OneToOneMsg.h.
Definition at line 17 of file OneToOneMsg.cpp.
References msg_.
Referenced by copy().
OneToOneMsg::~OneToOneMsg | ( | ) |
|
virtual |
Make a copy of this Msg. The original msg was on origSrc. The new Msg should go from newSrc to newTgt, and have the function fid, on bindIndex b. The copy may have to be a higher-order Msg type to handle arrays if n > 1. Note that n is not the number of msgs, but the multiplier by which numData will be scaled.
Implements Msg.
Definition at line 128 of file OneToOneMsg.cpp.
References Element::addMsgAndFunc(), Msg::e1(), Msg::e2(), Id::element(), Id::eref(), Msg::mid(), and OneToOneMsg().
Find the other end of this Msg. In most cases this is a straightforward return of e1 or e2, plus perhaps a DataId. But in some complex msgs we need to figure out DataIds that match with the target. In many-to-one cases we just return the first entry. If no Element match, return ObjId( Id(), DataId::bad() ) If Element e matches but not DataId, return ObjId( e.id(), DataId::bad() )
Implements Msg.
Definition at line 118 of file OneToOneMsg.cpp.
References BADINDEX, ObjId::dataIndex, Msg::e1(), Msg::e2(), ObjId::element(), and Element::id().
This is a little tricky because we might be mapping between data entries and field entries here. May wish also to apply to exec operations. At this point, the effect of trying to go between regular data entries and field entries is undefined.
Implements Msg.
Definition at line 46 of file OneToOneMsg.cpp.
References Eref::dataIndex(), Msg::e1_, Msg::e2_, Eref::element(), Element::hasFields(), and i2_.
|
static |
Setup function for Element-style access to Msg fields.
Definition at line 163 of file OneToOneMsg.cpp.
References Msg::initCinfo(), and msgCinfo.
Referenced by Msg::initMsgManagers().
|
static |
Static function for Msg access.
Definition at line 153 of file OneToOneMsg.cpp.
References msg_.
Referenced by Msg::clearAllMsgs(), and Msg::initMsgManagers().
Id OneToOneMsg::managerId | ( | ) | const |
|
static |
Msg lookup functions.
Static function for Msg access.
Definition at line 147 of file OneToOneMsg.cpp.
References msg_.
Referenced by Msg::clearAllMsgs(), and Msg::initMsgManagers().
|
virtual |
Return all the sources of e2 from e1, that is, all the msgs coming into specified entries on e2 from e1.
ALLDATA used when the sources include all data entries on a source. Indexing is v[dataId in range e2.numData][src list]
Implements Msg.
Definition at line 60 of file OneToOneMsg.cpp.
References Msg::e1_, Msg::e2_, Element::hasFields(), i2_, Eref::isDataHere(), Element::localDataStart(), Element::numData(), and Element::numField().
|
virtual |
Return all the targets of e1 on e2, that is, all the msgs going from specified entries on e1 to e2. ALLDATA used when the targets include all data entries on a target. Indexing is v[dataId in range e1.numData][tgt list]
Implements Msg.
Definition at line 85 of file OneToOneMsg.cpp.
References Msg::e1_, Msg::e2_, Element::hasFields(), i2_, Eref::isDataHere(), Element::localDataStart(), Element::numData(), Element::numField(), Element::numLocalData(), and resize().
|
friend |
|
private |
Definition at line 48 of file OneToOneMsg.h.
|
private |
Definition at line 49 of file OneToOneMsg.h.
Referenced by firstTgt(), sources(), and targets().
|
staticprivate |
Definition at line 50 of file OneToOneMsg.h.
Referenced by Msg::initMsgManagers(), and managerId().
|
staticprivate |
Definition at line 51 of file OneToOneMsg.h.
Referenced by lookupMsg(), numMsg(), OneToOneMsg(), and ~OneToOneMsg().