Results 1 to 9 of 9

Thread: problems in vumat for beam element

  1. #1

    Question problems in vumat for beam element

    Dear All,
    I am coding one vumat subroutine for beam applications. In Abaqus manual there are some descriptions about vumat for Beam elements:

    ".....,For beams in space you must define the thickness strains, strainInc(*,2) and strainInc(*,3). ........"

    My questions are:
    1) what is the "thickness strains" ? Are they shear strains?
    2) In vumat, the variables corresponding to the thickness strains are strainInc(*,2) and strainInc(*,3)? If not, strainInc(*,2) and strainInc(*,3) are what and how and why to define them?

    3) In the manual, the strainInc(nblock, ndir+nshr) are grouped to variables passed in for information and not the variables to be defined.
    Is it necessary and right to define strainInc(*,2) and strainInc(*,3) in vumat? As I think, they are increments of strains and should be determined by abaqus itself.



    Thank you all!

    Yours truly,

    Xu Ziguo

  2. #2
    Join Date
    2006-09
    Location
    Sweden
    Posts
    81
    No, they are the transverse normal strains, i.e. affecting the thickness of your beam. And, no, ABAQUS does not do this by itself, because it cannot. The transverse normal STRESSES are, by definition, zero. ABAQUS does not know which transverse STRAINS produce zero STRESSES. That's your job in your VUMAT calculation -- you have to calculate the axial stress and shear stresses as well as the transverse strains that produce zero transverse stresses. The reason ABAQUS needs the transverse strains is in the calculation of a stable time step. So there's no way around it.

    Mats

  3. #3
    Hi Mats

    Many thanks for your reply!

    I wonder two more things:

    1) Is there some relationships between axial stress, shear stress and transvers strains? For simple case, the transverse strains can be defined as possion ratio multiply the axial strain or just let them zero?

    2) which variables in vumat correspond to the transverse strains that i should update? Are strainInc(*,2) and strainInc(*,3)?



    Quote Originally Posted by matsgd View Post
    No, they are the transverse normal strains, i.e. affecting the thickness of your beam. And, no, ABAQUS does not do this by itself, because it cannot. The transverse normal STRESSES are, by definition, zero. ABAQUS does not know which transverse STRAINS produce zero STRESSES. That's your job in your VUMAT calculation -- you have to calculate the axial stress and shear stresses as well as the transverse strains that produce zero transverse stresses. The reason ABAQUS needs the transverse strains is in the calculation of a stable time step. So there's no way around it.

    Mats

  4. #4
    Join Date
    2006-09
    Location
    Sweden
    Posts
    81
    Quote Originally Posted by Aguo View Post
    Hi Mats

    Many thanks for your reply!

    I wonder two more things:

    1) Is there some relationships between axial stress, shear stress and transvers strains? For simple case, the transverse strains can be defined as possion ratio multiply the axial strain or just let them zero?



    2) which variables in vumat correspond to the transverse strains that i should update? Are strainInc(*,2) and strainInc(*,3)?
    1) Not an expert on beams, but in general, stresses are given by the elastic strains and the elastic moduli. Take a look at Hooke's law for the 3-D case, and impose sig22=sig33=0. Then you should get the elastic transverse strains. If the material is elastic-plastic, you get the plastic transverse strains from the plastic incompressibility constraint (if the material is plastically incompressible).


    2) Yes, I believe so.
    Last edited by matsgd; 2012-06-01 at 02:29.

  5. #5
    Hi Mats

    Thank you so much!

    But I still wonder that how abaqus take the strainInc(*,2) and strainInc(*,3) to calculate the stable time increment, which are updated in vumat. In fact, I ignor updating the strainInc(*,2) and strainInc(*,3) in my vumat by now and abaqus/explicit still can give me reasonable results.

    There is one very strange thing to me that when i add the following four-line codes in my vumat the time increment will change much!

    if(nelem.eq.1246) then
    open(222,file="ttt.txt")
    close(222)
    endif

    Do you know why?

    Hope to discuss more with you if you have any interests.

    Ziguo

  6. #6
    Join Date
    2006-09
    Location
    Sweden
    Posts
    81
    Ziguo,

    The strain increment is used by ABAQUS to estimate a globally stable time step. Without going into detail (mostly because I really don't know these things well enough!), the stable time step is related to the wave speed, which in turn will depend on the size of individual elements. Since ABAQUS has no idea how your plane stress constraint affects strains in the out-of-plane direction(s), you have to provide this information. See section 6.3.3 of the User's manual, and section 2.4.5 of the Theory manual (version 6.11).

    The element number isn't provided to you through the VUMAT subroutine header. In a UMAT it is, but not in a VUMAT. So, your VUMAT looks into the memory position of NELEM (which is anyway implicitly allocated through the include 'vaba_param.inc' statement). In that memory position there will be garbage. Nonetheless, I am thinking that whatever that block of memory contains, it could be parsed as an integer, so in a way it shouldn't harm anything. But the chance of that garbage being parsed into 1246 is ... slim. I have no idea why the time increment changes. A question though: Do you actually manage to create a ttt.txt this way? If yes, I am lost...

  7. #7
    Hi Mats
    Thanks for your reply!
    As I know, the stable time step deterimined by abaqus is based on the dilatational wave speed. For beam element, one dimension "line" element, the dilatational wave speed may be related to the axial stiffness and shear stiffness only. How the transverse strain affects the dilatational wave speed in beam element? And why the transverse strain need vumat be updateted with
    the strain increment variables?

    The element number is not provided to user in the variable list of subroutine vumat. I found one method to get the element number at the web site:http://imechanica.org/node/2540. It does work well.
    I do not want to create and write anything to the ttt.txt. I found the strange thing that the two line code could make the stable time step change much when i debugged my vumat.
    I have no idea about it. If you have interests on it i can send you my vumat and example.

    best

    Ziguo

    Quote Originally Posted by matsgd View Post
    Ziguo,

    The strain increment is used by ABAQUS to estimate a globally stable time step. Without going into detail (mostly because I really don't know these things well enough!), the stable time step is related to the wave speed, which in turn will depend on the size of individual elements. Since ABAQUS has no idea how your plane stress constraint affects strains in the out-of-plane direction(s), you have to provide this information. See section 6.3.3 of the User's manual, and section 2.4.5 of the Theory manual (version 6.11).

    The element number isn't provided to you through the VUMAT subroutine header. In a UMAT it is, but not in a VUMAT. So, your VUMAT looks into the memory position of NELEM (which is anyway implicitly allocated through the include 'vaba_param.inc' statement). In that memory position there will be garbage. Nonetheless, I am thinking that whatever that block of memory contains, it could be parsed as an integer, so in a way it shouldn't harm anything. But the chance of that garbage being parsed into 1246 is ... slim. I have no idea why the time increment changes. A question though: Do you actually manage to create a ttt.txt this way? If yes, I am lost...

  8. #8
    You can assign the element number to the state variables.

    In Abaqus Standard this is easily done using SDVINI.

    In Abaqus Explicit you likely have to use the command

    *INITIAL CONDITIONS,TYPE=SOLUTION
    element number, element number

    for each individual element.

    Good luck

    Frank

  9. #9
    Hi Frank,

    You give me another great method to get the element number. Thank you very much!


    Quote Originally Posted by Frank View Post
    You can assign the element number to the state variables.

    In Abaqus Standard this is easily done using SDVINI.

    In Abaqus Explicit you likely have to use the command

    *INITIAL CONDITIONS,TYPE=SOLUTION
    element number, element number

    for each individual element.

    Good luck

    Frank

Similar Threads

  1. VUMAT and element deletion
    By shripadtokekar in forum Finite Element Modeling
    Replies: 19
    Last Post: 2011-01-25, 04:01
  2. I use vumat in a beam element in Abaqus
    By lizhg06 in forum Constitutive Models
    Replies: 1
    Last Post: 2010-06-19, 19:21
  3. Using VUMAT for element deletion
    By sirig in forum Finite Element Modeling
    Replies: 5
    Last Post: 2009-09-08, 19:50
  4. fracture of beam element in modeling of cnt
    By shahin213 in forum Finite Element Modeling
    Replies: 5
    Last Post: 2009-01-25, 04:36
  5. Problems about VUMAT in ABAQUS/Explicit.
    By golfhigh in forum Constitutive Models
    Replies: 7
    Last Post: 2008-05-13, 04:34

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •