当前位置: 首页>>代码示例>>C++>>正文


C++ StructuralMaterial::hasMaterialModeCapability方法代码示例

本文整理汇总了C++中StructuralMaterial::hasMaterialModeCapability方法的典型用法代码示例。如果您正苦于以下问题:C++ StructuralMaterial::hasMaterialModeCapability方法的具体用法?C++ StructuralMaterial::hasMaterialModeCapability怎么用?C++ StructuralMaterial::hasMaterialModeCapability使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在StructuralMaterial的用法示例。


在下文中一共展示了StructuralMaterial::hasMaterialModeCapability方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: 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");
    }
}
开发者ID:aishugang,项目名称:oofem,代码行数:30,代码来源:perfectlyplasticmaterial.C

示例2: 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
    }
}
开发者ID:Benjamin-git,项目名称:OOFEM_Jim,代码行数:28,代码来源:fiberedcs.C

示例3: giveRealStresses

void
StructuralCrossSection :: giveRealStresses(FloatArray &answer, GaussPoint *gp, const FloatArray &strain, TimeStep *tStep)
{
    MaterialMode mode = gp->giveMaterialMode();
    if ( mode == _2dBeam ) {
        this->giveGeneralizedStress_Beam2d(answer, gp, strain, tStep);
    } else if ( mode == _3dBeam ) {
        this->giveGeneralizedStress_Beam3d(answer, gp, strain, tStep);
    } else if ( mode == _2dPlate ) {
        this->giveGeneralizedStress_Plate(answer, gp, strain, tStep);
    } else if ( mode == _3dShell ) {
        this->giveGeneralizedStress_Shell(answer, gp, strain, tStep);
    } else if ( mode == _3dMat ) {
        this->giveRealStress_3d(answer, gp, strain, tStep);
    } else if ( mode == _PlaneStrain ) {
        this->giveRealStress_PlaneStrain(answer, gp, strain, tStep);
    } else if ( mode == _PlaneStress ) {
        this->giveRealStress_PlaneStress(answer, gp, strain, tStep);
    } else if ( mode == _1dMat ) {
        this->giveRealStress_1d(answer, gp, strain, tStep);
    } else if ( mode == _Warping ) {
        this->giveRealStress_Warping(answer, gp, strain, tStep);
    } else {
        // This should never happen ?
        ///@todo this part only works for simple cross section and will be removed soon when new interface elements are done /JB
        StructuralMaterial *mat = dynamic_cast< StructuralMaterial * >( this->giveMaterial(gp) );
        if ( mat->hasMaterialModeCapability( gp->giveMaterialMode() ) ) {
            mat->giveRealStressVector(answer, gp, strain, tStep);
        } else {
            OOFEM_ERROR("unsupported mode");
        }
    }
}
开发者ID:aishugang,项目名称:oofem,代码行数:33,代码来源:structuralcrosssection.C

示例4: giveRealStresses

void
SimpleCrossSection :: giveRealStresses(FloatArray &answer, MatResponseForm form, GaussPoint *gp,
                                       const FloatArray &totalStrain, TimeStep *tStep)
//
// this function returns a real stresses corresponding to
// given totalStrain according to stressStrain mode stored
// in each gp.
// IMPORTANT:
//
{
    MaterialMode mode = gp->giveMaterialMode();
    StructuralMaterial *mat = static_cast< StructuralMaterial * >( gp->giveElement()->giveMaterial() );

    if ( mat->hasMaterialModeCapability(mode) ) {
        StructuralCrossSection :: giveRealStresses(answer, form, gp, totalStrain, tStep);
        return;
    } else {
        _error("giveRealStresses : unsupported mode");
    }
}
开发者ID:JimBrouzoulis,项目名称:oofem-1,代码行数:20,代码来源:simplecrosssection.C


注:本文中的StructuralMaterial::hasMaterialModeCapability方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。