:orphan: # 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 [](ch_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](https://gitlab.com/petsc/petsc/-/edit/release/src/mat/interface/matnull.c) [Index of all Mat routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)