OOFEM  2.1
Public Member Functions | Protected Member Functions | Protected Attributes
oofem::Masonry02 Class Reference

This class implements an interface masonry model based on non associated multisurface plasticity. More...

#include <masonry02.h>

+ Inheritance diagram for oofem::Masonry02:
+ Collaboration diagram for oofem::Masonry02:

List of all members.

Public Member Functions

 Masonry02 (int n, Domain *d)
virtual ~Masonry02 ()
virtual IRResultType initializeFrom (InputRecord *ir)
 Initializes receiver according to object description stored in input record.
virtual int hasMaterialModeCapability (MaterialMode mode)
 Tests if material supports material mode.
virtual const char * giveClassName () const
virtual classType giveClassID () const
 Returns classType id of receiver.
virtual void giveCharacteristicMatrix (FloatMatrix &answer, MatResponseForm form, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep)
 Computes the stiffness matrix of receiver in given integration point, respecting its history.
virtual int giveStressStrainComponentIndOf (MatResponseForm, MaterialMode mmode, int)
 This method returns index of reduced (if form == ReducedForm) or full (if form = FullForm) stress/strain component in Full or Reduced stress/strain vector according to stress/strain mode in given integration point.
virtual void giveStressStrainMask (IntArray &answer, MatResponseForm, MaterialMode mmode) const
 This method returns mask of reduced (if form == ReducedForm) or Full (if form==FullForm) stress/strain vector in full or reduced StressStrainVector according to stressStrain mode of given gp.
virtual int giveSizeOfReducedStressStrainVector (MaterialMode)
 Returns the size of reduced stress/strain vector according to given mode.
void giveReducedCharacteristicVector (FloatArray &answer, GaussPoint *gp, const FloatArray &charVector3d)
 Computes reduced stress/strain vector from full stress/strain vector.
void giveFullCharacteristicVector (FloatArray &answer, GaussPoint *gp, const FloatArray &strainVector)
 Computes full form of stress/strain from its reduced form, based on stress/strain mode stored in given integration point.
virtual int giveSizeOfFullHardeningVarsVector ()
virtual int giveSizeOfReducedHardeningVarsVector (GaussPoint *)
virtual bool isCharacteristicMtrxSymmetric (MatResponseMode rMode)
 Returns true if stiffness matrix of receiver is symmetric Default implementation returns true.
virtual MaterialStatusCreateStatus (GaussPoint *gp) const
 Creates new copy of associated status and inserts it into given integration point.

Protected Member Functions

virtual int giveMaxNumberOfActiveYieldConds (GaussPoint *gp)
virtual double computeYieldValueAt (GaussPoint *gp, int isurf, const FloatArray &stressVector, const FloatArray &stressSpaceHardeningVars)
 Computes the value of yield function.
virtual void computeStressGradientVector (FloatArray &answer, functType ftype, int isurf, GaussPoint *gp, const FloatArray &stressVector, const FloatArray &stressSpaceHardeningVars)
 Computes the stress gradient of yield/loading function (df/d_sigma).
virtual void computeStrainHardeningVarsIncrement (FloatArray &answer, GaussPoint *gp, const FloatArray &stress, const FloatArray &dlambda, const FloatArray &dplasticStrain, const IntArray &activeConditionMap)
 Computes the increment of strain-space hardening variables.
virtual void computeKGradientVector (FloatArray &answer, functType ftype, int isurf, GaussPoint *gp, FloatArray &fullStressVector, const FloatArray &strainSpaceHardeningVariables)
 Computes the derivative of yield/loading function with respect to $ \kappa $ vector.
virtual void computeReducedHardeningVarsSigmaGradient (FloatMatrix &answer, GaussPoint *gp, const IntArray &activeConditionMap, const FloatArray &fullStressVector, const FloatArray &strainSpaceHardeningVars, const FloatArray &gamma)
 Computes derivative of $ \kappa $ vector with respect to stress.
virtual void computeReducedHardeningVarsLamGradient (FloatMatrix &answer, GaussPoint *gp, int actSurf, const IntArray &activeConditionMap, const FloatArray &fullStressVector, const FloatArray &strainSpaceHardeningVars, const FloatArray &gamma)
 computes derivative of $ \kappa $ vector with respect to lambda vector
virtual int hasHardening ()
 Indicates, whether receiver model has hardening/softening behavior or behaves according to perfect plasticity theory.
virtual void computeReducedSSGradientMatrix (FloatMatrix &gradientMatrix, int i, GaussPoint *gp, const FloatArray &fullStressVector, const FloatArray &strainSpaceHardeningVariables)
 Computes second derivative of loading function with respect to stress.
virtual void computeReducedSKGradientMatrix (FloatMatrix &gradientMatrix, int i, GaussPoint *gp, const FloatArray &fullStressVector, const FloatArray &strainSpaceHardeningVariables)
 Computes second derivative of loading function with respect to stress and hardening vars.
void give2dInterfaceMaterialStiffnessMatrix (FloatMatrix &answer, MatResponseForm form, MatResponseMode rMode, GaussPoint *gp, TimeStep *atTime)
virtual void computeReducedElasticModuli (FloatMatrix &answer, GaussPoint *gp, TimeStep *atTime)
double computeF3HardeningLaw (double k)
 Cap mode related functions.
double computeF3HardeningGradient (double k)

Protected Attributes

double ft0
 Tensile strength.
double gfI
 Mode I GF.
double gfII
 Mode II GF.
double tanfir
 Residual friction angle.
double tanfi0
 Initial friction angle.
double c0
 Initial cohesion of joint.
double Cnn
 Cap mode parameters.
double Css
double Cn
double kn
 Elastic properties.
double ks
double tanpsi
 Dilatancy angle.
double sic
 Cap mode parameters.
double spc
double smc
double src
double kp
double km
double kr

Detailed Description

This class implements an interface masonry model based on non associated multisurface plasticity.

Model follows the description from Lourenco, P.B., Rots, J.G.: Multisurface Interface Model for Analysis of Masonry Structures as published in Journal of Engineering Mechanics, vol 123, No. 7, 1997.

Definition at line 51 of file masonry02.h.


Constructor & Destructor Documentation

oofem::Masonry02::Masonry02 ( int  n,
Domain d 
)

Definition at line 56 of file masonry02.C.


Member Function Documentation

double oofem::Masonry02::computeF3HardeningGradient ( double  k) [protected]

Definition at line 714 of file masonry02.C.

References computeF3HardeningLaw(), km, kp, sic, smc, spc, and src.

Referenced by computeKGradientVector().

double oofem::Masonry02::computeF3HardeningLaw ( double  k) [protected]

Cap mode related functions.

Definition at line 671 of file masonry02.C.

References km, kp, oofem::max(), sic, smc, spc, and src.

Referenced by computeF3HardeningGradient(), computeKGradientVector(), and computeYieldValueAt().

void oofem::Masonry02::computeKGradientVector ( FloatArray answer,
functType  ftype,
int  isurf,
GaussPoint gp,
FloatArray fullStressVector,
const FloatArray strainSpaceHardeningVariables 
) [protected, virtual]

Computes the derivative of yield/loading function with respect to $ \kappa $ vector.

Implements oofem::MPlasticMaterial2.

Definition at line 348 of file masonry02.C.

References oofem::FloatArray::at(), c0, computeF3HardeningGradient(), computeF3HardeningLaw(), ft0, gfI, gfII, oofem::FloatArray::resize(), tanfi0, tanfir, and oofem::MPlasticMaterial2::yieldFunction.

void oofem::Masonry02::computeReducedElasticModuli ( FloatMatrix answer,
GaussPoint gp,
TimeStep atTime 
) [protected, virtual]
void oofem::Masonry02::computeReducedHardeningVarsLamGradient ( FloatMatrix answer,
GaussPoint gp,
int  actSurf,
const IntArray activeConditionMap,
const FloatArray fullStressVector,
const FloatArray strainSpaceHardeningVars,
const FloatArray gamma 
) [protected, virtual]

computes derivative of $ \kappa $ vector with respect to lambda vector

Implements oofem::MPlasticMaterial2.

Definition at line 269 of file masonry02.C.

References oofem::IntArray::at(), oofem::FloatArray::at(), oofem::FloatMatrix::at(), c0, Cn, Cnn, Css, ft0, gfI, gfII, oofem::FloatMatrix::resize(), and oofem::FloatMatrix::zero().

void oofem::Masonry02::computeReducedHardeningVarsSigmaGradient ( FloatMatrix answer,
GaussPoint gp,
const IntArray activeConditionMap,
const FloatArray fullStressVector,
const FloatArray strainSpaceHardeningVars,
const FloatArray gamma 
) [protected, virtual]

Computes derivative of $ \kappa $ vector with respect to stress.

Implements oofem::MPlasticMaterial2.

Definition at line 402 of file masonry02.C.

References oofem::IntArray::at(), oofem::FloatArray::at(), oofem::FloatMatrix::at(), Cn, Cnn, Css, oofem::FloatMatrix::resize(), and oofem::FloatMatrix::zero().

void oofem::Masonry02::computeReducedSKGradientMatrix ( FloatMatrix gradientMatrix,
int  i,
GaussPoint gp,
const FloatArray fullStressVector,
const FloatArray strainSpaceHardeningVariables 
) [protected, virtual]

Computes second derivative of loading function with respect to stress and hardening vars.

Implements oofem::MPlasticMaterial2.

Definition at line 440 of file masonry02.C.

References oofem::FloatArray::at(), oofem::FloatMatrix::at(), c0, gfII, oofem::FloatMatrix::resize(), tanfi0, tanfir, and oofem::FloatMatrix::zero().

void oofem::Masonry02::computeReducedSSGradientMatrix ( FloatMatrix gradientMatrix,
int  i,
GaussPoint gp,
const FloatArray fullStressVector,
const FloatArray strainSpaceHardeningVariables 
) [protected, virtual]

Computes second derivative of loading function with respect to stress.

Implements oofem::MPlasticMaterial2.

Definition at line 426 of file masonry02.C.

References oofem::FloatMatrix::at(), Cnn, Css, oofem::FloatMatrix::resize(), and oofem::FloatMatrix::zero().

void oofem::Masonry02::computeStrainHardeningVarsIncrement ( FloatArray answer,
GaussPoint gp,
const FloatArray stress,
const FloatArray dlambda,
const FloatArray dplasticStrain,
const IntArray activeConditionMap 
) [protected, virtual]

Computes the increment of strain-space hardening variables.

Parameters:
answerResult.
gpGauss point to compute at.
stressUpdated stress (corresponds to newly reached state).
dlambdaIncrement of consistency parameters.
dplasticStrainActual plastic strain increment.
activeConditionMapArray of active yield conditions.

Implements oofem::MPlasticMaterial2.

Definition at line 213 of file masonry02.C.

References oofem::IntArray::at(), oofem::FloatArray::at(), c0, Cn, Cnn, Css, ft0, gfI, gfII, oofem::FloatArray::resize(), and oofem::FloatArray::zero().

void oofem::Masonry02::computeStressGradientVector ( FloatArray answer,
functType  ftype,
int  isurf,
GaussPoint gp,
const FloatArray stressVector,
const FloatArray strainSpaceHardeningVariables 
) [protected, virtual]

Computes the stress gradient of yield/loading function (df/d_sigma).

Implements oofem::MPlasticMaterial2.

Definition at line 160 of file masonry02.C.

References oofem::FloatArray::at(), c0, Cn, Cnn, Css, gfII, oofem::FloatArray::resize(), oofem::sgn(), tanfi0, tanfir, tanpsi, oofem::MPlasticMaterial2::yieldFunction, and oofem::FloatArray::zero().

double oofem::Masonry02::computeYieldValueAt ( GaussPoint gp,
int  isurf,
const FloatArray stressVector,
const FloatArray strainSpaceHardeningVariables 
) [protected, virtual]

Computes the value of yield function.

Implements oofem::MPlasticMaterial2.

Definition at line 116 of file masonry02.C.

References oofem::FloatArray::at(), c0, Cn, Cnn, computeF3HardeningLaw(), Css, ft0, gfI, gfII, tanfi0, and tanfir.

Creates new copy of associated status and inserts it into given integration point.

Parameters:
gpIntegration point where newly created status will be stored.
Returns:
Reference to new status.

Reimplemented from oofem::MPlasticMaterial2.

Definition at line 475 of file masonry02.C.

References oofem::FEMComponent::giveDomain().

void oofem::Masonry02::give2dInterfaceMaterialStiffnessMatrix ( FloatMatrix answer,
MatResponseForm  form,
MatResponseMode  rMode,
GaussPoint gp,
TimeStep atTime 
) [protected]
void oofem::Masonry02::giveCharacteristicMatrix ( FloatMatrix answer,
MatResponseForm  form,
MatResponseMode  mode,
GaussPoint gp,
TimeStep tStep 
) [virtual]

Computes the stiffness matrix of receiver in given integration point, respecting its history.

The algorithm should use temporary or equilibrium history variables stored in integration point status to compute and return required result.

Parameters:
answerContains result.
formMaterial response form.
modeMaterial response mode.
gpIntegration point.
tStepTime step (most models are able to respond only when atTime is current time step).

Reimplemented from oofem::StructuralMaterial.

Definition at line 496 of file masonry02.C.

References give2dInterfaceMaterialStiffnessMatrix(), and oofem::GaussPoint::giveMaterialMode().

virtual classType oofem::Masonry02::giveClassID ( ) const [inline, virtual]

Returns classType id of receiver.

Intended for run time type checking. Every derived class have to overload this method.

See also:
classType.
Returns:
Class type of receiver.

Reimplemented from oofem::MPlasticMaterial2.

Definition at line 88 of file masonry02.h.

References oofem::Masonry02Class.

virtual const char* oofem::Masonry02::giveClassName ( ) const [inline, virtual]
Returns:
Class name of the receiver.

Reimplemented from oofem::MPlasticMaterial2.

Definition at line 87 of file masonry02.h.

void oofem::Masonry02::giveFullCharacteristicVector ( FloatArray answer,
GaussPoint gp,
const FloatArray strainVector 
)

Computes full form of stress/strain from its reduced form, based on stress/strain mode stored in given integration point.

Parameters:
answerFull form of stress/strain vector.
gpIntegration point.
strainVectorReduced vector.

Reimplemented from oofem::StructuralMaterial.

Definition at line 601 of file masonry02.C.

References oofem::GaussPoint::giveMaterialMode().

virtual int oofem::Masonry02::giveMaxNumberOfActiveYieldConds ( GaussPoint gp) [inline, protected, virtual]

Implements oofem::MPlasticMaterial2.

Definition at line 112 of file masonry02.h.

void oofem::Masonry02::giveReducedCharacteristicVector ( FloatArray answer,
GaussPoint gp,
const FloatArray charVector3d 
)

Computes reduced stress/strain vector from full stress/strain vector.

The stress/strain mode is determined form given integration point.

Parameters:
answerReduced version of charVector3d.
gpIntegration point.
charVector3dFull 3d stress/strain vector.

Reimplemented from oofem::StructuralMaterial.

Definition at line 582 of file masonry02.C.

References oofem::GaussPoint::giveMaterialMode().

virtual int oofem::Masonry02::giveSizeOfFullHardeningVarsVector ( ) [inline, virtual]

Reimplemented from oofem::MPlasticMaterial2.

Definition at line 103 of file masonry02.h.

Reimplemented from oofem::MPlasticMaterial2.

Definition at line 104 of file masonry02.h.

Returns the size of reduced stress/strain vector according to given mode.

Parameters:
mmodeMaterial response mode.

Reimplemented from oofem::StructuralMaterial.

Definition at line 516 of file masonry02.C.

int oofem::Masonry02::giveStressStrainComponentIndOf ( MatResponseForm  form,
MaterialMode  mmode,
int  ind 
) [virtual]

This method returns index of reduced (if form == ReducedForm) or full (if form = FullForm) stress/strain component in Full or Reduced stress/strain vector according to stress/strain mode in given integration point.

Parameters:
formMaterial response form.
mmodeMaterial response mode.
indIndex of component.
Returns:
Component index or 0 or error is generated for unknown Material Mode.

Reimplemented from oofem::StructuralMaterial.

Definition at line 533 of file masonry02.C.

void oofem::Masonry02::giveStressStrainMask ( IntArray answer,
MatResponseForm  form,
MaterialMode  mmode 
) const [virtual]

This method returns mask of reduced (if form == ReducedForm) or Full (if form==FullForm) stress/strain vector in full or reduced StressStrainVector according to stressStrain mode of given gp.

Mask has size of reduced or full stress/strain Vector and i-th component is index to full or reduced stress/strainVector where corresponding component is mapped. Reduced form is sub-vector (of stress or strain components), where components corresponding to imposed zero stress (plane stress,...) are not included. On the other hand, if zero strain component is imposed (Plane strain, ..) this condition must be taken into account in geometrical relations, and corresponding component has to be included in reduced vector.

Parameters:
answerReturned mask.
formMaterial response form.
mmodeMaterial response mode.
Returns:
For unknown mode error is generated.

Reimplemented from oofem::StructuralMaterial.

Definition at line 548 of file masonry02.C.

References oofem::StructuralMaterial::giveStressStrainMask().

virtual int oofem::Masonry02::hasHardening ( ) [inline, protected, virtual]

Indicates, whether receiver model has hardening/softening behavior or behaves according to perfect plasticity theory.

Implements oofem::MPlasticMaterial2.

Definition at line 137 of file masonry02.h.

Tests if material supports material mode.

Parameters:
modeRequired material mode.
Returns:
Nonzero if supported, zero otherwise.

Reimplemented from oofem::MPlasticMaterial2.

Definition at line 60 of file masonry02.C.

Initializes receiver according to object description stored in input record.

This function is called immediately after creating object using constructor. Input record can be imagined as data record in component database belonging to receiver. Receiver may use value-name extracting functions to extract particular field from record.

See also:
IR_GIVE_FIELD
IR_GIVE_OPTIONAL_FIELD
Parameters:
irInput record to initialize from.
Returns:
IRResultType

Reimplemented from oofem::StructuralMaterial.

Definition at line 73 of file masonry02.C.

References c0, Cn, Cnn, Css, ft0, gfI, gfII, oofem::InputRecord::hasField(), oofem::IFT_Masonry02_c0, oofem::IFT_Masonry02_cn, oofem::IFT_Masonry02_cnn, oofem::IFT_Masonry02_cplane, oofem::IFT_Masonry02_css, oofem::IFT_Masonry02_ft0, oofem::IFT_Masonry02_gfi, oofem::IFT_Masonry02_gfii, oofem::IFT_Masonry02_km, oofem::IFT_Masonry02_kn, oofem::IFT_Masonry02_kp, oofem::IFT_Masonry02_kr, oofem::IFT_Masonry02_ks, oofem::IFT_Masonry02_si, oofem::IFT_Masonry02_sm, oofem::IFT_Masonry02_sp, oofem::IFT_Masonry02_sr, oofem::IFT_Masonry02_tanfi0, oofem::IFT_Masonry02_tanfir, oofem::IFT_Masonry02_tanpsi, oofem::StructuralMaterial::initializeFrom(), IR_GIVE_FIELD, oofem::IRRT_OK, km, kn, kp, kr, ks, oofem::MPlasticMaterial2::linearElasticMaterial, oofem::MPlasticMaterial2::mpm_CuttingPlane, oofem::MPlasticMaterial2::rmType, sic, smc, spc, src, tanfi0, tanfir, and tanpsi.

virtual bool oofem::Masonry02::isCharacteristicMtrxSymmetric ( MatResponseMode  rMode) [inline, virtual]

Returns true if stiffness matrix of receiver is symmetric Default implementation returns true.

Reimplemented from oofem::MPlasticMaterial2.

Definition at line 106 of file masonry02.h.


Member Data Documentation

double oofem::Masonry02::c0 [protected]
double oofem::Masonry02::Cn [protected]
double oofem::Masonry02::Cnn [protected]
double oofem::Masonry02::Css [protected]
double oofem::Masonry02::ft0 [protected]
double oofem::Masonry02::gfI [protected]
double oofem::Masonry02::gfII [protected]
double oofem::Masonry02::km [protected]

Definition at line 78 of file masonry02.h.

Referenced by computeF3HardeningGradient(), computeF3HardeningLaw(), and initializeFrom().

double oofem::Masonry02::kn [protected]

Elastic properties.

Definition at line 71 of file masonry02.h.

Referenced by computeReducedElasticModuli(), and initializeFrom().

double oofem::Masonry02::kp [protected]

Definition at line 78 of file masonry02.h.

Referenced by computeF3HardeningGradient(), computeF3HardeningLaw(), and initializeFrom().

double oofem::Masonry02::kr [protected]

Definition at line 78 of file masonry02.h.

Referenced by initializeFrom().

double oofem::Masonry02::ks [protected]

Definition at line 71 of file masonry02.h.

Referenced by computeReducedElasticModuli(), and initializeFrom().

double oofem::Masonry02::sic [protected]

Cap mode parameters.

Definition at line 77 of file masonry02.h.

Referenced by computeF3HardeningGradient(), computeF3HardeningLaw(), and initializeFrom().

double oofem::Masonry02::smc [protected]

Definition at line 77 of file masonry02.h.

Referenced by computeF3HardeningGradient(), computeF3HardeningLaw(), and initializeFrom().

double oofem::Masonry02::spc [protected]

Definition at line 77 of file masonry02.h.

Referenced by computeF3HardeningGradient(), computeF3HardeningLaw(), and initializeFrom().

double oofem::Masonry02::src [protected]

Definition at line 77 of file masonry02.h.

Referenced by computeF3HardeningGradient(), computeF3HardeningLaw(), and initializeFrom().

double oofem::Masonry02::tanfi0 [protected]
double oofem::Masonry02::tanfir [protected]
double oofem::Masonry02::tanpsi [protected]

Dilatancy angle.

Definition at line 74 of file masonry02.h.

Referenced by computeStressGradientVector(), and initializeFrom().


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 Sun Mar 10 2013 18:17:02 for OOFEM by doxygen 1.7.6.1 written by Dimitri van Heesch, © 1997-2011