Skip to content

Conversation

drroe
Copy link
Contributor

@drroe drroe commented Feb 21, 2018

The main point of this PR was to add a PME calculation to cpptraj, but it turned into a few more things. Addition of PME was accomplished via using a PME library developed by Andrew Simmonnett (@andysim) for the reciprocal part of the energy. Since the PME library required C++11 support (also FFTW3), the configure script needed to check for this. In adding the C++11 check I decided to rewrite the entire configure script to make it a bit more efficient, particularly in how it checks for and links in external libraries. It should also be smarter about determining whether C++/Fortran linking is required. I also bundled in ARPACK since it's a key library for CPPTRAJ but can be hard to obtain and compile compared to other libraries. And since I was adding a new energy term anyway, I decided to add a kinetic energy calculation as well and make some improvements to and clean up the existing energy action.

Summary:

  1. Add PME calculation support to energy:
etype pme [cut <cutoff>] [dsumtol <dtol>] [order <order>]
          [ewcoeff <coeff>] [skinnb <skinnb>]
          [nfft <nfft1>,<nfft2>,<nfft3>] [erfcdx <dx>]

The cut, dsumtol, ewcoeff, and skinnb keywords mean the same as they do for etype ewald.

  • nfft specify number of grid points for FFT in each direction.
  • order B spline order.
  • erfcdx Error function table delta (added for etype ewald as well).
  1. Added KE calculation to energy:
[kinetic [ketype {vel|vv}] [dt <dt>]]
  • ketype vel Calculate KE from on-step velocities.
  • ketype vv (Velocity Verlet) Calculate KE from on-step forces and plus-half step velocities.
  • dt Time step when using ketype vv
    If no ketype is specified default is to use ketype vv when force/velocity info present, otherwise just use velocity info.
  1. The energy action is now smarter about when only certain terms are desired. Also, if only one term is to be calculated the redundant 'Total' term is not calculated.

  2. Rewrite of configure. C++11 support now enabled by default if available. If -amberlib is specified, FFTW3 support will be enabled if it is available in AMBERHOME. The output from configure has been cleaned up and a better summary of chosen options is written at the end. New command line options:

  • -noc++11 Disable C++11 support.
  • - Enable support for library (without specifying path).
  • --compile-verbose Turn on verbose compile messages.
  1. The box action now correctly sets the internal box type.

  2. In calculation expressions, allow operator characters inside data set aspects (e.g. ENE[VDW1-4]).

  3. ARPACK now bundled with CPPTRAJ.

Daniel R. Roe and others added 30 commits January 24, 2018 15:17
…ure output so more important messages happen at the end.
…y of determining '=' position because apparently expr index does not work the same way on Macs (grr)
Daniel R. Roe added 15 commits February 21, 2018 10:34
… trajectory/ensembles only (also it currently doesnt compile).
…gy. Only print timing components that were actually used.
…ere ever necessary but they definitely should not be now.
…lizer wrappers; cpptraj doesnt use them and the LAPACK that comes with Amber only has double precision.
…ts correct numbers (counts as 1 execution and 1 comparison). Consolidate program error into a function.
@drroe
Copy link
Contributor Author

drroe commented Feb 22, 2018

Going to squash this merge since the original libpme header was a beast.

@drroe drroe merged commit 5cd3d98 into Amber-MD:master Feb 22, 2018
@drroe drroe deleted the libpme branch February 22, 2018 20:51
@drroe drroe added bugfix and removed bug labels Dec 3, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant