Author Topic: How to get the characteristic element size in UMAT  (Read 17899 times)

ws18

  • Jr. Member
  • **
  • Posts: 46
How to get the characteristic element size in UMAT
« on: October 16, 2024, 08:32:33 PM »
Dear all,

I have a question regarding how to obtain the "element size" in a UMAT file in FEAP85 and 86. I need the element size to regularize the computed dissipated energy for damage modeling (following Bazant's crack band model). Is there a header file I can include to directly access the characteristic element size, similar to how "dt" is available in the tdata.h file?

Thank you in advance for your help.

Prof. S. Govindjee

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 1164
Re: How to get the characteristic element size in UMAT
« Reply #1 on: October 16, 2024, 11:58:04 PM »
I don't think FEAP computes or saves this any place convenient.  My suggestion would be to create a separate copy of say sld3d1.f (or what ever element you are using) and program in the characteristic size formula you wish to use.  Then place it in a common block so that you can easily gain assess to it your material subroutine.

Prof. R.L. Taylor

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 2649
Re: How to get the characteristic element size in UMAT
« Reply #2 on: October 17, 2024, 04:53:38 AM »
We do not compute an element size, however, you can always access the element nodal coordinates from your UMAT.  They are stored in hr(np(44)) and dimensioned xl(ndm,nel).  The ndm and nel are accessible from the include files sdata.h (ndm) and eldata.h (nel).  The programmer manual should provide information getting information from pointers using (pointer.h and comblk.h).  You can compute an element size from the coordinates.

ws18

  • Jr. Member
  • **
  • Posts: 46
Re: How to get the characteristic element size in UMAT
« Reply #3 on: October 17, 2024, 05:27:58 AM »
Many thanks for your helpful replies.

Prof. S. Govindjee

  • Administrator
  • FEAP Guru
  • *****
  • Posts: 1164
Re: How to get the characteristic element size in UMAT
« Reply #4 on: October 17, 2024, 11:16:14 AM »
To do what Prof. Taylor suggests you would do something like the following, then you will have access to the nodal coordinates.  This would be preferred to my other suggestion.

Code: [Select]
include 'eldata.h'
include 'pointer.h'
include 'sdata.h'

include 'comblk.h'


real (kind=8) :: xl(:,:)

xl(1:ndm,1:nel) => hr(np(44):np(44)+ndm*nel-1)


This will allow you to access xl( , ) in the 'usual way'.  Note for this to work your comblk.h needs to be set up with the target attribute (the archive will need to be recompiled):
Code: [Select]
!-----[--+---------+---------+---------+---------+---------+---------+-]
!     Modification log                                  Date(dd/mm/year)
!     1. Increase dimension to 1024 to force loops on        03/10/2011
!        long arrays

      real (kind=8), target:: hr
      integer ,      target::           mr
      common /comblk/ hr(1024),mr(1024)