Releases: PCMSolver/pcmsolver
Fluctuating charges MM
Added
- An implementation of the fluctuating charge (FQ) molecular mechanics (MM) model.
- A new API initialization function
pcmsolver_new_read_host
. This allows
creating an uninitializedpcmsolver_context_t
object: the initialization is
deferred to a later point and orchestrated by the host program. The input
options are then set via the other API functions:pcmsolver_set_bool_option
pcmsolver_set_int_option
pcmsolver_set_double_option
pcmsolver_set_string_option
A call topcmsolver_refresh
will trigger initialization of all internal
objects managed throughpcmsolver_context_t
. Use this function when you want
to manage input parsing on the host side, rather than use a dedicated input file
for PCMSolver.
- A
pcmsolver_fill_pcminput
function in the Fortran interface. This function
simplifies the creation of thePCMInput
object from Fortran. - A
PCMSOLVER_WARNING
macro to emit warning to users.
Changed
- Use GitHub Actions instead of Travis for continuous integration.
- Remove integration with Danger in CI.
- A C++11-compliant compilers is required to compile the library.
- The Fortran interface has been refactored to hide the transformation of
strings from Fortran to C from the host program. - The check on the symmetric positive definiteness of the S matrix triggers a
warning, not an error. - We switched back to using LU decomposition for CPCM.
- For IEF, we switched to LU decomposition, instead of partially pivoted LU.
- UFF radii are scaled by 1.1 by default.
Fixed
- The printout of sphere centers and radii always uses Angstrom.
Prune list of cavity finite elements
This release implements pruning of cavity finite elements with area smaller than 10^-4 (see #178). This avoid numerical instabilities in the computation of the S matrix by collocation.
Read the change log for exhaustive information. Consult also the list of issues
Maintenance release
This is maintenance release. Read the change log for exhaustive information. Consult also the list of issues
Fixing imports in getkw.py
This patch release fixes the import of the pyparsing
module necessary in Getkw. Thanks @loriab for catching, reporting and fixing this (#164 and #165). It was sadly overlooked in the latest release.
The conf.py
script has also been fixed and documentation builds on ReadTheDocs are now restored (#163)
Known bugs
The green_spherical_diffuse
test fails when compiling the library with the Intel compilers. See issue #159 and pull request #138 for updates.
Read the change log for exhaustive information. Consult also the list of issues
One new Green's function and infrastructure updates
Notable changes in this release:
- Added Green’s function for a spherical nanoparticle with real permittivity.
- C++03 support is effectively deprecated in favor of C++11.
- The Fortran API bindings file
pcmsolver.f90
is now installed alongside thepcmsolver.h
header file. - The minimum required version of CMake is now 3.3
Known bugs
The green_spherical_diffuse
test fails when compiling the library with the Intel compilers. See issue #159 and pull request #138 for updates.
Read the change log for exhaustive information. Consult also the list of issues
Bug fixes in spherical diffuse interfaces
Some of the changes included in this release:
- Use double logarithmic scale for the integration of spherical diffuse interfaces, allowing for Runge-Kutta 4 integrator.
- A bug in the diffuse interface Green's function has been fixed.
- The layout of the installation for the Python scripts has been changed, addressing issue #116.
- The pcmsolver.py script/module was removed to address issues #111 and #112.
Read the change log for exhaustive information. Consult also the list of issues
Improvements to internals and bugfixes
This release sees a series of internal improvements to simplify input parsing and minimize the dependency on the Boost libraries.
Notable points:
- An updated version of the
pcmsolver_new
API function has been introduced.
The full name of the function ispcmsolver_new_v1112
(to avoid API breakage)
and accepts as additional argument the name of the parsed input file
generated bypcmsolver.py
. This allows to decoupled parsing and writing out
the parsed file, in case directory-specific operations have to be performed
by the host program. - Moved python scripts from
bin/
tobin/pcmsolver/
and introducedbin/pcmsolver/__init__.py
. - The
parse_pcm_input
function returns the parsed input as a string without
saving it to file. The old behavior can be recovered by setting the
write_out
argument toTrue
.
Read the change log for exhaustive information. Consult also the list of issues
Minor fixes and additions
This release fixes:
- A bug in the initialization of the restart cavity from old
.npz
files. - Parsing of the
.pcm
input file.
This release adds: - A new input section:
ChargeDistribution
. - Possibility to compile with Ninja.
Target export and external dependencies update
- The dependency on Zlib is now exported for the static library, fixing this problem in building Psi4 Thanks @loriab for the pull request.
- The
cloc.pl
script, a dependency for building docs, has been updated.
CMake update, Python 3 compatibility and external dependencies update
- PCMSolver is now exported as a proper CMake target thanks to the work of @loriab.
- The Python tools distributed with the library are Python 2 and Python 3 compatible.
- Catch and Eigen have been updated to their latest versions.
Read the change log for exhaustive information. Consult also the list of issues