CalculiX not reading PROPS

Hi

I am implementing an isotropic J2 plasticity UMAT in CalculiX.
When I print the PROPS matrix on command window using write(,) command of FORTRAN, it shows only ZEROS (image attached).

I checked my .inp file also, and data is entered correctly (image attached).
I also tried changing the case of PROPS to props but still the same.
I explicitly defined EMOD, ENU, SYIELD in UMAT preamble part, but still the same.

Don’t know what is it that I am missing.
Can someone please help?

Thanks
Bhanu

image
image
image

Could you share your UMAT? Just to see what may be going on… Everything you show here looks correct (if I remember correctly the notation).

Here’s the UMAT code:





image

Hi

Can you share your comments if you’ve seen the code I posted?
Is it alright or am I missing something?

Thanks
Bhanu

Can someone please help me with this?

Thanks
Bhanu

Does it change at all after the 1st pass? It may be that it is the initialized value before computations.

No, it remains the same.
Actually the example problem has 32 C3D20R elements. So the cmd output (image shared earlier) gets printed 32*8 integration points only ONCE and then ccx stops.

Everything that I can see here looks good. Did you change the lines 550 - 557 in umat_abaqusnl.f? Also, could you print the values of the variable elconloc in this file? This may give us an idea of what’s going on.

I forgot to mention “elconloc” while calling the umat. I didn’t know about it.
I have added it now and also defined props in the umat_abaqusnl.f file (see image):

Thanks for this.
Now the PROPS are read correctly but its showing very large values of computed disp:

Is there a problem with the strain transformation from logarithmic to lagrangian? Or something like that.
(Actually, the program got stuck after iteration 5. I had to manual terminate it.)

1 Like

I would have to take a closer look at the J2PLAS subroutine but I would start by having a simple unit test and continue to debug it in the way you are doing, step by step. Maybe use gdb to debug as it runs - this way may be faster than printing statements.