1. Introduction

1.1. About this code

TC++ is a first-principles calculation code using the Hartree-Fock (HF) and the transcorrelated (TC) methods for periodic systems.

1.2. Supported Functionalities

  • Free-electron mode (FREE), HF, TC, BITC (biorthogonal TC)

  • SCF and band calculations

  • (from ver.1.3) Cell-fixed structural optimization for HF and BITC. Hellmann–Feynman theorem holds for BITC but not for TC.

  • Solid-state calculation under the periodic boundary condition. Homogeneous-electron-gas calculation using a periodic cell is also possible.

  • Plane-wave basis set

  • Norm-conserving pseudopotentials without partial core correction (available, e.g., in Pseudopotential Library)

  • For spin-polarized calculation, only spin-collinear calculation without spin-orbit coupling is available.

  • Monkhorst-Pack k-grid with/without a shift. A k-grid should not break any crystal symmetry.

  • RPA-type Jastrow factor \(u_{\sigma, \sigma'}({\bf r}, {\bf r'}) = \frac{A_{\sigma, \sigma'}}{|{\bf r}-{\bf r'}|}(1-e^{-|{\bf r}-{\bf r'}|/C_{\sigma,\sigma'}})\)

1.3. Terms of use

TC++ is a free/libre open-source software, released under the MIT License. See the file LICENSE included in the distribution. Please cite the following paper in all publications resulting from your use of TC++.

1.4. Author & Contact

Masayuki Ochi (Osaka University, Japan) ochi@presto.phys.sci.osaka-u.ac.jp

1.5. History

  • 2023/12/26 ver.1.3

    • Cell-fixed structural optimization is implemented for HF and BITC. Hellmann–Feynman theorem holds for BITC but not for TC.

    • Gamma-only calculation is supported.

    • Dump jastrow.plt to display the Jastrow function (can be used by load "jastrow.plt" with gnuplot)

    • MPI+OpenMP parallelization. OpenMP is mainly for memory saving, not so efficient with respect to computational time.

    • Test implementation for polynomial Jastrow functions (Not shown in the manual, will be described in a future release)

    • Default values of the energy and charge convergence criteria are lowered by a factor of 10.

    • Some cpp file names are changed (read_qe.cpp -> io_qe_files_read.cpp etc.)

    • Bug fix for spin-polarized calculation (fixed in ver.1.2.2)

    • Bug fix for divergence correction for TC and BITC (fixed in ver.1.2.3)

  • 2023/1/16 ver.1.2

    • cmake and test are implemented.

    • A bug in reading upf files is fixed. Some upf files were not readable in older versions of TC++.

    • Some include files were not properly updated in ver.1.1.

  • 2022/12/14 ver.1.1

    • mixes_density_matrix is implemented, which can improve convergence of calculation (See Input parameters in input.in).

    • A format of the total energies in output.out is slightly changed in order to track the total-energy convergence easily (e.g., by p `< grep "Total energy =" output.out' u 5 with gnuplot).

    • Some files that are not used are removed (e.g., calc_hamiltonian_tc3a2.cpp).

  • 2022/11/18 ver.1.0