×
INTELLIGENT WORK FORUMS
FOR ENGINEERING PROFESSIONALS

Log In

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!
  • Students Click Here

*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Jobs

Using DISP subroutine

Using DISP subroutine

Using DISP subroutine

(OP)
Hi,
For my simulation I need to use the DISP subroutine for applying boundary conditions.

Since i am completely new in the subroutine process i am trying to start with simple examples. And i am trying to apply uniaxial tension conditions using the DISP surboutine. I know i can do it without any subroutine but it is a start point.  Honestly i am completely lost. I am using  Abaqus 6.5.6 and included the following fortran file as a subroutine in the job manager but it didn't work:

SUBROUTINE  DISP(U,KSTEP,KINC,TIME,NODE,NOEL,JDOF,COORDS)
C
      INCLUDE 'ABA_PARAM.INC'
C
      DIMENSION U(3),TIME(2),COORDS(3)
C
      U(1)=2
      RETURN
      END

I know U(1) means whatever i want but i want it to be only a displacement in a specific direction (let's say normal to the surface) . How could i do that?

Thanks


RE: Using DISP subroutine

hi eispiata,
what u say in your post is partially correct, but as far as I rember:
- U(1): used to impose displacement
- U(2): used to impose velocity
- U(3): used to impose acceleration
- You can apply to a specific node (the label is stored in the variable NODE) displacement, velocity or acceleration in one direction using the variable JDOF, for examble your user subroutine become:
SUBROUTINE  DISP(U,KSTEP,KINC,TIME,NODE,NOEL,JDOF,COORDS)
C
      INCLUDE 'ABA_PARAM.INC'
C
      DIMENSION U(3),TIME(2),COORDS(3)
C
      IF(NODE.EQ.10.AND.JDOF.EQ.1)
      U(1)=2
      END IF
      RETURN
      END
The above subroutine impose to the node 10 a displacement equal to 2 (m, cm ,mm according to the unit used in your input) along the DOF 1.
I hope that this can help u

Regards

RE: Using DISP subroutine

(OP)
Thanks for you help.

I was trying to start with a very very simple simulation. But i am gonna say that everybody needs to start with simple things to learn more complicated ones.

To come back to my question. I understand now that i can choose in which direction i want to impose the displacement with JDOF. So basicaly if i want to impose the displacement in direction 1 i should write: JDOF.EQ.1 and if i want to do the same but in direction 2 i should write JDOF.EQ.1.

Actually i want to apply uniform displacement to a surface using the DISP subroutine.

Here is my subroutine:

SUBROUTINE  DISP(U,KSTEP,KINC,TIME,NODE,NOEL,JDOF,COORDS)
C
      INCLUDE 'ABA_PARAM.INC'
C
      DIMENSION U(3),TIME(2),COORDS(3)
C
      IF(JDOF.EQ.2)
      U(1)=2
      END IF
      RETURN
      END

The above subroutine was made to impose the displacement in direction 2 (uniaxial tensile test). The Boundary Condition is of type: Displacement/Rotation with a User-Defined distribution which is actually my DISP subroutine?

Is everything ok? Why i always get the following message when i submit the analysis:

Error in job tafsut: Problem during compilation - df.exe not found in PATH.
Job tafsut aborted due to errors.  

RE: Using DISP subroutine

I don't think barney is correct there as U(i), i=1 to n, is the displacement in the i direction and has nothing to do with velocity or acceleration.

Your IF statement makes no sense to me. Simply write U(1)=x, U(2)=y if you want to impose displacemnts in the 1 or 2 directions. There's no need for an IF statement at all.

I've not heard of df.exe before. Do you have a Fortran compiler to compile the subroutine?

corus

RE: Using DISP subroutine

Hi Corus,
please take a look to the file attached, that is an extract from Abaqus Documentation.

As u can see U(1), U(2) and U(3) are respectively, in case of u want to impose displacement, node displacement, velocity and acceleration.

At the end of the day, to impose boundary along one specific direction u need to use an IF statement using the label DOF...otherwise why should it exist?

Do u agree?

Regards

RE: Using DISP subroutine

(OP)
Okay

I suppose i have a Fortran Compiler. I am using G77. It is a GNU Fortran compiler. I think it should work with this compiler. Maybe i should change the Path to the Fortran compiler??

What Compiler do you advise me to use. Because Itel Fortran Compiler requires Visual Studio to be installed before and i don't have it!

Thanks

RE: Using DISP subroutine

Actually I'm using Visual Studio togheter with Fortran compiler v9.0 and it works corretcly both with User subr. and for make executable postprocessing file. I don't know exactly what u need instead of Visual Studio...sorry sad

RE: Using DISP subroutine

I recommend you to check the requirements for Abaqus version that u are using. For example V6.7.1 requires Frotran V9.1, then search in the Fortran installation folder where the file df.exe is located (in my case is located in a folder called Bin). Then u should add the complete address of this folder into the PATH in the environment variables.

This should work

Ciao

RE: Using DISP subroutine

(OP)
Here are the only compilers to be supported in the version 6.5.6 of Abaqus (Windows/x86-32):

Compaq Visual Fortran 6.0
Microsoft Visual C++ Version 6.0

Do you know if i can download one of these compilers for free of do i really need to pay for it?

Thanks

RE: Using DISP subroutine

I'm afraid that u need to pay for it unless, as it is an (very) old version, u find someone that do not use it anymore.....but I'm not sure wether it's legal or not

bye

RE: Using DISP subroutine

My apologies barney. I checked the manual for the full text on DISP and you're quite correct. Must read first before opening gob.

corus

RE: Using DISP subroutine

Never mind,

see u next thread

bye bye

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members!


Resources