Skip to content

Commit

Permalink
Merge branch 'main' into compathelper/new_version/2021-08-31-00-09-23…
Browse files Browse the repository at this point in the history
…-462-00868494818
  • Loading branch information
frankwswang authored Sep 2, 2021
2 parents f719883 + 5aa91e0 commit 6107320
Show file tree
Hide file tree
Showing 49 changed files with 2,798 additions and 798 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ name: CI
on:
pull_request:
branches:
- master
- main
push:
branches:
- master
- main
workflow_dispatch:
jobs:
test:
Expand Down
27 changes: 27 additions & 0 deletions .github/workflows/Documentation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@

name: Documentation

on:
pull_request:
branches:
- main
push:
branches:
- main
workflow_dispatch:

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: julia-actions/setup-julia@latest
with:
version: '1.6'
- name: Install dependencies
run: julia --project=docs/ -e 'using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()'
- name: Build and deploy
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # If authenticating with GitHub Actions token
DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} # If authenticating with SSH deploy key
run: julia --project=docs/ docs/make.jl
2 changes: 2 additions & 0 deletions .github/workflows/TagBot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ on:
types:
- created
workflow_dispatch:
schedule:
- cron: 0 0 * * *
jobs:
TagBot:
if: github.event_name == 'workflow_dispatch' || github.actor == 'JuliaTagBot'
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
legacy/
docs/build/
Manifest.toml
__test__*
188 changes: 188 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,188 @@
{
"cSpell.words": [
"ADIIS",
"DIIS",
"EDIIS",
"Fconfig",
"Ffinal",
"Fmethods",
"Ftemp",
"abcd",
"accu",
"adii",
"admm",
"alloc",
"an",
"array",
"atemp",
"atms",
"b",
"basis",
"bf",
"body",
"bs",
"btemp",
"cart",
"cen",
"cens",
"cfrom",
"check",
"cint",
"cmethod",
"cmethods",
"cmpr",
"cnew",
"coeff",
"coeffs",
"config",
"coord",
"core",
"d",
"data",
"dcore",
"default",
"diffvals",
"dii",
"dmethod",
"dnew",
"dnuc",
"dtots",
"dᵀnew",
"e",
"edii",
"ee",
"elec",
"ending",
"enew",
"etarget",
"etot",
"etots",
"excdiffs",
"excs",
"eᵀcore",
"eᵀnew",
"f",
"fenegy",
"fenergy",
"fieldnames",
"finterrelated",
"fints",
"fmethod",
"fname",
"fnew",
"fockintermediate",
"ftype",
"ftypes",
"func",
"funcs",
"g",
"gcore",
"get",
"grad",
"guess",
"gwh",
"h",
"hartree",
"hijkl",
"icore",
"ijk",
"ijks",
"ints",
"key",
"kinetic",
"libcin",
"libcint",
"list",
"m",
"marker",
"mcontent",
"min",
"molden",
"new",
"nijk",
"nijkα",
"npars",
"nucs",
"occu",
"occup",
"occus",
"ocoeffs",
"orbital",
"orijks",
"ovlp",
"par",
"quiqbox's",
"s",
"sc",
"score",
"selector",
"size",
"skey",
"smethod",
"smethods",
"ssize",
"stext",
"strs",
"symms",
"tosymbol",
"two",
"unique",
"vals",
"vars",
"xcore",
"xinv",
"xmethods",
"xname",
"xpns",
"xtemp",
"yname",
"zname",
"ʃabcd"
],
"cSpell.ignoreWords": [
"bsiz",
"codecov",
"deepcopy",
"deploydocs",
"eachcol",
"endswith",
"exclude",
"findall",
"findfirst",
"findlast",
"findnext",
"fsym",
"get",
"getfield",
"getindex",
"getproperty",
"ijkl",
"invokelatest",
"isdefined",
"isequal",
"iseven",
"isfile",
"last",
"lcov",
"libc",
"makedocs",
"nameof",
"natm",
"nbas",
"nlines",
"occursin",
"powerset",
"processcoverage",
"readlines",
"rstrip",
"shls",
"sigdigits",
"sitename",
"sortby",
"startswith",
"subbs",
"syms",
"tryparse",
"typemax"
]
}
8 changes: 3 additions & 5 deletions Project.toml
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
name = "Quiqbox"
uuid = "7cb8c394-fae1-4ab9-92f2-30189d7746cd"
version = "0.1.0"
version = "0.1.1"

[deps]
COSMO = "1e616198-aa4e-51ec-90a2-23f7fbd31d8d"
Convex = "f65535da-76fb-5f13-bab9-19810c17039a"
Combinatorics = "861a8166-3701-5b0c-9a16-15d98fcdc6aa"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
PiecewiseQuadratics = "63c5698c-79a9-4248-aa10-bd2a91651b58"
SeparableOptimization = "b66076ac-575f-47ff-93e2-9c43ffc8d39e"
Expand All @@ -14,8 +13,7 @@ Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7"
libcint_jll = "574b78ca-bebd-517c-801d-4735c93a9686"

[compat]
COSMO = "0.8"
Convex = "0.14"
Combinatorics = "1"
PiecewiseQuadratics = "0.1"
SeparableOptimization = "0.1"
SymbolicUtils = "0.13, 0.15"
Expand Down
92 changes: 79 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,92 @@
# Quiqbox.jl
<p align="center">
<img width="500" src="docs/src/assets/logo.png">
</p>

**Quiqbox** is a quantum chemistry and quantum computing software package that starts off around Gaussian basis set optimization of molecular electronic-structure problems. Quiqbox is written in pure [Julia](https://julialang.org/).

| Documentation | License | Code Status |
| :--- | :---: | ---: |
| [![][Doc-s-img]][Doc-stable] <br /> [![][Doc-l-img]][Doc-latest] | [![License: MIT][License-img]][License-url] | [![CI][GA-CI-img]][GA-CI-url] <br /> [![codecov][codecov-img]][codecov-url] |

[![CI][GA-CI-img]][GA-CI-url]
[![codecov][codecov-img]][codecov-url]
[![License: MIT][License-img]][License-url]

A Julia software package that aims for floating Gaussian-type orbital (GTO) optimization in electronic structure problems.
<br />

# Features

* Floating or fixed-basis GTO configuration.
* Symbolic representation of basis functions.
* Restricted closed-shell Hartree–Fock method (RHF).
* Unrestricted open-shell Hartree–Fock method (UHF).
* Molecular orbital data output in [Molden](https://www3.cmbi.umcn.nl/molden/) file format.
* Floating and fixed-basis Gaussian-type orbital (GTO) configurations.
* Symbolic representation and analysis of basis function parameters.
* Standalone 1-electron and 2-electron integral functions (powered by [libcint_jll](https://github.com/JuliaBinaryWrappers/libcint_jll.jl)).
* Variational orbital geometry optimization based on Automatic differentiation (AD).
* Restricted (closed-shell) and unrestricted (open-shell) Hartree–Fock methods (RHF & UHF).
* Molecular orbital data output in [Molden](https://www3.cmbi.umcn.nl/molden/) file format.
* Variational optimization of orbital geometry based on automatic differentiation (AD).

# Setup

## Supported system platforms (64-bit)
* Linux
* Mac OS
* [Windows Subsystem for Linux](https://docs.microsoft.com/en-us/windows/wsl/about)

## Julia Environment
* [1.5+](https://github.com/frankwswang/Quiqbox.jl/actions/workflows/CI.yml)

## Installation in Julia [REPL](https://docs.julialang.org/en/v1/manual/getting-started/)

Type `]` to enter the [`Pkg` mode](https://docs.julialang.org/en/v1/stdlib/REPL/#Pkg-mode):

```julia
(@v1.x) pkg>
```

Type `add Quiqbox` and hit *Enter* key to install Quiqbox:

```julia
(@v1.x) pkg> add Quiqbox
```

After the installation completes, hit *Backspace* key to go back to Julia REPL and use [`using`](https://docs.julialang.org/en/v1/base/base/#using) to load Quiqbox:

```julia
julia> using Quiqbox
```

# Use cases

## Apply existed basis set
```julia
coords = [[-0.7,0,0], [0.7,0,0]]

bsH₂ = genBasisFunc.(coords, "STO-3G") |> flatten
```

## Build your own basis set
```julia
bs = genBasisFunc.(coords, fill(GaussFunc(1, 0.75), 2))
```

## Run Hartree-Fock method
```julia
nuc = ["H", "H"]

runHF(bs, nuc, coords)
```

## Optimize a basis set
```
pars = uniqueParams!(bs, filterMapping=true)
optimizeParams!(bs, pars[1:4], nuc, coords)
```

For more basic usage of the programming language behind Quiqbox, Julia, please refer to [the official documentation](https://docs.julialang.org/) or [one official tutorial](https://juliaacademy.com/p/intro-to-julia).


[Doc-stable]: https://frankwswang.github.io/Quiqbox.jl/stable
[Doc-latest]: https://frankwswang.github.io/Quiqbox.jl/dev
[Doc-s-img]: https://img.shields.io/badge/docs-stable-blue.svg
[Doc-l-img]: https://img.shields.io/badge/docs-latest-blue.svg
[GA-CI-img]: https://github.com/frankwswang/Quiqbox.jl/actions/workflows/CI.yml/badge.svg?branch=main
[GA-CI-url]: https://github.com/frankwswang/Quiqbox.jl/actions/workflows/CI.yml
[codecov-img]: https://codecov.io/gh/frankwswang/Quiqbox.jl/branch/main/graph/badge.svg?token=Z1XOA39DV2
[codecov-url]: https://codecov.io/gh/frankwswang/Quiqbox.jl
[License-img]: https://img.shields.io/badge/License-MIT-blue.svg
[License-img]: https://img.shields.io/badge/License-MIT-blueviolet.svg
[License-url]: https://opensource.org/licenses/MIT
5 changes: 5 additions & 0 deletions docs/Project.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[deps]
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"

[compat]
Documenter = "^0.27"
Loading

0 comments on commit 6107320

Please sign in to comment.