1eb9c0419SKris Buschelman #if !defined(_FreeSpace_h_) 2eb9c0419SKris Buschelman #define _FreeSpace_h_ 3eb9c0419SKris Buschelman 470f19b1fSKris Buschelman #include "petsc.h" 570f19b1fSKris Buschelman 6a1a86e44SBarry Smith typedef struct _Space *PetscFreeSpaceList; 770f19b1fSKris Buschelman 8919b68f7SBarry Smith struct _Space { 9a1a86e44SBarry Smith PetscFreeSpaceList more_space; 102e111b49SBarry Smith PetscInt *array; 112e111b49SBarry Smith PetscInt *array_head; 122e111b49SBarry Smith PetscInt total_array_size; 132e111b49SBarry Smith PetscInt local_used; 142e111b49SBarry Smith PetscInt local_remaining; 15a1a86e44SBarry Smith }; 1670f19b1fSKris Buschelman 17a1a86e44SBarry Smith PetscErrorCode PetscFreeSpaceGet(PetscInt,PetscFreeSpaceList*); 18a1a86e44SBarry Smith PetscErrorCode PetscFreeSpaceContiguous(PetscFreeSpaceList*,PetscInt *); 19*783ef271SHong Zhang PetscErrorCode PetscFreeSpaceContiguous_LU(PetscFreeSpaceList*,PetscInt*,PetscInt,PetscInt*,PetscInt*); 20*783ef271SHong Zhang PetscErrorCode PetscFreeSpaceContiguous_Cholesky(PetscFreeSpaceList*,PetscInt*,PetscInt,PetscInt*,PetscInt*); 21a1a86e44SBarry Smith PetscErrorCode PetscFreeSpaceDestroy(PetscFreeSpaceList); 22eb9c0419SKris Buschelman 23eb9c0419SKris Buschelman #endif 24