OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
Abstract base class for all microplane models. More...
#include <microplanematerial.h>
Public Member Functions | |
MicroplaneMaterial (int n, Domain *d) | |
Constructor. More... | |
virtual | ~MicroplaneMaterial () |
Destructor. More... | |
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. More... | |
double | computeNormalStrainComponent (Microplane *mplane, const FloatArray ¯oStrain) |
Computes the length of normal strain vector on given microplane. More... | |
double | computeNormalVolumetricStrainComponent (Microplane *mplane, const FloatArray ¯oStrain) |
Computes the normal volumetric component of macro strain on given microplane. More... | |
double | computeNormalDeviatoricStrainComponent (Microplane *mplane, const FloatArray ¯oStrain) |
Computes the normal deviatoric component of macro strain on given microplane. More... | |
double | computeShearMStrainComponent (Microplane *mplane, const FloatArray ¯oStrain) |
Computes the shear component (in m direction) of macro strain on given microplane. More... | |
double | computeShearLStrainComponent (Microplane *mplane, const FloatArray ¯oStrain) |
Computes the shear component (in l direction) of macro strain on given microplane. More... | |
void | computeStrainVectorComponents (FloatArray &answer, Microplane *mplane, const FloatArray ¯oStrain) |
Computes the vector of all micro stress components (Ev, En, Em, El) of macro strain vector on given microplane. More... | |
virtual void | giveMicroplaneNormal (FloatArray &answer, Microplane *mplane) |
Computes normal of given microplane. More... | |
virtual double | giveMicroplaneIntegrationWeight (Microplane *mplane) |
Returns microplane integration weight. More... | |
Microplane * | giveMicroplane (int i, GaussPoint *masterGp) |
Returns i-th microplane belonging to master-macro-integration point. )-based indexing. More... | |
virtual void | initializeData (int numberOfMicroplanes) |
Initializes internal data (integration weights, microplane normals and computes projection tensors). More... | |
virtual MaterialMode | giveCorrespondingSlaveMaterialMode (MaterialMode masterMode) |
Returns corresponding material mode for microplane according to macro integration mode. More... | |
virtual void | give3dMaterialStiffnessMatrix (FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) |
Computes full 3d material stiffness matrix at given integration point, time, respecting load history in integration point. More... | |
virtual contextIOResultType | saveIPContext (DataStream &stream, ContextMode mode, GaussPoint *gp) |
Stores integration point state to output stream. More... | |
virtual contextIOResultType | restoreIPContext (DataStream &stream, ContextMode mode, GaussPoint *gp) |
Reads integration point state to output stream. More... | |
virtual IRResultType | initializeFrom (InputRecord *ir) |
Initializes receiver according to object description stored in input record. More... | |
virtual void | giveInputRecord (DynamicInputRecord &input) |
Setups the input record string of receiver. More... | |
virtual IntegrationPointStatus * | giveMicroplaneStatus (GaussPoint *gp) |
Public Member Functions inherited from oofem::StructuralMaterial | |
StructuralMaterial (int n, Domain *d) | |
Constructor. More... | |
virtual | ~StructuralMaterial () |
Destructor. More... | |
virtual int | hasMaterialModeCapability (MaterialMode mode) |
Tests if material supports material mode. More... | |
virtual const char * | giveClassName () const |
virtual void | giveStiffnessMatrix (FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) |
Computes the stiffness matrix for giveRealStressVector of receiver in given integration point, respecting its history. More... | |
virtual void | giveRealStressVector (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrain, TimeStep *tStep) |
Computes the real stress vector for given total strain and integration point. More... | |
virtual void | giveRealStressVector_3d (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, TimeStep *tStep) |
Default implementation relies on giveRealStressVector for second Piola-Kirchoff stress. More... | |
virtual void | giveRealStressVector_PlaneStrain (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, TimeStep *tStep) |
Default implementation relies on giveRealStressVector_3d. More... | |
virtual void | giveRealStressVector_StressControl (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, const IntArray &strainControl, TimeStep *tStep) |
Iteratively calls giveRealStressVector_3d to find the stress controlled equal to zero· More... | |
virtual void | giveRealStressVector_ShellStressControl (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, const IntArray &strainControl, TimeStep *tStep) |
virtual void | giveRealStressVector_PlaneStress (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, TimeStep *tStep) |
Default implementation relies on giveRealStressVector_StressControl. More... | |
virtual void | giveRealStressVector_1d (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, TimeStep *tStep) |
Default implementation relies on giveRealStressVector_StressControl. More... | |
virtual void | giveRealStressVector_Warping (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, TimeStep *tStep) |
Default implementation relies on giveRealStressVector_StressControl. More... | |
virtual void | giveRealStressVector_2dBeamLayer (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, TimeStep *tStep) |
Default implementation relies on giveRealStressVector_StressControl. More... | |
virtual void | giveRealStressVector_PlateLayer (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, TimeStep *tStep) |
Default implementation relies on giveRealStressVector_StressControl. More... | |
virtual void | giveRealStressVector_Fiber (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, TimeStep *tStep) |
Default implementation relies on giveRealStressVector_StressControl. More... | |
virtual void | giveRealStressVector_Lattice2d (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, TimeStep *tStep) |
virtual void | giveRealStressVector_Lattice3d (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, TimeStep *tStep) |
virtual void | giveRealStressVector_2dPlateSubSoil (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, TimeStep *tStep) |
Default implementation is not provided. More... | |
virtual void | giveRealStressVector_3dBeamSubSoil (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, TimeStep *tStep) |
virtual void | giveEshelbyStressVector_PlaneStrain (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedF, TimeStep *tStep) |
Prototype for computation of Eshelby stress. More... | |
void | give_dPdF_from (const FloatMatrix &dSdE, FloatMatrix &answer, GaussPoint *gp) |
void | convert_dSdE_2_dPdF (FloatMatrix &answer, const FloatMatrix &dSdE, const FloatArray &S, const FloatArray &F, MaterialMode matMode) |
virtual void | giveThermalDilatationVector (FloatArray &answer, GaussPoint *gp, TimeStep *tStep) |
Returns a vector of coefficients of thermal dilatation in direction of each material principal (local) axis. More... | |
double | giveReferenceTemperature () |
Returns the reference temperature of receiver. More... | |
virtual void | computeStressIndependentStrainVector (FloatArray &answer, GaussPoint *gp, TimeStep *tStep, ValueModeType mode) |
Computes reduced strain vector in given integration point, generated by internal processes in material, which are independent on loading in particular integration point. More... | |
virtual void | computeStressIndependentStrainVector_3d (FloatArray &answer, GaussPoint *gp, TimeStep *tStep, ValueModeType mode) |
virtual void | give3dMaterialStiffnessMatrix_dPdF (FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) |
virtual void | give3dMaterialStiffnessMatrix_dCde (FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) |
void | giveStressDependentPartOfStrainVector (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrainVector, TimeStep *tStep, ValueModeType mode) |
Method for subtracting from reduced space strain vector its stress-independent parts (caused by temperature, shrinkage, creep and possibly by other phenomena). More... | |
void | giveStressDependentPartOfStrainVector_3d (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrainVector, TimeStep *tStep, ValueModeType mode) |
virtual int | setIPValue (const FloatArray &value, GaussPoint *gp, InternalStateType type) |
Sets the value of a certain variable at a given integration point to the given value. More... | |
virtual int | giveIPValue (FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) |
Returns the integration point corresponding value in Reduced form. More... | |
virtual void | give2dBeamLayerStiffMtrx (FloatMatrix &answer, MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep) |
Method for computing 2d beam layer stiffness matrix of receiver. More... | |
virtual void | givePlateLayerStiffMtrx (FloatMatrix &answer, MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep) |
Method for computing 2d plate layer stiffness matrix of receiver. More... | |
virtual void | giveFiberStiffMtrx (FloatMatrix &answer, MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep) |
Method for computing 1d fiber stiffness matrix of receiver. More... | |
virtual void | give2dLatticeStiffMtrx (FloatMatrix &answer, MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep) |
Method for computing 2d lattice stiffness matrix of receiver. More... | |
virtual void | give3dLatticeStiffMtrx (FloatMatrix &answer, MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep) |
Method for computing 3d lattice stiffness matrix of receiver. More... | |
virtual void | give2dPlateSubSoilStiffMtrx (FloatMatrix &answer, MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep) |
Method for computing stiffness matrix of plate subsoil model. More... | |
virtual void | give3dBeamSubSoilStiffMtrx (FloatMatrix &answer, MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep) |
Method for computing stiffness matrix of beam3d subsoil model. More... | |
virtual void | giveFirstPKStressVector_3d (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedF, TimeStep *tStep) |
Default implementation relies on giveRealStressVector for second Piola-Kirchoff stress. More... | |
virtual void | giveFirstPKStressVector_PlaneStrain (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedF, TimeStep *tStep) |
Default implementation relies on giveFirstPKStressVector_3d. More... | |
virtual void | giveFirstPKStressVector_PlaneStress (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedF, TimeStep *tStep) |
Default implementation relies on giveFirstPKStressVector_3d. More... | |
virtual void | giveFirstPKStressVector_1d (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedF, TimeStep *tStep) |
Default implementation relies on giveFirstPKStressVector_3d. More... | |
virtual void | giveCauchyStressVector_3d (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedF, TimeStep *tStep) |
virtual void | giveCauchyStressVector_PlaneStrain (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedF, TimeStep *tStep) |
virtual void | giveCauchyStressVector_PlaneStress (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedF, TimeStep *tStep) |
virtual void | giveCauchyStressVector_1d (FloatArray &answer, GaussPoint *gp, const FloatArray &reducedF, TimeStep *tStep) |
virtual void | givePlaneStressStiffMtrx (FloatMatrix &answer, MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep) |
Method for computing plane stress stiffness matrix of receiver. More... | |
virtual void | givePlaneStressStiffMtrx_dPdF (FloatMatrix &answer, MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep) |
virtual void | givePlaneStressStiffMtrx_dCde (FloatMatrix &answer, MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep) |
virtual void | givePlaneStrainStiffMtrx (FloatMatrix &answer, MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep) |
Method for computing plane strain stiffness matrix of receiver. More... | |
virtual void | givePlaneStrainStiffMtrx_dPdF (FloatMatrix &answer, MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep) |
virtual void | givePlaneStrainStiffMtrx_dCde (FloatMatrix &answer, MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep) |
virtual void | give1dStressStiffMtrx (FloatMatrix &answer, MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep) |
Method for computing 1d stiffness matrix of receiver. More... | |
virtual void | give1dStressStiffMtrx_dPdF (FloatMatrix &answer, MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep) |
virtual void | give1dStressStiffMtrx_dCde (FloatMatrix &answer, MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep) |
Public Member Functions inherited from oofem::Material | |
Material (int n, Domain *d) | |
Constructor. More... | |
virtual | ~Material () |
Destructor. More... | |
virtual bool | isCharacteristicMtrxSymmetric (MatResponseMode rMode) |
Returns true if stiffness matrix of receiver is symmetric Default implementation returns true. More... | |
virtual double | give (int aProperty, GaussPoint *gp) |
Returns the value of material property 'aProperty'. More... | |
virtual bool | hasProperty (int aProperty, GaussPoint *gp) |
Returns true if 'aProperty' exists on material. More... | |
virtual void | modifyProperty (int aProperty, double value, GaussPoint *gp) |
Modify 'aProperty', which already exists on material. More... | |
double | giveCastingTime () |
virtual bool | isActivated (TimeStep *tStep) |
virtual int | hasNonLinearBehaviour () |
Returns nonzero if receiver is non linear. More... | |
virtual int | hasCastingTimeSupport () |
Tests if material supports casting time. More... | |
virtual void | printYourself () |
Prints receiver state on stdout. Useful for debugging. More... | |
virtual int | checkConsistency () |
Allows programmer to test some internal data, before computation begins. More... | |
virtual int | initMaterial (Element *element) |
Optional function to call specific procedures when initializing a material. More... | |
virtual MaterialStatus * | giveStatus (GaussPoint *gp) const |
Returns material status of receiver in given integration point. More... | |
virtual int | packUnknowns (DataStream &buff, TimeStep *tStep, GaussPoint *ip) |
Pack all necessary data of integration point (according to element parallel_mode) into given communication buffer. More... | |
virtual int | unpackAndUpdateUnknowns (DataStream &buff, TimeStep *tStep, GaussPoint *ip) |
Unpack and updates all necessary data of given integration point (according to element parallel_mode) into given communication buffer. More... | |
virtual int | estimatePackSize (DataStream &buff, GaussPoint *ip) |
Estimates the necessary pack size to hold all packed data of receiver. More... | |
virtual double | predictRelativeComputationalCost (GaussPoint *gp) |
Returns the weight representing relative computational cost of receiver The reference material model is linear isotropic material - its weight is set to 1.0 The other material models should compare to this reference model. More... | |
virtual double | predictRelativeRedistributionCost (GaussPoint *gp) |
Returns the relative redistribution cost of the receiver. More... | |
virtual MaterialStatus * | CreateStatus (GaussPoint *gp) const |
Creates new copy of associated status and inserts it into given integration point. More... | |
Public Member Functions inherited from oofem::FEMComponent | |
FEMComponent (int n, Domain *d) | |
Regular constructor, creates component with given number and belonging to given domain. More... | |
virtual | ~FEMComponent () |
Virtual destructor. More... | |
virtual const char * | giveInputRecordName () const =0 |
Domain * | giveDomain () const |
virtual void | setDomain (Domain *d) |
Sets associated Domain. More... | |
int | giveNumber () const |
void | setNumber (int num) |
Sets number of receiver. More... | |
virtual void | updateLocalNumbering (EntityRenumberingFunctor &f) |
Local renumbering support. More... | |
virtual contextIOResultType | saveContext (DataStream &stream, ContextMode mode, void *obj=NULL) |
Stores receiver state to output stream. More... | |
virtual contextIOResultType | restoreContext (DataStream &stream, ContextMode mode, void *obj=NULL) |
Restores the receiver state previously written in stream. More... | |
virtual void | printOutputAt (FILE *file, TimeStep *tStep) |
Prints output of receiver to stream, for given time step. More... | |
virtual Interface * | giveInterface (InterfaceType t) |
Interface requesting service. More... | |
std::string | errorInfo (const char *func) const |
Returns string for prepending output (used by error reporting macros). More... | |
Protected Member Functions | |
virtual MaterialStatus * | CreateMicroplaneStatus (GaussPoint *gp)=0 |
virtual void | initTempStatus (GaussPoint *gp) |
Initializes temporary variables stored in integration point status at the beginning of new time step. More... | |
Protected Attributes | |
int | numberOfMicroplanes |
Number of microplanes. More... | |
double | microplaneWeights [MAX_NUMBER_OF_MICROPLANES] |
Integration weights of microplanes. More... | |
double | microplaneNormals [MAX_NUMBER_OF_MICROPLANES][3] |
Normals of microplanes. More... | |
double | Kronecker [6] |
Kronecker's delta. More... | |
double | N [MAX_NUMBER_OF_MICROPLANES][6] |
Normal projection tensors for all microplanes. More... | |
double | M [MAX_NUMBER_OF_MICROPLANES][6] |
Shear projection tensors (m direction) for all microplanes. More... | |
double | L [MAX_NUMBER_OF_MICROPLANES][6] |
Shear projection tensors (l direction) for all microplanes. More... | |
double | E |
Young's modulus. More... | |
double | nu |
Poisson's ratio. More... | |
Protected Attributes inherited from oofem::StructuralMaterial | |
double | referenceTemperature |
Reference temperature (temperature, when material has been built into structure). More... | |
Protected Attributes inherited from oofem::Material | |
Dictionary | propertyDictionary |
Property dictionary. More... | |
double | castingTime |
Casting time. More... | |
Protected Attributes inherited from oofem::FEMComponent | |
int | number |
Component number. More... | |
Domain * | domain |
Link to domain object, useful for communicating with other FEM components. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from oofem::StructuralMaterial | |
static int | giveSymVI (int ind1, int ind2) |
static int | giveVI (int ind1, int ind2) |
static int | giveVoigtVectorMask (IntArray &answer, MaterialMode mmode) |
Returns a mask of the vector indicies corresponding to components in a general (non-symmetric) second order tensor of some stress/strain/deformation measure that performes work. More... | |
static int | giveVoigtSymVectorMask (IntArray &answer, MaterialMode mmode) |
The same as giveVoigtVectorMask but returns a mask corresponding to a symmetric second order tensor. More... | |
static void | giveInvertedVoigtVectorMask (IntArray &answer, MaterialMode mmode) |
Gives the inverted version of giveVoigtVectorMask. More... | |
static int | giveSizeOfVoigtVector (MaterialMode mmode) |
Returns the size of reduced stress/strain vector according to given mode. More... | |
static int | giveSizeOfVoigtSymVector (MaterialMode mmode) |
Returns the size of symmetric part of a reduced stress/strain vector according to given mode. More... | |
static void | giveFullVectorForm (FloatArray &answer, const FloatArray &strainVector, MaterialMode matMode) |
Converts the reduced symmetric Voigt vector (2nd order tensor) to full form. More... | |
static void | giveFullVectorFormF (FloatArray &answer, const FloatArray &strainVector, MaterialMode matMode) |
Converts the reduced deformation gradient Voigt vector (2nd order tensor). More... | |
static void | giveFullSymVectorForm (FloatArray &answer, const FloatArray &vec, MaterialMode matMode) |
Converts the reduced unsymmetric Voigt vector (2nd order tensor) to full form. More... | |
static void | giveReducedVectorForm (FloatArray &answer, const FloatArray &vec, MaterialMode matMode) |
Converts the full symmetric Voigt vector (2nd order tensor) to reduced form. More... | |
static void | giveReducedSymVectorForm (FloatArray &answer, const FloatArray &vec, MaterialMode matMode) |
Converts the full unsymmetric Voigt vector (2nd order tensor) to reduced form. More... | |
static void | giveFullSymMatrixForm (FloatMatrix &answer, const FloatMatrix &red, MaterialMode matMode) |
Converts the full unsymmetric Voigt matrix (4th order tensor) to reduced form. More... | |
static void | giveReducedMatrixForm (FloatMatrix &answer, const FloatMatrix &full, MaterialMode matMode) |
Converts the full symmetric Voigt matrix (4th order tensor) to reduced form. More... | |
static void | giveReducedSymMatrixForm (FloatMatrix &answer, const FloatMatrix &full, MaterialMode matMode) |
Converts the full unsymmetric Voigt matrix (4th order tensor) to reduced form. More... | |
static void | transformStrainVectorTo (FloatArray &answer, const FloatMatrix &base, const FloatArray &strainVector, bool transpose=false) |
Transforms 3d strain vector into another coordinate system. More... | |
static void | transformStressVectorTo (FloatArray &answer, const FloatMatrix &base, const FloatArray &stressVector, bool transpose=false) |
Transforms 3d stress vector into another coordinate system. More... | |
static double | computeVonMisesStress (const FloatArray *currentStress) |
Computes equivalent of von Mises stress. More... | |
static void | giveStrainVectorTranformationMtrx (FloatMatrix &answer, const FloatMatrix &base, bool transpose=false) |
Computes 3d strain vector transformation matrix from standard vector transformation matrix. More... | |
static void | give2DStrainVectorTranformationMtrx (FloatMatrix &answer, const FloatMatrix &base, bool transpose=false) |
Computes 2d strain vector transformation matrix from standard vector transformation matrix. More... | |
static void | giveStressVectorTranformationMtrx (FloatMatrix &answer, const FloatMatrix &base, bool transpose=false) |
Computes 3d stress vector transformation matrix from standard vector transformation matrix. More... | |
static void | givePlaneStressVectorTranformationMtrx (FloatMatrix &answer, const FloatMatrix &base, bool transpose=false) |
Computes 2d stress vector transformation matrix from standard vector transformation matrix. More... | |
static void | sortPrincDirAndValCloseTo (FloatArray *pVal, FloatMatrix *pDir, FloatMatrix *toPDir) |
Method for sorting newly computed principal values (pVal) and corresponding principal directions (pDir) to be closed to some (often previous) principal directions (toPDir). More... | |
static void | computePrincipalValues (FloatArray &answer, const FloatArray &s, stressStrainPrincMode mode) |
Common functions for convenience. More... | |
static void | computePrincipalValDir (FloatArray &answer, FloatMatrix &dir, const FloatArray &s, stressStrainPrincMode mode) |
Computes principal values and directions of stress or strain vector. More... | |
static double | computeDeviatoricVolumetricSplit (FloatArray &dev, const FloatArray &s) |
Computes split of receiver into deviatoric and volumetric part. More... | |
static void | computeDeviatoricVolumetricSum (FloatArray &s, const FloatArray &dev, double mean) |
static void | applyDeviatoricElasticCompliance (FloatArray &strain, const FloatArray &stress, double EModulus, double nu) |
static void | applyDeviatoricElasticCompliance (FloatArray &strain, const FloatArray &stress, double GModulus) |
static void | applyDeviatoricElasticStiffness (FloatArray &stress, const FloatArray &strain, double EModulus, double nu) |
static void | applyDeviatoricElasticStiffness (FloatArray &stress, const FloatArray &strain, double GModulus) |
static void | applyElasticStiffness (FloatArray &stress, const FloatArray &strain, double EModulus, double nu) |
static void | applyElasticCompliance (FloatArray &strain, const FloatArray &stress, double EModulus, double nu) |
static double | computeStressNorm (const FloatArray &stress) |
static double | computeFirstInvariant (const FloatArray &s) |
static double | computeSecondStressInvariant (const FloatArray &s) |
static double | computeThirdStressInvariant (const FloatArray &s) |
static double | computeFirstCoordinate (const FloatArray &s) |
static double | computeSecondCoordinate (const FloatArray &s) |
static double | computeThirdCoordinate (const FloatArray &s) |
Static Public Attributes inherited from oofem::StructuralMaterial | |
static std::vector< std::vector< int > > | vIindex |
Voigt index map. More... | |
static std::vector< std::vector< int > > | svIndex |
Symmetric Voigt index map. More... | |
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 62 of file microplanematerial.h.
|
inline |
Constructor.
Creates Microplane Material belonging to domain d, with number n.
Definition at line 105 of file microplanematerial.h.
|
inlinevirtual |
Destructor.
Definition at line 107 of file microplanematerial.h.
References computeNormalDeviatoricStrainComponent(), computeNormalStrainComponent(), computeNormalVolumetricStrainComponent(), computeShearLStrainComponent(), computeShearMStrainComponent(), computeStrainVectorComponents(), CreateMicroplaneStatus(), give3dMaterialStiffnessMatrix(), giveCorrespondingSlaveMaterialMode(), giveInputRecord(), giveMicroplane(), giveMicroplaneIntegrationWeight(), giveMicroplaneNormal(), giveMicroplaneStatus(), giveRealMicroplaneStressVector(), initializeData(), initializeFrom(), initTempStatus(), restoreIPContext(), and saveIPContext().
double oofem::MicroplaneMaterial::computeNormalDeviatoricStrainComponent | ( | Microplane * | mplane, |
const FloatArray & | macroStrain | ||
) |
Computes the normal deviatoric component of macro strain on given microplane.
Definition at line 222 of file microplanematerial.C.
References computeNormalStrainComponent(), and computeNormalVolumetricStrainComponent().
Referenced by ~MicroplaneMaterial().
double oofem::MicroplaneMaterial::computeNormalStrainComponent | ( | Microplane * | mplane, |
const FloatArray & | macroStrain | ||
) |
Computes the length of normal strain vector on given microplane.
Definition at line 201 of file microplanematerial.C.
References oofem::FloatArray::at(), oofem::GaussPoint::giveNumber(), and N.
Referenced by oofem::MDM::computeDamageOnPlane(), computeNormalDeviatoricStrainComponent(), oofem::M1Material::giveRealStressVector_3d(), and ~MicroplaneMaterial().
double oofem::MicroplaneMaterial::computeNormalVolumetricStrainComponent | ( | Microplane * | mplane, |
const FloatArray & | macroStrain | ||
) |
Computes the normal volumetric component of macro strain on given microplane.
Definition at line 215 of file microplanematerial.C.
References oofem::FloatArray::at().
Referenced by computeNormalDeviatoricStrainComponent(), and ~MicroplaneMaterial().
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 244 of file microplanematerial.C.
References oofem::FloatArray::at(), oofem::GaussPoint::giveNumber(), and L.
Referenced by oofem::MDM::computeDamageOnPlane(), and ~MicroplaneMaterial().
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 230 of file microplanematerial.C.
References oofem::FloatArray::at(), oofem::GaussPoint::giveNumber(), and M.
Referenced by oofem::MDM::computeDamageOnPlane(), and ~MicroplaneMaterial().
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 258 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_3d(), and ~MicroplaneMaterial().
|
protectedpure virtual |
Implemented in oofem::MDM, oofem::M4Material, and oofem::M1Material.
Referenced by giveMicroplaneStatus(), and ~MicroplaneMaterial().
|
virtual |
Computes full 3d material stiffness matrix at given integration point, time, respecting load history in integration point.
answer | Computed results. |
mode | Material response mode. |
gp | Integration point. |
tStep | Time step (most models are able to respond only when tStep is current time step). |
Reimplemented from oofem::StructuralMaterial.
Reimplemented in oofem::MDM, and oofem::M1Material.
Definition at line 281 of file microplanematerial.C.
References oofem::FloatMatrix::at(), E, nu, oofem::FloatMatrix::resize(), and oofem::FloatMatrix::zero().
Referenced by oofem::M1Material::give3dMaterialStiffnessMatrix(), and ~MicroplaneMaterial().
|
virtual |
Returns corresponding material mode for microplane according to macro integration mode.
Definition at line 79 of file microplanematerial.C.
Referenced by giveMicroplane(), and ~MicroplaneMaterial().
|
virtual |
Setups the input record string of receiver.
input | Dynamic input record to be filled by receiver. |
Reimplemented from oofem::StructuralMaterial.
Reimplemented in oofem::MDM.
Definition at line 314 of file microplanematerial.C.
References _IFT_MicroplaneMaterial_nmp, oofem::StructuralMaterial::giveInputRecord(), numberOfMicroplanes, and oofem::DynamicInputRecord::setField().
Referenced by oofem::MDM::giveInputRecord(), and ~MicroplaneMaterial().
Microplane * oofem::MicroplaneMaterial::giveMicroplane | ( | int | i, |
GaussPoint * | masterGp | ||
) |
Returns i-th microplane belonging to master-macro-integration point. )-based indexing.
Definition at line 45 of file microplanematerial.C.
References oofem::GaussPoint::gaussPoints, giveCorrespondingSlaveMaterialMode(), oofem::GaussPoint::giveIntegrationRule(), oofem::GaussPoint::giveMaterialMode(), oofem::GaussPoint::giveSlaveGaussPoint(), numberOfMicroplanes, and OOFEM_ERROR.
Referenced by oofem::MDM::computeLocalDamageTensor(), oofem::MicroplaneMaterial_Bazant::giveRealStressVector_3d(), oofem::M1Material::giveRealStressVector_3d(), initTempStatus(), restoreIPContext(), saveIPContext(), and ~MicroplaneMaterial().
|
virtual |
Returns microplane integration weight.
mplane | Microplane. |
Definition at line 193 of file microplanematerial.C.
References oofem::GaussPoint::giveNumber(), and microplaneWeights.
Referenced by oofem::MicroplaneMaterial_Bazant::giveRealStressVector_3d(), and ~MicroplaneMaterial().
|
virtual |
Computes normal of given microplane.
answer | Normal of given microplane. |
mplane | Microplane, which normal will be computed. |
Definition at line 182 of file microplanematerial.C.
References oofem::FloatArray::at(), oofem::GaussPoint::giveNumber(), microplaneNormals, and oofem::FloatArray::resize().
Referenced by ~MicroplaneMaterial().
|
virtual |
Definition at line 85 of file microplanematerial.C.
References CreateMicroplaneStatus(), oofem::GaussPoint::giveMaterialStatus(), oofem::FEMComponent::giveNumber(), and oofem::GaussPoint::setMaterialStatus().
Referenced by oofem::M4Material::giveRealMicroplaneStressVector(), initTempStatus(), restoreIPContext(), saveIPContext(), and ~MicroplaneMaterial().
|
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.
answer | Computed result. |
mplane | Pointer to microplane object, for which response is computed. |
strain | Strain vector. |
tStep | Time step. |
Implemented in oofem::MDM, oofem::M1Material, and oofem::M4Material.
Referenced by oofem::MicroplaneMaterial_Bazant::giveRealStressVector_3d(), and ~MicroplaneMaterial().
|
virtual |
Initializes internal data (integration weights, microplane normals and computes projection tensors).
numberOfMicroplanes | Number of required microplanes. |
Reimplemented in oofem::MDM.
Definition at line 322 of file microplanematerial.C.
References oofem::FloatArray::at(), oofem::FloatArray::beVectorProductOf(), Kronecker, L, M, microplaneNormals, microplaneWeights, N, numberOfMicroplanes, and OOFEM_ERROR.
Referenced by oofem::MDM::initializeData(), initializeFrom(), and ~MicroplaneMaterial().
|
virtual |
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.
ir | Input record to initialize from. |
Reimplemented from oofem::StructuralMaterial.
Reimplemented in oofem::MDM, oofem::M4Material, and oofem::M1Material.
Definition at line 296 of file microplanematerial.C.
References _IFT_MicroplaneMaterial_e, _IFT_MicroplaneMaterial_n, _IFT_MicroplaneMaterial_nmp, E, initializeData(), oofem::StructuralMaterial::initializeFrom(), IR_GIVE_FIELD, oofem::IRRT_OK, nu, and numberOfMicroplanes.
Referenced by oofem::M1Material::initializeFrom(), oofem::M4Material::initializeFrom(), oofem::MDM::initializeFrom(), and ~MicroplaneMaterial().
|
protectedvirtual |
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 106 of file microplanematerial.C.
References giveMicroplane(), giveMicroplaneStatus(), oofem::Material::giveStatus(), oofem::MaterialStatus::initTempStatus(), and numberOfMicroplanes.
Referenced by oofem::MicroplaneMaterial_Bazant::giveRealStressVector_3d(), oofem::M1Material::giveRealStressVector_3d(), and ~MicroplaneMaterial().
|
virtual |
Reads integration point state to output stream.
stream | Output stream. |
mode | Determines amount of info required in stream (state, definition, ...). |
gp | integration point. |
throws | an ContextIOERR exception if error encountered. |
Reimplemented from oofem::Material.
Definition at line 150 of file microplanematerial.C.
References oofem::CIO_BADOBJ, oofem::CIO_OK, giveMicroplane(), giveMicroplaneStatus(), numberOfMicroplanes, oofem::FEMComponent::restoreContext(), oofem::Material::restoreIPContext(), and THROW_CIOERR.
Referenced by ~MicroplaneMaterial().
|
virtual |
Stores integration point state to output stream.
stream | Output stream. |
mode | Determines amount of info required in stream (state, definition, ...). |
gp | integration point. |
throws | an ContextIOERR exception if error encountered. |
Reimplemented from oofem::Material.
Definition at line 122 of file microplanematerial.C.
References oofem::CIO_BADOBJ, oofem::CIO_OK, giveMicroplane(), giveMicroplaneStatus(), numberOfMicroplanes, oofem::FEMComponent::saveContext(), oofem::Material::saveIPContext(), and THROW_CIOERR.
Referenced by ~MicroplaneMaterial().
|
protected |
Young's modulus.
Definition at line 93 of file microplanematerial.h.
Referenced by give3dMaterialStiffnessMatrix(), oofem::M1Material::giveIPValue(), oofem::MDM::giveRawMDMParameters(), oofem::M4Material::giveRealMicroplaneStressVector(), oofem::M1Material::initializeFrom(), oofem::M4Material::initializeFrom(), initializeFrom(), oofem::M1Material::M1Material(), and oofem::MDM::transformStrainToPDC().
|
protected |
Kronecker's delta.
Definition at line 74 of file microplanematerial.h.
Referenced by oofem::MicroplaneMaterial_Bazant::giveRealStressVector_3d(), and initializeData().
|
protected |
Shear projection tensors (l direction) for all microplanes.
Due to symmetry, compressed form is stored.
Definition at line 90 of file microplanematerial.h.
Referenced by computeShearLStrainComponent(), computeStrainVectorComponents(), oofem::MicroplaneMaterial_Bazant::giveRealStressVector_3d(), initializeData(), and oofem::MDM::initializeData().
|
protected |
Shear projection tensors (m direction) for all microplanes.
Due to symmetry, compressed form is stored.
Definition at line 85 of file microplanematerial.h.
Referenced by computeShearMStrainComponent(), computeStrainVectorComponents(), oofem::MicroplaneMaterial_Bazant::giveRealStressVector_3d(), initializeData(), and oofem::MDM::initializeData().
|
protected |
Normals of microplanes.
Definition at line 71 of file microplanematerial.h.
Referenced by giveMicroplaneNormal(), initializeData(), and oofem::MDM::initializeData().
|
protected |
Integration weights of microplanes.
Definition at line 69 of file microplanematerial.h.
Referenced by oofem::MDM::computeLocalDamageTensor(), oofem::M1Material::give3dMaterialStiffnessMatrix(), giveMicroplaneIntegrationWeight(), oofem::M1Material::giveRealStressVector_3d(), initializeData(), and oofem::MDM::initializeData().
|
protected |
Normal projection tensors for all microplanes.
Due to symmetry, compressed form is stored.
Definition at line 80 of file microplanematerial.h.
Referenced by oofem::MDM::computeLocalDamageTensor(), computeNormalStrainComponent(), computeStrainVectorComponents(), oofem::M1Material::give3dMaterialStiffnessMatrix(), oofem::MicroplaneMaterial_Bazant::giveRealStressVector_3d(), oofem::M1Material::giveRealStressVector_3d(), initializeData(), oofem::MDM::initializeData(), and oofem::MDM::transformStrainToPDC().
|
protected |
Poisson's ratio.
Definition at line 96 of file microplanematerial.h.
Referenced by give3dMaterialStiffnessMatrix(), oofem::M1Material::giveIPValue(), oofem::M1Material::initializeFrom(), oofem::M4Material::initializeFrom(), initializeFrom(), and oofem::M1Material::M1Material().
|
protected |
Number of microplanes.
Definition at line 66 of file microplanematerial.h.
Referenced by oofem::MDM::computeLocalDamageTensor(), oofem::MDM::CreateStatus(), oofem::M1Material::give3dMaterialStiffnessMatrix(), giveInputRecord(), giveMicroplane(), oofem::MicroplaneMaterial_Bazant::giveRealStressVector_3d(), oofem::M1Material::giveRealStressVector_3d(), initializeData(), oofem::MDM::initializeData(), initializeFrom(), initTempStatus(), restoreIPContext(), and saveIPContext().