Dear SimVascular developers,
I am validating the results of blood flow simulation for an idealized pulsatile case. During that, I have encountered some problems related to setting some below parameters (with their default amounts):
1-Tolerance on Momentum Equations: 0.05
2-Tolerance on Continuity Equations: 0.4
3-Tolerance on svLS NS Solver: 0.4
You have not provided any explanation for setting these amounts within User guide and Appendix. For the first run, I did not change these amount for my case study. The CPU time, for example, for 200 time steps was about 0.5 hour.
Then, I have changed these amounts for my case based on the following amounts:
1-Tolerance on Momentum Equations: 0.001
2-Tolerance on Continuity Equations: 0.001
3-Tolerance on svLS NS Solver: 0.001
However, when I run the same case (mesh size and time step) for the same number of time steps (200) without any change of other par maters of setting, the CPU time was about 4 hours on the same number of CPUs!
on numerical simulation of
I have also checked the results for both cases and saw that there is a 10 to 20 percent difference between the results of first and second runs.
I would be wondering if you could guide me how I should accurately set these parameters.
Best regards,
Ezat Shokrani
Setting Tolerance for basic equations
- Weiguang Yang
- Posts: 110
- Joined: Mon Apr 07, 2008 2:17 pm
Re: Setting Tolerance for basic equations
Simvascular flow solver uses a bi-partitioned method (svLS type NS in the solver.inp) to solve the resulting linear system (instead of solving the linear system directly) at each Newton Raphson iteration. Reference: https://www.sciencedirect.com/science/a ... 2514004666
1. Tolerance on Momentum Equations is related to the relative error for the GMRES solve
2. Tolerance on Continuity Equations is related to the relative error for the CG (conjugate gradient) solve.
As indicated by the names, they indicate how well the momentum and continuity equations are satisfied.
3. Tolerance on svLS NS Solver is related to the relative error for the linear system.
If these tolerances are too low, the linear solver will take more time at each Newton iteration. However, spending too much time to solve the linear system precisely at each Newton iteration may not significantly improve the overall performance and nonlinear residuals. The paper suggests 0.01, 0.2 and 0.4 for these tolerances with a max of 10 iterations for the bi-partitioned algorithm. You can adjust these parameters for your problem starting from these values.
1. Tolerance on Momentum Equations is related to the relative error for the GMRES solve
2. Tolerance on Continuity Equations is related to the relative error for the CG (conjugate gradient) solve.
As indicated by the names, they indicate how well the momentum and continuity equations are satisfied.
3. Tolerance on svLS NS Solver is related to the relative error for the linear system.
If these tolerances are too low, the linear solver will take more time at each Newton iteration. However, spending too much time to solve the linear system precisely at each Newton iteration may not significantly improve the overall performance and nonlinear residuals. The paper suggests 0.01, 0.2 and 0.4 for these tolerances with a max of 10 iterations for the bi-partitioned algorithm. You can adjust these parameters for your problem starting from these values.
- Ezat Shokrani
- Posts: 3
- Joined: Sat Jun 12, 2021 10:24 am
Re: Setting Tolerance for basic equations
Dear Dr. Weiguang Yang,
Thanks for your response. You provided some information about setting these tolerances which were really helpful.
Best regards,
Ezat Shokrani
Thanks for your response. You provided some information about setting these tolerances which were really helpful.
Best regards,
Ezat Shokrani