185 double eta = 999999999.0;
197 for (
unsigned int a = 0; a < 3; ++a)
198 for (
unsigned int b = 0; b < 3; ++b)
201 theta[a][b] = (
ea(a) -
ea(b))
203 xi[a][b] = (theta[a][b] - 0.5 *
da(b))
206 for (
unsigned int c = 0; c < 3; ++c)
207 if ((c != a) && (c != b))
225 for (
unsigned int a = 0; a < 3; ++a)
227 for (
unsigned int b = 0; b < 3; ++b)
230 theta[a][b] = 0.5 *
da(0);
231 xi[a][b] = (1.0 / 8.0) *
fa(0);
234 eta = (1.0 / 8.0) *
fa(0);
243 for (
unsigned int a = 0; a < 3; ++a)
244 for (
unsigned int b = 0; b < 3; ++b)
245 if ((a != b) && ((a == 2) || (b == 2)))
247 theta[a][b] = (
ea(a) -
ea(b))
249 xi[a][b] = (theta[a][b] - 0.5 *
da(b))
253 theta[0][1] = 0.5 *
da(0);
254 theta[1][0] = theta[0][1];
255 xi[0][1] = (1.0 / 8.0) *
fa(0);
265 for (
unsigned int a = 0; a < 3; ++a)
266 for (
unsigned int b = 0; b < 3; ++b)
267 if ( (a != b) && ((a == 1) || (b == 1)) )
269 theta[a][b] = (
ea(a) -
ea(b))
271 xi[a][b] = (theta[a][b] - 0.5 *
da(b))
275 theta[0][2] = 0.5 *
da(0);
276 theta[2][0] = theta[0][2];
277 xi[0][2] = (1.0 / 8.0) *
fa(0);
287 for (
unsigned int a = 0; a < 3; ++a)
288 for (
unsigned int b = 0; b < 3; ++b)
289 if ( (a != b) && ((a == 0) || (b == 0)) )
291 theta[a][b] = (
ea(a) -
ea(b))
293 xi[a][b] = (theta[a][b] - 0.5 *
da(b))
297 theta[1][2] = 0.5 *
da(1);
298 theta[2][1] = theta[1][2];
299 xi[1][2] = (1.0 / 8.0) *
fa(1);
305 deallog <<
"ln-space<< eigenvalues:0: " <<
eigenvalues[0] << std::endl;
306 deallog <<
"ln-space<< eigenvalues:1: " <<
eigenvalues[1] << std::endl;
307 deallog <<
"ln-space<< eigenvalues:2: " <<
eigenvalues[2] << std::endl;
309 ExcMessage(
"ln-space<< Eigenvalue case not possible, check update_qph!") );
320 std::vector< SymmetricTensor<4,3> > Ma_x_Ma (3);
322 Tensor<4,3> projection_tensor_P;
323 for (
unsigned int a = 0; a < 3; ++a)
326 projection_tensor_P +=
da(a) * (Tensor<4,3> ) Ma_x_Ma[a];
327 for (
unsigned int b = 0; b < 3; ++b)
333 Assert(
symmetry_check(projection_tensor_P), ExcMessage(
"ln-space<< Projection tensor P is not symmetric") );
337 Tensor<4,3> projection_tensor_T_doublecon_L;
338 for (
unsigned int a = 0; a < 3; ++a)
340 projection_tensor_T_doublecon_L +=
fa(a)
342 * (Tensor<4,3> ) Ma_x_Ma[a];
343 for (
unsigned int b = 0; b < 3; ++b)
346 projection_tensor_T_doublecon_L += 2.0 * xi[a][b]
356 for (
unsigned int c = 0; c < 3; ++c)
357 if ( (c != a) && (c != b) )
359 projection_tensor_T_doublecon_L += 2.0 * eta
370 ExcMessage(
"ln-space<< Projection tensor T:L is not symmetric") );
371 SymmetricTensor<4,3> projection_tensor_T_doublecon_L_sym =
symmetrize(projection_tensor_T_doublecon_L);
376 C = projection_tensor_P_sym * elasto_plastic_tangent * projection_tensor_P_sym
377 + projection_tensor_T_doublecon_L_sym;
bool symmetry_check(Tensor< 2, dim > &tensor)
Definition: functions.h:163
SymmetricTensor< 2, dim > second_piola_stress_S
Definition: ln_space.h:40
std::vector< SymmetricTensor< 2, 3 > > eigenbasis
Definition: ln_space.h:57
const double comp_tolerance
Definition: ln_space.h:64
Vector< double > eigenvalues
Definition: ln_space.h:55
SymmetricTensor< 4, dim > C
Definition: ln_space.h:41
SymmetricTensor< 4, 3 > C_3D
Definition: ln_space.h:42
Tensor< 4, dim > get_tensor_operator_F_right(const SymmetricTensor< 2, dim > &Ma, const SymmetricTensor< 2, dim > &Mb, const SymmetricTensor< 2, dim > &Mc, const SymmetricTensor< 2, dim > &T)
Definition: functions.h:53
Vector< double > da
Definition: ln_space.h:59
SymmetricTensor< 4, dim > outer_product_sym(const SymmetricTensor< 2, dim > &A, const SymmetricTensor< 2, dim > &B)
Definition: functions.h:110
SymmetricTensor< 4, 3 > projection_tensor_P_sym
Definition: ln_space.h:62
Tensor< 4, dim > get_tensor_operator_G(const SymmetricTensor< 2, dim > &Ma, const SymmetricTensor< 2, dim > &Mb)
Definition: functions.h:33
Vector< double > fa
Definition: ln_space.h:60
Tensor< 4, dim > get_tensor_operator_F_left(const SymmetricTensor< 2, dim > &Ma, const SymmetricTensor< 2, dim > &Mb, const SymmetricTensor< 2, dim > &Mc, const SymmetricTensor< 2, dim > &T)
Definition: functions.h:79
Vector< double > ea
Definition: ln_space.h:58
SymmetricTensor< 4, dim > symmetrize(const Tensor< 4, dim > &tensor)
Definition: functions.h:209