📄 camclay.h
字号:
#ifndef CAMCLAY_H#define CAMCLAY_H#include "iotools.h"#include "alias.h"#include "strretalg.h"struct matrix;struct vector;struct atsel;/** This class defines modified cam-clay material model the material is defined by three material constants : m - is frictional constant and it depends on the frictional angle phi lambda - slope of the normal consolidationa line kappa - slope of the swelling line In addition to these material constants several initial values have to be specified at each integration point in the following order : v1 - initial specific volume at the reference pressure p1 after unloading from initial consolidation pressure p_c0 (v_kappa0) p1 - reference pressure (p_1), it has to be negative value p_c0 - initial consolidation pressure, it has to be negative value inisig_1 - inisig_ncompstr - components of initial stresses Order of the eqother array components id | description ------------------+------------------------------------------------ <0; ncompstr-1> | plastic strains ncompstr | gamma - consistency parameter ncompstr+1 | hardening parameter p_c - consolidation pressure ncompstr+2 | v_pc0 - initial value of consolidation pressure . | v_lambda1 - initial value of specific volume on the NCL at reference pressure p1 . | v_ini - initial specific volume . | i1s - mean stress . | j2s - the second invariant of stress deviator . | epsv - total volume strain ncompstr+8 | epsvp - plastic volume strain 18.1.2005 TKo*/class camclay{ public: camclay (void); ~camclay (void); void read (XFILE *in); double cohesion(vector &qtr); double yieldfunction (matrix &sig, vector &q); void deryieldfsigma (matrix &sig, vector &q, matrix &dfds); void dderyieldfsigma (matrix &ddfds); void derpotsigma (matrix &sig, vector &q, matrix &dgds); void deryieldfq(matrix &sig, vector &dq); void deryieldfdqdq(matrix &dfq); void deryieldfdsdq(matrix &dfdsdqt); void dqdsigma(matrix &sigt, vector &qt, matrix &dqds); void dhardfdq(long ipp, long ido, double dgamma, vector &qt, matrix &dqdq); void der_q_gamma(long ipp, long ido, matrix &sig, vector &qtr, vector &dqdg); double plasmodscalar(long ipp, long ido, matrix &sig, vector &qtr); void updateq(long ipp, long ido, vector &eps, vector &epsp, matrix &sig, vector &q);// void updateq(vector &epsp, strastrestate ssst, vector &q); void matstiff (matrix &d, long ipp,long ido); void nlstresses (long ipp,long im,long ido); void updateval (long ipp,long ido); void giveirrstrains (long ipp, long ido, vector &epsp); double give_consparam (long ipp, long ido); void changeparam (atsel &atm,vector &val); /// frictional constant double m; /// slope of normal consolidation line double lambda; /// slope of swelling line double kappa; /// stress return algorithm strretalg sra;};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -