Skip to content
  • Home
  • Recent
Collapse
Brand Logo
CRYSTAL23
Latest v1.0.1
Tutorials Try the Demo Get a License
Tutorials Try the Demo Get a License Instagram
aerbaundefined

Alessandro Erba

@aerba
Developer
About
Posts
101
Topics
1
Groups
1
Followers
9
Following
8

Posts

Recent Best Controversial

  • phonon dispersion in thermo
    aerbaundefined aerba

    Hi Jonas,

    When computing thermodynamic properties, we should set up a canonical partition function over all vibrational states of the lattice, which includes phonons at all k points within the first Brillouin zone in principle. The partition function, and thus thermodynamic properties, tend to converge as the sampling of phonons at different k points improves.

    As an example, consider what happens for the specific heat and vibrational entropy of MgO in the picture below, where lines of increasing thickness correspond to calculations on larger supercells (i.e. to richer k sampling):

    HA_thermodynamics.png

    As you see, thermodynamic values change and eventually converge!

    So, depending on the size of the original cell, phonon dispersion can have a very large effect on computed thermodynamic properties. This is particularly evident for MgO where the original cell is very small.

    So, going back to one of your questions: "how large should the supercell be?" You should use the smallest cell that allows you to get converged results. How to determine it? By progressively increasing the size and by checking your results.

    The rule of thumb you suggest of using supercells for different systems containing a similar number of atoms is a good guideline for consistent expansions across different systems.

    Hope this helps,


  • Plotting band-decomposed charge density (CBM/VBM) for 2D Janus monolayer
    aerbaundefined aerba

    Hi,

    To analyze conduction bands I can recommend a couple of options:

    • Decomposition of selected bands into leading AO contributions. This option allows to characterize the nature of a band at a given k point in terms of the main AOs contributing to it. From the PROPERTIES module, refer to the ANBD keyword, see page 307 of the User's Manual.

    • 3D plotting of crystalline orbitals. From the PROPERTIES module, refer to the ORBITALS keyword, see page 347 of the User's Manual.

    Hope this helps,


  • Raman tensor output
    aerbaundefined aerba

    Hi,

    Indeed, columns of the TENS_RAMAN.DAT file correspond to xx, ..., zz components of the polarizability tensor \( \alpha \). However, rows correspond to the 3N atomic Cartesian displacements. Indeed, the Raman tensor reported in this file corresponds to the following quantity:
    $$
    R_{ac,ij} = \frac{\partial^3 E}{\partial u_{a,c} \partial \varepsilon_i \partial \varepsilon_j} = \frac{\partial \alpha_{ij}}{\partial u_{a,c} }
    $$
    where \( \varepsilon_i \) is a Cartesian component of the electric field, and \( u_{a,c} \) is an atomic displacement of atom \( a \) along the \( c\)-th Cartesian direction. The values are reported in atomic units.

    Hope this helps,


  • Options to print KS potential
    aerbaundefined aerba

    Hi,

    With CRYSTAL (from the PROPERTIES module actually) one can output the Hartree+EN potential in the all-electron case in 2D or 3D grids with POTM and POT3 keywords, respectively. In the latter case, the output is in .cube format. But I am afraid that currently there is no keyword to plot the XC part of the potential on a grid.


  • Plotting band-decomposed charge density (CBM/VBM) for 2D Janus monolayer
    aerbaundefined aerba

    Hi,

    You can do this using the PROPERTIES module. The PBAN option [see CRYSTAL23 User's Manual at page 348] allows you to build a density matrix from a user-defined subset of electronic bands. This partial density matrix is used for subsequent calculations. The ECH3 option can then be used to evaluate the associated electron density on a user-defined 3D grid of points, to be stored in .cube format, which can then be plotted in 3D isosurfaces with standard visualizers, such as VESTA.

    A template .d3 PROPERTIES input file for this would look something like:

    NOSYMADA
    NEWK
    24 24
    1 0
    PBAN
    1
    14
    ECH3
    80
    RANGE
    -10 10
    END
    

    where in PBAN as an example I have selected just 1 band, number 14 in the list.

    Hope this helps,


  • Advanced School on Quantum Modelling of Materials with CRYSTAL - Volta Redonda
    aerbaundefined aerba

    It was a great week! Let me share a group picture from the event:

    QMMC2026_Volta_Redonda.jpeg


  • Question about units of "total atomic spins"
    aerbaundefined aerba

    Hi,

    If I am not mistaken, "total atomic spins" are indeed reported in units of the Bohr magneton and are obtained from a Mulliken partitioning of the spin density (i.e. difference between the electron density of spin-up and spin-down electrons).

    Cheers,


  • malloc during BOLTZTRA (Pproperties)
    aerbaundefined aerba

    Hi,

    We have run some tests and we have identified the origin of the problem. The calculation fails in the evaluation of the Fermi energy in the NEWK option (so before getting to the BOLTZTRA step) because of large memory requirements due to a very large number of k-points being asked and because of the replicated-memory parallel implementation of that bit of code.

    In that part of the code, with Pproperties (parallel version), data are replicated in memory by each process.

    We have run tests on this system in parallel with different number of processes (on a computing node with 128 CPU cores) and for different shrinking factor parameters of the NEWK keyword. Results are summarized in the table below:

    analysis.png

    "ok" marks combinations for which the calculation run without errors. The trend is clear and can be rationalized as follows:

    • reducing the number of k points reduces memory requirments
    • reducing the number of MPI processes effectively increases the available memory/process

    Hope this clarifies things and helps find a way forward,


  • How to obtain the irreducible representations of the electronic bands ?
    aerbaundefined aerba

    Hi,

    I used space group 186 for ZnO that corresponds to the one you mention. In the character table printed by CRYSTAL only those irreps that are actually used to build symmetry-adapted Bloch functions are shown. I have updated my original post above to show the irrep labels in the character tables, which match those found in the printing of the eigenvalues.

    Hope this clarifies things,


  • How to obtain the irreducible representations of the electronic bands ?
    aerbaundefined aerba

    Hi,

    The following keyword combination to be inserted in the third block of the .d12 CRYSTAL input file works for me on a 3D crystal (I have tried on ZnO as a test):

    SETPRINT
    2
    47 10
    66 10
    KSYMMPRT
    

    The keyword KSYMMPRT activates a printing level with character tables for the various k little groups. With SETPRINT you set other printing options: option 47 refers to KSYMMPRT while option 66 activates the printing of the eigenvalues. With 10 in both cases I am asking for detailed printing for the first 10 k points in the list. Just increase this parameter from 10 to X for detailed information on the first X k points.

    At the end of the SCF, in the output file you will find detailed symmetry information. For ZnO, for instance:

    +++ SYMMETRY ADAPTION OF THE BLOCH FUNCTIONS +++
    
     SYMMETRY INFORMATION:
     K-LITTLE GROUP: CLASS TABLE, CHARACTER TABLE.
     IRREP-(DIMENSION, NO. IRREDUCIBLE SETS)
     (P, D, RP, RD, STAND FOR PAIRING, DOUBLING, REAL PAIRING AND REAL DOUBLING
     OF THE IRREPS (SEE MANUAL))
    
     CLASS  | GROUP OPERATORS (SEE SYMMOPS KEYWORD)
     --------------------------------------------------------------------
     C2     |   2;
     C3     |   3;   4;
     C6     |   5;   6;
     SGV    |   7;   8;   9;
     SGV'   |  10;  12;  11;
    
     IRREP/CLA      E     C2     C3     C6    SGV   SGV'
     ---------------------------------------------------
      MULTIP |      1      1      2      2      3      3
     ---------------------------------------------------
        A    |   1.00   1.00   1.00   1.00   1.00   1.00
        B    |   1.00  -1.00   1.00  -1.00   1.00  -1.00
        E1   |   2.00  -2.00  -1.00   1.00   0.00   0.00
        E2   |   2.00   2.00  -1.00  -1.00   0.00   0.00
    
     A  -(1,  21); B  -(1,  21); E1 -(2,  15); E2 -(2,  15);
    
    
     CLASS  | GROUP OPERATORS (SEE SYMMOPS KEYWORD)
     --------------------------------------------------------------------
     C2     |   8;
    
     IRREP/CLA      E     C2
     -----------------------
      MULTIP |      1      1
     -----------------------
        A    |   1.00   1.00
        B    |   1.00  -1.00
    
     A  -(1,  72); B  -(1,  30);
    
    
    [...]
    
    

    And information about the eigenvalues at each k point with the associated irrep symmetry label:

     FINAL EIGENVALUES (A.U.)
      (LABELS REFER TO SYMMETRY CLASSIFICATION)
    
       1 (  0  0  0)
     -3.4563E+02(B  ) -3.4563E+02(A  ) -4.1575E+01(B  ) -4.1575E+01(A  ) -3.6643E+01(A  )
     -3.6643E+01(B  ) -3.6643E+01(E1 ) -3.6643E+01(E1 ) -3.6642E+01(E2 ) -3.6642E+01(E2 )
     -1.8704E+01(A  ) -1.8704E+01(B  ) -4.5481E+00(A  ) -4.5481E+00(B  ) -2.9815E+00(B  )
     -2.9814E+00(A  ) -2.9812E+00(E2 ) -2.9812E+00(E2 ) -2.9812E+00(E1 ) -2.9812E+00(E1 )
     -8.2115E-01(A  ) -7.9663E-01(B  ) -3.8298E-01(E1 ) -3.8298E-01(E1 ) -3.8023E-01(A  )
     -3.7674E-01(E2 ) -3.7674E-01(E2 ) -3.6589E-01(B  ) -3.4625E-01(E1 ) -3.4625E-01(E1 )
     -3.3970E-01(E2 ) -3.3970E-01(E2 ) -3.2752E-01(B  ) -2.0184E-01(E2 ) -2.0184E-01(E2 )
     -1.7704E-01(A  ) -1.7506E-01(E1 ) -1.7506E-01(E1 ) -1.3296E-01(A  )  2.8917E-02(B  )
      1.3748E-01(B  )  3.0394E-01(E1 )  3.0394E-01(E1 )  3.4544E-01(E2 )  3.4544E-01(E2 )
      3.5105E-01(A  )  7.3399E-01(A  )  7.9567E-01(B  )  7.9827E-01(E2 )  7.9827E-01(E2 )
      8.0430E-01(E1 )  8.0430E-01(E1 )  9.2452E-01(E1 )  9.2452E-01(E1 )  9.4481E-01(A  )
      1.0085E+00(E2 )  1.0085E+00(E2 )  1.0835E+00(B  )  1.1254E+00(A  )  1.4388E+00(E2 )
      1.4388E+00(E2 )  1.5197E+00(E1 )  1.5197E+00(E1 )  1.5953E+00(B  )  1.6980E+00(A  )
      1.9424E+00(B  )  2.1214E+00(B  )  2.4581E+00(E2 )  2.4581E+00(E2 )  2.6850E+00(A  )
      2.6884E+00(E1 )  2.6884E+00(E1 )  2.6992E+00(B  )  2.7357E+00(E1 )  2.7357E+00(E1 )
      2.7753E+00(E2 )  2.7753E+00(E2 )  3.0348E+00(E2 )  3.0348E+00(E2 )  3.1219E+00(E1 )
      3.1219E+00(E1 )  3.1318E+00(A  )  4.2450E+00(E2 )  4.2450E+00(E2 )  4.2830E+00(A  )
      4.4957E+00(E1 )  4.4957E+00(E1 )  4.5498E+00(E1 )  4.5498E+00(E1 )  4.7190E+00(B  )
      4.7730E+00(E2 )  4.7730E+00(E2 )  4.7949E+00(A  )  4.8374E+00(E2 )  4.8374E+00(E2 )
      4.8743E+00(B  )  5.0462E+00(E1 )  5.0462E+00(E1 )  5.4477E+00(A  )  5.8198E+00(B  )
      3.9355E+01(B  )  3.9424E+01(A  )
    
       2 (  1  0  0)
     -3.4563E+02(A  ) -3.4563E+02(A  ) -4.1575E+01(A  ) -4.1575E+01(A  ) -3.6643E+01(A  )
     -3.6643E+01(A  ) -3.6643E+01(B  ) -3.6642E+01(A  ) -3.6642E+01(B  ) -3.6642E+01(A  )
     -1.8704E+01(A  ) -1.8704E+01(A  ) -4.5481E+00(A  ) -4.5481E+00(A  ) -2.9815E+00(A  )
     -2.9814E+00(A  ) -2.9812E+00(A  ) -2.9812E+00(B  ) -2.9812E+00(A  ) -2.9812E+00(B  )
     -8.1833E-01(A  ) -7.9542E-01(A  ) -3.8502E-01(A  ) -3.8129E-01(B  ) -3.7873E-01(A  )
     -3.7647E-01(A  ) -3.7434E-01(B  ) -3.6339E-01(A  ) -3.4716E-01(A  ) -3.4630E-01(B  )
     -3.3948E-01(B  ) -3.3567E-01(A  ) -3.2769E-01(A  ) -2.2123E-01(A  ) -2.0904E-01(B  )
     -2.0238E-01(A  ) -1.8061E-01(A  ) -1.7889E-01(B  ) -9.9076E-02(A  )  5.0288E-02(A  )
      1.3868E-01(A  )  2.6653E-01(A  )  3.0802E-01(B  )  3.1234E-01(A  )  3.5046E-01(B  )
      3.5371E-01(A  )  7.3602E-01(A  )  7.7587E-01(B  )  7.9991E-01(A  )  8.0492E-01(A  )
      8.3924E-01(B  )  8.5620E-01(A  )  9.3227E-01(A  )  9.3403E-01(B  )  9.5348E-01(A  )
      9.9448E-01(A  )  1.0316E+00(B  )  1.1292E+00(A  )  1.1707E+00(A  )  1.3826E+00(A  )
      1.4008E+00(B  )  1.5217E+00(B  )  1.5347E+00(A  )  1.6362E+00(A  )  1.7168E+00(A  )
      1.9795E+00(A  )  2.1273E+00(A  )  2.4524E+00(B  )  2.4562E+00(A  )  2.6427E+00(A  )
      2.6752E+00(B  )  2.6832E+00(A  )  2.6862E+00(A  )  2.7057E+00(B  )  2.7063E+00(A  )
      2.7671E+00(B  )  2.7722E+00(A  )  2.9842E+00(A  )  3.0206E+00(B  )  3.0849E+00(A  )
      3.1311E+00(B  )  3.1382E+00(A  )  4.2311E+00(A  )  4.2454E+00(B  )  4.2544E+00(A  )
      4.4759E+00(B  )  4.4850E+00(A  )  4.5531E+00(B  )  4.5945E+00(A  )  4.6563E+00(A  )
      4.7965E+00(A  )  4.8056E+00(B  )  4.8150E+00(B  )  4.8262E+00(A  )  4.9013E+00(A  )
      4.9403E+00(A  )  5.0500E+00(B  )  5.0510E+00(A  )  5.5124E+00(A  )  5.8464E+00(A  )
      3.9366E+01(A  )  3.9416E+01(A  )
    
    [...]
    
    

    Hope this helps,


  • Frequency calculation fails with "Too much data, unit 2"
    aerbaundefined aerba

    Hi,

    Thank you for reporting this.

    While we run some tests on our cluster, may I suggest switching from a coupled-perturbed Kohn-Sham (CPKS) approach to a Berry phase (BP) approach for the IR intensities? The latter is way less computationally demanding than the former and in this case could be beneficial to the success of the calculation.

    You are currently using CPKS as per your input file:

    FREQCALC
    NOECKART
    INTENS
    INTCPHF
    FMIXING
    60
    ANDERSON
    MAXCYCLE
    300
    ENDCPHF
    ENDFREQ
    

    To switch to BP, you can use instead:

    FREQCALC
    NOECKART
    INTENS
    ENDFREQ
    

    Let me know how this goes,


  • Question on HSE06 + SOC Support and MPI Abort in CRYSTAL23
    aerbaundefined aerba

    Let me just add that we do have a development version of the code for HSE+SOC, which we plan to include in the next release.


  • malloc during BOLTZTRA (Pproperties)
    aerbaundefined aerba

    Thanks!
    Could you share also the .d12 CRYSTAL input that generated the .f9 file?


  • How create band structure in P1 symmetry
    aerbaundefined aerba

    Hi,

    Let me just add that of course in P1 there are no special high-symmetry points to guide you in the definition of the path, so you need to be a little creative. For instance, you can start from Gamma (0 0 0) and go to the edge of the FBZ along the b1 reciprocal lattice (1/2 0 0), to then go to (1/2 1/2 0), then to (0 1/2 0) then back to Gamma (0 0 0) and then to the edge along the b3 reciprocal lattice (0 0 1/2). Or something else! 🙂


  • extract asymmetric fragment
    aerbaundefined aerba

    Hi,

    Jefferson Maul has managed to generate this .cif file with 4 symmetry operators. As you suggest, there are probably more but this is what he could extract so far.

    Beautiful system by the way: looks like a Christmas tree bauble! 🎄

    Screenshot 2025-11-04 alle 08.17.24.png


  • SCANMODE io error Read_int_1d
    aerbaundefined aerba

    Hi,

    job314 said in SCANMODE io error Read_int_1d:

    So it turns out having fort.13 and fort.20 is not optional for restart.

    Yes, the lack of these two files was the origin of the I/O error.

    job314 said in SCANMODE io error Read_int_1d:

    PS. I would also like to ask developers to allow uploading compressed files to this forum

    Now also .zip, .tar, .tgz, .tar.gz files can be uploaded.

    Cheers,


  • OPTGEOM for RUNCONFS
    aerbaundefined aerba

    Hi,

    Before running the actual single-point or geometry optimization calculations on the configurations with RUNCONFS, a list of configurations needs to be generated by use of the CONFRAND option. The list of generated configurations is saved into a file CONFIGURATIONS.DAT that is then read by the next RUNCONFS calculation.

    Let us go through this step-by-step. I take your system as an example.

    • First, you would setup an input for the CONFRAND calculation. For instance:
    Title
    CRYSTAL
    0 0 0
    194
    3.065 17.656
    4
    22 0 0 0.5
    14 0 0 0.75
    22 0.666666 0.333333 0.364919
    6 0.333333 0.666666 0.427507
    SCELCONF
    1 0 0
    0 1 0
    0 0 1
    CONFRAND
    1
    5
    2
    END
    

    Here I am selecting just one crystallographic site for substitution, specified by atom number 5, which is a Ti atom. Given the symmetry of this system, that atom has a multiplicity of 4 (i.e. there are other 3 Ti atoms symmetry-related to it). This can be inspected from here (in bold the selected atoms, in italic its symmetry-equivalents):

     N. ATOM EQUIV AT. N.          X                  Y                  Z
    
       1   1   1   22 TI    0.00000000000E+00  0.00000000000E+00 -5.00000000000E-01
       2   1   2   22 TI    0.00000000000E+00  0.00000000000E+00  0.00000000000E+00
    
       3   2   1   14 SI    0.00000000000E+00  0.00000000000E+00 -2.50000000000E-01
       4   2   2   14 SI    0.00000000000E+00  0.00000000000E+00  2.50000000000E-01
    
     **5   3   1   22 TI   -3.33334000000E-01  3.33333000000E-01  3.64919000000E-01**
      *6   3   2   22 TI    3.33334000000E-01 -3.33333000000E-01 -1.35081000000E-01
       7   3   3   22 TI    3.33333000000E-01 -3.33333000000E-01 -3.64919000000E-01
       8   3   4   22 TI   -3.33333000000E-01  3.33334000000E-01  1.35081000000E-01*
    
       9   4   1    6 C     3.33333000000E-01 -3.33334000000E-01  4.27507000000E-01
      10   4   2    6 C    -3.33333000000E-01  3.33334000000E-01 -7.24930000000E-02
      11   4   3    6 C    -3.33333000000E-01  3.33334000000E-01 -4.27507000000E-01
      12   4   4    6 C     3.33334000000E-01 -3.33333000000E-01  7.24930000000E-02
    

    The last input parameter of CONFRAND, which I set to 2, determines how many of these 4 Ti atoms will be substituted.

    • By running it you get the following output:
    *******************************************************************************
      SUBSTITUTIONS AT SITES (LABELS) : 
        5    7    6    8
      **********************************            COMPOSITION :          2 /   4
      **********************************          NUMBER OF SIC :                3
     *******************************************************************************
     --->              1      SIC  FOUND AT TRY              1   -   CONFIGURATION 
       0   0   1   1
       MULTIPLICITY      2   -   RANK           1   -   CANONICAL RANK           1
     --->              2      SIC  FOUND AT TRY              2   -   CONFIGURATION 
       1   0   1   0
       MULTIPLICITY      2   -   RANK           5   -   CANONICAL RANK           2
     --->              3      SIC  FOUND AT TRY              4   -   CONFIGURATION 
       1   0   0   1
       MULTIPLICITY      2   -   RANK           3   -   CANONICAL RANK           4
     *******************************************************************************
                       3      SIC  FOUND  AFTER              4       TRIES
     *******************************************************************************
    

    that is 3 symmetry-independent configurations (SICs) are found and stored in the external file CONFIGURATIONS.DAT.

    • At this point you are ready to run a RUNCONFS calculation (note that the CONFIGURATIONS.DAT file generated at the previous step needs to be placed inside the scratch folder of the new job). For instance with:
    Title
    CRYSTAL
    0 0 0
    194
    3.065 17.656
    4
    22 0 0 0.5
    14 0 0 0.75
    22 0.666666 0.333333 0.364919
    6 0.333333 0.666666 0.427507
    SCELCONF
    1 0 0
    0 1 0
    0 0 1
    RUNCONFS
    ATOMSUBS
    22 273
    END
    

    In this case I ask to substitute Ti with Ta.

    Hope this helps,


  • Query regarding COHP Calculation
    aerbaundefined aerba

    Hi,

    Can you check the COHP.dat file you uploaded? I tried to open it with CRYSPLOT but everything seems to be zero...?


  • SCF fails spinlock with POB-DZVP-REV2
    aerbaundefined aerba

    Hi,

    jquertin said in SCF fails spinlock with POB-DZVP-REV2:

    In the case of SPINLOCK, the manual clearly explain that the NSPIN value is the difference in number of alpha and beta electrons. For SPINLOC2, the text only refers to the spin while the table gives the same definition for SPIN as for NSPIN (in SPINLOCK).

    The argument SPIN of SPINLOC2 still represents a number of electrons, as in SPINLOCK.

    jquertin said in SCF fails spinlock with POB-DZVP-REV2:

    Furthermore, in the calculation, if using SPINLOC2 with 6 or 6.0 as the spin (as defined in the table), crystal defaults to SPINLOCK.

    That's right. SPINLOC2 requires a non integer argument. For integer arguments it reduces to SPINLOCK.

    jquertin said in SCF fails spinlock with POB-DZVP-REV2:

    In short, if I define SPINLOC2 SPIN as 3 (1/2 * 6) or 3.0, crystal defaults to SPINLOCK with NSPIN 3 which is actually half of what I want.

    In both SPINLOCK and SPINLOC2, the argument is meant as a number of electrons. Thus, if you have 6 extra up electrons with respect to down electrons, the input value should be 6, not 3. For integer values, SPINLOC2 is of no use.

    Hope this clarifies things a little,


  • ECHG in XY, XZ and XY-Z plots
    aerbaundefined aerba

    Hi,

    To specify your plane of interest more freely, I recommend using the COORDINA option instead of the ATOMS option. With COORDINA you can input the Cartesian coordinates of 3 points A, B and C defining the plane. For instance, if you want to select the XY plane you can simply use:

    ECHG
    0
    50
    COORDINA
    1.0 0.0 0.0
    0.0 0.0 0.0
    0.0 1.0 0.0
    RECTANGU
    MARGINS
    3 3 3 3
    END
    END
    

    Hope this helps,

  • Login

  • Don't have an account? Register

  • Login or register to search.
  • First post
    Last post
0
  • Home
  • Recent