Octopus
mesh_interpolation.F90
Go to the documentation of this file.
1!! Copyright (C) 2014 X. Andrade
2!!
3!! This program is free software; you can redistribute it and/or modify
4!! it under the terms of the GNU General Public License as published by
5!! the Free Software Foundation; either version 2, or (at your option)
6!! any later version.
7!!
8!! This program is distributed in the hope that it will be useful,
9!! but WITHOUT ANY WARRANTY; without even the implied warranty of
10!! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11!! GNU General Public License for more details.
12!!
13!! You should have received a copy of the GNU General Public License
14!! along with this program; if not, write to the Free Software
15!! Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
16!! 02110-1301, USA.
17!!
18
19#include "global.h"
20
22 use accel_oct_m
23 use batch_oct_m
24 use comm_oct_m
25 use debug_oct_m
26 use global_oct_m
27 use index_oct_m
29 use mesh_oct_m
31 use mpi_oct_m
34 use types_oct_m
35
36 implicit none
37 private
38
39 public :: &
46
48 private
49
50 class(mesh_t),pointer :: mesh
52
54 module procedure dmesh_interpolation_evaluate
55 module procedure zmesh_interpolation_evaluate
60 end interface mesh_interpolation_evaluate
61
62contains
63
64 subroutine mesh_interpolation_init(this, mesh)
65 type(mesh_interpolation_t), intent(out) :: this
66 class(mesh_t),target, intent(in) :: mesh
67
69
70 assert(.not. mesh%use_curvilinear)
71
72 this%mesh => mesh
73
75 end subroutine mesh_interpolation_init
76
77 ! ---------------------------------------------------
78 subroutine mesh_interpolation_end(this)
79 type(mesh_interpolation_t), intent(inout) :: this
80
82
83 nullify(this%mesh)
84
86 end subroutine mesh_interpolation_end
87
88
89#include "undef.F90"
90#include "real.F90"
91#include "mesh_interpolation_inc.F90"
92
93#include "undef.F90"
94#include "complex.F90"
95#include "mesh_interpolation_inc.F90"
96
98
99
100!! Local Variables:
101!! mode: f90
102!! coding: utf-8
103!! End:
This module implements batches of mesh functions.
Definition: batch.F90:135
This module implements the index, used for the mesh points.
Definition: index.F90:124
subroutine dmesh_interpolation_evaluate_vec_accel(this, npoints, nstates, values, positions, positions_buff, interpolated_values, interp_buff, spacing_buff, pt_buff)
subroutine zmesh_interpolation_evaluate_vec_accel(this, npoints, nstates, values, positions, positions_buff, interpolated_values, interp_buff, spacing_buff, pt_buff)
subroutine, public zmesh_interpolation_test(mesh)
subroutine dmesh_interpolation_evaluate_vec(this, npoints, values, positions, interpolated_values)
subroutine zmesh_interpolation_evaluate(this, values, position, interpolated_value)
subroutine, public mesh_interpolation_init(this, mesh)
subroutine, public dmesh_interpolation_test(mesh)
subroutine dmesh_interpolation_evaluate(this, values, position, interpolated_value)
subroutine, public mesh_interpolation_end(this)
subroutine zmesh_interpolation_evaluate_vec(this, npoints, values, positions, interpolated_values)
This module defines the meshes, which are used in Octopus.
Definition: mesh.F90:120
Some general things and nomenclature:
Definition: par_vec.F90:173