58 auto ebulk3 = emod / (1.0 - 2.0 * enu);
59 auto eg2 = emod / (1.0 + enu);
61 auto elam = (ebulk3 - eg2) / 3.0;
64 for (
int k1 = 0; k1 < *ndi; ++k1)
66 for (
int k2 = 0; k2 < *ndi; ++k2)
67 ddsdde[k1 * *ntens + k2] = elam;
68 ddsdde[k1 * *ntens + k1] += eg2;
70 for (
int k1 = *ndi; k1 < *ntens; ++k1)
71 ddsdde[k1 * *ntens + k1] = eg;
74 for (
int k1 = 0; k1 < *ntens; ++k1)
75 for (
int k2 = 0; k2 < *ntens; ++k2)
76 stress[k1] += ddsdde[k1 * *ntens + k2] * dstran[k2];
void umat_(double *stress, double *statev, double *ddsdde, double *sse, double *spd, double *scd, double *rpl, double *ddsddt, double *drplde, double *drpldt, double *stran, double *dstran, double *time, double *dtime, double *temp, double *dtemp, double *predef, double *dpred, char *cmname, int *ndi, int *nshr, int *ntens, int *nstatv, double *props, int *nprops, double *coords, double *drot, double *pnewdt, double *celent, double *dfgrd0, double *dfgrd1, int *noel, int *npt, int *layer, int *kspt, int *kstep, int *kinc, short cmname_len)