Bingbing Suo's personal page.
Wiki logs
1 Add Wiki theme moin-mandarin. Look at the link https://bitbucket.org/thesheep/moin-mandarin
2 Try to edit a bdftheme from modernized theme.
- Make a copy of the 'modern' theme in the static files directory and call it 'bdftheme'
- Copy the script of this theme MoinMoin/theme/modern.py' to data/plugins/theme/bdftheme.py
- Edit the file 'bdftheme.py' and change at least the variable name = "modernized" to {name ="bdftheme"}
Latex Support https://moinmo.in/ParserMarket/latex
Do not forget install latex, dvipng. All of these packages can be installed via apt-get.
Filename for all kind of local orbitals in BDF:
1. localorb - local orbital generated by BDF module localmo. Boys and trust region methods are used in orbital localization. 2. blmo - Boys. 3. tlmo - Trust region. 4. flmoorb - fragment local orbital generated by bottom-up method. 5. pflmo - norm-orthogonal pFLMO.
BDF git version control user's guide
Start from a clean BDF copy bdfpkg
Create directory cd bdfpkg Initial a git bare repository. Notice we also use flag --shared. git init --bare --shared git add git config --global user.name "your name" git config --global user.email "youremail@domain" git commit -m "Creat BDF package store"
get a bdf work copy
Obtain a bdf work copy git clone youname@10.105.153.100:/export/gitroot/bdf-pkg You need set some general information such as user name and user email. git config --global user.name "Your name" git config --global user.email "youremail@domain" Create your own branch git branch myown Switch to your new branch git checkout myown
Some open source Quantum Chemistry program package
Octopus
Keywords: Real time TDDFT, Real-space, finite element basis sets, Pseudopotentials Homepage: http://www.tddft.org/programs/octopus/wiki/index.php/Manual:About_Octopus License: GPL GPU support:
BigDFT
Keywords: Pseudopotentials, Wavelet basis set, Homepage: http://bigdft.org/Wiki/index.php?title=BigDFT_website License: GPL
List of quantum chemistry program with GPU support
1. TeraChem : HF/DFT; GPU, Cuda; GTO s,p,d; gradient and dynamic. http://mtzweb.stanford.edu/research/gpu 2. QUICK: HF/DFT, GPU, Cuda, GTO s,p,d,f for energy, s,p,d for gradient. http://www.merzgroup.org/quick.html 3. Octopus: DFT, GPU, OpenCL, 4. BigDFT: DFT, GPU, Cuda, OpenCL, Wavelet. http://bigdft.org/Wiki/index.php?title=BigDFT_website 5. Gamess-US: HF/DFT, GPU, Cuda, GTO s,p,d, f. ???
Use BDF with job management system
qsub
You should prepare a qsub script.
bsub
You should prepare a bsub script "my job".
For bash users #!/bin/bash # #BSUB -a poe # set parallel operating environment #BSUB -P project_code # project code #BSUB -J hybrid_job_name # job name #BSUB -W 00:10 # wall-clock time (hrs:mins) #BSUB -n 32 # number of tasks in job #BSUB -R "span[ptile=4]" # run four MPI tasks per node #BSUB -q regular # queue #BSUB -e errors.%J.hybrid # error file name in which %J is replaced by the job ID #BSUB -o output.%J.hybrid # output file name in which %J is replaced by the job ID #export OMP_NUM_THREADS=4 #export MP_TASK_AFFINITY=core:$OMP_NUM_THREADS # get host list and create machine file for MPI. echo /dev/null > nodelist for host in $LSB_HOSTS ; do echo $host >> nodelist done #BDF parallel information nnodes=2 # set computing nodes processes=4 # number of processes in a nodes nthreads=2 # number of OpenMP threads in a process. # Start BDF MPI job $BDFHOME/sbin/bdfdrv.py -np nnodes:nprocesses:nthreads -machinefile nodelist jobname.inp #mpirun.lsf ./program_name.exe
For csh users
# #BSUB -a poe # set parallel operating environment #BSUB -P project_code # project code #BSUB -J hybrid_job_name # job name #BSUB -W 00:10 # wall-clock time (hrs:mins) #BSUB -n 32 # number of tasks in job #BSUB -R "span[ptile=4]" # run four MPI tasks per node #BSUB -q regular # queue #BSUB -e errors.%J.hybrid # error file name in which %J is replaced by the job ID #BSUB -o output.%J.hybrid # output file name in which %J is replaced by the job ID setenv OMP_NUM_THREADS 4 setenv MP_TASK_AFFINITY core:$OMP_NUM_THREADS #mpirun.lsf ./program_name.exe
AO-TDDFT
AO-TDDFT supports R-TDDFT, U-TDDFT, R-TDDFT-SF+1. The possible combinations are imethod=1, itda=0, isf=0 imethod=1, itda=0, isf=1 imethod=2, itda=0, isf=0 AO-TDA supports R-TDA,U-TDA, R-TDA-SF+1, R-TDA-SF-1, U-TDA-SF3. The possible combinations are imethod=1, itda=1, isf=0 imethod=1, itda=1, isf=1 imethod=2, itda=1, isf=0 imethod=2, itda=1, isf=-1 imethod=2, itda=1, isf=3
Some useful resources
Present day theoretical chemistry http://simons.hec.utah.edu/TheoryPage/present_day_theoretical_ch.html Gromacs guide. in Chinese http://jerkwin.github.io/9999/10/31/GROMACS%E4%B8%AD%E6%96%87%E6%95%99%E7%A8%8B/#opennewwindow Transition metal spectra http://www.ipc.shizuoka.ac.jp/~sctokab/Okab.htm
BDF程序组织原则
BDF按照计算功能,编译成单独的模块。每个模块相当于Unix命令这样的工具,通过Python调用不同的实现复杂的计算功能。模块之间数据交换通过文件进行。
BDF计算时间测试数据
页面http://182.92.69.169:7226/bdfbenchmark提供了BDF的测试数据。这些数据不是为了与其他程序比较,只是BDF开发者用以评价BDF优化的如何,也给大家提供了一个对CPU和编译器效能的直观认识。具体时间与操作系统、编译器版本、CPU与内存配置,测试时系统的工作负载都有关。
Known bugs
Intel compiler 2018 is buggy. Keep away from it!
MPEC+COSX Keyword
Coulpot=0 or no Coulpot, ERI Coulpot=7003, Original MPEC Coulpot=1004 or Coulpolt=-1, used as the default for Coulpot, aMPEC4, first SCF step use ERI Coulpot=2004, aMPEC4, first SCF step do not use ERI
BDF source code notes
A lot of redundent codes will be removed after this commit. commit 03cacfea4a756a112a59cfa72c5cec14a94b356f (HEAD -> master, origin/master, origin/HEAD, bdf-pkg-pro, bdf-pkg-full) Author: Bingbing Suo <bsuo@nwu.edu.cn> Date: Sat Jul 24 21:58:39 2021 +0800 update cmake file
VScode ctags extension
VScode extension "ctags-support".
ext install ctags-support
BDF Compiling problems
1 ifort2019+gcc-9.4.2. Linking lsscf error. missing missing GOMP_loop_nonmonotonic_dynamic_next. May disable HILQC calculate Fock since it is not used at present. All gcc compilers >= 9.0 have such a problem. 2 GNU compiler v5-v9, gfortran+gcc/g++, link with MKL, work fine. 3 ifort2021+gcc/g++(GNU 5-9), link with MKL, work fine. 4 ifort+icc/icpc, v2021, should use flag "-I/usr/inlcude/c++/11.x", head file of c++/12.1.0 has compiling problem.
Cmake Rpath handing
https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling
netlib lapack extension for C
It is tricky to compiler lapacke in the lapack package from netlib. See LAPACKE/README. For BDF, you should set -DHAVE_LAPACK_CONFIG_H -DLAPACK_ILP64 to use 64 integer interface. Also, the complex is used in BDF. I guess we should set -DHAVE_LAPACK_CONFIG_H -DLAPACK_COMPLEX_CPP because the double complex is used by Zhangning.