You can use siman in IPython as shown in tutorials. However, in our opinion it is more convinient to use Advanced code editor. We use Sublime Text 3. It has many cool features, including building the project right from your window with code. See here how to setup ST https://wiki.storion.ru/start/siman
If you choose the latter case we suggest to download this project template. It contains three python files. In main.py you make all your calculations. In project_conf.py you put all your control parameters. In project_sets.py you create new calculation sets.
Global configuration can be provided in "~/simanrc.py" file, which has the same parameters as project_conf.py and should be read before project_conf.py (see main.py).
This is the main file, where all calculations are performed. In the first block the following actions are performed:
- modules are imported
- the database file with all calculation results is read
- user sets are read from project_set.py
- configuration parameters for siman are initialized
- frequently used parameters are updated
In the second block all calculations are performed.
In the third block the session is closed and all calculations are saved in a user database.
Find the code below and provide your address, your homepath, your schedule system (from 'PBS', 'SLURM', SGE), number of cores, required modules, and vasp_command - path to vasp binary on cluster, etc.
username = 'username' # user name at cluster
CLUSTERS['mag'] = {
'address':username+'@10.30.16.168',
'vasp_com':'mpirun vasp_std',
'gaussian_command':'g16',
'homepath':'/home/'+username+'/',
'schedule':'SLURM',
'corenum':4,
'memory':24, #GB,
'partition':'AMG-medium',
# 'any_command':['--nodelist=node-amg01,node-amg02,node-amg03,node-amg09,node-amg12'],
'modules':'module load Compiler/Intel/16u4 Q-Ch/VASP/5.4.4 ScriptLang/python/3.6i_2018u3; \nulimit -s unlimited\n'
}
Attention! You should set up passwordless access to cluster. See here http://www.linuxproblem.org/art_9.html
If you use some other schedule system on your cluster, use different ssh port, please ask developer.
DEFAULT_CLUSTER = 'mag' # key from CLUSTERS dictionary described above
PATH2PROJECT = 'my_project' # path to project on cluster relative to home folder
PATH2POTENTIALS = '/path/to/potentials' # path to folder with VASP potentials on local machine
PATH2JMOL = 'jmol' # executable for jmol
PATH2PHONOPY = 'phonopy' # executable for phonopy
A set is a list of calculation parameters used by a scientifc program. E.g. INCAR in case of VASP.
In this file user put information about his sets in list user_vasp_sets. Each entry of this list creates new set based on any existing set, allowing to change one or more parameters according to the syntax described below. The new set is created only once and then saved in a user database. If you change the entry nothing will happen. It is done on purpurse to protect already created sets from being changed on accident. If you really need to update the set, use over = 'over' to update the particular set. Another option is to use override_global in read_vasp_sets in main.py
List of user VASP sets obtained on inheritance principle, see user_vasp_sets Syntax: ("set_new", "set_old", {"param1":value1, "param2":value2, ...}, over) - set_new (str) - name of new set - set_old (str) - name of base set used for creating new set - {} (dict) - dictionary of parameters to be updated in set_new - over (str) - by default is '', if 'over' then set_new is reinitializied (override), otherwise it is protected