@Mark: Is there some document/paper that I can follow to check the algebra of these zero eigenvectors/null space modes?
@Jed : We use a projection method preconditioner to solve the coupled velocity pressure system as described here ( https://urldefense.us/v3/__https://www.sciencedirect.com/science/article/pii/S0021999123004205__;!!G_uCfscf7eWS!ZRrdNNCSkRL0WcX9v_6J47NL0alKPWI62lpOHMD1McnE_Mj0VpDWMYMqnlAYtYcpBM9gXe_PJCQpsqHNGDw-c3gVcg$ ). It is an approximation of the Schur complement. As a part of projection preconditioner, we need to solve just the momentum equation separately without considering the pressure part. On Tue, Oct 29, 2024 at 8:03 PM Jed Brown <j...@jedbrown.org> wrote: > And to be clear, we recommend using fieldsplit Schur to separate the > pressure and velocity part (there are many examples). Applying AMG directly > to the saddle point problem will not be a good solver because the > heuristics assume positivity and do not preserve inf-sup stability (nor do > standard smoothers). > > Mark Adams <mfad...@lbl.gov> writes: > > > This is linear elasticity and there are 6 "null" vectors (if you removed > > Dirichlet boundary conditions these are eigenvectors with zero > eigenvalue): > > 3 translations, x, y, z, and three rotatiions xx, yy ,zz. > > x = (1,0,0,1,0,0,1,0 ...) > > and xx is something like (0, z_1, -y_1, 0, z_2, -y_2, ...) where z_1 is > the > > z coordinate of the first vertex, etc. > > > > Mark > > > > On Tue, Oct 29, 2024 at 3:47 PM Amneet Bhalla <mail2amn...@gmail.com> > wrote: > > > >> Hi Mark, > >> > >> Thanks! I am not sure how to construct null space and zero energy modes > >> manually for this operator. Is there some theory or documentation I can > >> follow to figure out what the null space and zero energy modes look like > >> for this operator? Once I know what these are in symbolic form, I think > I > >> should be able to construct them manually. > >> > >> Best, > >> --Amneet > >> > >> On Tue, Oct 29, 2024 at 7:35 AM Mark Adams <mfad...@lbl.gov> wrote: > >> > >>> Oh my mistake. You are using staggered grids. So you don't have a block > >>> size that hypre would use for the "nodal" methods. > >>> I'm not sure what you are doing exactly, but try hypre and you could > >>> create the null space, zero energy modes, manually, attach to the > matrix > >>> and try GAMG. > >>> You can run with '-info :pc' and grep on GAMG to see if GAMG is picking > >>> the null space up (send this output if you can't figure it out). > >>> > >>> Thanks, > >>> Mark > >>> > >>> On Tue, Oct 29, 2024 at 9:28 AM Mark Adams <mfad...@lbl.gov> wrote: > >>> > >>>> This coordinate interface is just a shortcut for vertex based > >>>> discretizations with 3 dof per vertex, etc. (maybe works in 2D). > >>>> You will need to construct the null space vectors manually and attach > it > >>>> to the matrix. Used by GAMG. > >>>> > >>>> Note, for hypre you want to use the "nodal" options and it does not > use > >>>> these null space vectors. That is probably the way you want to go. > >>>> eg: -pc_hypre_boomeramg_nodal_coarsen > >>>> > >>>> I would run with hypre boomerang and -help and grep on nodal to see > all > >>>> the "nodal" options and use them. > >>>> > >>>> Thanks, > >>>> Mark > >>>> > >>>> > >>>> On Mon, Oct 28, 2024 at 8:06 PM Amneet Bhalla <mail2amn...@gmail.com> > >>>> wrote: > >>>> > >>>>> Hi Folks, > >>>>> > >>>>> I am trying to solve the momentum equation in a projection > >>>>> preconditioner using GAMG or Hypre solver. The equation looks like > for > >>>>> velocity variable *v* looks like: > >>>>> > >>>>> > >>>>> [image: Screenshot 2024-10-28 at 4.15.17 PM.png] > >>>>> > >>>>> Here, μ is spatially varying dynamic viscosity and λ is spatially > >>>>> varying bulk viscosity. I understand that I need to specify rigid > body > >>>>> nullspace modes to the multigrid solver in order to accelerate its > >>>>> convergence. Looking into this routine MatNullSpaceCreateRigidBody() > ( > >>>>> > https://urldefense.us/v3/__https://petsc.org/release/manualpages/Mat/MatNullSpaceCreateRigidBody/__;!!G_uCfscf7eWS!bVR6duCoDqPhZrWS-sm1c5qxsFPjZMhdT86AqLpPzWgVy5qoRhd4_Jue2LJOIS6LRrtV2cHGrqger1Yvb-Y5f-0$ > >>>>> < > https://urldefense.us/v3/__https://petsc.org/release/manualpages/Mat/MatNullSpaceCreateRigidBody/__;!!G_uCfscf7eWS!eKqgIJjCdMzIU76f7X65AmGxrU_-lC7W02BMWafJ77DNf_IuQk6O1X3qU1x9Ez8NJ20vZEL-mF6T1yNmDnwv0eWa2w$ > >), > >>>>> I see that I need to provide the coordinates of each node. I am using > >>>>> staggered grid discretization. Do I need to provide coordinates of > >>>>> staggered grid locations? > >>>>> > >>>>> Thanks, > >>>>> -- > >>>>> --Amneet > >>>>> > >>>>> > >>>>> > >>>>> > >> > >> -- > >> --Amneet > >> > >> > >> > >> > -- --Amneet