本文整理汇总了C++中ProcessCommunicatorBuff::packString方法的典型用法代码示例。如果您正苦于以下问题:C++ ProcessCommunicatorBuff::packString方法的具体用法?C++ ProcessCommunicatorBuff::packString怎么用?C++ ProcessCommunicatorBuff::packString使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ProcessCommunicatorBuff
的用法示例。
在下文中一共展示了ProcessCommunicatorBuff::packString方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: pcDataStream
int NonlocalMaterialWTP :: packRemoteElements(Domain *d, ProcessCommunicator &pc)
{
int myrank = d->giveEngngModel()->giveRank();
int iproc = pc.giveRank();
int nnodes, inode;
DofManager *node, *dofman;
Element *elem;
if ( iproc == myrank ) {
return 1; // skip local partition
}
// query process communicator to use
ProcessCommunicatorBuff *pcbuff = pc.giveProcessCommunicatorBuff();
ProcessCommDataStream pcDataStream(pcbuff);
// here we have to pack also nodes that are shared by packed elements !!!
// assemble set of nodes needed by those elements
// these have to be send (except those that are shared)
std :: set< int >nodesToSend;
for ( int ie: toSendList [ iproc ] ) {
//ie = d->elementGlobal2Local(gie);
elem = d->giveElement(ie);
nnodes = elem->giveNumberOfDofManagers();
for ( int i = 1; i <= nnodes; i++ ) {
node = elem->giveDofManager(i);
if ( ( node->giveParallelMode() == DofManager_local ) ||
( node->isShared() && !node->givePartitionList()->contains(iproc) ) ) {
nodesToSend.insert( node->giveGlobalNumber() );
}
}
}
// pack nodes that become null nodes on remote partition
for ( int in: nodesToSend ) {
inode = d->dofmanGlobal2Local(in);
dofman = d->giveDofManager(inode);
pcbuff->packString( dofman->giveInputRecordName() );
dofman->saveContext(& pcDataStream, CM_Definition | CM_State | CM_UnknownDictState);
}
pcbuff->packString("");
for ( int ie: toSendList [ iproc ] ) {
//ie = d->elementGlobal2Local(gie);
elem = d->giveElement(ie);
// pack local element (node numbers shuld be global ones!!!)
// pack type
pcbuff->packString( elem->giveInputRecordName() );
elem->saveContext(& pcDataStream, CM_Definition | CM_DefinitionGlobal | CM_State);
}
pcbuff->packString("");
return 1;
}