Crystal17

Software computing electronic wave function and properties of periodic systems

Introduction

CRYSTAL is a program designed for use in modeling crystalline solids. The program will compute the electronic structure of periodic structures using one of a number of different approximations including Hartree-Fock, Density Functional Theory or one of a number of hybrid approximations such as global, range-separated or double-hybrids. The program is also quite versatile and capable of modeling the physical and chemical properties not just of crystalline solids but also of nanotubes, surfaces, molecules and polymers. See the Main Website for additional details. 

License

Crystal is a licensed software. The license file is installed on all nodes of the partition mendoza_q. Currently only members of Professor Jose Mendoza Cortes' research group have access to this software.

Currently, there are two major releases of Crystal available at the RCC, Crystal14, and Crystal17.

Usage of Crystal14 at the RCC

The installed package contains 5 utilities: the serial version crystal, properties, parallel version Pcrystal, Pproperties, and the massively parallel version MPPcrystal.
There are two version currently available, 1_0_3 and 1_0_4. To use these utilities, first include the bin directory to you PATH variable:

If you use version 1_0_3

$ export PATH=/gpfs/research/mendozagroup/crystal/v1_0_3/crystal14-1.0.3/bin/Linux-ifort_emt64/v1.0.3:$PATH

If you use version 1_0_4

$ export PATH=/gpfs/research/mendozagroup/crystal/v1_0_4/bin/Linux-ifort_XE_emt64/v1.0.4:$PATH

Next check if they are available by a command like the following:

$ which Pcrystal

If not found, then something is wrong. If it is working, then it is better to include this line to your .bashrc file for future use.

To submit a crystal job, You need first provide an input data file. For Pcrystal and MPPcrystal, the input file has be to called INPUT. Since there will be many temporary data/filescreated when the programming is running, it is better to create a scratch directory, run the code in the scratch directory, and copy the useful output to user's home directory upon a successful run.

Note. To run the parallel version of Crystal14, you need to load the intel-openmpi module.

If you use version 1_0_3

 $ module load intel-openmpi

If you use version 1_0_4

$ module load intel/15
$ module load intel-openmpi

Here is a sample input data file test00.d12:

TEST00 - CO MOLECULE - NO BIPOLAR EXPANSION
MOLECULE
1
2
6   0.      0.      0.
8  0.8   0.5   0.4
END
6 4
0 0 3 2. 1.
72. 0.15
13 0.53
3.5 0.44
0 1 2 4. 1.
1.1 0.049 0.51
0.29 0.96 0.61
0 2 1 0. 1.
0.4 1.
0 3 1 0. 1.
0.6 1.
8 4
0 0 3 2. 1.
131. .15
24. .53
6.4 .44
0 1 2 6. 1.
1.9 0.049 0.51
0.49 0.96 0.61
0 2 1 0. 1.
0.7 1.
0 3 1 0. 1.
0.8 1.
99 0
END
NOBIPOLA
TOLINTEG
20 20 20 20 20
TOLDEE
7
FMIXING
10
NODIRECT
END

Here is an example SLURM submit script slurm.sub asking for 4 compute nodes and 64 cores in total:

#!/bin/bash
#SBATCH -J crys14
#SBATCH -o crys14-%J.o
#SBATCH -N 4
#SBATCH --ntasks-per-node=16
#SBATCH -p mendoza_q
#SBATCH -t 4:00:00
#SBATCH --mail-type=ALL

export JOB=test00
export DIR=$SLURM_SUBMIT_DIR
export scratch=/gpfs/research/mendozagroup/scratch/crystal/$USER/v1_0_4

echo "submit directory: "
echo $SLURM_SUBMIT_DIR

module purge  
module load intel/15
module load intel-openmpi

# remove the following line if already in your .bashrc file
#export PATH=/gpfs/research/mendozagroup/crystal/v1_0_3/crystal14-1.0.3/bin/Linux-ifort_emt64/v1.0.3:$PATH
export PATH=/gpfs/research/mendozagroup/crystal/v1_0_4/bin/Linux-ifort_XE_emt64/v1.0.4:$PATH

mkdir  -p $scratch/$JOB
# the following line need be modified according to where your input is located
cp $DIR/../test_cases/inputs/${JOB}.d12  $scratch/$JOB/INPUT
cd $scratch/$JOB
touch hostfile
rm    hostfile
for i in `scontrol show hostnames $SLURM_JOB_NODELIST`
do
   echo "$i slots=16" >> hostfile
done

# in the following, -np parameters should be equal to those specified above.
mpirun -np 64 -machinefile hostfile Pcrystal 2>&1 > $DIR/${JOB}.out
cp fort.9  ${DIR}/${JOB}.f9

# uncomment the next 5 lines if you want to remove the scratch directory
#if [ $? -eq 0 ]
#then
#    cd ${DIR}
#    rm -rf $scratch/${JOB} 
#fi 

Upon a successful run, you will see things similar to the following in the SLURM output file crys14-$JOBID.o:

          64 PROCESSORS WORKING


 *******************************************************************************
 *                                                                             *
 *                               CRYSTAL14                                     *
 *                      public : 1.0.4 - Feb 23rd, 2016                        *
 *                       HTTP://WWW.CRYSTAL.UNITO.IT                           *
 *                                                                             *
 *                              MAIN AUTHORS                                   *
 ....
 .... skipped many things here
 .... near the end
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTT TOTENY      TELAPSE       10.39 TCPU        5.66
CYC   9 ETOT(AU) -1.107649354541E+02 DETOT -4.46E-09 tst  5.98E-10 PX  2.50E-04

 == SCF ENDED - CONVERGENCE ON ENERGY      E(AU) -1.1076493545406E+02 CYCLES   9

 TOTAL ENERGY(HF)(AU)(   9) -1.1076493545406E+02 DE-4.5E-09 tst 6.0E-10 PX 2.5E-04
 EIGENVECTORS IN FORTRAN UNIT 10
 TTTTTTTTTTTTTTTTTTTTTTTTTTTTTT END         TELAPSE       11.51 TCPU        5.69
 EEEEEEEEEE TERMINATION  DATE 12 05 2016 TIME 16:36:53.0
NODE    0 CPU TIME =         5.693
    TOTAL CPU TIME =       336.350

Example Input Data

Crystal developers have provided some test input data, to copy them to your own directory, use things like

 cd $HOME
 mkdir -p  crystal14
 cp -r /gpfs/research/mendozagroup/crystal/v1_0_4/test_cases  ~/crystal14/

Usage of Crystal17 at the RCC

The usage of Crystal17 is essentially the same as Crystal14, you only need to set environment as the following

export PATH=/gpfs/research/mendozagroup/crystal/2017/v1_0_1_amended/ifort14/bin/Linux-ifort14_XE_emt64/v1.0.1:$PATH

module purge
module load intel/15
modula load intel-openmpi

An example of Crystal17

The submit script BG_test.sh

#!/bin/bash
#SBATCH -J BG_Test
#SBATCH -o BG_Test-%J.o
#SBATCH -N 1
#SBATCH -n 4
#SBATCH -p backfill
#SBATCH -t 04:00:00

cat $SLURM_JOB_NODELIST

export JOB=BG_Test
export DIR=$SLURM_SUBMIT_DIR
export PATH=/gpfs/research/mendozagroup/crystal/2017/v1_0_1_amended/ifort14/bin/Linux-ifort14_XE_emt64/v1.0.1:$PATH
export scratch=/gpfs/research/mendozagroup/scratch/crystal/${USER}/crys17

echo "submit directory: "
echo $SLURM_SUBMIT_DIR

module purge
module load intel/15
module load intel-openmpi

rm -fr  $scratch/$JOB
mkdir  -p $scratch/$JOB
# the following line need be modified according to where your input is located
cp $DIR/${JOB}.d12 $scratch/$JOB/INPUT
#cp $DIR/${JOB}.f9  $scratch/$JOB/fort.9
cd $scratch/$JOB

which Pcrystal

srun Pcrystal >& $DIR/${JOB}.out
cp fort.9  ${DIR}/${JOB}.f9

The input data file  BG_test.d12

Crystal17 Test Cakculations BLG-1V 
CRYSTAL
0 0 0
191
4.99095 3.45003
3
 6 0.16872 0.33745 0.00000
 6 0.33333 0.66667 0.00000
23 0.00000 0.00000 0.50000
END
23 14
0 0 8 2.0 1.0
    232340.65058 0.00023072410092
    34828.841170 0.00178881789620
    7926.5448691 0.00929924901310
    2243.7733046 0.03776146334700
    730.59322944 0.12255909662000
    262.32219631 0.28963508811000
    101.70403805 0.41004702955000
    40.064784617 0.21113610858000
0 0 4 2.0 1.0
    255.24014968 -0.02445811633800
    78.804646961 -0.11527205366000
    12.340598946 0.55174749453000
    5.1742019219 0.54504528489000
0 0 2 2.0 1.0
    7.6513894469 -0.22967638286000
    1.2639759898 0.71683769077000
0 0 1 2.0 1.0
    2.0363959000 1.00000000000000
0 0 1 0.0 1.0
    0.5857304500 1.00000000000000
0 0 1 0.0 1.0
    0.2750729900 1.00000000000000
0 2 6 6.0 1.0
    1184.2369151 0.00244498267290
    280.23075192 0.01964345446600
    89.643627137 0.09079694919000
    33.242411253 0.25650768222000
    13.144514452 0.40815393750000
    5.2948534140 0.23860378268000
0 2 3 6.0 1.0
    20.175586851 -0.02824148902300
    2.7605865197 0.55574635619000
    1.1008900902 0.99319919270000
0 2 1 0.0 1.0
    0.7153797600 1.00000000000000
0 2 1 0.0 1.0
    0.2384599200 1.00000000000000
0 3 4 3.0 1.0
    43.861134864 0.01148717423800
    12.516021891 0.06824715397700
    4.3313854957 0.21837784195000
    1.6138855773 0.39245212296000
0 3 1 0.0 1.0
    0.5790593700 1.00000000000000
0 3 1 0.0 1.0
    0.2143837300 1.00000000000000
0 4 1 0.0 1.0
    0.8310000000 1.00000000000000
28 14
0 0 8 2.0 1.0
    351535.72935 0.00022529386884
    52695.809283 0.00174686162230
    11992.468293 0.00908499921360
    3394.5776689 0.03694074844700
    1105.3594585 0.12032819950000
    397.14677769 0.28596715057000
    154.27542974 0.40983020196000
    61.018723780 0.21620642851000
0 0 4 2.0 1.0
    384.45559739 -0.02465127926800
    119.04879199 -0.11658505277000
    19.137012223 0.54864126676000
    8.1526718562 0.52640051122000
0 0 2 2.0 1.0
    12.579408642 -0.22797884293000
    2.0870866081 0.70703738215000
0 0 1 2.0 1.0
    2.9480296700 1.00000000000000
0 0 1 0.0 1.0
    0.87308901 1.00000000000000
0 0 1 0.0 1.0
    0.16787354 1.00000000000000
0 2 6 6.0 1.0
    1883.0907486 0.00237482584430
    445.95155320 0.01928945717200
    143.08430815 0.09071821150700
    53.372920722 0.26181414117000
    21.321919357 0.42309149832000
    8.6643561994 0.24641686015000
0 2 3 6.0 1.0
    34.144255211 -0.02967712916300
    4.7122455921 0.55616824096000
    1.8709231845 0.96357766460000
0 2 1 0.0 1
    1.0453650800 1.00000000000000
0 2 1 0.0 1.0
    0.4276468400 1.00000000000000
0 3 4 8.0 1
    74.591603465 0.01207745467200
    21.590632752 0.07463726215400
    7.6246142580 0.23236775502000
    2.8632206762 0.39042651680000
0 3 1 0.0 1
    1.0075942000 1.00000000000000
0 3 1 0.0 1
    0.3167209900 1.00000000000000
0 4 1 0.0 1.0
    2.1740000000 1.00000000000000
24 14
0 0 8 2.0 1.0
    254477.80704 0.00023386945693
    38131.797054 0.00181426018000
    8675.2930607 0.00943639257210
    2455.0099848 0.03834363936700
    799.16217787 0.12459194837000
    286.90021489 0.29489696029000
    111.25413232 0.41846149607000
    43.864152636 0.21633763420000
0 0 4 2.0 1.0
    279.32669173 -0.02345090811100
    86.274732376 -0.11080370027000
    13.555756113 0.53028965842000
    5.6978112751 0.51603516947000
0 0 2 2.0 1.0
    8.5636582615 -0.38109545675000
    1.3988296768 1.19915914360000
0 0 1 2.0 1.0
    1.5142137900 1.00000000000000
0 0 1 0.0 1.0
    0.5047379300 1.00000000000000
0 0 1 0.0 1.0
    0.1505787700 1.00000000000000
0 2 6 6.0 1.0
    1306.4398864 0.00242773261850
    309.25311441 0.01954404101700
    98.996273963 0.09065179455300
    36.756916451 0.25699279154000
    14.566657077 0.40935504891000
    5.8739937432 0.23729388849000
0 2 3 6.0 1.0
    22.890999695 -0.02816602661300
    3.0855001822 0.56034120148000
    1.2132329118 0.98119019650000
0 2 1 0.0 1.0
    0.4593168100 1.00000000000000
0 2 1 0.0 1.0
    0.2296584050 1.0000000000000
0 3 4 4.0 1.0
    43.720074476 0.01362296402600
    12.391242652 0.07893518013300
    4.2639442006 0.23833840000000
    1.5525221790 0.39526851122000
0 3 1 0.0 1.0
    1.1288617700 1.00000000000000
0 3 1 0.0 1.0
    0.5172623600 1.00000000000000
0 4 1 0.0 1.0
    1.1470000000 1.00000000000000
27 14
0 0 8 2.0 1.0
    325817.01553 0.00022568462484
    48839.636453 0.00174993975330
    11114.937307 0.00910031340970
    3146.1603642 0.03699625683700
    1024.4378465 0.12044269621000
    368.02508816 0.28598731649000
    142.91229205 0.40908312004000
    56.482649209 0.21500145739000
0 0 4 2.0 1.0
    356.40298318 -0.02476705967800
    110.31165215 -0.11702139134000
    17.659634834 0.55215522200000
    7.5059030479 0.53246877060000
0 0 2 2.0 1.0
    11.501807176 -0.22942470077000
    1.9081994606 0.71180933514000
0 0 1 2.0 1.0
    2.6083233500 1.00000000000000
0 0 1 0.0 1.0
    0.7955677300 1.00000000000000
0 0 1 0.0 1.0
    0.1356673700 1.00000000000000
0 2 6 6.0 1.0
    1731.1369144 0.00239057676850
    409.91750438 0.01938299996700
    131.45648578 0.09090544850900
    48.987439714 0.26146681577000
    19.537078992 0.42157264570000
    7.9287281634 0.24571813557000
0 2 3 6.0 1.0
    31.076017584 -0.02943806997300
    4.2835180697 0.55615568168000
    1.7022921563 0.96772195064000
0 2 1 0.0 1.0
    1.1628100700 1.00000000000000
0 2 1 0.0 1.0
    0.7018644100 1.00000000000000
0 3 4 7.0 1.0
    68.140745239 0.01198384536000
    19.685241019 0.07368854047500
    6.9322128825 0.23085496779000
    2.6025125694 0.39281059225000
0 3 1 0.0 1.0
    0.9207081800 1.00000000000000
0 3 1 0.0 1.0
    0.2922317400 1.00000000000000
0 4 1 0.0 1.0
    1.9030000000 1.00000000000000
26 14
0 0 8 2.0 1.0
    300784.84637 0.00022806273096
    45088.970557 0.00176817887610
    10262.516317 0.00919270834900
    2905.2897293 0.03735549580700
    946.11487137 0.12151108426000
    339.87832894 0.28818881468000
    131.94425588 0.41126612677000
    52.111494077 0.21518583573000
0 0 4 2.0 1.0
    329.48839267 -0.02474521647700
    101.92332739 -0.11683089050000
    16.240462745 0.55293621136000
    6.8840675801 0.53601640182000
0 0 2 2.0 1.0
    10.470693782 -0.22912708577000
    1.7360039648 0.71159319984000
0 0 1 2.0 1.0
    1.7565166800 1.00000000000000
0 0 1 0.0 1.0
    0.77548354 1.00000000000000
0 0 1 0.0 1.0
    0.1058918100 1.00000000000000
0 2 6 6.0 1.0
    1585.3959970 0.00237939601790
    375.38006499 0.01925315475500
    120.31816501 0.09002183653600
    44.788749031 0.25798172356000
    17.829278584 0.41492649744000
    7.2247153786 0.24207474784000
0 2 3 6.0 1.0
    28.143219756 -0.02904175515200
    3.8743241412 0.55312260343000
    1.5410752281 0.96771136842000
0 2 1 0.0 1.0
    0.9336590800 1.00000000000000
0 2 1 0.0 1.0
    0.1999999900 1.00000000000000
0 3 4 6.0 1.0
    61.996675034 0.01197197225500
    17.873732552 0.07321013541000
    6.2744782934 0.23103094314000
    2.3552337175 0.39910706494000
0 3 1 0.0 1.0
    0.8417158200 1.00000000000000
0 3 1 0.0 1.0
    0.2611100300 1.00000000000000
0 4 1 0.0 1.0
    1.5980000000 1.00000000000000
6 8
0 0 6 2.0 1.0
        13575.349682 0.00022245814352
        2035.2333680 0.00172327382520
        463.22562359 0.00892557153140
        131.20019598 0.03572798450200
        42.853015891 0.11076259931000
        15.584185766 0.24295627626000
0 0 2 2.0 1.0
        6.2067138508 0.41440263448000
        2.5764896527 0.23744968655000
0 0 1 0.0 1.0
        0.4941102000 1.00000000000000
0 0 1 0.0 1.0
        0.1644071000 1.00000000000000
0 2 4 2.0 1.0
        34.697232244 0.00533336578050
        7.9582622826 0.03586410909200
        2.3780826883 0.14215873329000
        0.8143320818 0.34270471845000
0 2 1 0.0 1.0
        0.5662417100 1.00000000000000
0 2 1 0.0 1.0
        0.2673545000 1.00000000000000
0 3 1 0.0 1.0
        0.8791584200 1.00000000000000
99 0
END
DFT
SPIN
B3LYP
LGRID
END
TOLINTEG
7 7 7 7 14
TOLDEE
7
SHRINK
0 30 
15 15 15
SCFDIR
BIPOSIZE
110000000
EXCHSIZE
110000000
ATOMSPIN
1
9 1
SPINLOCK
3
4
MAXCYCLE
800
FMIXING
80
ANDERSON
PPAN
GRIMME
1.05 20. 25.
2
23 10.80 1.562
6   1.75 1.452
END

Upon a successful run, you will have an output file BG_test.out similar to the following 

 PROCESS            0  OF            4  WORKING
 PROCESS            1  OF            4  WORKING
 PROCESS            3  OF            4  WORKING
 PROCESS            2  OF            4  WORKING


 *******************************************************************************
 *                                                                             *
 *                               CRYSTAL17                                     *
 *                      public : 1.0.1 - Jun 21st, 2017                        *
 *                       HTTP://WWW.CRYSTAL.UNITO.IT                           *
 *                                                                             *
 *                              MAIN AUTHORS                                   *
 *                                                                             *
 *  R. DOVESI(1,11), V.R. SAUNDERS(2), C. ROETTI(1,11), R. ORLANDO(1,11),      *
 *  C.M. ZICOVICH-WILSON(1,3), F. PASCALE(4), B. CIVALLERI(1,11),              *
 *  K. DOLL(5), N.M. HARRISON(2,6), I.J. BUSH(7), Ph. D'ARCO(8),               *
 *  M. LLUNELL(9), M. CAUSA'(10), Y. NOEL(8), L. MASCHIO(1,11), A. ERBA(1,11)  *
 *  M. RE'RAT(14), S. CASASSA(1,11)                                            *


..... skipped many lines

 OVERLAP POPULATION CONDENSED TO ATOMS FOR FIRST   6 NEIGHBORS

 ATOM A   1 C    ATOM B     CELL      R(AB)/AU R(AB)/ANG    OVPOP(AB)
                  7 C    (  0  1  0)     2.689     1.423    -0.022
                  5 C    (  0  0  0)     2.756     1.459     0.012
                  9 V    (  0  0  0)     4.269     2.259     0.003
                  3 C    (  1  1  0)     4.658     2.465     0.000
                  8 C    (  0  0  0)     4.716     2.496    -0.003
                  3 C    (  0  0  0)     4.774     2.526     0.004

 ATOM A   7 C    ATOM B     CELL      R(AB)/AU R(AB)/ANG    OVPOP(AB)
                  1 C    (  0 -1  0)     2.689     1.423    -0.022
                  2 C    (  0  0  0)     4.716     2.496    -0.003
                  8 C    (  1  0  0)     5.445     2.882     0.002
                  9 V    (  0  0  0)     6.346     3.358    -0.002
                  7 C    (  0  0 -1)     6.520     3.450     0.004
                  1 C    (  0 -1 -1)     7.052     3.732    -0.001

 ATOM A   9 V    ATOM B     CELL      R(AB)/AU R(AB)/ANG    OVPOP(AB)
                  1 C    (  0  0  0)     4.269     2.259     0.003
                  7 C    (  0  0  0)     6.346     3.358    -0.002
                  9 V    (  0  0 -1)     6.520     3.450    -0.003
                  1 C    ( -1 -1  0)     7.884     4.172    -0.000
                  9 V    ( -1 -1  0)     9.432     4.991     0.000
                  1 C    (  0  0 -1)    10.160     5.377    -0.000
 EIGENVECTORS IN FORTRAN UNIT 10

TTTTTTTTTTTTTTTTTTTTTTTTTTTTTT END         TELAPSE      771.47 TCPU      754.58
 EEEEEEEEEE TERMINATION  DATE 02 10 2017 TIME 13:47:10.6
NODE    0 CPU TIME =       754.578
NODE    1 CPU TIME =       756.583
NODE    2 CPU TIME =       756.196
NODE    3 CPU TIME =       756.438
    TOTAL CPU TIME =      3023.795

Crgra2006

The package CrGraph processes data written by CRYSTAL09 in fortranunit 25, to give graphic outputs in postscript language. The paper sizeis A4 (210x297 mm), in portrait mode. The maximum size of the plot is 180x270mm.

Three scripts are supplied:

maps06 to draw contour maps 
bands06 to plot band structures 
doss06 to plot total and projected density of states

To use these utilities at RCC, you need to define some environmental variables first,

If you use bash,

# if you use version 1_0_3
$ cp  /gpfs/research/mendozagroup/crystal/v1_0_3/crystal14-1.0.3/cry14.bashrc  ~/.cry14.bashrc
# if you use version 1_0_4
$ cp /gpfs/research/mendozagroup/crystal/v1_0_4/cry14.bashrc  ~/.cry14.bashrc
$ source  ~/.cry14.bashrc

If you use Cshell,

# if you use version 1_0_3
$ cp /gpfs/research/mendozagroup/crystal/v1_0_3/crystal14-1.0.3/cry14.cshrc  ~/.cry14.cshrc
# if you use version 1_0_4
$ cp /gpfs/research/mendozagroup/crystal/v1_0_4/cry14.cshrc  ~/.cry14.cshrc 
$ source ~/.cry14.cshrc

To test if your environment is properly set up,

$ which band06

You should see

/gpfs/research/mendozagroup/crystal/v1_0_3/crystal14-1.0.3/crgra2006/band06

or

/gpfs/research/mendozagroup/crystal/v1_0_4/crgra2006/band06