#include <hypoplast.h>
Public Member Functions | |
void | changeparam (atsel &atm, vector &val) |
double | dstep_red (long ipp, long im, long ido) |
double | give_iniporosity (long ipp, long ido) |
void | give_reqnmq (long *anmq) |
double | give_virgporosity (long ipp, long ido) |
void | givestressincr (long ipp, long im, long ido, vector &sig) |
hypoplast () | |
void | initval (long ipp, long ido) |
void | matstiff (matrix &d, long ipp, long ido) |
void | nlstresses (long ipp, long im, long ido) |
void | read (XFILE *in) |
void | updateval (long ipp, long im, long ido) |
~hypoplast () | |
Public Attributes | |
double | e_0 |
double | kap_star |
double | l |
double | lam_star |
double | m |
double | n |
double | n_star |
int | nprops |
int | nstatv |
double | p_t |
double | phi |
answertype | pr_suc_fl |
double * | props |
double | rr |
double | s_e0 |
gfunct | suc_fn |
The class defines hypoplastic model for unsaturated soils according to D. Masin.
MASIN HYPO - Masin hypoplastic model with intergranular strains D. Masin (2005) A hypoplastic constitutive model for clays. IJNAMG, 29:311-336
Implementation based on: Fellin, W. and Ostermann, A. (2002): Consistent tangent operators for constitutive rate equations. International Journal for Numerical and Analytical Methods in Geomechanics
Ordering of eqother/other array: --------------------------------
History of qunatities handeled by MEFEL: previous strain vector /eqother[0] - eqother[ncompstr-1]/, previous stress vector /eqother[ncompstr] - eqother[2*ncompstr-1]/,
Internal variables required and handeled by hypoplasticity model: actual void ratio e /eqother[2*ncompstr]/, previous/actual suction s /eqother[2*ncompstr+1]/, degree of saturation S_r /eqother[2*ncompstr+2]/, number of function evaluation nfev /eqother[2*ncompstr+3]/, phi_mob in degrees /eqother[2*ncompstr+4]/, suggested substep size dstub /eqother[2*ncompstr+5]/,
Internal variables handeled by hypoplasticity model: required time step size coef. pnewdt /eqother[2*ncompstr+6]/,
Definition at line 43 of file hypoplast.h.
hypoplast | ( | ) |
~hypoplast | ( | ) |
Definition at line 55 of file hypoplast.cpp.
The function changes material parameters for stochastic analysis.
atm | - selected material parameters (parameters which are changed) | |
val | - array containing new values of parameters |
Created by Tomas Koudelka, 30.1.2014
Definition at line 564 of file hypoplast.cpp.
References atsel::atrib, e_0, kap_star, l, lam_star, m, n, n_star, atsel::num, p_t, phi, rr, and s_e0.
double dstep_red | ( | long | ipp, | |
long | im, | |||
long | ido | |||
) |
The function returns time step size required by the hypoplsaticity model. It is represented by ratio of required time step size to the actual one or 1.0 for no change in time step size.
ipp | - integration point number in the mechmat ip array. | |
im | - index of material type for given ip | |
ido | - index of internal variables for given material in the ipp other array |
Created by Tomas Koudelka, 10.3.2014
Definition at line 467 of file hypoplast.cpp.
References mechmat::ip, Mm, intpoints::ncompstr, nstatv, and intpoints::other.
Referenced by mechmat::dstep_red_ip().
double give_iniporosity | ( | long | ipp, | |
long | ido | |||
) |
The function extracts initial porosity e_ini for the attained equilibrium state from the integration point eqother array.
ipp | - integration point number in the mechmat ip array. | |
ido | - index of internal variables for given material in the ipp other array |
The | function returns value of initial porosity e_ini. |
Created by Tomas Koudelka, 13.2.2014
Definition at line 547 of file hypoplast.cpp.
References mechmat::ic, and Mm.
Referenced by mechmat::give_iniporosity().
void give_reqnmq | ( | long * | anmq | ) |
The funtion marks required non-mechanical quantities in the array anmq.
anmq | - array with flags for used material types anmq[i] = 1 => qunatity type nonmechquant(i+1) is required anmq[i] = 0 => qunatity type nonmechquant(i+1) is not required |
Definition at line 509 of file hypoplast.cpp.
References saturation_degree, and suction.
Referenced by mechmat::give_reqnmq().
double give_virgporosity | ( | long | ipp, | |
long | ido | |||
) |
The function extracts virgin porosity e_lambda1 for the attained equilibrium state from the integration point eqother array.
ipp | - integration point number in the mechmat ip array. | |
ido | - index of internal variables for given material in the ipp other array |
The | function returns value of virgin porosity e_lambda1. |
Created by Tomas Koudelka, 13.2.2014
Definition at line 528 of file hypoplast.cpp.
References n_star.
Referenced by mechmat::give_virgporosity().
void givestressincr | ( | long | ipp, | |
long | im, | |||
long | ido, | |||
vector & | sig | |||
) |
The function computes stress increment due to pore pressure change in the integration point and stores them into ip stress array.
ipp | - integration point pointer | |
im | - index of material type for given ip | |
ido | - index of internal variables for given material in the ipp other array | |
sig | - vector of stress increment due to suction change (output) |
Created by Tomas Koudelka, 11.2.2014
Definition at line 283 of file hypoplast.cpp.
References intpoints::eqother, gfunct::getval(), mechmat::ip, Mm, Mp, intpoints::ncompstr, pr_suc_fl, intpoints::ssst, stress, suc_fn, tensor_vector(), probdesc::time, and yes.
Referenced by mechmat::givestressincr().
void initval | ( | long | ipp, | |
long | ido | |||
) |
Definition at line 98 of file hypoplast.cpp.
References probdesc::eigstrains, mechmat::eigstresses, intpoints::eqother, gfunct::getval(), mechmat::ic, mechmat::ip, Mm, Mp, intpoints::ncompstr, pr_suc_fl, statev, suc_fn, probdesc::time, and yes.
Referenced by mechmat::initvalues().
void matstiff | ( | matrix & | d, | |
long | ipp, | |||
long | ido | |||
) |
The function computes material stiffnes matrix.
d | - allocated matrix structure for material stiffness matrix (output) | |
ipp | - integration point number | |
ido | - index of internal variables for given material in the ipp other array |
Created by Tomas Koudelka, 11.2.2014
Definition at line 140 of file hypoplast.cpp.
References matrix::a, vector::a, cmname, ddum, ddum3, ddum6, dfgrd, probdesc::dlambda, probdesc::dtime, dtime, mechmat::elip, intpoints::eqother, gfunct::getval(), give_full_vector(), idum, if(), mechmat::ip, probdesc::istep, probdesc::jstep, probdesc::lambda, Mm, Mp, intpoints::ncompstr, ndi, noel, notct, nprops, nstatv, ntens, intpoints::other, pr_suc_fl, props, intpoints::ssst, statev, intpoints::strain, intpoints::stress, suc_fn, timecontr::tct, tensor4_matrix(), probdesc::time, time, probdesc::timecon, umatunsat_(), unsatvar, and yes.
Referenced by mechmat::matstiff().
void nlstresses | ( | long | ipp, | |
long | im, | |||
long | ido | |||
) |
The function computes correct stresses in the integration point and stores them into ip stress array.
ipp | - integration point pointer | |
im | - index of material type for given ip | |
ido | - index of internal variables for given material in the ipp other array |
Created by Tomas Koudelka, 11.2.2014
Definition at line 319 of file hypoplast.cpp.
References vector::a, cmname, ddum, ddum3, ddum36, ddum6, dfgrd, probdesc::dlambda, probdesc::dtime, dtime, mechmat::elip, intpoints::eqother, for(), gfunct::getval(), give_full_vector(), give_red_vector(), idum, if(), mechmat::ip, probdesc::istep, probdesc::jstep, probdesc::lambda, memset(), Mm, Mp, intpoints::ncompstr, ndi, noel, notct, nprops, nstatv, ntens, intpoints::other, pr_suc_fl, props, intpoints::ssst, statev, mechmat::storeother(), intpoints::strain, intpoints::stress, suc_fn, timecontr::tct, probdesc::time, time, probdesc::timecon, umatunsat_(), unsatvar, and yes.
Referenced by mechmat::computenlstresses().
void read | ( | XFILE * | in | ) |
The function reads material parameters from the opened text file given by the parameter in.
in | - pointer to the opened input text file |
Created by Tomas Koudelka, 30.1.2014
Definition at line 71 of file hypoplast.cpp.
References answertype_kwdset(), e_0, kap_star, l, lam_star, m, n, n_star, p_t, phi, pr_suc_fl, props, gfunct::read(), rr, s_e0, suc_fn, xfscanf(), and yes.
Referenced by mechmat::readmattype().
void updateval | ( | long | ipp, | |
long | im, | |||
long | ido | |||
) |
Function updates values in the other array reached in the previous equlibrium state to values reached in the new actual equilibrium state.
ipp | - integration point number in the mechmat ip array. | |
im | - index of material type for given ip | |
ido | - index of internal variables for given material in the ipp other array |
Created by Tomas Koudelka, 11.2.2014
Definition at line 488 of file hypoplast.cpp.
References intpoints::eqother, mechmat::givencompeqother(), mechmat::ip, Mm, n, and intpoints::other.
Referenced by mechmat::updateipvalmat().
double e_0 |
Definition at line 70 of file hypoplast.h.
Referenced by changeparam(), hypoplast(), and read().
double kap_star |
Definition at line 63 of file hypoplast.h.
Referenced by changeparam(), hypoplast(), and read().
double l |
Definition at line 67 of file hypoplast.h.
Referenced by changeparam(), hypoplast(), and read().
double lam_star |
Definition at line 62 of file hypoplast.h.
Referenced by changeparam(), hypoplast(), and read().
double m |
Definition at line 68 of file hypoplast.h.
Referenced by changeparam(), hypoplast(), and read().
double n |
Definition at line 66 of file hypoplast.h.
Referenced by changeparam(), hypoplast(), read(), and updateval().
double n_star |
Definition at line 64 of file hypoplast.h.
Referenced by changeparam(), give_virgporosity(), hypoplast(), and read().
int nprops |
Definition at line 71 of file hypoplast.h.
Referenced by hypoplast(), matstiff(), and nlstresses().
int nstatv |
Definition at line 73 of file hypoplast.h.
Referenced by dstep_red(), mechmat::givencompeqother(), hypoplast(), matstiff(), and nlstresses().
double p_t |
Definition at line 61 of file hypoplast.h.
Referenced by changeparam(), hypoplast(), and read().
double phi |
Definition at line 60 of file hypoplast.h.
Referenced by changeparam(), hypoplast(), and read().
Definition at line 74 of file hypoplast.h.
Referenced by givestressincr(), hypoplast(), initval(), matstiff(), nlstresses(), and read().
double* props |
Definition at line 72 of file hypoplast.h.
Referenced by hypoplast(), matstiff(), nlstresses(), and read().
double rr |
Definition at line 65 of file hypoplast.h.
Referenced by changeparam(), hypoplast(), and read().
double s_e0 |
Definition at line 69 of file hypoplast.h.
Referenced by changeparam(), hypoplast(), and read().
Definition at line 75 of file hypoplast.h.
Referenced by givestressincr(), initval(), matstiff(), nlstresses(), and read().