Solving solid mechanics problems with material plasticity
Re: Solving solid mechanics problems with material plasticity
If ElasticSolver finds that a UMAT Subroutine has been specified, it doesn't use the standard keywords to seek for the basic material parameters such as Young's modulus and Poisson's ratio from the sif file. Instead such parameters are expected to be specified by using the keyword Material Constants. Elmer doesn't suppose anything about what these parameters are and how they are ordered, so you can decide for example that Young's modulus will be the second entry of Material Constants array. It's again a user's task to use these values consistently within the specific implementation of UMAT subroutine. The content of Material Constants array as specified in the sif file will be copied to be the PROPS argument of the UMAT template definition.
 Mika
 Mika

 Posts: 642
 Joined: 25 Jan 2019, 01:28
 Antispam: Yes
Re: Solving solid mechanics problems with material plasticity
Thanks.
My experience with finite element programming is limited to F=Kx, where K is a global stiffness matrix assembled from element stiffness matrices that are dependent on Young's Modulus. F is the provided load and K is inverted to solve for x=F/K. x is then used to calculated all other quantities.
In the plastic model E is not constant, it is a variable depending on where the solution is on the stress strain curve. However E does not appear to be used outside the UMAT. In the UMAT it is can be used to calculate stress using the strain increment, but how does the stiffness of the elements get updated if E changes?
Kevin
My experience with finite element programming is limited to F=Kx, where K is a global stiffness matrix assembled from element stiffness matrices that are dependent on Young's Modulus. F is the provided load and K is inverted to solve for x=F/K. x is then used to calculated all other quantities.
In the plastic model E is not constant, it is a variable depending on where the solution is on the stress strain curve. However E does not appear to be used outside the UMAT. In the UMAT it is can be used to calculate stress using the strain increment, but how does the stiffness of the elements get updated if E changes?
Kevin
Re: Solving solid mechanics problems with material plasticity
Elmer utilizes the return values of UMAT to perform (inexact) Newton's iteration, so that a linear system is constructed to obtain the solution increment. In very loose terms I'd say that the returned derivative of (Cauchy) stress response function offers a substitute description for the effect of having changing modulus of elasticity. If you look at the example implementation of linear isotropic model in UMATLib, the stress derivative is indeed computed in terms of Young's modulus (and Poisson's ratio) and to implement Newton's iteration Young's modulus need not be accessed outside the UMAT subroutine.
 Mika
 Mika

 Posts: 642
 Joined: 25 Jan 2019, 01:28
 Antispam: Yes
Re: Solving solid mechanics problems with material plasticity
This white paper is revisiting doing plastic analyses with young modulus as a function of strain. It seems viable for a uniaxial tensile load case. I am currently testing a plastic model UMAT subroutine.
This approach requires the user control the time stepping and the youngs modulus table to keep the solution on track. Hopefully, a UMAT model would avoid this.
This approach requires the user control the time stepping and the youngs modulus table to keep the solution on track. Hopefully, a UMAT model would avoid this.

 Posts: 642
 Joined: 25 Jan 2019, 01:28
 Antispam: Yes
Re: Solving solid mechanics problems with material plasticity
Testing UMAT
In testing for UMAT I created a one element model (type 409) to pull in each direction to test results. The XX direction worked very well.
In the YY direction Elmer without UMATs solved it correctly. Both the provided UMAT (linear_isotropic) and my UMAT failed. In the sif files you can swithc between no umat and umat by commenting out the appropriate material section.
Any ideas what the problem is?
In testing for UMAT I created a one element model (type 409) to pull in each direction to test results. The XX direction worked very well.
In the YY direction Elmer without UMATs solved it correctly. Both the provided UMAT (linear_isotropic) and my UMAT failed. In the sif files you can swithc between no umat and umat by commenting out the appropriate material section.
Any ideas what the problem is?

 Posts: 642
 Joined: 25 Jan 2019, 01:28
 Antispam: Yes
Re: Solving solid mechanics problems with material plasticity
Results for previous post, the sress results are equally off for YY, the displacement is large

 Posts: 642
 Joined: 25 Jan 2019, 01:28
 Antispam: Yes
Re: Solving solid mechanics problems with material plasticity
Switching to Element 408 resolved the issue. Must be something about 409 and the UMAT
Kevin
Kevin
Re: Solving solid mechanics problems with material plasticity
I made some small changes to your sif files. After that the standard material model and the UMAT version as available from UMATLib give the same results. To have the same Poisson's ratio 1.E12 the material constants array must be defined for the example implementation of UMATLib as
Material Constants(3) = Real 1.0 70e9 1.E12
To prevent an arbitrary rigid body movement in the orthogonal direction to the applied force I also added a pointwise constraint for the displacement. I tested with the element type 409. I'm attaching the altered sif files.
 Mika
Material Constants(3) = Real 1.0 70e9 1.E12
To prevent an arbitrary rigid body movement in the orthogonal direction to the applied force I also added a pointwise constraint for the displacement. I tested with the element type 409. I'm attaching the altered sif files.
 Mika
 Attachments

 test_yy_alt.sif
 (2.27 KiB) Downloaded 38 times

 test_xx_alt.sif
 (2.27 KiB) Downloaded 34 times

 Posts: 642
 Joined: 25 Jan 2019, 01:28
 Antispam: Yes
Re: Solving solid mechanics problems with material plasticity
Thank you,
I will test it out.
Kevin
I will test it out.
Kevin

 Posts: 642
 Joined: 25 Jan 2019, 01:28
 Antispam: Yes
Re: Solving solid mechanics problems with material plasticity
Great now elements 404, 408. 409, and 808 pass the XX and YY test.
Not fairing as well when XY is involved. This is a cantliver beam 1 unit long 0.1 unit high with an end load of 3E6. Elmer and UMAT produce the same results but it doesn't match the calculated solution. XX works for the model.
For inplane bending I get the same results with 408 and 808, but it is low by a factor of 10. Kevin
Not fairing as well when XY is involved. This is a cantliver beam 1 unit long 0.1 unit high with an end load of 3E6. Elmer and UMAT produce the same results but it doesn't match the calculated solution. XX works for the model.
For inplane bending I get the same results with 408 and 808, but it is low by a factor of 10. Kevin