Replies: 1 comment
-
Can you show the whole of the You run GMRES on the outside, split into macro and micro fields, these are both considered the same, so let's just consider the macro fields. Each outer iteration approximates the inverse with (see https://petsc.org/release/docs/manual/ksp/#sec-block-matrices): Where the block inverses are applied using So, writing the macro matrix blockwise as: SCPC, assembles (elementwise using slate) Does that help? |
Beta Was this translation helpful? Give feedback.
-
Hi, Firedrakers.
I have a question, and maybe it is a basic question. I have a code solving a double permeability Darcy's problem. I will skip the details since it is not required to understand my question (but feel free to contact me if you have interest). This problem has 4-fields: 2 pressures and 2 velocities, each one associated with a scale (macro or micro) in the porous medium.
The thing is: I use a hybrid method to solve this problem, introducing a Lagrange multiplier in each scale (similar to HDG). But, so far, I was unable to solve (to be honest, I forever post-pone it) it with a single "condensed system". So, in the past, with the help of Thomas Gibson, we devised a strategy using the
fieldsplit
facility. We split the system according to the scales (macro and micro, and their associated unknowns), and then apply static condensation in each bock separately. Everything is put inside a Krylov method (it can be GMRES, for instance), which iterates until the convergence is achieved.Here is the code that configures this setup:
However, I am not sure how the iteration occurs. We solve both condensed systems, retrieve the pressures and velocities block-wisely, push them back into the "monolithic" system (the whole system), and what? How is everything used in the KSP? Just "Picard iterations" would be enough? Or the PC with
fieldsplit
is just solved once and then the KSP method performs on the monolithic system? I am asking because I have to provide more information in a submission (well, shame on me).Thanks in advance. Cheers!
Diego.
Beta Was this translation helpful? Give feedback.
All reactions