Moving pressure with DLOAD subroutine
Moving pressure with DLOAD subroutine
(OP)
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?





RE: Moving pressure with DLOAD subroutine
I made a simple example for you.
In the example you have circle with specific radius moving in one direction with constant velocity.
The idea in the subroutine is:
1. check position of centre of circle base on initial position, velocity and current time
2. apply pressure for all elements inside circle respect to circle equation.
To visual pressure field I am using RF output.
Regards,
Bartosz
VIM filetype plugin for Abaqus
https://github.com/gradzikb/vim-abaqus
RE: Moving pressure with DLOAD subroutine
Are you new to this forum? If so, please read these FAQ:
http://www.eng-tips.com/faqs.cfm?fid=376
http://www.eng-tips.com/faqs.cfm?fid=1083
RE: Moving pressure with DLOAD subroutine
why this sabroutine does not work when dynamic analysis?
at static works and does not work with dynamic
I really need it to work in a dynamic analysis
RE: Moving pressure with DLOAD subroutine
What does it mean "dynamic analysis"? Do you use Abaqus/Standard or Abaqus/Explicit?
For Abaqus/Explicit you have to use VDLOAD subroutine instead DLOAD subrotuine.
Regards,
Bartosz
VIM filetype plugin for Abaqus
https://github.com/gradzikb/vim-abaqus
RE: Moving pressure with DLOAD subroutine
I mean dynamic analysis in Abaqus/Explicit!
I simulate railroad tracks for dynamic analysis
see no reason to use a moving load in static analysis
could you show an example of using VDLOAD,
I would be very grateful to you
RE: Moving pressure with DLOAD subroutine
Please find you example model + DLOAD subroutine converted into VDLOAD so it works with Abaqus/Explicit now.
Regards,
Bartosz
VIM filetype plugin for Abaqus
https://github.com/gradzikb/vim-abaqus
RE: Moving pressure with DLOAD subroutine
Your knowledge is an emerald in science
I wish you all the best and success in your work!
Levadniy Evgeniy