modified on 27 January 2012 at 14:43 ••• 144,723 views


From NWChem

Revision as of 14:43, 27 January 2012 by Bert (Talk | contribs)
Jump to: navigation, search


NWChem Development

NWChem is being developed by a consortium of scientists, and maintained at the EMSL at PNNL. This page lists the developers of NWChem, and outlines the Developer Access Policies for new developers.

NWChem Core Developer Team

Name Current focus
W. A. de Jong Properties, relativistic effects, basis sets
E. J. Bylaska Plane wave development
N. Govind DFT, TDDFT, embedding methods for materials
K. Kowalski High accuracy methods
M. Valiev QM/MM methodologies
H. J. J. van Dam DFT, Fault tolerance
E. Apra DFT, Cray optimization
T. P. Straatsma Molecular dynamics

Active Developers

Name Current focus
R. J. Harrison (ORNL) Multiresolution methods
T. L. Windus (Iowa State University and AMES) Dynamic nucleation theory
J. R. Hammond (ANL) High accuracy response, IBM Blue Gene performance
J. Autschbach (SUNY Buffalo) Response properties, relativistic effects
L. Jensen (Penn State) DFT functionals, properties
M. Swart (Universitat de Girona, Spain) Improved DFT functionals
Q. Wu (BNL) Constrained DFT
T. Van Voorhis (MIT) Constrained DFT
Y. Zhao (Hewlett-Packard) Minnesota (Truhlar) functionals
A. Vazquez-Mayagoitia (ANL) DFT functionals, properties

Contributors and Inactive Developers

K. Glaesemann L. D. Crosby D. Wang P. Nichols S. Hirata M. T. Hackler P.-D. Fan M. Dupuis D. M. A. Smith A. Wong
V. Tipparaju M. Krishnan A. A. Auer M. Nooijen E. Brown G. Cisneros G. I. Fann Z. Zhang H. Fruchtl J. Garza
K. Hirao R. Kendall J. A. Nichols K. Tsemekhman K. Wolinski J. Anchell D. Bernholdt P. Borowski T. Clark D. Clerc
H. Dachsel M. Deegan K. G. Dyall D. Elwood E. Glendening M. Gutowski A. Hess J. Jaffe B. Johnson J. Ju
R. Kobayashi R. Kutteh Z. Lin R. Littlefield X. Long B. Meng T. Nakajima S. Niu L. Pollack M. Rosing
G. Sandrone M. Stave H. Taylor G. Thomas J. H. van Lenthe J. Nieplocha

Developer Access Policy (Become a Developer)

Developer access to the NWChem source tree branches in svn has been divided into four tiers:

  1. NWChem Core Developer: Developer has full svn access to release and development branches of the NWChem source tree. Owns and is responsible for one or more modules.
  2. Trusted Developer: Developer may be internal or external to PNNL but has full svn access to release and development branches of the NWChem source tree. May own or be responsible for one or more modules.
  3. Developer: Developer may be internal or external to PNNL and has selected svn access to the development branch of the NWChem source tree. Each Developer closely coordinates code contributions with the assigned Point of Contact (POC) from the NWChem Core Developer Team, primarily the Core Developer owning the module in which the contributions will reside. If the development leads to a new module, the NWChem Core Developer Team will assign a POC with responsibility for the new module.
  4. Contributor: Contributor may be internal or external to PNNL and has no access to the development branch of the NWChem source tree. Contributor’s code will be incorporated by the Point of Contact from the NWChem Core Developer Team. This is the main mechanism for external users to contribute developments or enhancements to NWChem.

New potential developers can contact members of the NWChem Core Developer Team directly or “apply” through the NWChem web site. Prospective developers will be discussed and assigned developer access by the NWChem Core Developer Team, Before contributions from this new developer can be incorporated into NWChem, this person will have to provide written feedback that the contributions can be released within NWChem under a ECL 2.0 open-source license. A (Trusted) Developer will receive the appropriate access to svn. If a Developer consistently incorporates code changes that negatively affect the development tree, access to svn can be revoked.

Development Contribution Requirements

All new functionality or capability contributions require:

  1. Proper documentation in the user manual
  2. QA Test Cases that adequately test the added functionality

Proposed new modules and tasks, and their impact on existing modules and functionality need to be documented for review. New modules or tasks will require agreement from the full team before they can be added.

Programming Model

The programming model in is based on modular APIs. NWChem consists of the programming languages:

  1. FORTRAN77 and FORTRAN90. For FORTRAN90, please avoid using allocates and deallocates. Dynamic memory access should be performed using the memory access (MA) layer.
  2. C and C++. Only simple constructs should be used in C++.
  3. Memory Allocation will be done through the MA and GA memory infrastructure.
  4. Global Arrays Toolkit and MPI for parallel programming.
  5. OpenMP directives and CUDA/OpenCL.
  6. Python scripts can be uploaded into the contrib directory. Bindings to additional functionality require QA and documentation.

Testing of development version

  1. Code will be build nightly on a Redhat Linux64 Platform using gfortran and gcc.
  2. Code will be tested nightly against QA suite.
  3. Exhaustive coverage analysis of the QA suite will be performed twice a year.

NWChem Wiki Page Guidelines

Follow the link to the NWChem Wiki Page Guidelines.