modified on 1 September 2010 at 11:54 ••• 306,765 views


From NWChem

Revision as of 11:54, 1 September 2010 by WikiSysop (Talk | contribs)
Jump to: navigation, search


NWChem Core Developer Team

Name Email Current focus
W. A. de Jong bert.dejong at pnl dot gov Properties, relativistic effects, basis sets
E. J. Bylaska eric.bylaska at pnl dot gov Plane wave development
N. Govind niri.govind at pnl dot gov DFT, TDDFT and materials models
K. Kowalski karol.kowalski at pnl dot gov High accuracy methods
M. Valiev marat.valiev at pnl dot gov QM/MM methodologies
H. J. J. van Dam hubertusjj.vandam at pnl dot gov DFT and fault tolerance
T. P. Straatsma tps at pnl dot gov Molecular dynamics
E. Apra aprae at ornl dot gov DFT and ORNL Jaguar Cray optimization
R. J. Harrison harrisonrj at ornl dot gov

Active Developers

Name Email Current focus
T. L. Windus Dynamic nucleation theory
J. Hammond High accuracy response, IBM BlueGene performance
J. Autschbach Response properties and relativistic effects
L. Jensen DFT functionals, Properties
M. Swart Improved DFT functionals
Q. Wu Constrained DFT
T. Van Voorhis Constrained DFT
Y. Zhao Minnesota (Truhlar) functionals
A. Vazquez-Mayagoitia 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 J. Nieplocha
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 A. Wong

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 Team: Developer has full svn access to release and development branches of the NWChem source tree. Owns and is responsible for one or more modules.
  1. 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. This group is expected to involve a small number of people.
  1. 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.
  1. 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 constitutes the main mechanism for external users for contributing developments 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, voted on, and assigned the level of 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 the ECL 2.0 Open Source License. A (Trusted) Developer will receive the appropriate access to svn. If a Developer consistently incorporates code outside the scope agreed to with the Point of Contact that negatively affects 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 NWChem Core Developer 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 (Niri and Marat to add restrictions).
  2. C and C++. Only simple constructs should be used in C++ (Niri and Marat to add restrictions).
  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. Twice a year coverage analysis of QA suite is performed using gfortran tools.

NWChem Wiki Page Guidelines

Follow the link to the NWChem Wiki Page Guidelines.