welcome: please sign in
location: Diff for "Bingbing Suo"
Differences between revisions 17 and 63 (spanning 46 versions)
Revision 17 as of 2014-04-09 08:56:06
Size: 4009
Editor: 10
Comment:
Revision 63 as of 2023-05-30 14:27:17
Size: 7962
Editor: bsuo
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= Bingbing Suo is own page. = = Bingbing Suo's personal page. =
Line 11: Line 11:
 1. Edit the file 'bdftheme.py' and change at least the variable name = "modernized" to {name ="bdftheme"  1. 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.
Line 52: Line 57:
{{{ Keyword: Real time TDDFT, Real-space, finite element basis set.
Octopus is a pseudopotential real-space package aimed at the simulation of the electron-ion dynamics of one-, two-, and three-dimensional finite systems subject to time-dependent electromagnetic fields. The program is based on time-dependent density-functional theory (TDDFT) in the Kohn-Sham scheme. All quantities are expanded in a regular mesh in real space, and the simulations are performed in real time. The program has been successfully used to calculate linear and non-linear absorption spectra, harmonic spectra, laser induced fragmentation, etc. of a variety of systems. The fundamentals of DFT and TDDFT can be found, e.g., in the books [1] and [1] . All information about the octopus package can be found in its homepage, http://www.tddft.org/programs/octopus/, and in the articles [1] and [1] .
The main advantage of real-space methods is the simplicity and intuitiveness of the whole procedure. First of all, quantities like the density or the wave-functions are very simple to visualize in real space. Furthermore, the method is fairly simple to implement numerically for 1-, 2-, or 3-dimensional systems, and for a variety of different boundary conditions. For example, one can study a finite system, a molecule, or a cluster without the need of a super-cell, simply by imposing that the wave-functions are zero at a surface far enough from the system. In the same way, an infinite system, a polymer, a surface, or bulk material can be studied by imposing the appropriate cyclic boundary conditions. Note also that in the real-space method there is only one convergence parameter, namely the grid-spacing, and that decreasing the grid spacing always improves the result.
Unfortunately, real-space methods suffer from a few drawbacks. For example, most of the real-space implementations are not variational, i.e., we may find a total energy lower than the true energy, and if we reduce the grid-spacing the energy can actually increase. Moreover, the grid breaks translational symmetry, and can also break other symmetries that the system may possess. This can lead to the artificial lifting of some degeneracies, to the appearance of spurious peaks in spectra, etc. Of course all these problems can be minimized by reducing the grid-spacing.
}}
{{{
    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
{{{
#!/bin/tcsh
#
#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.

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.

Bingbing Suo (last edited 2023-05-30 14:27:17 by bsuo)