Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

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

Nitinol Superelastic Model: Loading and unloading 2

Status
Not open for further replies.

Nucleophobe

Bioengineer
Sep 7, 2012
29
Hi,

I am currently working on a simulation with a thin Nitinol wire. A rigid body is displaced down until it contacts and bends the wire, producing ~3% max strain. The rigid body is then displaced back up until the two come out of contact.

The strange thing is, the simulation runs fine in the forward direction, with the rigid body coming into contact with the wire. However, upon unloading and detachment, the solution fails to converge ("Too many attempts for this increment"). If steel is instead selected as the material, this problem does not arise.

I have tried messing with various contact parameters and refining the mesh, but have not been able to resolve the issue. Any ideas?

More details:
Abaqus/Standard
Contact properties:
-Node-to-surface, no tangential friction, normal -> "Hard" contact, default setting
-Allow separation: on
Element type: C3D20

Thanks!
 
Replies continue below

Recommended for you

I think I may have discovered the issue. I had left the parameter Sigma_CL^S, the "Start of transformation stress during loading in compression", blank.

Any insight as to why this would allow simulation of loading but not unloading? Strange.

Also: Changed element type to C3D8I
 
It was actually the "Volumetric transformation strain", epsilon^L_V. I switched back to C3D8 to avoid element alignment issues.

Now I am experiencing convergence issues towards the very end of the simulation (98-99% complete). The message file indicates:
FORCE EQUILIBRIUM NOT ACHIEVED WITHIN TOLERANCE
and the elements which underwent the greatest deformation in loading are not fully recovering to their original position. Moment and contact equations are converging, and no errors from the UMAT.

Any insight appreciated.

Thanks
 
As you are bending, try using either:
C3D20R - as per abaqus 6.9 (or 10?) Abaqus changed the contact algorithm to make it work with quadratic hex.
C3D8R with at least 4 elements through thickness
C3D8I elements.

By looking at the .msg file, you can check to see which element(s) and node(s) are causing problems. You can also look at it in viewer/CAE (tools-> job diagnostics). The FORCE EQUILIBRIUM NOT ACHIEVED WITHIN TOLERANCE could be caused by ill defined BC's (in that case the node w problems will be one on or near a BC).

That's all I can think of without seeing the actual model.
 
Sdebock,

Thank you. I have tried C3D20 and C3D8I elements with this model, but the C3D20R and C3D8R give me the error "Hourglass stiffness required." I know where to enter the hourglass stiffness, but I'm not sure what values to use. Are there defaults for this? The C3D20 and C3D8I yielded very long solution times and seemed to have more problems with convergence, but I can try again. The model consists of a round wire, with 4 elements through the thickness.

Anyway I checked on the node as you suggested and the node with the greatest residual force is in a region at the midpoint of the bending element, far away from the contact surface and the boundary conditions for the beam. There is little stress or strain here...

Would a screenshot or model file be more helpful?

Thanks,
Nucleophobe
 
You indeed need hourglass stiffness for the reduced integration elements, especially for the C3D8R (that's why i recommended at least 4 elements trought thickness). If it's a round wire, C3D20R seems the way to go, you can set hourglass stiffness to 'enhanced' (no values needed), it's under *section controls if I'm not mistaken.

It is true that the C3D8I and C3D20R will take longer, but you will not need as many elements as for the C3D8(R), normally the C3D20R are the most efficient 3D solid elements.
I still think it's a matter of mesh, perhaps the shape metric (how much your elements look like perfect cubes) is not optimal. Still it is strange to have it occurring at the the end of your simulation, and in a region with little to no stress.
If you feel comfortable sharing e.g. an input file, feel free, it will help us find out your problem :)
Uploading the .msg file might help too, if you dont wan't to share your model.

 
So, I found some errors, I'm running it now so I'm still not sure if it will work now.
But still.

1. you probably want the result at room temperature? abaqus default temp is 0, in the material
*User Material, constants=15
40000., 0.33,32000., 0.33, 0.055, 6.7, 440., 540.
[highlight #CC0000] 0.,[/highlight] 6.7, 250., 140., 440., 0.055, 0.
This parameter states at which temp you are giving the values, so either set this one to 0 (like I did), or set the temperature of ABQ to 22 (*temperature)

2. you have to name the material ABQ_SUPER_ELASTIC_N3D if you are using 3D elements, N2D if shell, N1D if beam. (According the the manual I have at least, don't really know what happens if you don't, maybe the default is 3D anyways)
3. changed elementtype to C3D8I, since you'll be bending
4. *Surface Behavior, PENALTY is faster than the default (hard contact), downside is you will have (small) penetrations of the surfaces into each other, you can decide if they matter.

and now for the big one.
5. USE NLGEOM=YES
You are clearly straining the material beyond 1%, there are large rotations, there is contact, you have a non linear material, about all the warning flags that should light op are lit.
*Step, name=removeFilter, inc=100000, NLGEOM=YES,UNSYMM=YES
6. From personal experience, unsymmetrical matrix storage works better with contact.
You can also try using TYPE=SURFACE TO SURFACE in the contact pair.

And I'm curious, what are you modeling? An embolic protection filter or a snare of sorts?


 
sbebock,

That should help immensely; I wondered if I needed NIGeom on. To answer your last question first, yes; this is an IVC filter for preventing pulmonary embolism when anticoagulants are contraindicated.

1) Actually, we are trying to simulate in-vivo, hence 37C (the units are C, right?)
2) From my understanding of the UMAT document, N#D only applies to the Abaqus/Explicit, though I could be wrong. I'll check this.
3) Thanks; I have a paper on stents that recommends this as well, so that's two opinions. I'll switch to incompatible elements.
4) Trying penalty now too. This should be fine, I didn't realize it was faster
5) Again, thank you. >10% strain at the top (which seems awfully high...)
6) Surface to surface contact was really touchy and tended not to converge. When I was using it, though, I was selected ALL surfaces on the filter mesh (including internal). This also made runtimes unbearable. I'll look for a way to select only the outside surfaces and try again.

A simulation just finished with C3D20R elements, but it choked at 97.2% after 4 hours on 16 processors (Too many attempts for this increment). I hope the NIGeom fixes things.

Still seems strange for it to fail at the end... I'll let you know how it goes!
 
Success! NLGeom seems to have done the trick. You can see that the end of the analysis is actually quite stable as well. Before I was seeing multiple cutbacks until the timestep was down to 1E-6 and lower, then finally it would abort.

I started using Abaqus just last month and made quite a bit of progress until I ran into this problem a couple weeks ago. Now I can finally move on! [smile]

Thanks again sdebock!

Recap for others who run into problems:
- Use NLGeom with non-linear geometry ie. large displacement!
- Use C3D8I elements when bending loads are dominant (also good in general for Nitinol wires I've now read)
- Penalty contact modelling is more efficient when contact tolerances are not crucial
- Even if come settings cause the model take much longer to run, they may lead to convergence (more refined mesh / more computationally taxing elements)
 
 https://www.dropbox.com/s/ys810zdr1actyqi/success.png
On the matter of temperature, the parameter I highlighted in red says 'temperature at which the values are specified'.
They then change with temperature according to the stress/delta_temp values (6.7N/C) in your case.
If you want to simulate at 37 degrees, you should add a *temperature keyword (or in CAE), with all the nodes of your device, or directly specify the material parameters at 37 degrees, and set the parameter in red to 0, as that is the default temperature off all nodes.
Abaqus is unitless, so it's not (or either) C or K (but definitely not Fahrenheit)
 
Got it, I wasn't reading that carefully enough before. So by setting the temperature to 37 degrees in the material, I am really saying that at 37 degrees ABOVE room temperature the material properties are ... and I want to simulate at 0 degrees, or 37 degrees BELOW the temperature at which the properties are specified.

That's not good, I'll make sure to fix it.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor