[Dune] Help requested for my first test case in non linear mechanics
HELFER Thomas 202608
thomas.helfer at cea.fr
Thu Apr 16 11:22:39 CEST 2020
Hi Christian,
You are right, I did not take normalisation of the matrix into account. I changed that (remplacing 1 with the highest absolute value of K before elimination).
I seems to help on one element, but do not change the behaviour with several ones.
I also admit that I did not even think of the linear solver that I used, and made a dumbe copy/paste of Olivier example. My bad, I shall be much more cautioius here.
I'll try a direct solver and let you know.
Thomas
________________________________________
De : Christian Engwer [christian.engwer at uni-muenster.de]
Envoyé : jeudi 16 avril 2020 09:53
À : HELFER Thomas 202608; dune at lists.dune-project.org
Objet : Re: [Dune] Help requested for my first test case in non linear mechanics
Hi Thomas,
as you said, it works for a single element, I don't think it is likely that the actual problem arises from wrong boundary conditions, but from something else. Your currently replace your Dirichlet rows with a diagonal 1. Some remarks... What is the size of your other matrix entries? Are they O(1)? Otherwise you might run into issues due to the different entries, or you have to do a full elimination (including columns). You are using a CG solver. That should work, as you are arriving in the right subspaces but your matrix is non-symmetric, so depending on the finite on precision errors, you might still run into trouble. To use a direct divers, you can simply replace the CG with one of our direct solver wrappers. We support SuperLU and UMFPack, e.g. dune/istl/superlu.hh.
Ciao
Christian
Am 15. April 2020 22:37:21 MESZ schrieb HELFER Thomas 202608 <thomas.helfer at cea.fr>:
Dear Dune users,
I introduced my self by saying that I was interested to evaluate Dune for non linear mechanics
and in particular that I wanted to use MFront behaviours in Dune.
I tried to adapt the poisson-solver example given by O. Sander to the description of a simple
tensile test on a unit cube.
It almost works. I can simulate a tensile test for an elastic behaviour and a plastic behaviour.
I probably can use any smal strain behaviour generated by MFront. The non-linearity is treated
very crudely as we use an Newton algorithm with a fixed number of iterations.
The trouble is that it only works if the grid contains only a single element. This probably means
that I made a mistake in the assembly of the stiffness matrix or the assembly of the inner
forces. I reread my code several times without finding the trouble.
Please find enclosed my project, modified to drop the dependency to the MGIS library and
only integrate an isotropic elastic behaviour. The relevant file is
dune-mgis/src/dune-mgis-tensile-test.cc.
The purpose of my request is twofold:
- I would be grateful if anyone could find what I have done wrong.
- I would be grateful if anyone could review the code to tell me what could be improved.
With kind regards,
Thomas Helfer
More information about the Dune
mailing list