10 #pragma GCC diagnostic push 11 #pragma GCC diagnostic ignored "-Wunused-parameter" 15 #include "libmesh/ignore_warnings.h" 16 #include <Eigen/Eigen> 17 #include "libmesh/restore_warnings.h" 24 const double & lambda)
26 C = Eigen::Matrix<double, 6, 6>::Zero();
28 for (
int i = 0; i < 3; i++)
32 for (
int j = 0;
j < 3;
j++)
80 double G = E / 2.0 / (1.0 + nu);
81 double lambda = 2.0 *
G * nu / (1.0 - 2.0 * nu);
85 for (
int i = 0; i < 6; i++)
86 eps[i] = stran[i] + dstran[i];
90 for (
int i = 0; i < 3; i++)
92 stress[i] = lambda * eps_trace + 2.0 *
G *
eps[i];
93 stress[i + 3] =
G *
eps[i + 3];
96 Eigen::Matrix<double, 6, 6>
C;
99 for (
int i = 0; i < 6; i++)
100 for (
int j = 0;
j < 6;
j++)
101 ddsdde[6 * i +
j] = 0.0;
103 for (
int i = 0; i < 3; i++)
105 ddsdde[6 * i + 0] =
C(0, i);
106 ddsdde[6 * i + 1] =
C(1, i);
107 ddsdde[6 * i + 2] =
C(2, i);
108 ddsdde[6 * (i + 3) + (i + 3)] =
C(i + 3, i + 3);
112 auto eigenvalues =
C.eigenvalues();
114 if (*npt == 8 && time[0] == 0.0)
115 for (
int index_i = 0; index_i < *ntens; index_i++)
116 Moose::out <<
"Eigenvalues " << index_i <<
" " << eigenvalues(index_i).real() << std::endl;
119 #pragma GCC diagnostic pop 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)
static const std::string G
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
void buildStiffnessMatrix(Eigen::Ref< Eigen::Matrix< double, 6, 6 >> C, const double &G, const double &lambda)
build a 6x6 representation of the stiffness tensor in C from the shear modulus G and Lame's first par...
static const std::string C