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
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