Solving solid mechanics problems with material plasticity

General discussion about Elmer
kevinarden
Posts: 2237
Joined: 25 Jan 2019, 01:28
Antispam: Yes

Re: Solving solid mechanics problems with material plasticity

Post by kevinarden »

IF (UseUMAT .AND. TransientSimulation) CALL Fatal('ElasticSolve', &
'UMAT version does not yet support transient simulation')

Transient is required for plasticity. I programmed my plastic model UMAT, but without transient there is no path forward. Not transient in the dynamic sense but stepping in increments, time is often used to make the increment. Load is increased with time, velocity and accelerations are not required.
mika
Posts: 230
Joined: 15 Sep 2009, 07:44

Re: Solving solid mechanics problems with material plasticity

Post by mika »

Hi,

The umat version doesn't yet take into account inertia forces, but it should nevertheless be possible to apply load increments by making the simulation in the "scanning" mode:

Simulation
...
Simulation Type = Scanning
Timestep Intervals = ...

Then there exist a time-like variable that can be used to apply load increments, for example

Body Force ...
Stress Bodyforce 1 = Variable Time
Real MATC "(tx/2)*1e8"
...

-- Mika
kevinarden
Posts: 2237
Joined: 25 Jan 2019, 01:28
Antispam: Yes

Re: Solving solid mechanics problems with material plasticity

Post by kevinarden »

Thanks, I have my UMAT compiled, so I will start testing today.

Kevin
mika
Posts: 230
Joined: 15 Sep 2009, 07:44

Re: Solving solid mechanics problems with material plasticity

Post by mika »

I need to mention that we just changed in the devel branch the way how a user-defined UMAT subroutine can be included, so my previous instructions are not any more fully working. The main objective was to ease the compilation by removing the user's need to compile the whole solver of Elmer when introducing a new material model. Now a consistent version of the elmerf90 command is only needed. Free hand is also given to name alternate subroutines that follow the umat convention.

The file .../fem/src/UMAT.F90 doesn't any more exist. Instead we introduced a new file ../fem/src/modules/UMATLib.F90 which contains both the template subroutine for creating new material models in the umat form and some ready example implementations. The old keywords "Use UMAT" and "User Defined UMAT" are now obsolete. To specify a material model in the umat form, one must now use the keyword "UMAT Subroutine" in a material section in order to specify the file (that can be generated with an elmerf90 command before simulation) and to pick the subroutine desired.

For example, if the arguments of a subroutine my_umat follow the umat convention and this subroutine is contained in a file MyUMATLib.F90, you may compile it as

elmerf90 MyUMATLib.F90 -o MyUMATLib

Then having

UMAT Subroutine = File "MyUMATLib" "my_umat"

in a material section should pick the material model defined in the subroutine my_umat as active. For updated examples you may again see the directories .../fem/tests/UMAT_*.

-- Mika
annier
Posts: 1168
Joined: 27 Aug 2013, 13:51
Antispam: Yes

Re: Solving solid mechanics problems with material plasticity

Post by annier »

mika wrote: 08 Mar 2019, 16:59 I need to mention that we just changed in the devel branch the way how a user-defined UMAT subroutine can be included, so my previous instructions are not any more fully working. The main objective was to ease the compilation by removing the user's need to compile the whole solver of Elmer when introducing a new material model. Now a consistent version of the elmerf90 command is only needed. Free hand is also given to name alternate subroutines that follow the umat convention.

The file .../fem/src/UMAT.F90 doesn't any more exist. Instead we introduced a new file ../fem/src/modules/UMATLib.F90 which contains both the template subroutine for creating new material models in the umat form and some ready example implementations. The old keywords "Use UMAT" and "User Defined UMAT" are now obsolete. To specify a material model in the umat form, one must now use the keyword "UMAT Subroutine" in a material section in order to specify the file (that can be generated with an elmerf90 command before simulation) and to pick the subroutine desired.

For example, if the arguments of a subroutine my_umat follow the umat convention and this subroutine is contained in a file MyUMATLib.F90, you may compile it as

elmerf90 MyUMATLib.F90 -o MyUMATLib

Then having

UMAT Subroutine = File "MyUMATLib" "my_umat"

in a material section should pick the material model defined in the subroutine my_umat as active. For updated examples you may again see the directories .../fem/tests/UMAT_*.

-- Mika
Mika,
Thanks for the information.

Yours Sincerely,
Anil Kunwar
Anil Kunwar
Faculty of Mechanical Engineering, Silesian University of Technology, Gliwice
kevinarden
Posts: 2237
Joined: 25 Jan 2019, 01:28
Antispam: Yes

Re: Solving solid mechanics problems with material plasticity

Post by kevinarden »

Mika,

I have been testing with MyUMATLib.F90 while working on plasticity material models. When using a UMAT material model there is no mises, nor principle stresses/strains calculated, only normal values (xx, yy, xy, etc.) If I run the same model with a regular material they are calculated. Is it up to the UMAT to calculated the invariant values? and if so how are the values passed back.

Kevin
mika
Posts: 230
Joined: 15 Sep 2009, 07:44

Re: Solving solid mechanics problems with material plasticity

Post by mika »

Hi,

You are right that ready utilities for getting the principal components of tensors in the context of UMAT are missing. I could add the computation of these as visualization fields to my "to do" list. If the principal components were calculated within the UMAT subroutine, one could perhaps save these values as redundant state variables to avoid recomputation elsewhere. Even so the code should be altered to visualize these fields (state variables) for example.

Best regards,
Mika
kevinarden
Posts: 2237
Joined: 25 Jan 2019, 01:28
Antispam: Yes

Re: Solving solid mechanics problems with material plasticity

Post by kevinarden »

Thanks. right know I am calculating invariant and writing them to a file.

Is there a list of what the state variables are in ElasticSolver?

Kevin
mika
Posts: 230
Joined: 15 Sep 2009, 07:44

Re: Solving solid mechanics problems with material plasticity

Post by mika »

Elmer doesn't have any state variables which would be allocated by default. Therefore it's a user's task to specify the count of state variables (the keyword command Number of State Variables = Integer ...) and use them consistently within the user-supplied umat subroutine.

In practice, outside the umat subroutine, ElasticSolver saves stress components and three energy variables in the same array where the state variables are located (the first entries of this array are the state variables and then come the stress and the energy variables). Nevertheless the umat subroutine has other arguments to transfer the stress and energy variables and hence neither stress variables nor energy variables are by default contained in the set of state variables.

-- Mika
kevinarden
Posts: 2237
Joined: 25 Jan 2019, 01:28
Antispam: Yes

Re: Solving solid mechanics problems with material plasticity

Post by kevinarden »

Thanks,

Another question, both of these material entries produce the same answer. In the UMAT version how does ElasticSolver know what youngs modulus is, or does it need to know?

Material 1
Number of Material Constants = Integer 3
Number of State Variables = Integer 0
! List material constants as {density, Young's modulus, Poisson's ratio}:
Material Constants(3) = Real 1.0 70e9 0.3
Density = 1.0
Reference Temperature = 293.0
UMAT Subroutine = File "umattest" "linear_isotropic"
Name = "linear isotropic" ! This specifies the CMNAME argument of UMAT
End

Material 1
Density = 1.0
youngs modulus = 70E9
poisson ratio = 0.3
Reference Temperature = 293.0
End

Kevin
Post Reply