MatNullSpaceCreateRigidBody#

create rigid body modes from coordinates

Synopsis#

#include "petscmat.h" 
PetscErrorCode MatNullSpaceCreateRigidBody(Vec coords, MatNullSpace *sp)

Collective

Input Parameter#

  • coords - block of coordinates of each node, must have block size set

Output Parameter#

  • sp - the null space

Notes#

If you are solving an elasticity problem you should likely use this, in conjunction with MatSetNearNullSpace(), to provide information that the PCGAMG preconditioner can use to construct a much more efficient preconditioner.

If you are solving an elasticity problem with pure Neumann boundary conditions you can use this in conjunction with MatSetNullSpace() to provide this information to the linear solver so it can handle the null space appropriately in the linear solution.

See Also#

Matrices, Mat, MatNullSpace, MatNullSpaceCreate(), MatSetNearNullSpace(), MatSetNullSpace(), PCGAMG

Level#

advanced

Location#

src/mat/interface/matnull.c

Examples#

src/ksp/ksp/tutorials/ex49.c
src/ksp/ksp/tutorials/ex56.c
src/ksp/ksp/tutorials/ex71.c


Edit on GitLab

Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages