mbd_dipole Module

Construction of dipole tensors and dipole matrices.


Uses


Interfaces

public interface dipole_matrix

Form either a real or a complex dipole matrix.

The real-typed version is equivalent to .

$$ \begin{gathered} \mathbf T_{ij}(\mathbf q)=\sum_{\mathbf n}\mathbf T(\mathbf R_{\mathbf nij})\mathrm e^{-\mathrm i\mathbf q\cdot\mathbf R_{\mathbf nij}},\quad\mathbf R_{\mathbf nij}=\mathbf R_j+\mathbf R_\mathbf n-\mathbf R_i \ \frac{\mathrm d\mathbf R_{\mathbf nij}}{\mathrm d\mathbf R_k}=(\delta_{jk}-\delta_{ik})\mathbf I \ \mathbf{T}{ij}(\mathbf{q})\approx\mathbf{T}^\text{Ew}(\mathbf{q}) =\sum_\mathbf n^{|\mathbf R_{\mathbf nij}|

  • private function dipole_matrix_real(geom, damp, ddipmat, grad) result(dipmat)

    Arguments

    Type IntentOptional Attributes Name
    type(geom_t), intent(inout) :: geom
    type(damping_t), intent(in) :: damp
    type(grad_matrix_re_t), intent(out), optional :: ddipmat
    type(grad_request_t), intent(in), optional :: grad

    Return Value type(matrix_re_t)

  • private function dipole_matrix_complex(geom, damp, ddipmat, grad, q) result(dipmat)

    Arguments

    Type IntentOptional Attributes Name
    type(geom_t), intent(inout) :: geom
    type(damping_t), intent(in) :: damp
    type(grad_matrix_cplx_t), intent(out), optional :: ddipmat
    type(grad_request_t), intent(in), optional :: grad
    real(kind=dp), intent(in) :: q(3)

    Return Value type(matrix_cplx_t)


Functions

public function T_bare(r, dT, grad) result(T)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: r(3)
type(grad_matrix_re_t), intent(out), optional :: dT
logical, intent(in), optional :: grad

Return Value real(kind=dp), (3,3)

public function B_erfc(r, gamm, dB, grad) result(B)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: r
real(kind=dp), intent(in) :: gamm
type(grad_scalar_t), intent(out), optional :: dB
type(grad_request_t), intent(in), optional :: grad

Return Value real(kind=dp)

public function C_erfc(r, gamm, dC, grad) result(C)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: r
real(kind=dp), intent(in) :: gamm
type(grad_scalar_t), intent(out), optional :: dC
type(grad_request_t), intent(in), optional :: grad

Return Value real(kind=dp)

public function T_erfc(r, gamm, dT, grad) result(T)

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: r(3)
real(kind=dp), intent(in) :: gamm
type(grad_matrix_re_t), intent(out), optional :: dT
type(grad_request_t), intent(in), optional :: grad

Return Value real(kind=dp), (3,3)

public function T_erf_coulomb(r, sigma, dT, grad) result(T)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: r(3)
real(kind=dp), intent(in) :: sigma
type(grad_matrix_re_t), intent(out), optional :: dT
type(grad_request_t), intent(in), optional :: grad

Return Value real(kind=dp), (3,3)