ddx 0.6.0
Libary for domain-decomposition methods for polarizable continuum models
ddx_harmonics.f90 File Reference

Go to the source code of this file.

Modules

module  ddx_harmonics
 Harmonics-related core routines.
 

Functions/Subroutines

subroutine ddx_harmonics::ylmscale (p, vscales, v4pi2lp1, vscales_rel)
 Compute scaling factors of real normalized spherical harmonics. More...
 
subroutine ddx_harmonics::fmm_constants (dmax, pm, pl, vcnk, m2l_ztranslate_coef, m2l_ztranslate_adj_coef)
 Compute FMM-related constants. More...
 
subroutine ddx_harmonics::carttosph (x, rho, ctheta, stheta, cphi, sphi)
 Convert input cartesian coordinate into spherical coordinate. More...
 
subroutine ddx_harmonics::ylmbas (x, rho, ctheta, stheta, cphi, sphi, p, vscales, vylm, vplm, vcos, vsin)
 Compute all spherical harmonics up to a given degree at a given point. More...
 
subroutine ddx_harmonics::trgev (cphi, sphi, p, vcos, vsin)
 Compute arrays of \( \cos(m \phi) \) and \( \sin(m \phi) \). More...
 
subroutine ddx_harmonics::polleg (ctheta, stheta, p, vplm)
 Compute associated Legendre polynomials. More...
 
subroutine ddx_harmonics::polleg_work (ctheta, stheta, p, vplm, work)
 Compute associated Legendre polynomials. More...
 
subroutine ddx_harmonics::modified_spherical_bessel_first_kind (lmax, argument, SI, DI, work)
 
subroutine ddx_harmonics::modified_spherical_bessel_second_kind (lmax, argument, SK, DK, work)
 
subroutine ddx_harmonics::fmm_p2m (c, src_q, dst_r, p, vscales, beta, dst_m)
 Accumulate a multipole expansion induced by a particle of a given charge. More...
 
subroutine ddx_harmonics::fmm_p2m_work (c, src_q, dst_r, p, vscales, beta, dst_m, work)
 Accumulate a multipole expansion induced by a particle of a given charge. More...
 
subroutine ddx_harmonics::fmm_m2p (c, src_r, p, vscales_rel, alpha, src_m, beta, dst_v)
 Accumulate potential, induced by multipole spherical harmonics. More...
 
subroutine ddx_harmonics::fmm_m2p_work (c, src_r, p, vscales_rel, alpha, src_m, beta, dst_v, work)
 Accumulate potential, induced by multipole spherical harmonics. More...
 
subroutine ddx_harmonics::fmm_m2p_bessel (c, src_r, p, vscales, alpha, src_m, beta, dst_v)
 Accumulate potential, induced by multipole spherical harmonics. More...
 
subroutine ddx_harmonics::fmm_m2p_bessel_work (c, p, vscales, SK_ri, alpha, src_m, beta, dst_v, work_complex, work)
 Accumulate Bessel potential, induced by multipole spherical harmonics. More...
 
subroutine ddx_harmonics::fmm_m2p_bessel_grad (c, src_r, p, vscales, alpha, src_m, beta, dst_g)
 
subroutine ddx_harmonics::fmm_m2p_adj (c, src_q, dst_r, p, vscales_rel, beta, dst_m)
 Adjoint M2P operation. More...
 
subroutine ddx_harmonics::fmm_m2p_adj_work (c, src_q, dst_r, p, vscales_rel, beta, dst_m, work)
 Adjoint M2P operation. More...
 
subroutine ddx_harmonics::fmm_m2p_bessel_adj (c, src_q, dst_r, kappa, p, vscales, beta, dst_m)
 Adjoint M2P operation. More...
 
subroutine ddx_harmonics::fmm_m2p_bessel_adj_work (c, src_q, dst_sk, p, vscales, beta, dst_m, work_complex, work)
 Adjoint M2P operation. More...
 
subroutine ddx_harmonics::fmm_m2p_mat (c, r, p, vscales, mat)
 Accumulate potentials, induced by each multipole spherical harmonic. More...
 
subroutine ddx_harmonics::fmm_l2p (c, src_r, p, vscales, alpha, src_l, beta, dst_v)
 Accumulate potential, induced by local spherical harmonics. More...
 
subroutine ddx_harmonics::fmm_l2p_work (c, src_r, p, vscales_rel, alpha, src_l, beta, dst_v, work)
 Accumulate potential, induced by local spherical harmonics. More...
 
subroutine ddx_harmonics::fmm_l2p_bessel (c, src_r, p, vscales, alpha, src_l, beta, dst_v)
 Accumulate potential, induced by local spherical harmonics. More...
 
subroutine ddx_harmonics::fmm_l2p_bessel_work (c, p, vscales, SI_ri, alpha, src_l, beta, dst_v, work_complex, work)
 Accumulate Bessel potential, induced by local spherical harmonics. More...
 
subroutine ddx_harmonics::fmm_l2p_bessel_grad (c, src_r, p, vscales, alpha, src_l, beta, dst_g)
 
subroutine ddx_harmonics::fmm_l2p_adj (c, src_q, dst_r, p, vscales_rel, beta, dst_l)
 Adjoint of L2P. More...
 
subroutine ddx_harmonics::fmm_l2p_adj_work (c, src_q, dst_r, p, vscales_rel, beta, dst_l, work)
 Adjoint L2P. More...
 
subroutine ddx_harmonics::fmm_sph_transform (p, r1, alpha, src, beta, dst)
 Transform coefficients of spherical harmonics to a new cartesion system. More...
 
subroutine ddx_harmonics::fmm_sph_transform_work (p, r1, alpha, src, beta, dst, work)
 Transform spherical harmonics to a new cartesion system of coordinates. More...
 
subroutine ddx_harmonics::fmm_sph_rotate_oz (p, vcos, vsin, alpha, src, beta, dst)
 Rotate spherical harmonics around OZ axis. More...
 
subroutine ddx_harmonics::fmm_sph_rotate_oz_work (p, vcos, vsin, alpha, src, beta, dst)
 Rotate spherical harmonics around OZ axis. More...
 
subroutine ddx_harmonics::fmm_sph_rotate_oz_adj (p, vcos, vsin, alpha, src, beta, dst)
 Rotate spherical harmonics around OZ axis in an opposite direction. More...
 
subroutine ddx_harmonics::fmm_sph_rotate_oz_adj_work (p, vcos, vsin, alpha, src, beta, dst)
 Rotate spherical harmonics around OZ axis in an opposite direction. More...
 
subroutine ddx_harmonics::fmm_sph_rotate_oxz (p, ctheta, stheta, alpha, src, beta, dst)
 Transform spherical harmonics in the OXZ plane. More...
 
subroutine ddx_harmonics::fmm_sph_rotate_oxz_work (p, ctheta, stheta, alpha, src, beta, dst, work)
 Transform spherical harmonics in the OXZ plane. More...
 
subroutine ddx_harmonics::fmm_m2m_ztranslate (z, src_r, dst_r, p, vscales, vcnk, alpha, src_m, beta, dst_m)
 Direct M2M translation over OZ axis. More...
 
subroutine ddx_harmonics::fmm_m2m_ztranslate_work (z, src_r, dst_r, p, vscales, vcnk, alpha, src_m, beta, dst_m, work)
 Direct M2M translation over OZ axis. More...
 
subroutine ddx_harmonics::fmm_m2m_bessel_ztranslate (z, src_sk, dst_sk, p, vscales, alpha, src_m, beta, dst_m)
 Direct M2M translation over OZ axis. More...
 
subroutine ddx_harmonics::fmm_m2m_bessel_ztranslate_work (z, src_sk, dst_sk, p, vscales, alpha, src_m, beta, dst_m, work, work_complex)
 Direct M2M translation over OZ axis. More...
 
subroutine ddx_harmonics::fmm_m2m_bessel_ztranslate_adj (z, src_sk, dst_sk, p, vscales, alpha, src_m, beta, dst_m)
 Direct M2M translation over OZ axis. More...
 
subroutine ddx_harmonics::fmm_m2m_bessel_ztranslate_adj_work (z, src_sk, dst_sk, p, vscales, alpha, src_m, beta, dst_m, work, work_complex)
 Direct M2M translation over OZ axis. More...
 
subroutine ddx_harmonics::fmm_m2m_bessel_derivative_ztranslate_work (src_sk, p, vscales, alpha, src_m, beta, dst_m)
 Direct M2M translation over OZ axis. More...
 
subroutine ddx_harmonics::fmm_m2m_ztranslate_adj (z, src_r, dst_r, p, vscales, vcnk, alpha, src_m, beta, dst_m)
 Adjoint M2M translation over OZ axis. More...
 
subroutine ddx_harmonics::fmm_m2m_ztranslate_adj_work (z, src_r, dst_r, p, vscales, vcnk, alpha, src_m, beta, dst_m, work)
 Adjoint M2M translation over OZ axis. More...
 
subroutine ddx_harmonics::fmm_m2m_scale (src_r, dst_r, p, alpha, src_m, beta, dst_m)
 Scale M2M, when spherical harmonics are centered in the same point. More...
 
subroutine ddx_harmonics::fmm_m2m_scale_adj (src_r, dst_r, p, alpha, src_m, beta, dst_m)
 Adjoint scale M2M, when spherical harmonics are centered in the same point. More...
 
subroutine ddx_harmonics::fmm_m2m_rotation (c, src_r, dst_r, p, vscales, vcnk, alpha, src_m, beta, dst_m)
 Direct M2M translation by 4 rotations and 1 translation. More...
 
subroutine ddx_harmonics::fmm_m2m_rotation_work (c, src_r, dst_r, p, vscales, vcnk, alpha, src_m, beta, dst_m, work)
 Direct M2M translation by 4 rotations and 1 translation. More...
 
subroutine ddx_harmonics::fmm_m2m_bessel_rotation (c, src_r, dst_r, kappa, p, vscales, alpha, src_m, beta, dst_m)
 Direct M2M translation by 4 rotations and 1 translation. More...
 
subroutine ddx_harmonics::fmm_m2m_bessel_rotation_work (c, src_sk, dst_sk, p, vscales, alpha, src_m, beta, dst_m, work, work_complex)
 Direct M2M translation by 4 rotations and 1 translation. More...
 
subroutine ddx_harmonics::fmm_m2m_bessel_rotation_adj (c, src_r, dst_r, kappa, p, vscales, alpha, src_m, beta, dst_m)
 Direct M2M translation by 4 rotations and 1 translation. More...
 
subroutine ddx_harmonics::fmm_m2m_bessel_rotation_adj_work (c, src_sk, dst_sk, p, vscales, alpha, src_m, beta, dst_m, work, work_complex)
 Direct M2M translation by 4 rotations and 1 translation. More...
 
subroutine ddx_harmonics::fmm_m2m_rotation_adj (c, src_r, dst_r, p, vscales, vcnk, alpha, src_m, beta, dst_m)
 Adjoint M2M translation by 4 rotations and 1 translation. More...
 
subroutine ddx_harmonics::fmm_m2m_rotation_adj_work (c, src_r, dst_r, p, vscales, vcnk, alpha, src_m, beta, dst_m, work)
 Adjoint M2M translation by 4 rotations and 1 translation. More...
 
subroutine ddx_harmonics::fmm_m2m_bessel_grad (p, sph_sk, vscales, sph_m, sph_m_grad)
 
subroutine ddx_harmonics::fmm_l2l_ztranslate (z, src_r, dst_r, p, vscales, vfact, alpha, src_l, beta, dst_l)
 Direct L2L translation over OZ axis. More...
 
subroutine ddx_harmonics::fmm_l2l_ztranslate_work (z, src_r, dst_r, p, vscales, vfact, alpha, src_l, beta, dst_l, work)
 Direct L2L translation over OZ axis. More...
 
subroutine ddx_harmonics::fmm_l2l_bessel_ztranslate (z, src_si, dst_si, p, vscales, alpha, src_l, beta, dst_l)
 Direct M2M translation over OZ axis. More...
 
subroutine ddx_harmonics::fmm_l2l_bessel_ztranslate_work (z, src_si, dst_si, p, vscales, alpha, src_l, beta, dst_l, work, work_complex)
 Direct M2M translation over OZ axis. More...
 
subroutine ddx_harmonics::fmm_l2l_bessel_ztranslate_adj (z, src_si, dst_si, p, vscales, alpha, src_l, beta, dst_l)
 Direct M2M translation over OZ axis. More...
 
subroutine ddx_harmonics::fmm_l2l_bessel_ztranslate_adj_work (z, src_si, dst_si, p, vscales, alpha, src_l, beta, dst_l, work, work_complex)
 Direct M2M translation over OZ axis. More...
 
subroutine ddx_harmonics::fmm_l2l_bessel_derivative_ztranslate_work (src_si, p, vscales, alpha, src_l, beta, dst_l)
 Direct M2M translation over OZ axis. More...
 
subroutine ddx_harmonics::fmm_l2l_ztranslate_adj (z, src_r, dst_r, p, vscales, vfact, alpha, src_l, beta, dst_l)
 Adjoint L2L translation over OZ axis. More...
 
subroutine ddx_harmonics::fmm_l2l_ztranslate_adj_work (z, src_r, dst_r, p, vscales, vfact, alpha, src_l, beta, dst_l, work)
 Adjoint L2L translation over OZ axis. More...
 
subroutine ddx_harmonics::fmm_l2l_scale (src_r, dst_r, p, alpha, src_l, beta, dst_l)
 Scale L2L, when spherical harmonics are centered in the same point. More...
 
subroutine ddx_harmonics::fmm_l2l_scale_adj (src_r, dst_r, p, alpha, src_l, beta, dst_l)
 Adjoint scale L2L, when spherical harmonics are centered in the same point. More...
 
subroutine ddx_harmonics::fmm_l2l_rotation (c, src_r, dst_r, p, vscales, vfact, alpha, src_l, beta, dst_l)
 Direct L2L translation by 4 rotations and 1 translation. More...
 
subroutine ddx_harmonics::fmm_l2l_rotation_work (c, src_r, dst_r, p, vscales, vfact, alpha, src_l, beta, dst_l, work)
 Direct L2L translation by 4 rotations and 1 translation. More...
 
subroutine ddx_harmonics::fmm_l2l_bessel_rotation (c, src_r, dst_r, kappa, p, vscales, alpha, src_l, beta, dst_l)
 Direct L2L translation by 4 rotations and 1 translation. More...
 
subroutine ddx_harmonics::fmm_l2l_bessel_rotation_work (c, src_si, dst_si, p, vscales, alpha, src_l, beta, dst_l, work, work_complex)
 Direct L2L translation by 4 rotations and 1 translation. More...
 
subroutine ddx_harmonics::fmm_l2l_bessel_rotation_adj (c, src_r, dst_r, kappa, p, vscales, alpha, src_l, beta, dst_l)
 Direct L2L translation by 4 rotations and 1 translation. More...
 
subroutine ddx_harmonics::fmm_l2l_bessel_rotation_adj_work (c, src_si, dst_si, p, vscales, alpha, src_l, beta, dst_l, work, work_complex)
 Direct L2L translation by 4 rotations and 1 translation. More...
 
subroutine ddx_harmonics::fmm_l2l_bessel_grad (p, sph_si, vscales, sph_l, sph_l_grad)
 
subroutine ddx_harmonics::fmm_l2l_rotation_adj (c, src_r, dst_r, p, vscales, vfact, alpha, src_l, beta, dst_l)
 Adjoint L2L translation by 4 rotations and 1 translation. More...
 
subroutine ddx_harmonics::fmm_l2l_rotation_adj_work (c, src_r, dst_r, p, vscales, vfact, alpha, src_l, beta, dst_l, work)
 Adjoint L2L translation by 4 rotations and 1 translation. More...
 
subroutine ddx_harmonics::fmm_m2l_ztranslate (z, src_r, dst_r, pm, pl, vscales, m2l_ztranslate_coef, alpha, src_m, beta, dst_l)
 Direct M2L translation over OZ axis. More...
 
subroutine ddx_harmonics::fmm_m2l_ztranslate_work (z, src_r, dst_r, pm, pl, vscales, m2l_ztranslate_coef, alpha, src_m, beta, dst_l, work)
 Direct M2L translation over OZ axis. More...
 
subroutine ddx_harmonics::fmm_m2l_ztranslate_adj (z, src_r, dst_r, pl, pm, vscales, m2l_ztranslate_adj_coef, alpha, src_l, beta, dst_m)
 Adjoint M2L translation over OZ axis. More...
 
subroutine ddx_harmonics::fmm_m2l_ztranslate_adj_work (z, src_r, dst_r, pl, pm, vscales, m2l_ztranslate_adj_coef, alpha, src_l, beta, dst_m, work)
 Adjoint M2L translation over OZ axis. More...
 
subroutine ddx_harmonics::fmm_m2l_rotation (c, src_r, dst_r, pm, pl, vscales, m2l_ztranslate_coef, alpha, src_m, beta, dst_l)
 Direct M2L translation by 4 rotations and 1 translation. More...
 
subroutine ddx_harmonics::fmm_m2l_rotation_work (c, src_r, dst_r, pm, pl, vscales, m2l_ztranslate_coef, alpha, src_m, beta, dst_l, work)
 Direct M2L translation by 4 rotations and 1 translation. More...
 
subroutine ddx_harmonics::fmm_m2l_bessel_rotation (c, src_r, dst_r, kappa, p, vscales, alpha, src_m, beta, dst_l)
 Direct M2M translation by 4 rotations and 1 translation. More...
 
subroutine ddx_harmonics::fmm_m2l_bessel_rotation_work (c, src_sk, dst_si, p, vscales, alpha, src_m, beta, dst_l, work, work_complex)
 Direct M2M translation by 4 rotations and 1 translation. More...
 
subroutine ddx_harmonics::fmm_m2l_bessel_rotation_adj (c, src_r, dst_r, kappa, p, vscales, alpha, src_m, beta, dst_l)
 Direct M2M translation by 4 rotations and 1 translation. More...
 
subroutine ddx_harmonics::fmm_m2l_bessel_rotation_adj_work (c, src_sk, dst_si, p, vscales, alpha, src_m, beta, dst_l, work, work_complex)
 Direct M2M translation by 4 rotations and 1 translation. More...
 
subroutine ddx_harmonics::fmm_m2l_bessel_ztranslate (z, src_sk, dst_si, p, vscales, alpha, src_m, beta, dst_l)
 Direct M2M translation over OZ axis. More...
 
subroutine ddx_harmonics::fmm_m2l_bessel_ztranslate_work (z, src_sk, dst_si, p, vscales, alpha, src_m, beta, dst_l, work, work_complex)
 Direct M2M translation over OZ axis. More...
 
subroutine ddx_harmonics::fmm_m2l_bessel_ztranslate_adj (z, src_sk, dst_si, p, vscales, alpha, src_m, beta, dst_l)
 Direct M2M translation over OZ axis. More...
 
subroutine ddx_harmonics::fmm_m2l_bessel_ztranslate_adj_work (z, src_sk, dst_si, p, vscales, alpha, src_m, beta, dst_l, work, work_complex)
 Direct M2M translation over OZ axis. More...
 
subroutine ddx_harmonics::fmm_m2l_rotation_adj (c, src_r, dst_r, pl, pm, vscales, m2l_ztranslate_adj_coef, alpha, src_l, beta, dst_m)
 Adjoint M2L translation by 4 rotations and 1 translation. More...
 
subroutine ddx_harmonics::fmm_m2l_rotation_adj_work (c, src_r, dst_r, pl, pm, vscales, m2l_ztranslate_adj_coef, alpha, src_l, beta, dst_m, work)
 Adjoint M2L translation by 4 rotations and 1 translation. More...
 

Detailed Description

ddX software

This file contains routines to evaluate spherical harmonics, the multipole expansioni M2P, the local expansion L2P and sphere-to-sphere M2M, M2L and L2L operations of the FMM along with routines to precompute special harmonics-related constants.

Version
1.0.0
Author
Aleksandr Mikhalev
Date
2021-02-25

Definition in file ddx_harmonics.f90.