User login

Navigation

You are here

Problem transferring variables between different abaqus subroutines without using common blocks

email.supratik's picture

Dear All,

 I have a problem passing variables back and forth between two user subroutines in ABAQUS. I have a VUEL and a VUMAT working together. Since custom elements is not shown in abaqus, I have to use 'overlay mesh' with very low mechanical properties (so that solution does not change) together with the custom elements. It is a cohesive element formulation, where I need to see the status variables to know when the elements fail. For that, I can easily do a status flag operation in VUEL and save that as a state variable, but need to pass the status (state variable) to the vumat , so that I can see that in visualization module in the overlay mesh. Right now I use common blocks to pass data from VUEL to VUMAT. This approcach seems fine for one cpu operation. However, for multicpu operations, like in linux clusters, even in the MPI mode, the common blocks are not handled correctly by many cpu's causing 'race conditions' and hence generationg wrong results for some elements in the mesh.

 I also tried using openmp libraries to make my common blocks threadprivate, but it didnt work quite well.

  If anybody knows a clean solution to transfering data back and forth between abaqus subroutines without the common block method and has done it successfully, I would be very interested to know.

Comments

liuhuifang1108's picture

刘会芳

Subscribe to Comments for "Problem transferring variables between different abaqus subroutines without using common blocks"

Recent comments

More comments

Syndicate

Subscribe to Syndicate