![]()  | 
  
    Octopus
    
   | 
 
This module defines functions over batches of mesh functions. More...
This module defines functions over batches of mesh functions.
Data Types | |
| type | batch_p_t | 
Functions/Subroutines | |
| subroutine, public | mesh_batch_nrm2 (mesh, aa, nrm2, reduce) | 
| Calculate the norms (norm2, not the square!) of a batch of mesh functions.  More... | |
| subroutine, public | dmesh_batch_dotp_matrix (mesh, aa, bb, dot, reduce) | 
| Calculate the overlap matrix of two batches.  More... | |
| subroutine, public | dmesh_batch_dotp_self (mesh, aa, dot, reduce) | 
| calculate the overlap matrix of a batch with itself  More... | |
| subroutine, public | dmesh_batch_dotp_vector (mesh, aa, bb, dot, reduce, cproduct) | 
| calculate the vector of dot-products of mesh functions between two batches  More... | |
| subroutine, public | dmesh_batch_mf_dotp (mesh, aa, psi, dot, reduce, nst) | 
| calculate the dot products between a batch and a vector of mesh functions  More... | |
| subroutine, public | dmesh_batch_codensity (mesh, aa, psi, rho) | 
| calculate the co-densities  More... | |
| subroutine, public | dmesh_batch_exchange_points (mesh, aa, forward_map, backward_map) | 
| This functions exchanges points of a mesh according to a certain map. Two possible maps can be given. Only one map argument must be present.  More... | |
| subroutine | dpriv_mesh_batch_nrm2 (mesh, aa, nrm2) | 
| This function should not be called directly, but through mesh_batch_nrm2.  More... | |
| subroutine, public | dmesh_batch_orthogonalization (mesh, nst, psib, phib, normalize, overlap, norm, gs_scheme, full_batch) | 
| Orthonormalizes states of phib to the orbitals of nst batches of psi.  More... | |
| subroutine, public | dmesh_batch_normalize (mesh, psib, norm) | 
| Normalize a batch.  More... | |
| subroutine, public | zmesh_batch_dotp_matrix (mesh, aa, bb, dot, reduce) | 
| Calculate the overlap matrix of two batches.  More... | |
| subroutine, public | zmesh_batch_dotp_self (mesh, aa, dot, reduce) | 
| calculate the overlap matrix of a batch with itself  More... | |
| subroutine, public | zmesh_batch_dotp_vector (mesh, aa, bb, dot, reduce, cproduct) | 
| calculate the vector of dot-products of mesh functions between two batches  More... | |
| subroutine, public | zmesh_batch_mf_dotp (mesh, aa, psi, dot, reduce, nst) | 
| calculate the dot products between a batch and a vector of mesh functions  More... | |
| subroutine, public | zmesh_batch_codensity (mesh, aa, psi, rho) | 
| calculate the co-densities  More... | |
| subroutine, public | zmesh_batch_exchange_points (mesh, aa, forward_map, backward_map) | 
| This functions exchanges points of a mesh according to a certain map. Two possible maps can be given. Only one map argument must be present.  More... | |
| subroutine | zpriv_mesh_batch_nrm2 (mesh, aa, nrm2) | 
| This function should not be called directly, but through mesh_batch_nrm2.  More... | |
| subroutine, public | zmesh_batch_orthogonalization (mesh, nst, psib, phib, normalize, overlap, norm, gs_scheme, full_batch) | 
| Orthonormalizes states of phib to the orbitals of nst batches of psi.  More... | |
| subroutine, public | zmesh_batch_normalize (mesh, psib, norm) | 
| Normalize a batch.  More... | |
| subroutine, public mesh_batch_oct_m::mesh_batch_nrm2 | ( | class(mesh_t), intent(in) | mesh, | 
| class(batch_t), intent(in) | aa, | ||
| real(real64), dimension(:), intent(out), contiguous | nrm2, | ||
| logical, intent(in), optional | reduce | ||
| ) | 
Calculate the norms (norm2, not the square!) of a batch of mesh functions.
| [in] | mesh | underlying mesh | 
| [in] | aa | batch of mesh functions | 
| [out] | nrm2 | vector of norms | 
| [in] | reduce | optional flag whether to perform reduction; default=.true. | 
Definition at line 176 of file mesh_batch.F90.
| subroutine, public mesh_batch_oct_m::dmesh_batch_dotp_matrix | ( | class(mesh_t), intent(in) | mesh, | 
| class(batch_t), intent(in) | aa, | ||
| class(batch_t), intent(in) | bb, | ||
| real(real64), dimension(:, :), intent(inout), contiguous | dot, | ||
| logical, intent(in), optional | reduce | ||
| ) | 
Calculate the overlap matrix of two batches.
| [in] | mesh | underlying mesh | 
| [in] | aa | batch aa | 
| [in] | bb | batch bb | 
| [in,out] | dot | result: dot_ij = < aa(i) | bb(j) >; dimension (states%st_start: states%st_end, states%st_start: states%st_end) | 
| [in] | reduce | optional flag whether to perform reduction; default = .true. | 
Definition at line 270 of file mesh_batch.F90.
| subroutine, public mesh_batch_oct_m::dmesh_batch_dotp_self | ( | class(mesh_t), intent(in) | mesh, | 
| class(batch_t), intent(in) | aa, | ||
| real(real64), dimension(:, :), intent(inout), contiguous | dot, | ||
| logical, intent(in), optional | reduce | ||
| ) | 
calculate the overlap matrix of a batch with itself
| [in] | mesh | underlying mesh | 
| [in] | aa | batch aa | 
| [in,out] | dot | result: dot_ij = < aa(i) | aa(j) >; dimension (1:aa%nst, 1:aa%nst) | 
| [in] | reduce | optional flag whether to perform reduction; default = .true. | 
Definition at line 516 of file mesh_batch.F90.
| subroutine, public mesh_batch_oct_m::dmesh_batch_dotp_vector | ( | class(mesh_t), intent(in) | mesh, | 
| class(batch_t), intent(in) | aa, | ||
| class(batch_t), intent(in) | bb, | ||
| real(real64), dimension(:), intent(inout), contiguous | dot, | ||
| logical, intent(in), optional | reduce, | ||
| logical, intent(in), optional | cproduct | ||
| ) | 
calculate the vector of dot-products of mesh functions between two batches
| [in] | mesh | underlying mesh | 
| [in] | aa | batch aa | 
| [in] | bb | batch bb | 
| [in,out] | dot | result: dot_i = < aa(i) | bb(i) > | 
| [in] | reduce | optional flag whether to perform reduction; default = .true. | 
| [in] | cproduct | optional flag: complex conj. product; default = .false. | 
Definition at line 631 of file mesh_batch.F90.
| subroutine, public mesh_batch_oct_m::dmesh_batch_mf_dotp | ( | class(mesh_t), intent(in) | mesh, | 
| class(batch_t), intent(in) | aa, | ||
| real(real64), dimension(:,:), intent(in) | psi, | ||
| real(real64), dimension(:), intent(inout) | dot, | ||
| logical, intent(in), optional | reduce, | ||
| integer, intent(in), optional | nst | ||
| ) | 
calculate the dot products between a batch and a vector of mesh functions
| [in] | mesh | underlying mesh | 
| [in] | aa | batch aa | 
| [in] | psi | mesh functions; min. dimension (1:np, 1:nst) | 
| [in,out] | dot | result dot_i = < aa(i) | psi(i) > | 
| [in] | reduce | optional flag whether to perform reduction; default = .true. | 
| [in] | nst | optional number of states; default = aanst | 
Definition at line 804 of file mesh_batch.F90.
| subroutine, public mesh_batch_oct_m::dmesh_batch_codensity | ( | class(mesh_t), intent(in) | mesh, | 
| class(batch_t), intent(in) | aa, | ||
| real(real64), dimension(:,:), intent(in) | psi, | ||
| real(real64), dimension(:,:), intent(out) | rho | ||
| ) | 
calculate the co-densities
Result \( \rho_i(x) = \psi(x) \phi_i(x) \) where the $\phi_i$ are given by the batch aa.
| [in] | mesh | The mesh descriptor. | 
| [in] | aa | A batch which contains the mesh functions | 
| [in] | psi | A mesh function; dimension (1:mesh%np, 1:aadim) | 
| [out] | rho | An array containing the result of the co-density | 
Definition at line 964 of file mesh_batch.F90.
| subroutine, public mesh_batch_oct_m::dmesh_batch_exchange_points | ( | class(mesh_t), intent(in) | mesh, | 
| class(batch_t), intent(inout) | aa, | ||
| integer(int64), dimension(:), intent(in), optional | forward_map, | ||
| logical, intent(in), optional | backward_map | ||
| ) | 
This functions exchanges points of a mesh according to a certain map. Two possible maps can be given. Only one map argument must be present.
| [in] | mesh | The mesh descriptor. | 
| [in,out] | aa | A batch which contains the mesh functions whose points will be exchanged. | 
| [in] | forward_map | A map which gives the destination of the value each point. | 
| [in] | backward_map | A map which gives the source of the value of each point. | 
Definition at line 1025 of file mesh_batch.F90.
      
  | 
  private | 
This function should not be called directly, but through mesh_batch_nrm2.
Definition at line 1247 of file mesh_batch.F90.
| subroutine, public mesh_batch_oct_m::dmesh_batch_orthogonalization | ( | class(mesh_t), intent(in) | mesh, | 
| integer, intent(in) | nst, | ||
| class(batch_p_t), dimension(:), intent(in) | psib, | ||
| class(batch_t), intent(inout) | phib, | ||
| logical, intent(in), optional | normalize, | ||
| real(real64), dimension(:,:), intent(out), optional | overlap, | ||
| real(real64), dimension(:), intent(out), optional | norm, | ||
| integer, intent(in), optional | gs_scheme, | ||
| logical, intent(in), optional | full_batch | ||
| ) | 
Orthonormalizes states of phib to the orbitals of nst batches of psi.
It also permits doing only the orthogonalization (no normalization).
| [in] | mesh | underlying mesh | 
| [in] | nst | number of states | 
| [in] | psib | psi(nst) (array of nst pointers to batches) | 
| [in,out] | phib | phi | 
| [in] | normalize | optional flag whether to normalize the result; default = .false. | 
| [out] | overlap | optional result: (nst, phibnst) | 
| [out] | norm | optional result: array of norms | 
| [in] | gs_scheme | optional: Gram-Schmidt scheme to use | 
| [in] | full_batch | optional: orthogonalize full batch | 
Definition at line 1433 of file mesh_batch.F90.
| subroutine, public mesh_batch_oct_m::dmesh_batch_normalize | ( | class(mesh_t), intent(in) | mesh, | 
| class(batch_t), intent(inout) | psib, | ||
| real(real64), dimension(:), intent(out), optional | norm | ||
| ) | 
Normalize a batch.
| [in] | mesh | underlying mesh | 
| [in,out] | psib | batch to normalize | 
| [out] | norm | optional result: array of norms | 
Definition at line 1558 of file mesh_batch.F90.
| subroutine, public mesh_batch_oct_m::zmesh_batch_dotp_matrix | ( | class(mesh_t), intent(in) | mesh, | 
| class(batch_t), intent(in) | aa, | ||
| class(batch_t), intent(in) | bb, | ||
| complex(real64), dimension(:, :), intent(inout), contiguous | dot, | ||
| logical, intent(in), optional | reduce | ||
| ) | 
Calculate the overlap matrix of two batches.
| [in] | mesh | underlying mesh | 
| [in] | aa | batch aa | 
| [in] | bb | batch bb | 
| [in,out] | dot | result: dot_ij = < aa(i) | bb(j) >; dimension (states%st_start: states%st_end, states%st_start: states%st_end) | 
| [in] | reduce | optional flag whether to perform reduction; default = .true. | 
Definition at line 1657 of file mesh_batch.F90.
| subroutine, public mesh_batch_oct_m::zmesh_batch_dotp_self | ( | class(mesh_t), intent(in) | mesh, | 
| class(batch_t), intent(in) | aa, | ||
| complex(real64), dimension(:, :), intent(inout), contiguous | dot, | ||
| logical, intent(in), optional | reduce | ||
| ) | 
calculate the overlap matrix of a batch with itself
| [in] | mesh | underlying mesh | 
| [in] | aa | batch aa | 
| [in,out] | dot | result: dot_ij = < aa(i) | aa(j) >; dimension (1:aa%nst, 1:aa%nst) | 
| [in] | reduce | optional flag whether to perform reduction; default = .true. | 
Definition at line 1903 of file mesh_batch.F90.
| subroutine, public mesh_batch_oct_m::zmesh_batch_dotp_vector | ( | class(mesh_t), intent(in) | mesh, | 
| class(batch_t), intent(in) | aa, | ||
| class(batch_t), intent(in) | bb, | ||
| complex(real64), dimension(:), intent(inout), contiguous | dot, | ||
| logical, intent(in), optional | reduce, | ||
| logical, intent(in), optional | cproduct | ||
| ) | 
calculate the vector of dot-products of mesh functions between two batches
| [in] | mesh | underlying mesh | 
| [in] | aa | batch aa | 
| [in] | bb | batch bb | 
| [in,out] | dot | result: dot_i = < aa(i) | bb(i) > | 
| [in] | reduce | optional flag whether to perform reduction; default = .true. | 
| [in] | cproduct | optional flag: complex conj. product; default = .false. | 
Definition at line 2018 of file mesh_batch.F90.
| subroutine, public mesh_batch_oct_m::zmesh_batch_mf_dotp | ( | class(mesh_t), intent(in) | mesh, | 
| class(batch_t), intent(in) | aa, | ||
| complex(real64), dimension(:,:), intent(in) | psi, | ||
| complex(real64), dimension(:), intent(inout) | dot, | ||
| logical, intent(in), optional | reduce, | ||
| integer, intent(in), optional | nst | ||
| ) | 
calculate the dot products between a batch and a vector of mesh functions
| [in] | mesh | underlying mesh | 
| [in] | aa | batch aa | 
| [in] | psi | mesh functions; min. dimension (1:np, 1:nst) | 
| [in,out] | dot | result dot_i = < aa(i) | psi(i) > | 
| [in] | reduce | optional flag whether to perform reduction; default = .true. | 
| [in] | nst | optional number of states; default = aanst | 
Definition at line 2191 of file mesh_batch.F90.
| subroutine, public mesh_batch_oct_m::zmesh_batch_codensity | ( | class(mesh_t), intent(in) | mesh, | 
| class(batch_t), intent(in) | aa, | ||
| complex(real64), dimension(:,:), intent(in) | psi, | ||
| complex(real64), dimension(:,:), intent(out) | rho | ||
| ) | 
calculate the co-densities
Result \( \rho_i(x) = \psi(x) \phi_i(x) \) where the $\phi_i$ are given by the batch aa.
| [in] | mesh | The mesh descriptor. | 
| [in] | aa | A batch which contains the mesh functions | 
| [in] | psi | A mesh function; dimension (1:mesh%np, 1:aadim) | 
| [out] | rho | An array containing the result of the co-density | 
Definition at line 2351 of file mesh_batch.F90.
| subroutine, public mesh_batch_oct_m::zmesh_batch_exchange_points | ( | class(mesh_t), intent(in) | mesh, | 
| class(batch_t), intent(inout) | aa, | ||
| integer(int64), dimension(:), intent(in), optional | forward_map, | ||
| logical, intent(in), optional | backward_map | ||
| ) | 
This functions exchanges points of a mesh according to a certain map. Two possible maps can be given. Only one map argument must be present.
| [in] | mesh | The mesh descriptor. | 
| [in,out] | aa | A batch which contains the mesh functions whose points will be exchanged. | 
| [in] | forward_map | A map which gives the destination of the value each point. | 
| [in] | backward_map | A map which gives the source of the value of each point. | 
Definition at line 2412 of file mesh_batch.F90.
      
  | 
  private | 
This function should not be called directly, but through mesh_batch_nrm2.
Definition at line 2634 of file mesh_batch.F90.
| subroutine, public mesh_batch_oct_m::zmesh_batch_orthogonalization | ( | class(mesh_t), intent(in) | mesh, | 
| integer, intent(in) | nst, | ||
| class(batch_p_t), dimension(:), intent(in) | psib, | ||
| class(batch_t), intent(inout) | phib, | ||
| logical, intent(in), optional | normalize, | ||
| complex(real64), dimension(:,:), intent(out), optional | overlap, | ||
| complex(real64), dimension(:), intent(out), optional | norm, | ||
| integer, intent(in), optional | gs_scheme, | ||
| logical, intent(in), optional | full_batch | ||
| ) | 
Orthonormalizes states of phib to the orbitals of nst batches of psi.
It also permits doing only the orthogonalization (no normalization).
| [in] | mesh | underlying mesh | 
| [in] | nst | number of states | 
| [in] | psib | psi(nst) (array of nst pointers to batches) | 
| [in,out] | phib | phi | 
| [in] | normalize | optional flag whether to normalize the result; default = .false. | 
| [out] | overlap | optional result: (nst, phibnst) | 
| [out] | norm | optional result: array of norms | 
| [in] | gs_scheme | optional: Gram-Schmidt scheme to use | 
| [in] | full_batch | optional: orthogonalize full batch | 
Definition at line 2844 of file mesh_batch.F90.
| subroutine, public mesh_batch_oct_m::zmesh_batch_normalize | ( | class(mesh_t), intent(in) | mesh, | 
| class(batch_t), intent(inout) | psib, | ||
| real(real64), dimension(:), intent(out), optional | norm | ||
| ) | 
Normalize a batch.
| [in] | mesh | underlying mesh | 
| [in,out] | psib | batch to normalize | 
| [out] | norm | optional result: array of norms | 
Definition at line 2969 of file mesh_batch.F90.