|
Hi,
I've been working on a finite element simulation of a 3 ionic species unsteady electrodiffusion model. The concentrations and the electric potential are defined using a unsteady diffusion equations. All the concentration being coupled to the potential
giving a non symmetrical global system.
I know that everything works since I've solved the system using LU. So far I've tried a lot of different things, but I am now trying to solve the system using a Schur complement, splitting the system in two groups [concentrations, potential], and
I'm getting slow convergence. Here are the options I'm using. I've also attached a file with the ksp_view and the ksp_monitor.
======
ksp_type gcr
pc_type fieldsplit
pc_fieldsplit_type schur
mat_type nest
ksp_monitor
ksp_view
//Options concentrations block
fieldsplit_a_00_ksp_type gcr
fieldsplit_a_00_pc_type lu
fieldsplit_a_00_ksp_rtol 1.0e-4
fieldsplit_a_00_ksp_atol 1.0e-8
//Options potential block
fieldsplit_schur_mat_type schurcomplement
fieldsplit_schur_ksp_type gcr
pc_fieldsplit_schur_precondition selfp
pc_fieldsplit_schur_fact_type full
fieldsplit_schur_pc_type lu
fieldsplit_schur_ksp_monitor
fieldsplit_schur_ksp_rtol 1.0e-4
fieldsplit_schur_ksp_atol 1.0e-8
ksp_rtol 1.0e-5
ksp_atol 1.0e-5
=====
First of all, I'm wondering what exactly is showing on the screen when I use the fieldsplit_schur_ksp_monitor?
Also, why is it printing twice each time as you can see in the attached file? When I use pc_fieldsplit_a_00_monitor (which is not included in the file I sent you because it only does one iteration, as it should since it's solving with LU) it prints it
3 times every time which gets pretty annoying.
Finally, as you can see, it takes a long time to the fieldsplit_schur_ksp to converge, do you have any idea why it takes over 200 iterations to get down to 1e-02? Is there a way to get it to converge faster?
Thank you for your time,
Amélie
|
QuestionPetsc
Description: QuestionPetsc
