Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

Problem while using VLOAD and AMPLITUDE command in ABAQUS

Status
Not open for further replies.

anthaivn2019

Structural
Jul 4, 2019
19
0
0
VN
Dear all,

I am new in ABAQUS.

I try to simulate the motion load with the time history using the Vload subroutine.
Effect load = 260KN, moving in x direction with velocity = 0.5 m / s, vibration frequency 40Hz.

I write for example in abaqus:


subroutine vdload (
! Read only (unmodifiable)variables -
1 nblock, ndim, stepTime, totalTime,
2 amplitude, curCoords, velocity, dirCos, jltyp, sname,
! Write only (modifiable) variable -
1 value )
!
include 'vaba_param.inc'
!
dimension curCoords(nblock,ndim), velocity(nblock,ndim),
1 dirCos(nblock,ndim,ndim), value(nblock)
character*80 sname

!----------------------------------------------------------------------

! user parameters
parameter(rPressure = 26000.d0, ! pressure value
* rRadius = 0.1) ! radius

! index
parameter(iX = 1, ! x-coord for coords array
* iY = 2, ! y-coord for coords array
* iZ = 3) ! z-coord for coords array

!
rX0 = 0.d0 ! x-coord start point
rXVel = 0.5 ! velocity in x direction
!
!
!
Amplitude, name=biendo, definition=PERIODIC
1, 251.327412287183, 0., 0.
0., 1.
!
!
! current position (s=x0+V*t)
rXBall = rX0 + (rXVel * totalTime)
xMin = rXBall
xMax = rXBall + rRadius
! loop over points
do i = 1, nblock

! current point position respect to center of the

rPosition = curCoords(i,iX)
!
!
if (rPosition .ge. xMin .and. rPosition .lt. xMax) then
value(i) = rPressure! apply pressure
!
else
value(i) = 0.d0 ! apply zero pressure
endif

end do


!----------------------------------------------------------------------
return
end


Can you help with any errors in the above code?
Many thanks!


Capture7_ix2etn.png
 
Replies continue below

Recommended for you

Never used this - I have looked at DLOAD and understand the concept and programme structure, VDLOAD more tricky.

There are some good examples here for a moving load, but with a constant pressure - see here (you might have seen it):

As for using the amplitude in VDLOAD, there is an example that shows how to do that:
Abaqus Help manual: 9.1.9 Deformation of a sandwich plate under CONWEP blast loading

Now for your case even though I think I get the load you want to apply (a moving harmonic load??), I cannot advice on how to best do that using VDLOAD - perhaps someone else has some ideas.
(A guess would be that it is not done like in the sample code)

Another more primitive way to do this is to manually define the loads at certain locations and then via amplitude tables the force will be active according to the movement and the frequency of the excitation. With matlab or something one could automate that, if there are too many points. So say if you have 100 locations where there is a force one would need to generate autom. 100 amplitudes that have a unique time delay (same frequency) in order to perform/achieve the moving load simulation. Below is a simple example of a harmonic moving load over a beam. The moving load is one full cycle (sinus) with a freq. of 10 Hz, and travels at 1 m/s.

Code:
*Heading
*Preprint, echo=NO, model=NO, history=NO, contact=NO
**
** PARTS
**
*Part, name=Part-1
*Node
1, 0.00,           0.,           0.
2, 1.00,           0.,           0.
3, 2.00,           0.,           0.
4, 3.00,           0.,           0.
5, 4.00,           0.,           0.
*Element, type=B31
 1,  1,  2
 2,  2,  3
 3,  3,  4
 4,  4,  5
*Nset, nset=Nall, generate
  1,  5,   1
*Elset, elset=Eall, generate
  1,  4,   1
*Nset, nset=Fix1, generate
  1,  1,   1
*Nset, nset=L2, generate
  2,  2,   1
*Nset, nset=L3, generate
  3,  3,   1
*Nset, nset=L4, generate
  4,  4,   1
*Nset, nset=Fix5, generate
  5,  5,   1
** Section: Section-1  Profile: Profile-1
*Beam Section, elset=Eall, material=Material-1, section=RECT
0.1, 0.1
0.,0.,-1.
*End Part
**  
**
** ASSEMBLY
**
*Assembly, name=Assembly
**  
*Instance, name=Part-1-1, part=Part-1
*End Instance
** 
*Nset, nset=Fix1, instance=Part-1-1
  1,  
*Nset, nset=L2, instance=Part-1-1
  2,  
*Nset, nset=L3, instance=Part-1-1
  3,  
*Nset, nset=L4, instance=Part-1-1
  4,  
*Nset, nset=Fix5, instance=Part-1-1
  5,  
*End Assembly
*Amplitude, name=Amp-2,time=TOTAL TIME
             0.,              0.,              1.,              0.,            1.01,     0.587785252,            1.02,     0.951056516
           1.03,     0.951056516,            1.04,     0.587785252,            1.05,     1.22515e-16,            1.06,    -0.587785252
           1.07,    -0.951056516,            1.08,    -0.951056516,            1.09,    -0.587785252,             1.1,     -2.4503e-16
		   4.00,	0.00
** 
*Amplitude, name=Amp-3,time=TOTAL TIME
             0.,              0.,              2.,              0.,            2.01,     0.587785252,            2.02,     0.951056516
           2.03,     0.951056516,            2.04,     0.587785252,            2.05,     1.22515e-16,            2.06,    -0.587785252
           2.07,    -0.951056516,            2.08,    -0.951056516,            2.09,    -0.587785252,             2.1,     -2.4503e-16
		   4.00,	0.00
**
*Amplitude, name=Amp-4,time=TOTAL TIME
             0.,              0.,              3.,              0.,            3.01,     0.587785252,            3.02,     0.951056516
           3.03,     0.951056516,            3.04,     0.587785252,            3.05,     1.22515e-16,            3.06,    -0.587785252
           3.07,    -0.951056516,            3.08,    -0.951056516,            3.09,    -0.587785252,             3.1,     -2.4503e-16
		   4.00,	0.00

** MATERIALS
** 
*Material, name=Material-1
*Density
7800.,
*Elastic
 2e+11, 0.3
** ----------------------------------------------------------------
** 
** STEP: Step-1
** 
*Step, name=Step-1, nlgeom=NO, inc=1000
*Dynamic
0.0025,4.,4e-05
** 
*Global Damping, alpha=0.11, beta=0.0002
** BOUNDARY CONDITIONS
** 
** Name: BC-1 Type: Symmetry/Antisymmetry/Encastre
*Boundary
Fix1, ENCASTRE
**
*Boundary
Fix5, ENCASTRE
** 
** LOADS
** 
** Name: Load-1   Type: Concentrated force
*Cload, amplitude=Amp-2
L2, 2, -100.
**
** Name: Load-1   Type: Concentrated force
*Cload, amplitude=Amp-3
L3, 2, -100.
**
** Name: Load-1   Type: Concentrated force
*Cload, amplitude=Amp-4
L4, 2, -100.
**
** OUTPUT REQUESTS
** 
*Restart, write, frequency=0
** 
** FIELD OUTPUT: F-Output-1
** 
*Output, field, variable=PRESELECT, time interval=0.01
** 
** HISTORY OUTPUT: H-Output-1
** 
*Output, history, variable=PRESELECT
*End Step
 
I have doubt that you can use *Amplitude with such subroutines. I guess you have to define the variation with time also in the subroutine.

Take a simple example from the verification manual and try it to add an amplitude. Then you know what happens.
 
dear Erik Panos Kostson and Murdye3,

when I use load * amplitude then the subroutine does not error.
The problem lies in the declaration of the amplitude.
many thanks

Capture9_thm19r.png
 
Status
Not open for further replies.
Back
Top