OOFEM  2.3
Public Member Functions | Protected Member Functions | Protected Attributes
oofem::MicroplaneMaterial Class Reference

Abstract base class for all microplane models. More...

#include <microplanematerial.h>

+ Inheritance diagram for oofem::MicroplaneMaterial:
+ Collaboration diagram for oofem::MicroplaneMaterial:

List of all members.

Public Member Functions

 MicroplaneMaterial (int n, Domain *d)
 Constructor.
virtual ~MicroplaneMaterial ()
 Destructor.
virtual void giveRealMicroplaneStressVector (FloatArray &answer, Microplane *mplane, const FloatArray &strain, TimeStep *tStep)=0
 Computes real stress vector on given microplane (the meaning of values depends on particular implementation, e.g, can contain volumetric, deviatoric normal stresses and shear stresses on microplane) for given increment of microplane strains.
double computeNormalStrainComponent (Microplane *mplane, const FloatArray &macroStrain)
 Computes the length of normal strain vector on given microplane.
double computeNormalVolumetricStrainComponent (Microplane *mplane, const FloatArray &macroStrain)
 Computes the normal volumetric component of macro strain on given microplane.
double computeNormalDeviatoricStrainComponent (Microplane *mplane, const FloatArray &macroStrain)
 Computes the normal deviatoric component of macro strain on given microplane.
double computeShearMStrainComponent (Microplane *mplane, const FloatArray &macroStrain)
 Computes the shear component (in m direction) of macro strain on given microplane.
double computeShearLStrainComponent (Microplane *mplane, const FloatArray &macroStrain)
 Computes the shear component (in l direction) of macro strain on given microplane.
void computeStrainVectorComponents (FloatArray &answer, Microplane *mplane, const FloatArray &macroStrain)
 Computes the vector of all micro stress components (Ev, En, Em, El) of macro strain vector on given microplane.
virtual void giveMicroplaneNormal (FloatArray &answer, Microplane *mplane)
 Computes normal of given microplane.
virtual double giveMicroplaneIntegrationWeight (Microplane *mplane)
 Returns microplane integration weight.
MicroplanegiveMicroplane (int i, GaussPoint *masterGp)
 Returns i-th microplane belonging to master-macro-integration point. )-based indexing.
virtual void initializeData (int numberOfMicroplanes)
 Initializes internal data (integration weights, microplane normals and computes projection tensors).
virtual MaterialMode giveCorrespondingSlaveMaterialMode (MaterialMode masterMode)
 Returns corresponding material mode for microplane according to macro integration mode.
virtual contextIOResultType saveIPContext (DataStream *stream, ContextMode mode, GaussPoint *gp)
 Stores integration point state to output stream.
virtual contextIOResultType restoreIPContext (DataStream *stream, ContextMode mode, GaussPoint *gp)
 Reads integration point state to output stream.
virtual IRResultType initializeFrom (InputRecord *ir)
 Initializes receiver according to object description stored in input record.
virtual void giveInputRecord (DynamicInputRecord &input)
 Setups the input record string of receiver.
virtual const char * giveClassName () const
virtual IntegrationPointStatusgiveMicroplaneStatus (GaussPoint *gp)

Protected Member Functions

virtual MaterialStatusCreateMicroplaneStatus (GaussPoint *gp)=0
virtual void initTempStatus (GaussPoint *gp)
 Initializes temporary variables stored in integration point status at the beginning of new time step.

Protected Attributes

int numberOfMicroplanes
 Number of microplanes.
double microplaneWeights [MAX_NUMBER_OF_MICROPLANES]
 Integration weights of microplanes.
double microplaneNormals [MAX_NUMBER_OF_MICROPLANES][3]
 Normals of microplanes.
double Kronecker [6]
 Kronecker's delta.
double N [MAX_NUMBER_OF_MICROPLANES][6]
 Normal projection tensors for all microplanes.
double M [MAX_NUMBER_OF_MICROPLANES][6]
 Shear projection tensors (m direction) for all microplanes.
double L [MAX_NUMBER_OF_MICROPLANES][6]
 Shear projection tensors (l direction) for all microplanes.

Detailed Description

Abstract base class for all microplane models.

This class provides methods for setting up the integration weights and normals for particular microplanes. Also projection tensors are computed in advance (see method initializeData) and stored. Methods for computing macro strain projections onto particular microplanes and for homogenization of stress vector are provided.

Definition at line 61 of file microplanematerial.h.


Constructor & Destructor Documentation

Constructor.

Creates Microplane Material belonging to domain d, with number n.

Parameters:
nMaterial number.
dDomain to which newly created material belongs.

Definition at line 98 of file microplanematerial.h.

References numberOfMicroplanes.

virtual oofem::MicroplaneMaterial::~MicroplaneMaterial ( ) [inline, virtual]

Destructor.

Definition at line 102 of file microplanematerial.h.


Member Function Documentation

Computes the normal deviatoric component of macro strain on given microplane.

Definition at line 242 of file microplanematerial.C.

References computeNormalStrainComponent(), and computeNormalVolumetricStrainComponent().

double oofem::MicroplaneMaterial::computeNormalStrainComponent ( Microplane mplane,
const FloatArray macroStrain 
)

Computes the length of normal strain vector on given microplane.

Definition at line 220 of file microplanematerial.C.

References oofem::FloatArray::at(), oofem::GaussPoint::giveNumber(), and N.

Referenced by oofem::MDM::computeDamageOnPlane(), and computeNormalDeviatoricStrainComponent().

Computes the normal volumetric component of macro strain on given microplane.

Definition at line 235 of file microplanematerial.C.

References oofem::FloatArray::at().

Referenced by computeNormalDeviatoricStrainComponent().

double oofem::MicroplaneMaterial::computeShearLStrainComponent ( Microplane mplane,
const FloatArray macroStrain 
)

Computes the shear component (in l direction) of macro strain on given microplane.

Definition at line 265 of file microplanematerial.C.

References oofem::FloatArray::at(), oofem::GaussPoint::giveNumber(), and L.

Referenced by oofem::MDM::computeDamageOnPlane().

double oofem::MicroplaneMaterial::computeShearMStrainComponent ( Microplane mplane,
const FloatArray macroStrain 
)

Computes the shear component (in m direction) of macro strain on given microplane.

Definition at line 250 of file microplanematerial.C.

References oofem::FloatArray::at(), oofem::GaussPoint::giveNumber(), and M.

Referenced by oofem::MDM::computeDamageOnPlane().

void oofem::MicroplaneMaterial::computeStrainVectorComponents ( FloatArray answer,
Microplane mplane,
const FloatArray macroStrain 
)

Computes the vector of all micro stress components (Ev, En, Em, El) of macro strain vector on given microplane.

Definition at line 280 of file microplanematerial.C.

References oofem::FloatArray::at(), oofem::GaussPoint::giveNumber(), L, M, N, oofem::FloatArray::resize(), and oofem::FloatArray::zero().

Referenced by oofem::MicroplaneMaterial_Bazant::giveRealStressVector().

virtual MaterialStatus* oofem::MicroplaneMaterial::CreateMicroplaneStatus ( GaussPoint gp) [protected, pure virtual]

Implemented in oofem::MDM, and oofem::M4Material.

Referenced by giveMicroplaneStatus().

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

Reimplemented from oofem::StructuralMaterial.

Reimplemented in oofem::MDM, oofem::M4Material, and oofem::MicroplaneMaterial_Bazant.

Definition at line 180 of file microplanematerial.h.

Returns corresponding material mode for microplane according to macro integration mode.

Definition at line 80 of file microplanematerial.C.

Referenced by giveMicroplane().

Setups the input record string of receiver.

Parameters:
inputDynamic input record to be filled by receiver.

Reimplemented from oofem::StructuralMaterial.

Reimplemented in oofem::MDM.

Definition at line 318 of file microplanematerial.C.

References _IFT_MicroplaneMaterial_nmp, numberOfMicroplanes, and oofem::DynamicInputRecord::setField().

Returns microplane integration weight.

Parameters:
mplaneMicroplane.
Returns:
Integration weight of given microplane.

Definition at line 212 of file microplanematerial.C.

References oofem::GaussPoint::giveNumber(), and microplaneWeights.

Referenced by oofem::MicroplaneMaterial_Bazant::giveRealStressVector().

void oofem::MicroplaneMaterial::giveMicroplaneNormal ( FloatArray answer,
Microplane mplane 
) [virtual]

Computes normal of given microplane.

Parameters:
answerNormal of given microplane.
mplaneMicroplane, which normal will be computed.

Definition at line 201 of file microplanematerial.C.

References oofem::FloatArray::at(), oofem::GaussPoint::giveNumber(), microplaneNormals, and oofem::FloatArray::resize().

virtual void oofem::MicroplaneMaterial::giveRealMicroplaneStressVector ( FloatArray answer,
Microplane mplane,
const FloatArray strain,
TimeStep tStep 
) [pure virtual]

Computes real stress vector on given microplane (the meaning of values depends on particular implementation, e.g, can contain volumetric, deviatoric normal stresses and shear stresses on microplane) for given increment of microplane strains.

Parameters:
answerComputed result.
mplanePointer to microplane object, for which response is computed.
strainStrain vector.
tStepTime step.

Implemented in oofem::MDM, and oofem::M4Material.

Referenced by oofem::MicroplaneMaterial_Bazant::giveRealStressVector().

void oofem::MicroplaneMaterial::initializeData ( int  numberOfMicroplanes) [virtual]

Initializes internal data (integration weights, microplane normals and computes projection tensors).

Parameters:
numberOfMicroplanesNumber of required microplanes.

Reimplemented in oofem::MDM.

Definition at line 326 of file microplanematerial.C.

References _error, oofem::FloatArray::at(), oofem::FloatArray::beVectorProductOf(), Kronecker, L, M, microplaneNormals, microplaneWeights, N, and numberOfMicroplanes.

Referenced by initializeFrom().

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.

Reimplemented in oofem::MDM, and oofem::M4Material.

Definition at line 304 of file microplanematerial.C.

References _IFT_MicroplaneMaterial_nmp, initializeData(), IR_GIVE_FIELD, oofem::IRRT_OK, and numberOfMicroplanes.

void oofem::MicroplaneMaterial::initTempStatus ( GaussPoint gp) [protected, virtual]

Initializes temporary variables stored in integration point status at the beginning of new time step.

Temporary history variables (they describe state of material during solution of time step) are initialized according to history variables, which describe state corresponding to previous equilibrium solution. Default implementation simply extracts status from integration point and calls its initTempStatus method.

Reimplemented from oofem::Material.

Definition at line 111 of file microplanematerial.C.

References giveMicroplane(), giveMicroplaneStatus(), oofem::Material::giveStatus(), oofem::MaterialStatus::initTempStatus(), and numberOfMicroplanes.

Referenced by oofem::MicroplaneMaterial_Bazant::giveRealStressVector().

Reads integration point state to output stream.

Parameters:
streamOutput stream.
modeDetermines amount of info required in stream (state, definition, ...).
gpintegration point.
Returns:
contextIOResultType.
Exceptions:
throwsan ContextIOERR exception if error encountered.

Reimplemented from oofem::Material.

Definition at line 166 of file microplanematerial.C.

References oofem::CIO_BADOBJ, oofem::CIO_OK, giveMicroplane(), giveMicroplaneStatus(), numberOfMicroplanes, oofem::FEMComponent::restoreContext(), oofem::Material::restoreIPContext(), and THROW_CIOERR.

Stores integration point state to output stream.

Parameters:
streamOutput stream.
modeDetermines amount of info required in stream (state, definition, ...).
gpintegration point.
Returns:
contextIOResultType.
Exceptions:
throwsan ContextIOERR exception if error encountered.

Reimplemented from oofem::Material.

Definition at line 131 of file microplanematerial.C.

References _error, oofem::CIO_BADOBJ, oofem::CIO_OK, giveMicroplane(), giveMicroplaneStatus(), numberOfMicroplanes, oofem::FEMComponent::saveContext(), oofem::Material::saveIPContext(), and THROW_CIOERR.


Member Data Documentation

double oofem::MicroplaneMaterial::Kronecker[6] [protected]

Kronecker's delta.

Definition at line 73 of file microplanematerial.h.

Referenced by oofem::MicroplaneMaterial_Bazant::giveRealStressVector(), and initializeData().

Shear projection tensors (l direction) for all microplanes.

Due to symmetry, compressed form is stored.

Definition at line 89 of file microplanematerial.h.

Referenced by computeShearLStrainComponent(), computeStrainVectorComponents(), oofem::MicroplaneMaterial_Bazant::giveRealStressVector(), initializeData(), and oofem::MDM::initializeData().

Shear projection tensors (m direction) for all microplanes.

Due to symmetry, compressed form is stored.

Definition at line 84 of file microplanematerial.h.

Referenced by computeShearMStrainComponent(), computeStrainVectorComponents(), oofem::MicroplaneMaterial_Bazant::giveRealStressVector(), initializeData(), and oofem::MDM::initializeData().

Normals of microplanes.

Definition at line 70 of file microplanematerial.h.

Referenced by giveMicroplaneNormal(), initializeData(), and oofem::MDM::initializeData().

Integration weights of microplanes.

Definition at line 68 of file microplanematerial.h.

Referenced by oofem::MDM::computeLocalDamageTensor(), giveMicroplaneIntegrationWeight(), initializeData(), and oofem::MDM::initializeData().


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 Feb 18 2014 10:53:52 for OOFEM by doxygen 1.7.6.1 written by Dimitri van Heesch, © 1997-2011