<div>I don't know why these functions exist, but they aren't namespaced and the man pages are distracting and inconsistent. Also, only one of the assembleVector() functions below is documented and neither of the update* are. Matt, could you name these however they are supposed to be so they aren't scattered around the docs?</div>
<div><br></div><div>extern PetscErrorCode assembleVector(Vec, DM, SectionReal, PetscInt, PetscScalar [], InsertMode);</div><div>extern PetscErrorCode assembleMatrix(Mat, DM, SectionReal, PetscInt, PetscScalar [], InsertMode);</div>
<div><div>extern PetscErrorCode restrictVector(Vec, Vec, InsertMode);</div><div>extern PetscErrorCode assembleVectorComplete(Vec, Vec, InsertMode);</div><div>extern PetscErrorCode assembleVector(Vec, PetscInt, PetscScalar [], InsertMode);</div>
<div>extern PetscErrorCode updateOperator(Mat, const ALE::Obj<PETSC_MESH_TYPE>&, const ALE::Obj<PETSC_MESH_TYPE::real_section_type>&, const ALE::Obj<PETSC_MESH_TYPE::order_type>&, c</div><div>
onst PETSC_MESH_TYPE::point_type&, PetscScalar [], InsertMode);</div><div>extern PetscErrorCode updateOperatorGeneral(Mat, const ALE::Obj<PETSC_MESH_TYPE>&, const ALE::Obj<PETSC_MESH_TYPE::real_section_type>&, const ALE::Obj<PETSC_MESH_TYPE::order_ty</div>
<div>pe>&, const PETSC_MESH_TYPE::point_type&, const ALE::Obj<PETSC_MESH_TYPE>&, const ALE::Obj<PETSC_MESH_TYPE::real_section_type>&, const ALE::Obj<PETSC_MESH_TYPE::order_type>&, c</div>
<div>onst PETSC_MESH_TYPE::point_type&, PetscScalar [], InsertMode);</div></div><div><br></div>