Difference between revisions of "SALMON Manual for Beginners"

From salmon
Jump to: navigation, search
(Created page with "== Installation == === Prerequisites === In this guide, it is assumed that readers have a basic knowledge on Unix. In the following, most works will be done in the command-...")
 
 
(26 intermediate revisions by 4 users not shown)
Line 1: Line 1:
== Installation ==
+
== Prerequisites ==
  
=== Prerequisites ===
+
In this guide, it is assumed that readers have a basic knowledge of Unix. In the following, most works will be done in the command-line interface of Unix. For the installation of SALMON, following packages are required.
 
 
In this guide, it is assumed that readers have a basic knowledge on Unix.  
 
In the following, most works will be done in the command-line interface of Unix.  
 
For the installation of SALMON, following packages are required.
 
  
 
* Fortran90/C compiler with MPI support. Our package assumes users have one of the following compilers:
 
* Fortran90/C compiler with MPI support. Our package assumes users have one of the following compilers:
Line 21: Line 17:
 
** Gnu Make
 
** Gnu Make
  
If you use other compilers, you may need to change build scripts (CMake, Makefile).
+
If you use other compilers, you may need to change build scripts (CMake, Makefile). If no numerical library is installed on your computer system, you may need to install BLAS/LAPACK by yourself. See Tips for Installation.
If no numerical library is installed in your computer system, you may need to install BLAS/LAPACK by yourself.
+
See [[Troubleshooting of the Installation Process]].
See Installation of BLAS/LAPACK.
 
  
 +
== Download ==
  
=== Download ===
+
The newest version of the SALMON can be downloaded from [[Download]].
 +
To extract files from the downloaded file ''salmon-<VERSION>.tar.gz'', type the following command in the command-line,
  
Newest version of the SALMON can be downloaded from [[Download]].
+
  $ tar –zxvf ./salmon-<VERSION>.tar.gz
To extract files from the downloaded file <code>salmon-x.y.z.tar.gz</code>, type the following command in the command-line,
 
 
 
  tar –zxvf ./salmon-xx.xx.xx.tar.gz
 
  
 
After the extraction, the following directories will be created.
 
After the extraction, the following directories will be created.
Line 43: Line 37:
 
   |- Makefile  Files related to building
 
   |- Makefile  Files related to building
  
 +
== Build ==
 +
 +
To compile SALMON to create executable binary files, two options are prepared, CMake and Gnu Make.
 +
If CMake works in your environment, we recommend to use it.
 +
If CMake fails in your environment, consider using Gnu Make.
  
=== Build ===
+
=== Build using CMake ===
To compile SALMON to create executable binary files, two options are prepared, CMake and Gnu Make. If CMake works in your environment, we recommend to use it. If CMake fails in your environment, consider to use Gnu Make.
 
  
==== Build using CMake ====
+
First, examine whether CMake is usable in your environment or not.
First examine whether CMake is usable in your environment or not.
+
Type the following in Unix command-line:
If CMake is installed in your system, you can check the version of the CMake typing in the command-line as
 
  
 
  $ cmake --version
 
  $ cmake --version
  
If CMake is not installed in your system, error message such as <code>cmake: command not found</code> will appear.  
+
If CMake is not installed in your system, an error message such as <code>cmake: command not found</code> will appear.  
If CMake is installed in your system, version number will be shown.
+
If CMake is installed on your system, the version number will be shown.
 
To build SALMON, CMake of version 3.0.2 or later is required.  
 
To build SALMON, CMake of version 3.0.2 or later is required.  
If CMake is not installed or CMake of older version is installed in your system, you need to install the new version by yourself.  
+
If CMake is not installed or CMake of the older version is installed in your system, you need to install the new version by yourself.  
  
A detailed description how to install the CMake is given in [[Installation of CMake]].
+
The installation of the CMake is simple.
We here describe a simple method to use the binary distribution of CMake.
+
A detailed description of the installation is given in [[Tips_for_Installation#Installation_of_CMake | Installation of CMake]].
First download the '''binary distribution file''' appropriate for your system from https://cmake.org/download/.
+
Here we describe a simple method to use the binary distribution of CMake.
The filename of the downloaded file will be <code>cmake-<VERSION_PLATFORM>.tar.gz</code>.
+
First, download the '''binary distribution file''' appropriate for your system from https://cmake.org/download/.
 +
The filename of the downloaded file will be ''cmake-<VERSION_PLATFORM>.tar.gz''.
 
In standard Unix environment, files for the platform of Linux x86_64 will be appropriate.
 
In standard Unix environment, files for the platform of Linux x86_64 will be appropriate.
 
Next extract the binary executable file of CMake, typing in the command-line as
 
Next extract the binary executable file of CMake, typing in the command-line as
Line 67: Line 65:
 
  $ tar xvfz cmake-<VERSION_PLATFORM>.tar.gz
 
  $ tar xvfz cmake-<VERSION_PLATFORM>.tar.gz
  
Then you will have the cmake binary file in <code>bin</code> directory.
+
Then you will have the cmake binary file in ''bin'' directory.
For the cmake binary file to be usable, you need to modify the Unix environmental variable <code>$PATH</code>
+
For the CMake binary file to be usable, you need to modify the Unix environmental variable ''$PATH'' appropriately.
appropriately.
 
  
'''Need to add how to modify the $PATH'''
+
'''''Description how to modify the $PATH should come here'''''
  
To confirm that CMake of the new version is usable in your environment, type <code>cmake --version</code>
+
To confirm that CMake of the new version is usable in your environment, type <code>cmake --version</code> in the command-line.
in the command-line.
 
  
===== Build using CMake specifying archtechture =====
+
==== Build using CMake specifying archtechture ====
  
Confirming that CMake of version 3.0.2 or later can be usable in your system, proceed the following steps.  
+
Confirming that CMake of version 3.0.2 or later can be usable on your system, proceed the following steps.  
 
We assume that you are in the directory SALMON.
 
We assume that you are in the directory SALMON.
* Create a new temporary directory `build` and move to the directory,
+
* Create a new temporary directory ''build'' and move to the directory,
  
 
  $ mkdir build
 
  $ mkdir build
 
  $ cd build
 
  $ cd build
  
* Execute the python script <code>configure.py</code> and then make,
+
* Execute the python script ''configure.py'' and then make,
  
 
  $ python ../configure.py –arch=ARCHTECTURE
 
  $ python ../configure.py –arch=ARCHTECTURE
 
  $ make
 
  $ make
  
Here <code>ARCHTECTURE</code> specifies the architecture of the CPU in your computer system such as <code>intel-avx</code>. You need to choose <code>ARCHTECUTRE</code> from the following options:
+
Here ''ARCHITECTURE'' specifies the architecture of the CPU in your computer system such as ''intel-avx''.  
 +
You need to choose ''ARCHTECUTRE'' from the following options:
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 108: Line 105:
 
|}
 
|}
  
If the build is successful, you will get a file <code>salmon.cpu</code> at the directory <code>./bin</code>. If you specify many-core archtechtures, <code>intel-knl</code> or <code>intel-knc</code>, you find a file <code>salmon.mic</code> or both files <code>salmon.cpu</code> and <code>salmon.mic</code>.
+
If the build is successful, you will get a file ''salmon.cpu'' at the directory ''.salmon/bin''. If you specify many-core archtechtures, ''intel-knl'' or ''intel-knc'', you find a file ''salmon.mic'' or both files ''salmon.cpu'' and ''salmon.mic''.
  
 
<!--
 
<!--
Line 122: Line 119:
 
-->
 
-->
  
==== Build using Gnu Make ====
+
=== Build using Gnu Make ===
If CMake build fails in your environment, try Gnu Make for the build process. Gnu Make utilize a file, Makefile, which you can find at the directory <code>SALMON/Makefile</code>. First you need to modify Makefile appropriately according to your environment. Edit the Makefile using a text editor. At least you need to change the line that choose the architecture of the system, from line ?? to ??
+
 
 +
If CMake build fails in your environment, try Gnu Make for the build process.  
 +
Gnu Make utilize a file, ''Makefile'', which you can find at the directory ''SALMON/Makefile''.  
 +
First, you need to modify ''Makefile'' appropriately according to your environment.  
 +
Edit the ''Makefile'' using a text editor.  
 +
At least you need to change the line that choose the architecture of the system, from line 4 to 10
  
 
  # This is a makefile for SALMON program.
 
  # This is a makefile for SALMON program.
 
  # please select architecture by deleting “#”
 
  # please select architecture by deleting “#”
 +
 
  #ARCH = gnu
 
  #ARCH = gnu
 
  ARCH = intel
 
  ARCH = intel
 +
#ARCH = intel-avx
 +
#ARCH = intel-avx2
 
  #ARCH = fujitsu
 
  #ARCH = fujitsu
 
  #ARCH = intel-knl
 
  #ARCH = intel-knl
 +
#ARCH = intel-knc
  
Then use make command in the command-line to build the executable file.
+
Then use ''make'' command in the command-line to build the executable file.
  
 
  $ make
 
  $ make
  
 +
== Files necessary to run SALMON ==
 +
 +
To run SALMON, at least two kinds of files are required for any calculations.
 +
One is an input file, with the filename extension of ''*.inp*'', to be read from the standard input, ''stdin''.
 +
It should be prepared in the Fortran90 namelist format.
 +
Pseudopotential files of relevant elements are also required.
 +
Depending on your purpose, some other files may also be necessary.
 +
For example, coordinates of atomic positions of the target material may either be written in the input file or prepared as a separate file.
 +
 +
=== pseudopotentials ===
 +
 +
SALMON utilizes norm-conserving pseudpotentials.
 +
You may find pseudopotentials of some elements in [[Samples]].
 +
SALMON allows using several formats of pseudopotentials that can be easily obtained from websites listed below.
 +
 +
 +
{| class="wikitable"
 +
| pseudopotential || website
 +
|-
 +
| Ab-init FHI ||  http://www.ab-init
 +
|}
 +
 +
In the input file, you need to write the filename of the pseudopotential.
 +
Use exactly the same filename as that downloaded from the website or that in the [[Samples]].
 +
 +
=== input file ===
 +
 +
SALMON describes electron dynamics in systems with both isolated and periodic boundary conditions.
 +
The boundary condition is specified by the variable ''iperiodic'' in the namelist ''&system''.
 +
Calculations are achieved in two steps; first, the ground state calculation is carried out and then electron dynamics calculations in real time are achieved.
 +
Choice of the calculation mode is specified by the variable ''calc_mode'' in the namelist ''&calculation''.
 +
For isolated systems, the ground state and the electron dynamics calculations should be carried out in two steps.
 +
First the ground state calculation is achieved specifying ''calc_mode = 'GS' ''.
 +
Then the real-time electron dynamics calculation is achieved specifying ''calc_mode = 'RT' ''.
 +
For periodic systems, two calculations should be carried out in one step specifying ''calc_mode = 'GS_RT' ''.
 +
 +
There are about 20 groups of namelists listed below.
 +
A list of variables in each namelist is provided in the file ''???'' included in the source-file distribution.
 +
 +
{| class="wikitable"
 +
| name of namelist || description
 +
|-
 +
| &calculation || specify calculation modes
 +
|-
 +
| &control  || parameters related to general conditions for the calculation
 +
|-
 +
| &units        || specify units of input and output files
 +
|-
 +
| &parallel      || parameters related to parallelization
 +
|-
 +
| &system      || information related to the system
 +
|-
 +
| &pseudo      || information related to pseudopotentials
 +
|-
 +
| &functional || specify density functional to be used
 +
|-
 +
| &rgrid        || parameters related to real space grid 
 +
|-
 +
| &kgird      || parameters related to k-points for periodic systems
 +
|-
 +
| &tgrid      || parameters related to time evolution
 +
|-
 +
| &propagation || specify a choice of the propagation method
 +
|-
 +
| &scf          || parameters related to ground state calculation
 +
|-
 +
| &emfield  || parameters of electric fields applied to the system
 +
|-
 +
| &linear_response || magnitude of the distortion for linear response
 +
|-
 +
| &multiscale || parameters related to coupled multiscale calculations of electron dynamics and light propagations
 +
|-
 +
| &analysis || parameters related to output files
 +
|-
 +
| &hartree      || parameters related to Hartree potential calculation of isolated systems
 +
|-
 +
| &ewald  || parameters related to Ewald sum that appears in the ground state calculation of periodic systems
 +
|-
 +
| &atomic_coor || Atomic coordinates can be written here
 +
|}
 +
 +
In [[Samples]], we prepare six samples that cover typical calculations feasible by using SALMON.
 +
We prepare explanations for the input files that will help to prepare input files of your own interests.
  
=== Tips for installation ===
+
Here we briefly explain the format of the namelist.
  
==== Installation of CMake ====
+
&namelist1
Installation of CMake
+
  variable1 = int_value
When CMake is not available in your environment or the version of the installed CMake is former than version 3.0.2, you need to install the new version of CMake by yourself. It can be done as follows:
+
  variable2 = 'char_value'
 +
  /
 +
&namelist2
 +
  variable1 = real8_value
 +
  variable2 = int_value1, int_value2, int_value3
 +
/
  
==== Installation of BLAS/LAPACK ====
+
A block of namelists starts with ''&namelist'' line and ends with ''/'' line.
 +
Between two lines, descriptions of variables and their values appear.
 +
Note that many variables have their default values so that it is not necessary to give values for all variables.
 +
The description of the variables may appear at any position if they are between ''&namelist'' and ''/''.
 +
Input files constitute of several blocks of namelists.
 +
The blocks can appear in any order.
  
== Files necessary to run SALMON ==
+
== Run SALMON ==
To run SALMON, at least two kinds of files are required for any calculations. One is an input file, with the filename extension of *.inp*, to be read through the standard input, `stdin`. It should be prepared in the Fortran90 namelist format. Pseudopotential files of relevant elements are also required. Depending on your purpose, some other files may also be necessary. For example, coordinates of atomic positions of the target material may either be written in the input file or prepared as a separate file.
 
  
==== pseudopotentials ====
+
To run SALMON, the executable file of ''salmon.cpu'' (and ''salmon.mic'' if your system is the many-core machine) should be built from the source file of SALMON as described above. An input file ''inputfile.inp'' and pseudopotential files should also be prepared as mentioned above.
SALMON utilizes norm-conserving pseudpotentials. You may find pseudopotentials of some elements in [Samples](http://www). SALMON allows to use several formats of pseudpotentials that can be easily obtained from websites listed below.
+
In order to execute the calculation, for the single process environment, type the following command:
  
| pseudopotential | website |
+
  $ salmon.cpu < inputfile.inp > fileout.out
|-----------------|---------|
 
| Ab-init FHI | http://www.ab-init |
 
  
In the input file, you need to write the filename of the pseudopotential. Use exactly the same filename as that downloaded from the website or that in the Samples.
+
For the multiprocess environment, If the command to execute calculations using MPI is ''mpiexec',  the calculation will start
  
# 2.2 input file
+
$ mpiexec -n NPROC salmon.cpu < inputfile.inp > fileout.out
Input file should be written using Fortran90 namelist format such as
 
```
 
&system
 
  iperiodic = 0
 
  al = 16d0, 16d0, 16d0
 
  nstate = 5
 
  nelem = 2
 
  natom = 4
 
  file_atom='coo.data'
 
/
 
```
 
where the `system` in `&system` indicates the name of the namelist. In `iperiodic = 0`, `iperiodic` is the variable name and `0` is the value. A group of namelists starts with `&namelist` line and ends with `/` line. Between two lines, descriptions of variables and their values appear. Note that many variables have their default values, so it is not necessary to give values for all variables. The description of the variables may appear at any position if they are between `&namelist` and `/`.
 
Usually several groups of namelists are included in the input file. The order of the groups can be arbitrary.
 
  
SALMON describes electron dynamics in systems with both isolated and periodic boundary conditions. The boundary condition is specified by the variable `iperiodic` in `&system`. Calculations are achieved in two steps; first the ground state calculation is carried out and then electron dynamics calculations in real time are achieved. Choice of the calculation mode is specified by the variable `calc_mode` in `&calculation`. For isolated system, the ground state and the electron dynamics calculations should be carried out in two steps. For periodic system, two calculations should be carried out in one step. Therefore, we prepare three options in the `calc_mode`, 'GS', 'RT', and 'GS_RT'.
+
where NPROC is the number of MPI processes you want to use.
 +
For the many-core processor (e.g. intel-knl)  environment, the execution command is
  
There are about 20 groups of namelists.
+
$ mpiexec.hydra -n NPROC salmon.mic < inputfile.inp > fileout.out
  
| name of namelist | description |
+
The execution command and the job submission procedure depends much on the local environment.
|----------------|-------------|
+
We just summarize the general conditions to execute SALMON:
| &units        | specify units of input and output files |
 
| &calculation  | specify the type of calculation, GS (ground state), RT (real-time), and GS-RT (ground state and real time) |
 
| &parallel      | related to parallelization |
 
| &system        | system information |
 
| &pseudo        | specify pseudopotential |
 
| &rgrid        | parameters related to real space grid  |
 
| &scf          | parameters related to ground state calculation |
 
| &hartree      | construct Hartree potential |
 
| &group_fundamental |    |
 
| &group_file    |        | |
 
  
In [Samples](http://), we prepare six samples that cover typical calculations by SALMON. We prepare explanation for the input files that will help to prepare input files of your own interests.
+
* salmon runs in parallel environment using MPI.
 +
* executable files are prepared as ''/salmon/bin/salmon.cpu'' and/or ''/salmon/bin/salmon.mic'' in the standard build procedure.
 +
* to start calculations, ''inputfile.inp'' should be read through ''stdin''.
  
#3 Run SALMON
+
== Output files ==
  
#4 Output files
+
See [[Samples]].

Latest revision as of 09:12, 30 July 2017

Prerequisites

In this guide, it is assumed that readers have a basic knowledge of Unix. In the following, most works will be done in the command-line interface of Unix. For the installation of SALMON, following packages are required.

  • Fortran90/C compiler with MPI support. Our package assumes users have one of the following compilers:
    • GCC (Gnu Compiler Collection)
    • Intel Fortran/C Compiler
    • Fujitsu Compiler (at FX100 / K-Computer)
  • One of the following library packages for linear algebra:
    • BLAS/LAPACK
    • Intel Math Kernel Library (MKL)
    • Fujitsu Scientific Subroutine Library 2 (SSL-II)
  • One of the following build tools.
    • CMake
    • Gnu Make

If you use other compilers, you may need to change build scripts (CMake, Makefile). If no numerical library is installed on your computer system, you may need to install BLAS/LAPACK by yourself. See Tips for Installation. See Troubleshooting of the Installation Process.

Download

The newest version of the SALMON can be downloaded from Download. To extract files from the downloaded file salmon-<VERSION>.tar.gz, type the following command in the command-line,

$ tar –zxvf ./salmon-<VERSION>.tar.gz

After the extraction, the following directories will be created.

SALMON
 |- ARTED      Source codes related to periodic systems
 |- GCEED      Source codes related to isolated systems
 |- src        Source codes of core modules
 |- main       Source codes of the main routines
 |- example    Samples
 |- Makefile   Files related to building

Build

To compile SALMON to create executable binary files, two options are prepared, CMake and Gnu Make. If CMake works in your environment, we recommend to use it. If CMake fails in your environment, consider using Gnu Make.

Build using CMake

First, examine whether CMake is usable in your environment or not. Type the following in Unix command-line:

$ cmake --version

If CMake is not installed in your system, an error message such as cmake: command not found will appear. If CMake is installed on your system, the version number will be shown. To build SALMON, CMake of version 3.0.2 or later is required. If CMake is not installed or CMake of the older version is installed in your system, you need to install the new version by yourself.

The installation of the CMake is simple. A detailed description of the installation is given in Installation of CMake. Here we describe a simple method to use the binary distribution of CMake. First, download the binary distribution file appropriate for your system from https://cmake.org/download/. The filename of the downloaded file will be cmake-<VERSION_PLATFORM>.tar.gz. In standard Unix environment, files for the platform of Linux x86_64 will be appropriate. Next extract the binary executable file of CMake, typing in the command-line as

$ tar xvfz cmake-<VERSION_PLATFORM>.tar.gz

Then you will have the cmake binary file in bin directory. For the CMake binary file to be usable, you need to modify the Unix environmental variable $PATH appropriately.

Description how to modify the $PATH should come here

To confirm that CMake of the new version is usable in your environment, type cmake --version in the command-line.

Build using CMake specifying archtechture

Confirming that CMake of version 3.0.2 or later can be usable on your system, proceed the following steps. We assume that you are in the directory SALMON.

  • Create a new temporary directory build and move to the directory,
$ mkdir build
$ cd build
  • Execute the python script configure.py and then make,
$ python ../configure.py –arch=ARCHTECTURE
$ make

Here ARCHITECTURE specifies the architecture of the CPU in your computer system such as intel-avx. You need to choose ARCHTECUTRE from the following options:

arch Detail Compiler Numerical Library
intel-knl Intel Knights Landing Intel Compiler Intel MKL
intel-knc Intel Knights Corner Intel Compiler Intel MKL
intel-avx Intel Processer (Ivy-, Sandy-Bridge) Intel Compiler Intel MKL
intel-avx2 Intel Processer (Haswell, Broadwell ..) Intel Compiler Intel MKL
fujitsu-fx100 FX100 Su Fujitsu Compiler SSL-II
fujitsu-k Fujitsu FX100 / K-computer Fujitsu Compiler SSL-II

If the build is successful, you will get a file salmon.cpu at the directory .salmon/bin. If you specify many-core archtechtures, intel-knl or intel-knc, you find a file salmon.mic or both files salmon.cpu and salmon.mic.


Build using Gnu Make

If CMake build fails in your environment, try Gnu Make for the build process. Gnu Make utilize a file, Makefile, which you can find at the directory SALMON/Makefile. First, you need to modify Makefile appropriately according to your environment. Edit the Makefile using a text editor. At least you need to change the line that choose the architecture of the system, from line 4 to 10

# This is a makefile for SALMON program.
# please select architecture by deleting “#”
#ARCH = gnu
ARCH = intel
#ARCH = intel-avx
#ARCH = intel-avx2
#ARCH = fujitsu
#ARCH = intel-knl
#ARCH = intel-knc

Then use make command in the command-line to build the executable file.

$ make

Files necessary to run SALMON

To run SALMON, at least two kinds of files are required for any calculations. One is an input file, with the filename extension of *.inp*, to be read from the standard input, stdin. It should be prepared in the Fortran90 namelist format. Pseudopotential files of relevant elements are also required. Depending on your purpose, some other files may also be necessary. For example, coordinates of atomic positions of the target material may either be written in the input file or prepared as a separate file.

pseudopotentials

SALMON utilizes norm-conserving pseudpotentials. You may find pseudopotentials of some elements in Samples. SALMON allows using several formats of pseudopotentials that can be easily obtained from websites listed below.


pseudopotential website
Ab-init FHI http://www.ab-init

In the input file, you need to write the filename of the pseudopotential. Use exactly the same filename as that downloaded from the website or that in the Samples.

input file

SALMON describes electron dynamics in systems with both isolated and periodic boundary conditions. The boundary condition is specified by the variable iperiodic in the namelist &system. Calculations are achieved in two steps; first, the ground state calculation is carried out and then electron dynamics calculations in real time are achieved. Choice of the calculation mode is specified by the variable calc_mode in the namelist &calculation. For isolated systems, the ground state and the electron dynamics calculations should be carried out in two steps. First the ground state calculation is achieved specifying calc_mode = 'GS' . Then the real-time electron dynamics calculation is achieved specifying calc_mode = 'RT' . For periodic systems, two calculations should be carried out in one step specifying calc_mode = 'GS_RT' .

There are about 20 groups of namelists listed below. A list of variables in each namelist is provided in the file ??? included in the source-file distribution.

name of namelist description
&calculation specify calculation modes
&control parameters related to general conditions for the calculation
&units specify units of input and output files
&parallel parameters related to parallelization
&system information related to the system
&pseudo information related to pseudopotentials
&functional specify density functional to be used
&rgrid parameters related to real space grid
&kgird parameters related to k-points for periodic systems
&tgrid parameters related to time evolution
&propagation specify a choice of the propagation method
&scf parameters related to ground state calculation
&emfield parameters of electric fields applied to the system
&linear_response magnitude of the distortion for linear response
&multiscale parameters related to coupled multiscale calculations of electron dynamics and light propagations
&analysis parameters related to output files
&hartree parameters related to Hartree potential calculation of isolated systems
&ewald parameters related to Ewald sum that appears in the ground state calculation of periodic systems
&atomic_coor Atomic coordinates can be written here

In Samples, we prepare six samples that cover typical calculations feasible by using SALMON. We prepare explanations for the input files that will help to prepare input files of your own interests.

Here we briefly explain the format of the namelist.

&namelist1
  variable1 = int_value
  variable2 = 'char_value'
 /
&namelist2
  variable1 = real8_value
  variable2 = int_value1, int_value2, int_value3
/

A block of namelists starts with &namelist line and ends with / line. Between two lines, descriptions of variables and their values appear. Note that many variables have their default values so that it is not necessary to give values for all variables. The description of the variables may appear at any position if they are between &namelist and /. Input files constitute of several blocks of namelists. The blocks can appear in any order.

Run SALMON

To run SALMON, the executable file of salmon.cpu (and salmon.mic if your system is the many-core machine) should be built from the source file of SALMON as described above. An input file inputfile.inp and pseudopotential files should also be prepared as mentioned above. In order to execute the calculation, for the single process environment, type the following command:

$ salmon.cpu < inputfile.inp > fileout.out

For the multiprocess environment, If the command to execute calculations using MPI is mpiexec', the calculation will start

$ mpiexec -n NPROC salmon.cpu < inputfile.inp > fileout.out

where NPROC is the number of MPI processes you want to use. For the many-core processor (e.g. intel-knl) environment, the execution command is

$ mpiexec.hydra -n NPROC salmon.mic < inputfile.inp > fileout.out

The execution command and the job submission procedure depends much on the local environment. We just summarize the general conditions to execute SALMON:

  • salmon runs in parallel environment using MPI.
  • executable files are prepared as /salmon/bin/salmon.cpu and/or /salmon/bin/salmon.mic in the standard build procedure.
  • to start calculations, inputfile.inp should be read through stdin.

Output files

See Samples.