Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations KootK on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

Stop ABAQUS Standard Analysis with UAMP-Subroutine

Status
Not open for further replies.

DrReinerKlimpke

Mechanical
Jun 11, 2015
7
Hello everyone,

I want to compress a cylinder until a certain reaction force is present in the reference point that is the bearing node for the cylinder.
However, the termination of the computation is to be done by using the subroutine 'UAMP'.
Unfortunately the computation wont stop and I can't figure out why that is.

Within the attachment I provided you the input files as well as the fortran / subroutine file.
I would be very very happy when someone could help me with this problem!

Thanks a lot to everyone who tries to help!
Greetings,
DrReinerKlimpke.

PS: I'm using ABAQUS 6.10 with a FORTRAN 10.1.030 compiler.
 
Replies continue below

Recommended for you

Hi,

Your UAMP subroutine is never used by Abaqus.
You defined user amplitude (*AMPLITUDE, TYPE=USER) but you never used it in combination with any other keyword.
Since Abaqus never needs value of the amplitude he never call UAMP subroutine.
I understand you do not need values of the amplitude but still you have to use it somewhere.

In my test I added force load with value of 0.0.

Code:
**
** dummy load just to use user amplitude
*CLOAD, AMPLITUDE=TRIGGER
BOTTOM_RP, 1, 0.0
**

Next point is that you are getting sensor value in wrong way.
Abaqus gives you two option how to get sensor value and you have somehow combination of these two approaches.
See Abaqus User Subroutines Reference Manual, 2.1.16 Obtaining sensor information

Correct definition are below, you can choose one:

Code:
! get sensor value
     iMySensorID = IGETSENSORID("SENSOR", jSensorLookUpTable)
     RF_SENSOR = sensorValues(iMySensorID)

Code:
! get sensor value
     RF_SENSOR = GETSENSORVALUE("SENSOR", 
                 jSensorLookUpTable, sensorValues )

With this two modifications your model works.

It is also a good idea to always define value of amplitude even you do not used it.
So I recommend to use:

Code:
ELSE
  ampValueNew = 0.0 !set amplitude value
  IF(RF_SENSOR .GE. 200) THEN
    lFlagsDefine(iConcludeStep) = 1
  END IF
END IF

One more point, but not related with UAMP.
You defined duplicate boundary conditions for "BOTTOM_RP" nset.
Of course it has no influence for you results.

Best,
Bartosz


 
Status
Not open for further replies.

Part and Inventory Search

Sponsor