Code Monkey home page Code Monkey logo

hydrogen-bond-correction-f3's Introduction

Third-Generation Hydrogen-Bonding Correction

Third-Generation Hydrogen-Bonding Corrections for Semiempirical QM Methods and Force Fields.

Introduction

Fortran F90 (module) implementation of Martin Korths Hydrogen-bond correction term.

Known Limitation

TODO Nitrogen term

Please cite as:

Martin Korth,
J. Chem. Theory Comput., 2010, 6 (12), pp 3808โ€“3816,
DOI: 10.1021/ct100408b

Kromann JC, Christensen AS, Steinmann C, Korth M, Jensen JH.
PeerJ 2:e449, 2014
DOI: 10.7717/peerj.449

Installation

Use the make script. Change compiler if you use something else than gfortran.

make

Parameters

Default parameters are for the PM6-D3H+ model.

nitrogen = -0.11
oxygen   = -0.12

change it either via source code, or use a parameter file.

Usage

Energy

You will properly want to use the module as part of a QM/SQM package, but if you just want to try it out, use it as.

./f3_exe [OPTIONS] <structure.xyz>

options:

-v,        --version        print version information and exit
-h,        --help           print usage information and exit
-p <file>, --param <file>   use parameter file <par.dat>
-d,        --debug          print debug information
-g,        --gradient       calculate and print gradient

to calculate the correction energy of the XYZ structure.

Gradient

If you want to calculate the gradient of a structure you can call

./f3_exe -g <structure.xyz>

Using a parameter file

Included is a parameter file and structure.xyz

./f3_exe -p examples/parameter.dat examples/structure.xyz

Implementation

If you want to implement the module in a QM package, you can. It should be simple. Look in the src/f3.f90 and src/f3_program.f90 to see how to properly use the module.

hydrogen-bond-correction-f3's People

Contributors

charnley avatar mkorth avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hydrogen-bond-correction-f3's Issues

different results with gfortran and ifort

Hi,

I have been using this very nice implementations of Martin's H+ for a while. Now I am interfacing this module to AMBER and I found that gfortran and ifort give different results for a large system (tests on dimers are all fine).

For this molecule big.xyz i get with
gfortran v6.3 and v4.8: -58.493085 kcal/mol
intel v15:-71.218593 kcal/mol

So far I noticed that different and a different amount of H-bonds are detected, but not why.
I also tried ifort -fp-model precise, but no change.

Can someone reproduce my findings?
And which result is correct?

NaN error

Hi there,
I was testing your code for some of the systems in S66 and found that for dimer 20 (acetic acid) it is possible to get a NaN error in the assignment "cosa = zj1/dist" in the function torsion. This happens because it calls the function with a pair of matching atoms, for which dist = 0.0, the division results in NaN for cosa. Because of the inherent logic behind NaN, sometimes it reassigns cosa to 1 (-1), other times leaves unchanged, as it should, and that causes problems in the code and leads to what I believe are wrong results (I would not trust a result based on a NaN). I suggest checking whether dist > 0 before doing the division.
Best

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.