******
NWChem
******

.. py:class:: NWChem

This interface supports energy and gradient evaluations with the
`NWChem <https://nwchemgit.github.io/>`_ electronic structure package
(version 7.0 or later)

An NWChem :ref:`Theory <theories>` object can be specified as follows::

  my_frag = Fragment(...)

  my_theory = NWChem(frag=my_frag,
                     method='hf',
                     basis='3-21g',
                     ...)

which would then be called as ``theory=my_theory`` in subsequent tasks 
(see :ref:`Tasks <tasks>`).


General options
===============

.. py:attribute:: memory

   (default: ``400`` MBytes) Maximum total memory (heap memory + stack memory + global memory) NWChem can request per process (MPI tasks): please note this does not take effect on :ref:`directly linked NWChem <install_nwchem>` but only standalone NWChem via a :py:attr:`system call <path>`. Instead, use the :ref:`command line argument <detailed>` to adjust the maximum memory that ChemShell-integrated global arrays (GA) can use for NWChem. For example, to request up to 1024 MB (default 1024, what is enough for most cases) global memory (2048 MB total memory)::

    chemsh --ga-memory 1024 input.py > output.log

.. py:attribute:: mem_heap

   (default: ``100`` MBytes) Maximum heap memory request per process: see :py:attr:`memory`

.. py:attribute:: mem_stack

   (default: ``100`` MBytes) Maximum stack memory request per process: see :py:attr:`memory`

.. py:attribute:: mem_global

   (default: ``200`` MBytes) Maximum global memory request per process: see :py:attr:`memory`


SCF options
===========

.. py:attribute:: tol_energy

   (default: ``1.E-6``) SCF energy convergence threshold.

.. py:attribute:: tol_density

   (default: ``1.E-5``) SCF density convergence threshold.

.. py:attribute:: tol_gradient

   (default: ``5.E-4``) SCF gradient convergence threshold.



