mirror of https://github.com/QMCPACK/qmcpack.git
236 lines
6.9 KiB
Plaintext
236 lines
6.9 KiB
Plaintext
|
|
====================
|
|
== Nexus Readme ==
|
|
====================
|
|
|
|
Contents
|
|
1) About Nexus
|
|
2) Installation instructions
|
|
3) Summary of library files
|
|
|
|
|
|
|
|
|
|
1. About Nexus
|
|
======================================================================
|
|
|
|
Nexus was written by Jaron T. Krogel starting in 2012 at UIUC.
|
|
Most of the code was developed at ORNL after Dec. 2012.
|
|
|
|
|
|
|
|
|
|
2. Installation instructions (Linux only)
|
|
======================================================================
|
|
|
|
a. Ensure that Python and NumPy are available
|
|
-------------------------------------------------
|
|
|
|
The vast majority Linux distributions come with Python pre-installed.
|
|
|
|
To check for Python, type "python --version" at the command line.
|
|
You should see something like "Python 2.7.6". Nexus is only
|
|
compatible with Python 2.x (3.x is not yet supported). If Python
|
|
is not present on your system, you can install it by following the
|
|
instructions at:
|
|
|
|
http://docs.python-guide.org/en/latest/starting/install/linux/
|
|
|
|
With Python present, check for NumPy. Type "python" at the command
|
|
line. You will get an interactive prompt (">>>"). Now type
|
|
"import numpy" then "numpy.__version__". If the import is
|
|
successful and your version number is greater than 1.6.x, then
|
|
Nexus should work on your system. If you need to install numpy,
|
|
follow the instructions at:
|
|
|
|
http://docs.scipy.org/doc/numpy/user/install.html
|
|
|
|
Installation of NumPy on certain linux distributions is
|
|
straightforward (e.g. via apt-get or yum).
|
|
|
|
|
|
|
|
b. "Install" Nexus
|
|
-------------------------------------------------
|
|
All that should be needed to get Nexus working on your system
|
|
is to add the path to its library files to the PYTHONPATH
|
|
environment variable.
|
|
|
|
If the path to the directory this README file sits in is:
|
|
|
|
/your/path/to/nexus/
|
|
|
|
Then you can add one line to the .bashrc file in your
|
|
home directory:
|
|
|
|
export PYTHONPATH=/your/path/to/nexus/library/:$PYTHONPATH
|
|
|
|
After adding this line, type "source $HOME/.bashrc". Now check
|
|
that Nexus is available by typing "python" then "import nexus".
|
|
You should be able to use Nexus if the the import proceeds
|
|
without incident (i.e. no messages displayed).
|
|
|
|
|
|
|
|
|
|
3. Summary of important library files
|
|
======================================================================
|
|
|
|
The information below can assist in navigating the Nexus program.
|
|
See headers of individual Python files for more detail.
|
|
|
|
a. Core facilities
|
|
-------------------------------------------------
|
|
|
|
abilities.py, generic.py, developer.py
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
Abstract base classes for all Nexus classes. Defines abilities
|
|
such as querying, printing, etc. Also provides developer
|
|
interface functions such as error reporting and redirection for
|
|
unimplemented base class functions. Void class protects imports
|
|
and halts execution if items from unavailable modules are
|
|
encountered.
|
|
|
|
project_base.py
|
|
~~~~~~~~~~~~~~~
|
|
Base class for core Nexus classes. Communicates settings
|
|
information throughout the system.
|
|
|
|
project.py, nexus.py
|
|
~~~~~~~~~~~~~~~~~~~~
|
|
Central collection (imports) of all Nexus classes. Interface
|
|
to the "settings" function.
|
|
|
|
structure.py
|
|
~~~~~~~~~~~~
|
|
Contains the Structure class and structure generator functions.
|
|
|
|
physical_system.py
|
|
~~~~~~~~~~~~~~~~~~
|
|
Contains PhysicalSystem class and particle information.
|
|
|
|
simulation.py
|
|
~~~~~~~~~~~~~
|
|
Contains Simulation, SimulationInput, and SimulationAnalyzer
|
|
base classes. All core functionality of Simulation objects is
|
|
defined here. Also contains derived simulation classes (sim,
|
|
input, analyzer) for generic simulation codes. Enables driving
|
|
of virtually any single or multi- input file simulation code by
|
|
using input file templates.
|
|
|
|
machine.py
|
|
~~~~~~~~~~
|
|
Contains Job, Machine, Workstation, and Supercomputer classes.
|
|
Also contains all derived Supercomputer classes (Titan, Edison,
|
|
Mira, etc.)
|
|
|
|
project_manager.py
|
|
~~~~~~~~~~~~~~~~~~
|
|
Contains ProjectManager class. Code controlling workflow
|
|
management is generally shared between ProjectManager and
|
|
Simulation.
|
|
|
|
bundle.py
|
|
~~~~~~~~~
|
|
Contains a facility (the "bundle" function) for bundling
|
|
many simulation jobs into a single, larger batch job.
|
|
|
|
|
|
|
|
b. Derived classes for specific simulation codes
|
|
-------------------------------------------------
|
|
|
|
QMCPACK
|
|
~~~~~~~
|
|
Simulation: qmcpack.py
|
|
SimulationInput: qmcpack_input.py
|
|
SimulationAnalyzer: qmcpack_analyzer.py
|
|
|
|
Supporting analysis classes:
|
|
qaobject.py, qmcpack_analyzer_base.py,
|
|
qmcpack_method_analyzers.py, qmcpack_property_analyzers.py,
|
|
qmcpack_quantity_analyzers.py,qmcpack_result_analyzers.py,
|
|
spacegrid.py
|
|
|
|
Orbital conversion tools for QMCPACK:
|
|
convert4qmc.py, pw2qmcpack.py, wfconvert.py
|
|
|
|
PWSCF
|
|
~~~~~
|
|
Simulation: pwscf.py
|
|
SimulationInput: pwscf_input.py (read/write any input file)
|
|
SimulationAnalyzer: pwscf_analyzer.py (parse log output and data~file.xml)
|
|
|
|
VASP
|
|
~~~~~
|
|
Simulation: vasp.py
|
|
SimulationInput: vasp_input.py (read/write any input file)
|
|
SimulationAnalyzer: vasp_analyzer.py (parse OUTCAR and vasprun.xml)
|
|
|
|
GAMESS
|
|
~~~~~~
|
|
Simulation: gamess.py
|
|
SimulationInput: gamess_input.py (read/write any input file)
|
|
SimulationAnalyzer: gamess_analyzer.py (parse log output)
|
|
|
|
SQD
|
|
~~~
|
|
Simulation: sqd.py
|
|
SimulationInput: sqd_input.py
|
|
SimulationAnalyzer: sqd_analyzer.py
|
|
|
|
OPIUM
|
|
~~~~~
|
|
opium.py contains all three (sim, input, analyzer)
|
|
|
|
|
|
|
|
c. Miscellaneous facilities
|
|
-------------------------------------------------
|
|
|
|
debug.py
|
|
~~~~~~~~
|
|
Adds support for interactive code break points.
|
|
|
|
periodic_table.py
|
|
~~~~~~~~~~~~~~~~~
|
|
Access to periodic table data in a structured object format.
|
|
|
|
numerics.py, extended_numpy.py
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
Statistics and curve fitting support.
|
|
|
|
unit_converter.py
|
|
~~~~~~~~~~~~~~~~~
|
|
Unit conversion of scalars and arrays.
|
|
|
|
xmlreader.py
|
|
~~~~~~~~~~~~
|
|
Class to convert XML file into structured object format.
|
|
|
|
hdfreader.py
|
|
~~~~~~~~~~~~
|
|
Class to convert HDF5 file into structured object containing
|
|
numpy arrays.
|
|
|
|
fileio.py
|
|
~~~~~~~~~
|
|
Interface to XSF files. Other will go here later.
|
|
|
|
plotting.py
|
|
~~~~~~~~~~~
|
|
Access to plotting functions via matplotlib.
|
|
|
|
pseudopotential.py
|
|
~~~~~~~~~~~~~~~~~~
|
|
Classes representing pseudopotentials. Functions supporting
|
|
pseudopotential conversion.
|
|
|
|
template_simulation.py
|
|
~~~~~~~~~~~~~~~~~~~~~~
|
|
Example and explanation for developers interested in
|
|
implementing new derived Simulation classes for codes
|
|
not yet supported by Nexus.
|
|
|
|
|