GithubHelp home page GithubHelp logo

jenswehner / libecpint Goto Github PK

View Code? Open in Web Editor NEW

This project forked from robashaw/libecpint

0.0 1.0 0.0 23.79 MB

A C++ library for the efficient evaluation of integrals over effective core potentials.

License: MIT License

CMake 2.52% C++ 93.46% Shell 0.40% Python 3.62%

libecpint's Introduction

Libecpint 1.0.4

Build Status codecov Documentation Status Code Quality

Libecpint is a C++ library for the efficient evaluation of integrals over ab initio effective core potentials, using a mixture of generated, recursive code and Gauss-Chebyshev quadrature. It is designed to be standalone and generic, and is now in its first stable release. If you experience any problems please raise an issue here; contributions and suggestions are also welcome.

New in first full release

  • Analytical 1st and 2nd derivatives;
  • Integration now >10x faster;
  • New, high level API, with ECP library;
  • Automated testing suite.

Patch 1

  • Bug fix in screening of on-ECP type 2 integrals
  • Improvements in CMake build steps, thanks to nabbelbabbel/moritzBens

Patch 2

  • Fix for memory leaks in derivative routines
  • Minor changes to CMake files

Patch 3

  • Fix bug in radial type 1 integrals where quadrature could fail to converge
  • Const correctness throughout, should allow for parallelisation
  • Minor updates to docs

Patch 4

  • Code generation now takes considerably less time and memory; MAX_L=8 takes ~35 seconds, peaking at 1.5GB of memory (joint effort with Thomas Dresselhaus and Peter Bygrave)
  • This will be the final patch before v1.1

Dependencies

  • A modern C++ compiler, at least C++11 standard library is required. This has been tested with:
    • gcc (v6.3.0 and above)
    • clang (v10.0.0 and above), you may need the CXX flag "-std=c++14"
    • icpc (v20.2.1), may also need the CXX flag "-std=c++14"
  • CMake/CTest build tools (v3.12 and higher)
  • Python (2.7 or above, including 3 and higher)

Additionally, if you wish to regenerate the radial code (see below), Python >=3.6 is required with numpy and sympy.

Documentation

Please refer to the main documentation here.

Acknowledging usage

If you use this library in your program and find it helpful, that's great! Any feedback would be much appreciated. If you publish results using this library, please consider citing the following paper detailing the implementation:

R. A. Shaw, J. G. Hill, J. Chem. Phys. 147, 074108 (2017); doi: 10.1063/1.4986887

A full bibtex citation can be found in CITATION in the main directory.

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.