ExpressCommands

Documentation for ExpressCommands.

See the Index for the complete list of documented functions and types.

The code is hosted on GitHub, with some continuous integration services to test its validity.

This repository is created and maintained by @singularitti. You are very welcome to contribute.

Please cite this package as:

Q. Zhang, C. Gu, J. Zhuang et al., express: extensible, high-level workflows for swifter ab initio materials modeling, Computer Physics Communications, 108515, doi: https://doi.org/10.1016/j.cpc.2022.108515.

The BibTeX format is:

@article{ZHANG2022108515,
  title    = {express: extensible, high-level workflows for swifter ab initio materials modeling},
  journal  = {Computer Physics Communications},
  pages    = {108515},
  year     = {2022},
  issn     = {0010-4655},
  doi      = {https://doi.org/10.1016/j.cpc.2022.108515},
  url      = {https://www.sciencedirect.com/science/article/pii/S001046552200234X},
  author   = {Qi Zhang and Chaoxuan Gu and Jingyi Zhuang and Renata M. Wentzcovitch},
  keywords = {automation, workflow, high-level, high-throughput, data lineage}
}

We also have an arXiv prepint.

Installation

The package can be installed with the Julia package manager. From the Julia REPL, type ] to enter the Pkg REPL mode and run:

pkg> add ExpressCommands

Or, equivalently, via the Pkg API:

julia> import Pkg; Pkg.add("ExpressCommands")   Resolving package versions...
   Installed EquationOfStateRecipes ─ v0.1.3
   Installed ExpressCommands ──────── v0.6.1
    Updating `~/work/ExpressCommands.jl/ExpressCommands.jl/docs/build/developers/Project.toml`
  [0fa58581] + ExpressCommands v0.6.1
    Updating `~/work/ExpressCommands.jl/ExpressCommands.jl/docs/build/developers/Manifest.toml`
⌅ [df5135bc] + AbInitioSoftwareBase v0.6.5
  [6b84a0a3] + AcuteML v0.11.3
  [79e6a3ab] + Adapt v3.6.1
  [ec485272] + ArnoldiMethod v0.2.0
  [4fba245c] + ArrayInterface v7.2.1
  [49dc2e85] + Calculus v0.5.1
  [d360d2e6] + ChainRulesCore v1.15.7
  [9e997f8a] + ChangesOfVariables v0.1.6
  [861a8166] + Combinatorics v1.0.2
  [38540f10] + CommonSolve v0.2.3
  [bbf7d656] + CommonSubexpressions v0.3.0
  [863f3e99] + Comonicon v1.0.4
  [8f4d0f93] + Conda v1.8.0
  [5218b696] + Configurations v0.17.4
  [187b0558] + ConstructionBase v1.5.1
  [150eb455] + CoordinateTransformations v0.6.2
  [5a653867] + Counters v0.3.3
⌅ [3bff3928] + Crystallography v0.5.1
⌅ [93b1d1cd] + CrystallographyBase v0.5.2
  [9a962f9c] + DataAPI v1.14.0
⌃ [a93c6f00] + DataFrames v1.3.6
  [e2d170a0] + DataValueInterfaces v1.0.0
  [b429d917] + DensityInterface v0.4.0
  [163ba53b] + DiffResults v1.1.0
  [b552c78f] + DiffRules v1.13.0
  [31c24e10] + Distributions v0.25.86
  [ffbed154] + DocStringExtensions v0.9.3
  [fa6b7ba4] + DualNumbers v0.6.8
⌅ [8d49d7c9] + EquationOfStateRecipes v0.1.3
  [0438fec6] + EquationsOfState v4.0.0
  [1eaa2786] + EquationsOfStateOfSolids v0.4.2
  [b12df14e] + Express v0.9.2
  [0fa58581] + ExpressCommands v0.6.1
⌅ [55351af7] + ExproniconLite v0.7.11
  [8f5d6c58] + EzXML v1.1.0
  [5789e2e9] + FileIO v1.16.0
  [1a297f60] + FillArrays v0.13.7
  [6a86dc24] + FiniteDiff v2.18.0
  [59287772] + Formatting v0.4.2
  [f6369f11] + ForwardDiff v0.10.35
⌅ [d9f16b24] + Functors v0.2.8
  [86223c79] + Graphs v1.8.0
  [34004b35] + HypergeometricFunctions v0.3.11
  [d25df0c9] + Inflate v0.1.3
  [3587e190] + InverseFunctions v0.1.8
  [41ab1584] + InvertedIndices v1.2.0
  [92d709cd] + IrrationalConstants v0.2.2
  [ceb4388c] + IsURL v0.2.0
  [c8e1da08] + IterTools v1.4.0
  [82899510] + IteratorInterfaceExtensions v1.0.0
  [033835bb] + JLD2 v0.4.31
  [692b3bcd] + JLLWrappers v1.4.1
  [2ab3a3ac] + LogExpFunctions v0.3.23
⌅ [2fda8390] + LsqFit v0.12.1
  [d8e11817] + MLStyle v0.4.17
  [1914dd2f] + MacroTools v0.5.10
  [20f20a25] + MakieCore v0.6.2
  [e1d29d7a] + Missings v1.1.0
  [d41bc354] + NLSolversBase v7.8.3
  [77ba4419] + NaNMath v1.0.2
  [510215fc] + Observables v0.5.4
  [87e2bd06] + OptimBase v2.0.2
  [90014a1f] + PDMats v0.11.17
  [9b87118b] + PackageCompiler v2.1.5
  [d96e819e] + Parameters v0.12.3
  [7b2266bf] + PeriodicTable v1.1.3
  [3a141323] + PolynomialRoots v1.0.0
  [f27b6e38] + Polynomials v3.2.6
  [2dfb63ee] + PooledArrays v1.4.2
  [8162dcfd] + PrettyPrint v0.2.0
⌅ [08abe8d2] + PrettyTables v1.3.1
  [1b2dc2e6] + Pseudopotentials v0.8.1
  [438e738f] + PyCall v1.95.1
  [e44308e6] + PyFortran90Namelists v0.1.0
  [5a1273f0] + PyQHA v0.1.1
  [1fd47b50] + QuadGK v2.8.1
⌅ [95228164] + QuantumESPRESSO v0.8.1
⌅ [51b62caa] + QuantumESPRESSOBase v0.7.8
⌅ [f713baf6] + QuantumESPRESSOCommands v0.6.4
  [524a00d3] + QuantumESPRESSOExpress v0.5.9
  [a4e7ca57] + QuantumESPRESSOFormatter v0.3.7
  [a780ab42] + QuantumESPRESSOParser v0.3.12
  [cbbcb084] + ReadableRegex v0.3.2
  [3cdcf5f2] + RecipesBase v1.3.3
  [189a3867] + Reexport v1.2.2
  [05181044] + RelocatableFolders v1.0.0
  [ae029012] + Requires v1.3.0
  [79098fc4] + Rmath v0.7.1
⌅ [f2b01f46] + Roots v1.2.0
  [6c6a2e73] + Scratch v1.2.0
  [efcf1570] + Setfield v1.1.1
  [699a6c99] + SimpleTraits v0.9.4
⌅ [6a97d125] + SimpleWorkflows v0.16.2
  [a2af1166] + SortingAlgorithms v1.1.0
  [276daf66] + SpecialFunctions v2.2.0
⌅ [f761d5c5] + Spglib v0.5.3
  [90137ffa] + StaticArrays v1.5.16
  [1e83bf80] + StaticArraysCore v1.4.0
  [82ae8749] + StatsAPI v1.5.0
  [2913bbd2] + StatsBase v0.33.21
  [4c63d2b9] + StatsFuns v1.3.0
  [69024149] + StringEncodings v0.3.6
  [4093c41a] + StructHelpers v0.1.5
  [3783bdb8] + TableTraits v1.0.1
  [bd369af6] + Tables v1.10.0
  [3bb67fe8] + TranscodingStreams v0.9.11
  [410a4b4d] + Tricks v0.1.6
  [0ca489f0] + TryCatch v0.1.1
  [0fb2cfb0] + TypeTransform v0.1.3
  [3a884ed6] + UnPack v1.0.2
  [8030dd95] + UnifiedPseudopotentialFormat v0.4.1
  [1986cc42] + Unitful v1.12.4
  [a7773ee8] + UnitfulAtomic v1.0.0
  [81def892] + VersionParsing v1.3.0
  [ddb6d928] + YAML v0.4.8
  [1d63c593] + LLVMOpenMP_jll v15.0.4+0
  [94ce4f54] + Libiconv_jll v1.16.1+2
  [efe28fd5] + OpenSpecFun_jll v0.5.5+0
  [f50d1b31] + Rmath_jll v0.4.0+0
  [02c8fc9c] + XML2_jll v2.10.3+0
  [ac4a9f1e] + spglib_jll v1.16.5+0
  [8ba89e20] + Distributed
  [9fa8497b] + Future
  [4af54fe1] + LazyArtifacts
  [1a1011a3] + SharedArrays
  [2f01184e] + SparseArrays
  [10745b16] + Statistics
  [4607b0f0] + SuiteSparse
  [8dfed614] + Test
  [05823500] + OpenLibm_jll v0.8.1+0
        Info Packages marked with ⌃ and ⌅ have new versions available, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m`
    Building ExpressCommands → `~/.julia/scratchspaces/44cfe95a-1eb2-52ea-b672-e2afdf69b78f/a52f0734cd3cd1ac001ad614e5d084bb33e6f8b5/build.log`

Command Line Interface

Add ~/.julia/bin to your PATH to enable command line interface. Or run ExpressCommands.comonicon_install_path() to install everything automatically.

Sometimes, you won't trigger the package build of Julia. You can install the command line interface manually via ExpressCommands.comonicon_install().

Completions

If you are using ZSH, you can enable the auto-completion by ExpressCommands.comonicon_install_path(). Or add the FPATH to your .zshrc

export FPATH="$HOME/.julia/completions:$FPATH"

if you do not have oh-my-zsh installed, you need to add

autoload -Uz compinit && compinit

to your .zshrc as well.

Documentation

  • STABLEdocumentation of the most recently tagged version.
  • DEVdocumentation of the in-development version.

Project status

The package is tested against, and being developed for, Julia 1.6 and above on Linux, macOS, and Windows.

Questions and contributions

Usage questions can be posted on our discussion page.

Contributions are very welcome, as are feature requests and suggestions. Please open an issue if you encounter any problems. The contributing page has a few guidelines that should be followed when opening pull requests and contributing code.

Manual outline

Library outline

Index