Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

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

DISP Subroutine and NLGEOM

Status
Not open for further replies.

an318is

Mechanical
Oct 22, 2009
11
Hello all,

I have recently found an unexpected irregularity which I can not seem to get around. Basically, what I am trying to do is seemingly very simple. I have a subroutine which allows me to enter a target node position to apply an unknown displacement to a specific node. I say unknown because I am unsure of where exactly the part's node will be(it will be a variation analysis), but I know where I want it to end up.

The subroutine uses the nodal co-ordinates in COORDS and subtracts the appropriate degree of freedom COORDS value from U. Which all works perfectly, until I turn on NLGEOM - which I need to do for the problem I am solving.

From, going over the documentation, when the NLGEOM flag is on the COORDS is taken from the current node position, rather than the initial position. However, *BOUNDARY is applied relative to the initial positions. Consequently, I have no way in the user subroutine to determine what these initial positions are.

Alternatively, is there a way to specify *BOUNDARY as relative to the last step?

So far I have tried doing a restart analysis which complicates the simulation but it was unsuccessful. All be it only a brief attempt, it didn't seem to like the use of the *MODEL CHANGE in another step in the restart. I only visited this briefly as I don't really want to do this.

Another potential approach I was thinking was to create a very weak connector between the node and ground along the appropriate direction I will apply the displacement. Then set a Connector stop in the behavior as 0 - or a value very close to. Then to apply the displacement, apply a large negative motion to the connector which I am sure will exceed the required displacement. However, I feel this is also rather messy for what I thought would be a relatively straight forward task.

Is there something obvious I am missing or any other approach that someone can recommend?

Any help is much appreciated.

Kind regards
an318is
 
Replies continue below

Recommended for you

Further to this,

I have today been attempting to use the *TRANSFORM method to apply boundary conditions relative to the current position of the node. This is at least what I took from reading the abaqus user manual. My understanding is, that if I apply a transform to a node, the new co-ordinate system will be attached to the node and follow it. When I apply a displacement, it should be relative to the current position of that node. I am attempting this as follows:

*TRANSFORM, NSET=node_set_name
1.,0.,0.,0.,1.,0.

I only have one node in the node set

Unfortunately, this does not seem to be working for my application either. While it might for others, in this instance I am attempting to apply a displacement to a mesh independent fastener to a specific location. Consequently, I can attach the co-ord system to one of the wire defining line points, but it is not attached to the surface node(s) that get picked. Ultimately, it seems to have no influence whatsoever.

Again, any assistance is much appreciated.

Kind regards
Adam
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor