![]() |
Octopus
|
This module defines various routines, operating on mesh functions. More...
This module defines various routines, operating on mesh functions.
Data Types | |
| interface | dmf_dotp |
| interface | dmf_integrate |
| interface | dmf_nrm2 |
| interface | mf_line_integral |
| interface | mf_surface_integral |
| interface | zmf_dotp |
| interface | zmf_integrate |
| interface | zmf_nrm2 |
Functions/Subroutines | |
| subroutine, public | 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 | zmf_fix_phase (mesh, ff) |
| Fix the phase of complex function. More... | |
| real(real64) function | dmf_integrate_1 (mesh, ff, mask, reduce) |
| Integrate a function on the mesh. More... | |
| real(real64) function, dimension(1:dim) | dmf_integrate_2 (mesh, dim, ff, mask, reduce) |
| Integrate of a vector of functins. More... | |
| subroutine, public | dmf_remove_average (mesh, ff, reduce) |
| Remove the average value of a mesh function. More... | |
| subroutine, public | dmf_normalize (mesh, dim, psi, norm) |
| Normalize a mesh function psi. More... | |
| real(real64) function | dmf_dotp_1 (mesh, f1, f2, reduce, dotu, np) |
| this function returns the dot product between two mesh functions More... | |
| real(real64) function | dmf_dotp_2 (mesh, dim, f1, f2, reduce, dotu, np) |
| dot product for vector valued mesh functions More... | |
| real(real64) function | dmf_nrm2_1 (mesh, ff, reduce) |
| this function returns the norm of a mesh function More... | |
| real(real64) function | dmf_nrm2_2 (mesh, dim, ff, reduce) |
| this function returns the norm of a vector of mesh functions More... | |
| real(real64) function, public | dmf_moment (mesh, ff, idir, order) |
| This function calculates the "order" moment of the function ff. More... | |
| subroutine, public | dmf_random (mesh, ff, pre_shift, post_shift, seed, normalized) |
| This subroutine fills a function with random values. More... | |
| subroutine, public | 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 | 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 | 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 | 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 | 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 | 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 | dmf_line_integral_vector (mesh, ff, line) |
| This subroutine calculates the line integral of a vector function on a given line. More... | |
| subroutine, public | dmf_multipoles (mesh, ff, lmax, multipole, mask) |
| This routine calculates the multipoles of a function ff. More... | |
| subroutine, public | dmf_dipole (mesh, ff, dipole, mask) |
| This routine calculates the dipole of a function ff, for arbitrary dimensions. More... | |
| real(real64) function, public | dmf_dotp_aux (f1, f2) |
| dot product between two vectors (mesh functions) More... | |
| real(real64) function, public | dmf_dotu_aux (f1, f2) |
| dot product between two vectors (mesh functions) without conjugation More... | |
| subroutine, public | dmf_remove_average_aux (f) |
| Interface for nullspace removal in linear solvers. More... | |
| real(real64) function, public | dmf_nrm2_aux (ff) |
| calculate norm2 of a vector (mesh function) More... | |
| complex(real64) function | zmf_integrate_1 (mesh, ff, mask, reduce) |
| Integrate a function on the mesh. More... | |
| complex(real64) function, dimension(1:dim) | zmf_integrate_2 (mesh, dim, ff, mask, reduce) |
| Integrate of a vector of functins. More... | |
| subroutine, public | zmf_remove_average (mesh, ff, reduce) |
| Remove the average value of a mesh function. More... | |
| subroutine, public | zmf_normalize (mesh, dim, psi, norm) |
| Normalize a mesh function psi. More... | |
| complex(real64) function | zmf_dotp_1 (mesh, f1, f2, reduce, dotu, np) |
| this function returns the dot product between two mesh functions More... | |
| complex(real64) function | zmf_dotp_2 (mesh, dim, f1, f2, reduce, dotu, np) |
| dot product for vector valued mesh functions More... | |
| real(real64) function | zmf_nrm2_1 (mesh, ff, reduce) |
| this function returns the norm of a mesh function More... | |
| real(real64) function | zmf_nrm2_2 (mesh, dim, ff, reduce) |
| this function returns the norm of a vector of mesh functions More... | |
| complex(real64) function, public | zmf_moment (mesh, ff, idir, order) |
| This function calculates the "order" moment of the function ff. More... | |
| subroutine, public | zmf_random (mesh, ff, pre_shift, post_shift, seed, normalized) |
| This subroutine fills a function with random values. More... | |
| subroutine, public | 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 | 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 | 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 | 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 | 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 | 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 | zmf_line_integral_vector (mesh, ff, line) |
| This subroutine calculates the line integral of a vector function on a given line. More... | |
| subroutine, public | zmf_multipoles (mesh, ff, lmax, multipole, mask) |
| This routine calculates the multipoles of a function ff. More... | |
| subroutine, public | zmf_dipole (mesh, ff, dipole, mask) |
| This routine calculates the dipole of a function ff, for arbitrary dimensions. More... | |
| complex(real64) function, public | zmf_dotp_aux (f1, f2) |
| dot product between two vectors (mesh functions) More... | |
| complex(real64) function, public | zmf_dotu_aux (f1, f2) |
| dot product between two vectors (mesh functions) without conjugation More... | |
| subroutine, public | zmf_remove_average_aux (f) |
| Interface for nullspace removal in linear solvers. More... | |
| real(real64) function, public | zmf_nrm2_aux (ff) |
| calculate norm2 of a vector (mesh function) More... | |
Variables | |
| logical, public | sp_parallel |
| integer, public | sp_np |
| integer, public | sp_dim |
| integer, public | sp_st1 |
| integer, public | sp_st2 |
| integer, public | sp_kp1 |
| integer, public | sp_kp2 |
| integer, public | sp_distdot_mode |
| type(mpi_grp_t), public | sp_grp |
| class(mesh_t), pointer, public | mesh_aux => null() |
| Globally-scoped pointer to the mesh instance. More... | |
| subroutine, public mesh_function_oct_m::mesh_init_mesh_aux | ( | class(mesh_t), intent(in), target | 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.
Definition at line 222 of file mesh_function.F90.
| subroutine, public mesh_function_oct_m::zmf_fix_phase | ( | class(mesh_t), intent(in) | mesh, |
| complex(real64), dimension(:), intent(inout), contiguous | ff | ||
| ) |
Fix the phase of complex function.
Given a complex function on the grid, we want to minimize its imaginary part For this, we determine the angle that will minimize the imaginary part after rotation in the complex plane. We then choose the solution that maximizes the real part
Definition at line 238 of file mesh_function.F90.
|
private |
Integrate a function on the mesh.
\[ d = \sum_i^N f_i dV_i \]
where \( f_i \) is the discrete function, \(dV_i\) is the volume element, and \( N \) is the number of mesh points.
| [in] | ff | Function to integrate with dimensions (1:mesh%np) |
| [in] | mask | Define which grid points to integrate over |
| [in] | reduce | Perform reduction over all grid domains |
Definition at line 387 of file mesh_function.F90.
|
private |
Integrate of a vector of functins.
| [in] | ff | Function to integrate with dimensions (1:mesh%np) |
| [in] | mask | Define which grid points to integrate over |
| [in] | reduce | Perform reduction over all grid domains |
Definition at line 433 of file mesh_function.F90.
| subroutine, public mesh_function_oct_m::dmf_remove_average | ( | class(mesh_t), intent(in) | mesh, |
| real(real64), dimension(:), intent(inout) | ff, | ||
| logical, intent(in), optional | reduce | ||
| ) |
Remove the average value of a mesh function.
Definition at line 462 of file mesh_function.F90.
| subroutine, public mesh_function_oct_m::dmf_normalize | ( | class(mesh_t), intent(in) | mesh, |
| integer, intent(in) | dim, | ||
| real(real64), dimension(:,:), intent(inout), contiguous | psi, | ||
| real(real64), intent(out), optional | norm | ||
| ) |
Normalize a mesh function psi.
| [in] | mesh | underlying mesh |
| [in] | dim | spinor dimension of the function |
| [in,out] | psi | mesh function psi(mesh%np, dim) |
| [out] | norm | optional output of the norm |
Definition at line 506 of file mesh_function.F90.
|
private |
this function returns the dot product between two mesh functions
| [in] | mesh | underlying mesh |
| [in] | f2 | mesh functions |
| [in] | reduce | if true, perform mpi reduction |
| [in] | dotu | if true, use blas_dotu instead of blas_dot; no complex conjugation. Default is false. This has no effect if working with real version |
Definition at line 536 of file mesh_function.F90.
|
private |
dot product for vector valued mesh functions
| [in] | mesh | underlying mesh |
| [in] | dim | dimensions |
| [in] | f2 | mesh functions of dimension (1:mesh%np, 1:dim) |
| [in] | reduce | if true, perform mpi reduction |
| [in] | dotu | if true, use lalg_dotu instead of lalg_dot; no complex conjugation. Default is false. |
| [in] | np | optional number of points over which the integral is performed |
Definition at line 613 of file mesh_function.F90.
|
private |
this function returns the norm of a mesh function
| [in] | mesh | underlying mesh |
| [in] | ff | mesh function |
| [in] | reduce | if true, perform mpi reduction |
Definition at line 645 of file mesh_function.F90.
|
private |
this function returns the norm of a vector of mesh functions
| [in] | mesh | underlying mesh |
| [in] | dim | dimensions |
| [in] | ff | mesh function of dimension (1:mesh%np, 1:dim) |
| [in] | reduce | if true, perform mpi reduction |
Definition at line 687 of file mesh_function.F90.
| real(real64) function, public mesh_function_oct_m::dmf_moment | ( | class(mesh_t), intent(in) | mesh, |
| real(real64), dimension(:), intent(in), contiguous | ff, | ||
| integer, intent(in) | idir, | ||
| integer, intent(in) | order | ||
| ) |
This function calculates the "order" moment of the function ff.
moment = \( \int ff({\bf x}) {\bf x}_{\rm idir}^{\rm order} \)
| [in] | mesh | underlying mesh |
| [in] | ff | mesh function |
| [in] | idir | Cartesian direction |
| [in] | order | order of the moment |
Definition at line 713 of file mesh_function.F90.
| subroutine, public mesh_function_oct_m::dmf_random | ( | class(mesh_t), intent(in) | mesh, |
| real(real64), dimension(:), intent(out), contiguous | ff, | ||
| integer(int64), intent(in), optional | pre_shift, | ||
| integer(int64), intent(in), optional | post_shift, | ||
| integer(int64), intent(in), optional | seed, | ||
| logical, intent(in), optional | normalized | ||
| ) |
This subroutine fills a function with random values.
| [in] | normalized | whether generate states should have norm 1, true by default |
Definition at line 742 of file mesh_function.F90.
| subroutine, public mesh_function_oct_m::dmf_interpolate_points | ( | integer, intent(in) | ndim, |
| integer, intent(in) | npoints_in, | ||
| real(real64), dimension(:, :), intent(in), contiguous | x_in, | ||
| real(real64), dimension(:), intent(in), contiguous | f_in, | ||
| integer, intent(in) | npoints_out, | ||
| real(real64), dimension(:,:), intent(in), contiguous | x_out, | ||
| real(real64), dimension(:), intent(out), contiguous | 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.
| [in] | f_in | function (1:npoints_in)) |
| [in] | x_in | coordinates of in points (1:npoints_in, 1:ndim) |
| [in] | x_out | coordinates of out points (1:npoints_out, 1:ndim) |
| [out] | f_out | (1:npoints_out) |
Definition at line 797 of file mesh_function.F90.
|
private |
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.
| [in] | mesh | underlying mesh |
| [in] | plane | plane to interpolate onto |
| [in] | ff | function defined on mesh |
Definition at line 861 of file mesh_function.F90.
|
private |
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.
| [in] | mesh | underlying mesh |
| [in] | line | line to interpolate onto |
| [in] | ff | function defined on mesh |
Definition at line 917 of file mesh_function.F90.
|
private |
This subroutine calculates the surface integral of a scalar function on a given plane.
| [in] | mesh | underlying mesh |
| [in] | ff | function to integrate; dimensions (1:mesh%np) |
| [in] | plane | plane for surface integration |
Definition at line 965 of file mesh_function.F90.
|
private |
This subroutine calculates the surface integral of a vector function on a given plane.
| [in] | mesh | underlying mesh |
| [in] | ff | function to integrate; dimensions (mesh%np, mesh%box%dim) |
| [in] | plane | plane for surface integration |
Definition at line 994 of file mesh_function.F90.
|
private |
This subroutine calculates the line integral of a scalar function on a given line.
| [in] | mesh | underlying mesh |
| [in] | ff | function defined on mesh; dimensions (1:mesh%np) |
| [in] | line | line to integrate along |
Definition at line 1024 of file mesh_function.F90.
|
private |
This subroutine calculates the line integral of a vector function on a given line.
| [in] | mesh | underlying mesh |
| [in] | ff | function defined on mesh; dimensions (mesh%np, mesh%box%dim) |
| [in] | line | line to integrate along |
Definition at line 1053 of file mesh_function.F90.
| subroutine, public mesh_function_oct_m::dmf_multipoles | ( | class(mesh_t), intent(in) | mesh, |
| real(real64), dimension(:), intent(in), contiguous | ff, | ||
| integer, intent(in) | lmax, | ||
| real(real64), dimension(:), intent(out), contiguous | multipole, | ||
| logical, dimension(:), intent(in), optional, contiguous | mask | ||
| ) |
This routine calculates the multipoles of a function ff.
defined in the following way:
And so on.
| [in] | mesh | underlying mesh |
| [in] | ff | function to integrate |
| [in] | lmax | maximum angular momentum |
| [out] | multipole | ((lmax + 1)**2) |
| [in] | mask | (1:mesh%np) |
Definition at line 1090 of file mesh_function.F90.
| subroutine, public mesh_function_oct_m::dmf_dipole | ( | class(mesh_t), intent(in) | mesh, |
| real(real64), dimension(:), intent(in), contiguous | ff, | ||
| real(real64), dimension(:), intent(out), contiguous | dipole, | ||
| logical, dimension(:), intent(in), optional, contiguous | mask | ||
| ) |
This routine calculates the dipole of a function ff, for arbitrary dimensions.
| [in] | mesh | underlying mesh |
| [in] | ff | (1:mesh%np) |
| [out] | dipole | (1:mesh%box%dim) |
| [in] | mask | (1:mesh%np) |
Definition at line 1152 of file mesh_function.F90.
| real(real64) function, public mesh_function_oct_m::dmf_dotp_aux | ( | real(real64), dimension(:), intent(in) | f1, |
| real(real64), dimension(:), intent(in) | f2 | ||
| ) |
dot product between two vectors (mesh functions)
This function returns the dot product between two vectors, but using the mesh_aux defined as a global object in this module. This way it can be called by external libraries, passing only the two vectors. First, one has to make sure that mesh_aux is pointing to some defined mesh data structure, by calling mesh_init_mesh_aux.
Definition at line 1198 of file mesh_function.F90.
| real(real64) function, public mesh_function_oct_m::dmf_dotu_aux | ( | real(real64), dimension(:), intent(in) | f1, |
| real(real64), dimension(:), intent(in) | f2 | ||
| ) |
dot product between two vectors (mesh functions) without conjugation
This function returns the dot product between two vectors, but using the mesh_aux defined as a global object in this module. This way it can be called by external libraries, passing only the two vectors. First, one has to make sure that mesh_aux is pointing to some defined mesh data structure, by calling mesh_init_mesh_aux.
Definition at line 1218 of file mesh_function.F90.
| subroutine, public mesh_function_oct_m::dmf_remove_average_aux | ( | real(real64), dimension(:), intent(inout) | f | ) |
Interface for nullspace removal in linear solvers.
Definition at line 1231 of file mesh_function.F90.
| real(real64) function, public mesh_function_oct_m::dmf_nrm2_aux | ( | real(real64), dimension(:), intent(in) | ff | ) |
calculate norm2 of a vector (mesh function)
This uses the mesh_aux defined as a global object in this module. This way it can be called by external libraries, passing only the two vectors. First, one has to make sure that mesh_aux is pointing to some defined mesh data structure, by calling mesh_init_mesh_aux.
Definition at line 1251 of file mesh_function.F90.
|
private |
Integrate a function on the mesh.
\[ d = \sum_i^N f_i dV_i \]
where \( f_i \) is the discrete function, \(dV_i\) is the volume element, and \( N \) is the number of mesh points.
| [in] | ff | Function to integrate with dimensions (1:mesh%np) |
| [in] | mask | Define which grid points to integrate over |
| [in] | reduce | Perform reduction over all grid domains |
Definition at line 1344 of file mesh_function.F90.
|
private |
Integrate of a vector of functins.
| [in] | ff | Function to integrate with dimensions (1:mesh%np) |
| [in] | mask | Define which grid points to integrate over |
| [in] | reduce | Perform reduction over all grid domains |
Definition at line 1390 of file mesh_function.F90.
| subroutine, public mesh_function_oct_m::zmf_remove_average | ( | class(mesh_t), intent(in) | mesh, |
| complex(real64), dimension(:), intent(inout) | ff, | ||
| logical, intent(in), optional | reduce | ||
| ) |
Remove the average value of a mesh function.
Definition at line 1419 of file mesh_function.F90.
| subroutine, public mesh_function_oct_m::zmf_normalize | ( | class(mesh_t), intent(in) | mesh, |
| integer, intent(in) | dim, | ||
| complex(real64), dimension(:,:), intent(inout), contiguous | psi, | ||
| real(real64), intent(out), optional | norm | ||
| ) |
Normalize a mesh function psi.
| [in] | mesh | underlying mesh |
| [in] | dim | spinor dimension of the function |
| [in,out] | psi | mesh function psi(mesh%np, dim) |
| [out] | norm | optional output of the norm |
Definition at line 1463 of file mesh_function.F90.
|
private |
this function returns the dot product between two mesh functions
| [in] | mesh | underlying mesh |
| [in] | f2 | mesh functions |
| [in] | reduce | if true, perform mpi reduction |
| [in] | dotu | if true, use blas_dotu instead of blas_dot; no complex conjugation. Default is false. This has no effect if working with real version |
Definition at line 1493 of file mesh_function.F90.
|
private |
dot product for vector valued mesh functions
| [in] | mesh | underlying mesh |
| [in] | dim | dimensions |
| [in] | f2 | mesh functions of dimension (1:mesh%np, 1:dim) |
| [in] | reduce | if true, perform mpi reduction |
| [in] | dotu | if true, use lalg_dotu instead of lalg_dot; no complex conjugation. Default is false. |
| [in] | np | optional number of points over which the integral is performed |
Definition at line 1577 of file mesh_function.F90.
|
private |
this function returns the norm of a mesh function
| [in] | mesh | underlying mesh |
| [in] | ff | mesh function |
| [in] | reduce | if true, perform mpi reduction |
Definition at line 1609 of file mesh_function.F90.
|
private |
this function returns the norm of a vector of mesh functions
| [in] | mesh | underlying mesh |
| [in] | dim | dimensions |
| [in] | ff | mesh function of dimension (1:mesh%np, 1:dim) |
| [in] | reduce | if true, perform mpi reduction |
Definition at line 1651 of file mesh_function.F90.
| complex(real64) function, public mesh_function_oct_m::zmf_moment | ( | class(mesh_t), intent(in) | mesh, |
| complex(real64), dimension(:), intent(in), contiguous | ff, | ||
| integer, intent(in) | idir, | ||
| integer, intent(in) | order | ||
| ) |
This function calculates the "order" moment of the function ff.
moment = \( \int ff({\bf x}) {\bf x}_{\rm idir}^{\rm order} \)
| [in] | mesh | underlying mesh |
| [in] | ff | mesh function |
| [in] | idir | Cartesian direction |
| [in] | order | order of the moment |
Definition at line 1677 of file mesh_function.F90.
| subroutine, public mesh_function_oct_m::zmf_random | ( | class(mesh_t), intent(in) | mesh, |
| complex(real64), dimension(:), intent(out), contiguous | ff, | ||
| integer(int64), intent(in), optional | pre_shift, | ||
| integer(int64), intent(in), optional | post_shift, | ||
| integer(int64), intent(in), optional | seed, | ||
| logical, intent(in), optional | normalized | ||
| ) |
This subroutine fills a function with random values.
| [in] | normalized | whether generate states should have norm 1, true by default |
Definition at line 1706 of file mesh_function.F90.
| subroutine, public mesh_function_oct_m::zmf_interpolate_points | ( | integer, intent(in) | ndim, |
| integer, intent(in) | npoints_in, | ||
| real(real64), dimension(:, :), intent(in), contiguous | x_in, | ||
| complex(real64), dimension(:), intent(in), contiguous | f_in, | ||
| integer, intent(in) | npoints_out, | ||
| real(real64), dimension(:,:), intent(in), contiguous | x_out, | ||
| complex(real64), dimension(:), intent(out), contiguous | 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.
| [in] | f_in | function (1:npoints_in)) |
| [in] | x_in | coordinates of in points (1:npoints_in, 1:ndim) |
| [in] | x_out | coordinates of out points (1:npoints_out, 1:ndim) |
| [out] | f_out | (1:npoints_out) |
Definition at line 1761 of file mesh_function.F90.
|
private |
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.
| [in] | mesh | underlying mesh |
| [in] | plane | plane to interpolate onto |
| [in] | ff | function defined on mesh |
Definition at line 1812 of file mesh_function.F90.
|
private |
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.
| [in] | mesh | underlying mesh |
| [in] | line | line to interpolate onto |
| [in] | ff | function defined on mesh |
Definition at line 1868 of file mesh_function.F90.
|
private |
This subroutine calculates the surface integral of a scalar function on a given plane.
| [in] | mesh | underlying mesh |
| [in] | ff | function to integrate; dimensions (1:mesh%np) |
| [in] | plane | plane for surface integration |
Definition at line 1916 of file mesh_function.F90.
|
private |
This subroutine calculates the surface integral of a vector function on a given plane.
| [in] | mesh | underlying mesh |
| [in] | ff | function to integrate; dimensions (mesh%np, mesh%box%dim) |
| [in] | plane | plane for surface integration |
Definition at line 1945 of file mesh_function.F90.
|
private |
This subroutine calculates the line integral of a scalar function on a given line.
| [in] | mesh | underlying mesh |
| [in] | ff | function defined on mesh; dimensions (1:mesh%np) |
| [in] | line | line to integrate along |
Definition at line 1975 of file mesh_function.F90.
|
private |
This subroutine calculates the line integral of a vector function on a given line.
| [in] | mesh | underlying mesh |
| [in] | ff | function defined on mesh; dimensions (mesh%np, mesh%box%dim) |
| [in] | line | line to integrate along |
Definition at line 2004 of file mesh_function.F90.
| subroutine, public mesh_function_oct_m::zmf_multipoles | ( | class(mesh_t), intent(in) | mesh, |
| complex(real64), dimension(:), intent(in), contiguous | ff, | ||
| integer, intent(in) | lmax, | ||
| complex(real64), dimension(:), intent(out), contiguous | multipole, | ||
| logical, dimension(:), intent(in), optional, contiguous | mask | ||
| ) |
This routine calculates the multipoles of a function ff.
defined in the following way:
And so on.
| [in] | mesh | underlying mesh |
| [in] | ff | function to integrate |
| [in] | lmax | maximum angular momentum |
| [out] | multipole | ((lmax + 1)**2) |
| [in] | mask | (1:mesh%np) |
Definition at line 2041 of file mesh_function.F90.
| subroutine, public mesh_function_oct_m::zmf_dipole | ( | class(mesh_t), intent(in) | mesh, |
| complex(real64), dimension(:), intent(in), contiguous | ff, | ||
| complex(real64), dimension(:), intent(out), contiguous | dipole, | ||
| logical, dimension(:), intent(in), optional, contiguous | mask | ||
| ) |
This routine calculates the dipole of a function ff, for arbitrary dimensions.
| [in] | mesh | underlying mesh |
| [in] | ff | (1:mesh%np) |
| [out] | dipole | (1:mesh%box%dim) |
| [in] | mask | (1:mesh%np) |
Definition at line 2103 of file mesh_function.F90.
| complex(real64) function, public mesh_function_oct_m::zmf_dotp_aux | ( | complex(real64), dimension(:), intent(in) | f1, |
| complex(real64), dimension(:), intent(in) | f2 | ||
| ) |
dot product between two vectors (mesh functions)
This function returns the dot product between two vectors, but using the mesh_aux defined as a global object in this module. This way it can be called by external libraries, passing only the two vectors. First, one has to make sure that mesh_aux is pointing to some defined mesh data structure, by calling mesh_init_mesh_aux.
Definition at line 2149 of file mesh_function.F90.
| complex(real64) function, public mesh_function_oct_m::zmf_dotu_aux | ( | complex(real64), dimension(:), intent(in) | f1, |
| complex(real64), dimension(:), intent(in) | f2 | ||
| ) |
dot product between two vectors (mesh functions) without conjugation
This function returns the dot product between two vectors, but using the mesh_aux defined as a global object in this module. This way it can be called by external libraries, passing only the two vectors. First, one has to make sure that mesh_aux is pointing to some defined mesh data structure, by calling mesh_init_mesh_aux.
Definition at line 2169 of file mesh_function.F90.
| subroutine, public mesh_function_oct_m::zmf_remove_average_aux | ( | complex(real64), dimension(:), intent(inout) | f | ) |
Interface for nullspace removal in linear solvers.
Definition at line 2182 of file mesh_function.F90.
| real(real64) function, public mesh_function_oct_m::zmf_nrm2_aux | ( | complex(real64), dimension(:), intent(in) | ff | ) |
calculate norm2 of a vector (mesh function)
This uses the mesh_aux defined as a global object in this module. This way it can be called by external libraries, passing only the two vectors. First, one has to make sure that mesh_aux is pointing to some defined mesh data structure, by calling mesh_init_mesh_aux.
Definition at line 2202 of file mesh_function.F90.
| logical, public mesh_function_oct_m::sp_parallel |
Definition at line 174 of file mesh_function.F90.
| integer, public mesh_function_oct_m::sp_np |
Definition at line 175 of file mesh_function.F90.
| integer, public mesh_function_oct_m::sp_dim |
Definition at line 175 of file mesh_function.F90.
| integer, public mesh_function_oct_m::sp_st1 |
Definition at line 175 of file mesh_function.F90.
| integer, public mesh_function_oct_m::sp_st2 |
Definition at line 175 of file mesh_function.F90.
| integer, public mesh_function_oct_m::sp_kp1 |
Definition at line 175 of file mesh_function.F90.
| integer, public mesh_function_oct_m::sp_kp2 |
Definition at line 175 of file mesh_function.F90.
| integer, public mesh_function_oct_m::sp_distdot_mode |
Definition at line 176 of file mesh_function.F90.
| type(mpi_grp_t), public mesh_function_oct_m::sp_grp |
Definition at line 177 of file mesh_function.F90.
| class(mesh_t), pointer, public mesh_function_oct_m::mesh_aux => null() |
Globally-scoped pointer to the mesh instance.
Definition at line 215 of file mesh_function.F90.