Module | Source File | Description |
---|---|---|
fmmlib_interface | mod_fmm_interface.F90 | |
mod_adjacency_mat | mod_adjacency_mat.F90 | This module is used to efficiently handle the topological problem of finding all the atom pairs in the molecule separated by exactly n bonds. To do so the molecule is tought as an undirected unweighted graph, represented in memory with a boolean adjacency matrix. Since this matrix is sparse and symmetric, it is effeciently represented in the Yale format (sometime referred as compressed sparse row, CSR) omitting the value array. |
mod_bonded | mod_bonded.F90 | Module to handle the bonded part of the FF, it closely follows the AMOEBA functional form. |
mod_constants | mod_constants.F90 | Contains several constants that are usefoul around the code. There are physical constants (there should be no duplicate around!), default force-field parameters that are used when no other input is specified, and internal constants that are used as easy-to-remember names of code constants. |
mod_electrostatics | mod_electrostatics.F90 | TODO Check the signs in electrostatic elemental functions TODO [OPT] Use Laplace equation to simplify the calculations: TODO 1. Egrd(zz) = -(Egrd(xx) + Egrd(yy)) TODO 2. EHes(zzz) = -(EHes(xxz) + EHes(yyz)) TODO 3. EHes(zzx) = -(EHes(xxx) + EHes(yyx)) TODO 4. EHes(zzy) = -(EHes(xxy) + EHes(yyy)) TODO [OPT] Fundamental electrostatic functions should be pure/elemental TODO [BUG] Handling of flags gg |
mod_fmm | mod_fmm.F90 | |
mod_fmm_utils | mod_fmm_utils.F90 | |
mod_geomgrad | mod_geomgrad.F90 | |
mod_harmonics | mod_harmonics.F90 | |
mod_inputloader | mod_inputloader.F90 | |
mod_io | mod_io.F90 | Unified Input/Output handling across the code. |
mod_iohdf5 | mod_iohdf5.F90 | |
mod_jacobian_mat | mod_jacobian_mat.F90 | |
mod_link_atom | mod_link_atom.F90 | |
mod_memory | mod_memory.F90 | This module is used to handle the memory, the variable kinds, the dynamic allocation and the optional soft memory limit of the openMMPol library. |
mod_mmpol | mod_mmpol.F90 | Main module for the control of openMMPol library. It contains all the scalar and vector (allocatable) quantities needed to build up the atomistic polarizable embedding model and perform the calculation required from the quantum chemical software. |
mod_neighbor_list | mod_neighbors_list.F90 | |
mod_nonbonded | mod_nonbonded.F90 | |
mod_octatree | mod_octatree.F90 | |
mod_ommp_C_interface | mod_c_interface.F90 | The interface of the library, basically all the operation performed by an external code should be done through the routines of this module. The interface is conceived to work naturally with C and Fortran; the C interface is also used to build the interface for Python. In a fortran code, this module can be imported and it should expose directly all the vector and scalar quantities needed. In a C code, routines are provided to get the pointer or the values of vector and scalar quantites respectively. |
mod_polarization | mod_polarization.F90 | Module to handle the calculation of the induced dipoles; this means find the solution of the polarization problem. The polarization problem is defined by the linear system where is the 'external' (here external means the sum of the electric field generated by QM density and the one generated by the MM sites) electric field at induced dipole sites, are the induced dipoles - the solution of the linear system -, and is the interaction tensor between the induced point dipoles. |
mod_prm | mod_prm.F90 | This module handles the reading of a parameter file in .prm format and the asignament of parameters based on atom type and connectivity. |
mod_profiling | mod_profiling.F90 | Unified Input/Output handling across the code. |
mod_qm_helper | mod_qm_helper.F90 | This is an utility module, that is not actually used my openMMpol itself, but can be initialized and used by a QM program interfaced with openMMPol to simplify certain steps of the interface using already well tested code. |
mod_ribtree | mod_ribtree.F90 | |
mod_solvers | mod_solvers.F90 | Module that contains the routines used to solve the polarization linear
system .
Currently three methods are implemented: |
mod_topology | mod_topology.F90 | |
mod_tree | mod_tree.F90 | |
mod_utils | mod_utils.F90 | This module contains some very generic utils for string manipulation, or very basic computational/mathematic operation. It should not depend on any module except from mod_memory. |
ommp_interface | mod_interface.F90 | The interface of the library, basically all the operation performed by an external code should be done through the routines of this module. The interface is conceived to work naturally with C and Fortran; the C interface is also used to build the interface for Python. In a fortran code, this module can be imported and it should expose directly all the vector and scalar quantities needed. In a C code, routines are provided to get the pointer or the values of vector and scalar quantites respectively. |