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.

  1. Make a copy of the 'modern' theme in the static files directory and call it 'bdftheme'
  2. Copy the script of this theme MoinMoin/theme/modern.py' to data/plugins/theme/bdftheme.py
  3. 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计算时间测试数据

bdfbenchmark

页面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.