OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
concretedpm2.h
Go to the documentation of this file.
1 /*
2  *
3  * ##### ##### ###### ###### ### ###
4  * ## ## ## ## ## ## ## ### ##
5  * ## ## ## ## #### #### ## # ##
6  * ## ## ## ## ## ## ## ##
7  * ## ## ## ## ## ## ## ##
8  * ##### ##### ## ###### ## ##
9  *
10  *
11  * OOFEM : Object Oriented Finite Element Code
12  *
13  * Copyright (C) 1993 - 2013 Borek Patzak
14  *
15  *
16  *
17  * Czech Technical University, Faculty of Civil Engineering,
18  * Department of Structural Mechanics, 166 29 Prague, Czech Republic
19  *
20  * This library is free software; you can redistribute it and/or
21  * modify it under the terms of the GNU Lesser General Public
22  * License as published by the Free Software Foundation; either
23  * version 2.1 of the License, or (at your option) any later version.
24  *
25  * This program is distributed in the hope that it will be useful,
26  * but WITHOUT ANY WARRANTY; without even the implied warranty of
27  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
28  * Lesser General Public License for more details.
29  *
30  * You should have received a copy of the GNU Lesser General Public
31  * License along with this library; if not, write to the Free Software
32  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
33  */
34 
35 #ifndef ConcreteDPM2_h
36 #define ConcreteDPM2_h
37 
38 #include "../sm/Materials/structuralmaterial.h"
39 #include "floatarray.h"
40 #include "floatmatrix.h"
41 #include "cltypes.h"
42 #include "../sm/Materials/structuralms.h"
44 #include "gausspoint.h"
45 #include "mathfem.h"
46 
47 #define DYNCON_TOL 1.e-6
48 #define keep_track_of_dissipated_energy
49 
51 #define _IFT_ConcreteDPM2_Name "con2dpm"
52 #define _IFT_ConcreteDPM2_fc "fc"
53 #define _IFT_ConcreteDPM2_fcZero "fczero"
54 #define _IFT_ConcreteDPM2_ft "ft"
55 #define _IFT_ConcreteDPM2_ecc "ecc"
56 #define _IFT_ConcreteDPM2_kinit "kinit"
57 #define _IFT_ConcreteDPM2_ahard "ahard"
58 #define _IFT_ConcreteDPM2_bhard "bhard"
59 #define _IFT_ConcreteDPM2_chard "chard"
60 #define _IFT_ConcreteDPM2_dhard "dhard"
61 #define _IFT_ConcreteDPM2_dilation "dilation"
62 #define _IFT_ConcreteDPM2_asoft "asoft"
63 #define _IFT_ConcreteDPM2_hp "hp"
64 #define _IFT_ConcreteDPM2_yieldtol "yieldtol"
65 #define _IFT_ConcreteDPM2_newtoniter "newtoniter"
66 #define _IFT_ConcreteDPM2_wf "wf"
67 #define _IFT_ConcreteDPM2_efc "efc"
68 #define _IFT_ConcreteDPM2_softeningType "stype"
69 #define _IFT_ConcreteDPM2_ftOne "ft1"
70 #define _IFT_ConcreteDPM2_wfOne "wf1"
71 #define _IFT_ConcreteDPM2_rateFlag "rateflag"
72 #define _IFT_ConcreteDPM2_timeFactor "timefactor"
73 #define _IFT_ConcreteDPM2_helem "helem"
74 #define _IFT_ConcreteDPM2_isoflag "isoflag"
75 
76 
77 namespace oofem {
83 {
84 public:
96  };
97 protected:
99 
102 
103  double dFDKappa;
104  double deltaLambda;
106 
108 
109  double kappaP;
110  double tempKappaP;
112 
113  double kappaPPeak;
114 
115  double le;
116 
117  double alpha;
118  double tempAlpha;
119 
120  double equivStrain;
122 
125 
128 
131 
134 
137 
140 
143 
146 
149 
152 
154 
155  double rateFactor;
157 
159  double rateStrain;
161 
165 #ifdef keep_track_of_dissipated_energy
166  double stressWork;
171  double dissWork;
173  double tempDissWork;
174 #endif
175 
176 public:
178  ConcreteDPM2Status(int n, Domain *d, GaussPoint *gp);
179 
181  virtual ~ConcreteDPM2Status();
182 
183  virtual void initTempStatus();
184  virtual void updateYourself(TimeStep *tStep);
185  virtual void printOutputAt(FILE *file, TimeStep *tStep);
186  virtual contextIOResultType saveContext(DataStream &, ContextMode mode, void *obj = NULL);
187  virtual contextIOResultType restoreContext(DataStream &, ContextMode mode, void *obj = NULL);
188  virtual const char *giveClassName() const { return "ConcreteDPM2Status"; }
189 
190  // Inline functions for access to state variables
191 
196  const FloatArray &givePlasticStrain() const { return plasticStrain; }
197 
198 
204  {
205  FloatArray dev;
207  return sqrt( .5 * ( 2. * dev [ 0 ] * dev [ 0 ] + 2. * dev [ 1 ] * dev [ 1 ] + 2. * dev [ 2 ] * dev [ 2 ] +
208  dev [ 3 ] * dev [ 3 ] + dev [ 4 ] * dev [ 4 ] + dev [ 5 ] * dev [ 5 ] ) );
209  }
210 
216  {
217  return 1. / 3. * ( plasticStrain(0) + plasticStrain(1) + plasticStrain(2) );
218  }
219 
224  double giveKappaP() const
225  { return kappaP; }
226 
232  double giveKappaDTensionOne() const
233  { return kappaDTensionOne; }
234 
241  { return kappaDCompressionOne; }
242 
243 
249  double giveKappaDTensionTwo() const
250  { return kappaDTensionTwo; }
251 
252 
259  { return kappaDCompressionTwo; }
260 
261 
267  double giveEquivStrain() const
268  { return equivStrain; }
269 
275  double giveEquivStrainTension() const
276  { return equivStrainTension; }
277 
278 
285  { return equivStrainCompression; }
286 
292  double giveDamageTension() const
293  { return damageTension; }
294 
295 
301  double giveDamageCompression() const
302  { return damageCompression; }
303 
304 
305 
311  double giveRateFactor() const
312  { return rateFactor; }
313 
319  double giveTempRateFactor() const
320  { return tempRateFactor; }
321 
322 
323  double giveRateStrain() const
324  { return rateStrain; }
325 
326  void letTempRateStrainBe(double v)
327  { tempRateStrain = v; }
328 
329  void letTempAlphaBe(double v)
330  { tempAlpha = v; }
331 
336  int giveStateFlag() const
337  { return state_flag; }
338 
339 
340  // giveTemp:
341 
342  // Functions used to access the temp variables.
348 
353  { return 1. / 3. * ( tempPlasticStrain(0) + tempPlasticStrain(1) + tempPlasticStrain(2) ); }
354 
355 
361  double giveTempKappaP() const
362  { return tempKappaP; }
363 
364 
370  double giveKappaDTension() const
371  { return kappaDTension; }
372 
373  double giveAlpha() const
374  { return alpha; }
375 
376 
382  double giveKappaDCompression() const
383  { return kappaDCompression; }
384 
385 
391  double giveTempDamageTension() const
392  { return tempDamageTension; }
393 
394 
401  { return tempDamageCompression; }
402 
408  double giveDeltaEquivStrain() const
409  { return deltaEquivStrain; }
410 
411 
417  int giveTempStateFlag() const
418  { return temp_state_flag; }
419 
420 
421  // letTemp...be :
422  // Functions used by the material to assign a new value to a temp variable.
428  { tempPlasticStrain = v; }
429 
434  void letDeltaLambdaBe(double v)
435  { deltaLambda = v; }
436 
441  void letTempKappaPBe(double v)
442  { tempKappaP = v; }
443 
448  void letTempKappaDTensionBe(double v)
449  { tempKappaDTension = v; }
450 
456  { tempKappaDCompression = v; }
457 
463  { tempKappaDTensionOne = v; }
464 
470  { tempKappaDCompressionOne = v; }
471 
477  { tempKappaDTensionTwo = v; }
478 
484  { tempKappaDCompressionTwo = v; }
485 
490  void letTempDamageTensionBe(double v)
491  { tempDamageTension = v; }
492 
498  { tempDamageCompression = v; }
499 
504  void letTempRateFactorBe(double v)
505  { tempRateFactor = v; }
506 
511  void letTempEquivStrainBe(double v)
512  { tempEquivStrain = v; }
513 
519  { tempEquivStrainTension = v; }
520 
526  { tempEquivStrainCompression = v; }
527 
528 
532  double giveLe() { return le; }
533 
538  void setLe(double ls)
539  { le = ls; }
545  void letTempStateFlagBe(const int v)
546  { temp_state_flag = v; }
547 
548 
549  void letKappaPPeakBe(double kappa)
550  { kappaPPeak = kappa; }
551 #ifdef keep_track_of_dissipated_energy
552  double giveStressWork() { return stressWork; }
555  double giveTempStressWork() { return tempStressWork; }
557  void setTempStressWork(double w) { tempStressWork = w; }
559  double giveDissWork() { return dissWork; }
561  double giveTempDissWork() { return tempDissWork; }
563  void setTempDissWork(double w) { tempDissWork = w; }
571  void computeWork(GaussPoint *gp, double ft);
572 #endif
573 };
574 
575 
576 // ********************************
577 // *** CLASS DYNAMIC CONCRETE ***
578 // ********************************
579 
589 {
590 public:
591 
592 protected:
593  enum ConcreteDPM2_ReturnType { RT_Regular, RT_Tension, RT_Compression, RT_Auxiliary };
595 
598 
600  double fc, ft, ecc;
601 
603 
604  double e0;
605 
607  double AHard;
609  double BHard;
611  double CHard;
613  double DHard;
614 
617 
619  double ASoft;
620 
623 
626 
629 
631 #if 1
632  double sig;
634 
636  double rho;
637 
639  double thetaTrial;
640 #endif
641 
643  double m;
644 
646  double mQ;
647 
649  double helem;
650 
653 
655  double eM;
657  double gM;
659  double kM;
661  double nu;
662 
665 
667  double wf;
668 
670  double wfOne;
671 
673  double ftOne;
674 
676  double yieldTol;
677 
680 
683 
686 
688  double timeFactor;
689 
691  double fcZero;
692 
695 
696 
697 public:
699  ConcreteDPM2(int n, Domain *d);
701  virtual ~ConcreteDPM2();
703 
704  virtual const char *giveClassName() const { return "ConcreteDPM2"; }
705  virtual const char *giveInputRecordName() const { return _IFT_ConcreteDPM2_Name; }
706 
708  { return linearElasticMaterial; }
709 
710  virtual void giveRealStressVector_1d(FloatArray &answer, GaussPoint *gp, const FloatArray &totalStrain, TimeStep *tStep);
711 
712  virtual void giveRealStressVector_3d(FloatArray &answer, GaussPoint *gp, const FloatArray &strainVector, TimeStep *tStep);
713 
719  void performPlasticityReturn(GaussPoint *gp,
720  const FloatMatrix &D,
721  const FloatArray &strain);
722 
730  bool checkForVertexCase(double &answer,
731  double sig,
732  double tempKappa,
733  bool mode1d);
734 
741  double performRegularReturn(FloatArray &stress,
742  double kappaP,
743  GaussPoint *gp);
744 
753  void compute1dJacobian(FloatMatrix &answer,
754  double totalsigma,
755  double tempKappa,
756  double deltaLambda,
757  GaussPoint *gp);
766  void computeJacobian(FloatMatrix &answer,
767  double sig,
768  double rho,
769  double tempKappa,
770  double deltaLambda,
771  GaussPoint *gp);
772 
781  double performVertexReturn(FloatArray &stress,
782  double apexStress,
783  double tempKappaP,
784  GaussPoint *gp);
785 
794  double computeYieldValue(double sig,
795  double rho,
796  double theta,
797  double tempKappa) const;
798 
804  double computeHardeningOne(double tempKappa) const;
805 
811  double computeHardeningOnePrime(double tempKappa) const;
812 
818  double computeHardeningTwo(double tempKappa) const;
819 
826  double computeHardeningTwoPrime(double tempKappa) const;
827 
835  double computeDFDKappa(double sig,
836  double rho,
837  double tempKappa,
838  bool mode1d);
839 
840 
848  double computeDKappaDDeltaLambda(double sig, double rho, double tempKappa);
849  double computeDKappaDDeltaLambda1d(double sig, double tempKappa);
850 
851 
859  virtual double computeDuctilityMeasure(double sig,
860  double rho,
861  double theta);
862 
863 
864 
872  void computeDDuctilityMeasureDInv(FloatArray &answer,
873  double sig,
874  double rho,
875  double tempKappa);
882  double computeDDuctilityMeasureDInv1d(double sigma, double tempKappa); //Dimitris change 1d implementation
883 
891  void computeDGDInv(FloatArray &answer,
892  double sig,
893  double rho,
894  double tempKappa);
901  double computeDGDInv1d(double sig, double tempKappa);
902 
908  double computeRatioPotential(double sig,
909  double tempKappa);
910 
914  double computeRateFactor(double alpha,
915  double timeFactor,
916  GaussPoint *gp,
917  TimeStep *deltaTime);
918 
923  void computeDDGDDInv(FloatMatrix &answer,
924  double sig,
925  double rho,
926  double tempKappa);
931  double computeDDGDDInv1d(double sigma, double tempKappa);
936  void computeDDGDInvDKappa(FloatArray &answer,
937  double sig,
938  double rho,
939  double tempKappa);
940 
941  double computeDDGDInvDKappa1d(double sigma, double tempKappa);
947  void computeDDKappaDDeltaLambdaDInv(FloatArray &answer,
948  double sig,
949  double rho,
950  double tempKappa);
951 
952  double computeDDKappaDDeltaLambdaDInv1d(double sigma, double tempKappa);
956  double computeDDKappaDDeltaLambdaDKappa(double sig, double rho, double tempKappa);
957  double computeDDKappaDDeltaLambdaDKappa1d(double sig, double tempKappa);
958 
959 
964  void computeDFDInv(FloatArray &answer,
965  double sig,
966  double rho,
967  double tempKappa) const;
968  double computeDFDInv1d(double sigma, double tempKappa) const;
972  double computeTempKappa(double kappaInitial,
973  double sigTrial,
974  double rhoTrial,
975  double sig);
976 
977 
981  void computeDamage(FloatArray &answer, const FloatArray &strain, const FloatMatrix &D, double timeFactor, GaussPoint *gp, TimeStep *tStep, double alpha);
982 
983 
987  int checkForUnAndReloading(double &tempEquivStrain,
988  double &minEquivStrain,
989  const FloatMatrix &D,
990  GaussPoint *gp);
991 
992  double computeAlpha(FloatArray &effectiveStressTension, FloatArray &effectiveStressCompression, FloatArray &effectiveStress);
993 
995  virtual double computeDamageParamTension(double equivStrain, double kappaOne, double kappaTwo, double le, double omegaOld);
996 
997  virtual double computeDamageParamCompression(double equivStrain, double kappaOne, double kappaTwo, double omegaOld);
998 
1000  double computeDeltaPlasticStrainNormTension(double tempKappaD, double kappaD, GaussPoint *gp);
1001 
1002  double computeDeltaPlasticStrainNormCompression(double tempAlpha, double tempKappaD, double kappaD, GaussPoint *gp);
1003 
1004  virtual double computeEquivalentStrain(double sig, double rho, double theta);
1005 
1006 
1008  double computeDuctilityMeasureDamage(const FloatArray &strain, GaussPoint *gp);
1009 
1014  void initDamaged(double kappa,
1015  const FloatArray &strain,
1016  GaussPoint *gp);
1017 
1018 
1020  void computeTrialCoordinates(const FloatArray &stress, double &sig, double &rho, double &theta);
1021 
1022 
1024  void assignStateFlag(GaussPoint *gp);
1025 
1027  void computeDRhoDStress(FloatArray &answer,
1028  const FloatArray &stress) const;
1029 
1031  void computeDSigDStress(FloatArray &answer) const;
1032 
1034  void computeDDRhoDDStress(FloatMatrix &answer,
1035  const FloatArray &stress) const;
1036 
1038  void computeDCosThetaDStress(FloatArray &answer,
1039  const FloatArray &stress) const;
1040 
1042  double computeDRDCosTheta(double theta, double ecc) const;
1043 
1044  virtual void give1dStressStiffMtrx(FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep);
1045 
1046  virtual void give3dMaterialStiffnessMatrix(FloatMatrix &answer,
1047  MatResponseMode mode, GaussPoint *gp, TimeStep *tStep);
1048 
1049  void compute3dSecantStiffness(FloatMatrix &answer, GaussPoint *gp, TimeStep *tStep);
1050 
1051 
1052 
1053  virtual bool isCharacteristicMtrxSymmetric(MatResponseMode rMode) { return false; }
1054 
1055  virtual int giveIPValue(FloatArray &answer,
1056  GaussPoint *gp,
1057  InternalStateType type,
1058  TimeStep *tStep);
1059 
1060 protected:
1061  MaterialStatus *CreateStatus(GaussPoint *gp) const;
1062 };
1063 } //end namespace oofem
1064 #endif
This class contains the combination of a local plasticity model for concrete with a local isotropic d...
Definition: concretedpm2.h:588
InternalStateType
Type representing the physical meaning of element or constitutive model internal variable.
state_flag_values
Values of history variable state_flag.
Definition: concretedpm2.h:86
double mQ
Dilation parameter of the plastic potential.
Definition: concretedpm2.h:646
int giveTempStateFlag() const
Get the temp value of the state flag from the material status.
Definition: concretedpm2.h:417
double kM
Elastic bulk modulus.
Definition: concretedpm2.h:659
double timeFactor
Input parameter which simulates a loading rate. Only for debugging purposes.
Definition: concretedpm2.h:688
double giveKappaDCompressionTwo() const
Get the compression hardening variable two of the damage model from the material status.
Definition: concretedpm2.h:258
void letTempPlasticStrainBe(const FloatArray &v)
Assign the temp value of deviatoric plastic strain.
Definition: concretedpm2.h:427
virtual void printOutputAt(FILE *file, TimeStep *tStep)
Print receiver's output to given stream.
Definition: concretedpm2.C:178
void letTempKappaDCompressionOneBe(double v)
Assign the temp value of the hardening variable of the damage model.
Definition: concretedpm2.h:469
void letTempKappaDTensionBe(double v)
Assign the temp value of the rate factor of the damage model.
Definition: concretedpm2.h:448
double giveKappaDCompression() const
Get the temp value of the hardening variable of the damage model from the material status...
Definition: concretedpm2.h:382
double giveKappaDTension() const
Get the temp value of the hardening variable of the damage model from the material status...
Definition: concretedpm2.h:370
GaussPoint * gp
Associated integration point.
Class and object Domain.
Definition: domain.h:115
double fcZero
This parameter is needed for the rate dependence. It should be read in if rate dependence is consider...
Definition: concretedpm2.h:691
double giveKappaDCompressionOne() const
Get the compression hardening variable one of the damage model from the material status.
Definition: concretedpm2.h:240
virtual ~ConcreteDPM2Status()
Destructor.
Definition: concretedpm2.C:94
const FloatArray & givePlasticStrain() const
Get the plastic strain deviator from the material status.
Definition: concretedpm2.h:196
double m
Friction parameter of the yield surface.
Definition: concretedpm2.h:643
double eM
Elastic Young's modulus.
Definition: concretedpm2.h:655
void letTempKappaDCompressionBe(double v)
Assign the temp value of the rate factor of the damage model.
Definition: concretedpm2.h:455
int newtonIter
Maximum number of iterations for stress return.
Definition: concretedpm2.h:682
The purpose of DataStream abstract class is to allow to store/restore context to different streams...
Definition: datastream.h:54
double ASoft
Parameter of the ductilityMeasure of the damage model.
Definition: concretedpm2.h:619
double giveEquivStrainCompression() const
Get the compression equivalent strain from the material status.
Definition: concretedpm2.h:284
virtual const char * giveClassName() const
Definition: concretedpm2.h:188
void letTempAlphaBe(double v)
Definition: concretedpm2.h:329
This class implements a structural material status information.
Definition: structuralms.h:65
void computeWork(GaussPoint *gp, double ft)
Computes the increment of total stress work and of dissipated work (gf is the dissipation density per...
Definition: concretedpm2.C:457
LinearElasticMaterial * giveLinearElasticMaterial()
Definition: concretedpm2.h:707
double giveTempRateFactor() const
Get the temp variable of the damage model from the material status.
Definition: concretedpm2.h:319
void setTempStressWork(double w)
Sets the density of total work of stress on strain increments to given value.
Definition: concretedpm2.h:557
LinearElasticMaterial * linearElasticMaterial
Pointer for linear elastic material.
Definition: concretedpm2.h:652
double yieldHardInitial
Parameter of the hardening law of the plasticity model.
Definition: concretedpm2.h:625
double giveTempVolumetricPlasticStrain() const
Get the temp value of the volumetric plastic strain in plane stress.
Definition: concretedpm2.h:352
void letTempDamageCompressionBe(double v)
Assign the temp value of the compressive damage variable of the damage model.
Definition: concretedpm2.h:497
void letTempKappaDTensionTwoBe(double v)
Assign the temp value of the second tension hardening variable of the damage model.
Definition: concretedpm2.h:476
#define _IFT_ConcreteDPM2_Name
Definition: concretedpm2.h:51
virtual void updateYourself(TimeStep *tStep)
Update equilibrium history variables according to temp-variables.
Definition: concretedpm2.C:135
double giveTempDamageCompression() const
Get the temp value of the hardening variable of the damage model from the material status...
Definition: concretedpm2.h:400
MatResponseMode
Describes the character of characteristic material matrix.
double helem
Element size (to be used in fracture energy approach (crack band).
Definition: concretedpm2.h:649
double giveTempKappaP() const
Get the temp value of the hardening variable of the plasticity model from the material status...
Definition: concretedpm2.h:361
virtual contextIOResultType saveContext(DataStream &, ContextMode mode, void *obj=NULL)
Stores receiver state to output stream.
Definition: concretedpm2.C:251
This class is a abstract base class for all linear elastic material models in a finite element proble...
void letTempStateFlagBe(const int v)
Assign the temp value of the state flag.
Definition: concretedpm2.h:545
double AHard
Parameter of the ductilityMeasure of the plasticity model.
Definition: concretedpm2.h:607
double giveDissWork()
Returns the density of dissipated work.
Definition: concretedpm2.h:559
double giveAlpha() const
Definition: concretedpm2.h:373
void letTempRateStrainBe(double v)
Definition: concretedpm2.h:326
double giveRateFactor() const
Get the rate factor of the damage model from the material status.
Definition: concretedpm2.h:311
double tempStressWork
Non-equilibrated density of total work done by stresses on strain increments.
Definition: concretedpm2.h:169
const FloatArray & giveTempPlasticStrain() const
Get the temp value of the full plastic strain vector from the material status.
Definition: concretedpm2.h:347
void letTempDamageTensionBe(double v)
Assign the temp value of the tensile damage variable of the damage model.
Definition: concretedpm2.h:490
double giveEquivStrain() const
Get the equivalent strain from the material status.
Definition: concretedpm2.h:267
double yieldHardPrimePeak
Parameter of the hardening law of the plasticity model.
Definition: concretedpm2.h:622
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
Definition: matstatus.h:140
virtual void initTempStatus()
Initializes the temporary internal variables, describing the current state according to previously re...
Definition: concretedpm2.C:98
double wfOne
Control parameter for the bilinear softening law in tension.
Definition: concretedpm2.h:670
double thetaTrial
Lode angle of the trial stress..
Definition: concretedpm2.h:639
double tempDissWork
Non-equilibrated density of dissipated work.
Definition: concretedpm2.h:173
double nu
Elastic poisson's ration.
Definition: concretedpm2.h:661
double BHard
Parameter of the ductilityMeasure of the plasticity model.
Definition: concretedpm2.h:609
double giveDeviatoricPlasticStrainNorm()
Get the deviatoric plastic strain norm from the material status.
Definition: concretedpm2.h:203
double dilationConst
Control parameter for te volumetric plastic flow of the plastic potential.
Definition: concretedpm2.h:628
virtual const char * giveClassName() const
Definition: concretedpm2.h:704
void setLe(double ls)
Sets the characteristic length.
Definition: concretedpm2.h:538
double hardeningModulus
Hardening modulus.
Definition: concretedpm2.h:616
double efCompression
Control parameter for the exponential softening law.
Definition: concretedpm2.h:664
double giveRateStrain() const
Definition: concretedpm2.h:323
void letTempRateFactorBe(double v)
Assign the temp value of the rate factor of the damage model.
Definition: concretedpm2.h:504
double giveTempDissWork()
Returns the density of temp dissipated work.
Definition: concretedpm2.h:561
double giveTempStressWork()
Returns the temp density of total work of stress on strain increments.
Definition: concretedpm2.h:555
double giveDeltaEquivStrain() const
Get the temp value of the hardening variable of the damage model from the material status...
Definition: concretedpm2.h:408
ConcreteDPM2_ReturnType returnType
Definition: concretedpm2.h:594
double stressWork
Density of total work done by stresses on strain increments.
Definition: concretedpm2.h:167
ConcreteDPM2Status(int n, Domain *d, GaussPoint *gp)
Constructor.
Definition: concretedpm2.C:54
double wf
Control parameter for the linear/bilinear softening law in tension.
Definition: concretedpm2.h:667
double yieldTol
yield tolerance for the plasticity model.
Definition: concretedpm2.h:676
virtual const char * giveInputRecordName() const
Definition: concretedpm2.h:705
double giveKappaP() const
Get the hardening variable of the plasticity model.
Definition: concretedpm2.h:224
double giveDamageTension() const
Get the tension damage variable of the damage model from the material status.
Definition: concretedpm2.h:292
void setTempDissWork(double w)
Sets the density of dissipated work to given value.
Definition: concretedpm2.h:563
Abstract base class representing a material status information.
Definition: matstatus.h:84
Class representing vector of real numbers.
Definition: floatarray.h:82
This class implements the material status associated to ConcreteDPM2.
Definition: concretedpm2.h:82
FloatArray strainVector
Equilibrated strain vector in reduced form.
Definition: structuralms.h:69
Implementation of matrix containing floating point numbers.
Definition: floatmatrix.h:94
IRResultType
Type defining the return values of InputRecord reading operations.
Definition: irresulttype.h:47
double ftOne
Control parameter for the bilinear softening law.
Definition: concretedpm2.h:673
virtual contextIOResultType restoreContext(DataStream &, ContextMode mode, void *obj=NULL)
Restores the receiver state previously written in stream.
Definition: concretedpm2.C:353
double DHard
Parameter of the ductilityMeasure of the plasticity model.
Definition: concretedpm2.h:613
double giveDamageCompression() const
Get the compressive damage variable of the damage model from the material status. ...
Definition: concretedpm2.h:301
Class representing the general Input Record.
Definition: inputrecord.h:101
double rho
Length of the deviatoric stress.
Definition: concretedpm2.h:636
int softeningType
Type of softening function used.
Definition: concretedpm2.h:685
double giveTempDamageTension() const
Get the temp value of the hardening variable of the damage model from the material status...
Definition: concretedpm2.h:391
double yieldTolDamage
yield tolerance for the damage model.
Definition: concretedpm2.h:679
double giveLe()
Gives the characteristic length.
Definition: concretedpm2.h:532
int state_flag
Indicates the state (i.e. elastic, unloading, plastic, damage, vertex) of the Gauss point...
Definition: concretedpm2.h:163
int strainRateFlag
Flag which signals if strainRate effects should be considered.
Definition: concretedpm2.h:694
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.
Definition: contextmode.h:43
double rateStrain
Strains that are used for calculation of strain rates.
Definition: concretedpm2.h:159
Abstract base class for all "structural" constitutive models.
void letTempKappaPBe(double v)
Assign the temp value of the hardening variable of the plasticity model.
Definition: concretedpm2.h:441
double giveStressWork()
Returns the density of total work of stress on strain increments.
Definition: concretedpm2.h:553
double gM
Elastic shear modulus.
Definition: concretedpm2.h:657
void letDeltaLambdaBe(double v)
Assign the temp value of the rate factor of the damage model.
Definition: concretedpm2.h:434
int giveStateFlag() const
Get the state flag from the material status.
Definition: concretedpm2.h:336
void letTempEquivStrainCompressionBe(double v)
Assign the temp value of the rate factor of the damage model.
Definition: concretedpm2.h:525
ConcreteDPM2_ReturnResult returnResult
Definition: concretedpm2.h:597
void letTempKappaDCompressionTwoBe(double v)
Assign the temp value of the second compression hardening variable of the damage model.
Definition: concretedpm2.h:483
the oofem namespace is to define a context or scope in which all oofem names are defined.
double giveVolumetricPlasticStrain() const
Get the volumetric plastic strain from the material status.
Definition: concretedpm2.h:215
virtual bool isCharacteristicMtrxSymmetric(MatResponseMode rMode)
Returns true if stiffness matrix of receiver is symmetric Default implementation returns true...
void letTempEquivStrainBe(double v)
Assign the temp value of the rate factor of the damage model.
Definition: concretedpm2.h:511
Class representing integration point in finite element program.
Definition: gausspoint.h:93
Class representing solution step.
Definition: timestep.h:80
double CHard
Parameter of the ductilityMeasure of the plasticity model.
Definition: concretedpm2.h:611
double giveKappaDTensionTwo() const
Get the tension hardening variable two of the damage model from the material status.
Definition: concretedpm2.h:249
double dissWork
Density of dissipated work.
Definition: concretedpm2.h:171
void letKappaPPeakBe(double kappa)
Definition: concretedpm2.h:549
double giveKappaDTensionOne() const
Get the hardening variable of the damage model from the material status.
Definition: concretedpm2.h:232
void letTempKappaDTensionOneBe(double v)
Assign the temp value of the hardening variable of the damage model.
Definition: concretedpm2.h:462
double giveEquivStrainTension() const
Get the tension equivalent strain from the material status.
Definition: concretedpm2.h:275
void letTempEquivStrainTensionBe(double v)
Assign the temp value of the rate factor of the damage model.
Definition: concretedpm2.h:518

This page is part of the OOFEM documentation. Copyright (c) 2011 Borek Patzak
Project e-mail: info@oofem.org
Generated at Tue Jan 2 2018 20:07:28 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011