Negative Jacobian for FSI simulation FEBio Forum (2024)

  • Welcome to the FEBio Forum. This forum serves the community of FEBio and FEBio Studio users and developers. Forum participants are encouraged to post questions, as well as answer posts from others. A broad level of participation is encouraged, to create a vibrant community that helps improve the quality and usefulness of these open-source/free software products. Moderators are here to assist with explaining novel features, addressing bug reports and reviewing feature requests, but the effectiveness of the forum depends critically on the participation of experienced users who can assist novices or share ideas and models that explore challenging problems. Please feel free to join in this effort. You can subscribe to forums by pressing the "Subscribe" button at the top of the forum. This will allow you to stay up to date on recent activity on the forum.The FEBio software downloads and knowledgebase can be found here.

Collapse

X

Collapse

  • Posts
  • Latest Activity
  • Photos
  • Filter

Clear All

new posts

PrevioustemplateNext

  • Y.liu

    Junior Member

    • May 2023
    • 10

    #1

    Negative Jacobian for FSI simulation

    Dear community of Febio,

    I am now working on an artery FSI model using FEBio. But I keep getting Negative Jacobian error at first analysis step. A time-varying velocity profile is set as inlet boundary condition. Outflow ratios are assumed to be 64 vs. 36%. The velocity increases from zero to initial velocity of the velocity profile in first 0.5s. beta value from tangential and back flow stabilization increase from 0 to 1 in first 0.25s. Could you give some suggestions on how to make the model run?

    Here is the link of model file: https://drive.google.com/file/d/1lE0...ew?usp=sharing

    Also, I am planning to use prestrain material for the solid domain with a known deformation gradient in the next step. It would be appreciated if you could share some hints to avoid possible error using this combination (FSI and prestrain).

    Thank you so much for your help.

    Best,
    Yanjing

    Tags:None

    • ateshian

      Developer

      • Dec 2007
      • 1929

      #2

      Hi Yanjing,

      What are the units of your model? From the dimensions of your geometry I am guessing that you are using meters for length, suggesting that you are using SI units. But from the material properties of the solid and fluid domains I don't see material properties consistent with SI units. I think you should focus on the units for your problem and perhaps the analysis will run well.

      Best,

      Gerard

      • 👍1

        Comment

        • #3

          Originally posted by ateshianView Post

          Hi Yanjing,

          What are the units of your model? From the dimensions of your geometry I am guessing that you are using meters for length, suggesting that you are using SI units. But from the material properties of the solid and fluid domains I don't see material properties consistent with SI units. I think you should focus on the units for your problem and perhaps the analysis will run well.

          Best,

          Gerard

          Hi Gerard,

          Thank you for being so helpful. I am using SI unit in the model. You are correct, the bulk modulus of fluid was set wrong. After changing to the correct bulk modulus (2.2e+9Pa), the model can run for a few steps but it terminates due to negative jacobian at around 0.007s.

          The material model of vessel wall is neo-nookean model with density = 1000kg/m3, E=6e+5Pa, v=0.48. And the blood properties are set identical to your previous article (DOI: 10.1115/1.4043031).

          Here is the link to new model file: https://drive.google.com/file/d/1XbQ...ew?usp=sharing

          Thank you for your time and assistance.

          Best,
          Yanjing

          Comment

          • ateshian

            Developer

            • Dec 2007
            • 1929

            #4

            Hi Yanjing,

            I took a look at your model and made a few changes to get it to run to completion: (1) I deleted the back flow and tangential stabilization loads because you had also prescribed the fluid velocity on those same faces. So these stabilization loads do nothing in that case. (2) In general, FEBio expects users to use a biased mesh on no-slip boundaries, so I edited your mesh to add a boundary layer. Once I did that, the model ran to completion.

            Creating a boundary layered mesh for the geometry that you had is not trivial. There are a couple of different methods (both of which will take me a relatively long time to explain), so let me know if you need more information on how to do that. One of these approached uses the steps described in this YouTube video (on the FEBioVideos channel), so you could look into that.

            Best,

            Gerard

            • 👍1

              Comment

              • Y.liu

                Junior Member

                • May 2023
                • 10

                #5

                Originally posted by ateshianView Post

                Hi Yanjing,

                I took a look at your model and made a few changes to get it to run to completion: (1) I deleted the back flow and tangential stabilization loads because you had also prescribed the fluid velocity on those same faces. So these stabilization loads do nothing in that case. (2) In general, FEBio expects users to use a biased mesh on no-slip boundaries, so I edited your mesh to add a boundary layer. Once I did that, the model ran to completion.

                Creating a boundary layered mesh for the geometry that you had is not trivial. There are a couple of different methods (both of which will take me a relatively long time to explain), so let me know if you need more information on how to do that. One of these approached uses the steps described in this YouTube video (on the FEBioVideos channel), so you could look into that.

                Best,

                Gerard

                Hi Gerard,

                Thank you so much for your valuable advice. It has been helpful in enhancing my understanding of mesh preparation for FSI. I've implemented two different methods for adding a biased mesh, but regrettably, both have encountered issues.

                First, I followed the steps outlined in the instructional video. For MMG Resh, I set the maximum and minimum element sizes to 3e-4 and 1e-4, respectively. Following that, I applied the boundary layer feature to introduce 5 layers with a bias factor of 2. However, I got the error: Fatal error in factorization of stiffness matrix. I understand that you previously mentioned the model should run smoothly after adding the boundary layers, suggesting that there might be some silly errors in my approach. Could you provide some suggestions on this?

                The second approach is adding a boundary layer externally using GIBBON toolbox in MATLAB by thickening the solid-fluid interface, as shown below. Unfortunately, this approach has still resulted in negative Jacobian issues. Considering that I have more than 100 models to work with, this method is my preferred choice. I would appreciate it if you could take a closer look at this model.

                Here are the links to the two models: https://drive.google.com/file/d/1I-n...ew?usp=sharing and https://drive.google.com/file/d/1jOF...ew?usp=sharing

                Thank you once again for your assistance.

                Best,
                Yanjing
                Negative Jacobian for FSI simulation FEBio Forum (7)Negative Jacobian for FSI simulation FEBio Forum (8)Negative Jacobian for FSI simulation FEBio Forum (9)Negative Jacobian for FSI simulation FEBio Forum (10)​​​

                Comment

                • ateshian

                  Developer

                  • Dec 2007
                  • 1929

                  #6

                  Hi Yanjing,

                  The first model you shared was too big for me to manipulate, because it had too many elements. When you create a biased mesh, you only need to create it for the fluid domain, not the solid domain.
                  The second model did not converge even after I fixed the missing zero-fluid-velocity boundary condition. I am not sure why it didn't converge, but since I am not involved with the GIBBON toolbox, I couldn't debug that particular model.

                  Instead, I have created a movie showing how I modified your original model to create a boundary layer mesh in the fluid domain. Please check it out and hopefully it can help you resolve this issue.

                  Best,

                  Gerard

                  • 👍1

                    Comment

                    • Y.liu

                      Junior Member

                      • May 2023
                      • 10

                      #7

                      Originally posted by ateshianView Post

                      Hi Yanjing,

                      The first model you shared was too big for me to manipulate, because it had too many elements. When you create a biased mesh, you only need to create it for the fluid domain, not the solid domain.
                      The second model did not converge even after I fixed the missing zero-fluid-velocity boundary condition. I am not sure why it didn't converge, but since I am not involved with the GIBBON toolbox, I couldn't debug that particular model.

                      Instead, I have created a movie showing how I modified your original model to create a boundary layer mesh in the fluid domain. Please check it out and hopefully it can help you resolve this issue.

                      Best,

                      Gerard

                      Hi Gerard,

                      I wanted to express my heartfelt thanks for your assistance. The video you provided is exceptionally clear. And I have managed to run the simulation.
                      By the way, the issue I mentioned in my previous response regarding method 2. There seems to be a unknown reason that changing the Young's modulus of the solid material to 1 in fluid-fsi results in a convergent simulation, which differs from the FSI tutorial.

                      Best,
                      Yanjing

                      Comment

                      • ateshian

                        Developer

                        • Dec 2007
                        • 1929

                        #8

                        Hi Yanjing,

                        I am glad that the procedure worked for you.

                        Regarding our FSI tutorials, they were created at a time when we used the PARDISO solver as our best and most efficient solver. If you switch the model I shared with you to use PARDISO and if you set the Young's modulus of the solid matrix of the FSI material to 1e-9 (the value we used to recommend in our older tutorials), the analysis will converge. But, as indicated in our paper introducing the FSI solver, the only requirement for the modulus of the solid matrix of the FSI domain is to be small enough not to influence the solution, so the exact value doesn't matter as long as it is sufficiently small.

                        Best,

                        Gerard

                        Comment

                        • ateshian

                          Developer

                          • Dec 2007
                          • 1929

                          #9

                          Hi Yanjing,

                          Thanks to Steve maas 's help, we were able to fix bugs and problems with the Inflate tool in FEBioStudio, and it is now possible to reproduce more efficiently the functionality I had shared earlier. Please check the new brief video posted here.

                          Best,

                          Gerard

                          Comment

                          • Y.liu

                            Junior Member

                            • May 2023
                            • 10

                            #10

                            Originally posted by ateshianView Post

                            Hi Yanjing,

                            Thanks to Steve maas 's help, we were able to fix bugs and problems with the Inflate tool in FEBioStudio, and it is now possible to reproduce more efficiently the functionality I had shared earlier. Please check the new brief video posted here.

                            Best,

                            Gerard

                            Hi Gerard,

                            The new method works perfectly and is much easier. This will be a huge help since I am working on more than 100 cases.

                            Big thanks for you and Steve's awesome work on febio!!

                            Best,
                            Yanjing

                            Comment

                            • Y.liu

                              Junior Member

                              • May 2023
                              • 10

                              #11

                              Hi Gerard,

                              I'm currently working on creating an FSI model using actual patient data. During this process, I noticed that the inflate tool generates a tet4 solid mesh for the fluid domain using the default setting of TETGEN (the same result when elementsize is set to 0 in tetgen). However, this results in a rather coarse mesh for my model, leading to unconvergence issues. I managed to resolve the problem by detaching the tet4 part and refining the mesh. Therefore, I think it would enhance the tool's flexibility if the element size could be specified as one of the input variables for the inflate tool.

                              Thank you and Steve once again for your extraordinary work on febio and willingness to help with users all the time!!

                              Best,
                              Yanjing
                              ​​

                              Comment

                              • ateshian

                                Developer

                                • Dec 2007
                                • 1929

                                #12

                                Hi Yanjing,

                                The inflate tool uses the "thickness" parameter as the element size in the TETGEN portion of the analysis, it doesn't use the default setting of 0. Can you please clarify if you used an unusually large value for "thickness" in the example you are talking about? If you could share the file that is problematic, and the settings you used for the Inflate tool, that might help me understand this issue better. Of course we can add one more parameter to the Inflate tool which sets the TETGEN element size explicitly, but I would prefer not to add too many parameters to this tool.

                                Best,

                                Gerard

                                Comment

                                Powered by vBulletin® Version 6.0.4
                                Copyright © 2024 MH Sub I, LLC dba vBulletin. All rights reserved.

                                All times are GMT-7. This page was generated at 11:28 AM.

                                Working...

                                Negative Jacobian for FSI simulation 
		
		FEBio Forum (2024)
                                Top Articles
                                Latest Posts
                                Article information

                                Author: Greg Kuvalis

                                Last Updated:

                                Views: 6112

                                Rating: 4.4 / 5 (75 voted)

                                Reviews: 82% of readers found this page helpful

                                Author information

                                Name: Greg Kuvalis

                                Birthday: 1996-12-20

                                Address: 53157 Trantow Inlet, Townemouth, FL 92564-0267

                                Phone: +68218650356656

                                Job: IT Representative

                                Hobby: Knitting, Amateur radio, Skiing, Running, Mountain biking, Slacklining, Electronics

                                Introduction: My name is Greg Kuvalis, I am a witty, spotless, beautiful, charming, delightful, thankful, beautiful person who loves writing and wants to share my knowledge and understanding with you.