User material ABAQUSMCWD in latest distribution

i do simple test of brittle like concrete material, previously is working expected in 2.15 versions. However, running in latest 2.21 versions give unexpected result. Both CalculiX version running smoothly without any error message or converge issue. Any hints to explain about these problems? Thank you.

model sketch, (displacement load is 0.05mm translation in X direction)

material data

*Material,Name=ABAQUSMCWD
*User Material, Constants=5
23500.0,0.2,2.5,37.5,36.0

result (v2.15)

result (v2.21)

Have you checked the umat main and related subroutines?

the material type is already accessed from CalculiX Windows distribution, except undocumented. I guessed related to solver behavior, not in subroutines.

also, versions 2.20 and 2.19 have similar problem. Iteration goes and converge faster, but result still unexpected.

@xyont
Something must have been changed in your version of ccx_2.15. I have just downloaded ccx_2.15 from www.dhondt.de/ccx_2.15.src.tar.bz2, compiled the source and run either with ccx_2.21 or ccx_2.15 gives same results.
This is results from original ccx_2.15


well maybe that’s true, i forgot from where the distribution i used. Just questioning, why the problem run without any issue when material type is not available?

This is why I don’t like the distributed binaries…

It is always better to compare to the source code.

i checked again, it seems the distribution from Sourceforge. Latest update in 2.19 also capable for these material types.

how can the keyword card is readable, but not working expected? maybe the umat routine is not properly set.

That’s why looking at the source code is key in a case like this.

I checked the logbook from Guido, and there have been a lot of changes to the UMATs in general since the 2.15 version. Keep in mind that any of these changes could have introduced an unintended bug or that the previous code was not necessarily correct.

Here are some of the notes:


 29 Mar 2019  - corrected an error in umat_undo_nlgeom_lin_iso_el.f (a square root was missing in the calculation of the principal stretches)
	       
 5 April 2019 - removed a couple of errors in umat_tension_only.f and umat_compression_only.f
              - coded umat_lin_el_corot.f for linear elastic materials in which the rotation is removed
12 April 2019 - checked the material model in umat_lin_el_corot.f; improved the calculation of the tangent matrix (matrix is not symmetric; is symmetrized)
4 Feb 2023    - taking the thermal expansion into account in umat_abaqusnl: the total right stretch tensor has to  be taken to calculate the corotational stress from the PK2 stress, no the mechanical right stretch tensor.
 24 Feb 2023  - made a change in umat_abaqusnl.f: taking expansion into account after return from umat.f
              - accelerated Johnson-Cook (wrote umat_abaqusnl_4_jcook.f)

 3 Mar 2023   - made a change in umat_abaqusnl.f and umat_abaqusnl_4_jcook.f (multiplied tangent matrix with vj)

 7 Mar 2023   - updated umat_johnson_cook.f and wrote umat_def_plas.f

 9 Mar 2023   - changed deformation plasticity from Cauchy stress vs.
                  Euler strain to Cauchy stress vs. Hencky strain.

 13 Mar 2023  - worked on the tangent in umat_abaqusnl.f

 14 Mar 2023  - worked on the consistent tangent in umat_abaqusnl.f and
		  umat_abaqusnl_total.f

 21 Mar 2023  - cleaned umat_abaqusnl.f and umat_abaqusnl_total.f

 31 Mar 2023    - worked on the documentation for umat_abaqusnl.f

indeed, that’s what i was guessed. Hopefully, this umat code re-instate to active again and working properly in the next release. Distribution from SourceForge is limited to Spooles solver, no PaStiX and Pardiso linked.

i found the source code of Fortran stored at GitHub also

1 Like