How to simulate the prosthetic liner don problem?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts
  • Sebastian
    Junior Member
    • Dec 2019
    • 11

    How to simulate the prosthetic liner don problem?

    Hi,

    I am working on the simulation of donning a prosthetic liner on the residual limb. The method I used can be described briefly as follows.

    1) The residual limb model was reconstructed based on the MRI/CT data. At the beginning, an initial liner shape was designed by offsetting the skin surface outwards by some millimeters. So the system has bones, patella tendon, soft tissue, and liner. All the boundaries shared by the corresponding pairs. To avoid using contact, I did the following three steps.

    2) I used multigeneration method for all the materials. The whole process could be completed in 3 steps. For the bones, patella tendon and the soft tissue, the material mechanical properties were 0 from t=0s to t=2s. After t=2s, the real mechanical properties would be assigned to the corresponding parts. For the liner, the material mechanical property was 0 from t=1, and then the real mechanical property would be assigned to it after t=1s.

    3) The first step could be called liner design: I used a prescribed displacement boundary condition to move all the vertices of the liner inner surface (i.e., the skin surface) inwards around 10mm (not identical for all the vertices because some smoothing work was done for the shape of liner to make it more beautiful, so the displacement for each skin node was calculated according to the liner shape we want). When t=1s, I switched on the liner mechanical property. So currently the shape of the liner is its original shape, so the liner design was finished.

    4) The second step could be called liner expansion, just as in the real world we expand a liner to prepare for putting it on the residual limb. In this step, I still used the prescribed displacement boundary condition to make the displacements of all nodes of the skin surface 0 relative to their initial positions (use absolute displacement). So now the liner was expanded to the very same shape as the residual limb.

    5) The third step could be called liner don, just as in the real world the liner interacts with the soft tissue and reaches a final shape that can keep a balance these two parts. In this step, I switched on the mechanical properties of the soft tissue and the bones.

    My question is: Step1 and Step2 could run successfully, but Step3 would crash just after t=2s. I tried many methods to tune this. In my understanding, because the liner was stretched, it would apply very large stress or force on the skin surface when t=2s. So we need to do something to balance the stress or force. I tried applying nodal forces (obtained by computing the reaction forces of each node of the skin at the end of step2), applying pressure (obtained by computing the stress of each face of the skin at the end of step2), applying traction (obtained by computing the traction of each face of the skin at the end of step2) at t=2s, and then decreased the values to 0 linearly. But none of them worked. The computation could not go any further after t=2s.

    Is there any problem on my method or setup? Can you give some suggestion to make it work?

    Thanks.

    Sinba
    Last edited by Sebastian; 09-24-2020, 05:37 AM.
  • ateshian
    Developer
    • Dec 2007
    • 1830

    #2
    Hi Sinba,

    It is hard to tell what causes your model to fail. For the third step it would seem to me that you should perform a contact analysis, though you say that you are trying to avoid that. The contact algorithms in FEBio are very robust, when used properly, so I recommend you look into that.

    Best,

    Gerard

    Comment

    • Sebastian
      Junior Member
      • Dec 2019
      • 11

      #3
      Hi Gerard,

      Thanks for the response. I tried the contact constraint following your advice. I used the sticky contact type It seemed the same problem occurred. The FeBio would fail in step3 as before because of negative jacobian. I tried some methods to tune this, like applying the nodal reaction force to balance the model, applying pressure or traction to balance the model, refining the mesh, changing the penalty factor to make it larger or smaller, reducing the time step size, etc., but none of them worked. Only when I gave the soft tissue a mechanical property with very high stiffness, the FEA process could go after the first two steps. Can you give me some suggestions on this? Thanks.

      Sinba

      Comment

      • Sebastian
        Junior Member
        • Dec 2019
        • 11

        #4
        Hi Gerard,

        Do you have chance to view my questions? Do you have some suggestions on my issues?

        Thanks.
        Sinba

        Comment

        • ateshian
          Developer
          • Dec 2007
          • 1830

          #5
          Hi Sinba,

          Would you be able to share your model file with me? This would help me understand the issue better.

          Best,

          Gerard

          Comment

          • Sebastian
            Junior Member
            • Dec 2019
            • 11

            #6
            Hi Gerard,

            Thanks for the response. As currently the files cannot be shared in public, I sent a private message with the dropbox link sharing the files to you just now. Let me know if there is any problem. Thank you very much.

            Please ignore step4 and step5. Because I was stuck in step3, I didn't spend too much time working on them, neither verified whether they worked well. The setup in step4 and step5 might not work well. But step1 and step 2 could work well. If you have questions on the setup parameters or there are problems in my setup, please let me know. Thanks.

            I also have a version with refined mesh, but it will take much more space and much much more time to run. If you need it, I can also share it, too. According to my experience, refining the mesh would not help.

            Best,
            Sinba

            Comment

            • Sebastian
              Junior Member
              • Dec 2019
              • 11

              #7
              I also need to mention, previously I added contact constrain in step1 and step2 and used the default setup for the contact parameters, which worked very well. But it could not go any further after step2. So I tried a lot of measures (mentioned in the last post) to solve this. During the debug, I found it would save a lot of time if I didn't use contact in the first step and the second step. In addition, it is no need to use contact in step1 and step2. Therefore I removed the contact consrtain in step2 and step3, only starting to use contact from step3. Step1 and step2 still worked well, problems in step3 still occurred. I also tried some methods mentioned above, but they didn't work. Hope this could provide some useful information for you. Thanks.

              Sinba

              Comment

              • ateshian
                Developer
                • Dec 2007
                • 1830

                #8
                Hi Sinba,

                I looked at the file you sent me and I had difficulty importing it into FEBioStudio since it was generated on Gibbon. Nevertheless, there was at least one problematic situation with the tags <Surface name="contactLinerSkin_slave"> and <Surface name="contactSocketLiner_slave"> which describe the slave surfaces of contact interfaces: They list their faces as <quad4> elements, but only three node numbers are specified. So this should either be changed to <tri3> or there is a missing node that needs to be specified. I recommend that you first address that issue and see if it resolves the problems you've been having with this analysis, especially since the sticky contact interface is defined in Step 3.

                Best,

                Gerard

                Comment

                • Sebastian
                  Junior Member
                  • Dec 2019
                  • 11

                  #9
                  Hi Gerard,

                  Thanks you very much for the response. I will try to modify my model and rerun it according to your advice. Will let you know if it works.

                  Best,
                  Sinba

                  Comment

                  • Sebastian
                    Junior Member
                    • Dec 2019
                    • 11

                    #10
                    Hi Gerard,

                    I modified these two wrong setups, but rerun FeBio to compute the contact. The problems still occurred. Do you want to use FEBioStudio to view the setup or run the model? I am using Febio2.9.1. Some terms are a little bit different. Perhaps this is the reason you could not import the file into FEBioStudio? I could import the file into Preview2.1.1, showing some warnings that the meshdata was skipped. I put the modified files in the same share folder.

                    Comment

                    • Sebastian
                      Junior Member
                      • Dec 2019
                      • 11

                      #11
                      I checked how Gibbon runs FEBio. It uses the command line to start the FeBio and uses the xml file as the input file. I tried the following command that could run my model. If you want to run my model, you could try this.

                      start /min "GIBBON - FEBio" "C:\Program Files\FEBio2.9.1\bin\FEBio2.exe" -i "......\studyCase_183_iteration_0_step5.xml" -o "......\studyCase_183_iteration_0_step5.txt"

                      Comment

                      • ateshian
                        Developer
                        • Dec 2007
                        • 1830

                        #12
                        Hi Sinba,

                        I am sorry that I haven't followed up with your post. Yes, I would much prefer to use FEBioStudio to view the setup and run the model, since that would allow me to try different things to get it to work (and also, it would allow me to better understand what you are trying to do). It is possible that FEBioStudio might not be able to import all the features you want to include in your model, in which case I would appreciate it if you could come up with a model/boundary conditions that sufficiently replicate what you are trying to do so that I can make some constructive suggestions.

                        Best,

                        Gerard

                        Comment

                        Working...
                        X
                        😀
                        😂
                        🥰
                        😘
                        🤢
                        😎
                        😞
                        😡
                        👍
                        👎