Hajakala
Mechanical
- Mar 23, 2017
- 16
I am trying to change the stiffness of connector elements using USDFLD as a function of time and coordinate.
When I run my model, it says no value for the connector elements for any output other than those available for these specific elements.
I wanted to change the stiffness with increasing x position with time so as shown below in my subroutine using x coordinate.
The equation used relates the x position with time but obvious this doesn't seem to work.
Could any one please help me solve this problem? I am basically trying to open up a crack using variable stiffness so I don't want to change the stiffness of all connector elements at once but that of each element incrementally with time and position.
If you have any other idea such as using MPC which I do not know please could you advise?
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
!Note if model is changed to ask for >15 outputs it will break!
!Reassign here appropriately, sub ref guide sec 2.1.6
CHARACTER*80 CMNAME,ORNAME
CHARACTER*3 FLGRAY(15)
DIMENSION FIELD(NFIELD),STATEV(NSTATV),DIRECT(3,3),T(3,3),TIME(2)
DIMENSION ARRAY(15),JARRAY(15),JMAC(*),JMATYP(*),COORD(*)
C
! a-h,o-z are real and i-n are integers
X = COORD(1)
tt = TIME(1)
C
xp1= 9.44D-17
xp2= -2.20D-12
xp3= 1.85D-08
xp4= 5.26D-05
xp5= 20.59D0
! f(x) = p1*x^4 + p2*x^3 + p3*x^2 + p4*x + p5
FIT = (xp1*tt**4)+(xp2*tt**3)+(xp3*tt**2)+(xp4**tt)+p5
C
IF (kstep.LE.1) THEN
Field(1) = 1
ELSEIF (tt.LT.1151.589) THEN
Field(1) = 0
ElSEIF (tt.GE.1151.589) THEN
IF (X.LE.FIT) THEN
Field(1) = 1
ENDIF
ElSE
Field(1) = 0
ENDIF
STATEV(1) = Field(1)
RETURN
END
When I run my model, it says no value for the connector elements for any output other than those available for these specific elements.
I wanted to change the stiffness with increasing x position with time so as shown below in my subroutine using x coordinate.
The equation used relates the x position with time but obvious this doesn't seem to work.
Could any one please help me solve this problem? I am basically trying to open up a crack using variable stiffness so I don't want to change the stiffness of all connector elements at once but that of each element incrementally with time and position.
If you have any other idea such as using MPC which I do not know please could you advise?
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
!Note if model is changed to ask for >15 outputs it will break!
!Reassign here appropriately, sub ref guide sec 2.1.6
CHARACTER*80 CMNAME,ORNAME
CHARACTER*3 FLGRAY(15)
DIMENSION FIELD(NFIELD),STATEV(NSTATV),DIRECT(3,3),T(3,3),TIME(2)
DIMENSION ARRAY(15),JARRAY(15),JMAC(*),JMATYP(*),COORD(*)
C
! a-h,o-z are real and i-n are integers
X = COORD(1)
tt = TIME(1)
C
xp1= 9.44D-17
xp2= -2.20D-12
xp3= 1.85D-08
xp4= 5.26D-05
xp5= 20.59D0
! f(x) = p1*x^4 + p2*x^3 + p3*x^2 + p4*x + p5
FIT = (xp1*tt**4)+(xp2*tt**3)+(xp3*tt**2)+(xp4**tt)+p5
C
IF (kstep.LE.1) THEN
Field(1) = 1
ELSEIF (tt.LT.1151.589) THEN
Field(1) = 0
ElSEIF (tt.GE.1151.589) THEN
IF (X.LE.FIT) THEN
Field(1) = 1
ENDIF
ElSE
Field(1) = 0
ENDIF
STATEV(1) = Field(1)
RETURN
END