{"id":19705808,"url":"https://github.com/llnl/inq","last_synced_at":"2025-04-29T16:31:33.269Z","repository":{"id":38096698,"uuid":"237533635","full_name":"LLNL/inq","owner":"LLNL","description":"This is a mirror. Please check our main website on gitlab.","archived":false,"fork":false,"pushed_at":"2025-03-28T02:05:23.000Z","size":30172,"stargazers_count":27,"open_issues_count":2,"forks_count":5,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-05T18:05:02.867Z","etag":null,"topics":["dft","exchange-correlation-functionals","gpu-parallelization","hpc","inq","llnl","math-physics"],"latest_commit_sha":null,"homepage":"https://gitlab.com/npneq/inq/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LLNL.png","metadata":{"files":{"readme":"README","changelog":"ChangeLog","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-31T23:28:01.000Z","updated_at":"2025-03-28T02:05:27.000Z","dependencies_parsed_at":"2023-02-15T22:00:31.464Z","dependency_job_id":"a460a5ed-2931-4b09-9026-50706304dd95","html_url":"https://github.com/LLNL/inq","commit_stats":{"total_commits":4821,"total_committers":18,"mean_commits":267.8333333333333,"dds":"0.14270898153909972","last_synced_commit":"a0d12ca7b735b432c3abf46b45c76df8ecb715c4"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2Finq","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2Finq/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2Finq/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2Finq/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LLNL","download_url":"https://codeload.github.com/LLNL/inq/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251540189,"owners_count":21605859,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dft","exchange-correlation-functionals","gpu-parallelization","hpc","inq","llnl","math-physics"],"created_at":"2024-11-11T21:30:23.798Z","updated_at":"2025-04-29T16:31:28.258Z","avatar_url":"https://github.com/LLNL.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# INQ\n\n[Xavier Andrade](mailto:xavier@llnl.gov) (LLNL), [Alfredo A. Correa](mailto:correaa@llnl.gov) (LLNL)\n\nINQ is an engine for electronic structure calculations.\nIt can work in three ways, as a standalone electronic structure code, as a library to implement complex electronic structure methods, or as a proxy-app to evaluate the performance of electronic structure algorithms in high-performance computing platforms.\nIt concentrates on algorithms as a portability hardware layer, generic types, and flexibility of usage.\n\nINQ is based on density functional theory (DFT).\nIt can calculate ground state properties in DFT, and also excited states using time-dependent DFT (TDDFT) in real-time and linear response.\nIt implements different approximations for the exchange and correlation part: semi-local functionals like LDAs, GGAs, and metaGGAs, and hybrid functionals that are implemented through the ACE approach for fast execution.\n\nOne key feature of INQ is that is designed from the ground up to work in modern high-performance computing platforms.\nIt has support for GPU parallelization (through different frameworks), thread parallelization, and distributed memory parallelization using MPI (and Nvidia NCCL).\nThe thread parallelization is designed so that different tasks within the DFT approach are performed simultaneously, this achieves better scalability with respect to data parallelization alone.\nINQ can perform calculations with unpolarized, polarized, and non-colinear spin.\n\nINQ attempts to be as agnostic as possible with the representation used for the states and other quantities that appear in DFT.\nIt uses plane waves by default, but other representations like real space will be available.\n\nTo keep the code simple, INQ is designed as modular as possible, it uses libraries for most of the operations that can be done independently.\nSome libraries, like pseudopod (for pseudopotential parsing) or multi (for multidimensional arrays) are developed by INQ authors.\nOthers are written by third parties, like libxc (for exchange-correlation functionals).\nIn the future, some other parts of INQ might be split into an independent library.\n\nThis is a list of libraries INQ depends on:\n\n* boost-multi: for multidimensional arrays (developed by A. A. Correa)\n* pseudopod: for pseudopotential parsing (developed X. Andrade)\n* boost-mpi3: for distributed memory parallelization (developed by A. A. Correa)\n* libxc: for exchange correlation functionals (X. Andrade is a contributor)\n* cuda: for GPU parallelization\n* pcg-cpp: for random number generation\n* catch2: for unit testing and validation\n* blas/lapack: for linear algebra\n* slate: for parallel linear algebra (work in progress)\n* spglib: for symmetries and k-point generation (work in progress)\n* spdlog: Logging messages (different systems can have different log sinks)\n\nINQ is work in progress, some of the features are not well tested or are not available at the moment.\n\n## Components\n\n* Electronic states, complex and real fields\n* Solvers\n* Diagonalization\n* CPU/GPU generic algorithms\n* Parallel distribution MPI/GPU/threads\n\n## Basic installation\n\nINQ has a few system dependencies and the environment ready in your system, for example in a desktop:\n```bash\nsudo apt install gfortran libblas-dev libboost-serialization-dev libboost-filesystem-dev libfftw3-dev libhdf5-dev liblapack-dev pkg-config python3-dev\n```\n\nInstructions for compiling\n\n```bash \ngit clone git@gitlab.com:npneq/inq.git --recursive\ncd inq\nmkdir build \u0026\u0026 cd build\n# set up environment if necessary, e.g. export CUDACXX=/usr/local/cuda/bin/nvcc, or load modules\ncmake .. --install-prefix=$HOME  # change prefix if necessary, e.g. $HOME/.local or /usr/local (needs root access)\ncmake --build . --parallel\nmake install\nmake test\n```\n\nThis instructions might be incomplete for your particular setup; \nsee other possibilities in [`.gitlab-ci.yml`](https://gitlab.com/npneq/inq/blob/master/.gitlab-ci.yml).\n\n## Reference\n\n- **INQ, a Modern GPU-Accelerated Computational Framework for (Time-Dependent) Density Functional Theory**.\\\nXavier Andrade, Chaitanya Das Pemmaraju, Alexey Kartsev, Jun Xiao, Aaron Lindenberg, Sangeeta Rajpurohit, Liang Z. Tan, Tadashi Ogitsu, and Alfredo A. Correa\\\n[_J. Chem. Theory Comput._ 2021, 17, 12, 7447–7467](https://pubs.acs.org/doi/10.1021/acs.jctc.1c00562) (open access)\n\n## Introductory material\n\n- (video) [INQ: a state-of-the art implementation of (TD)DFT for GPUs](https://www.youtube.com/watch?v=pM4wwYjb5Vo) at the MolSSI 2022 Workshop\n\n- (video) [INQ: a state-of-the-art implemention of desnsity functional theory](https://www.youtube.com/watch?v=ufzOBKn9ocU\u0026t=3195s) at 2021 USAfrI Workshop on Electronic Structure\n\n## Release information \n\nINQ is licensed under the terms of the [Mozilla Public License 2.0](https://www.mozilla.org/en-US/MPL/2.0/) (MPL).\n\n``LLNL-CODE-803817``\n\nCP Number: CP02279\nSoftware Title: Electronic Structure Engine\nDate Submitted: Wednesday, December 11, 2019\nDate Accepted: Wednesday, January 29, 2020\n\nThe work is part of the activities of the Center for Non-Perturbative Studies of Functional Materials Under Non-Equilibrium Conditions (NPNEQ).\n\n## Acknowledgment\n\nThis material is based upon work supported by the U.S. Department of Energy, Office of Science, Office of Basic Energy Sciences, Materials Sciences and Engineering Division, under the auspices of the U.S. Department of Energy by Lawrence Livermore National Laboratory under Contract DE-AC52-07NA27344.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fllnl%2Finq","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fllnl%2Finq","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fllnl%2Finq/lists"}