40 #include "../sm/Materials/structuralms.h" 41 #include "../sm/Materials/structuralmaterial.h" 46 #define _IFT_DustMaterial_Name "dustmat" 47 #define _IFT_DustMaterial_alpha "alpha" 48 #define _IFT_DustMaterial_beta "beta" 49 #define _IFT_DustMaterial_lambda "lambda" 50 #define _IFT_DustMaterial_theta "theta" 51 #define _IFT_DustMaterial_ft "ft" 52 #define _IFT_DustMaterial_hardeningType "hardeningtype" 53 #define _IFT_DustMaterial_mStiff "mstiff" 54 #define _IFT_DustMaterial_rEll "rell" 55 #define _IFT_DustMaterial_x0 "x0" 56 #define _IFT_DustMaterial_newtonTol "newtontol" 57 #define _IFT_DustMaterial_newtonIter "newtoniter" 58 #define _IFT_DustMaterial_wHard "whard" 59 #define _IFT_DustMaterial_dHard "dhard" 273 double functionFe(
double i1);
279 double functionFeDI1(
double i1);
285 double functionFeDI1DI1(
double i1);
293 double functionFc(
double rho,
double i1,
double q);
299 double functionX(
double q);
305 double functionXDQ(
double q);
312 double yieldFunction1(
double rho,
double i1);
320 double yieldFunction2(
double rho,
double i1,
double q);
326 double yieldFunction3(
double i1);
331 void solveQ0(
double &answer);
353 void computePlastStrainDirM1(
FloatArray &answer,
const FloatArray &stressDeviator,
double rho,
double i1,
double q);
362 void computePlastStrainDirM2(
FloatArray &answer,
const FloatArray &stressDeviator,
double rho,
double i1,
double q);
371 void computePlastStrainDirM3(
FloatArray &answer,
const FloatArray &stressDeviator,
double rho,
double i1,
double q);
378 double functionH(
double q,
double tempQ);
384 double functionHDQ(
double tempQ);
407 void performF1return(
double i1,
double rho,
GaussPoint *
gp);
414 void performF2return(
double i1,
double rho,
GaussPoint *
gp);
421 void computeQFromPlastVolEps(
double &answer,
double q,
double deltaVolumetricPlasticStrain);
429 double computeDeltaGamma2(
double tempQ,
double q,
double i1,
double bulkModulus);
437 double computeDeltaGamma2DQ(
double tempQ,
double q,
double i1,
double bulkModulus);
464 virtual void give3dMaterialStiffnessMatrix(
FloatMatrix &answer,
double shearModulus
Current shear modulus.
double bulkModulus
Current bulk modulus.
InternalStateType
Type representing the physical meaning of element or constitutive model internal variable.
double newtonTol
Tollerance for iterative methods.
void letQBe(double v)
Assign the value of variable q.
virtual ~DustMaterialStatus()
Destructor.
GaussPoint * gp
Associated integration point.
void letTempStateFlagBe(int v)
Assign the temp value of the state flag.
double giveYoungsModulus()
Get the value of actual Young's modulus of the status.
double wHard
Parameter determining hardening law (parameter W in original publication)
The purpose of DataStream abstract class is to allow to store/restore context to different streams...
double & at(int i)
Coefficient access function.
DustMaterialStatus(int n, Domain *d, GaussPoint *gp, double q0)
Constructor.
This class implements a structural material status information.
void letTempQBe(double v)
Assign the temp value of variable q.
virtual contextIOResultType saveContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Stores receiver state to output stream.
int hardeningType
Parameter determining hardening type.
IsotropicLinearElasticMaterial * LEMaterial
Pointer for linear elastic material.
virtual const char * giveClassName() const
const FloatArray & giveTempPlasticStrain() const
Get the temp value of the full plastic strain vector from the material status.
MatResponseMode
Describes the character of characteristic material matrix.
const FloatArray & givePlasticStrain() const
Get the full plastic strain vector from the material status.
This class implements nonassociated multisurface plasticity model.
int giveTempStateFlag() const
Get the temp value of the state flag from the material status.
virtual const char * giveClassName() const
void letPlasticStrainBe(const FloatArray &v)
Assign the value of plastic strain.
stateFlagValues
Values of history variable stateFlag.
virtual void initTempStatus()
Initializes the temporary internal variables, describing the current state according to previously re...
FloatArray tempPlasticStrain
#define _IFT_DustMaterial_Name
double giveTempQ() const
Get the temp value of the hardening variable q from the material status.
double youngsModulus
Current Young's modulus.
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
This class implements an isotropic linear elastic material in a finite element problem.
double x0
Parameter determining shape of yield surface (param X0 in original publication)
double theta
Parameter determining shape of yield surface.
double alpha
Parameter determining shape of yield surface.
int giveStateFlag() const
Get the state flag from the material status.
void letTempPlasticStrainBe(const FloatArray &v)
Assign the temp value of plastic strain.
This class implements material status for dust material model.
double giveVolumetricPlasticStrain() const
Get the full plastic strain vector from the material status.
double q0
Parameter determining shape of yield surface.
virtual void updateYourself(TimeStep *tStep)
Update equilibrium history variables according to temp-variables.
virtual const char * giveInputRecordName() const
virtual bool isCharacteristicMtrxSymmetric(MatResponseMode rMode)
Returns true if stiffness matrix of receiver is symmetric Default implementation returns true...
double giveBulkModulus()
Get the value of actual bulk modulus of the status.
Abstract base class representing a material status information.
double giveQ() const
Get the value of hardening variable q from the material status.
Class representing vector of real numbers.
FloatArray strainVector
Equilibrated strain vector in reduced form.
Implementation of matrix containing floating point numbers.
IRResultType
Type defining the return values of InputRecord reading operations.
virtual contextIOResultType restoreContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Restores the receiver state previously written in stream.
double dHard
Parameter determining hardening law (parameter D in original publication)
void setYoungsModulus(double v)
Assign the value of actual Young's modulus of the status.
double giveShearModulus()
Get the value of actual shear modulus of the status.
virtual void giveThermalDilatationVector(FloatArray &answer, GaussPoint *gp, TimeStep *tStep)
Returns a vector of coefficients of thermal dilatation in direction of each material principal (local...
double mStiff
Parameter increasing stiffness (parameter M in original publication)
long ContextMode
Context mode (mask), defining the type of information written/read to/from context.
double beta
Parameter determining shape of yield surface.
Abstract base class for all "structural" constitutive models.
void setShearModulus(double v)
Assign the value of actual shear modulus of the status.
double lambda
Parameter determining shape of yield surface.
the oofem namespace is to define a context or scope in which all oofem names are defined.
virtual void giveThermalDilatationVector(FloatArray &answer, GaussPoint *gp, TimeStep *tStep)
Returns a vector of coefficients of thermal dilatation in direction of each material principal (local...
Class representing integration point in finite element program.
int stateFlag
Indicates the state (i.e. elastic, yielding, unloading) of the Gauss point.
Class representing solution step.
virtual void printOutputAt(FILE *file, TimeStep *tStep)
Print receiver's output to given stream.
double ft
Parameter determining shape of yield surface (param T in original publication)
int newtonIter
Maximum number of iterations for iterative methods.
FloatArray plasticStrain
Plastic strain.
double q
Hardening parameter q.
double rEll
Parameter determining shape of yield surface (param R in original publication)
void setBulkModulus(double v)
Assign the value of actual bulk modulus of the status.