GithubHelp home page GithubHelp logo

jarvist / quante.jl Goto Github PK

View Code? Open in Web Editor NEW
20.0 5.0 5.0 52 KB

Quantum-chemistry methods in Julia. Based on Rick Muller's PyQuante2

License: Other

Julia 100.00%
hartree-fock quantum-chemistry electronic-structure

quante.jl's Introduction

Quante.jl

Build Status Coverage Status codecov.io

An open-source implementation of quantum-chemistry methods in the Julia programming language. These codes are based on Rick Muller's pyquante2 (https://github.com/rpmuller/pyquante2/).

Julia is a high-level dynamic programming language that is capable of fast execution. In particular it can generate performant code targetting SIMD, parallelisation and GPU execution, from high level constructions.

ToDo

References

quante.jl's People

Contributors

jarvist avatar mgr327 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

quante.jl's Issues

Hartree-Fock as function minimization

Rather than jump straight to CI, maybe it's more interesting to explore lower-hanging fruit: The possibility of framing the Hartree-Fock approximation not as a matrix eigenvalue problem, but as a constrained minimization problem. Then we could potentially use autodifferentiation to speed up the optimization.

@distributed does not work for multi-core 1 and 2 electron integrals

The new @distributed parallel macro does not seem to actually work when running on multiple cores.
The error appears that it may just be a matter of understanding the new Package manager sufficiently so that the correct environment is instantiated on each process.

[Fri28Sep-16:45]jarvist@nmscde005688:~/REPOS/Quante.jl/test/ 
> julia-1.0.0 -p auto runtests.jl 
ERROR: LoadError: On worker 2:
ArgumentError: Package Quante [top-level] is required but does not seem to be installed:
 - Run `Pkg.instantiate()` to install all recorded dependencies.

_require at ./loading.jl:923
require at ./loading.jl:852
#2 at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Distributed/src/Distributed.jl:77
#116 at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Distributed/src/process_messages.jl:276
run_work_thunk at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Distributed/src/process_messages.jl:56
run_work_thunk at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Distributed/src/process_messages.jl:65
#102 at ./task.jl:259

It may just be a matter of installing the package properly via the package manager to begin with!

First steps towards adding full configuration interaction

Required for CI:-

  • Transform 2e integrals from atomic basis to molecular orbitals (N^5 process is done naively).
  • Matrix elements between Slater determinants. Either via Slater-Condon rules (see Szabo and Ostlund), or the full Slater-Condon-Harris rules
  • Solve the new secular / matrix equation. (Nb: for any serious calculation, need to exploit sparsity + possibly locality, to avoid the N! scaling)

References:-
c.f. (old) pyquante 'CI.py' - this is a pretty good reference for the singles at least http://pyquante.sourceforge.net/
Chapter 4 in Szabo and Ostlund
Sherrill notes http://vergil.chemistry.gatech.edu/notes/ci.pdf

Travis CI

Might be handy to have, in addition to appveyor

Add `Project.toml` and `Manifest.toml`

It seems like specifying dependencies in a REQUIRE file is outdated, with the modern approach being to have two files, Project.toml and Manifest.toml (see https://docs.julialang.org/en/v1/stdlib/Pkg/).

Things seem to work for now, but this should probably be changed sooner or later -- there might also be other changes that need to be made that I'm not aware of from a quick reading of the Pkg documentation.

port to julia 1.0?

Hi!

I had recently embarked on the task of porting pyquante.jl to julia 1.0, and I had it working, except for running into the energy error bug which it looks like you managed to solve... I like what you've done with the package structure, so would you accept a PR that implements the changes needed to get the code running on Julia 1.0?

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.