Giter VIP home page Giter VIP logo

hoylab-rowan / ruqt Goto Github PK

View Code? Open in Web Editor NEW
7.0 1.0 2.0 20.12 MB

Fortran code for performing Landauer NEGF calculations using advanced electronic structure methods particularly parametric 2-RDM (NEGF-RDM) and multi-configuration pair density functional theory (NEGF-MCPDFT).

License: GNU General Public License v3.0

Fortran 59.42% Makefile 1.85% C++ 38.72%
charge-transport quantum-mechanics electron-correlation molecular-junction negf

ruqt's Introduction

RUQT

This branch of RUQT is an NEGF calculator for pyRUQT. It is not compatible with inputs/datafiles created for the standalone main branch

Rowan University Quantum Transport (RUQT) with JunctionMod included!

RUQT is an in-progress non-equilibrium Green's function (NEGF) based software package focused on studying electron correlation effects in charge transport problems. It is focused on integrating N- and 2-electron methods into the NEGF transport formalism and is the home of the NEGF-RDM and NEGF-PDFT transport methods. As of July 2021, it is capable of performing Landauer NEGF calculations using electronic structure data acquired from separate Hartree-Fock, Density Functional Theory, Multiconfiguration Pair Density Functional Theory, and Parametric 2-Electron Reduced Density Matrix Theory calculations. The code itself is written in Fortran90+ while the supporting scripts are either in Python or Maple. The recommended supporting code JunctionMod is compiled as part of this code and avialable separately here: https://github.com/HoyLab-Rowan/JunctionMod

RUQT currently can read data from the following electronic structure software packages (more methods/package support to come in future):

HF and DFT: Q-Chem, PYSCF, GAMESS, Maple Quantum Chemistry Toolbox, and Molcas (sandx_fock branch) p2-RDM: Maple Quantum Chemistry and GAMESS (Not publically available)

RUQT v1.0 is capable of performing non-self-consistent current and transmission calculations with metal wide band limit electrodes (fixed Fermi level). Additional electrode and calculation types to be added later.

Installation

Required Libraries: Intel MKL

Compiler: GNU or ifort

  1. Download the code and open the Makefile.
  2. Set the MKLROOT variable to the location of your MKL library.
  3. Compiles using Intel fortran compilers by default. Make sure that ifort can find your MKL libraries using the -mkl flag
  4. To use gfortran uncomment the gfortran line with MKL library links and comment out the ifort line.
  5. Close Makefile and enter the make command in the terminal.
  6. This should produce an "RUQT.x" executable for use with external programs.
  7. If needed, use "make clean" to clear all .mod and .o files from the source and object directories.

How to Use

To run calculations, use either the Maple or Python scripts located in the Hoy Research Group Github: https://github.com/HoyLab-Rowan.

NEGF-RDM

The Maple scripts are available for all methods except MC-PDFT, and Python scripts are available for Q-Chem (HF & DFT), PYSCF (HF & DFT), GAMESS (HF), and Molcas (MC- PDFT) calculations.

The Maple scripts only require an .xyz file with the junction (molecule+electrode) geometry. These can be produced by the JunctionMod code is included in this package and can be used to construct/align molecular junctions. If you use another software package to generate the xyz make sure that the junction is placed along the x-axis.

Using the python scripts requires forming separate electronic structure calculations with specific keywords in the inputs in order to print the Fock, overlap, and T1/T2+MO energies needed by the NEGF-RDM code. Example inputs and outputs for Maple and GAMESS (HF & p2-RDM) can be found in the /examples folder of the source code.

For running p2-RDM calculations, using the Maple Quantum Chemistry Toolbox and related scripts is highly recommended.

The GAMESS p2-RDM code is acquired from the Mazziotti group at UChicago and is not publically available at this time. (Email Dr. Hoy at [email protected] if you need access to the GAMESS p2-RDM code).

NEGF-MCPDFT

In order to run NEGF-MCPDFT calculations, you will need to install the sandx_fock OpenMolcas branch available here (https://gitlab.com/Molcas/OpenMolcas/-/tree/sandx_fock) which generates the FOCK_AO and Overlap files need by RUQT. These contain the MC-PDFT effective Hamilionian and overlap matrices from an OpenMolcas MC-PDFT calculation (see example directory for necessary inputs). These matrices are only available from the sandx_fock branch of OpenMolcas which can be installed according to the regular Openmolcas installation instructions. Use the Junction_Calc.py python script to run the NEGF-MCPDFT code.

If you use this code, cite:

For NEGF-RDM:

Erik P. Hoy, David A. Mazziotti, and Tamar Seideman, “Development and application of a 2-electron reduced density matrix approach to electron transport via molecular junctions” J. Chem. Phys. 147, 184110 (2017).

For NEGF-MCPDFT:

Andrew M. Sand, Justin T. Malme, and Erik P. Hoy, “A multiconfigurational pair-density functional theory approach to molecular junctions”, J. Chem. Phys, 155(11), 114115 (2021). https://doi.org/10.1063/5.0063293

ruqt's People

Contributors

donxbones avatar ephoy-qc avatar meyere42 avatar tineom98 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

fermiq chrinide

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.