Skip to content
/ zinq Public

Implementations of electronic structure methods and mathematical algorithms in Zig, focusing on clarity, simplicity, and modern system programming.

License

Notifications You must be signed in to change notification settings

tjira/zinq

Repository files navigation

Zinq



A lightweight Zig framework for electronic structure theory, quantum chemistry, and mathematical algorithms. Written from scratch, it favors simple design and transparent implementation while relying on efficient algorithms.

Features

Zinq provides tools for both time-independent and time-dependent quantum mechanical simulations.

Time-Independent Quantum Mechanics

  • Integrals over Gaussian Basis Functions
    Compute integrals over Gaussian basis functions from .xyz geometries and basis files.

  • Hartree–Fock Methods
    Perform restricted or generalized Hartree-Fock calculation with DIIS accelerator.

  • Post-Hartree–Fock Methods
    Use variety of selected perturbative or variational post-Hartree-Fock methods.

  • Electronic Structure Analysis
    Compute energy derivatives and harmonic vibrational frequencies across supported methods.

Time-Dependent Quantum Mechanics

  • Quantum Dynamics
    Simulate wavepacket dynamics in arbitrary dimensions and across multiple electronic states.

  • Dirac–Frenkel Variational Principle
    Propagate a parametrized wavefunction using the Dirac–Frenkel variational principle.

  • Surface Hopping
    Run nonadiabatic dynamics with various surface hopping algorithms.

Getting Zinq

Prebuilt Releases

You can download the latest binaries from the releases page. The releases are provided for Linux, Windows and MacOS with the common CPU architectures. All binaries are statically linked with no external runtime dependencies. For less common platforms, see the compilation section. The binaries can also be installed using pip from PyPI.

Compilation

Compiling Zinq is simple, running make will automatically download the Zig compiler to the project root and compile the Zinq binaries. The resulting executables are placed in the zig-out directory, organized by operating system and architecture. On Linux and Windows, most users will want the x86_64 binary, while on MacOS the aarch64 binary is usually appropriate. To verify the build, execute

./zig-out/<arch-os>/zinq

and check that the missing input message is displayed. If the message appears, the program is compiled correctly.

Python Wrappers

You can access Zinq's functionality through the dedicated Python wrappers. If you installed Zinq via PyPI, these wrappers are pre-installed and ready to use. However, if you are compiling from source, you will need to build them manually. From the project root, simply run make pip to build the wheel and install the package (or make wheel to build without installing). Once set up, the zinq command is added to your PATH. You also gain access to:

  • hf - Runs Hartree-Fock calculations on .xyz geometry files.
  • molint - Computes molecular integrals from .xyz geometry files.
  • mp2 - Performs MP2 energy calculations on .xyz geometry files.
  • primecheck - Checks for primality of numbers as a standalone utility tool.
  • primefact - Performs prime factorization as a standalone utility tool.
  • primegen - Generates prime numbers as a standalone utility tool.

License

This project is licensed under the MIT License. See LICENSE for details.


About

Implementations of electronic structure methods and mathematical algorithms in Zig, focusing on clarity, simplicity, and modern system programming.

Topics

Resources

License

Stars

Watchers

Forks