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!

Can SDVINI Subroutine achieve my ideas: change the direction of the load based on the results? 1

Status
Not open for further replies.

chanyu2008

Automotive
Nov 4, 2019
3
I am a beginner of Abaqus Subroutine. My research needs to change the direction of the load based on the results of the simulation.

For example, such a loop
if b>0.3 or b<0.2
change direction α
until 0.2<b<0.3
end if

Can SDVINI Subroutine achieve my ideas?
Anyone can send me an example of SDVINI Subroutine?
 
Replies continue below

Recommended for you

Do you want to change the load direction during the analysis? Or for the second analysis based on a previous result?

I guess option one. Then a SDVINI would not would, since it is only called at the beginning of the analysis.
I would recommend to define one load in each direction and scale them during the analysis with an UAMP subroutine. A UAMP allows to access current history output (marked as Sensor), so you can define the next load scale factor. With a proper scaling of the loads you can get any direction you want.
 
@Mustaine3 thank you for your reply.Actually I mean “for the second analysis based on a previous result” Do you have any suggestions? Thanks in advance.
 
So, if I understand it correctly, you want to repeat the same simulation changing only load definition until you will get desired results (for example displacements or stresses in specific range), right ? This problem does not require the use of Fortran user subroutine but rather Python scripting or Isight.
 
@FEA way Yes, you understood me correctly. I have tried to generate boundary conditions for thousands of angles through Python Script and calculate the values I need. Is that what you think? Could you please give any tips about Python script and Isight to solve this problem?
 
Isight is an external software for simulation process automation. You will need additional license for it. In this software you can create a simple loop to run a simulation, read results from output database, run the simulation again with different load, read results and repeat the process until the output values will be in specified range.

However this should also be possible using Python scripts. You would have to combine the following capabilities of Abaqus scripts:
- opening output database and reading specific results
- editing input file to change load definition
- submitting a job

The rest is just a simple loop.

I think that the book „Python Scripts for Abaqus. Learn by Example” by G. Puri could be helpful for you.
 
If I may add something...

Today most companies have the Abaqus Extended License, which also include the tools Isight, Tosca and fe-safe. So check this first.
But in my opinion the problem can hardly be solved with parametric optimization or a DOE (Isight can do both, as well as simple loops). In my opinion the solution has too many possibilities (every load direction is an input variable and every stress(?) is an output variable), so parametric optimization would need huge number of runs to solve it.
A parametric-free optimization tool like Tosca would be more efficient, but in those tools the methods are hardwired, so you can't use them for any problem you want. Tosca allows to do topology-, sizing-, bead- and shape optimization.

Maybe the Design Sensitivity Analysis (DSA) that is included in Abaqus is the next best thing to look at. It uses sensitivities (a bit like Tosca), but has a more open framework. Search for it in the Abaqus documentation. There are also examples in the the Example Problems section of the documentation.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor