1 #pragma once 2 3 #include <petscsys.h> 4 5 typedef struct _n_PetscFreeSpaceList *PetscFreeSpaceList; 6 7 struct _n_PetscFreeSpaceList { 8 PetscFreeSpaceList more_space; 9 PetscInt *array; 10 PetscInt *array_head; 11 PetscInt total_array_size; 12 PetscInt local_used; 13 PetscInt local_remaining; 14 }; 15 16 PetscErrorCode PetscFreeSpaceGet(PetscInt, PetscFreeSpaceList *); 17 PetscErrorCode PetscFreeSpaceContiguous(PetscFreeSpaceList *, PetscInt *); 18 PetscErrorCode PetscFreeSpaceContiguous_LU(PetscFreeSpaceList *, PetscInt *, PetscInt, PetscInt *, PetscInt *); 19 PetscErrorCode PetscFreeSpaceContiguous_Cholesky(PetscFreeSpaceList *, PetscInt *, PetscInt, PetscInt *, PetscInt *); 20 PetscErrorCode PetscFreeSpaceDestroy(PetscFreeSpaceList); 21