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!

Stent Crimp & Expansion: Deformable vs. Rigid Parts vs. RSURFU 2

Status
Not open for further replies.

ibme

Bioengineer
Dec 12, 2013
14
Hello,

I am currently using Abaqus (6.12) to perform analysis on various stent designs. At the moment, I am attempting to generate a 'Crimp Tool' to apply a radial load onto a NiTi device, as used to package stents into delivery catheters (which could equivalently be used to simulate balloon expansion of CoCr or 316L SS devices).

After reviewing the literature, most groups report using a "radially expanding rigid cylindrical surface" with a "radial displacement driven process" (or equally, "rigid surface elements moved in displacement control"). Unfortunately, specific details of the process is not provided, and a search of this forum (and others) does not provide any more detailed information.

So, I was wondering if anyone could provide some insight into how best to perform stent crimping/expansion using a "rigid" cylinder?

So far, I have been successful in creating a crimp tool using a 3D deformable part. This part is a shell, to which the section assignment is: shell -> surface section (density = 10). It has been meshed with surface elements(SFM3D4R), and boundary conditions have been applied in cylindrical coordinates to drive the radial (inward) displacement. This model runs and yields expected results. However, I am worried that this not in fact an accurate method of modelling based on the published work (i.e. is not actually a rigid surface?)

But, when attempting to model a 'rigid' cylinder using a 'discrete rigid shell' part, and subsequently meshing (R3D4 elements) and applying the same BCs, the model does not run. I am correct in assuming that this model fails because a discrete rigid structure is not actually deformable, by definition, in Abaqus? If this is the case, how so other groups report using a 'rigid' cylinder?

For reference, I have included the .cae file of these models.

Some more research also brought me to RSURFU subroutines, but use of this was last published around 2010 (?) so feel that 6.12 is capable of a crimp tool without use of a subroutine?

Finally, Simulia does provide a stent expansion as part of their benchmark/performance. Unfortunately, when attempting to retrieve this using the "abaqus fetch job=s5" command, an error is returned. If anyone can make this input file available, it would be greatly appreciated.

I look forward to any more insight into this problem!

 
Replies continue below

Recommended for you

As long as you put boundary conditions on every node, the surface is 'rigid' i.e. not deformable apart from the prescribed deformations. You could even use membrane or shell elements if you want. The SFM3D4R is probably the best computationally.
The R3D4 can not change location relatively to each other as you mention, so indeed this wont work.

RSURFU is a way of defining an analytical surface. It is not discretized, so it is 'smoother'. From personal experience, don't waste your time on it, the speedup and accuracy increase you get is marginal.
 
Hi ibme,

If you want to model the crimping process in a bit more detail you can use several "rigid" surfaces. Here is a video of the crimping process:


And you can see a decent approach to modelling this process on pages 10 and 11 of the following slides:


Im not sure how much better (if at all) this approach may be than using a single "rigid" surface though.

I think I obtained the input files for the benchmark/performance models you mentioned by contacting Simulia directly.

Best of luck,
Dave
 
Hi guys,

@sdebock - thanks for confirming my assumptions, and providing a little more insight into what is a 'rigid' surface/the actual benefits of using the RSURFU subroutine...much appreciated! I think for my purposes using SFM3D4R mesh elements, with properly constrained nodes SFM3D4R will be sufficient.

@Dave - thanks for the links to the additional resources. could be useful to compare FEA vs. experimental when I get to that stage (i.e. modelling the crimp tool as series of dies rather than a cylinder).

Best,

-J
 
Hi Guys,

I've been moving forward with the stent crimping simulations, but am unfortunately running into some problems which I cannot seem to resolve:

Currently, my simulation is a NiTi Stent Ring (3D Deformable Solid) meshed with C3D8 elements, and a Crimp Tool (3D Deformable Shell) meshed with SFM3D4 elements. I have defined a Contact Interaction Property with "Hard" Contact and Penalty Enforcement. I have used Surface-to-Surface Discretization with the (inner) Crimp Tool surface as the 'master' and the Stent Ring surface as a 'Slave'.

I have enforced rigid boundary conditions to Crimp Tool, and fixed one node of the stent ring in the z-direction to avoid rigid body movement (xy is the crimp plane).

I have created 2 steps: 'initial' (defining the BCs), and 'CrimpStent' where the diameter of the Crimp Tool is reduced.

When I submit the simulation, it aborts with the errors:

"Time increment required is less than the minimum specified"

and (more importantly) the warnings:


"1766 elements are distorted. Either the isoparametric angles are out of the suggested limits or the triangular or tetrahedral quality measure is bad. The elements have been identified in element set WarnElemDistorted.

There are 274 unconnected regions in the model.

Excessive distortion at a total of 5 integration points in solid (continuum) elements

There is zero FORCE everywhere in the model based on the default criterion. please check the value of the average FORCE during the current iteration to verify that the FORCE is small enough to be treated as zero. if not, please use the solution controls to reset the criterion for zero FORCE."[/
indent]

I've been at this for some time now, and am not sure what I am missing...

when looking at the results, it appears that the simulation aborts just after contact is made with the stent ring.

Any insight into what could be the issue?

For reference, I've attached the .CAE and .INP files.

Thanks for the help!

Cheers,

-J
 
 http://files.engineering.com/getfile.aspx?folder=19a7c342-0945-4334-afa8-71e75734e315&file=CrimpStent.inp
The first issue that I see is if you do a mesh check on the stent all elements give warnings. The second think is that I believe that the stent has unconstrained rigid body motions. I would solve this by using friction in the contact. Depending on your goal the use of symmetry planes could drastically reduce the solve time. I believe you can model 1/20th of this because of the repeating patterns and symmetry. The symmetry planes will also remove the rigid body motions. I hope this helps.

Rob Stupplebeen
 
Hi Guys,

Thanks for the input!

@rob - I have added Friction as an additional Interaction Property, and the simulation now runs. [FYI: Tangential Behavior -> Penalty -> Friction Coeff = 0.1]. However, I'm at a loss for why the model requires this additional interaction. When looking at the abaqus benchmark file for stent expansion (s5.inp), friction is not included...

Regarding symmetry - I am looking to do the whole stent ring (do eventually look at self-contact), so using symmetry planes won't do.

Unfortunately, I still do have 1766 elements giving me warnings (distorted), and I still have excessive distortion through integration points in the solid. I think this has to do with the C3D8 elements I am using (see below).

@IceBreaker - thanks for pointing me to the Best Practices Guide! I have reviewed this, and it does say that C3D8 elements are not suited for stent analysis...so perhaps changing this will assist with issues related to excessive distortion. In this regard, I was looking to use C3D8I, but am not sure how to control the number of elements through the thickness. Any ideas on how to do this without assigning an excessive amount of seeds? Also, given that I am modelling a stent ring based on a wire, do you think it will be big issue if the elements are not perfect cubes?

and thanks for pointing me to the modelling course!

Cheers,

-J
 
Hi ibme,

I had a look at your model and I believe that you could incorporate 1/5th circumferential symmetry and still account for self-contact between two of the stent struts? Or maybe I'm wrong? This would reduce the computational cost of the analysis and simplify your constraints.

Looking at your mesh, I would reduce the size of the elements located in the region of the stent crowns (the curved sections of the struts that act as hinges during the crimping procedure). As they are likely to experience the greatest amount of deformation, the mesh should probably be refined in these regions. Looking at your mesh, however, the elements appear to get coarser in these regions.

If you go into the post-processor and plot the element set "WarnElemDistorted" you should see where the issues with your mesh arise. Also, I'm not sure if its important but I would increase the mesh density of the crimp tool a little bit to improve contact stability.

Also, I would constrain a single node located at a each crown in both the longitudinal and circumferential directions. This would prevent rigid body motions without interfering with the deformation of the stent. You'll need to set up a local coordinate system for the stent.

Finally, if I remember correctly, reduced-integration continuum elements (C3D8R) are often used in stent analyses.

Best of luck,
Dave
 
Hi Guys,

Have made some progress towards getting the stent crimping model running:

Elements have been updated to C3D8I (as per the Abaqus Best Practices Guide), the mesh has been refined from 8830 -> 14,112 using Medial Axis Algorithm w/ Minimizing Mesh Transition (note: the meshing at the crowns has not been specifically refined), and the material property ABQ_SUPER_ELASTIC_N3D has been specified.

With these parameters, the 'Stent Crimping' works well for for a diameter reduction upto 4mm (i.e. U1 = -2.0). That is, Abaqus/Standard completes successfully, and the only warnings are associated with the crimp tool (i.e. unconnected regions).

However, when I attempt to run a simulation with U1 = -2.5 (i.e. a 5mm diameter reduction), the simulation completes, but with the following errors:


Displacement increment for contact is too big.

Excessive distortion at a total of 1354 integration points in solid (continuum) elements


Has anyone come across the 'displacement increment' error? I attempted to reduce the incrementation size, but this was unsuccessful (and actually generated more errors). [not to concerned about the distortion, as this should be solved with mesh refinement]

Also, I attempted a 'stent expansion' using the same model(placed the crimp-tool within the ring and applied an outward displacement), but this also returned the "Displacement increment for contact is too big" among others...

Does anyone have any thoughts on this?

For reference, I attached the .cae files for both crimp the simulations.

Thanks!


@Dave - have done some modelling with symmetry, but for the moment, would rather keep the entire part in the simulation. Regarding the additional BCs, shouldn't a single constrain node (in the axial direction) be sufficient?
 
 http://files.engineering.com/getfile.aspx?folder=03fbcc87-62e6-4ecf-a3ea-74d1a2b21b34&file=Stent_Ring.cae
Hi ibme,

I would resolve the mesh at each of the crowns. This is where you are going to see the greatest amount of deformation and your simulation is currently aborting due to excessive distortion and displacement increments. There's not much point resolving the mesh along the straight sections of the struts as I don't believe that these elements will undergo any excessive distortion during the analysis.

Have you checked the element set associated with the Warning messages to identify the elements undergoing excessive deformation? Also, check the message file to see if there are any additional warning messages generated when the excessive displacement increment occurs.

Also, (apologies if I'm making assumptions here) but if you are simulating a shape-memory alloy why would you need to force the expansion of the stent? Surely when you remove the crimp tool it should return to its initial configuration?

Finally, by constraining only a single crown you create a hinge about which the stent ring can deform. This may not be an issue for you at the moment but it can be avoided by constraining a node at each crown. This will fully constrain the stent without influencing its ability to deform.

Sorry I cant be of more help, I primarily used the explicit solver to conduct stent analyses.

Good luck,
Dave
 
Hi Dave,

Thanks again for the input! Hugely appreciated.

Quick update for all interested:

I do think that the issues I have been experiencing are due to the construction of the stent ring, and subsequently, the mesh generated on it. I constructed the geometry using SolidWorks (Equation Driven Curves), then imported using the associative import function. Unfortunately, I think that when the geometry is imported Abaqus does not recognize that the part is based on a centerline sweep, (but rather associates it with an edge sweep). So, when the mesh is generated only alternating rings experience a course mesh. I've attached a picture to illustrate. I could be wrong on this point, but I tried replicating the geometry in the Abaqus sketcher with splines, and encountered the same problems. Also, I do think this affects the distorted elements (see attached picture).

So, for the moment, I've reduced the geometry to rectangles and (rectangular) hinges, and all seems to work well. Not ideal, but sufficient for the moment. I've been sure to refine mesh at crowns and properly constrain crown nodes. In regards to forcing expansion - this was more or less just to see what happens :) really, if the simulation is working properly in compression, expansion should not be an issue (of course, does not really have any clinical relevance...)

As for using Abaqus/Explicit, I've been trying to get the same simulation running in Explicit as well, given that most do report using it for stent analysis (just figured Standard would be a good starting point while learning). But, having some difficulties assigning the parameters so that the simulation does not take forever. Can anyone suggest appropriate loading rates and mass scaling for stents?

Thanks!
 
 http://files.engineering.com/getfile.aspx?folder=e976a2b6-d553-43ae-b4fd-5f7c8659ade4&file=Stent_ring.jpg
Hi ibme,

In the past I would draw a single repeating unit cell of the stent in a planar configuration. I would then specify mesh parameters to obtain a reasonable number of elements through both the strut thickness and any curved strut sections. I would then copy and paste the resulting mesh to generate a planar mesh of the complete stent. Finally, I would use a coordinate transformation to obtain a cylindrical mesh of the complete stent.

Additionally, as your analysis is not too complex I would avoid the explicit solver. Unless you are planning on modelling the interaction between the stent and an angioplasty balloon or an artery you should be fine with the implicit solver. Although the explicit solver will help solve complex contact and convergence issues it will DRASTICALLY increase your solution time, even with increased loading rates and mass-scaling.

Good luck,
Dave





 
Hi Dave,

Thanks for the input on meshing stents. Will be sure to try this out soon. Likewise, have you tried out the 'wrap mesh' plug-in? Its a great tool and definitely worth looking into (unless this is what you ment by 'coordinate transformation'...).

The next steps are infact to model interaction between the stent and an artery, but will cross that bridge when i come to it :)

thanks again for the help!
 
Hi ibme,

Unfortunately, I spent a week or two writing my own little script to "wrap" a planar mesh into a cylindrical mesh before I came across the wrapMesh command that is incorporated in ABAQUS. As far as I'm aware both scripts do the exact same thing though.

Stent crimping and expansion analyses are straightforward using Abaqus/Standard. I also had good success modelling stent deployment in a vessel when I was able to exploit circumferential and/or longitudinal symmetry as this allowed the model to be well constrained.

I found it a lot more difficult to model the deployment of a full stent within a vessel with Abaqus/Standard if I could not exploit symmetry. It was particularly difficult to identify robust loads/constraints that could guarantee convergence for any unsymmetric stent. Though I could obtain a solution for one stent, I would inevitably run into convergence issues when the same loads/constraints were applied to the next stent.

If you are going to model the full stent in a vessel, Abaqus/Explicit may be the way to go. Even with increased loading rates and mass-scaling however, you may find that these analyses require a powerful workstation or HPC cluster and enough tokens to run in parallel.

What you will often see is the crimping procedure is first performed with Abaqus/Standard and the deformed geometry of the stent and associated stress/strain fields are then used with Abaqus/Explicit to simulate the deployment of the stent within a vessel.

Best of luck,
Dave

 
Hey guys,

I'm currently working on a similar problem. I would like to start trying to solve my problems with this stent modeling by taking a look at the s5.inp file, however I apparantly have no access to these files (I have a subscription via my university). Would one of you be so kind to send me this s5.inp file? Either on this forum or to simonwostyn@hotmail.com would be lovely!

Thanks in advance

Simon
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor