New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add option to use full finite strain tensor for strain weakening #1644
Add option to use full finite strain tensor for strain weakening #1644
Conversation
// Calculate and/or constrain the strain invariant of the previous timestep | ||
if ( use_finite_strain_tensor == true ) | ||
{ | ||
// Calculate second invarinat of left stretching tensor "L" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
typo invariant
for (unsigned int q = 0; q < Tensor<2,dim>::n_independent_components ; ++q) | ||
strain[Tensor<2,dim>::unrolled_to_component_indices(q)] = composition[q]; | ||
const SymmetricTensor<2,dim> L = symmetrize( strain * transpose(strain) ); | ||
strain_ii = std::fabs(second_invariant(L)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
cut off between strain weakening interval as well here?
|
||
// We need the velocity gradient for the finite strain (they are not included in material model inputs), | ||
// so we get them from the finite element. | ||
if (in.cell && use_finite_strain_tensor == true && this->get_timestep_number() > 0) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
also test use_strain_weakening is true (or do an assert somewhere that use_finite_strain_tensor can only be true if use_strain_weakening is true)
"$L = F * [F]^T$. In either case, the user specifies a single compositional " | ||
"field for the finite strain invariant or multiple fields (4 in 2D, 9 in 3D) " | ||
"for the finite strain tensor. These field(s) must be the first lised " | ||
"compositional fields in the paramter file. Note that one or more of the finite strain " |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
typo parameter
"strain rate tensor and $dt$ is the time step size. In the case of the " | ||
"full strain tensor $F$, the finite strain magnitude is derived from the " | ||
"second invariant of the symmetric stretching tensor $L$, where " | ||
"$L = F * [F]^T$. In either case, the user specifies a single compositional " |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"In either case" sounds confusing to me, because you don't do the same thing in either case. Either you specify a single field or multiple fields
set Names of fields = s11, s12, s21, s22 | ||
end | ||
|
||
# All compositional fields have an initial value of 0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is not true, the first and fourth field have a value of 0.5
if (use_strain_weakening && this->get_timestep_number() > 0) | ||
double edot_ii = 0.; | ||
double e_ii = 0.; | ||
if (use_strain_weakening == true && use_finite_strain_tensor == false && this->get_timestep_number() > 0) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why should the timestep be bigger than 0?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is to test if we are not on the first time step.
please run astyle! /run-tests |
Thanks for the review Anne! All of your comments should now be addressed. |
|
||
fe_values.reinit (*in.cell); | ||
fe_values[this->introspection().extractors.velocities].get_function_gradients (this->get_solution(), | ||
velocity_gradients); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The gcc-hd compiler build error seems to be related to retrieving the fe_values
here. Any suggestions for a fix I can apply?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry, should have quoted lines 394-397, but the build error there propagates down to these lines as well.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you need #include <deal.II/fe/fe_values.h>
at the top of the file.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Doh, of course. Thank you.
Unless there are further requested changes, this should be ready to merge. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Two little comments. Otherwise very nice, thanks for adding this!
"The finite strain invariant or full strain tensor is calculated through " | ||
"compositional fields within the material model. This implementation is " | ||
"identical to the compositional field finite strain plugin and cookbook " | ||
"described in the manual (author: Gassmoeller). If the user selects to track " |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please add Juliane, we contributed the section together.
@@ -0,0 +1,116 @@ | |||
# Global parameters |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you forgot the output for this test.
Provide an option to use the full finite strain tensor for the strain weakening component of the visco_plastic material model. There is a warning in the material model's documentation about the pitfalls of this option.
@anne-glerum - Any and all feedback welcome!