Octopus
|
Implementation details for regridding. More...
Implementation details for regridding.
For commensurate grids, restriction and prolongation are chosen such that they are adjoint operators.
Simple mapping:
Restriction: mapping from fine to coarse meshes.
The strategy is as follows:
Prolongation: mapping from coarse to fine meshes using linear interpolation in nd space
The strategy is slightly different from the restriction operator:
For curvilinear or non-commmensurate grids, a generic interpolation scheme is used:
Data Types | |
interface | regridding_t |
contains the information of the meshes and provides the transfer functions More... | |
Functions/Subroutines | |
class(regridding_t) function, pointer | regridding_init (mesh_out, mesh_in, space_in, namespace) |
Generate a re-mapping of points from mesh_in to mesh_out. More... | |
subroutine | regridding_finalize (this) |
subroutine | dregridding_do_transfer_1 (this, ff_out, ff_in) |
transfer fields of rank 1 More... | |
subroutine | dregridding_do_transfer_2 (this, ff_out, ff_in) |
transfer fields of rank 2 More... | |
subroutine | zregridding_do_transfer_1 (this, ff_out, ff_in) |
transfer fields of rank 1 More... | |
subroutine | zregridding_do_transfer_2 (this, ff_out, ff_in) |
transfer fields of rank 2 More... | |
Variables | |
integer, parameter | linear = 0 |
integer, parameter | nearest_neighbor = 1 |
integer, parameter | scale_none = 0 |
integer, parameter | scale_norm2 = 1 |
class(regridding_t) function, pointer regridding_oct_m::regridding_init | ( | class(mesh_t), intent(in), target | mesh_out, |
class(mesh_t), intent(in), target | mesh_in, | ||
class(space_t), intent(in) | space_in, | ||
type(namespace_t), intent(in) | namespace | ||
) |
Generate a re-mapping of points from mesh_in to mesh_out.
Definition at line 236 of file regridding.F90.
subroutine regridding_oct_m::regridding_finalize | ( | type(regridding_t), intent(inout) | this | ) |
Definition at line 728 of file regridding.F90.
subroutine regridding_oct_m::dregridding_do_transfer_1 | ( | class(regridding_t), intent(in) | this, |
real(real64), dimension(:), intent(inout) | ff_out, | ||
real(real64), dimension(:), intent(in) | ff_in | ||
) |
transfer fields of rank 1
Definition at line 795 of file regridding.F90.
subroutine regridding_oct_m::dregridding_do_transfer_2 | ( | class(regridding_t), intent(in) | this, |
real(real64), dimension(:, :), intent(inout) | ff_out, | ||
real(real64), dimension(:, :), intent(in) | ff_in | ||
) |
transfer fields of rank 2
Definition at line 961 of file regridding.F90.
subroutine regridding_oct_m::zregridding_do_transfer_1 | ( | class(regridding_t), intent(in) | this, |
complex(real64), dimension(:), intent(inout) | ff_out, | ||
complex(real64), dimension(:), intent(in) | ff_in | ||
) |
transfer fields of rank 1
Definition at line 1049 of file regridding.F90.
subroutine regridding_oct_m::zregridding_do_transfer_2 | ( | class(regridding_t), intent(in) | this, |
complex(real64), dimension(:, :), intent(inout) | ff_out, | ||
complex(real64), dimension(:, :), intent(in) | ff_in | ||
) |
transfer fields of rank 2
Definition at line 1215 of file regridding.F90.
integer, parameter regridding_oct_m::linear = 0 |
Definition at line 226 of file regridding.F90.
integer, parameter regridding_oct_m::nearest_neighbor = 1 |
Definition at line 226 of file regridding.F90.
integer, parameter regridding_oct_m::scale_none = 0 |
Definition at line 226 of file regridding.F90.
integer, parameter regridding_oct_m::scale_norm2 = 1 |
Definition at line 226 of file regridding.F90.