I would like to create a user material. The Calculix help is relatively short on info on this topic and seems to assume that the user knows how to create a user material in Abaqus. Since I have never used Abaqus, nor have I ever created my own material law (in other software), I would like to know where I can learn the basics.
Specifically, I would first like to know how the procedure works in general.
- What should the files be named, and where should they be placed?
- Are they pure text files, or need they to be compiled, if so, which compiler do i need?
- What is the syntax of the file? The Calculix help gives variables, but does not describe how they can be used.
In both Abaqus and CalculiX you have to code a Fortran subroutine named UMAT. It’s not so easy (not as hard as creating user elements) but still requires quite a lot of work to properly define the mechanical constitutive behavior. In CalculiX documentation there is a description based on the example of Drucker-Prager model. Keyword syntax is also given there:
assuming 4 constants and 2 internal variables.
there’s available in paper for some detail examples of UMAT (CalculiX),
On finite element implementation of cyclic elastoplasticity: theory, coding, and exemplary problems (Cyprian Suchocki, 2022)
also, the code can be use or modify under GPL.
first of all thank you for the two examples. Especially the paper by Suchocki will serve me well later.
But actually this is already a step further than the state I’m currently at. At first, it was less about the concrete implementation, but rather about how I can create a UMAT.
I figured out that I have to compile CalculiX myself, is that true? If so, where can I find a guide for Windows?
If this worked, how must the UMAT file look like (fortran syntax?) and in which directory must I put it, so that it is compiled?
Thanks again for previous help.
Here’s a quote from the documentation:
To use a user subroutine, replace the dummy routine in the CalculiX distribution by yours (e.g. dflux.f from the distribution by the dflux.f you wrote yourself) and recompile.
Take a look at the umat.f file in the source code.
Thank you very much, I will give it a try. Now I have to collect all dependencies and find the right compiler.