next up previous contents
Next: 3.20 what='elastic_constants_geo' Up: 3. Input variables Previous: 3.18 what='mur_lc_elastic_constants'   Contents

3.19 what='mur_lc_t'

With this option the code calculates the anharmonic properties within the quasi-harmonic approximation. The outputs of the code are the values of crystal parameters (celldm) as a function of temperature. This calculation is done by computing the phonon dispersions on all the geometries specified as in what='mur_lc' (or on a subset of these geometries) and minimizing the Helmholtz free energy. Separate plots of the phonon dispersions are obtained for all the calculated geometries. For each geometry the code produces also plots of the phonon density of states and of the harmonic thermodynamic quantities. From celldm as a function of temperature the code computes the thermal expansion tensor, the volume, and the volume thermal expansion as a function of temperature. The frequencies at all the calculated geometries are interpolated by quadratic or quartic polynomials of the crystal parameters and can be shown at crystal parameters given in input or at those that minimize the free energy at a temperature given in input. The interpolated frequencies are shown on the same path used for the phonon dispersions. In addition to the frequencies the code produces also several plots of the derivatives of the frequencies with respect to the crystal parameters multiplied by the crystal parameters.
When an equation of state is used to interpolate the Helmholtz free energy (lmurn=.TRUE.), in addition to the volume, the bulk modulus and the pressure derivative of the bulk modulus are plotted as a function of temperature. Moreover the isobaric heat capacity, the isoentropic bulk modulus, and the average Grüneisen parameter are calculated as a function of temperature. The mode Grüneisen parameters are calculated with cubic interpolations of the phonon frequencies. Using the variable with_eigen one can calculate these parameters as derivatives of the phonon frequencies (default) or as expectation values of the derivatives of the dynamical matrix on the central geometry eigenvectors (might require a lot of RAM). The mode Grüneisen parameters are used to calculate the volume thermal expansion and the result is compared with the volume thermal expansion derived from the numerical derivative of the equilibrium volume obtained from the minimization of the Helmholtz free energy. When the Helmholtz free energy is interpolated with a quadratic or cubic polynomial (lmurn=.FALSE.), by default, the code computes only the temperature dependence of the lattice parameters and of the volume, the volume thermal expansion, and the thermal expansion tensor. However if a file with the elastic constants is found in the elastic_constants directory and lb0_t=.FALSE. the bulk modulus is calculated and assumed independent from the temperature so that also the isobaric specific heat, the isoentropic bulk modulus, and the average Grüneisen parameter are calculated as a function of temperature. The derivatives of the frequencies with respect to the crystal parameters are used to calculate the thermal expansion tensor which is compared with that obtained from the numerical derivatives of the crystal parameters obtained from the minimization of the Helmholtz free energy. If many files with the elastic constants, one for each geometry, as produced with the option elastic_constants_geo, are found in the elastic_constants directory and lb0_t=.TRUE., the bulk modulus and the elastic constants are computed as a function of temperature within the ``quasi-static approximation" and are used to calculate the other thermodynamic properties. If one or many elastic constants files are found in the anhar_files directory and lb0_t=.TRUE. the bulk modulus and elastic constants are computed as a function of temperature within the ``quasi-harmonic approximation" and are used to calculate the other thermodynamic properties (see a more detailed discussion in the option what=elastic_constants_geo). In addition to the quantities plotted for cubic solids, the code plots also the elastic constants and the bulk modulus as a function of the temperature and the elastic compliances and the compressibility as a function of temperature. The elastic constants are interpolated with a quadratic (lquartic=.FALSE.) or quartic (lquartic=.TRUE.) polynomial of the crystal parameters. Moreover the thermal stresses and the generalized average Grüneisen parameters are plotted. These possibilities are implemented only for cubic, tetragonal, hexagonal, trigonal, and orthorhombic systems.
With this option the pressure control is active. You can specify a finite pressure and the Gibbs energy is minimized instead of the Helmholtz free energy. Note however that if the minimum is distant from the starting configuration its associated error can be large, larger for the quadratic than for the equation of state interpolation.
By using the variables ntemp_plot and temp_plot (see the Section Temperature and pressure) the code produces also plots of the thermal expansion, of the bulk modulus, of the average Gruneisen parameter, and of the product of the thermal expansion and the bulk modulus as a function of pressure. These plots contain several lines one for each chosen temperature. By using the variables npress_plot and press_plot (see the Section Temperature and pressure) in addition to the plots of the volume, the bulk modulus, the thermal expansion, the isobaric heat capacity, the isoentropic bulk modulus, and the average Grüneisen parameter as a function of temperature calculated at the input pressure, the code produces also a plot of the same quantities for all the npress_plot pressures. Note that these plots may be inaccurate if the chosen pressures are at geometries distant from the set of geometries chosen by the code for the anharmonic calculation, so these plots might require values of ngeo larger than the default. Presently the use of these variables is limited to cubic solids. By using the variables nvol_plot and ivol_plot the code produces a plot of the thermal pressure as a function of temperature for several volumes.
The Helmholtz (or Gibbs at finite pressure) free-energy can be interpolated in two ways depending on the variable ltherm_glob. When ltherm_glob=.FALSE. (default) the vibrational (plus the electronic) free energy is fitted separately by a polynomial, while only the static energy is fitted by an equation of state. When ltherm_glob=.TRUE. a different equation of state is used at each temperature and no polynomial interpolation is needed. The electronic free energy is added if the flag lel_free_energy=.TRUE.. This electronic free energy can be calculated in two ways. When hot_electrons=.FALSE. the code expects to find in the directory therm_files the file with the electronic free energy computed with the option what=mur_lc. When hot_electrons=.TRUE. the free energy due to excited electrons is calculated from the total energy evaluated as a function of sigma. The total energy for several values of sigma must be put in directories called restart2, restart3 ... restart#nsigma.
The input variables that control these plots are those described in the option what='mur_lc' and what='mur_lc_disp' in addition to the following:

grunmin_input : minimum y coordinate for the Gruneisen 
                parameter plot.
                Default: real, calculated from the Gruneisen 
                parameters.
grunmax_input : maximum y coordinate for the Gruneisen 
                parameter plot.
                Default: real, calculated from the Gruneisen 
                parameters.
volume_ph     : The frequencies and Gruneisen parameters inter-
                polated at this volume are plotted on a postscript 
                file. When volume_ph=0.0 the volume is calculated 
                from temp_ph. This option is available only for 
                cubic solids. Otherwise use celldm_ph.
                Default: 0.0 (in (a.u.)**3)
celldm_ph     : The frequencies and Gruneisen parameters 
                interpolated at this crystal parameters are 
                plotted on a postscript file. 
                If this is 0.0 the celldm are calculated from 
                temp_ph. To have accurate Gruneisen parameters 
                and interpolated frequencies set the central 
                geometry as close as possible to celldm_ph. When 
                all nstep are odd, the central geometry is the one 
                given in the input of pw.x.
                Default: 0.0 (celldm(1) in a.u., celldm(2-6) 
                dimensionless)
temp_ph       : The frequencies and Gruneisen parameters inter-
                polated at the volume (cubic systems) or at 
                celldm (anisotropic systems) that minimize the 
                free energy at this temperature are plotted on a 
                postscript file (only when volume_ph=0.0 or 
                celldm_ph(1)=0.0).
                Default: real tmin (in K)
with_eigen    : if .TRUE. use the eigenvectors of the 
                dynamical matrix to calculate the Gruneisen 
                parameters used for anharmonic properties. 
                Could require a lot of RAM. Note however that 
                eigenvectors are always used to calculate
                the plotted Gruneisen bands (both in cubic 
                and anisotropic solids).
                Default: logical .FALSE. 
ltherm_glob   : when .FALSE. the vibrational (plus electronic) 
                free energy is fitted by a polynomial, while 
                only the static energy is fitted by an equation 
                of state. When .TRUE. a different equation of 
                state is fitted at each temperature.
                Default: logical .FALSE.
poly_degree_ph : degree of the polynomial used to interpolate 
                the vibrational free energy. Presently only the 
                values 1, 2, 3, or 4 are available for anisotropic 
                solids. 
                Default: integer 4
poly_degree_cv : degree of the polynomial used to interpolate 
                the heat capacity. Presently only the values 
                1, 2, 3, or 4 are available for anisotropic 
                solids.
                Default: integer 4
poly_degree_bfact : degree of the polynomial used to interpolate 
                the b factor. Presently only the values 1, 2, 3, 
                or 4 are available for anisotropic solids.
                Default: integer 4
poly_degree_elc : degree of the polynomial used to interpolate 
                the elastic constants. Presently only the values 
                1, 2, 3, or 4 are available for anisotropic solids.
                Default: integer 4
poly_degree_grun : degree of the polynomial used to interpolate 
                the frequencies (Used only when lmurn=.TRUE. 
                otherwise it is 2).
                Default: integer 4
lv0_t         : if .TRUE.  the calculation of the thermal 
                expansion with Gruneisen parameters uses the 
                equilibrium geometry as a function of temperature 
                computed from the free energy minimization, 
                otherwise the equilibrium geometry at T=0 K. 
                If reduced_grid=.TRUE. or both ltherm_freq=.FALSE. 
                and ltherm_dos=.FALSE. the input geometry is used 
                when lv0_t=.FALSE.
                Default: logical .TRUE.
lb0_t         : if .TRUE. the calculation of the thermal expansion 
                with Gruneisen parameters uses the bulk modulus as 
                a function of temperature computed from the free 
                energy minimization, otherwise the bulk modulus 
                computed at T=0 K (lmurn=.TRUE.). 
                For lmunrn=.FALSE. the code expects a single 
                elastic constant file when lb0_t=.FALSE. and an 
                elastic constants file for each geometry when 
                lb0_t=.TRUE.. Note that if lb0_t=.FALSE. and there 
                are many elastic constants files the code use a 
                constant bulk modulus computed with the elastic 
                constants found in the file of the central 
                geometry. If lb0_t=.TRUE. and there is a single 
                elastic constants file all the quantities that 
                depend on elastic properties are not computed.
                Default: logical .TRUE.
add_empirical : If .TRUE. adds to the free energy an empirical term
                that can represent the anharmonic contribution 
                or the electronic contribution.
                Default: .FALSE.
efe           : The type of empirical free energy
                1) (alpha1+alpha2 * V) T^2
                2) -2/3 k_B nat alpha1 (v/v0p)^alpha2 T^2
                Default: 0 (must be explicitly given)
alpha1        : parameter of the empirical free energy (see above)
                in eV/K^2 in 1), in 1/K in 2). 
                Default: 0.0
alpha2        : parameter of the empirical free energy (see above)
                in eV / K^2 / A^3 in 1), adimensional in 2)
                Default: 0.0
v0p           : parameter of the empirical free energy (equilibrium volume)
                in (a.u.)^3
                Default: 0.0
hot_electrons : If .TRUE. the electronic free energy is computed from the
                energy as a function of smearing, otherwise it is
                read from files computed from electron dos. Must be
                used together with lel_free_energy=.TRUE..
                Default: .FALSE.
nsigma        : The number of smearing values for which there are
                restart files. Note that nsigma includes the present
                restart, so the code expects to find restart2, 
                restart3, ..., restart#nsigma.
                Default: 0 (option not used). Minimum value 3 to
                make a quadratic fit of the energy.
sigma_ry(nsigma): the value of the smearing for each directory restart.
                In Ry units.
                Default: Must be set for each nsigma by the user.
lhugoniot     : If .TRUE. the code plots T(p) and V(p) along the 
                Hugoniot curve.
                Default: .FALSE.
flgrun        : file where the Gruneisen parameters are written. 
                Default: character(len=*) 'output_pgrun.dat'
flpgrun       : file where the Gruneisen parameters in a plotable 
                form are written.
                Default: character(len=*) 'output_grun.dat'
flpsgrun      : name of the postscript file with the Gruneisen 
                parameters plot. The frequencies are written in 
                a file with the same name plus the string _freq.
                Default: character(len=*) 'output_grun'
flanhar       : file where the anharmonic thermodynamic quantities 
                are written.
                Default: character(len=*) 'output_anhar.dat'
flpsanhar     : postscript file of the anharmonic quantities.
                Default: character(len=*) 'output_anhar'
fact_ngeo(1)...fact_ngeo(6) : With these factors the vibrational 
                free energy is interpolated using a smaller number 
                of geometries with respect to the total energy. The 
                phonons are always calculated at geometry 1, then 
                fact_ngeo(i)-1 geometries are not calculated and 
                so on. The last calculated geometry must be ngeo(i). 
                This happens when fact_ngeo(i) divides ngeo(i)-1. 
                For even ngeo(i), fact_ngeo(i) must be 1. For odd 
                ngeo(i) the following table gives a few examples
                ngeo   fact_ngeo      calculated geometries
                3         2            1,3
                5         2            1,3,5
                7         2            1,3,5,7
                7         3            1,4,7
                9         2            1,3,5,7,9
                9         4            1,5,9
                11        2            1,3,5,7,9,11
                11        5            1,6,11
                Default: integer 1,1,1,1,1,1
                This option is not active when one of the 
                ngeo_ph(i) is different from ngeo(i).
ngeo_ph(1),...,ngeo_ph(6) These variables are set to compute 
                the phonon dispersions in a subset of the 
                geometries used to compute the total energy. 
                All values must be smaller than the corresponding 
                ngeo and even or odd as the corresponding ngeo. 
                step_ngeo remains the same for the two meshes.
                The following table gives a few examples:
                ngeo  ngeo_ph     phonon calculated in geometries
                5        3            2,3,4
                6        2            3,4
                6        4            2,3,4,5
                7        3            3,4,5
                7        5            2,3,4,5,6
                9        3            4,5,6
                9        5            3,4,5,6,7
                Default: integer ngeo(1),...,ngeo(6)
reduced_grid: if .TRUE. the computed geometries are only along 
             one dimensional lines. So each parameter is varied 
             independently keeping the others fixed at the input 
             values. This option sets ltherm_freq=.FALSE., 
             ltherm_dos=.FALSE., lv0_t=.FALSE. and lb0_t=.FALSE..
             With this option the thermal expansion is 
             calculated only using the Gruneisen parameters 
             at the input geometry. The multidimensional fit 
             of the free energy is not done so this method 
             should be faster than the default one, but it
             is less precise. This option is used only with 
             lmurn=.FALSE. and requires a file with the 
             elastic constants at the input geometry.
             Default: logical .FALSE.
all_geometries_together: if .TRUE. all the phonon calculation 
             for all the geometries are used for the image 
             parallelization. To be used only if you have many 
             images (and CPUs) available.
             Default: logical .FALSE.

The output files corresponding to different geometries can be identified by the presence of the letters g1, g2, ... in the filename. To exploit all the features of this option please write the dynamical matrices in .xml format (using a fildyn with the .xml extension). An example for this option can be found in example09.
Number of tasks for this option: Maximum between the number of tasks needed by the what='mur_lc' option and the number of tasks of the phonon code (see above the option what='scf_ph').
When all_geometries_together=.TRUE.: number of tasks of the phonon code times the number of geometries.


next up previous contents
Next: 3.20 what='elastic_constants_geo' Up: 3. Input variables Previous: 3.18 what='mur_lc_elastic_constants'   Contents
2024-02-14