Octopus
mesh_function.F90 File Reference

Go to the source code of this file.

Modules

module  mesh_function_oct_m
 This module defines various routines, operating on mesh functions.
 

Data Types

interface  mesh_function_oct_m::mf_surface_integral
 
interface  mesh_function_oct_m::mf_line_integral
 
interface  mesh_function_oct_m::dmf_dotp
 
interface  mesh_function_oct_m::zmf_dotp
 
interface  mesh_function_oct_m::dmf_nrm2
 
interface  mesh_function_oct_m::zmf_nrm2
 

Functions/Subroutines

subroutine, public mesh_function_oct_m::mesh_init_mesh_aux (mesh)
 Initialise a pointer to the grid/mesh, that is globally exposed, such that low level mesh operations implicitly access the mesh without it being part of the routine signature. More...
 
subroutine, public mesh_function_oct_m::zmf_fix_phase (mesh, ff)
 Fix the phase of complex function. More...
 
real(real64) function, public mesh_function_oct_m::dmf_integrate (mesh, ff, mask, reduce)
 Integrate a function on the mesh. More...
 
subroutine, public mesh_function_oct_m::dmf_normalize (mesh, dim, psi, norm)
 Normalize a mesh function psi. More...
 
real(real64) function mesh_function_oct_m::dmf_dotp_1 (mesh, f1, f2, reduce, dotu, np)
 this function returns the dot product between two mesh functions More...
 
real(real64) function mesh_function_oct_m::dmf_dotp_2 (mesh, dim, f1, f2, reduce, dotu, np)
 dot product for vector valued mesh functions More...
 
real(real64) function mesh_function_oct_m::dmf_nrm2_1 (mesh, ff, reduce)
 this function returns the norm of a mesh function More...
 
real(real64) function mesh_function_oct_m::dmf_nrm2_2 (mesh, dim, ff, reduce)
 this function returns the norm of a vector of mesh functions More...
 
real(real64) function, public mesh_function_oct_m::dmf_moment (mesh, ff, idir, order)
 This function calculates the "order" moment of the function ff. More...
 
subroutine, public mesh_function_oct_m::dmf_random (mesh, ff, pre_shift, post_shift, seed, normalized)
 This subroutine fills a function with random values. More...
 
subroutine, public mesh_function_oct_m::dmf_interpolate_points (ndim, npoints_in, x_in, f_in, npoints_out, x_out, f_out)
 This function receives a function f_in defined in a mesh, and returns the interpolated values of the function over the npoints_in defined by x_in. More...
 
subroutine mesh_function_oct_m::dmf_interpolate_on_plane (mesh, plane, ff, f_in_plane)
 Given a function ff defined on mesh, and a plane, it gives back the values of ff on the plane, by doing the appropriate interpolation. More...
 
subroutine mesh_function_oct_m::dmf_interpolate_on_line (mesh, line, ff, f_in_line)
 Given a function ff defined on mesh, and a line, it gives back the values of ff on the line, by doing the appropriate interpolation. More...
 
real(real64) function mesh_function_oct_m::dmf_surface_integral_scalar (mesh, ff, plane)
 This subroutine calculates the surface integral of a scalar function on a given plane. More...
 
real(real64) function mesh_function_oct_m::dmf_surface_integral_vector (mesh, ff, plane)
 This subroutine calculates the surface integral of a vector function on a given plane. More...
 
real(real64) function mesh_function_oct_m::dmf_line_integral_scalar (mesh, ff, line)
 This subroutine calculates the line integral of a scalar function on a given line. More...
 
real(real64) function mesh_function_oct_m::dmf_line_integral_vector (mesh, ff, line)
 This subroutine calculates the line integral of a vector function on a given line. More...
 
subroutine, public mesh_function_oct_m::dmf_multipoles (mesh, ff, lmax, multipole, mask)
 This routine calculates the multipoles of a function ff. More...
 
subroutine, public mesh_function_oct_m::dmf_dipole (mesh, ff, dipole, mask)
 This routine calculates the dipole of a function ff, for arbitrary dimensions. More...
 
real(real64) function, public mesh_function_oct_m::dmf_dotp_aux (f1, f2)
 dot product between two vectors (mesh functions) More...
 
real(real64) function, public mesh_function_oct_m::dmf_dotu_aux (f1, f2)
 dot product between two vectors (mesh functions) without conjugation More...
 
real(real64) function, public mesh_function_oct_m::dmf_nrm2_aux (ff)
 calculate norm2 of a vector (mesh function) More...
 
complex(real64) function, public mesh_function_oct_m::zmf_integrate (mesh, ff, mask, reduce)
 Integrate a function on the mesh. More...
 
subroutine, public mesh_function_oct_m::zmf_normalize (mesh, dim, psi, norm)
 Normalize a mesh function psi. More...
 
complex(real64) function mesh_function_oct_m::zmf_dotp_1 (mesh, f1, f2, reduce, dotu, np)
 this function returns the dot product between two mesh functions More...
 
complex(real64) function mesh_function_oct_m::zmf_dotp_2 (mesh, dim, f1, f2, reduce, dotu, np)
 dot product for vector valued mesh functions More...
 
real(real64) function mesh_function_oct_m::zmf_nrm2_1 (mesh, ff, reduce)
 this function returns the norm of a mesh function More...
 
real(real64) function mesh_function_oct_m::zmf_nrm2_2 (mesh, dim, ff, reduce)
 this function returns the norm of a vector of mesh functions More...
 
complex(real64) function, public mesh_function_oct_m::zmf_moment (mesh, ff, idir, order)
 This function calculates the "order" moment of the function ff. More...
 
subroutine, public mesh_function_oct_m::zmf_random (mesh, ff, pre_shift, post_shift, seed, normalized)
 This subroutine fills a function with random values. More...
 
subroutine, public mesh_function_oct_m::zmf_interpolate_points (ndim, npoints_in, x_in, f_in, npoints_out, x_out, f_out)
 This function receives a function f_in defined in a mesh, and returns the interpolated values of the function over the npoints_in defined by x_in. More...
 
subroutine mesh_function_oct_m::zmf_interpolate_on_plane (mesh, plane, ff, f_in_plane)
 Given a function ff defined on mesh, and a plane, it gives back the values of ff on the plane, by doing the appropriate interpolation. More...
 
subroutine mesh_function_oct_m::zmf_interpolate_on_line (mesh, line, ff, f_in_line)
 Given a function ff defined on mesh, and a line, it gives back the values of ff on the line, by doing the appropriate interpolation. More...
 
complex(real64) function mesh_function_oct_m::zmf_surface_integral_scalar (mesh, ff, plane)
 This subroutine calculates the surface integral of a scalar function on a given plane. More...
 
complex(real64) function mesh_function_oct_m::zmf_surface_integral_vector (mesh, ff, plane)
 This subroutine calculates the surface integral of a vector function on a given plane. More...
 
complex(real64) function mesh_function_oct_m::zmf_line_integral_scalar (mesh, ff, line)
 This subroutine calculates the line integral of a scalar function on a given line. More...
 
complex(real64) function mesh_function_oct_m::zmf_line_integral_vector (mesh, ff, line)
 This subroutine calculates the line integral of a vector function on a given line. More...
 
subroutine, public mesh_function_oct_m::zmf_multipoles (mesh, ff, lmax, multipole, mask)
 This routine calculates the multipoles of a function ff. More...
 
subroutine, public mesh_function_oct_m::zmf_dipole (mesh, ff, dipole, mask)
 This routine calculates the dipole of a function ff, for arbitrary dimensions. More...
 
complex(real64) function, public mesh_function_oct_m::zmf_dotp_aux (f1, f2)
 dot product between two vectors (mesh functions) More...
 
complex(real64) function, public mesh_function_oct_m::zmf_dotu_aux (f1, f2)
 dot product between two vectors (mesh functions) without conjugation More...
 
real(real64) function, public mesh_function_oct_m::zmf_nrm2_aux (ff)
 calculate norm2 of a vector (mesh function) More...
 
real(real64) function distdot (n, x, ix, y, iy)
 This function will be linked by SPARSKIT to perform dot products. It expects complex numbers as an array with first real parts, then imaginary parts. More...
 

Variables

logical, public mesh_function_oct_m::sp_parallel
 
integer, public mesh_function_oct_m::sp_np
 
integer, public mesh_function_oct_m::sp_dim
 
integer, public mesh_function_oct_m::sp_st1
 
integer, public mesh_function_oct_m::sp_st2
 
integer, public mesh_function_oct_m::sp_kp1
 
integer, public mesh_function_oct_m::sp_kp2
 
integer, public mesh_function_oct_m::sp_distdot_mode
 
type(mpi_grp_t), public mesh_function_oct_m::sp_grp
 
class(mesh_t), pointer, public mesh_function_oct_m::mesh_aux => null()
 Globally-scoped pointer to the mesh instance. More...
 

Function/Subroutine Documentation

◆ distdot()

real(real64) function distdot ( integer, intent(in)  n,
real(real64), dimension(n), intent(in)  x,
integer, intent(in)  ix,
real(real64), dimension(n), intent(in)  y,
integer, intent(in)  iy 
)
private

This function will be linked by SPARSKIT to perform dot products. It expects complex numbers as an array with first real parts, then imaginary parts.

Definition at line 1987 of file mesh_function.F90.