30 #ifndef PressureDependMultiYieldBase_h 31 #define PressureDependMultiYieldBase_h 33 #include "PressureMultiYieldBase.h" 39 class MultiYieldSurface;
48 static std::vector<double> refShearModulusx;
49 static std::vector<double> refBulkModulusx;
50 static std::vector<double> phaseTransfAnglex;
51 static std::vector<double> contractParam1x;
52 static std::vector<double> dilateParam1x;
53 static std::vector<double> dilateParam2x;
54 static std::vector<double> einitx;
55 static std::vector<double> liquefyParam1x;
56 static std::vector<double> liquefyParam2x;
57 static std::vector<double> volLimit1x;
58 static std::vector<double> volLimit2x;
59 static std::vector<double> volLimit3x;
61 static std::vector<double> Hvx;
62 static std::vector<double> Pvx;
66 mutable double modulusFactor;
67 mutable double initPress;
69 mutable double pressureD;
70 double pressureDCommitted;
74 mutable double PPZSize;
75 double PPZSizeCommitted;
76 mutable double cumuDilateStrainOcta;
77 mutable double maxCumuDilateStrainOcta;
78 mutable double cumuTranslateStrainOcta;
79 mutable double prePPZStrainOcta;
80 mutable double oppoPrePPZStrainOcta;
85 double cumuDilateStrainOctaCommitted;
86 double maxCumuDilateStrainOctaCommitted;
87 double cumuTranslateStrainOctaCommitted;
88 double prePPZStrainOctaCommitted;
89 double oppoPrePPZStrainOctaCommitted;
97 void setupLocalMembers(
int nd,
102 double peakShearStra,
104 double pressDependCoe,
105 double phaseTransformAngle,
106 double contractionParam1,
107 double dilationParam1,
108 double dilationParam2,
109 double liquefactionParam1,
110 double liquefactionParam2,
111 int numberOfYieldSurf,
112 const std::vector<double> &gredu,
122 void elast2Plast(
void)
const;
124 double yieldFunc(
const T2Vector & stress,
const std::vector<MultiYieldSurface> &surfaces,
int surface_num)
const;
125 void deviatorScaling(
T2Vector & stress,
const std::vector<MultiYieldSurface> &surfaces,
int surfaceNum)
const;
126 void initSurfaceUpdate(
void)
const;
129 int setSubStrainRate(
void)
const;
130 int isLoadReversal(
const T2Vector &)
const;
131 void getContactStress(
T2Vector &contactStress)
const;
133 double getModulusFactor(
const T2Vector &stress)
const;
134 void setTrialStress(
const T2Vector &stress)
const;
135 double getLoadingFunc(
const T2Vector & contact,
const T2Vector & surfaceNormal,
136 double plasticPotential,
int crossedSurface)
const;
138 void updateActiveSurface(
void)
const;
139 void updateInnerSurface(
void)
const;
142 int isCrossingNextSurface(
void)
const;
151 double refShearModul,
154 double peakShearStra,
156 double pressDependCoe,
157 double phaseTransformAngle,
158 double contractionParam1,
159 double dilationParam1,
160 double dilationParam2,
161 double liquefactionParam1,
162 double liquefactionParam2,
163 int numberOfYieldSurf = 20,
164 const std::vector<double> &gredu= std::vector<double>(),
166 double volLimit1 = 0.9,
167 double volLimit2 = 0.02,
168 double volLimit3 = 0.7,
181 double refShearModul,
184 double peakShearStra,
186 double pressDependCoe,
187 double phaseTransformAngle,
188 double contractionParam1,
189 double dilationParam1,
190 double dilationParam2,
191 double liquefactionParam1,
192 double liquefactionParam2,
193 int numberOfYieldSurf,
194 const std::vector<double> &gredu,
204 {
return rhox[matN];} ;
216 const Matrix &getInitialTangent(
void);
218 void getBackbone(
Matrix &);
221 const Vector &getStrain (
void);
230 int revertToLastCommit (
void);
235 int getOrder(
void)
const;
241 void Print(std::ostream &s,
int flag =0)
const;
int commitState(void)
Commit the state of the material.
Definition: PressureDependMultiYieldBase.cc:397
int getResponse(int responseID, Information &matInformation)
Returns material response.
Definition: PressureDependMultiYieldBase.cc:594
Float vector abstraction.
Definition: Vector.h:94
static std::vector< double > rhox
mass density
Definition: PressureMultiYieldBase.h:48
Communication parameters between processes.
Definition: Communicator.h:66
Base class response objects.
Definition: Response.h:81
const Vector & getCommittedStress(void)
Returns committed stresses.
Definition: PressureDependMultiYieldBase.cc:627
int updateParameter(int responseID, Information &eleInformation)
Updates the parameter identified by parameterID with info.
Definition: PressureDependMultiYieldBase.cc:443
int recvData(const Communicator &)
Receives object members through the communicator argument.
Definition: PressureDependMultiYieldBase.cc:476
double getRho(void) const
Get material density.
Definition: PressureDependMultiYieldBase.h:203
int revertToStart(void)
Revert the material to its initial state.
Definition: PressureDependMultiYieldBase.h:232
int setTrialStrainIncr(const Vector &v)
Set trial strain increment.
Definition: PressureDependMultiYieldBase.cc:303
const Vector & getCommittedStrain(void)
Returns committed strains.
Definition: PressureDependMultiYieldBase.cc:669
int sendSelf(Communicator &)
Sends object through the communicator argument.
Definition: PressureDependMultiYieldBase.cc:495
int setTrialStrain(const Vector &strain)
Sets the value of the trial strain vector, that value used by {getStress()} and getTangent(), to be strain.
Definition: PressureDependMultiYieldBase.cc:269
??.
Definition: PressureDependMultiYieldBase.h:44
void Print(std::ostream &s, int flag=0) const
Print stuff.
Definition: PressureDependMultiYieldBase.cc:621
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:35
int sendData(Communicator &)
Send object members through the communicator argument.
Definition: PressureDependMultiYieldBase.cc:457
Matrix of floats.
Definition: Matrix.h:111
Second order tensor vector class.
Definition: T2Vector.h:65
??.
Definition: PressureMultiYieldBase.h:44
int recvSelf(const Communicator &)
Receives object through the communicator argument.
Definition: PressureDependMultiYieldBase.cc:510