56 const double E = props[0];
57 const double nu = props[1];
58 const double Ebulk = E / (1.0 - 2.0 * nu);
59 const double Eg2 = E / (1.0 + nu);
60 const double Eg = Eg2 / 2.0;
61 const double Elam = (Ebulk - 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];
80 Moose::out << std::fixed << std::setprecision(7);
81 for (
int k1 = 0; k1 < *ntens; ++k1)
82 Moose::out <<
"stran " << k1 <<
" = " << stran[k1] <<
"\n";
84 for (
int k1 = 0; k1 < *ntens; ++k1)
85 Moose::out <<
"dstran " << k1 <<
" = " << dstran[k1] <<
"\n";
87 for (
int k1 = 0; k1 < *ntens; ++k1)
88 Moose::out <<
"stress " << k1 <<
" = " << stress[k1] <<
"\n";
90 for (
int k1 = 0; k1 < *ndi; ++k1)
91 Moose::out <<
"coords " << k1 <<
" = " << coords[k1] <<
"\n";
93 for (
int k1 = 0; k1 < *ndi * *ndi; ++k1)
94 Moose::out <<
"dfgrd0 " << k1 <<
" = " << dfgrd0[k1] <<
"\n";
96 for (
int k1 = 0; k1 < *ndi * *ndi; ++k1)
97 Moose::out <<
"dfgrd1 " << k1 <<
" = " << dfgrd1[k1] <<
"\n";
99 for (
int k1 = 0; k1 < *ndi * *ndi; ++k1)
100 Moose::out <<
"drot " << k1 <<
" = " << drot[k1] <<
"\n";
102 Moose::out <<
"time 0 = " << time[0] <<
"\n";
103 Moose::out <<
"time 1 = " << time[1] <<
"\n";
104 Moose::out <<
"celent = " << *celent <<
"\n";
105 Moose::out << std::defaultfloat;
106 Moose::out <<
"ndi = " << *ndi <<
"\n";
107 Moose::out <<
"nshr = " << *nshr <<
"\n";
108 Moose::out <<
"ntens = " << *ntens <<
"\n";
109 Moose::out <<
"noel = " << *noel <<
"\n";
110 Moose::out <<
"npt = " << *npt <<
"\n";
111 Moose::out <<
"layer = " << *layer <<
"\n";
112 Moose::out <<
"kspt = " << *kspt <<
"\n";
113 Moose::out <<
"kstep = " << *kstep <<
"\n";
114 Moose::out <<
"kinc = " << *kinc <<
"\n";
115 Moose::out <<
"cmname = " << cmname <<
"\n";
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)