![]() |
Octopus
|
Data Types | |
type | centroids_t |
Encapsulate centroid points and their indexing across a domain-decomposed mesh. More... | |
Functions/Subroutines | |
subroutine | centroids_init (this, mesh, positions, check_duplicates) |
Initialise a centroids_t instance. More... | |
pure integer function | centroids_get_n_centroids (this) |
Number of centroids in local domain. More... | |
pure integer function | centroids_get_n_centroids_global (this) |
Total number of centroids in system. More... | |
pure integer(int64) function | centroids_global_centroid_to_global_mesh_index (this, ic) |
Given centroid index ic , return the global mesh index ipg . More... | |
pure integer(int64) function, dimension(:), allocatable | centroids_global_centroid_to_global_mesh_indices (this) |
Return global mesh indices for all centroids in this domain. More... | |
pure integer function | centroids_get_local_mesh_index (this, ic) |
Get the mesh index ip of centroid ic in this domain. More... | |
pure integer function, dimension(:), allocatable | centroids_get_local_mesh_indices (this) |
Return mesh indices ip for all centroids in this domain. More... | |
pure integer function | centroids_local_index_to_global_index (this, ic) |
Get the global centroid index, given centroid ic this domain. More... | |
pure integer function, dimension(:), allocatable | centroids_local_index_to_global_indices (this) |
Return global centroid indices for all centroids in this domain. More... | |
pure real(real64) function, dimension(this%ndim) | centroids_get_local_position (this, mesh, ic) |
Get the position of the centroid ic . More... | |
pure real(real64) function, dimension(:, :), allocatable | centroids_get_all_positions (this) |
Return a copy of all centroid positions. More... | |
subroutine | centroids_output_all_indices (this, fname) |
Output all centroid indices, across all domains. More... | |
subroutine | centroids_finalize (this) |
Finalize a centroids instance. More... | |
subroutine | exact_centroids_init_index_maps (this, mesh, check_duplicates) |
Initialise index maps with centroid points that are commensurate with the grid. More... | |
subroutine | remove_duplicates_int64 (indices) |
Remove duplicates from an array of integers. More... | |
|
private |
Initialise a centroids_t instance.
Centroid positions must correspond to grid points.
[out] | this | Centroid instance |
[in] | mesh | Mesh or grid instance |
[in] | positions | All centroid cartesian positions |
[in] | check_duplicates | Check for duplicate grid indices, |
Definition at line 191 of file centroids.F90.
|
private |
Number of centroids in local domain.
Definition at line 211 of file centroids.F90.
|
private |
Total number of centroids in system.
Definition at line 221 of file centroids.F90.
|
private |
Given centroid index ic
, return the global mesh index ipg
.
icg_to_ipg
, but this would require mesh to be an argument of the function. Definition at line 240 of file centroids.F90.
|
private |
Return global mesh indices for all centroids in this domain.
Definition at line 253 of file centroids.F90.
|
private |
Get the mesh index ip
of centroid ic
in this domain.
Definition at line 269 of file centroids.F90.
|
private |
Return mesh indices ip
for all centroids in this domain.
Definition at line 280 of file centroids.F90.
|
private |
Get the global centroid index, given centroid ic
this domain.
Definition at line 290 of file centroids.F90.
|
private |
Return global centroid indices for all centroids in this domain.
Definition at line 301 of file centroids.F90.
|
private |
Get the position of the centroid ic
.
Definition at line 311 of file centroids.F90.
|
private |
Return a copy of all centroid positions.
Definition at line 324 of file centroids.F90.
|
private |
Output all centroid indices, across all domains.
[in] | this | Centroid instance |
[in] | fname | File name |
Definition at line 335 of file centroids.F90.
|
private |
Finalize a centroids instance.
[in,out] | this | Centroid instance |
Definition at line 358 of file centroids.F90.
|
private |
Initialise index maps with centroid points that are commensurate with the grid.
This routine breaks single responsibility, but it makes sense to reuse the the various indices as they are computed. This routine computes:
ipg
process
icg
to centroid index in domain process
ic
in domain process
, to mesh index ip
in the same domain [in] | mesh | Mesh or grid instance |
[in] | check_duplicates | Check for duplicate grid indices, |
Definition at line 379 of file centroids.F90.
|
private |
Remove duplicates from an array of integers.
[in,out] | indices | In: Set of indices |
Definition at line 453 of file centroids.F90.