Modified: James.Misaka.Bourbon.Liu
Original: ZPLiu's Group (SDHuang, SCMa, ZPLiu et. al.)
Last Update: 2022-09-05
Version: V1.2.5
Python 3.6+ (better 3.8)
NumPy, matplotlib, Pandas. Scipy, multiprocessing et. al.
Miniconda or Anaconda to construct Python-3.8 env is recommended
Original LASP_PythonLib use Python-2.7, which is TOTALLY OUT-Of-DATE
- SSW-NN-autotrain Machine Learning Potentials of LASP.
- python (and shell/fortran) scripts which can be used in LASP Calculation. e.g:
- vasp2lasptrain.py transfer VASP-label result to TrainStr.txt and TrainFor.txt. (independently)
- shiftformat.py transfer between arc-file and Traindata-file. (independently)
- traindata_analysis.py to give infomation of TrainStr.txt and TrainFor.txt.
- splitarc_auto.py to split muti-struc-arcfile to each input.arc(lasp.str) or DFT_label_inputfile.
- pos_arc_shift.py transfer between POSCAR and struc-arc-file.
- shellscript in little_script dir.
- computeQ.py for calculate dafa for PlotQE usage.
StartfromVASP 0 # 0 start from SSW sampling provided with NN pot , 1 start from allstr.arc-0 in VASP dir, which is often used to train the first NN pot
Nbad 40 # structures for VASP every cycle
cpupernode 96 # CPU total core (not suggested running between 2 or more CPUs)
SSWcheckcycle 600 # SSW time clock 600 seconds
%block cpuperjob
SSW 24 # cores per SSW job
VASP 24 # cores per VASP job
NN 0 # should be designated in jobs.sh
%endblock cpuperjob
%block prog
SSW /home10/bin/lasp-1.0-release/lasp
VASP /home10/bin/lasp-1.0-release/lasp
VASPgamma /home10/bin/lasp-1.0-release/lasp.gamma
NN /home10/bin/lasp-1.0-release/lasp
%endblock prog
%block base
O 0.0
H 0.0
%endblock base
- make sure the name of NN pot is correct, e.g. sed -i 's/H2O/PtOH.pot/g' jobs.sh
- modify the number of cycles, default is 100, in: for i in {1..100}
- modify the cpu/cores required for your computing cluster (modify it in jobs.sh)
in SSW/sourcedir/allstr-ini.arc
you may get allstr-ini.arc from the examples of structure which you need to add and train in your pot
In rootdir/NN you should prepare:
lasp.in # lasp_NNtrain input file
H2O.pot # not required if start from scratch
H2O.input # if start from scratch, use "newrun" for pot
TrainStr.txt # if start from scratch, just creat an empty file
TrainFor.txt # if start from scratch, just creat an empty file
adjust_factor # can ignore
lasp already has a lot of Train*.txt files for different systems please first download TrainStr.txt TrainFor.txt from www.lasphub.com
You'd better have anaconda env in your server, otherwise you can use intel-python:
You can use intel-python by define it in .bashrc:
export PYTHONPATH=/data/apps/intel/intelpython3/bin:$PYTHONPATH
- related to traindata
- shiftformat.py: arc2train or train2arc usage
- vasp2lasptrain.py: vasp-dft result directly to TrainStr.txt and TrainFor.txt
- cut_traindata.py: cut TrainStr/TrainFor by
- traindata_analysis.py: print-out statistic infomation of TrainStr/TrainFor
- related to arc_data
- findGM.py: find top100(can be set) global minimum structure from SSW result
- splitarc_auto.py: split all-str arc file to one-str arc file (or dft-project dir)
- nodejob.py and nodejob_coor.py: collect all-str from SSW to VASP-DFT
- collect_vasp_label.py: collect and screen all-str from SSW to VASP-DFT (not test)
- screen_data.py: from auto.py, used to screen all-str from SSW result (not test)
- related to coordination patterns
- dft_setting dir: used for coor_verlet_sample.py
- coor_verlet_sample.py: two-steps dynamic verlet sampling based on stucture similarity described by coordination patterns
- update_patterns.py: generate coordination patterns of all-str (and add to exist database)
- parallel version is still coding/refining, this version have lower speed
- SSW/sourcedir have input.i for SSW-NN input file, may need to check
- remember check SSW VASP NN dir before finally running
- Remember check auto.py(SSW_choosing_mode) and jobs.sh before qsub/sbatch
- Coordination-Patterns method waiting for using
- auto.py and SSW-DFT-NN auto still need to be tested