I am a beginner of the CalculiX. I want to use the CalculiX to simulate the porous metal deformation. In my case, the yield criterion is a function of the hydrostatic stress, second invariant of the deviatoric stress and relative density. The relative density is going to change when deformation take place.
Mybe I need write a new UMAT to deal with it (by call a behavior defined in shared libraries). However, relative density is not internal variable in the CalculiX. I don’t know which subroutine should be used to define the relative density? Whether sdvini.f or not? If I use the sdvini.f, Should I need compile the CalculiX as a new executable file?
Yes, you will need to recompile CalculiX every time you change your subroutines linked to that UMAT behavior.
That is correct. You will need to write a new UMAT, then change the impacted subroutines- You can look up in the manual.
Recall that the sdvini.f is only for initialization of the solution-dependent variables. You will need a way to recalcuate the state of each variable for each iteration, so you need to code that in your UMAT or other subroutine call.