38 #include "../sm/Materials/structuralmaterial.h" 42 #include "../sm/Materials/structuralms.h" 49 #define _IFT_ConcreteDPM_Name "concretedpm" 50 #define _IFT_ConcreteDPM_fc "fc" 51 #define _IFT_ConcreteDPM_ft "ft" 52 #define _IFT_ConcreteDPM_ecc "ecc" 53 #define _IFT_ConcreteDPM_kinit "kinit" 54 #define _IFT_ConcreteDPM_ahard "ahard" 55 #define _IFT_ConcreteDPM_bhard "bhard" 56 #define _IFT_ConcreteDPM_chard "chard" 57 #define _IFT_ConcreteDPM_dhard "dhard" 58 #define _IFT_ConcreteDPM_asoft "asoft" 59 #define _IFT_ConcreteDPM_dilation "dilation" 60 #define _IFT_ConcreteDPM_yieldtol "yieldtol" 61 #define _IFT_ConcreteDPM_newtoniter "newtoniter" 62 #define _IFT_ConcreteDPM_wf "wf" 63 #define _IFT_ConcreteDPM_gf "gf" 64 #define _IFT_ConcreteDPM_href "href" 65 #define _IFT_ConcreteDPM_helem "helem" 75 #define SOPHISTICATED_SIZEDEPENDENT_ADJUSTMENT 133 #ifdef SOPHISTICATED_SIZEDEPENDENT_ADJUSTMENT 174 return sqrt( .5 * ( 2. * dev [ 0 ] * dev [ 0 ] + 2. * dev [ 1 ] * dev [ 1 ] + 2. * dev [ 2 ] * dev [ 2 ] +
175 dev [ 3 ] * dev [ 3 ] + dev [ 4 ] * dev [ 4 ] + dev [ 5 ] * dev [ 5 ] ) );
205 #ifdef SOPHISTICATED_SIZEDEPENDENT_ADJUSTMENT 301 { tempVolumetricPlasticStrain = v; }
450 #ifdef SOPHISTICATED_SIZEDEPENDENT_ADJUSTMENT 472 virtual void giveRealStressVector_3d(
FloatArray &answer,
491 bool checkForVertexCase(
double &answer,
522 double computeYieldValue(
double sig,
525 double tempKappa)
const;
533 double computeHardeningOne(
double tempKappa)
const;
541 double computeHardeningOnePrime(
double tempKappa)
const;
552 double computeDFDKappa(
double sig,
564 double computeDKappaDDeltaLambda(
double sig,
575 virtual double computeDuctilityMeasure(
double sig,
584 void computeDDuctilityMeasureDInv(
FloatArray &answer,
612 double computeRatioPotential(
double sig,
638 void computeDDKappaDDeltaLambdaDInv(
FloatArray &answer,
647 double computeDDKappaDDeltaLambdaDKappa(
double sig,
659 double tempKappa)
const;
664 double computeTempKappa(
double kappaInitial,
682 virtual double computeDamageParam(
double kappa,
GaussPoint *gp);
685 double computeInverseDamage(
double dam,
GaussPoint *gp);
697 void initDamaged(
double kappa,
712 void computeDSigDStress(
FloatArray &answer)
const;
721 double computeDRDCosTheta(
double theta,
double ecc)
const;
723 virtual void give3dMaterialStiffnessMatrix(
FloatMatrix &answer,
InternalStateType
Type representing the physical meaning of element or constitutive model internal variable.
double ef
Control parameter for the exponential softening law.
LinearElasticMaterial * giveLinearElasticMaterial()
virtual MaterialStatus * giveStatus(GaussPoint *gp) const
Returns material status of receiver in given integration point.
GaussPoint * gp
Associated integration point.
void letTempKappaPBe(double v)
Assign the temp value of the hardening variable of the plasticity model.
The purpose of DataStream abstract class is to allow to store/restore context to different streams...
double BHard
Parameter of the ductilityMeasure of the plasticity model.
This class implements a structural material status information.
FloatArray tempPlasticStrain
virtual contextIOResultType saveContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Stores receiver state to output stream.
int giveStateFlag() const
Get the state flag from the material status.
Concrete_VertexType vertexType
double dilationConst
Control parameter for te volumetric plastic flow of the plastic potential.
#define _IFT_ConcreteDPM_Name
MatResponseMode
Describes the character of characteristic material matrix.
void letTempPlasticStrainBe(const FloatArray &v)
Assign the temp value of deviatoric plastic strain.
void letTempEquivStrainBe(double v)
Assign the temp value of the hardening variable of the damage model.
const FloatArray & givePlasticStrain() const
Get the plastic strain deviator from the material status.
This class is a abstract base class for all linear elastic material models in a finite element proble...
double thetaTrial
The lode angle of the trial stress.
double giveDeltaEquivStrain() const
Get the temp value of the hardening variable of the damage model from the material status...
double eM
Elastic Young's modulus.
double giveEquivStrain() const
Get the equivalent strain from the material status.
double kappaD
Hardening variable of damage model.
double giveLe()
Gives the characteristic length.
virtual const char * giveClassName() const
virtual contextIOResultType restoreContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Restores the receiver state previously written in stream.
double giveDeviatoricPlasticStrainNorm()
Get the deviatoric plastic strain norm from the material status.
ConcreteDPMStatus(int n, Domain *d, GaussPoint *gp)
Constructor.
double tempVolumetricPlasticStrain
double DHard
Parameter of the ductilityMeasure of the plasticity model.
virtual ~ConcreteDPMStatus()
Destructor.
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
LinearElasticMaterial * linearElasticMaterial
Pointer for linear elastic material.
virtual const char * giveClassName() const
double giveTempVolumetricPlasticStrain() const
Get the temp value of the volumetric plastic strain in plane stress.
double giveEpsLoc() const
Get the value of omega*ft/E at the expected onset of localization (defined by negative second-order w...
virtual const char * giveInputRecordName() const
double yieldTol
Yield tolerance for the plasticity model.
double kappaP
Hardening variable of plasticity model.
double giveKappaD() const
Get the hardening variable of the damage model from the material status.
virtual void updateYourself(TimeStep *tStep)
Update equilibrium history variables according to temp-variables.
virtual ConcreteDPMStatus * giveStatus(GaussPoint *gp) const
Returns material status of receiver in given integration point.
double m
The friction parameter of the yield surface.
void letTempKappaDBe(double v)
Assign the temp value of the hardening variable of the damage model.
state_flag_values
Values of history variable state_flag.
void letTempStateFlagBe(int v)
Assign the temp value of the state flag.
double giveTempKappaP() const
Get the temp value of the hardening variable of the plasticity model from the material status...
double yieldHardInitial
Parameter of the hardening law of the plasticity model.
double ASoft
Parameter of the ductilityMeasure of the damage model.
void letDeltaLambdaBe(double v)
Assign the value of deviatoric plastic strain.
Abstract base class representing a material status information.
FloatArray effectiveStress
Stress and its deviatoric part.
int setIPValue(const FloatArray &value, InternalStateType type)
double mQ
The dilation parameter of the plastic potential.
Class representing vector of real numbers.
double deltaLambda
Plastic multiplier of the plasticity model.
const FloatArray & giveTempPlasticStrain() const
Get the temp value of the full plastic strain vector from the material status.
Implementation of matrix containing floating point numbers.
double nu
Elastic Poisson's ration.
IRResultType
Type defining the return values of InputRecord reading operations.
double kM
Elastic bulk modulus.
void letDeltaEquivStrainBe(double v)
Assign the temp value of the damage variable of the damage model.
double sig
the volumetric stress.
double AHard
Parameter of the ductilityMeasure of the plasticity model.
double giveVolumetricPlasticStrain() const
double giveTempKappaD() const
Get the temp value of the hardening variable of the damage model from the material status...
virtual bool isCharacteristicMtrxSymmetric(MatResponseMode rMode)
Returns true if stiffness matrix of receiver is symmetric Default implementation returns true...
double rho
The length of the deviatoric stress.
int giveTempStateFlag() const
Get the temp value of the state flag from the material status.
virtual void restoreConsistency()
Restores consistency of the status, i.e., computes or corrects the values of certain status variables...
static double computeDeviatoricVolumetricSplit(FloatArray &dev, const FloatArray &s)
Computes split of receiver into deviatoric and volumetric part.
long ContextMode
Context mode (mask), defining the type of information written/read to/from context.
double gM
Elastic shear modulus.
Abstract base class for all "structural" constitutive models.
void letTempEpslocBe(double v)
History variable of the modified size-dependent adjustment Assign the temp value of the damage variab...
double helem
Element size (to be used in fracture energy approach (crack band).
void letTempVolumetricPlasticStrainBe(double v)
Assign the temp value of the volumetric plastic strain in plane stress.
double CHard
Parameter of the ductilityMeasure of the plasticity model.
virtual void initTempStatus()
Initializes the temporary internal variables, describing the current state according to previously re...
int newtonIter
Maximum number of iterations for stress return.
double giveTempDamage() const
Get the temp value of the hardening variable of the damage model from the material status...
the oofem namespace is to define a context or scope in which all oofem names are defined.
double damage
Damage variable of damage model.
double giveKappaP() const
Get the hardening variable of the plasticity model.
double giveDamage() const
Get the damage variable of the damage model from the material status.
Class representing integration point in finite element program.
This class contains the combination of a local plasticity model for concrete with a local isotropic d...
Class representing solution step.
virtual void printOutputAt(FILE *file, TimeStep *tStep)
Print receiver's output to given stream.
void letTempDamageBe(double v)
Assign the temp value of the damage variable of the damage model.
void setLe(double ls)
Sets the characteristic length.