Skip to content
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

Merged
merged 5 commits into from May 17, 2017

Conversation

naliboff
Copy link
Contributor

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!

// 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"
Copy link
Contributor

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));
Copy link
Contributor

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)
Copy link
Contributor

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 "
Copy link
Contributor

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 "
Copy link
Contributor

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
Copy link
Contributor

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)
Copy link
Contributor

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?

Copy link
Contributor Author

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.

@tjhei
Copy link
Member

tjhei commented May 13, 2017

please run astyle!

/run-tests

@naliboff
Copy link
Contributor Author

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);
Copy link
Contributor Author

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?

Copy link
Contributor Author

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.

Copy link
Contributor

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.

Copy link
Contributor Author

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.

@naliboff
Copy link
Contributor Author

Unless there are further requested changes, this should be ready to merge.

Copy link
Member

@gassmoeller gassmoeller left a 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 "
Copy link
Member

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
Copy link
Member

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.

@gassmoeller gassmoeller merged commit 46cbf92 into geodynamics:master May 17, 2017
@naliboff naliboff deleted the finite_strain_weakening branch May 25, 2017 18:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants