![]() |
Octopus
|
Data Types | |
| interface | states_elec_rotate |
Functions/Subroutines | |
| subroutine, public | states_elec_orthogonalize (st, namespace, mesh) |
| Orthonormalizes nst orbitals in mesh (honours state parallelization). More... | |
| subroutine, public | states_elec_calc_norms (grid, kpoints, st, norm_ks) |
| Compute the norms of the Kohn-Sham orbitals. More... | |
| subroutine, public | dstates_elec_orthogonalization_full (st, namespace, mesh, ik) |
| Orthonormalizes nst orbitals in mesh (honours state parallelization). More... | |
| subroutine | dstates_elec_trsm (st, mesh, ik, ss) |
| Apply the inverse of ss to the states st. More... | |
| subroutine, public | dstates_elec_orthogonalize_single (st, mesh, nst, iqn, phi, normalize, mask, overlap, norm, Theta_fi, beta_ij, against_all) |
| ofthogonalize a single wave function against a set of states More... | |
| subroutine, public | dstates_elec_orthogonalize_single_batch (st, mesh, nst, iqn, phi, normalize, mask, overlap, norm, Theta_fi, beta_ij, against_all) |
| orthogonalize a single wave function against a set of states More... | |
| subroutine, public | dstates_elec_orthogonalization (mesh, nst, dim, psi, phi, normalize, mask, overlap, norm, Theta_fi, beta_ij, gs_scheme) |
| Orthonormalizes phi to the nst orbitals psi. More... | |
| real(real64) function, public | dstates_elec_residue (mesh, dim, hf, ee, ff) |
| subroutine, public | dstates_elec_matrix (st1, st2, mesh, aa) |
| subroutine, public | dstates_elec_calc_orth_test (st, namespace, mesh, kpoints) |
| subroutine | dstates_elec_rotate (st, mesh, uu, ik) |
| subroutine, public | dstates_elec_calc_overlap (st, mesh, ik, overlap) |
| Computes the overlap matrix of the Kohn-Sham states with k-point ik. More... | |
| subroutine, public | dstates_elec_calc_projections (st, gs_st, namespace, mesh, ik, proj, gs_nst) |
| This routine computes the projection between two set of states. More... | |
| subroutine, public | dstates_elec_rrqr_decomposition (st, namespace, mesh, nst, root, ik, jpvt) |
| Perform RRQR on the transpose states stored in the states object and return the pivot vector. More... | |
| subroutine, public | zstates_elec_orthogonalization_full (st, namespace, mesh, ik) |
| Orthonormalizes nst orbitals in mesh (honours state parallelization). More... | |
| subroutine | zstates_elec_trsm (st, mesh, ik, ss) |
| Apply the inverse of ss to the states st. More... | |
| subroutine, public | zstates_elec_orthogonalize_single (st, mesh, nst, iqn, phi, normalize, mask, overlap, norm, Theta_fi, beta_ij, against_all) |
| ofthogonalize a single wave function against a set of states More... | |
| subroutine, public | zstates_elec_orthogonalize_single_batch (st, mesh, nst, iqn, phi, normalize, mask, overlap, norm, Theta_fi, beta_ij, against_all) |
| orthogonalize a single wave function against a set of states More... | |
| subroutine, public | zstates_elec_orthogonalization (mesh, nst, dim, psi, phi, normalize, mask, overlap, norm, Theta_fi, beta_ij, gs_scheme) |
| Orthonormalizes phi to the nst orbitals psi. More... | |
| real(real64) function, public | zstates_elec_residue (mesh, dim, hf, ee, ff) |
| subroutine, public | zstates_elec_matrix (st1, st2, mesh, aa) |
| subroutine, public | zstates_elec_calc_orth_test (st, namespace, mesh, kpoints) |
| subroutine | zstates_elec_rotate (st, mesh, uu, ik) |
| subroutine, public | zstates_elec_calc_overlap (st, mesh, ik, overlap) |
| Computes the overlap matrix of the Kohn-Sham states with k-point ik. More... | |
| subroutine, public | zstates_elec_calc_projections (st, gs_st, namespace, mesh, ik, proj, gs_nst) |
| This routine computes the projection between two set of states. More... | |
| subroutine, public | zstates_elec_rrqr_decomposition (st, namespace, mesh, nst, root, ik, jpvt) |
| Perform RRQR on the transpose states stored in the states object and return the pivot vector. More... | |
| subroutine, public states_elec_calc_oct_m::states_elec_orthogonalize | ( | type(states_elec_t), intent(inout) | st, |
| type(namespace_t), intent(in) | namespace, | ||
| class(mesh_t), intent(in) | mesh | ||
| ) |
Orthonormalizes nst orbitals in mesh (honours state parallelization).
| [in,out] | st | states to be orthogonalized |
| [in] | namespace | namespace for message printout |
| [in] | mesh | underlying mesh |
| [in] | ik | kpoint index |
Definition at line 196 of file states_elec_calc.F90.
| subroutine, public states_elec_calc_oct_m::states_elec_calc_norms | ( | type(grid_t), intent(in) | grid, |
| type(kpoints_t), intent(in) | kpoints, | ||
| type(states_elec_t), intent(in) | st, | ||
| real(real64), dimension(:, :), intent(out), contiguous | norm_ks | ||
| ) |
Compute the norms of the Kohn-Sham orbitals.
| [in] | st | KS states |
| [out] | norm_ks | Norm of KS wavefunctions/orbitals |
Definition at line 219 of file states_elec_calc.F90.
| subroutine, public states_elec_calc_oct_m::dstates_elec_orthogonalization_full | ( | type(states_elec_t), intent(inout) | st, |
| type(namespace_t), intent(in) | namespace, | ||
| class(mesh_t), intent(in) | mesh, | ||
| integer, intent(in) | ik | ||
| ) |
Orthonormalizes nst orbitals in mesh (honours state parallelization).
| [in,out] | st | states to be orthogonalized |
| [in] | namespace | namespace for message printout |
| [in] | mesh | underlying mesh |
| [in] | ik | kpoint index |
Definition at line 327 of file states_elec_calc.F90.
|
private |
Apply the inverse of ss to the states st.
used internally by states_elec_calc_oct_m::dstates_elec_orthogonalization_full()
| [in,out] | st | states |
| [in] | mesh | underlying mesh (for np) |
| [in] | ik | kpoint index |
| [in] | ss | overlap matrix; dimension (1:st%nst, 1:st%nst) |
Definition at line 586 of file states_elec_calc.F90.
| subroutine, public states_elec_calc_oct_m::dstates_elec_orthogonalize_single | ( | type(states_elec_t), intent(in), target | st, |
| class(mesh_t), intent(in) | mesh, | ||
| integer, intent(in) | nst, | ||
| integer, intent(in) | iqn, | ||
| real(real64), dimension(:,:), intent(inout), contiguous | phi, | ||
| logical, intent(in), optional | normalize, | ||
| logical, dimension(:), intent(inout), optional | mask, | ||
| real(real64), dimension(:), intent(out), optional | overlap, | ||
| real(real64), intent(out), optional | norm, | ||
| real(real64), intent(in), optional | Theta_fi, | ||
| real(real64), dimension(:), intent(in), optional | beta_ij, | ||
| logical, intent(in), optional | against_all | ||
| ) |
ofthogonalize a single wave function against a set of states
Does not use batchified routines.
| [in] | st | the states |
| [in] | mesh | underlying mesh for number of points |
| [in] | nst | number of states to be considered |
| [in] | iqn | k-point index |
| [in,out] | phi | phi(meshnp_part, dim) |
| [in] | normalize | optional flag whether to normalize the result; default = .false. |
| [in,out] | mask | optional mask(nst); TODO: add more information |
| [out] | overlap | optional output: overlaps to the states |
| [out] | norm | optional output: norm of the resulting state |
| [in] | theta_fi | optional: TODO: add more information |
| [in] | beta_ij | optional: beta_ij(nst); TODO add more information |
| [in] | against_all | optional flag whether to include all states (up to nst) |
Definition at line 701 of file states_elec_calc.F90.
| subroutine, public states_elec_calc_oct_m::dstates_elec_orthogonalize_single_batch | ( | type(states_elec_t), intent(in) | st, |
| class(mesh_t), intent(in) | mesh, | ||
| integer, intent(in) | nst, | ||
| integer, intent(in) | iqn, | ||
| real(real64), dimension(:,:), intent(inout), contiguous | phi, | ||
| logical, intent(in), optional | normalize, | ||
| logical, dimension(:), intent(inout), optional | mask, | ||
| real(real64), dimension(:), intent(out), optional | overlap, | ||
| real(real64), intent(out), optional | norm, | ||
| real(real64), intent(in), optional | Theta_fi, | ||
| real(real64), dimension(:), intent(in), optional | beta_ij, | ||
| logical, intent(in), optional | against_all | ||
| ) |
orthogonalize a single wave function against a set of states
This version uses batchified routines.
| [in] | st | the states |
| [in] | mesh | underlying mesh for number of points |
| [in] | nst | number of states to consider |
| [in] | iqn | k-point index |
| [in,out] | phi | phi(meshnp_part, dim) |
| [in] | normalize | optional flag whether to normalize the result; default = .false. |
| [in,out] | mask | optional mask(nst) |
| [out] | overlap | optional output: overlap to the states |
| [out] | norm | optional output: norm or the result |
| [in] | theta_fi | optional theta_ij; TODO add more information |
| [in] | beta_ij | optional beta_ij(nst) |
| [in] | against_all | optional flag whether to include all states (up to nst) |
Definition at line 855 of file states_elec_calc.F90.
| subroutine, public states_elec_calc_oct_m::dstates_elec_orthogonalization | ( | class(mesh_t), intent(in) | mesh, |
| integer, intent(in) | nst, | ||
| integer, intent(in) | dim, | ||
| real(real64), dimension(:,:,:), intent(in), contiguous | psi, | ||
| real(real64), dimension(:,:), intent(inout), contiguous | phi, | ||
| logical, intent(in), optional | normalize, | ||
| logical, dimension(:), intent(inout), optional | mask, | ||
| real(real64), dimension(:), intent(out), optional | overlap, | ||
| real(real64), intent(out), optional | norm, | ||
| real(real64), intent(in), optional | Theta_fi, | ||
| real(real64), dimension(:), intent(in), optional | beta_ij, | ||
| integer, intent(in), optional | gs_scheme | ||
| ) |
Orthonormalizes phi to the nst orbitals psi.
It also permits doing only the orthogonalization (no normalization). And one can pass an extra optional argument, mask, which:
| [in] | mesh | underlying mesh for np, np_part |
| [in] | nst | number of states to orthoganolize against |
| [in] | dim | spin dimension of the wave functions |
| [in] | psi | psi(meshnp_part, dim, nst) |
| [in,out] | phi | phi(meshnp_part, dim) |
| [in] | normalize | optional flag whether to normalize the result |
| [in,out] | mask | mask(nst) |
| [out] | overlap | optional output: overlap with the states |
| [out] | norm | optional output: norm of resulting state |
| [in] | beta_ij | beta_ij(nst) |
Definition at line 1015 of file states_elec_calc.F90.
| real(real64) function, public states_elec_calc_oct_m::dstates_elec_residue | ( | class(mesh_t), intent(in) | mesh, |
| integer, intent(in) | dim, | ||
| real(real64), dimension(:,:), intent(in) | hf, | ||
| real(real64), intent(in) | ee, | ||
| real(real64), dimension(:,:), intent(in) | ff | ||
| ) |
Definition at line 1199 of file states_elec_calc.F90.
| subroutine, public states_elec_calc_oct_m::dstates_elec_matrix | ( | type(states_elec_t), intent(in) | st1, |
| type(states_elec_t), intent(in) | st2, | ||
| class(mesh_t), intent(in) | mesh, | ||
| real(real64), dimension(:, :, :), intent(out), contiguous | aa | ||
| ) |
Definition at line 1234 of file states_elec_calc.F90.
| subroutine, public states_elec_calc_oct_m::dstates_elec_calc_orth_test | ( | type(states_elec_t), intent(inout) | st, |
| type(namespace_t), intent(in) | namespace, | ||
| class(mesh_t), intent(in) | mesh, | ||
| type(kpoints_t), intent(in) | kpoints | ||
| ) |
Definition at line 1282 of file states_elec_calc.F90.
|
private |
Definition at line 1394 of file states_elec_calc.F90.
| subroutine, public states_elec_calc_oct_m::dstates_elec_calc_overlap | ( | type(states_elec_t), intent(inout) | st, |
| class(mesh_t), intent(in) | mesh, | ||
| integer, intent(in) | ik, | ||
| real(real64), dimension(:, :), intent(out), contiguous | overlap | ||
| ) |
Computes the overlap matrix of the Kohn-Sham states with k-point ik.
Definition at line 1513 of file states_elec_calc.F90.
| subroutine, public states_elec_calc_oct_m::dstates_elec_calc_projections | ( | type(states_elec_t), intent(in) | st, |
| type(states_elec_t), intent(inout) | gs_st, | ||
| type(namespace_t), intent(in) | namespace, | ||
| class(mesh_t), intent(in) | mesh, | ||
| integer, intent(in) | ik, | ||
| real(real64), dimension(:, :), intent(out), contiguous | proj, | ||
| integer, intent(in), optional | gs_nst | ||
| ) |
This routine computes the projection between two set of states.
Definition at line 1672 of file states_elec_calc.F90.
| subroutine, public states_elec_calc_oct_m::dstates_elec_rrqr_decomposition | ( | type(states_elec_t), intent(in) | st, |
| type(namespace_t), intent(in) | namespace, | ||
| class(mesh_t), intent(in) | mesh, | ||
| integer, intent(in) | nst, | ||
| logical, intent(in) | root, | ||
| integer, intent(in) | ik, | ||
| integer, dimension(:), intent(out), contiguous | jpvt | ||
| ) |
Perform RRQR on the transpose states stored in the states object and return the pivot vector.
We follow [Pizzi et al., J. Phys.: Condens. Matter 32 (2020) 165902] for doing the extension to spinors
| [in] | root | this is needed for serial |
| [in] | ik | perform SCDM with this k-point |
Definition at line 1849 of file states_elec_calc.F90.
| subroutine, public states_elec_calc_oct_m::zstates_elec_orthogonalization_full | ( | type(states_elec_t), intent(inout) | st, |
| type(namespace_t), intent(in) | namespace, | ||
| class(mesh_t), intent(in) | mesh, | ||
| integer, intent(in) | ik | ||
| ) |
Orthonormalizes nst orbitals in mesh (honours state parallelization).
| [in,out] | st | states to be orthogonalized |
| [in] | namespace | namespace for message printout |
| [in] | mesh | underlying mesh |
| [in] | ik | kpoint index |
Definition at line 2154 of file states_elec_calc.F90.
|
private |
Apply the inverse of ss to the states st.
used internally by states_elec_calc_oct_m::zstates_elec_orthogonalization_full()
| [in,out] | st | states |
| [in] | mesh | underlying mesh (for np) |
| [in] | ik | kpoint index |
| [in] | ss | overlap matrix; dimension (1:st%nst, 1:st%nst) |
Definition at line 2413 of file states_elec_calc.F90.
| subroutine, public states_elec_calc_oct_m::zstates_elec_orthogonalize_single | ( | type(states_elec_t), intent(in), target | st, |
| class(mesh_t), intent(in) | mesh, | ||
| integer, intent(in) | nst, | ||
| integer, intent(in) | iqn, | ||
| complex(real64), dimension(:,:), intent(inout), contiguous | phi, | ||
| logical, intent(in), optional | normalize, | ||
| logical, dimension(:), intent(inout), optional | mask, | ||
| complex(real64), dimension(:), intent(out), optional | overlap, | ||
| real(real64), intent(out), optional | norm, | ||
| real(real64), intent(in), optional | Theta_fi, | ||
| complex(real64), dimension(:), intent(in), optional | beta_ij, | ||
| logical, intent(in), optional | against_all | ||
| ) |
ofthogonalize a single wave function against a set of states
Does not use batchified routines.
| [in] | st | the states |
| [in] | mesh | underlying mesh for number of points |
| [in] | nst | number of states to be considered |
| [in] | iqn | k-point index |
| [in,out] | phi | phi(meshnp_part, dim) |
| [in] | normalize | optional flag whether to normalize the result; default = .false. |
| [in,out] | mask | optional mask(nst); TODO: add more information |
| [out] | overlap | optional output: overlaps to the states |
| [out] | norm | optional output: norm of the resulting state |
| [in] | theta_fi | optional: TODO: add more information |
| [in] | beta_ij | optional: beta_ij(nst); TODO add more information |
| [in] | against_all | optional flag whether to include all states (up to nst) |
Definition at line 2528 of file states_elec_calc.F90.
| subroutine, public states_elec_calc_oct_m::zstates_elec_orthogonalize_single_batch | ( | type(states_elec_t), intent(in) | st, |
| class(mesh_t), intent(in) | mesh, | ||
| integer, intent(in) | nst, | ||
| integer, intent(in) | iqn, | ||
| complex(real64), dimension(:,:), intent(inout), contiguous | phi, | ||
| logical, intent(in), optional | normalize, | ||
| logical, dimension(:), intent(inout), optional | mask, | ||
| complex(real64), dimension(:), intent(out), optional | overlap, | ||
| real(real64), intent(out), optional | norm, | ||
| real(real64), intent(in), optional | Theta_fi, | ||
| complex(real64), dimension(:), intent(in), optional | beta_ij, | ||
| logical, intent(in), optional | against_all | ||
| ) |
orthogonalize a single wave function against a set of states
This version uses batchified routines.
| [in] | st | the states |
| [in] | mesh | underlying mesh for number of points |
| [in] | nst | number of states to consider |
| [in] | iqn | k-point index |
| [in,out] | phi | phi(meshnp_part, dim) |
| [in] | normalize | optional flag whether to normalize the result; default = .false. |
| [in,out] | mask | optional mask(nst) |
| [out] | overlap | optional output: overlap to the states |
| [out] | norm | optional output: norm or the result |
| [in] | theta_fi | optional theta_ij; TODO add more information |
| [in] | beta_ij | optional beta_ij(nst) |
| [in] | against_all | optional flag whether to include all states (up to nst) |
Definition at line 2682 of file states_elec_calc.F90.
| subroutine, public states_elec_calc_oct_m::zstates_elec_orthogonalization | ( | class(mesh_t), intent(in) | mesh, |
| integer, intent(in) | nst, | ||
| integer, intent(in) | dim, | ||
| complex(real64), dimension(:,:,:), intent(in), contiguous | psi, | ||
| complex(real64), dimension(:,:), intent(inout), contiguous | phi, | ||
| logical, intent(in), optional | normalize, | ||
| logical, dimension(:), intent(inout), optional | mask, | ||
| complex(real64), dimension(:), intent(out), optional | overlap, | ||
| complex(real64), intent(out), optional | norm, | ||
| real(real64), intent(in), optional | Theta_fi, | ||
| complex(real64), dimension(:), intent(in), optional | beta_ij, | ||
| integer, intent(in), optional | gs_scheme | ||
| ) |
Orthonormalizes phi to the nst orbitals psi.
It also permits doing only the orthogonalization (no normalization). And one can pass an extra optional argument, mask, which:
| [in] | mesh | underlying mesh for np, np_part |
| [in] | nst | number of states to orthoganolize against |
| [in] | dim | spin dimension of the wave functions |
| [in] | psi | psi(meshnp_part, dim, nst) |
| [in,out] | phi | phi(meshnp_part, dim) |
| [in] | normalize | optional flag whether to normalize the result |
| [in,out] | mask | mask(nst) |
| [out] | overlap | optional output: overlap with the states |
| [out] | norm | optional output: norm of resulting state |
| [in] | beta_ij | beta_ij(nst) |
Definition at line 2842 of file states_elec_calc.F90.
| real(real64) function, public states_elec_calc_oct_m::zstates_elec_residue | ( | class(mesh_t), intent(in) | mesh, |
| integer, intent(in) | dim, | ||
| complex(real64), dimension(:,:), intent(in) | hf, | ||
| real(real64), intent(in) | ee, | ||
| complex(real64), dimension(:,:), intent(in) | ff | ||
| ) |
Definition at line 3026 of file states_elec_calc.F90.
| subroutine, public states_elec_calc_oct_m::zstates_elec_matrix | ( | type(states_elec_t), intent(in) | st1, |
| type(states_elec_t), intent(in) | st2, | ||
| class(mesh_t), intent(in) | mesh, | ||
| complex(real64), dimension(:, :, :), intent(out), contiguous | aa | ||
| ) |
Definition at line 3061 of file states_elec_calc.F90.
| subroutine, public states_elec_calc_oct_m::zstates_elec_calc_orth_test | ( | type(states_elec_t), intent(inout) | st, |
| type(namespace_t), intent(in) | namespace, | ||
| class(mesh_t), intent(in) | mesh, | ||
| type(kpoints_t), intent(in) | kpoints | ||
| ) |
Definition at line 3109 of file states_elec_calc.F90.
|
private |
Definition at line 3221 of file states_elec_calc.F90.
| subroutine, public states_elec_calc_oct_m::zstates_elec_calc_overlap | ( | type(states_elec_t), intent(inout) | st, |
| class(mesh_t), intent(in) | mesh, | ||
| integer, intent(in) | ik, | ||
| complex(real64), dimension(:, :), intent(out), contiguous | overlap | ||
| ) |
Computes the overlap matrix of the Kohn-Sham states with k-point ik.
Definition at line 3340 of file states_elec_calc.F90.
| subroutine, public states_elec_calc_oct_m::zstates_elec_calc_projections | ( | type(states_elec_t), intent(in) | st, |
| type(states_elec_t), intent(inout) | gs_st, | ||
| type(namespace_t), intent(in) | namespace, | ||
| class(mesh_t), intent(in) | mesh, | ||
| integer, intent(in) | ik, | ||
| complex(real64), dimension(:, :), intent(out), contiguous | proj, | ||
| integer, intent(in), optional | gs_nst | ||
| ) |
This routine computes the projection between two set of states.
Definition at line 3516 of file states_elec_calc.F90.
| subroutine, public states_elec_calc_oct_m::zstates_elec_rrqr_decomposition | ( | type(states_elec_t), intent(in) | st, |
| type(namespace_t), intent(in) | namespace, | ||
| class(mesh_t), intent(in) | mesh, | ||
| integer, intent(in) | nst, | ||
| logical, intent(in) | root, | ||
| integer, intent(in) | ik, | ||
| integer, dimension(:), intent(out), contiguous | jpvt | ||
| ) |
Perform RRQR on the transpose states stored in the states object and return the pivot vector.
We follow [Pizzi et al., J. Phys.: Condens. Matter 32 (2020) 165902] for doing the extension to spinors
| [in] | root | this is needed for serial |
| [in] | ik | perform SCDM with this k-point |
Definition at line 3693 of file states_elec_calc.F90.