| 
    Neko 0.9.1
    
   A portable framework for high-order spectral element flow simulations 
   | 
 
Interpolation between two space::space_t. More...

Public Member Functions | |
| procedure, pass(this) | init (this, xh, yh) | 
| Constructor.   | |
| procedure, pass(this) | free (this) | 
| Destructor.   | |
| procedure, pass(this) | map (this, y, x, nel, to_space) | 
| Interpolate an array to one of Xh or Yh.   | |
| procedure, pass(this) | map_host (this, y, x, nel, to_space) | 
| Interpolate an array to one of Xh or Yh on the host.   | |
Public Attributes | |
| type(space_t), pointer | xh | 
| First space.   | |
| type(space_t), pointer | yh | 
| Second space.   | |
| real(kind=rp), dimension(:,:), allocatable | xh_to_yh | 
| Interpolation weights from Xh to Yh.   | |
| real(kind=rp), dimension(:,:), allocatable | xh_to_yht | 
| real(kind=rp), dimension(:,:), allocatable | yh_to_xh | 
| Interpolation weights from Yh to Xh.   | |
| real(kind=rp), dimension(:,:), allocatable | yh_to_xht | 
| type(c_ptr) | xh_yh_d = C_NULL_PTR | 
| Device pointer for Xh_to_Yh.   | |
| type(c_ptr) | xh_yht_d = C_NULL_PTR | 
| Device pointer for Xh_to_YhT.   | |
| type(c_ptr) | yh_xh_d = C_NULL_PTR | 
| Device pointer for Yh_to_Xh.   | |
| type(c_ptr) | yh_xht_d = C_NULL_PTR | 
| Device pointer for Yh_to_XhT.   | |
This type implements functionality to interpolate between a pair of spaces. Simply put, given some data of form (lx1, lx1, lx1, nelem) we can map it to (lx2, lx2, lx2, nelem), corresponding to a different polynomial order in each element.
Definition at line 51 of file interpolation.f90.
| procedure, pass(this) interpolation::interpolator_t::free | ( | class(interpolator_t), intent(inout) | this | ) | 
Definition at line 73 of file interpolation.f90.
| procedure, pass(this) interpolation::interpolator_t::init | ( | class(interpolator_t), intent(inout), target | this, | 
| type(space_t), intent(inout), target | xh, | ||
| type(space_t), intent(inout), target | yh | ||
| ) | 
| Xh | The first space. | 
| Xh | The second space. | 
Definition at line 71 of file interpolation.f90.
| procedure, pass(this) interpolation::interpolator_t::map | ( | class(interpolator_t), intent(inout) | this, | 
| real(kind=rp), dimension(this%yh%lx, this%yh%lx, this%yh%lx, nel), intent(inout) | y, | ||
| real(kind=rp), dimension(this%xh%lx, this%xh%lx, this%xh%lx, nel), intent(inout) | x, | ||
| integer | nel, | ||
| type(space_t) | to_space | ||
| ) | 
| x | Original array. | 
| y | Interpolated array. | 
| nel | Number of elements in the mesh. | 
| to_space | The space to interpolate to, must be either Xh or Yh. | 
Definition at line 75 of file interpolation.f90.
| procedure, pass(this) interpolation::interpolator_t::map_host | ( | class(interpolator_t), intent(inout) | this, | 
| real(kind=rp), dimension(this%yh%lx, this%yh%lx, this%yh%lx, nel), intent(inout) | y, | ||
| real(kind=rp), dimension(this%xh%lx, this%xh%lx, this%xh%lx, nel), intent(inout) | x, | ||
| integer | nel, | ||
| type(space_t) | to_space | ||
| ) | 
| x | Original array. | 
| y | Interpolated array. | 
| nel | Number of elements in the mesh. | 
| to_space | The space to interpolate to, must be either Xh or Yh. | 
Definition at line 77 of file interpolation.f90.
Definition at line 53 of file interpolation.f90.
| real(kind=rp), dimension(:,:), allocatable interpolation::interpolator_t::xh_to_yh | 
Definition at line 57 of file interpolation.f90.
| real(kind=rp), dimension(:,:), allocatable interpolation::interpolator_t::xh_to_yht | 
Definition at line 57 of file interpolation.f90.
| type(c_ptr) interpolation::interpolator_t::xh_yh_d = C_NULL_PTR | 
Definition at line 61 of file interpolation.f90.
| type(c_ptr) interpolation::interpolator_t::xh_yht_d = C_NULL_PTR | 
Definition at line 63 of file interpolation.f90.
Definition at line 55 of file interpolation.f90.
| real(kind=rp), dimension(:,:), allocatable interpolation::interpolator_t::yh_to_xh | 
Definition at line 59 of file interpolation.f90.
| real(kind=rp), dimension(:,:), allocatable interpolation::interpolator_t::yh_to_xht | 
Definition at line 59 of file interpolation.f90.
| type(c_ptr) interpolation::interpolator_t::yh_xh_d = C_NULL_PTR | 
Definition at line 65 of file interpolation.f90.
| type(c_ptr) interpolation::interpolator_t::yh_xht_d = C_NULL_PTR | 
Definition at line 67 of file interpolation.f90.