(Fortran)
SUBROUTINE USRCRV( parnam, usrpar, kappa,
$ te, co, ma, ti, sy, hc )
In case of the Rankine/Drucker-Prager yield criterion, the name of the hardening curves are 'TENCRV' and 'COHCRV' for the Rankine and the Drucker-Prager yield criterion respectively. This can be used to model various functions within one subroutine.
| (11.12) |
| (11.13) |
(usrcrv.f)
SUBROUTINE USRCRV( PARNAM, USRPAR, KAPPA, TE, CO, MA, TI, SY, HC )
C
C... USER-SUPPLIED HARDENING CURVE.
C... RETURN THE EQUIVALENT STRESS AND DERIVATIVE WITH RESPECT TO
C... THE EQUIVALENT PLASTIC STRAIN.
C
DOUBLE PRECISION USRPAR(*), KAPPA, TE, CO, MA, TI, SY, HC
CHARACTER*6 PARNAM
C
DOUBLE PRECISION EHAR, GM, SIG0, SIGF
C
IF ( PARNAM .EQ. 'SQVCRV' ) THEN
SIG0 = USRPAR(1)
SIGF = USRPAR(2)
GM = USRPAR(3)
EHAR = USRPAR(4)
C
SY = SIG0
$ + KAPPA * EHAR
$ + ( SIGF - SIG0 ) * ( 1.D0 - EXP( -GM * KAPPA ) )
C
HC = EHAR
$ + GM * ( SIGF - SIG0 ) * EXP( -GM * KAPPA )
ELSE
PRINT *, 'SUBROUTINE USRCRV CANNOT BE USED FOR HARDENING'
PRINT *, 'CURVE ', PARNAM
CALL PRGERR( 'USRCRV', 1 )
END IF
C
RETURN
END
(file.dat)
TEST USER-SUPPLIED HARDENING CURVE
'COORDINATES' DI=2
1 0. 0.
2 1. 0.
3 1. 1.
4 0. 1.
'ELEMENTS'
CONNECTIVITY
1 Q8MEM 1 2 3 4
MATERIALS
1 1
GEOMETRY
1 1
DATA
1 1
'MATERIALS'
1 YOUNG 7.0E+04
POISON 0.2
YIELD VMISES
SQVCRV USRCRV
USRPAR 243.0 243.0 0.0 2240.0
'GEOMETRY'
1 THICK 1.0
XAXIS 1.0 0.0 0.0
'DATA'
1 NINTEG 2 2
'DIRECTIONS'
1 1. 0. 0.
2 0. 1. 0.
3 0. 0. 1.
'SUPPORTS'
/ 1-4 / TR 1
/ 1-2 / TR 2
'TYINGS'
EQUAL TR 2
3 4
'LOADS'
CASE 1
DEFORM
/ 2-3 / TR 1 0.0034714286
'END'
The following command file runs a DIANA calculation with the user-supplied subroutine usrcrv.
(file.dcf)