DAKH6
Materials
- Jul 2, 2015
- 1
hello every body,
I need to know how to write a subroutine DLOAD I had problems because I'm not used to this kind of work, my problem is how to charge a surface of a workpiece with a set of evenly distributed pressure, each pressure is associated with a ball peening impact and it's must also be moving with a constant speed. In fact, I started to write some thing that totally overwhelmed the surface.
Here is the figure of substrate, on which the pressure is applied:
DLOAD subroutine:
Because of the fact, that I do not have experience in writing subroutines, I want to define pressure with moving:
SUBROUTINE DLOAD(P,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,
1COORDS,JLTYP,SNAME)
C
INCLUDE 'ABA_PARAM.INC'
C
DIMENSION TIME(2), COORDS (3)
CHARACTER*80 SNAME
R0=0.2 !ball RADIUS [mm]
DEPTH=0.5 !PENETRATION DEPTH [mm]
F=2.15 !SPECIFIC FORCE MAGNITUDE [N/mm^2] ?
P=(F/(R0**2*3.1415926*DEPTH)) !BODY LOAD [MPa] ?
! V=16 !LOAD VELOCITY [mm/s]
X= COORDS(1)
Y= COORDS(2)
Z= COORDS(3)
IF(X.GT.16*TIME(2) .AND. X.LT.16*TIME(2)+1 .AND. Z.GT.0 .AND. Z.LT.1) THEN
PRESSURE=P
ELSEIF (X.GT.16*TIME(2) .AND. X.LT.16*TIME(2)+1 .AND. Z.GT.2 .AND. Z.LT.3) THEN
PRESSURE= P
ELSEIF (X.GT.16*TIME(2) .AND. X.LT.16*TIME(2)+1 .AND. Z.GT.4 .AND. Z.LT.5) THEN
PRESSURE= P
ELSEIF (X.GT.16*TIME(2) .AND. X.LT.16*TIME(2)+1 .AND. Z.GT.6 .AND. Z.LT.7) THEN
PRESSURE= P
ELSEIF (X.GT.16*TIME(2) .AND. X.LT.16*TIME(2)+1 .AND. Z.GT.8 .AND. Z.LT.9) THEN
PRESSURE= P
ELSEIF (X.GT.16*TIME(2) .AND. X.LT.16*TIME(2)+1 .AND. Z.GT.10 .AND. Z.LT.11) THEN
PRESSURE= P
ELSEIF (X.GT.16*TIME(2) .AND. X.LT.16*TIME(2)+1 .AND. Z.GT.12 .AND. Z.LT.13) THEN
PRESSURE= P
ELSEIF (X.GT.16*TIME(2) .AND. X.LT.16*TIME(2)+1 .AND. Z.GT.14 .AND. Z.LT.15) THEN
PRESSURE= P
ELSEIF (X.GT.16*TIME(2) .AND. X.LT.16*TIME(2)+1 .AND. Z.GT.16 .AND. Z.LT.17) THEN
PRESSURE= P
ELSEIF (X.GT.16*TIME(2) .AND. X.LT.16*TIME(2)+1 .AND. Z.GT.18 .AND. Z.LT.19) THEN
PRESSURE= P
ELSE
PRESSURE= 0
END IF
RETURN
END
The problem is, that the pressure affect whole surface, not the coordinates X0, Y0, Z0.
Maybe someone will explain me, please, what should I add to the code?
I need to know how to write a subroutine DLOAD I had problems because I'm not used to this kind of work, my problem is how to charge a surface of a workpiece with a set of evenly distributed pressure, each pressure is associated with a ball peening impact and it's must also be moving with a constant speed. In fact, I started to write some thing that totally overwhelmed the surface.
Here is the figure of substrate, on which the pressure is applied:
DLOAD subroutine:
Because of the fact, that I do not have experience in writing subroutines, I want to define pressure with moving:
SUBROUTINE DLOAD(P,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,
1COORDS,JLTYP,SNAME)
C
INCLUDE 'ABA_PARAM.INC'
C
DIMENSION TIME(2), COORDS (3)
CHARACTER*80 SNAME
R0=0.2 !ball RADIUS [mm]
DEPTH=0.5 !PENETRATION DEPTH [mm]
F=2.15 !SPECIFIC FORCE MAGNITUDE [N/mm^2] ?
P=(F/(R0**2*3.1415926*DEPTH)) !BODY LOAD [MPa] ?
! V=16 !LOAD VELOCITY [mm/s]
X= COORDS(1)
Y= COORDS(2)
Z= COORDS(3)
IF(X.GT.16*TIME(2) .AND. X.LT.16*TIME(2)+1 .AND. Z.GT.0 .AND. Z.LT.1) THEN
PRESSURE=P
ELSEIF (X.GT.16*TIME(2) .AND. X.LT.16*TIME(2)+1 .AND. Z.GT.2 .AND. Z.LT.3) THEN
PRESSURE= P
ELSEIF (X.GT.16*TIME(2) .AND. X.LT.16*TIME(2)+1 .AND. Z.GT.4 .AND. Z.LT.5) THEN
PRESSURE= P
ELSEIF (X.GT.16*TIME(2) .AND. X.LT.16*TIME(2)+1 .AND. Z.GT.6 .AND. Z.LT.7) THEN
PRESSURE= P
ELSEIF (X.GT.16*TIME(2) .AND. X.LT.16*TIME(2)+1 .AND. Z.GT.8 .AND. Z.LT.9) THEN
PRESSURE= P
ELSEIF (X.GT.16*TIME(2) .AND. X.LT.16*TIME(2)+1 .AND. Z.GT.10 .AND. Z.LT.11) THEN
PRESSURE= P
ELSEIF (X.GT.16*TIME(2) .AND. X.LT.16*TIME(2)+1 .AND. Z.GT.12 .AND. Z.LT.13) THEN
PRESSURE= P
ELSEIF (X.GT.16*TIME(2) .AND. X.LT.16*TIME(2)+1 .AND. Z.GT.14 .AND. Z.LT.15) THEN
PRESSURE= P
ELSEIF (X.GT.16*TIME(2) .AND. X.LT.16*TIME(2)+1 .AND. Z.GT.16 .AND. Z.LT.17) THEN
PRESSURE= P
ELSEIF (X.GT.16*TIME(2) .AND. X.LT.16*TIME(2)+1 .AND. Z.GT.18 .AND. Z.LT.19) THEN
PRESSURE= P
ELSE
PRESSURE= 0
END IF
RETURN
END
The problem is, that the pressure affect whole surface, not the coordinates X0, Y0, Z0.
Maybe someone will explain me, please, what should I add to the code?