×
INTELLIGENT WORK FORUMS
FOR ENGINEERING PROFESSIONALS

Log In

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!
  • Students Click Here

*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Jobs

Exponential Young's modulus

Exponential Young's modulus

Exponential Young's modulus

(OP)
Dear All,

Do you know how to implement an exponential Young's modulus in an elastic costitutive law?

The model:

Eyoung=c1e^(c2E)

where:

Eyoung=Young's moduuls
c1=constant
c2=constant
E=strain

Thanks a lot.

Leo

RE: Exponential Young's modulus

You could define the modulus as an appropriate function of a field variable, using subroutine USDFLD to calculate the field variable according to the exponential function of strain.

RE: Exponential Young's modulus

(OP)
Mmm....do you know where could I find examples?

But... Is not possible by UMAT?

 

RE: Exponential Young's modulus

(OP)
mrgoldthorpe... I am trying to understand how it works using USDFLD. But the problem is how to define the subroutine, and I did't understand the meaning of:

*ELASTIC, DEPENDENCIES=1

2000., 0.3, 0., 0.04
...

the last values (ex. 0.04 in the first row) in the "table of modulus values decreasing as a function of field variable 1", reported in section 1.1.43 of Abaqus User Subroutines Reference Manual V 6.8.

It is the section linked to USDFLD.

I really don't have any idea of how to implement the subroutine. Could you suggest to me examples?

Thanks for your time.

Regards,

Leo

RE: Exponential Young's modulus

** First define E to varying linearly with the field
** variable. Make sure you use a large enough number to cover all possible values of E you might encounter:
*ELASTIC, DEPENDENCIES=1
       0.0, 0.3, 0.,        0.0
10000000.0, 0.3, 0., 10000000.0
**
*USER DEFINED FIELD
*DEPVAR
1


Define USDFLD as follows:

     SUBROUTINE USDFLD(FIELD,STATEV,PNEWDT,DIRECT,T,CELENT,
    1 TIME,DTIME,CMNAME,ORNAME,NFIELD,NSTATV,NOEL,NPT,LAYER,
    2 KSPT,KSTEP,KINC,NDI,NSHR,COORD,JMAC,JMATYP,MATLAYO,LACCFLA)
C
      INCLUDE 'ABA_PARAM.INC'
C
      CHARACTER*80 CMNAME,ORNAME
      CHARACTER*3  FLGRAY(15)
      DIMENSION FIELD(NFIELD),STATEV(NSTATV),DIRECT(3,3),
    1 T(3,3),TIME(2)
      DIMENSION ARRAY(15),JARRAY(15),JMAC(*),JMATYP(*),COORD(*)
     SUBROUTINE USDFLD(FIELD,STATEV,PNEWDT,DIRECT,T,CELENT,
    1 TIME,DTIME,CMNAME,ORNAME,NFIELD,NSTATV,NOEL,NPT,LAYER,
    2 KSPT,KSTEP,KINC,NDI,NSHR,COORD,JMAC,JMATYP,MATLAYO,LACCFLA)
C
      INCLUDE 'ABA_PARAM.INC'
      CHARACTER*80 CMNAME,ORNAME
      CHARACTER*3  FLGRAY(15)
      DIMENSION FIELD(NFIELD),STATEV(NSTATV),DIRECT(3,3),
    1 T(3,3),TIME(2)
      DIMENSION ARRAY(15),JARRAY(15),JMAC(*),JMATYP(*),COORD(*)
C
C  Define parameters C1 and C2, change values used here:
      PARAMETER (C1=3.6, C2=4.8)
C
C  Get the strain array:
      CALL GETVRM('E',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP,
      MATLAYO,LACCFLA)
C
C  choose whatever component or scalar is required for your exponential
C  function. Let's use the first component here:
      EPS = ABS( ARRAY(1) )
C
C  Now apply your expression for E to determine the field variable:
      FIELD(1) = C1 * EXP(C2*EPS)
C
C Store as a solution dependent state variable (not really required):
      STATEV(1) = FIELD(1)
C
C If error, write comment to .DAT file:
      IF(JRCD.NE.0)THEN
       WRITE(6,*) 'REQUEST ERROR IN USDFLD FOR ELEMENT NUMBER ',
     1     NOEL,'INTEGRATION POINT NUMBER ',NPT
      ENDIF
C
      RETURN
      END

RE: Exponential Young's modulus

(OP)
Thank you very much.

I will let you know just as soon as I will be able to try it.

Leo

Ps: butwhat exactly does it mean?:
** First define E to varying linearly with the field
** variable. Make sure you use a large enough number to cover all possible values of E you might encounter:

*ELASTIC, DEPENDENCIES=1       
0.0, 0.3, 0.,0.010000000.0, 0.3, 0., 10000000.0

 

RE: Exponential Young's modulus

In defining E in *ELASTIC, you specify that it varies linearly with the field variable. In other words, E is equal to the value of the field variable.

In defining the field variable in USDFLD you are of course actually working out E.

Does that make sense? I'll leave you to sort it out now.

By the way, you might find it useful to examine SDV1 and the particular value of strain you are using to work out E - say by *EL PRINT - to make sure that the values are consistent with what you expect.
 

RE: Exponential Young's modulus

(OP)

Waiting the availability of C++ with fortran...

I tought to this solution:

INP FILE:


...

*Elastic, Dependencies=1
** Table of values
**
0.0151,0.49,0.,0.
0.016688,0.49,0.,0.01
0.018443,0.49,0.,0.02
0.020383,0.49,0.,0.03
0.022527,0.49,0.,0.04
0.024896,0.49,0.,0.05
0.027514,0.49,0.,0.06
0.030408,0.49,0.,0.07
0.033606,0.49,0.,0.08
0.03714,0.49,0.,0.09
0.041046,0.49,0.,0.1
0.045363,0.49,0.,0.11
0.050134,.49,0.,0.12
0.055406,0.49,0.,0.13
0.061234,0.49,0.,0.14
0.067674,0.49,0.,0.15
0.074791,0.49,0.,0.16
0.082657,0.49,0.,0.17
0.09135,0.49,0.,0.18
0.10096,0.49,0.,0.19
0.11157,0.49,0.,0.2
0.12331,0.49,0.,0.21
0.13628,0.49,0.,0.22
0.15061,0.49,0.,0.23
0.16645,0.49,0.,0.24
0.18396,0.49,0.,0.25
0.2033,0.49,0.,0.26
0.22468,0.49,0.,0.27
0.24831,0.49,0.,0.28
0.27443,0.49,0.,0.29
0.30329,0.49,0.,0.3
0.33519,0.49,0.,0.31
0.37044,0.49,0.,0.32
0.4094,0.49,0.,0.33
0.45246,0.49,0.,0.34
0.50004,0.49,0.,0.35
0.55263,0.49,0.,0.36
0.61075,0.49,0.,0.37
0.67499,0.49,0.,0.38
0.74598,0.49,0.,0.39
0.82443,0.49,0.,0.4
0.91114,0.49,0.,0.41
1.007,0.49,0.,0.42
1.1129,0.49,0.,0.43
1.2299,0.49,0.,0.44
1.3593,0.49,0.,0.45
1.5022,0.49,0.,0.46
1.6602,0.49,0.,0.47
1.8348,0.49,0.,0.48
2.0278,0.49,0.,0.49
2.241,0.49,0.,0.5
2.4767,0.49,0.,0.51
2.7372,0.49,0.,0.52
3.0251,0.49,0.,0.53
3.3432,0.49,0.,0.54
3.6948,0.49,0.,0.55
4.0834,0.49,0.,0.56
4.5129,0.49,0.,0.57
4.9875,0.49,0.,0.58
5.5121,0.49,0.,0.59
6.0918,0.49,0.,0.6
6.7325,0.49,0.,0.61
7.4405,0.49,0.,0.62
8.223,0.49,0.,0.63
9.0879,0.49,0.,0.64
10.044,0.49,0.,0.65
11.1,0.49,0.,0.66
12.267,0.49,0.,0.67
13.557,0.49,0.,0.68
14.983,0.49,0.,0.69
16.559,0.49,0.,0.7
18.301,0.49,0.,0.71
20.225,0.49,0.,0.72
22.353,0.49,0.,0.73
24.703,0.49,0.,0.74
27.301,0.49,0.,0.75
30.173,0.49,0.,0.76
33.346,0.49,0.,0.77
36.853,0.49,0.,0.78
40.729,0.49,0.,0.79
45.012,0.49,0.,0.8
49.746,0.49,0.,0.81
54.978,0.49,0.,0.82
60.76,0.49,0.,0.83
67.151,0.49,0.,0.84
74.213,0.49,0.,0.85
82.018,0.49,0.,0.86
90.644,0.49,0.,0.87
100.18,0.49,0.,0.88
110.71,0.49,0.,0.89
122.36,0.49,0.,0.9
135.22,0.49,0.,0.91
149.45,0.49,0.,0.92
165.16,0.49,0.,0.93
182.53,0.49,0.,0.94
201.73,0.49,0.,0.95
222.95,0.49,0.,0.96
246.4,0.49,0.,0.97
272.31,0.49,0.,0.98
300.95,0.49,0.,0.99
332.6,0.49,0.,1
*User Defined Field
*Depvar
1

...

E changes with the exponential law.

While for the .for file:

SUBROUTINE USDFLD(FIELD,STATEV,PNEWDT,DIRECT,T,CELENT,
     1 TIME,DTIME,CMNAME,ORNAME,NFIELD,NSTATV,NOEL,NPT,LAYER,
     2 KSPT,KSTEP,KINC,NDI,NSHR,COORD,JMAC,JMATYP,MATLAYO,
     3 LACCFLA)
C
      INCLUDE 'ABA_PARAM.INC'
C
      CHARACTER*80 CMNAME,ORNAME
      CHARACTER*3  FLGRAY(15)
      DIMENSION FIELD(NFIELD),STATEV(NSTATV),DIRECT(3,3),
     1 T(3,3),TIME(2)
      DIMENSION ARRAY(15),JARRAY(15),JMAC(*),JMATYP(*),
     1 COORD(*)
C
C Absolute value of current strain:
      CALL GETVRM('E',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP,
      MATLAYO,LACCFLA)
      EPS = ABS( ARRAY(1) )
C
C Use the current strain as a field variable
      FIELD(1) = EPS
C Store the current strain as a solution dependent state
C variable
      STATEV(1) = FIELD(1)
C If error, write comment to .DAT file:
      IF(JRCD.NE.0)THEN
       WRITE(6,*) 'REQUEST ERROR IN USDFLD FOR ELEMENT NUMBER ',
     1     NOEL,'INTEGRATION POINT NUMBER ',NPT
      ENDIF
C
      RETURN
      END


What is wrong in this?

Thank you very much...

Leo

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members!


Resources