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

Go to the source code of this file.

Data Types

type  ddx_core::ddx_state_type
 This defined type contains the primal and adjoint RHSs, the solution of the primal and adjoint linear systems, useful intermediates for the computation of the forces, and the information about the convergence of the linear system solver (time, number of iterations, relative difference at each iteration). More...
 
type  ddx_core::ddx_electrostatics_type
 Container for the electrostatic properties. Since different methods require different electrostatic properties, defining this kind of general purpose container simplify the interfaces as we don't need different interfaces for different methods. More...
 
type  ddx_core::ddx_type
 Main ddX type that stores all the required information. Container for the params, contants and workspace derived types. More...
 

Modules

module  ddx_core
 Core routines and parameters of the ddX software.
 

Functions/Subroutines

subroutine ddx_core::allocate_model (nsph, x, y, z, rvdw, model, lmax, ngrid, force, fmm, pm, pl, se, eta, eps, kappa, matvecmem, maxiter, jacobi_ndiis, nproc, output_filename, ddx_data, ddx_error)
 Initialize ddX input with a full set of parameters. More...
 
subroutine ddx_core::deallocate_model (ddx_data, ddx_error)
 Deallocate object with corresponding data. More...
 
subroutine ddx_core::allocate_electrostatics (params, constants, electrostatics, ddx_error)
 Given the chosen model, find the required electrostatic properties, and allocate the arrays for them in the container. More...
 
subroutine ddx_core::deallocate_electrostatics (electrostatics, ddx_error)
 Deallocate the electrostatic properties. More...
 
subroutine ddx_core::allocate_state (params, constants, state, ddx_error)
 Initialize the ddx_state object. More...
 
subroutine ddx_core::deallocate_state (state, ddx_error)
 Deallocate the ddx_state object. More...
 
subroutine ddx_core::print_spherical (iunit, label, nbasis, lmax, ncol, icol, x)
 Print array of spherical harmonics. More...
 
subroutine ddx_core::print_nodes (iunit, label, ngrid, ncol, icol, x)
 Print array of quadrature points. More...
 
subroutine ddx_core::print_ddvector (ddx_data, label, vector)
 Print dd Solution vector. More...
 
subroutine ddx_core::ddintegrate (nsph, nbasis, ngrid, vwgrid, ldvwgrid, x_grid, x_lm)
 Integrate against spherical harmonics. More...
 
subroutine ddx_core::dbasis (params, constants, x, basloc, dbsloc, vplm, vcos, vsin)
 Compute first derivatives of spherical harmonics. More...
 
real(dp) function ddx_core::intmlp (params, constants, t, sigma, basloc)
 TODO. More...
 
subroutine ddx_core::wghpot (ncav, phi_cav, nsph, ngrid, ui, phi_grid, g)
 Weigh potential at cavity points by characteristic function TODO use cavity points in CSR format. More...
 
subroutine ddx_core::hsnorm (lmax, nbasis, u, unorm)
 Compute the local Sobolev H^(-1/2)-norm on one sphere of u. More...
 
real(dp) function ddx_core::hnorm (lmax, nbasis, nsph, x)
 Compute the global Sobolev H^(-1/2)-norm of x. More...
 
real(dp) function ddx_core::rmsnorm (lmax, nbasis, nsph, x)
 
subroutine ddx_core::rmsvec (n, v, vrms, vmax)
 compute root-mean-square and max norm More...
 
subroutine ddx_core::adjrhs (params, constants, isph, xi, vlm, work)
 
subroutine ddx_core::calcv (params, constants, isph, pot, sigma, work)
 
subroutine ddx_core::ddeval_grid (params, constants, alpha, x_sph, beta, x_grid)
 Evaluate values of spherical harmonics at Lebedev grid points. More...
 
subroutine ddx_core::ddeval_grid_work (nbasis, ngrid, nsph, vgrid, ldvgrid, alpha, x_sph, beta, x_grid)
 Evaluate values of spherical harmonics at Lebedev grid points. More...
 
subroutine ddx_core::ddintegrate_sph (params, constants, alpha, x_grid, beta, x_sph)
 Integrate values at grid points into spherical harmonics. More...
 
subroutine ddx_core::ddintegrate_sph_work (nbasis, ngrid, nsph, vwgrid, ldvwgrid, alpha, x_grid, beta, x_sph)
 Integrate values at grid points into spherical harmonics. More...
 
subroutine ddx_core::ddcav_to_grid (params, constants, x_cav, x_grid)
 Unwrap values at cavity points into values at all grid points. More...
 
subroutine ddx_core::ddcav_to_grid_work (ngrid, nsph, ncav, icav_ia, icav_ja, x_cav, x_grid)
 Unwrap values at cavity points into values at all grid points. More...
 
subroutine ddx_core::ddproject_cav (params, constants, s, xi)
 Integrate by a characteristic function at Lebedev grid points \xi(n,i) = sum w_n U_n^i Y_l^m(s_n) [S_i]_l^m l,m. More...
 
subroutine ddx_core::tree_m2m_rotation (params, constants, node_m)
 Transfer multipole coefficients over a tree. More...
 
subroutine ddx_core::tree_m2m_rotation_work (params, constants, node_m, work)
 Transfer multipole coefficients over a tree. More...
 
subroutine ddx_core::tree_m2m_bessel_rotation (params, constants, node_m)
 Transfer multipole coefficients over a tree. More...
 
subroutine ddx_core::tree_m2m_bessel_rotation_work (params, constants, node_m)
 Transfer multipole coefficients over a tree. More...
 
subroutine ddx_core::tree_m2m_rotation_adj (params, constants, node_m)
 Adjoint transfer multipole coefficients over a tree. More...
 
subroutine ddx_core::tree_m2m_rotation_adj_work (params, constants, node_m, work)
 Adjoint transfer multipole coefficients over a tree. More...
 
subroutine ddx_core::tree_m2m_bessel_rotation_adj (params, constants, node_m)
 Adjoint transfer multipole coefficients over a tree. More...
 
subroutine ddx_core::tree_m2m_bessel_rotation_adj_work (params, constants, node_m)
 Adjoint transfer multipole coefficients over a tree. More...
 
subroutine ddx_core::tree_l2l_rotation (params, constants, node_l)
 Transfer local coefficients over a tree. More...
 
subroutine ddx_core::tree_l2l_rotation_work (params, constants, node_l, work)
 Transfer local coefficients over a tree. More...
 
subroutine ddx_core::tree_l2l_bessel_rotation (params, constants, node_l)
 Transfer local coefficients over a tree. More...
 
subroutine ddx_core::tree_l2l_bessel_rotation_work (params, constants, node_l)
 Transfer local coefficients over a tree. More...
 
subroutine ddx_core::tree_l2l_rotation_adj (params, constants, node_l)
 Adjoint transfer local coefficients over a tree. More...
 
subroutine ddx_core::tree_l2l_rotation_adj_work (params, constants, node_l, work)
 Adjoint transfer local coefficients over a tree. More...
 
subroutine ddx_core::tree_l2l_bessel_rotation_adj (params, constants, node_l)
 Adjoint transfer local coefficients over a tree. More...
 
subroutine ddx_core::tree_m2l_rotation (params, constants, node_m, node_l)
 Transfer multipole local coefficients into local over a tree. More...
 
subroutine ddx_core::tree_m2l_bessel_rotation (params, constants, node_m, node_l)
 Transfer multipole local coefficients into local over a tree. More...
 
subroutine ddx_core::tree_m2l_bessel_rotation_adj (params, constants, node_l, node_m)
 Adjoint transfer multipole local coefficients into local over a tree. More...
 
subroutine ddx_core::tree_m2l_bessel_rotation_adj_work (params, constants, node_l, node_m)
 Adjoint transfer multipole local coefficients into local over a tree. More...
 
subroutine ddx_core::tree_m2l_rotation_adj (params, constants, node_l, node_m)
 Adjoint transfer multipole local coefficients into local over a tree. More...
 
subroutine ddx_core::tree_l2p (params, constants, alpha, node_l, beta, grid_v, sph_l)
 TODO. More...
 
subroutine ddx_core::tree_l2p_bessel (params, constants, alpha, node_l, beta, grid_v)
 TODO. More...
 
subroutine ddx_core::tree_l2p_adj (params, constants, alpha, grid_v, beta, node_l, sph_l)
 TODO. More...
 
subroutine ddx_core::tree_l2p_bessel_adj (params, constants, alpha, grid_v, beta, node_l)
 TODO. More...
 
subroutine ddx_core::tree_m2p (params, constants, p, alpha, sph_m, beta, grid_v)
 TODO. More...
 
subroutine ddx_core::tree_m2p_bessel (params, constants, p, alpha, sph_p, sph_m, beta, grid_v)
 TODO. More...
 
subroutine ddx_core::tree_m2p_adj (params, constants, p, alpha, grid_v, beta, sph_m)
 TODO. More...
 
subroutine ddx_core::tree_m2p_bessel_adj (params, constants, p, alpha, grid_v, beta, sph_p, sph_m)
 TODO. More...
 
subroutine ddx_core::tree_m2p_bessel_nodiag_adj (params, constants, p, alpha, grid_v, beta, sph_p, sph_m)
 TODO. More...
 
subroutine ddx_core::tree_grad_m2m (params, constants, sph_m, sph_m_grad, work)
 TODO. More...
 
subroutine ddx_core::tree_grad_l2l (params, constants, node_l, sph_l_grad, work)
 TODO. More...
 
subroutine ddx_core::get_banner (string)
 Print the ddX logo. More...
 
subroutine ddx_core::cav_to_spherical (params, constants, workspace, property_cav, property_sph)
 Transform a function defined at the exposed cavity points (cav) to a spherical harmonics expansion. Note that the function is also multiplied by the characteristic function U. More...
 

Detailed Description

ddX software

Core routines and parameters of the entire ddX software

Version
1.0.0
Author
Aleksandr Mikhalev
Date
2021-02-25

Definition in file ddx_core.f90.