|
Neko 1.99.9
A portable framework for high-order spectral element flow simulations
|
Defines a registry for storing and requesting temporary objects This can be used when you have a function that will be called often and you do not want to create temporary objects (work arrays) inside it on each call.
Data Types | |
| type | scratch_registry_t |
| Scratch registry type. More... | |
Functions/Subroutines | |
| subroutine | scratch_registry_init (this, size, expansion_size, dof) |
| Constructor, optionally taking initial registry and expansion size as argument. | |
| subroutine | scratch_registry_free (this) |
| Destructor. | |
| subroutine | scratch_registry_set_dofmap (this, dof) |
| Assign a dofmap to the scratch registry. | |
| subroutine | scratch_registry_set_expansion_size (this, expansion_size) |
| Assign a new expansion size to the scratch registry. | |
| integer function | get_n_entries (this) |
| Get the number of objects stored in the registry. | |
| integer function | get_n_inuse (this) |
| Get the number of objects currently in use. | |
| integer function | get_size (this) |
| Get the size of the objects array. | |
| pure integer function | get_expansion_size (this) |
| Get the expansion size. | |
| logical function | get_inuse (this, index) |
| Get the inuse status for a given index. | |
| subroutine | request_host_array (this, scratch_entry, index, n, clear) |
| Get a host array from the registry by assigning it to a pointer. | |
| subroutine | relinquish_host_array_single (this, index) |
| Relinquish the use of a host_array in the registry. | |
| subroutine | relinquish_host_array_multiple (this, indices) |
| Relinquish the use of multiple host_arrays in the registry. | |
| subroutine | request_device_array (this, scratch_entry, index, n, clear) |
| Get a device array from the registry by assigning it to a pointer. | |
| subroutine | relinquish_device_array_single (this, index) |
| Relinquish the use of a device_array in the registry. | |
| subroutine | relinquish_device_array_multiple (this, indices) |
| Relinquish the use of multiple device_arrays in the registry. | |
| subroutine | request_vector (this, scratch_entry, index, n, clear) |
| Get a vector from the registry by assigning it to a pointer. | |
| subroutine | relinquish_vector_single (this, index) |
| Relinquish the use of a vector in the registry. | |
| subroutine | relinquish_vector_multiple (this, indices) |
| Relinquish the use of multiple vectors in the registry. | |
| subroutine | request_matrix (this, scratch_entry, index, nrows, ncols, clear) |
| Get a matrix from the registry by assigning it to a pointer. | |
| subroutine | relinquish_matrix_single (this, index) |
| Relinquish the use of a matrix in the registry. | |
| subroutine | relinquish_matrix_multiple (this, indices) |
| Relinquish the use of multiple matrices in the registry. | |
| subroutine | request_tensor3 (this, scratch_entry, index, n, m, l, clear) |
| Get a tensor3 from the registry by assigning it to a pointer. | |
| subroutine | relinquish_tensor3_single (this, index) |
| Relinquish the use of a tensor3 in the registry. | |
| subroutine | relinquish_tensor3_multiple (this, indices) |
| Relinquish the use of multiple tensor3s in the registry. | |
| subroutine | request_tensor4 (this, scratch_entry, index, n, m, l, k, clear) |
| Get a tensor4 from the registry by assigning it to a pointer. | |
| subroutine | relinquish_tensor4_single (this, index) |
| Relinquish the use of a tensor4 in the registry. | |
| subroutine | relinquish_tensor4_multiple (this, indices) |
| Relinquish the use of multiple tensor4s in the registry. | |
| subroutine | request_field_stored_dof (this, scratch_entry, index, clear) |
| Get a field from the registry by assigning it to a pointer. | |
| subroutine | request_field_free_dof (this, scratch_entry, index, dof, clear) |
| Get a field from the registry by assigning it to a pointer. | |
| subroutine | relinquish_field_single (this, index) |
| Relinquish the use of a field in the registry. | |
| subroutine | relinquish_field_multiple (this, indices) |
| Relinquish the use of multiple fields in the registry. | |
| subroutine | relinquish_single (this, index) |
| Relinquish the use of an object in the registry. | |
| subroutine | relinquish_multiple (this, indices) |
| Relinquish the use of multiple objects in the registry. | |
| subroutine | relinquish_type (this, index, type) |
| Relinquish a single index based on a specified type. | |
| subroutine | expand (this) |
| Expand the registry by expansion_size. | |
Variables | |
| type(scratch_registry_t), target, public | neko_scratch_registry |
| Global scratch registry. | |
|
private |
Definition at line 968 of file scratch_registry.f90.
|
private |
Definition at line 346 of file scratch_registry.f90.
|
private |
Definition at line 354 of file scratch_registry.f90.


|
private |
Definition at line 308 of file scratch_registry.f90.
|
private |
Definition at line 318 of file scratch_registry.f90.
Definition at line 332 of file scratch_registry.f90.
|
private |
| indices | The indices of the device_arrays to free |
Definition at line 502 of file scratch_registry.f90.

|
private |
| index | The index of the device_array to free |
Definition at line 493 of file scratch_registry.f90.

|
private |
| indices | The indices of the fields to free |
Definition at line 907 of file scratch_registry.f90.

|
private |
| index | The index of the field to free |
Definition at line 898 of file scratch_registry.f90.

|
private |
| indices | The indices of the host_arrays to free |
Definition at line 429 of file scratch_registry.f90.

|
private |
| index | The index of the host_array to free |
Definition at line 420 of file scratch_registry.f90.

|
private |
| indices | The indices of the matrices to free |
Definition at line 637 of file scratch_registry.f90.

|
private |
| index | The index of the matrix to free |
Definition at line 628 of file scratch_registry.f90.

|
private |
| indices | The indices of the objects to free |
Definition at line 934 of file scratch_registry.f90.

|
private |
| index | The index of the object to free |
Definition at line 922 of file scratch_registry.f90.

|
private |
| indices | The indices of the tensor3s to free |
Definition at line 712 of file scratch_registry.f90.

|
private |
| index | The index of the tensor3 to free |
Definition at line 703 of file scratch_registry.f90.

|
private |
| indices | The indices of the tensor4s to free |
Definition at line 788 of file scratch_registry.f90.

|
private |
| index | The index of the tensor4 to free |
Definition at line 779 of file scratch_registry.f90.

|
private |
| index | The index of the object to free |
| type | The type of the object to free |
Definition at line 950 of file scratch_registry.f90.
|
private |
| indices | The indices of the vectors to free |
Definition at line 569 of file scratch_registry.f90.

|
private |
| index | The index of the vector to free |
Definition at line 560 of file scratch_registry.f90.

|
private |
| scratch_entry | Pointer to the requested device array. |
| index | Index of the device array in the registry (for relinquishing later). |
| n | Size of the requested device array. |
| clear | If true, the device array values are set to zero upon request. |
Definition at line 445 of file scratch_registry.f90.


|
private |
| scratch_entry | Pointer to the requested field. |
| index | Index of the field in the registry (for relinquishing later). |
| dof | Dofmap to use for the field. |
| clear | If true, the field values are set to zero upon request. |
Definition at line 854 of file scratch_registry.f90.


|
private |
| scratch_entry | Pointer to the requested field. |
| index | Index of the field in the registry (for relinquishing later). |
| clear | If true, the field values are set to zero upon request. |
Definition at line 802 of file scratch_registry.f90.


|
private |
| scratch_entry | Pointer to the requested host array. |
| index | Index of the host array in the registry (for relinquishing later). |
| n | Size of the requested host_array. |
| clear | If true, the host_array values are set to zero upon request. |
Definition at line 372 of file scratch_registry.f90.


|
private |
| scratch_entry | Pointer to the requested matrix. |
| index | Index of the matrix in the registry (for relinquishing later). |
| nrows | Number of rows of the requested matrix. |
| ncols | Number of columns of the requested matrix. |
| clear | If true, the matrix values are set to zero upon request. |
Definition at line 585 of file scratch_registry.f90.


|
private |
| scratch_entry | Pointer to the requested tensor3. |
| index | Index of the tensor3 in the registry (for relinquishing later). |
| n | Number of rows of the requested tensor3. |
| m | Number of columns of the requested tensor3. |
| l | Number of layers of the requested tensor3. |
| clear | If true, the tensor3 values are set to zero upon request. |
Definition at line 654 of file scratch_registry.f90.


|
private |
| scratch_entry | Pointer to the requested tensor4. |
| index | Index of the tensor4 in the registry (for relinquishing later). |
| n | Number of rows of the requested tensor4. |
| scratch_entry | Number of columns of the requested tensor4. |
| l | Number of layers of the requested tensor4. |
| k | Number of slices of the requested tensor4. |
| clear | If true, the tensor4 values are set to zero upon request. |
Definition at line 730 of file scratch_registry.f90.


|
private |
| scratch_entry | Pointer to the requested vector. |
| index | Index of the vector in the registry (for relinquishing later). |
| n | Size of the requested vector. |
| clear | If true, the vector values are set to zero upon request. |
Definition at line 517 of file scratch_registry.f90.


|
private |
Definition at line 250 of file scratch_registry.f90.
|
private |
| size | Initial size of the registry |
| expansion_size | Size to expand the registry by when needed |
| dof | Dofmap to associate with the scratch registry |
Definition at line 217 of file scratch_registry.f90.
|
private |
| dof | Dofmap to assign |
Definition at line 279 of file scratch_registry.f90.
|
private |
| expansion_size | New expansion size to assign. |
Definition at line 295 of file scratch_registry.f90.
| type(scratch_registry_t), target, public scratch_registry::neko_scratch_registry |
Definition at line 201 of file scratch_registry.f90.