本文整理汇总了C++中StructuralMaterial::computeStressIndependentStrainVector方法的典型用法代码示例。如果您正苦于以下问题:C++ StructuralMaterial::computeStressIndependentStrainVector方法的具体用法?C++ StructuralMaterial::computeStressIndependentStrainVector怎么用?C++ StructuralMaterial::computeStressIndependentStrainVector使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StructuralMaterial
的用法示例。
在下文中一共展示了StructuralMaterial::computeStressIndependentStrainVector方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: computeStressIndependentStrainVector
void
StructuralCrossSection :: computeStressIndependentStrainVector(FloatArray &answer,
GaussPoint *gp, TimeStep *stepN, ValueModeType mode)
//
// returns initial strain vector induced by stress independent effects
// like temperatue or shrinkage.
// takes into account form of load vector assumed by engngModel (Incremental or Total Load form).
//
{
StructuralMaterial *mat = ( StructuralMaterial * ) gp->giveElement()->giveMaterial();
FloatArray e0, fullAnswer;
//
// add parts caused by material
//
mat->computeStressIndependentStrainVector(answer, gp, stepN, mode);
}
示例2: computeStressIndependentStrainVector
void
SimpleCrossSection :: computeStressIndependentStrainVector(FloatArray &answer,
GaussPoint *gp, TimeStep *stepN, ValueModeType mode)
//
// returns initial strain vector induced by stress independent effects
// like temperatue or shrinkage.
// takes into account form of load vector assumed by engngModel (Incremental or Total Load form).
//
{
StructuralMaterial *mat = ( StructuralMaterial * ) gp->giveElement()->giveMaterial();
///@todo Deprecated or not? If so, remove it! / Mikael
#if 0
MaterialMode matmode = gp-> giveMaterialMode ();
FloatArray et, e0, fullAnswer;
double thick, width;
if ((matmode == _2dBeam) || (matmode == _3dBeam) || (matmode == _3dShell) || (matmode == _2dPlate)) {
StructuralElement *elem = (StructuralElement*)gp->giveElement();
elem -> computeResultingIPTemperatureAt (et, stepN, gp, mode);
FloatArray redAnswer;
if (et.giveSize() == 0) {answer.resize(0); return ;}
if (et.giveSize() < 1) {
_error ("computeStressIndependentStrainVector - Bad format of TemperatureLoad");
exit (1);
}
mat->giveThermalDilatationVector (e0, gp,stepN);
if (matmode == _2dBeam) {
answer.resize (3);
answer.zero();
answer.at(1) = e0.at(1) * (et.at(1)- mat->giveReferenceTemperature());
if (et.giveSize() > 1) {
thick = this->give(THICKNESS);
answer.at(2) = e0.at(1) * et.at(2)/ thick; // kappa_x
}
} else if (matmode == _3dBeam) {
answer.resize (6);
answer.zero();
answer.at(1) = e0.at(1) * (et.at(1)- mat->giveReferenceTemperature());
if (et.giveSize() > 1) {
thick = this->give(THICKNESS);
width = this->give(WIDTH);
answer.at(5) = e0.at(1) * et.at(2)/ thick; // kappa_y
if (et.giveSize() > 2)
answer.at(6) = e0.at(1) * et.at(3)/ width; // kappa_z
}
} else if (matmode == _2dPlate) {
if (et.giveSize() > 1) {
answer.resize (5);
answer.zero();
thick = this->give(THICKNESS);
if (et.giveSize() > 1) {
answer.at(1) = e0.at(1) * et.at(2)/ thick; // kappa_x
answer.at(2) = e0.at(2) * et.at(2)/ thick; // kappa_y
}
}
} else if (matmode == _3dShell) {
answer.resize (8);
answer.zero();
answer.at(1) = e0.at(1) * (et.at(1)- mat->giveReferenceTemperature());
answer.at(2) = e0.at(2) * (et.at(1)- mat->giveReferenceTemperature());
if (et.giveSize() > 1) {
thick = this->give(THICKNESS);
answer.at(4) = e0.at(1) * et.at(2)/ thick; // kappa_x
answer.at(5) = e0.at(2) * et.at(2)/ thick; // kappa_y
}
} else _error ("Unsupported material mode");
} else {
mat->computeStressIndependentStrainVector (answer, gp, stepN, mode);
}
#endif
mat->computeStressIndependentStrainVector(answer, gp, stepN, mode);
}