Neko 1.99.9
A portable framework for high-order spectral element flow simulations
Loading...
Searching...
No Matches
scratch_registry::scratch_registry_t Type Reference

Scratch registry type. More...

Collaboration diagram for scratch_registry::scratch_registry_t:

Public Member Functions

procedure, pass(this) init (this, size, expansion_size, dof)
 Constructor.
 
procedure, pass(this) free (this)
 Destructor.
 
procedure, pass(this) set_dofmap (this, dof)
 Assign a dofmap to the scratch registry.
 
procedure, pass(this) set_expansion_size (this, expansion_size)
 Assign a new expansion size to the scratch registry.
 
procedure, pass(this) get_n_entries (this)
 Return the number of allocated entries in the registry.
 
procedure, pass(this) get_n_inuse (this)
 Return the number of entries currently in use.
 
procedure, pass(this) get_expansion_size (this)
 Return the expansion size of the registry.
 
procedure, pass(this) get_size (this)
 Return the current capacity of the registry (size of the entries array)
 
procedure, pass(this) get_inuse (this, index)
 Return the inuse status of a given index.
 
procedure, pass(this) request_host_array (this, scratch_entry, index, n, clear)
 Get a new scratch host array.
 
procedure, pass(this) relinquish_host_array_single (this, index)
 Relinquish the use of a host_array in the registry.
 
procedure, pass(this) relinquish_host_array_multiple (this, indices)
 Relinquish the use of multiple host_arrays in the registry.
 
generic relinquish_host_array (this, index)
 Free a host array for later reuse.
 
generic relinquish_host_array (this, indices)
 Free a host array for later reuse.
 
procedure, pass(this) request_device_array (this, scratch_entry, index, n, clear)
 Get a new scratch device array.
 
procedure, pass(this) relinquish_device_array_single (this, index)
 Relinquish the use of a device_array in the registry.
 
procedure, pass(this) relinquish_device_array_multiple (this, indices)
 Relinquish the use of multiple device_arrays in the registry.
 
generic relinquish_device_array (this, index)
 Free a device array for later reuse.
 
generic relinquish_device_array (this, indices)
 Free a device array for later reuse.
 
procedure, pass(this) request_vector (this, scratch_entry, index, n, clear)
 Get a new scratch vector.
 
procedure, pass(this) relinquish_vector_single (this, index)
 Relinquish the use of a vector in the registry.
 
procedure, pass(this) relinquish_vector_multiple (this, indices)
 Relinquish the use of multiple vectors in the registry.
 
generic relinquish_vector (this, index)
 Free a vector for later reuse.
 
generic relinquish_vector (this, indices)
 Free a vector for later reuse.
 
procedure, pass(this) request_matrix (this, scratch_entry, index, nrows, ncols, clear)
 Get a new scratch matrix.
 
procedure, pass(this) relinquish_matrix_single (this, index)
 Relinquish the use of a matrix in the registry.
 
procedure, pass(this) relinquish_matrix_multiple (this, indices)
 Relinquish the use of multiple matrices in the registry.
 
generic relinquish_matrix (this, index)
 Free a matrix for later reuse.
 
generic relinquish_matrix (this, indices)
 Free a matrix for later reuse.
 
procedure, pass(this) request_tensor3 (this, scratch_entry, index, n, m, l, clear)
 Get a new scratch tensor3.
 
procedure, pass(this) relinquish_tensor3_single (this, index)
 Relinquish the use of a tensor3 in the registry.
 
procedure, pass(this) relinquish_tensor3_multiple (this, indices)
 Relinquish the use of multiple tensor3s in the registry.
 
generic relinquish_tensor3 (this, index)
 Free a tensor3 for later reuse.
 
generic relinquish_tensor3 (this, indices)
 Free a tensor3 for later reuse.
 
procedure, pass(this) request_tensor4 (this, scratch_entry, index, n, m, l, k, clear)
 Get a new scratch tensor4.
 
procedure, pass(this) relinquish_tensor4_single (this, index)
 Relinquish the use of a tensor4 in the registry.
 
procedure, pass(this) relinquish_tensor4_multiple (this, indices)
 Relinquish the use of multiple tensor4s in the registry.
 
generic relinquish_tensor4 (this, index)
 Free a tensor4 for later reuse.
 
generic relinquish_tensor4 (this, indices)
 Free a tensor4 for later reuse.
 
procedure, pass(this) request_field_stored_dof (this, scratch_entry, index, clear)
 Get a new scratch field based on the stored dofmap.
 
procedure, pass(this) request_field_free_dof (this, scratch_entry, index, dof, clear)
 Get a new scratch field based on a provided dofmap.
 
procedure, pass(this) relinquish_field_single (this, index)
 Relinquish the use of a field in the registry.
 
procedure, pass(this) relinquish_field_multiple (this, indices)
 Relinquish the use of multiple fields in the registry.
 
generic request_field (this, scratch_entry, index, clear)
 Get a new scratch field.
 
generic request_field (this, scratch_entry, index, dof, clear)
 Get a new scratch field.
 
generic relinquish_field (this, index)
 Free a field for later reuse.
 
generic relinquish_field (this, indices)
 Free a field for later reuse.
 
generic request (this, scratch_entry, index, n, clear)
 Generic request procedure.
 
generic request (this, scratch_entry, index, n, clear)
 Generic request procedure.
 
generic request (this, scratch_entry, index, n, clear)
 Generic request procedure.
 
generic request (this, scratch_entry, index, nrows, ncols, clear)
 Generic request procedure.
 
generic request (this, scratch_entry, index, n, m, l, clear)
 Generic request procedure.
 
generic request (this, scratch_entry, index, n, m, l, k, clear)
 Generic request procedure.
 
generic request (this, scratch_entry, index, clear)
 Generic request procedure.
 
generic request (this, scratch_entry, index, dof, clear)
 Generic request procedure.
 
procedure, pass(this) relinquish_single (this, index)
 Generic relinquish procedure for single objects.
 
procedure, pass(this) relinquish_multiple (this, indices)
 Generic relinquish procedure for multiple objects.
 
generic relinquish (this, index)
 Generic relinquish procedure.
 
generic relinquish (this, indices)
 Generic relinquish procedure.
 

Private Member Functions

procedure, pass, private relinquish_type (this, index, type)
 Internal relinquish type procedure for single objects.
 
procedure, pass(this), private expand (this)
 Expand the registry by expansion_size.
 

Private Attributes

type(registry_entry_t), dimension(:), allocatable, private entries
 List of scratch objects.
 
logical, dimension(:), allocatable, private inuse
 Tracks which objects are in use.
 
integer, private n_entries = 0
 Number of allocated objects.
 
integer, private expansion_size = 10
 The size the objects array is increased by upon reallocation.
 
type(dofmap_t), pointer, private dof => null()
 Default dofmap to use for field requests.
 

Detailed Description

A registry for storing and requesting temporary objects.

This type is used to store temporary objects that can be requested and relinquished by the user. It is designed to be used in situations where a function is called frequently and temporary objects are needed, but creating and destroying them on each call would be inefficient. The scratch registry allows for the reuse of these objects, improving performance.

The registry is OpenMP thread-safe, allowing for concurrent access in parallel regions in the sense that each thread can request and relinquish objects independently.

Definition at line 73 of file scratch_registry.f90.

Member Function/Subroutine Documentation

◆ expand()

procedure, pass(this), private scratch_registry::scratch_registry_t::expand ( class(scratch_registry_t), intent(inout)  this)
private

Definition at line 196 of file scratch_registry.f90.

◆ free()

procedure, pass(this) scratch_registry::scratch_registry_t::free ( class(scratch_registry_t), intent(inout)  this)

Definition at line 92 of file scratch_registry.f90.

◆ get_expansion_size()

procedure, pass(this) scratch_registry::scratch_registry_t::get_expansion_size ( class(scratch_registry_t), intent(in)  this)

Definition at line 105 of file scratch_registry.f90.

◆ get_inuse()

procedure, pass(this) scratch_registry::scratch_registry_t::get_inuse ( class(scratch_registry_t), intent(in), target  this,
integer, intent(in)  index 
)

Definition at line 109 of file scratch_registry.f90.

◆ get_n_entries()

procedure, pass(this) scratch_registry::scratch_registry_t::get_n_entries ( class(scratch_registry_t), intent(in)  this)

Definition at line 101 of file scratch_registry.f90.

◆ get_n_inuse()

procedure, pass(this) scratch_registry::scratch_registry_t::get_n_inuse ( class(scratch_registry_t), intent(in)  this)

Definition at line 103 of file scratch_registry.f90.

◆ get_size()

procedure, pass(this) scratch_registry::scratch_registry_t::get_size ( class(scratch_registry_t), intent(in)  this)

Definition at line 107 of file scratch_registry.f90.

◆ init()

procedure, pass(this) scratch_registry::scratch_registry_t::init ( class(scratch_registry_t), intent(inout)  this,
integer, intent(in), optional  size,
integer, intent(in), optional  expansion_size,
type(dofmap_t), intent(in), optional, target  dof 
)
Parameters
sizeInitial size of the registry
expansion_sizeSize to expand the registry by when needed
dofDofmap to associate with the scratch registry
Note
If no DOF map is provided here, it must be set later using scratch_registry_t::set_dofmap before requesting fields without specifying a DOF map.

Definition at line 90 of file scratch_registry.f90.

◆ relinquish() [1/2]

generic scratch_registry::scratch_registry_t::relinquish ( class(scratch_registry_t), intent(inout)  this,
integer, intent(in)  index 
)
Parameters
indexThe index of the object to free

Definition at line 188 of file scratch_registry.f90.

Here is the call graph for this function:

◆ relinquish() [2/2]

generic scratch_registry::scratch_registry_t::relinquish ( class(scratch_registry_t), intent(inout)  this,
integer, dimension(:), intent(in)  indices 
)
Parameters
indicesThe indices of the objects to free

Definition at line 188 of file scratch_registry.f90.

◆ relinquish_device_array() [1/2]

generic scratch_registry::scratch_registry_t::relinquish_device_array ( class(scratch_registry_t), intent(inout)  this,
integer, intent(in)  index 
)
Parameters
indexThe index of the device_array to free

Definition at line 127 of file scratch_registry.f90.

Here is the call graph for this function:

◆ relinquish_device_array() [2/2]

generic scratch_registry::scratch_registry_t::relinquish_device_array ( class(scratch_registry_t), intent(inout)  this,
integer, dimension(:), intent(in)  indices 
)
Parameters
indicesThe indices of the device_arrays to free

Definition at line 127 of file scratch_registry.f90.

◆ relinquish_device_array_multiple()

procedure, pass(this) scratch_registry::scratch_registry_t::relinquish_device_array_multiple ( class(scratch_registry_t), intent(inout)  this,
integer, dimension(:), intent(in)  indices 
)
Parameters
indicesThe indices of the device_arrays to free

Definition at line 125 of file scratch_registry.f90.

◆ relinquish_device_array_single()

procedure, pass(this) scratch_registry::scratch_registry_t::relinquish_device_array_single ( class(scratch_registry_t), intent(inout)  this,
integer, intent(in)  index 
)
Parameters
indexThe index of the device_array to free

Definition at line 124 of file scratch_registry.f90.

◆ relinquish_field() [1/2]

generic scratch_registry::scratch_registry_t::relinquish_field ( class(scratch_registry_t), intent(inout)  this,
integer, intent(in)  index 
)
Parameters
indexThe index of the field to free

Definition at line 172 of file scratch_registry.f90.

Here is the call graph for this function:

◆ relinquish_field() [2/2]

generic scratch_registry::scratch_registry_t::relinquish_field ( class(scratch_registry_t), intent(inout)  this,
integer, dimension(:), intent(in)  indices 
)
Parameters
indicesThe indices of the fields to free

Definition at line 172 of file scratch_registry.f90.

◆ relinquish_field_multiple()

procedure, pass(this) scratch_registry::scratch_registry_t::relinquish_field_multiple ( class(scratch_registry_t), intent(inout)  this,
integer, dimension(:), intent(in)  indices 
)
Parameters
indicesThe indices of the fields to free

Definition at line 167 of file scratch_registry.f90.

◆ relinquish_field_single()

procedure, pass(this) scratch_registry::scratch_registry_t::relinquish_field_single ( class(scratch_registry_t), intent(inout)  this,
integer, intent(in)  index 
)
Parameters
indexThe index of the field to free

Definition at line 166 of file scratch_registry.f90.

◆ relinquish_host_array() [1/2]

generic scratch_registry::scratch_registry_t::relinquish_host_array ( class(scratch_registry_t), intent(inout)  this,
integer, intent(in)  index 
)
Parameters
indexThe index of the host_array to free

Definition at line 119 of file scratch_registry.f90.

Here is the call graph for this function:

◆ relinquish_host_array() [2/2]

generic scratch_registry::scratch_registry_t::relinquish_host_array ( class(scratch_registry_t), intent(inout)  this,
integer, dimension(:), intent(in)  indices 
)
Parameters
indicesThe indices of the host_arrays to free

Definition at line 119 of file scratch_registry.f90.

◆ relinquish_host_array_multiple()

procedure, pass(this) scratch_registry::scratch_registry_t::relinquish_host_array_multiple ( class(scratch_registry_t), intent(inout)  this,
integer, dimension(:), intent(in)  indices 
)
Parameters
indicesThe indices of the host_arrays to free

Definition at line 117 of file scratch_registry.f90.

◆ relinquish_host_array_single()

procedure, pass(this) scratch_registry::scratch_registry_t::relinquish_host_array_single ( class(scratch_registry_t), intent(inout)  this,
integer, intent(in)  index 
)
Parameters
indexThe index of the host_array to free

Definition at line 116 of file scratch_registry.f90.

◆ relinquish_matrix() [1/2]

generic scratch_registry::scratch_registry_t::relinquish_matrix ( class(scratch_registry_t), intent(inout)  this,
integer, intent(in)  index 
)
Parameters
indexThe index of the matrix to free

Definition at line 143 of file scratch_registry.f90.

Here is the call graph for this function:

◆ relinquish_matrix() [2/2]

generic scratch_registry::scratch_registry_t::relinquish_matrix ( class(scratch_registry_t), intent(inout)  this,
integer, dimension(:), intent(in)  indices 
)
Parameters
indicesThe indices of the matrices to free

Definition at line 143 of file scratch_registry.f90.

◆ relinquish_matrix_multiple()

procedure, pass(this) scratch_registry::scratch_registry_t::relinquish_matrix_multiple ( class(scratch_registry_t), intent(inout)  this,
integer, dimension(:), intent(in)  indices 
)
Parameters
indicesThe indices of the matrices to free

Definition at line 141 of file scratch_registry.f90.

◆ relinquish_matrix_single()

procedure, pass(this) scratch_registry::scratch_registry_t::relinquish_matrix_single ( class(scratch_registry_t), intent(inout)  this,
integer, intent(in)  index 
)
Parameters
indexThe index of the matrix to free

Definition at line 140 of file scratch_registry.f90.

◆ relinquish_multiple()

procedure, pass(this) scratch_registry::scratch_registry_t::relinquish_multiple ( class(scratch_registry_t), intent(inout)  this,
integer, dimension(:), intent(in)  indices 
)
Parameters
indicesThe indices of the objects to free

Definition at line 186 of file scratch_registry.f90.

◆ relinquish_single()

procedure, pass(this) scratch_registry::scratch_registry_t::relinquish_single ( class(scratch_registry_t), intent(inout)  this,
integer, intent(in)  index 
)
Parameters
indexThe index of the object to free

Definition at line 184 of file scratch_registry.f90.

◆ relinquish_tensor3() [1/2]

generic scratch_registry::scratch_registry_t::relinquish_tensor3 ( class(scratch_registry_t), intent(inout)  this,
integer, intent(in)  index 
)
Parameters
indexThe index of the tensor3 to free

Definition at line 151 of file scratch_registry.f90.

Here is the call graph for this function:

◆ relinquish_tensor3() [2/2]

generic scratch_registry::scratch_registry_t::relinquish_tensor3 ( class(scratch_registry_t), intent(inout)  this,
integer, dimension(:), intent(in)  indices 
)
Parameters
indicesThe indices of the tensor3s to free

Definition at line 151 of file scratch_registry.f90.

◆ relinquish_tensor3_multiple()

procedure, pass(this) scratch_registry::scratch_registry_t::relinquish_tensor3_multiple ( class(scratch_registry_t), intent(inout)  this,
integer, dimension(:), intent(in)  indices 
)
Parameters
indicesThe indices of the tensor3s to free

Definition at line 149 of file scratch_registry.f90.

◆ relinquish_tensor3_single()

procedure, pass(this) scratch_registry::scratch_registry_t::relinquish_tensor3_single ( class(scratch_registry_t), intent(inout)  this,
integer, intent(in)  index 
)
Parameters
indexThe index of the tensor3 to free

Definition at line 148 of file scratch_registry.f90.

◆ relinquish_tensor4() [1/2]

generic scratch_registry::scratch_registry_t::relinquish_tensor4 ( class(scratch_registry_t), intent(inout)  this,
integer, intent(in)  index 
)
Parameters
indexThe index of the tensor4 to free

Definition at line 159 of file scratch_registry.f90.

Here is the call graph for this function:

◆ relinquish_tensor4() [2/2]

generic scratch_registry::scratch_registry_t::relinquish_tensor4 ( class(scratch_registry_t), intent(inout)  this,
integer, dimension(:), intent(in)  indices 
)
Parameters
indicesThe indices of the tensor4s to free

Definition at line 159 of file scratch_registry.f90.

◆ relinquish_tensor4_multiple()

procedure, pass(this) scratch_registry::scratch_registry_t::relinquish_tensor4_multiple ( class(scratch_registry_t), intent(inout)  this,
integer, dimension(:), intent(in)  indices 
)
Parameters
indicesThe indices of the tensor4s to free

Definition at line 157 of file scratch_registry.f90.

◆ relinquish_tensor4_single()

procedure, pass(this) scratch_registry::scratch_registry_t::relinquish_tensor4_single ( class(scratch_registry_t), intent(inout)  this,
integer, intent(in)  index 
)
Parameters
indexThe index of the tensor4 to free

Definition at line 156 of file scratch_registry.f90.

◆ relinquish_type()

procedure, pass, private scratch_registry::scratch_registry_t::relinquish_type ( class(scratch_registry_t), intent(inout)  this,
integer, intent(in)  index,
character(len=*), intent(in)  type 
)
private
Parameters
indexThe index of the object to free
typeThe type of the object to free

Definition at line 194 of file scratch_registry.f90.

◆ relinquish_vector() [1/2]

generic scratch_registry::scratch_registry_t::relinquish_vector ( class(scratch_registry_t), intent(inout)  this,
integer, intent(in)  index 
)
Parameters
indexThe index of the vector to free

Definition at line 135 of file scratch_registry.f90.

Here is the call graph for this function:

◆ relinquish_vector() [2/2]

generic scratch_registry::scratch_registry_t::relinquish_vector ( class(scratch_registry_t), intent(inout)  this,
integer, dimension(:), intent(in)  indices 
)
Parameters
indicesThe indices of the vectors to free

Definition at line 135 of file scratch_registry.f90.

◆ relinquish_vector_multiple()

procedure, pass(this) scratch_registry::scratch_registry_t::relinquish_vector_multiple ( class(scratch_registry_t), intent(inout)  this,
integer, dimension(:), intent(in)  indices 
)
Parameters
indicesThe indices of the vectors to free

Definition at line 133 of file scratch_registry.f90.

◆ relinquish_vector_single()

procedure, pass(this) scratch_registry::scratch_registry_t::relinquish_vector_single ( class(scratch_registry_t), intent(inout)  this,
integer, intent(in)  index 
)
Parameters
indexThe index of the vector to free

Definition at line 132 of file scratch_registry.f90.

◆ request() [1/8]

generic scratch_registry::scratch_registry_t::request ( class(scratch_registry_t), intent(inout), target  this,
type(field_t), intent(inout), pointer  scratch_entry,
integer, intent(inout)  index,
logical, intent(in)  clear 
)
Parameters
scratch_entryPointer to the requested field.
indexIndex of the field in the registry (for relinquishing later).
clearIf true, the field values are set to zero upon request.

Definition at line 179 of file scratch_registry.f90.

◆ request() [2/8]

generic scratch_registry::scratch_registry_t::request ( class(scratch_registry_t), intent(inout), target  this,
type(field_t), intent(inout), pointer  scratch_entry,
integer, intent(inout)  index,
type(dofmap_t), intent(in), target  dof,
logical, intent(in)  clear 
)
Parameters
scratch_entryPointer to the requested field.
indexIndex of the field in the registry (for relinquishing later).
dofDofmap to use for the field.
clearIf true, the field values are set to zero upon request.

Definition at line 179 of file scratch_registry.f90.

◆ request() [3/8]

generic scratch_registry::scratch_registry_t::request ( class(scratch_registry_t), intent(inout), target  this,
real(kind=rp), dimension(:), intent(inout), pointer  scratch_entry,
integer, intent(inout)  index,
integer, intent(in)  n,
logical, intent(in)  clear 
)
Parameters
scratch_entryPointer to the requested host array.
indexIndex of the host array in the registry (for relinquishing later).
nSize of the requested host_array.
clearIf true, the host_array values are set to zero upon request.

Definition at line 179 of file scratch_registry.f90.

Here is the call graph for this function:

◆ request() [4/8]

generic scratch_registry::scratch_registry_t::request ( class(scratch_registry_t), intent(inout), target  this,
type(c_ptr), intent(inout)  scratch_entry,
integer, intent(inout)  index,
integer, intent(in)  n,
logical, intent(in)  clear 
)
Parameters
scratch_entryPointer to the requested device array.
indexIndex of the device array in the registry (for relinquishing later).
nSize of the requested device array.
clearIf true, the device array values are set to zero upon request.

Definition at line 179 of file scratch_registry.f90.

◆ request() [5/8]

generic scratch_registry::scratch_registry_t::request ( class(scratch_registry_t), intent(inout), target  this,
type(vector_t), intent(inout), pointer  scratch_entry,
integer, intent(inout)  index,
integer, intent(in)  n,
logical, intent(in)  clear 
)
Parameters
scratch_entryPointer to the requested vector.
indexIndex of the vector in the registry (for relinquishing later).
nSize of the requested vector.
clearIf true, the vector values are set to zero upon request.

Definition at line 179 of file scratch_registry.f90.

◆ request() [6/8]

generic scratch_registry::scratch_registry_t::request ( class(scratch_registry_t), intent(inout), target  this,
type(tensor3_t), intent(inout), pointer  scratch_entry,
integer, intent(inout)  index,
integer, intent(in)  n,
integer, intent(in)  m,
integer, intent(in)  l,
logical, intent(in)  clear 
)
Parameters
scratch_entryPointer to the requested tensor3.
indexIndex of the tensor3 in the registry (for relinquishing later).
nNumber of rows of the requested tensor3.
mNumber of columns of the requested tensor3.
lNumber of layers of the requested tensor3.
clearIf true, the tensor3 values are set to zero upon request.

Definition at line 179 of file scratch_registry.f90.

◆ request() [7/8]

generic scratch_registry::scratch_registry_t::request ( class(scratch_registry_t), intent(inout), target  this,
type(tensor4_t), intent(inout), pointer  scratch_entry,
integer, intent(inout)  index,
integer, intent(in)  n,
integer, intent(in)  m,
integer, intent(in)  l,
integer, intent(in)  k,
logical, intent(in)  clear 
)
Parameters
scratch_entryPointer to the requested tensor4.
indexIndex of the tensor4 in the registry (for relinquishing later).
nNumber of rows of the requested tensor4.
scratch_entryNumber of columns of the requested tensor4.
lNumber of layers of the requested tensor4.
kNumber of slices of the requested tensor4.
clearIf true, the tensor4 values are set to zero upon request.

Definition at line 179 of file scratch_registry.f90.

◆ request() [8/8]

generic scratch_registry::scratch_registry_t::request ( class(scratch_registry_t), intent(inout), target  this,
type(matrix_t), intent(inout), pointer  scratch_entry,
integer, intent(inout)  index,
integer, intent(in)  nrows,
integer, intent(in)  ncols,
logical, intent(in)  clear 
)
Parameters
scratch_entryPointer to the requested matrix.
indexIndex of the matrix in the registry (for relinquishing later).
nrowsNumber of rows of the requested matrix.
ncolsNumber of columns of the requested matrix.
clearIf true, the matrix values are set to zero upon request.

Definition at line 179 of file scratch_registry.f90.

◆ request_device_array()

procedure, pass(this) scratch_registry::scratch_registry_t::request_device_array ( class(scratch_registry_t), intent(inout), target  this,
type(c_ptr), intent(inout)  scratch_entry,
integer, intent(inout)  index,
integer, intent(in)  n,
logical, intent(in)  clear 
)
Parameters
scratch_entryPointer to the requested device array.
indexIndex of the device array in the registry (for relinquishing later).
nSize of the requested device array.
clearIf true, the device array values are set to zero upon request.

Definition at line 123 of file scratch_registry.f90.

◆ request_field() [1/2]

generic scratch_registry::scratch_registry_t::request_field ( class(scratch_registry_t), intent(inout), target  this,
type(field_t), intent(inout), pointer  scratch_entry,
integer, intent(inout)  index,
logical, intent(in)  clear 
)
Parameters
scratch_entryPointer to the requested field.
indexIndex of the field in the registry (for relinquishing later).
clearIf true, the field values are set to zero upon request.

Definition at line 169 of file scratch_registry.f90.

Here is the call graph for this function:

◆ request_field() [2/2]

generic scratch_registry::scratch_registry_t::request_field ( class(scratch_registry_t), intent(inout), target  this,
type(field_t), intent(inout), pointer  scratch_entry,
integer, intent(inout)  index,
type(dofmap_t), intent(in), target  dof,
logical, intent(in)  clear 
)
Parameters
scratch_entryPointer to the requested field.
indexIndex of the field in the registry (for relinquishing later).
dofDofmap to use for the field.
clearIf true, the field values are set to zero upon request.

Definition at line 169 of file scratch_registry.f90.

◆ request_field_free_dof()

procedure, pass(this) scratch_registry::scratch_registry_t::request_field_free_dof ( class(scratch_registry_t), intent(inout), target  this,
type(field_t), intent(inout), pointer  scratch_entry,
integer, intent(inout)  index,
type(dofmap_t), intent(in), target  dof,
logical, intent(in)  clear 
)
Parameters
scratch_entryPointer to the requested field.
indexIndex of the field in the registry (for relinquishing later).
dofDofmap to use for the field.
clearIf true, the field values are set to zero upon request.

Definition at line 165 of file scratch_registry.f90.

◆ request_field_stored_dof()

procedure, pass(this) scratch_registry::scratch_registry_t::request_field_stored_dof ( class(scratch_registry_t), intent(inout), target  this,
type(field_t), intent(inout), pointer  scratch_entry,
integer, intent(inout)  index,
logical, intent(in)  clear 
)
Parameters
scratch_entryPointer to the requested field.
indexIndex of the field in the registry (for relinquishing later).
clearIf true, the field values are set to zero upon request.

Definition at line 163 of file scratch_registry.f90.

◆ request_host_array()

procedure, pass(this) scratch_registry::scratch_registry_t::request_host_array ( class(scratch_registry_t), intent(inout), target  this,
real(kind=rp), dimension(:), intent(inout), pointer  scratch_entry,
integer, intent(inout)  index,
integer, intent(in)  n,
logical, intent(in)  clear 
)
Parameters
scratch_entryPointer to the requested host array.
indexIndex of the host array in the registry (for relinquishing later).
nSize of the requested host_array.
clearIf true, the host_array values are set to zero upon request.

Definition at line 115 of file scratch_registry.f90.

◆ request_matrix()

procedure, pass(this) scratch_registry::scratch_registry_t::request_matrix ( class(scratch_registry_t), intent(inout), target  this,
type(matrix_t), intent(inout), pointer  scratch_entry,
integer, intent(inout)  index,
integer, intent(in)  nrows,
integer, intent(in)  ncols,
logical, intent(in)  clear 
)
Parameters
scratch_entryPointer to the requested matrix.
indexIndex of the matrix in the registry (for relinquishing later).
nrowsNumber of rows of the requested matrix.
ncolsNumber of columns of the requested matrix.
clearIf true, the matrix values are set to zero upon request.

Definition at line 139 of file scratch_registry.f90.

◆ request_tensor3()

procedure, pass(this) scratch_registry::scratch_registry_t::request_tensor3 ( class(scratch_registry_t), intent(inout), target  this,
type(tensor3_t), intent(inout), pointer  scratch_entry,
integer, intent(inout)  index,
integer, intent(in)  n,
integer, intent(in)  m,
integer, intent(in)  l,
logical, intent(in)  clear 
)
Parameters
scratch_entryPointer to the requested tensor3.
indexIndex of the tensor3 in the registry (for relinquishing later).
nNumber of rows of the requested tensor3.
mNumber of columns of the requested tensor3.
lNumber of layers of the requested tensor3.
clearIf true, the tensor3 values are set to zero upon request.

Definition at line 147 of file scratch_registry.f90.

◆ request_tensor4()

procedure, pass(this) scratch_registry::scratch_registry_t::request_tensor4 ( class(scratch_registry_t), intent(inout), target  this,
type(tensor4_t), intent(inout), pointer  scratch_entry,
integer, intent(inout)  index,
integer, intent(in)  n,
integer, intent(in)  m,
integer, intent(in)  l,
integer, intent(in)  k,
logical, intent(in)  clear 
)
Parameters
scratch_entryPointer to the requested tensor4.
indexIndex of the tensor4 in the registry (for relinquishing later).
nNumber of rows of the requested tensor4.
scratch_entryNumber of columns of the requested tensor4.
lNumber of layers of the requested tensor4.
kNumber of slices of the requested tensor4.
clearIf true, the tensor4 values are set to zero upon request.

Definition at line 155 of file scratch_registry.f90.

◆ request_vector()

procedure, pass(this) scratch_registry::scratch_registry_t::request_vector ( class(scratch_registry_t), intent(inout), target  this,
type(vector_t), intent(inout), pointer  scratch_entry,
integer, intent(inout)  index,
integer, intent(in)  n,
logical, intent(in)  clear 
)
Parameters
scratch_entryPointer to the requested vector.
indexIndex of the vector in the registry (for relinquishing later).
nSize of the requested vector.
clearIf true, the vector values are set to zero upon request.

Definition at line 131 of file scratch_registry.f90.

◆ set_dofmap()

procedure, pass(this) scratch_registry::scratch_registry_t::set_dofmap ( class(scratch_registry_t), intent(inout)  this,
type(dofmap_t), intent(in), target  dof 
)
Parameters
dofDofmap to assign
Note
First check if a dofmap is already assigned, and throw an error, unless it's the same dofmap.

Definition at line 95 of file scratch_registry.f90.

◆ set_expansion_size()

procedure, pass(this) scratch_registry::scratch_registry_t::set_expansion_size ( class(scratch_registry_t), intent(inout)  this,
integer, intent(in)  expansion_size 
)
Parameters
expansion_sizeNew expansion size to assign.

Definition at line 97 of file scratch_registry.f90.

Member Data Documentation

◆ dof

type(dofmap_t), pointer, private scratch_registry::scratch_registry_t::dof => null()
private

Definition at line 83 of file scratch_registry.f90.

◆ entries

type(registry_entry_t), dimension(:), allocatable, private scratch_registry::scratch_registry_t::entries
private

Definition at line 75 of file scratch_registry.f90.

◆ expansion_size

integer, private scratch_registry::scratch_registry_t::expansion_size = 10
private

Definition at line 81 of file scratch_registry.f90.

◆ inuse

logical, dimension(:), allocatable, private scratch_registry::scratch_registry_t::inuse
private

Definition at line 77 of file scratch_registry.f90.

◆ n_entries

integer, private scratch_registry::scratch_registry_t::n_entries = 0
private

Definition at line 79 of file scratch_registry.f90.


The documentation for this type was generated from the following file: