本文整理汇总了C++中StructuralMaterial::giveStiffnessMatrix方法的典型用法代码示例。如果您正苦于以下问题:C++ StructuralMaterial::giveStiffnessMatrix方法的具体用法?C++ StructuralMaterial::giveStiffnessMatrix怎么用?C++ StructuralMaterial::giveStiffnessMatrix使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StructuralMaterial
的用法示例。
在下文中一共展示了StructuralMaterial::giveStiffnessMatrix方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: 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);
}
}
}
示例2: giveEffectiveMaterialStiffnessMatrix
void
PerfectlyPlasticMaterial :: giveEffectiveMaterialStiffnessMatrix(FloatMatrix &answer,
MatResponseMode mode,
GaussPoint *gp,
TimeStep *tStep)
//
//
// for case of perfectly plastic material
// computes full elastic constitutive matrix for case of gp stress-strain state.
// if strainIncrement == NULL a loading is assumed
//
// we follow terminology based on paper from R. de Borst:
// "Smeared Cracking, plasticity, creep - Unified Aproach"
//
// if derived material would like to implement failure behaviour
// it must redefine basic Give3dMaterialStiffnessMatrix function
// in order to take possible failure (tension cracking) into account
//
{
// FloatMatrix *de; // elastic matrix respecting fracture or failure
StructuralMaterial *lMat = static_cast< StructuralMaterial * >( this->giveLinearElasticMaterial() );
if ( lMat->hasMaterialModeCapability( gp->giveMaterialMode() ) ) {
FloatMatrix stiff;
lMat->giveStiffnessMatrix(stiff, mode, gp, tStep);
this->giveFullSymMatrixForm( answer, stiff, gp->giveMaterialMode() );
} else {
OOFEM_ERROR("giveEffectiveMaterialStiffnessMatrix - unsupported material mode");
}
}
示例3: giveCharMaterialStiffnessMatrix
void
FiberedCrossSection :: 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 {
OOFEM_ERROR("Not implemented for bulk materials.");
///@todo What about the fibers?! Rather give just an error message if the fibers aren't supported than to just silently ignore them.
#if 0
StructuralMaterial *mat = dynamic_cast< StructuralMaterial * >( gp->giveElement()->giveMaterial() );
if ( mat->hasMaterialModeCapability( gp->giveMaterialMode() ) ) {
mat->giveStiffnessMatrix(answer, rMode, gp, tStep);
} else {
OOFEM_ERROR("unsupported StressStrainMode");
}
#endif
}
}
示例4: giveFiberMaterialStiffnessMatrix
void
FiberedCrossSection :: giveFiberMaterialStiffnessMatrix(FloatMatrix &fiberMatrix,
MatResponseMode rMode, GaussPoint *layerGp,
TimeStep *tStep)
{
StructuralMaterial *mat = dynamic_cast< StructuralMaterial * >( domain->giveMaterial( fiberMaterials.at( layerGp->giveNumber() ) ) );
mat->giveStiffnessMatrix(fiberMatrix, rMode, layerGp, tStep);
}