xref: /petsc/src/mat/utils/freespace.h (revision 919b68f78566a3267d08cc498629dff2b42ebf53)
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 
8*919b68f7SBarry 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 *);
19a1a86e44SBarry Smith PetscErrorCode PetscFreeSpaceDestroy(PetscFreeSpaceList);
20eb9c0419SKris Buschelman 
21eb9c0419SKris Buschelman #endif
22