--
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see https://groups.google.com/d/forum/dealii?hl=en
---
You received this message because you are subscribed to the Google Groups "deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dealii+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/3b018015-206e-41f7-9ff3-88c909927af7n%40googlegroups.com.
Hi Jean-Paul,
Thank you for your hints.
I initialized a local variable solution_grads_u_face_total with fe_face_values_ref[u_fe].get_function_gradients to get the gradient of displacement at the quadrature point on the face (see codes below). But the gradient acquired is not sensible and the resultant deformation is totally wrong.
void assemble_neumann_contribution_one_cell(…)
{
…………….
const FEValuesExtractors::Vector &u_fe = data.solid->u_fe;
std::vector<Tensor<2, dim,NumberType> > solution_grads_u_face_total(data.solid->qf_face.size());
scratch.fe_face_values_ref.reinit(cell, face);
scratch.fe_face_values_ref[u_fe].get_function_gradients(scratch.solution_total,
solution_grads_u_face_total);
for (unsigned int face = 0; face < GeometryInfo<dim>::faces_per_cell; ++face)
{
for (unsigned int f_q_point = 0; f_q_point < n_q_points_f; ++f_q_point)
{
const Tensor<2,dim,NumberType> &grad_u = solution_grads_u_face_total[f_q_point];
const Tensor<2,dim,NumberType> F = Physics::Elasticity::Kinematics::F(grad_u);
………….
}
………..
}
………..
}
Can you tell me what’s wrong with the code above?
Thank you!
Michael
To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/E4775A97-1A0A-48FF-9CE6-54ADD1448E53%40gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/2B729A00-167E-41F5-9363-7B4ADD1A8468%40hxcore.ol.
Hi Jean-Paul,
Yes, I set up the boundary check when taking care of the traction. It worked as expected using Physics::Transformations::nansons_formula(face_normal, F).
To make a quick test, I did not linearize the load stiffness but just used the load at last Newton-Raphson step, so it is like a mixture of N-R and Picard iteration. The technique is not correct and there is some discrepancy compared with the reference. But the result is better than not considering the face area change at all. So in some sense, it tells me that the surface transform is correct. I’m working on how to linearize an arbitrary surface traction. I have found some references dealing with the normal(pressure) load but not arbitrary surface load (the force is not normal to the face in my case). If you could give some advice or refer to some references on this topic, I would appreciate that very mush.
You’re totally right, it converges only if a very small load step is used. The residual grows up fast and the result is meaningless if the load increment is large.
Thanks for your great help!
Michael
To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/C5A123B1-E09B-4916-ADE4-D1DB8142B720%40gmail.com.
If you could give some advice or refer to some references on this topic, I would appreciate that very mush.
To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/25249C1B-9F64-4922-92A6-6A1D5AF3B52D%40hxcore.ol.
Hi Jean-Pau,
You’re always helpful. The deformation dependent loads are discussed in Wriggers, Wood and some other books and papers. I’m studying that. It seems the formulation is complicated. I believe that the auto-differentiation tools is a good approach to this nonlinear problem and I’ll dig into it later. For now I hope I can have a better understanding this topic and implement it in deal.II by hand then I will be comfortable with AD.
Jean-Paul
Jean-Paul
Can anybody give a hint on that?
Thanks,
Michael
To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/27C2A35B-D9ED-414B-98E0-722747C2A914%40gmail.com.