Inputs for ZG.x and disca.x ====== .. Comment List of inputs for ZG.x in EPW ------------------------------- ZG is supposed to run in serial but can be parallelized over all cpus X: ------------------------------------------------------------------------ i.e. mpirun -n X ZG.x -nk X < ZG.in > ZG.out --------------------------------------------- .. Below find the description for the input files of .. bands_unfold.x, the code used for band structure unfolding .. _backtotop: Structure of ZG.in (input file for generating ZG displacements) --------------------------------------------------------------- title line :ref:`&input ` ... :ref:`&A_ZG ` ... :ref:`&strf_ZG ` ... :ref:`&phonon_unfold ` ... .. _input3: &input --------- **A** :ref:`atm_zg(i) `, :ref:`amass(i) `, :ref:`asr `, :ref:`ASDM ` **C** :ref:`compute_error` **D** :ref:`dimX ` **E** :ref:`error_thresh` **F** :ref:`flfrc `, :ref:`flscf `, :ref:`fd ` **I** :ref:`incl_qA` **L** :ref:`loto_2d ` **N** :ref:`niters`, :ref:`na_ifc` **P** :ref:`ph_unfold` **Q** :ref:`q_external`, :ref:`qhat_in(i) ` **S** :ref:`synch`, :ref:`single_ph_displ` **T** :ref:`T ` **Z** :ref:`ZG_conf`, :ref:`ZG_strf` .. _amass1: ``amass(:)`` ---------------------- =============== ===== **Variable** | amass(i), i=1,ntyp **Type** | REAL **Default** | 0.0 **Description** | Atomic mass [amu] of each atomic type. If not specified, masses are read from data file. =============== ===== :ref:`Back to ZG.x input ` .. _atm_zg1: ``atm_zg(:)`` ---------------------- =============== ===== **Variable** | atm_zg(i), i=1,ntyp **Type** | CHARACTER **Default** | 'Element' **Description** | Name each atomic type. =============== ===== :ref:`Back to ZG.x input ` .. _asr1: ``asr`` ----------- =============== ===== **Type** | CHARACTER **Default** | 'no' **Description** | Kind of acoustic sum rule that can be imposed in real space. Possible ASR are 'no' 'simple', 'crystal', 'one-dim' and 'zero-dim'. =============== ===== :ref:`Back to ZG.x input ` .. _ASDM: ``ASDM`` ----------- =============== ===== **Type** | LOGICAL **Default** | .false. **Description** | Enables the iterative A-SDM procedure for evaluating anharmonic IFCs. See input list :ref:`A_ZG`. =============== ===== :ref:`Back to ZG.x input ` .. _compute_error: ``compute_error`` ----------- =============== ===== **Type** | LOGICAL **Default** | .true. **Description** | If .true. allows the code to find the optimal ZG configuration by minimizing the error based on the :ref:`error_thresh` flag (see below). Set it to .false. if speed up is required when (i) large supercell sizes are considered for which the error is minimized by the first set of signs, (ii) only single phonon displacements are of interest (see below). =============== ===== :ref:`Back to ZG.x input ` .. _dimX1: ``dim1, dim2, dim3`` ------------ =============== ===== **Type** | INTEGER **Default** | (0, 0, 0) **Description** | **dim1**, **dim2**, and **dim3** specify the dimensionality of the supercell i.e.: the size of supercell is [dim1 * a(1), dim2 * a(2), dim3 * a(3)], where a(1), a(2), a(3) are the lattice vectors of the unit-cell used to compute the phonons. =============== ===== :ref:`Back to ZG.x input ` .. _error_thresh: ``error_thresh`` ------------ =============== ===== **Type** | REAL **Default** | 0.30 **Description** | Error at which the algorithm stops while it's looking for possible combinations of signs. Once this limit is reached, the ZG dsplacement is constructed. The threshold is usually chosen to be less than 30%, which is a safe boundary for accurate non-perturbative calculations. Meaningful if :ref:`compute_error` = .true. =============== ===== :ref:`Back to ZG.x input ` .. _flfrc1: ``flfrc`` -------------- =============== ===== **Type** | CHARACTER **Default** | (No default value: must be specified.) **Description** | Name of the input file produced by q2r containing the force constants. =============== ===== :ref:`Back to ZG.x input ` .. _flscf1: ``flscf`` -------------- =============== ===== **Type** | CHARACTER **Default** | (No default value. If empty **ZG-scf.in** and **equil-scf.in** files are not generated.) **Description** | Name of the scf input file used to calculate the phonons. The code will read this file to generate new scf files for equilibirum and ZG supercell calculations, i.e. **equil-scf.in** and **ZG-scf.in**. Cell paramaters, number of atoms, k-grid, and atomic coordinates are modified automatically based on the supercell dimensions. The code will always generate the lattice information in angstroms. =============== ===== :ref:`Back to ZG.x input ` .. _fd: ``fd`` -------------- =============== ===== **Type** | LOGICAL **Default** | .false. **Description** | If .true. the code assumes that the interatomic force constants in the ".fc" file come from finite differences as implemented in matdyn.x. This flag is useful with A-SDM calculations which rely on finite differences. Remember to add this flag in matdyn.x input for calculating the phonon dispersion, otherwise it might lead to erroneous results and conclusions. =============== ===== :ref:`Back to ZG.x input ` .. _incl_qA: ``incl_qA`` ----------- =============== ===== **Type** | LOGICAL **Default** | .true. **Description** | If .true. phonons in set *A*, i.e. phonons that remain invariant under time-reversal, are included. =============== ===== :ref:`Back to ZG.x input ` .. _loto_2d1: ``loto_2d`` ----------- =============== ===== **Type** | LOGICAL **Default** | .false. **Description** | If .true. activates two-dimensional treatment of LO-TO splitting. =============== ===== :ref:`Back to ZG.x input ` .. _niters: ``niters`` ---------- =============== ===== **Type** | Integer **Default** | 15000 **Description** | Number of attempts the algorithm needs to go through for finding the optimum configuration. The algorithm generates a set of "*+,-,+,- ...*" signs and its possible permutations, trying to minimize the error coming from the coupling of modes with the same q-wavevector but at different branch. For a finite supercell size the order of using the "*+,-,+,- ...*" set and its permutations is important, giving different results. Therefore, the algorithm checks the combination that brings the error lower than a threshold (see :ref:`error_thresh` flag). Meaningful if :ref:`compute_error` = .true. =============== ===== .. _ph_unfold: ``ph_unfold`` ---------- =============== ===== **Type** | LOGICAL **Default** | .false. **Description** | If .true. activates the phonon unfolding procedure. To perform phonon unfolding :ref:`ZG_conf` must be set to .false.. If ph_unfold = .true. then :ref:`q_external` = .true. =============== ===== .. _na_ifc: ``na_ifc`` ---------- =============== ===== **Type** | LOGICAL **Default** | .false. **Description** | If .true. the code adds the non analytic contributions to the interatomic force constants if finite displacements are used. The implementation is as in matdyn.x. This flag, used in conjunction with :ref:`fd` flag, is useful with A-SDM calculations. Remember to add this flag in matdyn.x input for calculating the phonon dispersion, otherwise it might lead to erroneous results and conclusions. =============== ===== :ref:`Back to ZG.x input ` .. _q_external: ``q_external`` --------- =============== ===== **Type** | LOGICAL **Default** | .false. **Description** | If .true. allows the use of a q-point list specified by the user in the input file. If .false. the q-point list is specified automatically by the supercell dimensions :ref:`dim1`, :ref:`dim2`, and :ref:`dim3`. If .true. the q-point list must be provided by the user and place it after namelist &input. It is advisable to keep this flag to .false. except you know what you are doing. =============== ===== :ref:`Back to ZG.x input ` .. _qhat_in: ``qhat_in(:)`` ---------------------- =============== ===== **Variable** | qhat_in(i), i=1,3 **Type** | REAL **Default** | (0.1, 0.1, 0.1) **Description** | Vector with three real entries for specifying the direction qhat for the non-analytic part when dim1=dim2=dim3=1. Use for example "qhat_in(1) = 0.1, qhat_in(2) =0.0, qhat_in(3) = 0.0" to account for LO-TO splitting from the direction [1 0 0]. =============== ===== :ref:`Back to ZG.x input ` .. _synch: ``synch`` -------------- =============== ===== **Type** | LOGICAL **Default** | .false. **Description** | If .true. the code applies a smooth Berry connection and aligns the sign of the modes with respect to a reference mode. Note that the sign of this reference depends on the machine and it is perfectly reasonable to find different ZG coordinates, since the modes obtained by diagonalizing the dynamical matrix can differ by a phase factor (or a unitary matrix in case of degeneracy) if the processor, or compiler, or libraries have changed. The eigenvalues should remain the same in all cases. Degeneracy is not taken into account. =============== ===== :ref:`Back to ZG.x input ` .. _single_ph_displ: ``single_ph_displ`` -------------- =============== ===== **Type** | LOGICAL **Default** | .false. **Description** | If .true. allows to displace the nuclei along single phonon modes. Use output configurations to compute electron-phonon matrix elements with a direct supercell calculation. Set the displacement to the zero point by **T = 0**. This finite displacement carries the effect of diagonal elements of [g(q)+g(-q)]. Output file is: "single_phonon-displacements.dat". =============== ===== :ref:`Back to ZG.x input ` .. _T1: ``T`` ------ =============== ===== **Type** | REAL **Default** | 0.00 **Description** | It specifies the temperature at which the calculations will be performed. **T** essentially defines the amplitude of the normal coordinates through the Bose-Einstein factor. =============== ===== :ref:`Back to ZG.x input ` .. _ZG_conf: ``ZG_conf`` -------------- =============== ===== **Type** | LOGICAL **Default** | .true. **Description** | Enables the construction of the ZG dsplacements. =============== ===== :ref:`Back to ZG.x input ` .. _ZG_strf: ``ZG_strf`` -------------- =============== ===== **Type** | LOGICAL **Default** | .false. **Description** | Enables the calculation of the ZG diffuse scattering maps (see namelist :ref:`strf_ZG`). =============== ===== :ref:`Back to ZG.x input ` Inputs for evaluating anharmonic IFCs with ZG displacements (used when ASDM = .true.) ------------------------------------------------------------------------------------------------ .. _A_ZG: &A_ZG --------- **A** :ref:`apply_fd ` **F** :ref:`fd_displ ` **I** :ref:`iter_idx `, :ref:`iter_idx0 `, :ref:`incl_epsil ` **M** :ref:`mixing ` **P** :ref:`poly `, :ref:`poly_fd_forces ` **R** :ref:`read_fd_forces ` **U** :ref:`update_equil ` .. _apply_fd: ``apply_fd`` ------------ =============== ===== **Type** | LOGICAL **Default** | .false. **Description** | If .true. generates scf input files **ZG-scf_T_K_iter_XX_XXXX.in** for the calculation of the IFCs. Finite displacements of amplitude :ref:`fd_displ` along each direction and atom of the ZG configuration are applied. =============== ===== :ref:`Back to A_ZG ` .. _fd_displ: ``fd_displ`` ------------ =============== ===== **Type** | REAL **Default** | 0.01058 **Description** | Finite differences displacement in angstroms to be applied along each direction and atom of the ZG configuration (0.01058 A = 0.02 Bohr). =============== ===== :ref:`Back to A_ZG ` .. _iter_idx: ``iter_idx`` ------------ =============== ===== **Type** | INTEGER **Default** | 1 **Description** | Index of the current iteration. If :ref:`poly` flag is true then the code sets :ref:`iter_idx` = 0. If not specified, the code stops. Based on this index, the code performs iterative mixing of IFCs between :ref:`iter_idx0` and iter_idx. =============== ===== :ref:`Back to A_ZG ` .. _iter_idx0: ``iter_idx0`` ------------ =============== ===== **Type** | INTEGER **Default** | 0 **Description** | Integer indicating the index of the initial IFCs matrix for the iterative mixing process. Mixing is performed between IFCs of iterations **iter_idx0** and :ref:`iter_idx`. If :ref:`poly` flag is true, then the code sets **iter_idx0** = 0. =============== ===== :ref:`Back to A_ZG ` .. _incl_epsil: ``incl_epsil`` ------------ =============== ===== **Type** | LOGICAL **Default** | .false. **Description** | Allows the code to print the information of the dielectric constant and Born effective charge tensors in the ".fc" file printed at each iteration. This flag enables, essentially, the inclusion of long-range dipole-dipole interactions in the computation of temperature-dependent anharmonic phonons. Meaningful if :ref:`read_fd_forces` = .true. =============== ===== :ref:`Back to A_ZG ` .. _mixing: ``mixing`` ------------ =============== ===== **Type** | LOGICAL **Default** | .false. **Description** | Enables mixing of IFCs between :ref:`iter_idx0` and :ref:`iter_idx`. Stongly suggested for speed up. =============== ===== :ref:`Back to A_ZG ` .. _poly: ``poly`` ------------ =============== ===== **Type** | LOGICAL **Default** | .false. **Description** | Enables the starting point of ASDM using the polymorphous structure. The code searches for **ZG-relax.out** whose final atomic coordinates represent the ground state polymorphous network. If **ZG-relax.out** exists the code, will apply finite displacements and generate **ZG-scf_poly_iter_XXXX.in** input files. If **ZG-relax.out** does not exist, then the code will generate **ZG-relax.in** containing an initial ZG configuration for performing optimization of the nuclei coordinates and thus obtain **ZG-relax.out**. =============== ===== .. _poly_fd_forces: ``poly_fd_forces`` ------------ =============== ===== **Type** | LOGICAL **Default** | .false. **Description** | Enables reading of the forces from files **ZG-scf_poly_iter_XXXX.out** in directory **fd_forces** after performing finite differences on the polymorphous configuration. =============== ===== :ref:`Back to A_ZG ` .. _read_fd_forces: ``read_fd_forces`` ------------------ =============== ===== **Type** | LOGICAL **Default** | .false. **Description** | Enables reading the forces from files **ZG-scf_T_K_iter_XX_XXXX.out** in directory **fd_forces** after performing finite differences on the ZG-configuration. Meaningful only if :ref:`ASDM` is true and IFCs have been calculated (i.e. after :ref:`apply_fd`). =============== ===== :ref:`Back to A_ZG ` .. _update_equil: ``update_equil`` ---------------- =============== ===== **Type** | LOGICAL **Default** | .false. **Description** | Updates the atomic positions at each iteration. This flag serves for minimizing the free energy with respect to atomic positions based on the Newton-Raphson method. Meaningful only if atomic coordinates of the high-symmetry reference structure are specified by general Wyckoff positions or symetries are disabled. =============== ===== :ref:`Back to A_ZG ` Inputs for generating diffuse scattering maps from ZG displacements (used when ZG_strf = .true.) ------------------------------------------------------------------------------------------------ .. _strf_ZG: &strf_ZG --------- **A** :ref:`atmsf(i,j) ` **C** :ref:`colX ` **K** :ref:`kmax `, :ref:`kmin `, :ref:`kresX ` **N** :ref:`nrots `, :ref:`Np ` **Q** :ref:`qpts_strf` .. _atmsf1: ``atmsf_a(i,j), atmsf_b(i,j)`` ------------ =============== ===== **Type** | REAL **Default** | 0.d0 **Description** | Arrays **atmsf_a** and **atmsf_b** that define the atomic scattering factor as a sum of Gaussians. 5 entries (j), per atom type (i). Parameters can be taken from Ref. [L. Peng, *Micron* 30, 625-648, (1999)]. =============== ===== :ref:`Back to strf_ZG ` .. _colX1: ``col1, col2`` ------------ =============== ===== **Type** | INTEGER **Default** | (1, 2) **Description** | Integers that take values from 1 to 3 for specifying the two Cartesian directions of the scattering vectors Q in the 2D map (1 --> Qx, 2 --> Qy, and 3 --> Qz). =============== ===== :ref:`Back to strf_ZG ` .. _kmax1: ``kmax`` ------------ =============== ===== **Type** | REAL **Default** | 5.d0 **Description** | **kmax** indicates the maximum value of the momentum axis. =============== ===== :ref:`Back to strf_ZG ` .. _kmin1: ``kmin`` ------------ =============== ===== **Type** | REAL **Default** | 5.d0 **Description** | **kmin** indicates the minimum value of the momentum axis. =============== ===== :ref:`Back to strf_ZG ` .. _kresX1: ``kres1, kres2`` ------------ =============== ===== **Type** | INTEGER **Default** | (250, 250) **Description** | **kres1** and **kres2** define the resolution/smearing along the momentum-axes as: **(kmax - kmin) / kresX**. For :ref:`kmax`, :ref:`kmin` see above. =============== ===== :ref:`Back to strf_ZG ` .. _nrots1: ``nrots`` --------- =============== ===== **Type** | INTEGER **Default** | 1 **Description** | **nrots** defines the number of rotations for obtaining the full structure factor map. This number depends on the space group of the structure. For example, for a hexagonal system set **nrots** to 6. =============== ===== :ref:`Back to strf_ZG ` .. _Np1: ``Np`` --------- =============== ===== **Type** | INTEGER **Default** | 400000 **Description** | Np defines the number of reduced wavevectors (q-points) used to sample each Brillouin zone of reciprocal space. This number is equal to (:ref:`dim1` * :ref:`dim2` * :ref:`dim3`) as specified in ZG input namelist. The code divides the scattering intensity for every Q by Np**2 for normalization reasons. One can specify a different value. =============== ===== :ref:`Back to strf_ZG ` .. _qpts_strf: ``qpts_strf`` --------- =============== ===== **Type** | INTEGER **Default** | 0 **Description** | Specifies how many coordinates (rows) to read from the file **qpts_strf.dat** containing the scattering vectors Q in crystal coordinates. **qpts_strf.dat** can be automatically generated from disca.x. =============== ===== :ref:`Back to strf_ZG ` .. _phonon_unfold: &phonon_unfold --------- **F** :ref:`flfrq `, :ref:`flweights ` **D** :ref:`dimX ` **N** :ref:`ngX` .. _flfrq: ``flfrq`` -------------- =============== ===== **Type** | CHARACTER **Default** | 'frequencies.dat' **Description** | Name of the output file for frequencies to printed with unfolding weights. =============== ===== :ref:`Back to phonon_unfold ` .. _flweights: ``flweights`` -------------- =============== ===== **Type** | CHARACTER **Default** | 'unfold_weights.dat'' **Description** | Name of the output file for unfolding weights to printed with frequncies. =============== ===== :ref:`Back to phonon_unfold ` .. _ngX: ``ng1, ng2, ng3`` ------------ =============== ===== **Type** | INTEGER **Default** | (10, 10, 10) **Description** | **ng1**, **ng2**, and **ng3** correspond to the (h k l) indices of the reciprocal lattice vector g. Increase their values to check convergence. Default is a good starting point. =============== ===== :ref:`Back to phonon_unfold ` Comments for bands_unfold.x in ZG tree of EPW v5.5 -------------------------------------------------- Input variables’ description for bands_unfold.x is as for bands.x of Quantum Espresso. (see → https://www.quantum-espresso.org/Doc/INPUT_BANDS.html) The only difference is that, here, we introduce the flags **dim1**, **dim2**, **dim3** which specify the dimensions of the supercell used. This routine is general and can be used for band structure unfolding of ZG supercell structures, supercells with defects, or any other distorted configuration. It is implemented to deal with norm-conserving, paw, and us pseudopotentials. .. Comment List of inputs for disca.x in ZG tree of EPW v5.5 ------------------------------------------------- For optimum performance parallelize over all cpus X: ---------------------------------------------------- i.e. mpirun -n X disca.x -nk X < disca.in > disca.out ------------------------------------------------------ .. _backtotop: Structure of disca.in (input file for generating all-phonon scattering maps) ---------------------------------------------------------------------------- title line :ref:`&input ` ... :ref:`&pp_disca ` .. _input2: &input --------- **A** :ref:`amass `, :ref:`asr `, :ref:`atm_zg(i) `, :ref:`atmsf(i,j) `, :ref:`atom_resolved` **D** :ref:`dimX ` **E** :ref:`eps2` **F** :ref:`flfrc `, :ref:`full_phonon` **L** :ref:`loto_2d ` **M** :ref:`mode_resolved` **N** :ref:`nksX`, :ref:`nksfX` **Q** :ref:`qstart`, :ref:`qfinal` **P** :ref:`plane_dir`, :ref:`plane_val`, :ref:`print_raw_data` **T** :ref:`T ` **Z** :ref:`zero_one_phonon` .. _amass2: ``amass(:)`` ---------------------- =============== ===== **Variable** | amass(i), i=1,ntyp **Type** | REAL **Default** | 0.0 **Description** | Atomic mass [amu] of each atomic type. If not specified, masses are read from data file. =============== ===== :ref:`Back to disca.x input ` .. _asr2: ``asr`` ----------- =============== ===== **Type** | CHARACTER **Default** | 'no' **Description** | Kind of acoustic sum rule that can be imposed in real space. Possible ASR are 'no' 'simple', 'crystal', 'one-dim' and 'zero-dim'. =============== ===== :ref:`Back to disca.x input ` .. _atm_zg2: ``atm_zg(:)`` ---------------------- =============== ===== **Variable** | atm_zg(i), i=1,ntyp **Type** | CHARACTER **Default** | 'Element' **Description** | Name each atomic type. =============== ===== :ref:`Back to disca.x input ` .. _atmsf2: ``atmsf_a(i,j), atmsf_b(i,j)`` ------------ =============== ===== **Type** | REAL **Default** | 0.d0 **Description** | Arrays **atmsf_a** and **atmsf_b** that define the atomic scattering factor as a sum of Gaussians. 5 entries (j), per atom type (i). Parameters can be taken from Ref. [L. Peng, *Micron* 30, 625-648, (1999)]. =============== ===== :ref:`Back to disca.x input ` .. _atom_resolved: ``atom_resolved`` -------------- =============== ===== **Type** | LOGICAL **Default** | .false. **Description** | If .true. the code calculates the atom resolved (k,k') contribubution to diffuse scattering. =============== ===== :ref:`Back to disca.x input ` .. _dimX2: ``dim1, dim2, dim3`` ------------ =============== ===== **Type** | INTEGER **Default** | (0, 0, 0) **Description** | **dim1**, **dim2**, and **dim3** specify the dimensionality of the supercell i.e.: the size of supercell is [dim1 * a(1), dim2 * a(2), dim3 * a(3)], where a(1), a(2), a(3) are the lattice vectors of the unit-cell used to compute the phonons. =============== ===== :ref:`Back to disca.x input ` .. _eps2: ``eps2`` ------------ =============== ===== **Type** | REAL **Default** | 1.0d-15 **Description** | Real variable to exlude phonon frequencies below **eps2**. This flag is useful when negative or spuriously small phonon frequencies exist. =============== ===== :ref:`Back to disca.x input ` .. _flfrc2: ``flfrc`` -------------- =============== ===== **Type** | CHARACTER **Default** | (No default value: must be specified.) **Description** | Name of the input file produced by q2r containing the force constants. =============== ===== :ref:`Back to disca.x input ` .. _full_phonon: ``full_phonon`` -------------- =============== ===== **Type** | LOGICAL **Default** | .false. **Description** | If .true. the code calculates the all-phonon diffuse scattering (including Bragg scattering). =============== ===== :ref:`Back to disca.x input ` .. _loto_2d2: ``loto_2d`` --------- =============== ===== **Type** | LOGICAL **Default** | .false. **Description** | If .true. activates two-dimensional treatment of LO-TO splitting. =============== ===== :ref:`Back to disca.x input ` .. _mode_resolved: ``mode_resolved`` -------------- =============== ===== **Type** | LOGICAL **Default** | .false. **Description** | If .true. the code calculates the mode resolved (ν) contribubution to diffuse scattering. =============== ===== :ref:`Back to disca.x input ` .. _nksX: ``nks1, nks2, nks3`` -------------------- =============== ===== **Type** | INTEGER **Default** | (0, 0, 0) **Description** | **nks1**, **nks2**, and **nks3** specify the initial coordinates of the reciprocal lattice vector Gi = [nks1 * b1 + nks2 * b2 + nks3 * b3], where b1, b2, b3 are the reciprocal lattice vectors of the unit-cell (see also :ref:`nksfX`). =============== ===== :ref:`Back to disca.x input ` .. _nksfX: ``nksf1, nksf2, nksf3`` ----------------------- =============== ===== **Type** | INTEGER **Default** | (6, 6, 6) **Description** | **nksf1**, **nksf2**, and **nksf3** specify the the final coordinates of the reciprocal lattice vector Gf = [nksf1 * b1 + nksf2 * b2 + nksf3 * b3], where b1, b2, b3 are the reciprocal lattice vectors of the unit-cell. Reciprocal lattice vectors from Gi to Gf define the centers of the Brillouin zones for which the scattering vectors Q are computed. =============== ===== :ref:`Back to disca.x input ` .. _plane_dir: ``plane_dir`` ------------ =============== ===== **Type** | INTEGER **Default** | 3 **Description** | Integer number that defines the Cartesian direction perpendicular to the plane (1 --> x, 2 --> y, and 3 --> z) for which the structure factor is calculated for. =============== ===== :ref:`Back to disca.x input ` .. _plane_val: ``plane_val`` ------------ =============== ===== **Type** | REAL **Default** | 0.d0 in units of 2pi/alat **Description** | Real number that defines the plane (in units of 2pi/alat) for which the structure factor map is calculated for. For example to obtain the map for the Qz = 0 plane use **plane_val** = 0.d0 and :ref:`plane_dir` = 3 (see above). =============== ===== :ref:`Back to disca.x input ` .. _print_raw_data: ``print_raw_data`` -------------- =============== ===== **Type** | LOGICAL **Default** | .false. **Description** | If .true. the code prints the raw data (Bragg & phonon contributions to diffuse scattering) before applying convolution. The raw data can be used together with :ref:`input4` of pp_disca.x code for post-processing. =============== ===== :ref:`Back to disca.x input ` .. _qstart: ``qstart`` --------- =============== ===== **Type** | INTEGER **Default** | 1 **Description** | Number that is used together with :ref:`qfinal` (see below) to define how many scattering vectors Q will be included in the present run. These flags enable the separation of the full calculation into different runs. =============== ===== :ref:`Back to disca.x input ` .. _qfinal: ``qfinal`` --------- =============== ===== **Type** | INTEGER **Default** | 2 **Description** | Number that is used together with :ref:`qstart` (see above) to define how many scattering vectors Q will be included in the present run. These flags enable the separation of the full calculation into different runs. =============== ===== :ref:`Back to disca.x input ` .. _zero_one_phonon: ``zero_one_phonon`` ------------------- =============== ===== **Type** | LOGICAL **Default** | .ture. **Description** | If .true. the code calculates the one-phonon contribution to diffuse scattering (including Bragg scattering). =============== ===== :ref:`Back to disca.x input ` .. _T2: ``T`` -------------- =============== ===== **Type** | REAL **Default** | 0.00 **Description** | It specifies the temperature at which the calculations will be performed. **T** essentially defines the amplitude of the normal coordinates through the Bose-Einstein factor. =============== ===== :ref:`Back to disca.x input ` Inputs for the convolution of the phonon diffuse scattering maps ---------------------------------------------------------------- .. _pp_disca: &pp_disca --------- **C** :ref:`colX ` **K** :ref:`kmax `, :ref:`kmin `, :ref:`kresX ` **N** :ref:`nrots `, :ref:`Np ` .. _colX2: ``col1, col2`` ------------ =============== ===== **Type** | INTEGER **Default** | (1, 2) **Description** | Integers that take values from 1 to 3 for specifying the two Cartesian directions of the scattering vectors Q in the 2D map (1 --> Qx, 2 --> Qy, and 3 --> Qz). =============== ===== :ref:`Back to pp_disca ` .. _kmax2: ``kmax`` ------------ =============== ===== **Type** | REAL **Default** | 5.d0 **Description** | **kmax** indicates the maximum value of the momentum axis. =============== ===== :ref:`Back to pp_disca ` .. _kmin2: ``kmin`` ------------ =============== ===== **Type** | REAL **Default** | 5.d0 **Description** | **kmin** indicates the minimum value of the momentum axis. =============== ===== :ref:`Back to pp_disca ` .. _kresX2: ``kres1, kres2`` ------------ =============== ===== **Type** | INTEGER **Default** | (250, 250) **Description** | **kres1** and **kres2** define the resolution/smearing along the momentum-axes as: **(kmax - kmin) / kresX**. For :ref:`kmax`, :ref:`kmin` see above. =============== ===== :ref:`Back to pp_disca ` .. _nrots2: ``nrots`` --------- =============== ===== **Type** | INTEGER **Default** | 1 **Description** | **nrots** defines the number of rotations for obtaining the full structure factor map. This number depends on the space group of the structure. For example, for a hexagonal system set **nrots** to 6. =============== ===== :ref:`Back to pp_disca ` .. _Np2: ``Np`` --------- =============== ===== **Type** | INTEGER **Default** | 400000 **Description** | Np defines the number of reduced wavevectors (q-points) used to sample each Brillouin zone of reciprocal space. This number is equal to (dim1 * dim2 * dim3) as specified in ZG input namelist. The code divides the scattering intensity for every Q by Np**2 for normalization reasons. One can specify a different value. =============== ===== :ref:`Back to pp_disca ` List of inputs for pp_disca.x in ZG tree of EPW ----------------------------------------------- For optimum performance parallelize over all cpus X: ---------------------------------------------------- i.e. mpirun -n X pp_disca.x -nk X < pp_disca.in > pp_disca.out --------------------------------------------------------------- pp_disca.x is used to process the raw data from disca.x (if print_raw_data = .true.) ------------------------------------------------------------------------------------ :ref:`&input ` .. _input4: &input --------- **C** :ref:`colX ` **F** :ref:`flstrfin`, :ref:`flstrfout` **K** :ref:`kmax `, :ref:`kmin `, :ref:`kresX ` **N** :ref:`Np ` **S** :ref:`steps` .. _colX3: ``col1, col2`` ------------ =============== ===== **Type** | INTEGER **Default** | (1, 2) **Description** | Integers that take values from 1 to 3 for specifying the two Cartesian directions of the scattering vectors Q in the 2D map (1 --> Qx, 2 --> Qy, and 3 --> Qz). =============== ===== :ref:`Back to pp_disca.x input ` .. _flstrfin: ``flstrfin`` -------------- =============== ===== **Type** | CHARACTER **Default** | (No default value: must be specified.) **Description** | Name of the input file that contains the scattering vectors' coordinates (columns 1:3), and the scattering intensity (column 4). Usually the file printed when :ref:`print_raw_data` = .true.. =============== ===== :ref:`Back to pp_disca.x input ` .. _flstrfout: ``flstrfout`` -------------- =============== ===== **Type** | CHARACTER **Default** | (No default value: must be specified.) **Description** | Name of the output file that contains the convoluted structure factor map. Columns 1:2 is the scattering vector coordinates, and column 3 is the scattering intensity. =============== ===== :ref:`Back to pp_disca.x input ` .. _kmax3: ``kmax`` ------------ =============== ===== **Type** | REAL **Default** | 5.d0 **Description** | **kmax** indicates the maximum value of the momentum axis. =============== ===== .. _kmin3: :ref:`Back to pp_disca.x input ` ``kmin`` ------------ =============== ===== **Type** | REAL **Default** | 5.d0 **Description** | **kmin** indicates the minimum value of the momentum axis. =============== ===== :ref:`Back to pp_disca.x input ` .. _kresX3: ``kres1, kres2`` ------------ =============== ===== **Type** | INTEGER **Default** | (250, 250) **Description** | **kres1** and **kres2** define the resolution/smearing along the momentum-axes as: **(kmax - kmin) / kresX**. For **kmax**, **kmin** see above. =============== ===== .. _Np3: ``Np`` --------- =============== ===== **Type** | INTEGER **Default** | 400000 **Description** | Np defines the number of reduced wavevectors (q-points) used to sample each Brillouin zone of reciprocal space. This number is equal to (dim1 * dim2 * dim3) as specified in ZG input namelist. The code divides the scattering intensity for every Q by Np**2 for normalization reasons. One can specify a different value. =============== ===== :ref:`Back to pp_disca.x input ` .. _steps: ``steps`` -------------- =============== ===== **Type** | INTEGER **Default** | 10000 **Description** | Integer specifying how many entries from file :ref:`flstrfin` are included in the computation of the scattering intensity, starting from the first row. =============== ===== :ref:`Back to pp_disca.x input `