Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

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

Nodal precision

Status
Not open for further replies.

maghi

Mechanical
Mar 22, 2011
3
Hi everybody,

I do optimization using Matlab and combining it with Abaqus as the solver.My problem is implicit.
I need to increase the precision of the nodal displacements to 10 decimal digits. I get the nodal displacement in .dat file. Is there a way or KEYWORD I can define it in the input file?
I really appreciate your help.
Thank you

Maryam
 
Replies continue below

Recommended for you

Short answer is no you can not control the precision in the *.dat.

You can write translations and rotations to the *.odb. I create separate sets for the desired surfaces to ease the selection in CAE. From there you can export the data to the *.rpy. I hope this helps.

Rob Stupplebeen
 
Hi Rob thank you so much.

Unfortunately, I can not do this because I can not use Abaqus interface.
I need to AUTOMATIZE obtaining results in high precision.

Actually, I am doing optimization combining Abaqus with Matlab.
In every Matlab loop I need to read the high precision nodal disp. calculate gradient and update the variable(Matlab Algorithm does it).
Any idea?

Thanks again


 
If you expect your solution to be accurate to 10 decimal places then I think you're asking a lot, given the assumptions you make to loads/materials/etc. However, I think you can write the solution to a file using a subroutine. I'm not certain but look at UVARM subroutine to output variables.

Tara
 
Is it that you actually need this level of precision or just need it to be like this for formatting purposes? How could you possibly need that level of precision for anything? If it is just a formatting thing, couldn't you write a script to do the modification?

Brian
 
Following on from Corus's and Brian's comments are you aware that that FEA is never an exact science, and never will be? FEA is an approximate method, in my opinion you are doing very well if you can match the first two significant figures of any result entity to a measured test result.

quality, cost effective FEA solutions
 
Two digits? I call it a day if the first digit matches...haha. I agree with John, two is a good place to start when matching to test data. If I am doing research and want to correlate to an alternate analytical solution, I might go to 3 (or 4 just to be safe). But beyond this, I am struggling to see any value.

Brian
 
Thank you for your comments.
Ok,
Here is my problem:

I am doing material optimization, combining Abaqus with Matlab.
I use Matlab intrinsic function to update my variable(E modulus).
Matlab uses Quasi-Newton method to update variable, for that reason it needs to calculate gradient at each iteration. For example, the initial guess for my variable is: E= 3.000 and
Matlab changes it to 3.0000008 and calculate gradient of the objective function, which in my case is displacement. So can you imagine how small the change would be!!!!
That's the reason why I need high precision output file.
I hate precision, in fact!



 
Doesn't seem to add up to me. What units are you using that E = 3.000? If the change is that small in Matlab, you can't expect ABAQUS to do adjust accordingly.

Do you realize that the ABAQUS (and any FEM solution) may not solve the displacements exactly per the system of equations? LU decomposition should give an exact solution (perhaps), but an iterative solution (common) only approximately solves the system of equations (i.e. inverse of stiffness matrix) to some threshold.

I don't think you can expect ABAQUS, or any FEM, to accurately adjust to those minute changes. In fact, it would not surprise me if the two solutions for E (3.000 and 3.00000008) gave a nonsensical trend (i.e. displacement goes in opposite direction of expected).

I think you are going to need to tell Matlab to change the value to something more meaningful. Besides this, how many iterations and how long would it take to optimize something based upon such minute changes?

Brian
 
One thing that you can try is to change the units that you are modelling in. For instance, if you're current length dimensions are in meters but you want to model features that are a micron in length abaqus probably won't let you. But if you change you length units (along with the applicable material properties) to millimeters instead it should allow you to model those small features.

HTH,
Dan
 
If you're iterating then you need to reset your tolerance to something more reasonable, like 0.1% say.

Tara
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor