OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
oofem::GradDpElement Class Referenceabstract

Abstract class for gradient formulation of coupled damage-plasticity model(GradDp). More...

#include <graddpelement.h>

+ Inheritance diagram for oofem::GradDpElement:
+ Collaboration diagram for oofem::GradDpElement:

Public Member Functions

 GradDpElement ()
 
virtual ~GradDpElement ()
 
virtual IRResultType initializeFrom (InputRecord *ir)
 

Protected Member Functions

virtual StructuralElementgiveStructuralElement ()=0
 
virtual NLStructuralElementgiveNLStructuralElement ()=0
 
virtual void computeNkappaMatrixAt (GaussPoint *gp, FloatArray &answer)=0
 
virtual void computeBkappaMatrixAt (GaussPoint *gp, FloatMatrix &answer)=0
 
void setDisplacementLocationArray ()
 
void setNonlocalLocationArray ()
 
void computeStiffnessMatrix (FloatMatrix &, MatResponseMode, TimeStep *)
 
void computeStiffnessMatrix_uu (FloatMatrix &, MatResponseMode, TimeStep *)
 
void computeStiffnessMatrix_uk (FloatMatrix &, MatResponseMode, TimeStep *)
 
void computeStiffnessMatrix_kk (FloatMatrix &, MatResponseMode, TimeStep *)
 
void computeStiffnessMatrix_ku (FloatMatrix &, MatResponseMode, TimeStep *)
 
void computeDisplacementDegreesOfFreedom (FloatArray &answer, TimeStep *tStep)
 
void computeNonlocalDegreesOfFreedom (FloatArray &answer, TimeStep *tStep)
 
void computeNonlocalGradient (FloatArray &answer, GaussPoint *gp, TimeStep *tStep)
 
void computeLocalStrainVector (FloatArray &answer, GaussPoint *gp, TimeStep *tStep)
 
void computeDeformationGradientVector (FloatArray &answer, GaussPoint *gp, TimeStep *tStep)
 
void computeNonlocalCumulatedStrain (double &answer, GaussPoint *gp, TimeStep *tStep)
 
void giveInternalForcesVector (FloatArray &answer, TimeStep *tStep, int useUpdatedGpRecord)
 
void giveLocalInternalForcesVector (FloatArray &answer, TimeStep *tStep, int useUpdatedGpRecord)
 
void giveNonlocalInternalForcesVector (FloatArray &answer, TimeStep *tStep, int useUpdatedGpRecord)
 
void computeStressVectorAndLocalCumulatedStrain (FloatArray &answer, double localCumulatedPlasticStrain, GaussPoint *gp, TimeStep *tStep)
 
void computeDistanceToBoundary ()
 

Protected Attributes

int nPrimNodes
 
int nPrimVars
 
int nSecNodes
 
int nSecVars
 
IntArray locU
 
IntArray locK
 
int totalSize
 
int nlSize
 
int locSize
 

Detailed Description

Abstract class for gradient formulation of coupled damage-plasticity model(GradDp).

Yield function is formulated in the effective stress space and damage is driven by the nonlocal(over-nonlocal) cumulated plastic strain. The new nonlocal degrees of freedom (with the meaning of the nonlocal cumulated plastic strain) are introduced with lower order of approximation functions than the displacement field to avoid spurious stress oscillations

Definition at line 48 of file graddpelement.h.

Constructor & Destructor Documentation

oofem::GradDpElement::GradDpElement ( )

Definition at line 58 of file graddpelement.C.

Member Function Documentation

void oofem::GradDpElement::computeDisplacementDegreesOfFreedom ( FloatArray answer,
TimeStep tStep 
)
protected
void oofem::GradDpElement::computeDistanceToBoundary ( )
protected

Referenced by ~GradDpElement().

void oofem::GradDpElement::computeLocalStrainVector ( FloatArray answer,
GaussPoint gp,
TimeStep tStep 
)
protected
void oofem::GradDpElement::computeNonlocalCumulatedStrain ( double &  answer,
GaussPoint gp,
TimeStep tStep 
)
protected
void oofem::GradDpElement::computeNonlocalDegreesOfFreedom ( FloatArray answer,
TimeStep tStep 
)
protected
void oofem::GradDpElement::computeNonlocalGradient ( FloatArray answer,
GaussPoint gp,
TimeStep tStep 
)
protected
void oofem::GradDpElement::giveInternalForcesVector ( FloatArray answer,
TimeStep tStep,
int  useUpdatedGpRecord 
)
protected
Todo:
This code relies on locU and locK already exists. Design seems highly unsafe. Instead locU and locK shoulld be statically determined (cf. with the Taylor-Hood elements) / Mikael

Definition at line 328 of file graddpelement.C.

References oofem::FloatMatrix::add(), oofem::AL, oofem::FloatMatrix::assemble(), oofem::FloatArray::assemble(), oofem::FloatArray::at(), oofem::FloatMatrix::at(), oofem::FloatMatrix::beProductOf(), oofem::NLStructuralElement::computeBHmatrixAt(), computeBkappaMatrixAt(), oofem::StructuralElement::computeBmatrixAt(), oofem::NLStructuralElement::computeInitialStressMatrix(), computeNkappaMatrixAt(), computeNonlocalGradient(), computeStiffnessMatrix(), oofem::Element::computeVolumeAround(), oofem::FEMComponent::domain, oofem::GradDpMaterialExtensionInterface::giveAveragingType(), oofem::Element::giveCrossSection(), oofem::Domain::giveEngngModel(), oofem::EngngModel::giveFormulation(), oofem::NLStructuralElement::giveGeometryMode(), oofem::Element::giveIntegrationRule(), giveLocalInternalForcesVector(), oofem::StructuralCrossSection::giveMaterialInterface(), giveNLStructuralElement(), giveNonlocalInternalForcesVector(), oofem::GradDpMaterialExtensionInterface::givePDGradMatrix_kk(), oofem::GradDpMaterialExtensionInterface::givePDGradMatrix_ku(), oofem::GradDpMaterialExtensionInterface::givePDGradMatrix_LD(), oofem::GradDpMaterialExtensionInterface::givePDGradMatrix_uk(), oofem::GradDpMaterialExtensionInterface::givePDGradMatrix_uu(), oofem::StructuralElement::giveStructuralCrossSection(), oofem::GradDpMaterialExtensionInterfaceType, oofem::CrossSection::isCharacteristicMtrxSymmetric(), locK, locSize, locU, nlSize, OOFEM_ERROR, oofem::FloatMatrix::plusDyadUnsym(), oofem::FloatMatrix::plusProductSymmUpper(), oofem::FloatMatrix::plusProductUnsym(), oofem::FloatArray::resize(), oofem::FloatMatrix::resize(), setDisplacementLocationArray(), setNonlocalLocationArray(), oofem::FloatMatrix::symmetrized(), totalSize, oofem::FloatArray::zero(), and oofem::FloatMatrix::zero().

Referenced by oofem::QTrPlaneStrainGrad::giveInternalForcesVector(), oofem::QPlaneStressGrad::giveInternalForcesVector(), oofem::QPlaneStrainGrad::giveInternalForcesVector(), oofem::QTrPlaneStressGrad::giveInternalForcesVector(), oofem::QTruss1dGrad::giveInternalForcesVector(), oofem::QWedgeGrad::giveInternalForcesVector(), oofem::QTRSpaceGrad::giveInternalForcesVector(), giveLocalInternalForcesVector(), and ~GradDpElement().

void oofem::GradDpElement::giveLocalInternalForcesVector ( FloatArray answer,
TimeStep tStep,
int  useUpdatedGpRecord 
)
protected
void oofem::GradDpElement::setDisplacementLocationArray ( )
protected
void oofem::GradDpElement::setNonlocalLocationArray ( )
protected

Member Data Documentation

IntArray oofem::GradDpElement::locK
protected
IntArray oofem::GradDpElement::locU
protected

The documentation for this class was generated from the following files:

This page is part of the OOFEM documentation. Copyright (c) 2011 Borek Patzak
Project e-mail: info@oofem.org
Generated at Tue Jan 2 2018 20:07:36 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011