Você está na página 1de 4

Subroutines! - DASSAULT: ABAQUS FEA Solver - Eng-Tips https://www.eng-tips.com/viewthread.cfm?

qid=339957

Home » Forums » Engineering Computer Programs » Simulation » DASSAULT: ABAQUS FEA Solver Forum

Subroutines!
thread799-339957

Hi All,

I use Abaqus for biofluids and biomechanical research. I was wondering if there was a comprehensive guide anywhere for using subroutines? (i.e.
book, powerpoint, etc.) I've searched these forums for a reference, and have also read over the documentation but that hasn't been very helpful.
Anything would be greatly appreciated. Especially on how to use VDISP and VDLOAD, and implementing subroutines in general!

Thanks!

Replies continue below

BETA CAE Launches New FEA Solver, Results Fluid Software STAR- Get CAE and FEA
FEA Solver Viewing Tool Vibro- CCM+ Adds Solid Fundamentals Through
Aeroacoustic comes to Mechanics Online Education
STAR-CCM+

You are aware that there is a Abaqus User Subroutines Reference Manual also right? :)
ADVERTISEMENT

There is also an Abaqus course on using subroutines. If you are an academic user you get a discount.

If you want help from this forum, I suggest you ask more specific questions.

Why is everyone so cold on these forums? Ever post I read there's always a snarky response by someone, and I've seen your name before.

1 of 4 5/7/2018, 2:53 PM
Subroutines! - DASSAULT: ABAQUS FEA Solver - Eng-Tips https://www.eng-tips.com/viewthread.cfm?qid=339957

Anyways, when I said documentation I meant the user manuals. I really want to learn how to use subroutines like VDSIP and VDLOAD. The things I
have found online so far are not very helpful to me. I need to apply parametric load equations to the nodes along a beam, in the three Cartesian
directions. I was just wondering if there was something other than the user manuals out there that might help?

Quote (rjd150 )
Why is everyone so cold on these forums? Ever post I read there's always a snarky response by someone,

If you also tried to compile the list of people asking questions that they could've looked up in Google or the documentation or tried a simple
example, you'll understand why, once in a blue moon, we lose our patience. Please understand that people who are offering their help for free are
human; I certainly am guilty of being one which explains why I have put a couple of links as my signature. People who are taking time off to help
others sometimes need to be helped too.

Coming to your question, I have a counter-question: Have you managed to run any subroutine on your machine? Does your machine have a Fortran
compiler and Visual Studio (or equivalents) installed on it? Once this barrier is crossed, then we can begin addressing your question. If you have
never managed to get a subroutine to work with a model (plenty available in the documentation), then please search the archives for instructions.

http://www.eng-tips.com/faqs.cfm?fid=376
http://www.eng-tips.com/faqs.cfm?fid=1083

"" I've been using abaqus for over a year now but I am still not familiar with how to use subroutines and have a problem I need to address. Lets
ADVERTISEMENT

say I create a wire, with a certain length, and assign it a beam section. I then mesh the wire, with a certain number of beam elements. Now I want
to give this wire a certain shape using some parametric equations. In order to do this, I need to apply a force or a displacement at each node of the
wire mesh. Lets just say I want it to take the shape defined by F(x)=sin(x), where x is the distance along the wire. How do I create a sub-routine to
make this happen? Is there already one that does this sort of thing. Thanks for the help! ""

If this is still your question, this is the answer:

subroutine vdisp(
c Read only variables -
* nblock, nDof, nCoord, kstep, kinc,
* stepTime, totalTime, dtNext, dt,
* cbname, jBCType, jDof, jNodeUid, amp,
* coordNp, u, v, a, rf, rmass, rotaryI,
c Write only variable -
* rval )
c
include 'vaba_param.inc'
parameter( zero = 0.d0, half = 0.5d0, one = 1.d0 )
c

2 of 4 5/7/2018, 2:53 PM
Subroutines! - DASSAULT: ABAQUS FEA Solver - Eng-Tips https://www.eng-tips.com/viewthread.cfm?qid=339957

character*80 cbname
dimension jDof(nDof), jNodeUid(nblock),
* amp(nblock), coordNp(nCoord,nblock),
* u(nDof,nblock), v(nDof,nblock), a(nDof,nblock),
* rf(nDof,nblock), rmass(nblock),
* rotaryI(3,3,nblock), rval(nDof,nblock)
c
c Impose displacement
c jBCType
c Indicator for type of prescribed variable: 0 for displacement, 1 for velocity, and 2 for acceleration.
c
if( jBCType .eq. 0 ) then
c
if( stepTime .lt. zero ) then
c
c Initialization 1
c
a0 = zero
do 310 k=1, nblock
do 310 j=1, nDof
if ( jDof(j) .gt. 0 ) then
rval(j,k) = 0
end if
310 continue
c
else if( stepTime .eq. zero ) then
c
c Initialization 2
c
a0 = zero
do 320 k=1, nblock
do 320 j=1, nDof
if ( jDof(j) .gt. 0 ) then
rval(j,k) = a0
end if
320 continue
c
else
c
c Time incrementation
c
c
do 350 k=1, nblock
do 350 j=1, nDof
if ( jDof(j) .gt. 0 ) then
Xcoord = coordNp(1, k)
rval(j,k) = sin (Xcoord)*amp(k)
end if
350 continue
end if
end if
c
return
end

this is when using the amplitude, else you can scale using stepTime.
Note: I just adjusted this from the example in the manual, I did not debug or anything and don't know if it'll work.
Also when c/p, make sure to obey all fortran syntax rules.
The initialization are a bit stupid and are only useful for giving velocities & accelerations.

sdebock, I appreciate the help. What is the example problem you looked at in the user manual? I use Abaqus 6.12. Maybe you can help me if I
define my exact problem for you. Assuming you are in bioengineering, you may know what a catheter is used for. Basically what I need to do is
push a straight wire from the inside of a catheter into a sphere with a small opening, and I need the wire to take on a certain shape based on
parametric equations. I assign a beam section to the wire, and need it to form this shape as it is pushed into the sphere. So, for example, lets say I
need it to take on the shape:

x=sin(t)
y=cos(t)
z=sin(t)*cos(t)

3 of 4 5/7/2018, 2:53 PM
Subroutines! - DASSAULT: ABAQUS FEA Solver - Eng-Tips https://www.eng-tips.com/viewthread.cfm?qid=339957

where t is the distance along the wire, and the other three are the Cartesian directions.

Like I said before, how would I model this in order to apply these constraints so that this wire takes this shape when it is pushed into a sphere?
Would I use VDISP or VDLOAD in Exlicit, since I am modeling this wire as a beam section and need it to be applied to the nodes along the beam as
it's being pushed out?

Also does it help to learn Fortran? I really want to learn how to use subroutines?

Quote (rjd150)
.. does it help to learn Fortran?

Yes. You will need additional software to be installed (in the correct order) on your machine before you can get subroutines to work.

http://www.eng-tips.com/faqs.cfm?fid=376
http://www.eng-tips.com/faqs.cfm?fid=1083

What version of Fortran does Abaqus use, 77?

Join | Advertise

Copyright © 1998-2018 engineering.com, Inc. All rights reserved.


Unauthorized reproduction or linking forbidden without expressed written permission. Registration on or use of this site
constitutes acceptance of our Privacy Policy.

4 of 4 5/7/2018, 2:53 PM

Você também pode gostar