- 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
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,
YanjingComment
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
Comment
#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,
YanjingComment
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,
YanjingComment
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...