Nitinol Superelastic Model: Loading and unloading
Nitinol Superelastic Model: Loading and unloading
(OP)
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!
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!





RE: Nitinol Superelastic Model: Loading and unloading
Any insight as to why this would allow simulation of loading but not unloading? Strange.
Also: Changed element type to C3D8I
RE: Nitinol Superelastic Model: Loading and unloading
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
RE: Nitinol Superelastic Model: Loading and unloading
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.
RE: Nitinol Superelastic Model: Loading and unloading
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
RE: Nitinol Superelastic Model: Loading and unloading
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.
RE: Nitinol Superelastic Model: Loading and unloading
Here is link to the inp file: https://www.dropbox.com/s/33ew31k29rkxobx/compressDeploy.inp
This still has C3D8 elements. I'm trying an analysis with C3D20 elements now, and I'll try C3D8R and C3D20R next.
I appreciate your suggestions!
-Nuc
RE: Nitinol Superelastic Model: Loading and unloading
The file you are looking for has been deleted or moved.
RE: Nitinol Superelastic Model: Loading and unloading
https://www.dropbox.com/s/33ew31k29rkxobx/compressDeploy.inp
(same link)
RE: Nitinol Superelastic Model: Loading and unloading
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.
0., 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?
RE: Nitinol Superelastic Model: Loading and unloading
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!
RE: Nitinol Superelastic Model: Loading and unloading
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!
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)
RE: Nitinol Superelastic Model: Loading and unloading
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)
RE: Nitinol Superelastic Model: Loading and unloading
That's not good, I'll make sure to fix it.