int MisesMat :: giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) { MisesMatStatus *status = static_cast< MisesMatStatus * >( this->giveStatus(gp) ); if ( type == IST_PlasticStrainTensor ) { answer = status->givePlasDef(); return 1; } else if ( type == IST_MaxEquivalentStrainLevel ) { answer.resize(1); answer.at(1) = status->giveCumulativePlasticStrain(); return 1; } else if ( ( type == IST_DamageScalar ) || ( type == IST_DamageTensor ) ) { answer.resize(1); answer.at(1) = status->giveDamage(); return 1; } else { return StructuralMaterial :: giveIPValue(answer, gp, type, tStep); } }
int MisesMat :: giveIPValue(FloatArray &answer, GaussPoint *aGaussPoint, InternalStateType type, TimeStep *atTime) { MisesMatStatus *status = static_cast< MisesMatStatus * >( this->giveStatus(aGaussPoint) ); if ( type == IST_PlasticStrainTensor ) { const FloatArray &ep = status->givePlasDef(); ///@todo Fix this so that it doesn't just fill in zeros for plane stress: StructuralMaterial :: giveFullSymVectorForm(answer, ep, aGaussPoint->giveMaterialMode()); return 1; } else if ( type == IST_MaxEquivalentStrainLevel ) { answer.resize(1); answer.at(1) = status->giveCumulativePlasticStrain(); return 1; } else if ( ( type == IST_DamageScalar ) || ( type == IST_DamageTensor ) ) { answer.resize(1); answer.at(1) = status->giveDamage(); return 1; } else { return StructuralMaterial :: giveIPValue(answer, aGaussPoint, type, atTime); } }