![]() |
Octopus
|
Data Types | |
| interface | ccube_to_mesh |
| interface | cmesh_to_cube |
| type | cube_function_t |
| interface | dcube_to_mesh |
| interface | dmesh_to_cube |
| interface | scube_to_mesh |
| interface | smesh_to_cube |
| interface | zcube_to_mesh |
| interface | zmesh_to_cube |
Functions/Subroutines | |
| subroutine, public | cube_function_alloc_fs (cube, cf, force_alloc) |
| Allocates the local part of the Fourier space grid on the cube function. More... | |
| subroutine, public | cube_function_free_fs (cube, cf) |
| Deallocates the Fourier space buffer of the cube function. More... | |
| subroutine, public | cube_function_alloc_fs_single (cube, cf) |
| Allocate the single-precision (complex32) Fourier-space buffer cfcFS. Host, serial, aligned FFTW only (single-precision Poisson path). More... | |
| subroutine, public | cube_function_free_fs_single (cube, cf) |
| pure logical function, public | cube_map_is_trivial (cube) |
| True when the cube_map describes a trivial mesh->cube identity: the mesh is X-fastest with one full-X-row segment per (iy, iz) pair, and the cube has the same dimensions as the mesh. The mapping then degenerates to a flat memcopy. Holds for 3D periodic systems with MeshOrder = order_cube and no domain decomposition. More... | |
| subroutine, public | dcube_function_alloc_rs (cube, cf, in_device, force_alloc) |
| Allocates locally the real space grid, if PFFT library is not used. Otherwise, it assigns the PFFT real space grid to the cube real space grid, via pointer. More... | |
| subroutine, public | dcube_function_free_rs (cube, cf) |
| Deallocates the real space grid. More... | |
| subroutine, public | dcube_function_allgather (cube, cf, cf_local, order, gatherfs) |
| The next subroutines (domain-parallel mesh<->cube and submesh<->cube) are double-precision only; the single-precision exchange path does not use them. More... | |
| subroutine, public | dcube_function_rs2fs (cube, cf) |
| Fourier transform a cube function from real space to Fourier space. More... | |
| subroutine, public | dcube_function_fs2rs (cube, cf) |
| Fourier transform a cube function from Fourier space to real space. More... | |
| subroutine | dcube_map_ring_exchange (mpi_grp, send_mf, n_send_mf, recv_mf, n_recv_mf, send_map, n_send_map, recv_map, n_recv_map, send_proc, recv_proc) |
| One ring step of the domain-parallel mesh-to-cube exchange. More... | |
| subroutine | dmesh_to_cube_1 (mesh, mf, cube, cf) |
| Convert a single function from the mesh to the cube. More... | |
| subroutine | dmesh_to_cube_2 (mesh, mf, cube, cf, mf_buffer) |
| Convert a set of functions from the mesh to the cube. More... | |
| subroutine | dcube_to_mesh_1 (cube, cf, mesh, mf) |
| Convert a single function from the cube to the mesh. More... | |
| subroutine | dcube_to_mesh_2 (cube, cf, mesh, mf, mf_buffer) |
| Convert a set of functions from the cube to the mesh. More... | |
| subroutine, public | dmesh_to_cube_parallel (mesh, mf, cube, cf, map) |
| The next subroutines (domain-parallel mesh<->cube and submesh<->cube) are double-precision only; the single-precision exchange path does not use them. More... | |
| subroutine, public | dcube_to_mesh_parallel (cube, cf, mesh, mf, map) |
| real(real64) function, public | dcube_function_surface_average (cube, cf) |
| This function calculates the surface average of any function. More... | |
| subroutine, public | dsubmesh_to_cube (sm, mf, cube, cf) |
| The next two subroutines convert a function between a submesh and the cube. More... | |
| subroutine, public | dcube_to_submesh (cube, cf, sm, mf) |
| subroutine, public | zcube_function_alloc_rs (cube, cf, in_device, force_alloc) |
| Allocates locally the real space grid, if PFFT library is not used. Otherwise, it assigns the PFFT real space grid to the cube real space grid, via pointer. More... | |
| subroutine, public | zcube_function_free_rs (cube, cf) |
| Deallocates the real space grid. More... | |
| subroutine, public | zcube_function_allgather (cube, cf, cf_local, order, gatherfs) |
| The next subroutines (domain-parallel mesh<->cube and submesh<->cube) are double-precision only; the single-precision exchange path does not use them. More... | |
| subroutine, public | zcube_function_rs2fs (cube, cf) |
| Fourier transform a cube function from real space to Fourier space. More... | |
| subroutine, public | zcube_function_fs2rs (cube, cf) |
| Fourier transform a cube function from Fourier space to real space. More... | |
| subroutine | zcube_map_ring_exchange (mpi_grp, send_mf, n_send_mf, recv_mf, n_recv_mf, send_map, n_send_map, recv_map, n_recv_map, send_proc, recv_proc) |
| One ring step of the domain-parallel mesh-to-cube exchange. More... | |
| subroutine | zmesh_to_cube_1 (mesh, mf, cube, cf) |
| Convert a single function from the mesh to the cube. More... | |
| subroutine | zmesh_to_cube_2 (mesh, mf, cube, cf, mf_buffer) |
| Convert a set of functions from the mesh to the cube. More... | |
| subroutine | zcube_to_mesh_1 (cube, cf, mesh, mf) |
| Convert a single function from the cube to the mesh. More... | |
| subroutine | zcube_to_mesh_2 (cube, cf, mesh, mf, mf_buffer) |
| Convert a set of functions from the cube to the mesh. More... | |
| subroutine, public | zmesh_to_cube_parallel (mesh, mf, cube, cf, map) |
| The next subroutines (domain-parallel mesh<->cube and submesh<->cube) are double-precision only; the single-precision exchange path does not use them. More... | |
| subroutine, public | zcube_to_mesh_parallel (cube, cf, mesh, mf, map) |
| complex(real64) function, public | zcube_function_surface_average (cube, cf) |
| This function calculates the surface average of any function. More... | |
| subroutine, public | zsubmesh_to_cube (sm, mf, cube, cf) |
| The next two subroutines convert a function between a submesh and the cube. More... | |
| subroutine, public | zcube_to_submesh (cube, cf, sm, mf) |
| subroutine, public | scube_function_alloc_rs (cube, cf, in_device, force_alloc) |
| Allocates locally the real space grid, if PFFT library is not used. Otherwise, it assigns the PFFT real space grid to the cube real space grid, via pointer. More... | |
| subroutine, public | scube_function_free_rs (cube, cf) |
| Deallocates the real space grid. More... | |
| subroutine, public | scube_function_rs2fs (cube, cf) |
| The next subroutines (domain-parallel mesh<->cube and submesh<->cube) are double-precision only; the single-precision exchange path does not use them. More... | |
| subroutine, public | scube_function_fs2rs (cube, cf) |
| Fourier transform a cube function from Fourier space to real space. More... | |
| subroutine | scube_map_ring_exchange (mpi_grp, send_mf, n_send_mf, recv_mf, n_recv_mf, send_map, n_send_map, recv_map, n_recv_map, send_proc, recv_proc) |
| One ring step of the domain-parallel mesh-to-cube exchange. More... | |
| subroutine | smesh_to_cube_1 (mesh, mf, cube, cf) |
| Convert a single function from the mesh to the cube. More... | |
| subroutine | smesh_to_cube_2 (mesh, mf, cube, cf, mf_buffer) |
| Convert a set of functions from the mesh to the cube. More... | |
| subroutine | scube_to_mesh_1 (cube, cf, mesh, mf) |
| Convert a single function from the cube to the mesh. More... | |
| subroutine | scube_to_mesh_2 (cube, cf, mesh, mf, mf_buffer) |
| Convert a set of functions from the cube to the mesh. More... | |
| subroutine, public | ccube_function_alloc_rs (cube, cf, in_device, force_alloc) |
| The next subroutines (domain-parallel mesh<->cube and submesh<->cube) are double-precision only; the single-precision exchange path does not use them. More... | |
| subroutine, public | ccube_function_free_rs (cube, cf) |
| Deallocates the real space grid. More... | |
| subroutine, public | ccube_function_rs2fs (cube, cf) |
| The next subroutines (domain-parallel mesh<->cube and submesh<->cube) are double-precision only; the single-precision exchange path does not use them. More... | |
| subroutine, public | ccube_function_fs2rs (cube, cf) |
| Fourier transform a cube function from Fourier space to real space. More... | |
| subroutine | ccube_map_ring_exchange (mpi_grp, send_mf, n_send_mf, recv_mf, n_recv_mf, send_map, n_send_map, recv_map, n_recv_map, send_proc, recv_proc) |
| One ring step of the domain-parallel mesh-to-cube exchange. More... | |
| subroutine | cmesh_to_cube_1 (mesh, mf, cube, cf) |
| Convert a single function from the mesh to the cube. More... | |
| subroutine | cmesh_to_cube_2 (mesh, mf, cube, cf, mf_buffer) |
| Convert a set of functions from the mesh to the cube. More... | |
| subroutine | ccube_to_mesh_1 (cube, cf, mesh, mf) |
| Convert a single function from the cube to the mesh. More... | |
| subroutine | ccube_to_mesh_2 (cube, cf, mesh, mf, mf_buffer) |
| Convert a set of functions from the cube to the mesh. More... | |
| subroutine, public cube_function_oct_m::cube_function_alloc_fs | ( | type(cube_t), intent(in), target | cube, |
| type(cube_function_t), intent(inout) | cf, | ||
| logical, intent(in), optional | force_alloc | ||
| ) |
Allocates the local part of the Fourier space grid on the cube function.
If PFFT is used, it assigns the Fourier space grid to the cube Fourier space grid, via a pointer.
Definition at line 216 of file cube_function.F90.
| subroutine, public cube_function_oct_m::cube_function_free_fs | ( | type(cube_t), intent(in) | cube, |
| type(cube_function_t), intent(inout) | cf | ||
| ) |
Deallocates the Fourier space buffer of the cube function.
Definition at line 275 of file cube_function.F90.
| subroutine, public cube_function_oct_m::cube_function_alloc_fs_single | ( | type(cube_t), intent(in), target | cube, |
| type(cube_function_t), intent(inout) | cf | ||
| ) |
Allocate the single-precision (complex32) Fourier-space buffer cfcFS. Host, serial, aligned FFTW only (single-precision Poisson path).
Definition at line 316 of file cube_function.F90.
| subroutine, public cube_function_oct_m::cube_function_free_fs_single | ( | type(cube_t), intent(in) | cube, |
| type(cube_function_t), intent(inout) | cf | ||
| ) |
Definition at line 342 of file cube_function.F90.
| pure logical function, public cube_function_oct_m::cube_map_is_trivial | ( | type(cube_t), intent(in) | cube | ) |
True when the cube_map describes a trivial mesh->cube identity: the mesh is X-fastest with one full-X-row segment per (iy, iz) pair, and the cube has the same dimensions as the mesh. The mapping then degenerates to a flat memcopy. Holds for 3D periodic systems with MeshOrder = order_cube and no domain decomposition.
Definition at line 366 of file cube_function.F90.
| subroutine, public cube_function_oct_m::dcube_function_alloc_rs | ( | type(cube_t), intent(in), target | cube, |
| type(cube_function_t), intent(inout) | cf, | ||
| logical, intent(in), optional | in_device, | ||
| logical, intent(in), optional | force_alloc | ||
| ) |
Allocates locally the real space grid, if PFFT library is not used. Otherwise, it assigns the PFFT real space grid to the cube real space grid, via pointer.
Definition at line 454 of file cube_function.F90.
| subroutine, public cube_function_oct_m::dcube_function_free_rs | ( | type(cube_t), intent(in) | cube, |
| type(cube_function_t), intent(inout) | cf | ||
| ) |
Deallocates the real space grid.
Definition at line 509 of file cube_function.F90.
| subroutine, public cube_function_oct_m::dcube_function_allgather | ( | type(cube_t), intent(in) | cube, |
| real(real64), dimension(:,:,:), intent(out) | cf, | ||
| real(real64), dimension(:,:,:), intent(in), contiguous | cf_local, | ||
| integer, dimension(3), intent(in), optional | order, | ||
| logical, intent(in), optional | gatherfs | ||
| ) |
The next subroutines (domain-parallel mesh<->cube and submesh<->cube) are double-precision only; the single-precision exchange path does not use them.
Definition at line 552 of file cube_function.F90.
| subroutine, public cube_function_oct_m::dcube_function_rs2fs | ( | type(cube_t), intent(in) | cube, |
| type(cube_function_t), intent(inout) | cf | ||
| ) |
Fourier transform a cube function from real space to Fourier space.
Note that the dimensions of the function in fs are different depending on whether f is real or complex, because the FFT representation is different (FFTW scheme).
Definition at line 582 of file cube_function.F90.
| subroutine, public cube_function_oct_m::dcube_function_fs2rs | ( | type(cube_t), intent(in) | cube, |
| type(cube_function_t), intent(inout) | cf | ||
| ) |
Fourier transform a cube function from Fourier space to real space.
Definition at line 607 of file cube_function.F90.
|
private |
One ring step of the domain-parallel mesh-to-cube exchange.
Definition at line 634 of file cube_function.F90.
|
private |
Convert a single function from the mesh to the cube.
| [in] | mf | A function defined on the mesh, |
Definition at line 667 of file cube_function.F90.
|
private |
Convert a set of functions from the mesh to the cube.
| [in] | mf | A batch of functions defined on the mesh, |
| [in] | mf_buffer | Device-resident source buffer for the GPU path. This is mutually exclusive with mf. |
Definition at line 688 of file cube_function.F90.
|
private |
Convert a single function from the cube to the mesh.
| [in] | cf | cube function |
| [out] | mf | A function defined on the mesh, |
Definition at line 981 of file cube_function.F90.
|
private |
Convert a set of functions from the cube to the mesh.
| [in] | cf | cube function |
| [out] | mf | A batch of functions defined on the mesh, |
| [in,out] | mf_buffer | Device-resident destination buffer for the GPU path. This is mutually exclusive with mf. |
Definition at line 1002 of file cube_function.F90.
| subroutine, public cube_function_oct_m::dmesh_to_cube_parallel | ( | class(mesh_t), intent(in) | mesh, |
| real(real64), dimension(:), intent(in), target, contiguous | mf, | ||
| type(cube_t), intent(in) | cube, | ||
| type(cube_function_t), intent(inout) | cf, | ||
| type(mesh_cube_parallel_map_t), intent(in) | map | ||
| ) |
The next subroutines (domain-parallel mesh<->cube and submesh<->cube) are double-precision only; the single-precision exchange path does not use them.
The next two subroutines convert a function between the normal mesh and the cube in parallel.
| [in] | mf | mf(meshnp) |
Definition at line 1146 of file cube_function.F90.
| subroutine, public cube_function_oct_m::dcube_to_mesh_parallel | ( | type(cube_t), intent(in) | cube, |
| type(cube_function_t), intent(in) | cf, | ||
| class(mesh_t), intent(in) | mesh, | ||
| real(real64), dimension(:), intent(out), contiguous | mf, | ||
| type(mesh_cube_parallel_map_t), intent(in) | map | ||
| ) |
| [out] | mf | mf(meshnp) |
Definition at line 1239 of file cube_function.F90.
| real(real64) function, public cube_function_oct_m::dcube_function_surface_average | ( | type(cube_t), intent(in) | cube, |
| type(cube_function_t), intent(in) | cf | ||
| ) |
This function calculates the surface average of any function.
Definition at line 1316 of file cube_function.F90.
| subroutine, public cube_function_oct_m::dsubmesh_to_cube | ( | type(submesh_t), intent(in) | sm, |
| real(real64), dimension(:), intent(in), target, contiguous | mf, | ||
| type(cube_t), intent(in) | cube, | ||
| type(cube_function_t), intent(inout) | cf | ||
| ) |
The next two subroutines convert a function between a submesh and the cube.
| [in] | mf | function defined on the submesh. |
Definition at line 1369 of file cube_function.F90.
| subroutine, public cube_function_oct_m::dcube_to_submesh | ( | type(cube_t), intent(in) | cube, |
| type(cube_function_t), intent(in) | cf, | ||
| type(submesh_t), intent(in) | sm, | ||
| real(real64), dimension(:), intent(out), target, contiguous | mf | ||
| ) |
| [out] | mf | function defined on the submesh. |
Definition at line 1462 of file cube_function.F90.
| subroutine, public cube_function_oct_m::zcube_function_alloc_rs | ( | type(cube_t), intent(in), target | cube, |
| type(cube_function_t), intent(inout) | cf, | ||
| logical, intent(in), optional | in_device, | ||
| logical, intent(in), optional | force_alloc | ||
| ) |
Allocates locally the real space grid, if PFFT library is not used. Otherwise, it assigns the PFFT real space grid to the cube real space grid, via pointer.
Definition at line 1604 of file cube_function.F90.
| subroutine, public cube_function_oct_m::zcube_function_free_rs | ( | type(cube_t), intent(in) | cube, |
| type(cube_function_t), intent(inout) | cf | ||
| ) |
Deallocates the real space grid.
Definition at line 1659 of file cube_function.F90.
| subroutine, public cube_function_oct_m::zcube_function_allgather | ( | type(cube_t), intent(in) | cube, |
| complex(real64), dimension(:,:,:), intent(out) | cf, | ||
| complex(real64), dimension(:,:,:), intent(in), contiguous | cf_local, | ||
| integer, dimension(3), intent(in), optional | order, | ||
| logical, intent(in), optional | gatherfs | ||
| ) |
The next subroutines (domain-parallel mesh<->cube and submesh<->cube) are double-precision only; the single-precision exchange path does not use them.
Definition at line 1702 of file cube_function.F90.
| subroutine, public cube_function_oct_m::zcube_function_rs2fs | ( | type(cube_t), intent(in) | cube, |
| type(cube_function_t), intent(inout) | cf | ||
| ) |
Fourier transform a cube function from real space to Fourier space.
Note that the dimensions of the function in fs are different depending on whether f is real or complex, because the FFT representation is different (FFTW scheme).
Definition at line 1732 of file cube_function.F90.
| subroutine, public cube_function_oct_m::zcube_function_fs2rs | ( | type(cube_t), intent(in) | cube, |
| type(cube_function_t), intent(inout) | cf | ||
| ) |
Fourier transform a cube function from Fourier space to real space.
Definition at line 1757 of file cube_function.F90.
|
private |
One ring step of the domain-parallel mesh-to-cube exchange.
Definition at line 1784 of file cube_function.F90.
|
private |
Convert a single function from the mesh to the cube.
| [in] | mf | A function defined on the mesh, |
Definition at line 1817 of file cube_function.F90.
|
private |
Convert a set of functions from the mesh to the cube.
| [in] | mf | A batch of functions defined on the mesh, |
| [in] | mf_buffer | Device-resident source buffer for the GPU path. This is mutually exclusive with mf. |
Definition at line 1838 of file cube_function.F90.
|
private |
Convert a single function from the cube to the mesh.
| [in] | cf | cube function |
| [out] | mf | A function defined on the mesh, |
Definition at line 2131 of file cube_function.F90.
|
private |
Convert a set of functions from the cube to the mesh.
| [in] | cf | cube function |
| [out] | mf | A batch of functions defined on the mesh, |
| [in,out] | mf_buffer | Device-resident destination buffer for the GPU path. This is mutually exclusive with mf. |
Definition at line 2152 of file cube_function.F90.
| subroutine, public cube_function_oct_m::zmesh_to_cube_parallel | ( | class(mesh_t), intent(in) | mesh, |
| complex(real64), dimension(:), intent(in), target, contiguous | mf, | ||
| type(cube_t), intent(in) | cube, | ||
| type(cube_function_t), intent(inout) | cf, | ||
| type(mesh_cube_parallel_map_t), intent(in) | map | ||
| ) |
The next subroutines (domain-parallel mesh<->cube and submesh<->cube) are double-precision only; the single-precision exchange path does not use them.
The next two subroutines convert a function between the normal mesh and the cube in parallel.
| [in] | mf | mf(meshnp) |
Definition at line 2296 of file cube_function.F90.
| subroutine, public cube_function_oct_m::zcube_to_mesh_parallel | ( | type(cube_t), intent(in) | cube, |
| type(cube_function_t), intent(in) | cf, | ||
| class(mesh_t), intent(in) | mesh, | ||
| complex(real64), dimension(:), intent(out), contiguous | mf, | ||
| type(mesh_cube_parallel_map_t), intent(in) | map | ||
| ) |
| [out] | mf | mf(meshnp) |
Definition at line 2389 of file cube_function.F90.
| complex(real64) function, public cube_function_oct_m::zcube_function_surface_average | ( | type(cube_t), intent(in) | cube, |
| type(cube_function_t), intent(in) | cf | ||
| ) |
This function calculates the surface average of any function.
Definition at line 2466 of file cube_function.F90.
| subroutine, public cube_function_oct_m::zsubmesh_to_cube | ( | type(submesh_t), intent(in) | sm, |
| complex(real64), dimension(:), intent(in), target, contiguous | mf, | ||
| type(cube_t), intent(in) | cube, | ||
| type(cube_function_t), intent(inout) | cf | ||
| ) |
The next two subroutines convert a function between a submesh and the cube.
| [in] | mf | function defined on the submesh. |
Definition at line 2519 of file cube_function.F90.
| subroutine, public cube_function_oct_m::zcube_to_submesh | ( | type(cube_t), intent(in) | cube, |
| type(cube_function_t), intent(in) | cf, | ||
| type(submesh_t), intent(in) | sm, | ||
| complex(real64), dimension(:), intent(out), target, contiguous | mf | ||
| ) |
| [out] | mf | function defined on the submesh. |
Definition at line 2612 of file cube_function.F90.
| subroutine, public cube_function_oct_m::scube_function_alloc_rs | ( | type(cube_t), intent(in), target | cube, |
| type(cube_function_t), intent(inout) | cf, | ||
| logical, intent(in), optional | in_device, | ||
| logical, intent(in), optional | force_alloc | ||
| ) |
Allocates locally the real space grid, if PFFT library is not used. Otherwise, it assigns the PFFT real space grid to the cube real space grid, via pointer.
Definition at line 2758 of file cube_function.F90.
| subroutine, public cube_function_oct_m::scube_function_free_rs | ( | type(cube_t), intent(in) | cube, |
| type(cube_function_t), intent(inout) | cf | ||
| ) |
Deallocates the real space grid.
Definition at line 2813 of file cube_function.F90.
| subroutine, public cube_function_oct_m::scube_function_rs2fs | ( | type(cube_t), intent(in) | cube, |
| type(cube_function_t), intent(inout) | cf | ||
| ) |
The next subroutines (domain-parallel mesh<->cube and submesh<->cube) are double-precision only; the single-precision exchange path does not use them.
Fourier transform a cube function from real space to Fourier space.
Note that the dimensions of the function in fs are different depending on whether f is real or complex, because the FFT representation is different (FFTW scheme).
Definition at line 2863 of file cube_function.F90.
| subroutine, public cube_function_oct_m::scube_function_fs2rs | ( | type(cube_t), intent(in) | cube, |
| type(cube_function_t), intent(inout) | cf | ||
| ) |
Fourier transform a cube function from Fourier space to real space.
Definition at line 2888 of file cube_function.F90.
|
private |
One ring step of the domain-parallel mesh-to-cube exchange.
Definition at line 2915 of file cube_function.F90.
|
private |
Convert a single function from the mesh to the cube.
| [in] | mf | A function defined on the mesh, |
Definition at line 2948 of file cube_function.F90.
|
private |
Convert a set of functions from the mesh to the cube.
| [in] | mf | A batch of functions defined on the mesh, |
| [in] | mf_buffer | Device-resident source buffer for the GPU path. This is mutually exclusive with mf. |
Definition at line 2969 of file cube_function.F90.
|
private |
Convert a single function from the cube to the mesh.
| [in] | cf | cube function |
| [out] | mf | A function defined on the mesh, |
Definition at line 3262 of file cube_function.F90.
|
private |
Convert a set of functions from the cube to the mesh.
| [in] | cf | cube function |
| [out] | mf | A batch of functions defined on the mesh, |
| [in,out] | mf_buffer | Device-resident destination buffer for the GPU path. This is mutually exclusive with mf. |
Definition at line 3283 of file cube_function.F90.
| subroutine, public cube_function_oct_m::ccube_function_alloc_rs | ( | type(cube_t), intent(in), target | cube, |
| type(cube_function_t), intent(inout) | cf, | ||
| logical, intent(in), optional | in_device, | ||
| logical, intent(in), optional | force_alloc | ||
| ) |
The next subroutines (domain-parallel mesh<->cube and submesh<->cube) are double-precision only; the single-precision exchange path does not use them.
Allocates locally the real space grid, if PFFT library is not used. Otherwise, it assigns the PFFT real space grid to the cube real space grid, via pointer.
Definition at line 3506 of file cube_function.F90.
| subroutine, public cube_function_oct_m::ccube_function_free_rs | ( | type(cube_t), intent(in) | cube, |
| type(cube_function_t), intent(inout) | cf | ||
| ) |
Deallocates the real space grid.
Definition at line 3561 of file cube_function.F90.
| subroutine, public cube_function_oct_m::ccube_function_rs2fs | ( | type(cube_t), intent(in) | cube, |
| type(cube_function_t), intent(inout) | cf | ||
| ) |
The next subroutines (domain-parallel mesh<->cube and submesh<->cube) are double-precision only; the single-precision exchange path does not use them.
Fourier transform a cube function from real space to Fourier space.
Note that the dimensions of the function in fs are different depending on whether f is real or complex, because the FFT representation is different (FFTW scheme).
Definition at line 3611 of file cube_function.F90.
| subroutine, public cube_function_oct_m::ccube_function_fs2rs | ( | type(cube_t), intent(in) | cube, |
| type(cube_function_t), intent(inout) | cf | ||
| ) |
Fourier transform a cube function from Fourier space to real space.
Definition at line 3636 of file cube_function.F90.
|
private |
One ring step of the domain-parallel mesh-to-cube exchange.
Definition at line 3663 of file cube_function.F90.
|
private |
Convert a single function from the mesh to the cube.
| [in] | mf | A function defined on the mesh, |
Definition at line 3696 of file cube_function.F90.
|
private |
Convert a set of functions from the mesh to the cube.
| [in] | mf | A batch of functions defined on the mesh, |
| [in] | mf_buffer | Device-resident source buffer for the GPU path. This is mutually exclusive with mf. |
Definition at line 3717 of file cube_function.F90.
|
private |
Convert a single function from the cube to the mesh.
| [in] | cf | cube function |
| [out] | mf | A function defined on the mesh, |
Definition at line 4010 of file cube_function.F90.
|
private |
Convert a set of functions from the cube to the mesh.
| [in] | cf | cube function |
| [out] | mf | A batch of functions defined on the mesh, |
| [in,out] | mf_buffer | Device-resident destination buffer for the GPU path. This is mutually exclusive with mf. |
Definition at line 4031 of file cube_function.F90.