本文整理汇总了C++中StructuralMaterial::givePlaneStressStiffMtrx方法的典型用法代码示例。如果您正苦于以下问题:C++ StructuralMaterial::givePlaneStressStiffMtrx方法的具体用法?C++ StructuralMaterial::givePlaneStressStiffMtrx怎么用?C++ StructuralMaterial::givePlaneStressStiffMtrx使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StructuralMaterial
的用法示例。
在下文中一共展示了StructuralMaterial::givePlaneStressStiffMtrx方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
void
SimpleCrossSection :: give3dShellStiffMtrx(FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep)
{
StructuralMaterial *mat = dynamic_cast< StructuralMaterial * >( this->giveMaterial(gp) );
FloatMatrix mat3d;
double thickness = this->give(CS_Thickness, gp);
double thickness3 = thickness * thickness * thickness;
mat->givePlaneStressStiffMtrx(mat3d, rMode, gp, tStep);
answer.resize(8, 8);
answer.zero();
for ( int i = 1; i <= 3; i++ ) {
for ( int j = 1; j <= 3; j++ ) {
answer.at(i, j) = mat3d.at(i, j) * thickness;
}
}
for ( int i = 1; i <= 3; i++ ) {
for ( int j = 1; j <= 3; j++ ) {
answer.at(i + 3, j + 3) = mat3d.at(i, j) * thickness3 / 12.0;
}
}
answer.at(8, 8) = answer.at(7, 7) = mat3d.at(3, 3) * thickness * ( 5. / 6. );
}
示例2: giveCharMaterialStiffnessMatrix
void
SimpleCrossSection :: giveCharMaterialStiffnessMatrix(FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep)
{
MaterialMode mode = gp->giveMaterialMode();
if ( mode == _2dBeam ) {
this->give2dBeamStiffMtrx(answer, rMode, gp, tStep);
} else if ( mode == _3dBeam ) {
this->give3dBeamStiffMtrx(answer, rMode, gp, tStep);
} else if ( mode == _2dPlate ) {
this->give2dPlateStiffMtrx(answer, rMode, gp, tStep);
} else if ( mode == _3dShell ) {
this->give3dShellStiffMtrx(answer, rMode, gp, tStep);
} else {
StructuralMaterial *mat = dynamic_cast< StructuralMaterial * >( this->giveMaterial(gp) );
if ( mode == _3dMat ) {
mat->give3dMaterialStiffnessMatrix(answer, rMode, gp, tStep);
} else if ( mode == _PlaneStress ) {
mat->givePlaneStressStiffMtrx(answer, rMode, gp, tStep);
} else if ( mode == _PlaneStrain ) {
mat->givePlaneStrainStiffMtrx(answer, rMode, gp, tStep);
} else if ( mode == _1dMat ) {
mat->give1dStressStiffMtrx(answer, rMode, gp, tStep);
} else {
mat->giveStiffnessMatrix(answer, rMode, gp, tStep);
}
}
}
示例3: giveMembraneRotStiffMtrx
void
SimpleCrossSection :: giveMembraneRotStiffMtrx(FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep)
{
StructuralMaterial *mat;
mat = dynamic_cast< StructuralMaterial * >( this->giveMaterial(gp) );
mat->givePlaneStressStiffMtrx(answer, ElasticStiffness, gp, tStep);
answer.resizeWithData(4, 4);
answer.at(4, 4) = this->give(CS_DrillingStiffness, gp);
}