1eb9c0419SKris Buschelman #if !defined(_FreeSpace_h_) 2eb9c0419SKris Buschelman #define _FreeSpace_h_ 3eb9c0419SKris Buschelman 470f19b1fSKris Buschelman #include "petsc.h" 570f19b1fSKris Buschelman 6*a1a86e44SBarry Smith typedef struct _Space *PetscFreeSpaceList; 770f19b1fSKris Buschelman 870f19b1fSKris Buschelman typedef struct _Space { 9*a1a86e44SBarry 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; 15*a1a86e44SBarry Smith }; 1670f19b1fSKris Buschelman 17*a1a86e44SBarry Smith PetscErrorCode PetscFreeSpaceGet(PetscInt,PetscFreeSpaceList*); 18*a1a86e44SBarry Smith PetscErrorCode PetscFreeSpaceContiguous(PetscFreeSpaceList*,PetscInt *); 19*a1a86e44SBarry Smith PetscErrorCode PetscFreeSpaceDestroy(PetscFreeSpaceList); 20eb9c0419SKris Buschelman 21eb9c0419SKris Buschelman #endif 22