本文整理汇总了C++中FEM_ObjectBroker::getNewFrictionModel方法的典型用法代码示例。如果您正苦于以下问题:C++ FEM_ObjectBroker::getNewFrictionModel方法的具体用法?C++ FEM_ObjectBroker::getNewFrictionModel怎么用?C++ FEM_ObjectBroker::getNewFrictionModel使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FEM_ObjectBroker
的用法示例。
在下文中一共展示了FEM_ObjectBroker::getNewFrictionModel方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: data
int SingleFPSimple2d::recvSelf(int commitTag, Channel &rChannel,
FEM_ObjectBroker &theBroker)
{
// delete material memory
for (int i=0; i<2; i++)
if (theMaterials[i] != 0)
delete theMaterials[i];
// receive element parameters
static Vector data(11);
rChannel.recvVector(0, commitTag, data);
this->setTag((int)data(0));
R = data(1);
h = data(2);
uy = data(3);
shearDistI = data(4);
addRayleigh = (int)data(5);
mass = data(6);
maxIter = (int)data(7);
tol = data(8);
// receive the two end nodes
rChannel.recvID(0, commitTag, connectedExternalNodes);
// receive the friction model class tag
ID frnClassTag(1);
rChannel.recvID(0, commitTag, frnClassTag);
// receive the friction model
theFrnMdl = theBroker.getNewFrictionModel(frnClassTag(0));
if (theFrnMdl == 0) {
opserr << "SingleFPSimple2d::recvSelf() - "
<< "failed to get blank friction model.\n";
return -1;
}
theFrnMdl->recvSelf(commitTag, rChannel, theBroker);
// receive the material class tags
ID matClassTags(2);
rChannel.recvID(0, commitTag, matClassTags);
// receive the material models
for (int i=0; i<2; i++) {
theMaterials[i] = theBroker.getNewUniaxialMaterial(matClassTags(i));
if (theMaterials[i] == 0) {
opserr << "SingleFPSimple2d::recvSelf() - "
<< "failed to get blank uniaxial material.\n";
return -2;
}
theMaterials[i]->recvSelf(commitTag, rChannel, theBroker);
}
// receive remaining data
if ((int)data(9) == 3) {
x.resize(3);
rChannel.recvVector(0, commitTag, x);
}
if ((int)data(10) == 3) {
y.resize(3);
rChannel.recvVector(0, commitTag, y);
}
// initialize initial stiffness matrix
kbInit.Zero();
kbInit(0,0) = theMaterials[0]->getInitialTangent();
kbInit(1,1) = kbInit(0,0)*DBL_EPSILON;
kbInit(2,2) = theMaterials[1]->getInitialTangent();
// initialize other variables
this->revertToStart();
return 0;
}