From 13f03f8f7287fad96ecdad2179679704675aabb1 Mon Sep 17 00:00:00 2001 From: Jamal Mustafa Date: Tue, 7 May 2024 23:11:00 -0700 Subject: [PATCH 1/9] move parameter tables to CSV and read into MD --- .../parameters/postw90-berry-parameters.csv | 31 ++++ .../postw90-boltzwann-parameters.csv | 27 +++ .../parameters/postw90-dos-parameters.csv | 14 ++ .../postw90-geninterp-parameters.csv | 4 + .../parameters/postw90-global-parameters.csv | 18 ++ .../postw90-gyrotropic-parameters.csv | 17 ++ .../parameters/postw90-kpath-parameters.csv | 5 + .../parameters/postw90-kslice-parameters.csv | 9 + .../w90-disentanglement-parameters.csv | 12 ++ docs/docs/parameters/w90-job-parameters.csv | 17 ++ docs/docs/parameters/w90-plot-parameters.csv | 37 +++++ .../docs/parameters/w90-system-parameters.csv | 15 ++ .../parameters/w90-transport-parameters.csv | 25 +++ .../parameters/w90-wannierise-parameters.csv | 23 +++ docs/docs/user_guide/postw90/postw90params.md | 141 +--------------- docs/docs/user_guide/wannier90/parameters.md | 154 ++---------------- docs/mkdocs.yml | 1 + docs/requirements.txt | 1 + 18 files changed, 275 insertions(+), 276 deletions(-) create mode 100644 docs/docs/parameters/postw90-berry-parameters.csv create mode 100644 docs/docs/parameters/postw90-boltzwann-parameters.csv create mode 100644 docs/docs/parameters/postw90-dos-parameters.csv create mode 100644 docs/docs/parameters/postw90-geninterp-parameters.csv create mode 100644 docs/docs/parameters/postw90-global-parameters.csv create mode 100644 docs/docs/parameters/postw90-gyrotropic-parameters.csv create mode 100644 docs/docs/parameters/postw90-kpath-parameters.csv create mode 100644 docs/docs/parameters/postw90-kslice-parameters.csv create mode 100644 docs/docs/parameters/w90-disentanglement-parameters.csv create mode 100644 docs/docs/parameters/w90-job-parameters.csv create mode 100644 docs/docs/parameters/w90-plot-parameters.csv create mode 100644 docs/docs/parameters/w90-system-parameters.csv create mode 100644 docs/docs/parameters/w90-transport-parameters.csv create mode 100644 docs/docs/parameters/w90-wannierise-parameters.csv diff --git a/docs/docs/parameters/postw90-berry-parameters.csv b/docs/docs/parameters/postw90-berry-parameters.csv new file mode 100644 index 00000000..30dad91c --- /dev/null +++ b/docs/docs/parameters/postw90-berry-parameters.csv @@ -0,0 +1,31 @@ +Keyword,Type,Description +berry,L,"Calculate Berry-type quantities" +berry_task,S,"List of properties to compute" +[berry_]kmesh,I,"Dimensions of the uniform interpolation \\(k\\)-mesh (one or three integers)" +[berry_]kmesh_spacing,R,"Minimum spacing between \\(k\\) points in Å\\(^{-1}\\)" +berry_curv_adpt_kmesh,I,"Linear dimension of the adaptively refined \\(k\\)-mesh used to compute the anomalous/spin Hall conductivity" +berry_curv_adpt_kmesh_thresh,P,"Threshold magnitude of the Berry curvature for adaptive refinement" +kubo_freq_min,P,"Lower limit of the frequency range for optical spectra, JDOS, shift current and spin Hall conductivity (eV)" +kubo_freq_max,P,"Upper limit of the frequency range for optical spectra, JDOS, shift current and spin Hall conductivity (eV)" +kubo_freq_step,R,"Step for increasing the optical frequency in the specified range" +kubo_eigval_max,P,"Maximum energy eigenvalue included when evaluating the Kubo-Greenwood conductivity, JDOS, shift current and spin Hall conductivity" +[kubo_]adpt_smr,L,"Use adaptive energy smearing for the optical conductivity, JDOS, shift current and spin Hall conductivity" +[kubo_]adpt_smr_fac,R,"Adaptive smearing prefactor" +[kubo_]adpt_smr_max,P,"Maximum allowed value for the adaptive energy smearing (eV)" +[kubo_]smr_type,S,"Analytical form used for the broadened delta function when computing the optical conductivity, JDOS, shift current and spin Hall conductivity" +[kubo_]smr_fixed_en_width,P,"Energy smearing (if non-adaptive) for the optical conductivity, JDOS, shift current and spin Hall conductivity (eV)" +sc_eta,R,"Energy broadening of energy differences in the sum over virtual states when computing shift current" +sc_phase_conv,I,"Convention for phase factor of Bloch states when computing shift current" +sc_w_thr,R,"Frequency threshold for speeding up delta function integration when computing shift current" +sc_use_eta_corr,L,"Use finite-eta correction for computing shift current" +shc_freq_scan,L,"Calculate Fermi energy scan or frequency scan of spin Hall conductivity" +shc_method,S,"How to obtain the spin current matrix elements for SHC" +shc_alpha,I,"The spin current direction of spin Hall conductivity" +shc_beta,I,"The direction of applied electrical field of spin Hall conductivity" +shc_gamma,I,"The spin direction of the spin current of spin Hall conductivity" +shc_bandshift,L,"Rigid bandshift of the conduction bands" +shc_bandshift_firstband,I,"Index of the first band to shift" +shc_bandshift_energyshift,P,"Energy shift of the conduction bands (eV)" +kdotp_kpoint,R,"\\(k\\) point for \\(k\\cdot p\\) expansion (\\(2\\pi/a\\), with \\(a\\) lattice constant in Å)" +kdotp_num_bands,I,"Number of bands for \\(k\\cdot p\\) expansion" +kdotp_bands,I,"Band indexes corresponding to the \\(k\\cdot p\\) bands" diff --git a/docs/docs/parameters/postw90-boltzwann-parameters.csv b/docs/docs/parameters/postw90-boltzwann-parameters.csv new file mode 100644 index 00000000..83ff8f5b --- /dev/null +++ b/docs/docs/parameters/postw90-boltzwann-parameters.csv @@ -0,0 +1,27 @@ +Keyword,Type,Description +boltzwann,L,"Calculate Boltzmann transport coefficients" +[boltz_]kmesh,I,"Dimensions of the uniform interpolation \\(k\\)-mesh (one or three integers)" +[boltz_]kmesh_spacing,R,"Minimum spacing between \\(k\\) points in Å\\(^{-1}\\)" +boltz_2d_dir,S,"Non-periodic direction (for 2D systems only)" +boltz_relax_time,P,"Relaxation time in fs" +boltz_mu_min,P,"Minimum value of the chemical potential \\(\\mu\\) in eV" +boltz_mu_max,P,"Maximum value of the chemical potential \\(\\mu\\) in eV" +boltz_mu_step,R,"Step for \\(\\mu\\) in eV" +boltz_temp_min,P,"Minimum value of the temperature \\(T\\) in Kelvin" +boltz_temp_max,P,"Maximum value of the temperature \\(T\\) in Kelvin" +boltz_temp_step,R,"Step for \\(T\\) in Kelvin" +boltz_tdf_energy_step,R,"Energy step for the TDF (eV)" +boltz_tdf_smr_fixed_en_width,P,"Energy smearing for the TDF (eV)" +boltz_tdf_smr_type,S,"Smearing type for the TDF" +boltz_calc_also_dos,L,"Calculate also DOS while calculating the TDF" +boltz_dos_energy_min,P,"Minimum value of the energy for the DOS in eV" +boltz_dos_energy_max,P,"Maximum value of the energy for the DOS in eV" +boltz_dos_energy_step,R,"Step for the DOS in eV" +[boltz_]smr_type,S,"Smearing type for the DOS" +[boltz_]adpt_smr,L,"Use adaptive smearing for the DOS" +[boltz_]adpt_smr_fac,R,"Adaptive smearing prefactor" +[boltz_]adpt_smr_max,P,"Maximum allowed value for the adaptive energy smearing (eV)" +[boltz_]fixed_en_width,P,"Energy smearing (if non-adaptive) for the DOS (eV)" +boltz_bandshift,L,"Rigid bandshift of the conduction bands" +boltz_bandshift_firstband,I,"Index of the first band to shift" +boltz_bandshift_energyshift,P,"Energy shift of the conduction bands (eV)" diff --git a/docs/docs/parameters/postw90-dos-parameters.csv b/docs/docs/parameters/postw90-dos-parameters.csv new file mode 100644 index 00000000..e22123e7 --- /dev/null +++ b/docs/docs/parameters/postw90-dos-parameters.csv @@ -0,0 +1,14 @@ +Keyword,Type,Description +dos,L,"Calculate the density of states and related properties" +dos_task,S,"List of properties to compute" +dos_energy_min,P,"Lower limit of the energy range for computing the DOS (eV)" +dos_energy_max,P,"Upper limit of the energy range for computing the DOS (eV)" +dos_energy_step,R,"Step for increasing the energy in the specified range (eV)" +dos_project,I,"List of WFs onto which the DOS is projected" +[dos_]kmesh,I,"Dimensions of the uniform interpolation \\(k\\)-mesh (one or three integers)" +[dos_]kmesh_spacing,R,"Minimum spacing between \\(k\\) points in Å\\(^{-1}\\)" +[dos_]adpt_smr,L,"Use adaptive smearing for the DOS" +[dos_]adpt_smr_fac,R,"Adaptive smearing prefactor" +[dos_]adpt_smr_max,P,"Maximum allowed value for the adaptive energy smearing (eV)" +[dos_]smr_fixed_en_width,P,"Energy smearing (if non-adaptive) for the DOS (eV)" +[dos_]smr_type,S,"Analytical form used for the broadened delta function when computing the DOS" diff --git a/docs/docs/parameters/postw90-geninterp-parameters.csv b/docs/docs/parameters/postw90-geninterp-parameters.csv new file mode 100644 index 00000000..c5529b5d --- /dev/null +++ b/docs/docs/parameters/postw90-geninterp-parameters.csv @@ -0,0 +1,4 @@ +Keyword,Type,Description +geninterp,L,"Calculate bands for given set of \\(k\\) points" +geninterp_alsofirstder,L,"Calculate also first derivatives" +geninterp_single_file,L,"Write a single file or one for each process" diff --git a/docs/docs/parameters/postw90-global-parameters.csv b/docs/docs/parameters/postw90-global-parameters.csv new file mode 100644 index 00000000..62b131b3 --- /dev/null +++ b/docs/docs/parameters/postw90-global-parameters.csv @@ -0,0 +1,18 @@ +Keyword,Type,Description +kmesh,I,"Dimensions of the uniform interpolation \\(k\\)-mesh (one or three integers)" +kmesh_spacing,R,"Minimum spacing between \\(k\\) points in Å\\(^{-1}\\)" +adpt_smr,L,"Use adaptive smearing" +adpt_smr_fac,R,"Adaptive smearing prefactor" +adpt_smr_max,P,"Maximum allowed value for the adaptive energy smearing (eV)" +smr_type,S,"Analytical form used for the broadened delta function" +smr_fixed_en_width,P,"Energy smearing (if non-adaptive)" +num_elec_per_state,I,"Number of electrons per state" +scissors_shift,P,"Scissors shift applied to the conduction bands (eV) (deprecated)" +num_valence_bands,I,"Number of valence bands" +spin_decomp,L,"Decompose various properties into up-spin, down-spin, and possibly spin-flip parts" +spin_axis_polar,P,"Polar angle of the spin quantization axis (deg)" +spin_axis_azimuth,P,"Azimuthal angle of the spin quantization axis (deg)" +spin_moment\\(^*\\),L,"Determines whether to evaluate the spin magnetic moment per cell" +uHu_formatted,L,"Read a formatted `seedname.uHu` file" +spn_formatted,L,"Read a formatted `seedname.spn` file" +berry_curv_unit,S,"Unit of Berry curvature" diff --git a/docs/docs/parameters/postw90-gyrotropic-parameters.csv b/docs/docs/parameters/postw90-gyrotropic-parameters.csv new file mode 100644 index 00000000..ffbc5ac7 --- /dev/null +++ b/docs/docs/parameters/postw90-gyrotropic-parameters.csv @@ -0,0 +1,17 @@ +Keyword,Type,Description +gyrotropic,L,"Calculate gyrotropic quantities" +gyrotropic_task,L,"List of properties to compute" +[gyrotropic_]kmesh,I,"Dimensions of the uniform interpolation \\(k\\)-mesh (one or three integers)" +[gyrotropic_]kmesh_spacing,R,"Minimum spacing between \\(k\\) points in Å\\(^{-1}\\)" +gyrotropic_freq_min,P,"Lower limit of the frequency range for optical rotation (eV)" +gyrotropic_freq_max,P,"Upper limit of the frequency range for optical rotation (eV)" +gyrotropic_freq_step,P,"Step for increasing the optical frequency in the specified range" +gyrotropic_eigval_max,P,"Maximum energy eigenvalue included when evaluating the interband natural optical activity" +gyrotropic_degen_thresh,P,"threshold to exclude degenerate bands from the calculation" +[gyrotropic_]smr_type,S,"Analytical form used for the broadened delta function" +[gyrotropic_]smr_fixed_en_width,P,"Energy smearing (eV)" +[gyrotropic_]band_list,I,"list of bands used in the calculation" +gyrotropic_box_center,R,"Center of the integration box, defined (in reduced coordinates) by three real numbers" +gyrotropic_box_b1,R,"First basis vector, defined (in reduced coordinates) by three real numbers" +gyrotropic_box_b2,R,"Second basis vector, defined (in reduced coordinates) by three real numbers" +gyrotropic_box_b3,R,"Third basis vector, defined (in reduced coordinates) by three real numbers" diff --git a/docs/docs/parameters/postw90-kpath-parameters.csv b/docs/docs/parameters/postw90-kpath-parameters.csv new file mode 100644 index 00000000..59d5f39e --- /dev/null +++ b/docs/docs/parameters/postw90-kpath-parameters.csv @@ -0,0 +1,5 @@ +Keyword,Type,Description +kpath,L,"Calculate properties along a piecewise linear path in the BZ" +kpath_task,L,"List of properties to evaluate" +kpath_num_points,I,"Number of points in the first kpath segment" +kpath_bands_colour,S,"Property used to colour the energy bands along the path" diff --git a/docs/docs/parameters/postw90-kslice-parameters.csv b/docs/docs/parameters/postw90-kslice-parameters.csv new file mode 100644 index 00000000..05b5ea7e --- /dev/null +++ b/docs/docs/parameters/postw90-kslice-parameters.csv @@ -0,0 +1,9 @@ +Keyword,Type,Description +kslice,L,"Calculate properties on a slice in the BZ" +kslice_task,S,"List of properties to evaluate" +kslice_corner,R,"Position of the corner of the slice" +kslice_b1,R,"First vector defining the slice" +kslice_b2,R,"Second vector defining the slice" +kslice_2dkmesh,I,"Dimensions of the uniform interpolation \\(k\\)-mesh on the slice (one or two integers)" +kslice_fermi_level,P,"This parameter is not used anymore. Use fermi_energy instead" +kslice_fermi_lines_colour,S,"Property used to colour the Fermi lines" diff --git a/docs/docs/parameters/w90-disentanglement-parameters.csv b/docs/docs/parameters/w90-disentanglement-parameters.csv new file mode 100644 index 00000000..16584e20 --- /dev/null +++ b/docs/docs/parameters/w90-disentanglement-parameters.csv @@ -0,0 +1,12 @@ +Keyword,Type,Description +dis_win_min,P,"Bottom of the outer energy window" +dis_win_max,P,"Top of the outer energy window" +dis_froz_min,P,"Bottom of the inner (frozen) energy window" +dis_froz_max,P,"Top of the inner (frozen) energy window" +dis_num_iter,I,"Number of iterations for the minimisation of $\\Omega_{\\mathrm{I}}$" +dis_mix_ratio,R,"Mixing ratio during the minimisation of $\\Omega_{\\mathrm{I}}$" +dis_conv_tol,R,"The convergence tolerance for finding $\\Omega_{\\mathrm{I}}$" +dis_conv_window,I,"The number of iterations over which convergence of $\\Omega_{\\mathrm{I}}$ is assessed." +dis_spheres_num,I,"Number of spheres in k-space where disentaglement is performed" +dis_spheres_first_wann,I,"Index of the first band to be considered a Wannier function" +dis_spheres,R,"List of centres and radii, for disentanglement only in spheres" diff --git a/docs/docs/parameters/w90-job-parameters.csv b/docs/docs/parameters/w90-job-parameters.csv new file mode 100644 index 00000000..02f2e130 --- /dev/null +++ b/docs/docs/parameters/w90-job-parameters.csv @@ -0,0 +1,17 @@ +Keyword,Type,Description +postproc_setup,L,"To output the `seedname.nnkp` file" +exclude_bands,I,"List of bands to exclude from the calculation" +select_projections,I,"List of projections to use in Wannierisation" +auto_projections,L,"To automatically generate initial projections" +restart,S,"Restart from checkpoint file" +iprint,I,"Output verbosity level" +length_unit,S,"System of units to output lengths" +wvfn_formatted,L,"Read the wavefunctions from a (un)formatted file" +spin,S,"Which spin channel to read" +devel_flag,S,"Flag for development use" +timing_level,I,"Determines amount of timing information written to output" +optimisation,I,"Optimisation level" +translate_home_cell,L,"To translate final Wannier centres to home unit cell when writing xyz file" +write_xyz,L,"To write atomic positions and final centres in xyz file format" +write_vdw_data,L,"To write data for futher processing by w90vdw utility" +write_hr_diag,L,"To write the diagonal elements of the Hamiltonian in the Wannier basis to `seedname.wout` (in eV)" diff --git a/docs/docs/parameters/w90-plot-parameters.csv b/docs/docs/parameters/w90-plot-parameters.csv new file mode 100644 index 00000000..266ab9b6 --- /dev/null +++ b/docs/docs/parameters/w90-plot-parameters.csv @@ -0,0 +1,37 @@ +Keyword,Type,Description +wannier_plot,L,"Plot the WF" +wannier_plot_list,I,"List of WF to plot" +wannier_plot_supercell,I,"Size of the supercell for plotting the WF" +wannier_plot_format,S,"File format in which to plot the WF" +wannier_plot_mode,S,"Mode in which to plot the WF, molecule or crystal" +wannier_plot_radius,R,"Cut-off radius of WF\*" +wannier_plot_scale,R,"Scaling parameter for cube files" +wannier_plot_spinor_mode,S,"Quantity to plot for spinor WF" +wannier_plot_spinor_phase,L,"Include the “phase” when plotting spinor WF" +bands_plot,L,"Plot interpolated band structure" +kpoint_path,P,"K-point path for the interpolated band structure" +bands_num_points,I,"Number of points along the first section of the k-point path" +bands_plot_format,S,"File format in which to plot the interpolated bands" +bands_plot_project,I,"WF to project the band structure onto" +bands_plot_mode,S,"Slater-Koster type interpolation or Hamiltonian cut-off" +bands_plot_dim,I,"Dimension of the system" +fermi_surface_plot,L,"Plot the Fermi surface" +fermi_surface_num_points,I,"Number of points in the Fermi surface plot" +fermi_energy,P,"The Fermi energy" +fermi_energy_min,P,"Lower limit of the Fermi energy range" +fermi_energy_max,P,"Upper limit of the Fermi energy range" +fermi_energy_step,R,"Step for increasing the Fermi energy in the specified range" +fermi_surface_plot_format,S,"File format for the Fermi surface plot" +hr_plot,L,"This parameter is not used anymore. Use write_hr instead." +write_hr,L,"Write the Hamiltonian in the WF basis" +write_rmn,L,"Write the position operator in the WF basis" +write_bvec,L,"Write to file the matrix elements of the bvectors and their weights" +write_tb,L,"Write lattice vectors, Hamiltonian, and position operator in WF basis" +hr_cutoff,P,"Cut-off for the absolute value of the Hamiltonian" +dist_cutoff,P,"Cut-off for the distance between WF" +dist_cutoff_mode,S,"Dimension in which the distance between WF is calculated" +translation_centre_frac,R,"Centre of the unit cell to which final WF are translated" +use_ws_distance,L,"Improve interpolation using minimum distance between WFs, see Chap. [Some notes on the interpolation](notes_interpolations.md)" +ws_distance_tol,R,"Absolute tolerance for the distance to equivalent positions." +ws_search_size,I,"Maximum extension in each direction of the super-cell of the Born-von Karmann cell to search for points inside the Wigner-Seitz cell" +write_u_matrices,L,"Write $U^{(\\bm{k})}$ and $U^{dis(\\bm{k})}$ matrices to files" diff --git a/docs/docs/parameters/w90-system-parameters.csv b/docs/docs/parameters/w90-system-parameters.csv new file mode 100644 index 00000000..b4bb07d6 --- /dev/null +++ b/docs/docs/parameters/w90-system-parameters.csv @@ -0,0 +1,15 @@ +Keyword,Type,Description +num_wann,I,"Number of WF" +num_bands,I,"Number of bands passed to the code" +unit_cell_cart,P,"Unit cell vectors in Cartesian coordinates" +atoms_cart \*,P,"Positions of atoms in Cartesian coordinates" +atoms_frac \*,R,"Positions of atoms in fractional coordinates with respect to the lattice vectors" +mp_grid,I,"Dimensions of the Monkhorst-Pack grid of k-points" +kpoints,R,"List of k-points in the Monkhorst-Pack grid" +gamma_only,L,"Wavefunctions from underlying ab initio calculation are manifestly real" +spinors,L,"WF are spinors" +shell_list,I,"Which shells to use in finite difference formula" +search_shells,I,"The number of shells to search when determining finite difference formula" +skip_B1_tests,L,"Check the condition B1 of Ref [@marzari-prb97]" +nnkpts,I,"Explicit list of nearest-neighbour k-points" +kmesh_tol,R,"The tolerance to control if two kpoint belong to the same shell" diff --git a/docs/docs/parameters/w90-transport-parameters.csv b/docs/docs/parameters/w90-transport-parameters.csv new file mode 100644 index 00000000..f09374ff --- /dev/null +++ b/docs/docs/parameters/w90-transport-parameters.csv @@ -0,0 +1,25 @@ +Keyword,Type,Description +transport,L,"Calculate quantum conductance and density of states" +transport_mode,S,"Bulk or left-lead_conductor_right-lead calculation" +tran_win_min,P,"Bottom of the energy window for transport calculation" +tran_win_max,P,"Top of the energy window for transport calculation" +tran_energy_step,R,"Sampling interval of the energy values" +fermi_energy,R,"The Fermi energy" +tran_num_bb,I,"Size of a bulk Hamiltonian" +tran_num_ll,I,"Size of a left-lead Hamiltonian" +tran_num_rr,I,"Size of a right-lead Hamiltonian" +tran_num_cc,I,"Size of a conductor Hamiltonian" +tran_num_lc,I,"Number of columns in a left-lead_conductor Hamiltonian" +tran_num_cr,I,"Number of rows in a conductor_right-lead Hamiltonian" +tran_num_cell_ll,I,"Number of unit cells in PL of left lead" +tran_num_cell_rr,I,"Number of unit cells in PL of right lead" +tran_num_bandc,I,"Half-bandwidth+1 of a band-diagonal conductor Hamiltonian" +tran_write_ht,L,"Write the Hamiltonian for transport calculation" +tran_read_ht,L,"Read the Hamiltonian for transport calculation" +tran_use_same_lead,L,"Left and right leads are the same" +tran_group_threshold,R,"Distance that determines the grouping of WFs" +hr_cutoff,P,"Cut-off for the absolute value of the Hamiltonian" +dist_cutoff,P,"Cut-off for the distance between WF" +dist_cutoff_mode,S,"Dimension in which the distance between WF is calculated" +one_dim_axis,S,"Extended direction for a one-dimensional system" +translation_centre_frac,R,"Centre of the unit cell to which final WF are translated" diff --git a/docs/docs/parameters/w90-wannierise-parameters.csv b/docs/docs/parameters/w90-wannierise-parameters.csv new file mode 100644 index 00000000..a6192020 --- /dev/null +++ b/docs/docs/parameters/w90-wannierise-parameters.csv @@ -0,0 +1,23 @@ +Keyword,Type,Description +num_iter,I,"Number of iterations for the minimisation of $\\Omega$" +num_cg_steps,I,"During the minimisation of $\\Omega$ the number of Conjugate Gradient steps before resetting to Steepest Descents" +conv_window,I,"The number of iterations over which convergence of $\\Omega$ is assessed" +conv_tol,P,"The convergence tolerance for finding $\\Omega$" +precond,L,"Use preconditioning" +conv_noise_amp,R,"The amplitude of random noise applied towards end of minimisation procedure" +conv_noise_num,I,"The number of times random noise is applied" +num_dump_cycles,I,"Control frequency of check-pointing" +num_print_cycles,I,"Control frequency of printing" +write_r2mn,L,"Write matrix elements of $r^2$ between WF to file" +guiding_centres,L,"Use guiding centres" +num_guide_cycles,I,"Frequency of guiding centres" +num_no_guide_iter,I,"The number of iterations after which guiding centres are used" +trial_step \*,R,"The trial step length for the parabolic line search during the minimisation of $\\Omega$" +fixed_step \*,R,"The fixed step length to take during the minimisation of $\\Omega$, instead of doing a parabolic line search" +use_bloch_phases \*\*,L,"To use phases for initial projections" +site_symmetry\*\*\*,L,"To construct symmetry-adapted Wannier functions" +symmetrize_eps\*\*\*,R,"The convergence tolerance used in the symmetry-adapted mode" +slwf_num,I,"The number of objective WFs for selective localization" +slwf_constrain,L,"Whether to constrain the centres of the objective WFs" +slwf_lambda,R,"Value of the Lagrange multiplier for constraining the objective WFs" +slwf_centres,P,"The centres to which the objective WFs are to be constrained" diff --git a/docs/docs/user_guide/postw90/postw90params.md b/docs/docs/user_guide/postw90/postw90params.md index 8b9f663d..8cac711f 100644 --- a/docs/docs/user_guide/postw90/postw90params.md +++ b/docs/docs/user_guide/postw90/postw90params.md @@ -135,31 +135,13 @@ specific to the modules can be found in the following sections. ### Global Parameters of `postw90` -| Keyword | Type | Description | -| :---------------------------------:| :--: | :----------------------------------------------------------------------------------| -| kmesh | I | Dimensions of the uniform interpolation \(k\)-mesh (one or three integers) | -| kmesh\_spacing | R | Minimum spacing between \(k\) points in Å\(^{-1}\) | -| adpt\_smr | L | Use adaptive smearing | -| adpt\_smr\_fac | R | Adaptive smearing prefactor | -| adpt\_smr\_max | P | Maximum allowed value for the adaptive energy smearing (eV) | -| smr\_type | S | Analytical form used for the broadened delta function | -| smr\_fixed\_en\_width | P | Energy smearing (if non-adaptive) | -| num\_elec\_per\_state | I | Number of electrons per state | -| scissors\_shift | P | Scissors shift applied to the conduction bands (eV) (deprecated) | -| num\_valence\_bands | I | Number of valence bands | -| spin\_decomp | L | Decompose various properties into up-spin, down-spin, and possibly spin-flip parts | -| spin\_axis\_polar | P | Polar angle of the spin quantization axis (deg) | -| spin\_axis\_azimuth | P | Azimuthal angle of the spin quantization axis (deg) | -| spin\_moment\(^*\) | L | Determines whether to evaluate the spin magnetic moment per cell | -| uHu\_formatted | L | Read a formatted `seedname.uHu` file | -| spn\_formatted | L | Read a formatted `seedname.spn` file | -| berry\_curv\_unit | S | Unit of Berry curvature | +{{ read_csv('docs/parameters/postw90-global-parameters.csv', colalign=('left', 'center', 'left')) }} `seedname.win` file keywords controlling the general behaviour of the modules in `postw90`. Argument types are represented by, I for a integer, R for a real number, P for a physical value, L for a logical value and S - for a text string. + for a text string. \* The keyword `spin_moment` does not affect the behavior of the modules in , and does not really belong to any of them. It is listed here for lack of a better place. @@ -167,39 +149,7 @@ specific to the modules can be found in the following sections. ### `berry` Parameters -| Keyword | Type | Description | -| :-------------------------------------------: | :--: | :-------------------------------------------------------------------------------------------------------------------------------------------- | -| berry | L | Calculate Berry-type quantities | -| berry\_task | S | List of properties to compute | -| \[berry\_\]kmesh | I | Dimensions of the uniform interpolation \(k\)-mesh (one or three integers) | -| \[berry\_\]kmesh\_spacing | R | Minimum spacing between \(k\) points in Å\(^{-1}\) | -| berry\_curv\_adpt\_kmesh | I | Linear dimension of the adaptively refined \(k\)-mesh used to compute the anomalous/spin Hall conductivity | -| berry\_curv\_adpt\_kmesh\_thresh | P | Threshold magnitude of the Berry curvature for adaptive refinement | -| kubo\_freq\_min | P | Lower limit of the frequency range for optical spectra, JDOS, shift current and spin Hall conductivity (eV) | -| kubo\_freq\_max | P | Upper limit of the frequency range for optical spectra, JDOS, shift current and spin Hall conductivity (eV) | -| kubo\_freq\_step | R | Step for increasing the optical frequency in the specified range | -| kubo\_eigval\_max | P | Maximum energy eigenvalue included when evaluating the Kubo-Greenwood conductivity, JDOS, shift current and spin Hall conductivity | -| \[kubo\_\]adpt\_smr | L | Use adaptive energy smearing for the optical conductivity, JDOS, shift current and spin Hall conductivity | -| \[kubo\_\]adpt\_smr\_fac | R | Adaptive smearing prefactor | -| \[kubo\_\]adpt\_smr\_max | P | Maximum allowed value for the adaptive energy smearing (eV) | -| \[kubo\_\]smr\_type | S | Analytical form used for the broadened delta function when computing the optical conductivity, JDOS, shift current and spin Hall conductivity | -| \[kubo\_\]smr\_fixed\_en\_width | P | Energy smearing (if non-adaptive) for the optical conductivity, JDOS, shift current and spin Hall conductivity (eV) | -| sc\_eta | R | Energy broadening of energy differences in the sum over virtual states when computing shift current | -| sc\_phase\_conv | I | Convention for phase factor of Bloch states when computing shift current | -| sc\_w\_thr | R | Frequency threshold for speeding up delta function integration when computing shift current | -| sc\_use\_eta\_corr | L | Use finite-eta correction for computing shift current | -| shc\_freq\_scan | L | Calculate Fermi energy scan or frequency scan of spin Hall conductivity | -| shc\_method | S | How to obtain the spin current matrix elements for SHC | -| shc\_alpha | I | The spin current direction of spin Hall conductivity | -| shc\_beta | I | The direction of applied electrical field of spin Hall conductivity | -| shc\_gamma | I | The spin direction of the spin current of spin Hall conductivity | -| shc\_bandshift | L | Rigid bandshift of the conduction bands | -| shc\_bandshift\_firstband | I | Index of the first band to shift | -| shc\_bandshift\_energyshift | P | Energy shift of the conduction bands (eV) | -| kdotp\_kpoint | R | \(k\) point for \(k\cdot p\) expansion (\(2\pi/a\), with \(a\) lattice constant in Å) | -| kdotp\_num\_bands | I | Number of bands for \(k\cdot p\) expansion | -| kdotp\_bands | I | Band indexes corresponding to the \(k\cdot p\) bands | -| | | | +{{ read_csv('docs/parameters/postw90-berry-parameters.csv', colalign=('left', 'center', 'left')) }} `seedname.win` file keywords controlling the `berry` module. @@ -210,21 +160,7 @@ specific to the modules can be found in the following sections. ### `dos` Parameters -| Keyword | Type | Description | -| :--------------------------------: | :--: | :---------------------------------------------------------------------------- | -| dos | L | Calculate the density of states and related properties | -| dos\_task | S | List of properties to compute | -| dos\_energy\_min | P | Lower limit of the energy range for computing the DOS (eV) | -| dos\_energy\_max | P | Upper limit of the energy range for computing the DOS (eV) | -| dos\_energy\_step | R | Step for increasing the energy in the specified range (eV) | -| dos\_project | I | List of WFs onto which the DOS is projected | -| \[dos\_\]kmesh | I | Dimensions of the uniform interpolation \(k\)-mesh (one or three integers) | -| \[dos\_\]kmesh\_spacing | R | Minimum spacing between \(k\) points in Å\(^{-1}\) | -| \[dos\_\]adpt\_smr | L | Use adaptive smearing for the DOS | -| \[dos\_\]adpt\_smr\_fac | R | Adaptive smearing prefactor | -| \[dos\_\]adpt\_smr\_max | P | Maximum allowed value for the adaptive energy smearing (eV) | -| \[dos\_\]smr\_fixed\_en\_width | P | Energy smearing (if non-adaptive) for the DOS (eV) | -| \[dos\_\]smr\_type | S | Analytical form used for the broadened delta function when computing the DOS. | +{{ read_csv('docs/parameters/postw90-dos-parameters.csv', colalign=('left', 'center', 'left')) }} `seedname.win` file keywords controlling the `dos` module. @@ -234,12 +170,7 @@ P for a physical value, L for a logical value and S for a text string. ### `kpath` Parameters -| Keyword | Type | Description | -| :-------------------------------: | :--: | :----------------------------------------------------------- | -| kpath | L | Calculate properties along a piecewise linear path in the BZ | -| kpath\_task | L | List of properties to evaluate | -| kpath\_num\_points | I | Number of points in the first kpath segment | -| kpath\_bands\_colour | S | Property used to colour the energy bands along the path | +{{ read_csv('docs/parameters/postw90-kpath-parameters.csv', colalign=('left', 'center', 'left')) }} `seedname.win` file keywords controlling the `kpath` module. @@ -250,16 +181,7 @@ P for a physical value, L for a logical value and S for a text string. ### `kslice` Parameters -| Keyword | Type | Description | -| :---------------------------------------: | :--: | :------------------------------------------------------------------------------------ | -| kslice | L | Calculate properties on a slice in the BZ | -| kslice\_task | S | List of properties to evaluate | -| kslice\_corner | R | Position of the corner of the slice | -| kslice\_b1 | R | First vector defining the slice | -| kslice\_b2 | R | Second vector defining the slice | -| kslice\_2dkmesh | I | Dimensions of the uniform interpolation \(k\)-mesh on the slice (one or two integers) | -| kslice\_fermi\_level | P | This parameter is not used anymore. Use fermi_energy instead. | -| kslice\_fermi\_lines\_colour | S | Property used to colour the Fermi lines | +{{ read_csv('docs/parameters/postw90-kslice-parameters.csv', colalign=('left', 'center', 'left')) }} `seedname.win` file keywords controlling the `kslice` module. Argument types @@ -269,21 +191,7 @@ value, L for a logical value and S for a text string. ### `gyrotropic` Parameters -| Keyword | Type | Description | -| :------------------------------------: | :--: | :---------------------------------------------------------------------------------------- | -| gyrotropic | L | Calculate gyrotropic quantities | -| gyrotropic\_task | L | List of properties to compute | -| \[gyrotropic\_\]kmesh | I | Dimensions of the uniform interpolation \(k\)-mesh (one or three integers) | -| \[gyrotropic\_\]kmesh\_spacing | R | Minimum spacing between \(k\) points in Å\(^{-1}\) | -| gyrotropic\_freq\_min | P | Lower limit of the frequency range for optical rotation (eV) | -| gyrotropic\_freq\_max | P | Upper limit of the frequency range for optical rotation (eV) | -| gyrotropic\_freq\_step | P | Step for increasing the optical frequency in the specified range | -| gyrotropic\_eigval\_max | P | Maximum energy eigenvalue included when evaluating the interband natural optical activity | -| gyrotropic\_degen\_thresh | P | threshold to exclude degenerate bands from the calculation | -| \[gyrotropic\_\]smr\_type | S | Analytical form used for the broadened delta function | -| \[gyrotropic\_\]smr\_fixed\_en\_width | P | Energy smearing (eV) | -| \[gyrotropic\_\]band\_list | I | list of bands used in the calculation | -| gyrotropic\_box\_center
gyrotropic\_box\_b1
gyrotropic\_box\_b2
gyrotropic\_box\_b3 | R
R
R
R | The center and three basis vectors, defining the box for integration (in reduced coordinates, three real numbers for each vector) | +{{ read_csv('docs/parameters/postw90-gyrotropic-parameters.csv', colalign=('left', 'center', 'left')) }} `seedname.win` file keywords controlling the `gyrotropic` module. @@ -294,34 +202,7 @@ value, L for a logical value and S for a text string. ### `BoltzWann` Parameters -| Keyword | Type | Description | -| :--------------------------------------------: | :--: | :------------------------------------------------------------------------- | -| boltzwann | L | Calculate Boltzmann transport coefficients | -| \[boltz\_\]kmesh | I | Dimensions of the uniform interpolation \(k\)-mesh (one or three integers) | -| \[boltz\_\]kmesh\_spacing | R | Minimum spacing between \(k\) points in Å\(^{-1}\) | -| boltz\_2d\_dir | S | Non-periodic direction (for 2D systems only) | -| boltz\_relax\_time | P | Relaxation time in fs | -| boltz\_mu\_min | P | Minimum value of the chemical potential \(\mu\) in eV | -| boltz\_mu\_max | P | Maximum value of the chemical potential \(\mu\) in eV | -| boltz\_mu\_step | R | Step for \(\mu\) in eV | -| boltz\_temp\_min | P | Minimum value of the temperature \(T\) in Kelvin | -| boltz\_temp\_max | P | Maximum value of the temperature \(T\) in Kelvin | -| boltz\_temp\_step | R | Step for \(T\) in Kelvin | -| boltz\_tdf\_energy\_step | R | Energy step for the TDF (eV) | -| boltz\_tdf\_smr\_fixed\_en\_width | P | Energy smearing for the TDF (eV) | -| boltz\_tdf\_smr\_type | S | Smearing type for the TDF | -| boltz\_calc\_also\_dos | L | Calculate also DOS while calculating the TDF | -| boltz\_dos\_energy\_min | P | Minimum value of the energy for the DOS in eV | -| boltz\_dos\_energy\_max | P | Maximum value of the energy for the DOS in eV | -| boltz\_dos\_energy\_step | R | Step for the DOS in eV | -| \[boltz\_\]smr\_type | S | Smearing type for the DOS | -| \[boltz\_\]adpt\_smr | L | Use adaptive smearing for the DOS | -| \[boltz\_\]adpt\_smr\_fac | R | Adaptive smearing prefactor | -| \[boltz\_\]adpt\_smr\_max | P | Maximum allowed value for the adaptive energy smearing (eV) | -| \[boltz\_\]fixed\_en\_width | P | Energy smearing (if non-adaptive) for the DOS (eV) | -| boltz\_bandshift | L | Rigid bandshift of the conduction bands | -| boltz\_bandshift\_firstband | I | Index of the first band to shift | -| boltz\_bandshift\_energyshift | P | Energy shift of the conduction bands (eV) | +{{ read_csv('docs/parameters/postw90-boltzwann-parameters.csv', colalign=('left', 'center', 'left')) }} `seedname.win` file keywords controlling the `BoltzWann` module (calculation of @@ -332,11 +213,7 @@ value, L for a logical value and S for a text string. ### `geninterp` Parameters -| Keyword | Type | Description | -| :----------------------------------: | :--: | :-------------------------------------------- | -| geninterp | L | Calculate bands for given set of \(k\) points | -| geninterp\_alsofirstder | L | Calculate also first derivatives | -| geninterp\_single\_file | L | Write a single file or one for each process | +{{ read_csv('docs/parameters/postw90-geninterp-parameters.csv', colalign=('left', 'center', 'left')) }} `seedname.win` file keywords controlling the Generic Band Interpolation diff --git a/docs/docs/user_guide/wannier90/parameters.md b/docs/docs/user_guide/wannier90/parameters.md index 6c4682bd..53ce5116 100644 --- a/docs/docs/user_guide/wannier90/parameters.md +++ b/docs/docs/user_guide/wannier90/parameters.md @@ -61,53 +61,19 @@ and the the `wannier90` Tutorial. ### System Parameters -| Keyword | Type | Description | -|:-----------------:|:----:|:---------------------------------------------------------------------------------| -| num_wann | I | Number of WF | -| num_bands | I | Number of bands passed to the code | -| unit_cell_cart | P | Unit cell vectors in Cartesian coordinates | -| atoms_cart \* | P | Positions of atoms in Cartesian coordinates | -| atoms_frac \* | R | Positions of atoms in fractional coordinates with respect to the lattice vectors | -| mp_grid | I | Dimensions of the Monkhorst-Pack grid of k-points | -| kpoints | R | List of k-points in the Monkhorst-Pack grid | -| gamma_only | L | Wavefunctions from underlying ab initio calculation are manifestly real | -| spinors | L | WF are spinors | -| shell_list | I | Which shells to use in finite difference formula | -| search_shells | I | The number of shells to search when determining finite difference formula | -| skip_B1_tests | L | Check the condition B1 of Ref [@marzari-prb97].  | -| nnkpts | I | Explicit list of nearest-neighbour k-points. | -| kmesh_tol | R | The tolerance to control if two kpoint belong to the same shell | -| higher_order_n | I | The order of higher-order finite difference to get b-vectors and weights | -| higher_order_nearest_shells | L | Use the b-vectors on the nearest shells | +{{ read_csv('docs/parameters/w90-system-parameters.csv', colalign=('left', 'center', 'left')) }} `seedname.win` file keywords defining the system. Argument types are represented by, I for a integer, R for a real number, P for a physical -value, L for a logical value and S for a text string. +value, L for a logical value and S for a text string. \* `atoms_cart` and `atoms_frac` may not both be defined in the same input file. ### Job Control Parameters -| Keyword | Type | Description | -|:--------------------:|:----:|:------------------------------------------------------------------------------------------------| -| postproc_setup | L | To output the `seedname.nnkp` file | -| exclude_bands | I | List of bands to exclude from the calculation | -| select_projections | I | List of projections to use in Wannierisation | -| auto_projections | L | To automatically generate initial projections | -| restart | S | Restart from checkpoint file | -| iprint | I | Output verbosity level | -| length_unit | S | System of units to output lengths | -| wvfn_formatted | L | Read the wavefunctions from a (un)formatted file | -| spin | S | Which spin channel to read | -| devel_flag | S | Flag for development use | -| timing_level | I | Determines amount of timing information written to output | -| optimisation | I | Optimisation level | -| translate_home_cell | L | To translate final Wannier centres to home unit cell when writing xyz file | -| write_xyz | L | To write atomic positions and final centres in xyz file format | -| write_vdw_data | L | To write data for futher processing by w90vdw utility | -| write_hr_diag | L | To write the diagonal elements of the Hamiltonian in the Wannier basis to `seedname.wout` (in eV) | +{{ read_csv('docs/parameters/w90-job-parameters.csv', colalign=('left', 'center', 'left')) }} `seedname.win` file keywords defining job control. Argument types are @@ -118,22 +84,7 @@ translate_home_cell only relevant if `write_xyz` is `.true.` ### Disentanglement Parameters -| Keyword | Type | Description | -|:--------------------------:|:----:|:-----------------------------------------------------------------------| -| dis_win_min | P | Bottom of the outer energy window | -| dis_win_max | P | Top of the outer energy window | -| dis_froz_min | P | Bottom of the inner (frozen) energy window | -| dis_froz_max | P | Top of the inner (frozen) energy window | -| dis_froz_proj | L | To activate projectability disentanglement | -| dis_proj_min | P | Lower threshold for projectability disentanglement | -| dis_proj_max | P | Upper threshold for projectability disentanglement | -| dis_num_iter | I | Number of iterations for the minimisation of $\Omega_{\mathrm{I}}$ | -| dis_mix_ratio | R | Mixing ratio during the minimisation of $\Omega_{\mathrm{I}}$ | -| dis_conv_tol | R | The convergence tolerance for finding $\Omega_{\mathrm{I}}$ | -| dis_conv_window | I | The number of iterations over which convergence of $\Omega_{\mathrm{I}}$ is assessed. | -| dis_spheres_num | I | Number of spheres in k-space where disentaglement is performed | -| dis_spheres_first_wann | I | Index of the first band to be considered a Wannier function | -| dis_spheres | R | List of centres and radii, for disentanglement only in spheres | +{{ read_csv('docs/parameters/w90-disentanglement-parameters.csv', colalign=('left', 'center', 'left')) }} `seedname.win` file keywords controlling the disentanglement. Argument @@ -143,30 +94,7 @@ physical value, L for a logical value and S for a text string. ### Wannierise Parameters -| Keyword | Type | Description | -|:---------------------:|:----:|:-----------------------------------------------------------------------------------------------------------------| -| num_iter | I | Number of iterations for the minimisation of $\Omega$ | -| num_cg_steps | I | During the minimisation of $\Omega$ the number of Conjugate Gradient steps before resetting to Steepest Descents | -| conv_window | I | The number of iterations over which convergence of $\Omega$ is assessed | -| conv_tol | P | The convergence tolerance for finding $\Omega$ | -| precond | L | Use preconditioning | -| conv_noise_amp | R | The amplitude of random noise applied towards end of minimisation procedure | -| conv_noise_num | I | The number of times random noise is applied | -| num_dump_cycles | I | Control frequency of check-pointing | -| num_print_cycles | I | Control frequency of printing | -| write_r2mn | L | Write matrix elements of $r^2$ between WF to file | -| guiding_centres | L | Use guiding centres | -| num_guide_cycles | I | Frequency of guiding centres | -| num_no_guide_iter | I | The number of iterations after which guiding centres are used | -| trial_step \* | R | The trial step length for the parabolic line search during the minimisation of $\Omega$ | -| fixed_step \* | R | The fixed step length to take during the minimisation of $\Omega$, instead of doing a parabolic line search | -| use_bloch_phases \*\* | L | To use phases for initial projections | -| site_symmetry\*\*\* | L | To construct symmetry-adapted Wannier functions | -| symmetrize_eps\*\*\* | R | The convergence tolerance used in the symmetry-adapted mode | -| slwf_num | I | The number of objective WFs for selective localization | -| slwf_constrain | L | Whether to constrain the centres of the objective WFs | -| slwf_lambda | R | Value of the Lagrange multiplier for constraining the objective WFs | -| slwf_centres | P | The centres to which the objective WFs are to be constrained | +{{ read_csv('docs/parameters/w90-wannierise-parameters.csv', colalign=('left', 'center', 'left')) }} `seedname.win` file keywords controlling the wannierisation. Argument @@ -180,44 +108,7 @@ window. ### Plot Parameters -| Keyword | Type | Description | -|:--------------------------:|:----:|:-------------------------------------------------------------| -| wannier_plot | L | Plot the WF | -| wannier_plot_list | I | List of WF to plot | -| wannier_plot_supercell | I | Size of the supercell for plotting the WF | -| wannier_plot_format | S | File format in which to plot the WF | -| wannier_plot_mode | S | Mode in which to plot the WF, molecule or crystal | -| wannier_plot_radius | R | Cut-off radius of WF\* | -| wannier_plot_scale | R | Scaling parameter for cube files | -| wannier_plot_spinor_mode | S | Quantity to plot for spinor WF | -| wannier_plot_spinor_phase | L | Include the “phase” when plotting spinor WF | -| bands_plot | L | Plot interpolated band structure | -| kpoint_path | P | K-point path for the interpolated band structure | -| bands_num_points | I | Number of points along the first section of the k-point path | -| bands_plot_format | S | File format in which to plot the interpolated bands | -| bands_plot_project | I | WF to project the band structure onto | -| bands_plot_mode | S | Slater-Koster type interpolation or Hamiltonian cut-off | -| bands_plot_dim | I | Dimension of the system | -| fermi_surface_plot | L | Plot the Fermi surface | -| fermi_surface_num_points | I | Number of points in the Fermi surface plot | -| fermi_energy | P | The Fermi energy | -| fermi_energy_min | P | Lower limit of the Fermi energy range | -| fermi_energy_max | P | Upper limit of the Fermi energy range | -| fermi_energy_step | R | Step for increasing the Fermi energy in the specified range | -| fermi_surface_plot_format | S | File format for the Fermi surface plot | -| hr_plot | L | This parameter is not used anymore. Use write_hr instead. | -| write_hr | L | Write the Hamiltonian in the WF basis | -| write_rmn | L | Write the position operator in the WF basis | -| write_bvec | L | Write to file the matrix elements of the bvectors and their weights | -| write_tb | L | Write lattice vectors, Hamiltonian, and position operator in WF basis | -| hr_cutoff | P | Cut-off for the absolute value of the Hamiltonian | -| dist_cutoff | P | Cut-off for the distance between WF | -| dist_cutoff_mode | S | Dimension in which the distance between WF is calculated | -| translation_centre_frac | R | Centre of the unit cell to which final WF are translated | -| use_ws_distance | L | Improve interpolation using minimum distance between WFs, see Chap. [Some notes on the interpolation](notes_interpolations.md)| -| ws_distance_tol | R | Absolute tolerance for the distance to equivalent positions. | -| ws_search_size | I | Maximum extension in each direction of the super-cell of the Born-von Karmann cell to search for points inside the Wigner-Seitz cell | -| write_u_matrices | L | Write $U^{(\bm{k})}$ and $U^{dis(\bm{k})}$ matrices to files | +{{ read_csv('docs/parameters/w90-plot-parameters.csv', colalign=('left', 'center', 'left')) }} `seedname.win` file keywords controlling the plotting. Argument types @@ -228,32 +119,7 @@ applies when `wannier_plot_format` is `cube`. ### Transport Parameters -| Keyword | Type | Description | -|:------------------------:|:----:|:----------------------------------------------------------| -| transport | L | Calculate quantum conductance and density of states | -| transport_mode | S | Bulk or left-lead_conductor_right-lead calculation | -| tran_win_min | P | Bottom of the energy window for transport calculation | -| tran_win_max | P | Top of the energy window for transport calculation | -| tran_energy_step | R | Sampling interval of the energy values | -| fermi_energy | R | The Fermi energy | -| tran_num_bb | I | Size of a bulk Hamiltonian | -| tran_num_ll | I | Size of a left-lead Hamiltonian | -| tran_num_rr | I | Size of a right-lead Hamiltonian | -| tran_num_cc | I | Size of a conductor Hamiltonian | -| tran_num_lc | I | Number of columns in a left-lead_conductor Hamiltonian | -| tran_num_cr | I | Number of rows in a conductor_right-lead Hamiltonian | -| tran_num_cell_ll | I | Number of unit cells in PL of left lead | -| tran_num_cell_rr | I | Number of unit cells in PL of right lead | -| tran_num_bandc | I | Half-bandwidth+1 of a band-diagonal conductor Hamiltonian | -| tran_write_ht | L | Write the Hamiltonian for transport calculation | -| tran_read_ht | L | Read the Hamiltonian for transport calculation | -| tran_use_same_lead | L | Left and right leads are the same | -| tran_group_threshold | R | Distance that determines the grouping of WFs | -| hr_cutoff | P | Cut-off for the absolute value of the Hamiltonian | -| dist_cutoff | P | Cut-off for the distance between WF | -| dist_cutoff_mode | S | Dimension in which the distance between WF is calculated | -| one_dim_axis | S | Extended direction for a one-dimensional system | -| translation_centre_frac | R | Centre of the unit cell to which final WF are translated | +{{ read_csv('docs/parameters/w90-transport-parameters.csv', colalign=('left', 'center', 'left')) }} `seedname.win` file keywords controlling transport. Argument types are @@ -520,8 +386,8 @@ first-principles code. ```vi title="Input file" begin projections -. -. +. +. end projections ``` @@ -1670,7 +1536,7 @@ provided, the number of repetitions along the $i-$th linear dimension is `ws_search_size(i)`. The variable is used both in `hamiltonian.F90` and in `ws_distance.F90`. In the latter case, its value is incremented by one in order to account for WFs whose centre wanders away from the -original reference unit cell. +original reference unit cell. The default value is generally sufficient, but might need to be increased in case of elongated cells. diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index a0b6ef02..0c48503b 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -201,6 +201,7 @@ plugins: branch: develop token: !ENV ["GITHUB_TOKEN"] - search + - table-reader - glightbox - bibtex: # `bib_file` takes precedence over `bib_dir`, if `bib_file` is defined, diff --git a/docs/requirements.txt b/docs/requirements.txt index 71a53c92..43fb508d 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -5,3 +5,4 @@ mkdocs-git-revision-date-localized-plugin==1.2.6 mkdocs-git-committers-plugin-2==2.3.0 mkdocs-bibtex==2.16.0 mkdocs-glightbox==0.4.0 +mkdocs-table-reader-plugin==2.2.1 From 572f9430cfa3704cc1f4bb2236ca8c1fa1eee063 Mon Sep 17 00:00:00 2001 From: Jamal Mustafa Date: Wed, 8 May 2024 20:49:12 -0700 Subject: [PATCH 2/9] create XML file with all the parameters - script to generate XML file from existing CSV files - script to reconstruct CSV files from XML file --- .../parameters/generate-parameter-tables.py | 42 + docs/docs/parameters/parameters-csv2xml.py | 63 + docs/docs/parameters/parameters.xml | 1202 +++++++++++++++++ 3 files changed, 1307 insertions(+) create mode 100644 docs/docs/parameters/generate-parameter-tables.py create mode 100644 docs/docs/parameters/parameters-csv2xml.py create mode 100644 docs/docs/parameters/parameters.xml diff --git a/docs/docs/parameters/generate-parameter-tables.py b/docs/docs/parameters/generate-parameter-tables.py new file mode 100644 index 00000000..8e74027d --- /dev/null +++ b/docs/docs/parameters/generate-parameter-tables.py @@ -0,0 +1,42 @@ +import xml.etree.ElementTree as ET + + +groups = { + 'w90': [ + 'disentanglement', + 'job', + 'plot', + 'system', + 'transport', + 'wannierise', + ], + 'postw90': [ + 'berry', + 'boltzwann', + 'dos', + 'geninterp', + 'global', + 'gyrotropic', + 'kpath', + 'kslice', + ], +} + +tree = ET.parse('parameters.xml') +root = tree.getroot() + +for tool in ['w90', 'postw90']: + for group in groups[tool]: + parameters = root.findall(f'./parameter[@tool="{tool}"][@group="{group}"]') + with open(f'{tool}-{group}-parameters.csv', 'w') as fp: + print('Keyword,Type,Description', file=fp) + for parameter in parameters: + name = parameter.find('name') + type = parameter.find('type') + description = parameter.find('description') + if 'optional_prefix' in name.attrib: + print(f'[{name.attrib["optional_prefix"]}]{name.text},', end='', file=fp) + else: + print(f'{name.text},', end='', file=fp) + print(f'{type.text},', end='', file=fp) + print(f'"{description.text}"', file=fp) diff --git a/docs/docs/parameters/parameters-csv2xml.py b/docs/docs/parameters/parameters-csv2xml.py new file mode 100644 index 00000000..1ecd63b0 --- /dev/null +++ b/docs/docs/parameters/parameters-csv2xml.py @@ -0,0 +1,63 @@ +import re +import xml.etree.ElementTree as ET + +import pandas as pd + + +csv_files = [ + 'w90-system-parameters.csv', + 'w90-job-parameters.csv', + 'w90-disentanglement-parameters.csv', + 'w90-wannierise-parameters.csv', + 'w90-plot-parameters.csv', + 'w90-transport-parameters.csv', + 'postw90-global-parameters.csv', + 'postw90-berry-parameters.csv', + 'postw90-dos-parameters.csv', + 'postw90-kpath-parameters.csv', + 'postw90-kslice-parameters.csv', + 'postw90-gyrotropic-parameters.csv', + 'postw90-boltzwann-parameters.csv', + 'postw90-geninterp-parameters.csv', +] + +root = ET.Element('root') +tree = ET.ElementTree(root) + +pattern = re.compile(r'(?P.+)-(?P.+)-parameters.csv') + +for csv_file in csv_files: + match1 = pattern.match(csv_file) + + table = pd.read_csv( + csv_file, + header=0, + names=('keyword', 'type', 'description'), + converters={'keyword': str.strip, 'type': str.strip, 'description': str.strip} + ) + + for row in table.itertuples(): + parameter = ET.SubElement(root, 'parameter') + parameter.set('tool', match1['tool']) + parameter.set('group', match1['group']) + # tool = ET.SubElement(parameter, 'tool') + # group = ET.SubElement(parameter, 'group') + name = ET.SubElement(parameter, 'name') + # optional_prefix = ET.SubElement(parameter, 'optional_prefix') + type = ET.SubElement(parameter, 'type') + description = ET.SubElement(parameter, 'description') + + if (match2 := re.compile(r'^\[(?P.+_)\]').match(row.keyword)) is not None: + name.text = row.keyword.replace(f'[{match2["prefix"]}]', '') + # optional_prefix.text = match2['prefix'] + name.set('optional_prefix', match2['prefix']) + else: + name.text = row.keyword + # tool.text = match1['tool'] + # group.text = match1['group'] + type.text = row.type + description.text = row.description + +ET.indent(tree) +with open('parameters.xml', 'wb') as fp: + tree.write(fp) diff --git a/docs/docs/parameters/parameters.xml b/docs/docs/parameters/parameters.xml new file mode 100644 index 00000000..9b48032e --- /dev/null +++ b/docs/docs/parameters/parameters.xml @@ -0,0 +1,1202 @@ + + + num_wann + I + Number of WF + + + num_bands + I + Number of bands passed to the code + + + unit_cell_cart + P + Unit cell vectors in Cartesian coordinates + + + atoms_cart \* + P + Positions of atoms in Cartesian coordinates + + + atoms_frac \* + R + Positions of atoms in fractional coordinates with respect to the lattice vectors + + + mp_grid + I + Dimensions of the Monkhorst-Pack grid of k-points + + + kpoints + R + List of k-points in the Monkhorst-Pack grid + + + gamma_only + L + Wavefunctions from underlying ab initio calculation are manifestly real + + + spinors + L + WF are spinors + + + shell_list + I + Which shells to use in finite difference formula + + + search_shells + I + The number of shells to search when determining finite difference formula + + + skip_B1_tests + L + Check the condition B1 of Ref [@marzari-prb97] + + + nnkpts + I + Explicit list of nearest-neighbour k-points + + + kmesh_tol + R + The tolerance to control if two kpoint belong to the same shell + + + postproc_setup + L + To output the `seedname.nnkp` file + + + exclude_bands + I + List of bands to exclude from the calculation + + + select_projections + I + List of projections to use in Wannierisation + + + auto_projections + L + To automatically generate initial projections + + + restart + S + Restart from checkpoint file + + + iprint + I + Output verbosity level + + + length_unit + S + System of units to output lengths + + + wvfn_formatted + L + Read the wavefunctions from a (un)formatted file + + + spin + S + Which spin channel to read + + + devel_flag + S + Flag for development use + + + timing_level + I + Determines amount of timing information written to output + + + optimisation + I + Optimisation level + + + translate_home_cell + L + To translate final Wannier centres to home unit cell when writing xyz file + + + write_xyz + L + To write atomic positions and final centres in xyz file format + + + write_vdw_data + L + To write data for futher processing by w90vdw utility + + + write_hr_diag + L + To write the diagonal elements of the Hamiltonian in the Wannier basis to `seedname.wout` (in eV) + + + dis_win_min + P + Bottom of the outer energy window + + + dis_win_max + P + Top of the outer energy window + + + dis_froz_min + P + Bottom of the inner (frozen) energy window + + + dis_froz_max + P + Top of the inner (frozen) energy window + + + dis_num_iter + I + Number of iterations for the minimisation of $\\Omega_{\\mathrm{I}}$ + + + dis_mix_ratio + R + Mixing ratio during the minimisation of $\\Omega_{\\mathrm{I}}$ + + + dis_conv_tol + R + The convergence tolerance for finding $\\Omega_{\\mathrm{I}}$ + + + dis_conv_window + I + The number of iterations over which convergence of $\\Omega_{\\mathrm{I}}$ is assessed. + + + dis_spheres_num + I + Number of spheres in k-space where disentaglement is performed + + + dis_spheres_first_wann + I + Index of the first band to be considered a Wannier function + + + dis_spheres + R + List of centres and radii, for disentanglement only in spheres + + + num_iter + I + Number of iterations for the minimisation of $\\Omega$ + + + num_cg_steps + I + During the minimisation of $\\Omega$ the number of Conjugate Gradient steps before resetting to Steepest Descents + + + conv_window + I + The number of iterations over which convergence of $\\Omega$ is assessed + + + conv_tol + P + The convergence tolerance for finding $\\Omega$ + + + precond + L + Use preconditioning + + + conv_noise_amp + R + The amplitude of random noise applied towards end of minimisation procedure + + + conv_noise_num + I + The number of times random noise is applied + + + num_dump_cycles + I + Control frequency of check-pointing + + + num_print_cycles + I + Control frequency of printing + + + write_r2mn + L + Write matrix elements of $r^2$ between WF to file + + + guiding_centres + L + Use guiding centres + + + num_guide_cycles + I + Frequency of guiding centres + + + num_no_guide_iter + I + The number of iterations after which guiding centres are used + + + trial_step \* + R + The trial step length for the parabolic line search during the minimisation of $\\Omega$ + + + fixed_step \* + R + The fixed step length to take during the minimisation of $\\Omega$, instead of doing a parabolic line search + + + use_bloch_phases \*\* + L + To use phases for initial projections + + + site_symmetry\*\*\* + L + To construct symmetry-adapted Wannier functions + + + symmetrize_eps\*\*\* + R + The convergence tolerance used in the symmetry-adapted mode + + + slwf_num + I + The number of objective WFs for selective localization + + + slwf_constrain + L + Whether to constrain the centres of the objective WFs + + + slwf_lambda + R + Value of the Lagrange multiplier for constraining the objective WFs + + + slwf_centres + P + The centres to which the objective WFs are to be constrained + + + wannier_plot + L + Plot the WF + + + wannier_plot_list + I + List of WF to plot + + + wannier_plot_supercell + I + Size of the supercell for plotting the WF + + + wannier_plot_format + S + File format in which to plot the WF + + + wannier_plot_mode + S + Mode in which to plot the WF, molecule or crystal + + + wannier_plot_radius + R + Cut-off radius of WF\* + + + wannier_plot_scale + R + Scaling parameter for cube files + + + wannier_plot_spinor_mode + S + Quantity to plot for spinor WF + + + wannier_plot_spinor_phase + L + Include the “phase” when plotting spinor WF + + + bands_plot + L + Plot interpolated band structure + + + kpoint_path + P + K-point path for the interpolated band structure + + + bands_num_points + I + Number of points along the first section of the k-point path + + + bands_plot_format + S + File format in which to plot the interpolated bands + + + bands_plot_project + I + WF to project the band structure onto + + + bands_plot_mode + S + Slater-Koster type interpolation or Hamiltonian cut-off + + + bands_plot_dim + I + Dimension of the system + + + fermi_surface_plot + L + Plot the Fermi surface + + + fermi_surface_num_points + I + Number of points in the Fermi surface plot + + + fermi_energy + P + The Fermi energy + + + fermi_energy_min + P + Lower limit of the Fermi energy range + + + fermi_energy_max + P + Upper limit of the Fermi energy range + + + fermi_energy_step + R + Step for increasing the Fermi energy in the specified range + + + fermi_surface_plot_format + S + File format for the Fermi surface plot + + + hr_plot + L + This parameter is not used anymore. Use write_hr instead. + + + write_hr + L + Write the Hamiltonian in the WF basis + + + write_rmn + L + Write the position operator in the WF basis + + + write_bvec + L + Write to file the matrix elements of the bvectors and their weights + + + write_tb + L + Write lattice vectors, Hamiltonian, and position operator in WF basis + + + hr_cutoff + P + Cut-off for the absolute value of the Hamiltonian + + + dist_cutoff + P + Cut-off for the distance between WF + + + dist_cutoff_mode + S + Dimension in which the distance between WF is calculated + + + translation_centre_frac + R + Centre of the unit cell to which final WF are translated + + + use_ws_distance + L + Improve interpolation using minimum distance between WFs, see Chap. [Some notes on the interpolation](notes_interpolations.md) + + + ws_distance_tol + R + Absolute tolerance for the distance to equivalent positions. + + + ws_search_size + I + Maximum extension in each direction of the super-cell of the Born-von Karmann cell to search for points inside the Wigner-Seitz cell + + + write_u_matrices + L + Write $U^{(\\bm{k})}$ and $U^{dis(\\bm{k})}$ matrices to files + + + transport + L + Calculate quantum conductance and density of states + + + transport_mode + S + Bulk or left-lead_conductor_right-lead calculation + + + tran_win_min + P + Bottom of the energy window for transport calculation + + + tran_win_max + P + Top of the energy window for transport calculation + + + tran_energy_step + R + Sampling interval of the energy values + + + fermi_energy + R + The Fermi energy + + + tran_num_bb + I + Size of a bulk Hamiltonian + + + tran_num_ll + I + Size of a left-lead Hamiltonian + + + tran_num_rr + I + Size of a right-lead Hamiltonian + + + tran_num_cc + I + Size of a conductor Hamiltonian + + + tran_num_lc + I + Number of columns in a left-lead_conductor Hamiltonian + + + tran_num_cr + I + Number of rows in a conductor_right-lead Hamiltonian + + + tran_num_cell_ll + I + Number of unit cells in PL of left lead + + + tran_num_cell_rr + I + Number of unit cells in PL of right lead + + + tran_num_bandc + I + Half-bandwidth+1 of a band-diagonal conductor Hamiltonian + + + tran_write_ht + L + Write the Hamiltonian for transport calculation + + + tran_read_ht + L + Read the Hamiltonian for transport calculation + + + tran_use_same_lead + L + Left and right leads are the same + + + tran_group_threshold + R + Distance that determines the grouping of WFs + + + hr_cutoff + P + Cut-off for the absolute value of the Hamiltonian + + + dist_cutoff + P + Cut-off for the distance between WF + + + dist_cutoff_mode + S + Dimension in which the distance between WF is calculated + + + one_dim_axis + S + Extended direction for a one-dimensional system + + + translation_centre_frac + R + Centre of the unit cell to which final WF are translated + + + kmesh + I + Dimensions of the uniform interpolation \\(k\\)-mesh (one or three integers) + + + kmesh_spacing + R + Minimum spacing between \\(k\\) points in Å\\(^{-1}\\) + + + adpt_smr + L + Use adaptive smearing + + + adpt_smr_fac + R + Adaptive smearing prefactor + + + adpt_smr_max + P + Maximum allowed value for the adaptive energy smearing (eV) + + + smr_type + S + Analytical form used for the broadened delta function + + + smr_fixed_en_width + P + Energy smearing (if non-adaptive) + + + num_elec_per_state + I + Number of electrons per state + + + scissors_shift + P + Scissors shift applied to the conduction bands (eV) (deprecated) + + + num_valence_bands + I + Number of valence bands + + + spin_decomp + L + Decompose various properties into up-spin, down-spin, and possibly spin-flip parts + + + spin_axis_polar + P + Polar angle of the spin quantization axis (deg) + + + spin_axis_azimuth + P + Azimuthal angle of the spin quantization axis (deg) + + + spin_moment\\(^*\\) + L + Determines whether to evaluate the spin magnetic moment per cell + + + uHu_formatted + L + Read a formatted `seedname.uHu` file + + + spn_formatted + L + Read a formatted `seedname.spn` file + + + berry_curv_unit + S + Unit of Berry curvature + + + berry + L + Calculate Berry-type quantities + + + berry_task + S + List of properties to compute + + + kmesh + I + Dimensions of the uniform interpolation \\(k\\)-mesh (one or three integers) + + + kmesh_spacing + R + Minimum spacing between \\(k\\) points in Å\\(^{-1}\\) + + + berry_curv_adpt_kmesh + I + Linear dimension of the adaptively refined \\(k\\)-mesh used to compute the anomalous/spin Hall conductivity + + + berry_curv_adpt_kmesh_thresh + P + Threshold magnitude of the Berry curvature for adaptive refinement + + + kubo_freq_min + P + Lower limit of the frequency range for optical spectra, JDOS, shift current and spin Hall conductivity (eV) + + + kubo_freq_max + P + Upper limit of the frequency range for optical spectra, JDOS, shift current and spin Hall conductivity (eV) + + + kubo_freq_step + R + Step for increasing the optical frequency in the specified range + + + kubo_eigval_max + P + Maximum energy eigenvalue included when evaluating the Kubo-Greenwood conductivity, JDOS, shift current and spin Hall conductivity + + + adpt_smr + L + Use adaptive energy smearing for the optical conductivity, JDOS, shift current and spin Hall conductivity + + + adpt_smr_fac + R + Adaptive smearing prefactor + + + adpt_smr_max + P + Maximum allowed value for the adaptive energy smearing (eV) + + + smr_type + S + Analytical form used for the broadened delta function when computing the optical conductivity, JDOS, shift current and spin Hall conductivity + + + smr_fixed_en_width + P + Energy smearing (if non-adaptive) for the optical conductivity, JDOS, shift current and spin Hall conductivity (eV) + + + sc_eta + R + Energy broadening of energy differences in the sum over virtual states when computing shift current + + + sc_phase_conv + I + Convention for phase factor of Bloch states when computing shift current + + + sc_w_thr + R + Frequency threshold for speeding up delta function integration when computing shift current + + + sc_use_eta_corr + L + Use finite-eta correction for computing shift current + + + shc_freq_scan + L + Calculate Fermi energy scan or frequency scan of spin Hall conductivity + + + shc_method + S + How to obtain the spin current matrix elements for SHC + + + shc_alpha + I + The spin current direction of spin Hall conductivity + + + shc_beta + I + The direction of applied electrical field of spin Hall conductivity + + + shc_gamma + I + The spin direction of the spin current of spin Hall conductivity + + + shc_bandshift + L + Rigid bandshift of the conduction bands + + + shc_bandshift_firstband + I + Index of the first band to shift + + + shc_bandshift_energyshift + P + Energy shift of the conduction bands (eV) + + + kdotp_kpoint + R + \\(k\\) point for \\(k\\cdot p\\) expansion (\\(2\\pi/a\\), with \\(a\\) lattice constant in Å) + + + kdotp_num_bands + I + Number of bands for \\(k\\cdot p\\) expansion + + + kdotp_bands + I + Band indexes corresponding to the \\(k\\cdot p\\) bands + + + dos + L + Calculate the density of states and related properties + + + dos_task + S + List of properties to compute + + + dos_energy_min + P + Lower limit of the energy range for computing the DOS (eV) + + + dos_energy_max + P + Upper limit of the energy range for computing the DOS (eV) + + + dos_energy_step + R + Step for increasing the energy in the specified range (eV) + + + dos_project + I + List of WFs onto which the DOS is projected + + + kmesh + I + Dimensions of the uniform interpolation \\(k\\)-mesh (one or three integers) + + + kmesh_spacing + R + Minimum spacing between \\(k\\) points in Å\\(^{-1}\\) + + + adpt_smr + L + Use adaptive smearing for the DOS + + + adpt_smr_fac + R + Adaptive smearing prefactor + + + adpt_smr_max + P + Maximum allowed value for the adaptive energy smearing (eV) + + + smr_fixed_en_width + P + Energy smearing (if non-adaptive) for the DOS (eV) + + + smr_type + S + Analytical form used for the broadened delta function when computing the DOS + + + kpath + L + Calculate properties along a piecewise linear path in the BZ + + + kpath_task + L + List of properties to evaluate + + + kpath_num_points + I + Number of points in the first kpath segment + + + kpath_bands_colour + S + Property used to colour the energy bands along the path + + + kslice + L + Calculate properties on a slice in the BZ + + + kslice_task + S + List of properties to evaluate + + + kslice_corner + R + Position of the corner of the slice + + + kslice_b1 + R + First vector defining the slice + + + kslice_b2 + R + Second vector defining the slice + + + kslice_2dkmesh + I + Dimensions of the uniform interpolation \\(k\\)-mesh on the slice (one or two integers) + + + kslice_fermi_level + P + This parameter is not used anymore. Use fermi_energy instead + + + kslice_fermi_lines_colour + S + Property used to colour the Fermi lines + + + gyrotropic + L + Calculate gyrotropic quantities + + + gyrotropic_task + L + List of properties to compute + + + kmesh + I + Dimensions of the uniform interpolation \\(k\\)-mesh (one or three integers) + + + kmesh_spacing + R + Minimum spacing between \\(k\\) points in Å\\(^{-1}\\) + + + gyrotropic_freq_min + P + Lower limit of the frequency range for optical rotation (eV) + + + gyrotropic_freq_max + P + Upper limit of the frequency range for optical rotation (eV) + + + gyrotropic_freq_step + P + Step for increasing the optical frequency in the specified range + + + gyrotropic_eigval_max + P + Maximum energy eigenvalue included when evaluating the interband natural optical activity + + + gyrotropic_degen_thresh + P + threshold to exclude degenerate bands from the calculation + + + smr_type + S + Analytical form used for the broadened delta function + + + smr_fixed_en_width + P + Energy smearing (eV) + + + band_list + I + list of bands used in the calculation + + + gyrotropic_box_center + R + Center of the integration box, defined (in reduced coordinates) by three real numbers + + + gyrotropic_box_b1 + R + First basis vector, defined (in reduced coordinates) by three real numbers + + + gyrotropic_box_b2 + R + Second basis vector, defined (in reduced coordinates) by three real numbers + + + gyrotropic_box_b3 + R + Third basis vector, defined (in reduced coordinates) by three real numbers + + + boltzwann + L + Calculate Boltzmann transport coefficients + + + kmesh + I + Dimensions of the uniform interpolation \\(k\\)-mesh (one or three integers) + + + kmesh_spacing + R + Minimum spacing between \\(k\\) points in Å\\(^{-1}\\) + + + boltz_2d_dir + S + Non-periodic direction (for 2D systems only) + + + boltz_relax_time + P + Relaxation time in fs + + + boltz_mu_min + P + Minimum value of the chemical potential \\(\\mu\\) in eV + + + boltz_mu_max + P + Maximum value of the chemical potential \\(\\mu\\) in eV + + + boltz_mu_step + R + Step for \\(\\mu\\) in eV + + + boltz_temp_min + P + Minimum value of the temperature \\(T\\) in Kelvin + + + boltz_temp_max + P + Maximum value of the temperature \\(T\\) in Kelvin + + + boltz_temp_step + R + Step for \\(T\\) in Kelvin + + + boltz_tdf_energy_step + R + Energy step for the TDF (eV) + + + boltz_tdf_smr_fixed_en_width + P + Energy smearing for the TDF (eV) + + + boltz_tdf_smr_type + S + Smearing type for the TDF + + + boltz_calc_also_dos + L + Calculate also DOS while calculating the TDF + + + boltz_dos_energy_min + P + Minimum value of the energy for the DOS in eV + + + boltz_dos_energy_max + P + Maximum value of the energy for the DOS in eV + + + boltz_dos_energy_step + R + Step for the DOS in eV + + + smr_type + S + Smearing type for the DOS + + + adpt_smr + L + Use adaptive smearing for the DOS + + + adpt_smr_fac + R + Adaptive smearing prefactor + + + adpt_smr_max + P + Maximum allowed value for the adaptive energy smearing (eV) + + + fixed_en_width + P + Energy smearing (if non-adaptive) for the DOS (eV) + + + boltz_bandshift + L + Rigid bandshift of the conduction bands + + + boltz_bandshift_firstband + I + Index of the first band to shift + + + boltz_bandshift_energyshift + P + Energy shift of the conduction bands (eV) + + + geninterp + L + Calculate bands for given set of \\(k\\) points + + + geninterp_alsofirstder + L + Calculate also first derivatives + + + geninterp_single_file + L + Write a single file or one for each process + + \ No newline at end of file From e27add387ca4a7f1e98a2f25fc1c1e50a3261dc9 Mon Sep 17 00:00:00 2001 From: Jamal Mustafa Date: Sun, 26 May 2024 13:05:37 -0700 Subject: [PATCH 3/9] remove obsolete `parameters-csv2xml.py` --- docs/docs/parameters/parameters-csv2xml.py | 63 ---------------------- 1 file changed, 63 deletions(-) delete mode 100644 docs/docs/parameters/parameters-csv2xml.py diff --git a/docs/docs/parameters/parameters-csv2xml.py b/docs/docs/parameters/parameters-csv2xml.py deleted file mode 100644 index 1ecd63b0..00000000 --- a/docs/docs/parameters/parameters-csv2xml.py +++ /dev/null @@ -1,63 +0,0 @@ -import re -import xml.etree.ElementTree as ET - -import pandas as pd - - -csv_files = [ - 'w90-system-parameters.csv', - 'w90-job-parameters.csv', - 'w90-disentanglement-parameters.csv', - 'w90-wannierise-parameters.csv', - 'w90-plot-parameters.csv', - 'w90-transport-parameters.csv', - 'postw90-global-parameters.csv', - 'postw90-berry-parameters.csv', - 'postw90-dos-parameters.csv', - 'postw90-kpath-parameters.csv', - 'postw90-kslice-parameters.csv', - 'postw90-gyrotropic-parameters.csv', - 'postw90-boltzwann-parameters.csv', - 'postw90-geninterp-parameters.csv', -] - -root = ET.Element('root') -tree = ET.ElementTree(root) - -pattern = re.compile(r'(?P.+)-(?P.+)-parameters.csv') - -for csv_file in csv_files: - match1 = pattern.match(csv_file) - - table = pd.read_csv( - csv_file, - header=0, - names=('keyword', 'type', 'description'), - converters={'keyword': str.strip, 'type': str.strip, 'description': str.strip} - ) - - for row in table.itertuples(): - parameter = ET.SubElement(root, 'parameter') - parameter.set('tool', match1['tool']) - parameter.set('group', match1['group']) - # tool = ET.SubElement(parameter, 'tool') - # group = ET.SubElement(parameter, 'group') - name = ET.SubElement(parameter, 'name') - # optional_prefix = ET.SubElement(parameter, 'optional_prefix') - type = ET.SubElement(parameter, 'type') - description = ET.SubElement(parameter, 'description') - - if (match2 := re.compile(r'^\[(?P.+_)\]').match(row.keyword)) is not None: - name.text = row.keyword.replace(f'[{match2["prefix"]}]', '') - # optional_prefix.text = match2['prefix'] - name.set('optional_prefix', match2['prefix']) - else: - name.text = row.keyword - # tool.text = match1['tool'] - # group.text = match1['group'] - type.text = row.type - description.text = row.description - -ET.indent(tree) -with open('parameters.xml', 'wb') as fp: - tree.write(fp) From 3727d4237ca9f8d0db65d567c7854b8ef43a6b21 Mon Sep 17 00:00:00 2001 From: Jamal Mustafa Date: Sun, 12 May 2024 13:39:46 -0700 Subject: [PATCH 4/9] add parameter notes as a separate field --- docs/docs/parameters/parameters.xml | 29 ++++++++++++------- .../parameters/postw90-global-parameters.csv | 2 +- docs/docs/parameters/w90-plot-parameters.csv | 2 +- .../docs/parameters/w90-system-parameters.csv | 4 +-- .../parameters/w90-wannierise-parameters.csv | 10 +++---- 5 files changed, 28 insertions(+), 19 deletions(-) diff --git a/docs/docs/parameters/parameters.xml b/docs/docs/parameters/parameters.xml index 9b48032e..c501770c 100644 --- a/docs/docs/parameters/parameters.xml +++ b/docs/docs/parameters/parameters.xml @@ -15,14 +15,16 @@ Unit cell vectors in Cartesian coordinates - atoms_cart \* + atoms_cart P Positions of atoms in Cartesian coordinates + * - atoms_frac \* + atoms_frac R Positions of atoms in fractional coordinates with respect to the lattice vectors + * mp_grid @@ -270,29 +272,34 @@ The number of iterations after which guiding centres are used - trial_step \* + trial_step R The trial step length for the parabolic line search during the minimisation of $\\Omega$ + * - fixed_step \* + fixed_step R The fixed step length to take during the minimisation of $\\Omega$, instead of doing a parabolic line search + * - use_bloch_phases \*\* + use_bloch_phases L To use phases for initial projections + ** - site_symmetry\*\*\* + site_symmetry L To construct symmetry-adapted Wannier functions + *** - symmetrize_eps\*\*\* + symmetrize_eps R The convergence tolerance used in the symmetry-adapted mode + *** slwf_num @@ -342,7 +349,8 @@ wannier_plot_radius R - Cut-off radius of WF\* + Cut-off radius of WF + * wannier_plot_scale @@ -680,9 +688,10 @@ Azimuthal angle of the spin quantization axis (deg) - spin_moment\\(^*\\) + spin_moment L Determines whether to evaluate the spin magnetic moment per cell + * uHu_formatted @@ -1199,4 +1208,4 @@ L Write a single file or one for each process - \ No newline at end of file + diff --git a/docs/docs/parameters/postw90-global-parameters.csv b/docs/docs/parameters/postw90-global-parameters.csv index 62b131b3..19b6a53d 100644 --- a/docs/docs/parameters/postw90-global-parameters.csv +++ b/docs/docs/parameters/postw90-global-parameters.csv @@ -12,7 +12,7 @@ num_valence_bands,I,"Number of valence bands" spin_decomp,L,"Decompose various properties into up-spin, down-spin, and possibly spin-flip parts" spin_axis_polar,P,"Polar angle of the spin quantization axis (deg)" spin_axis_azimuth,P,"Azimuthal angle of the spin quantization axis (deg)" -spin_moment\\(^*\\),L,"Determines whether to evaluate the spin magnetic moment per cell" +spin_moment,L,"Determines whether to evaluate the spin magnetic moment per cell" uHu_formatted,L,"Read a formatted `seedname.uHu` file" spn_formatted,L,"Read a formatted `seedname.spn` file" berry_curv_unit,S,"Unit of Berry curvature" diff --git a/docs/docs/parameters/w90-plot-parameters.csv b/docs/docs/parameters/w90-plot-parameters.csv index 266ab9b6..0775c29f 100644 --- a/docs/docs/parameters/w90-plot-parameters.csv +++ b/docs/docs/parameters/w90-plot-parameters.csv @@ -4,7 +4,7 @@ wannier_plot_list,I,"List of WF to plot" wannier_plot_supercell,I,"Size of the supercell for plotting the WF" wannier_plot_format,S,"File format in which to plot the WF" wannier_plot_mode,S,"Mode in which to plot the WF, molecule or crystal" -wannier_plot_radius,R,"Cut-off radius of WF\*" +wannier_plot_radius,R,"Cut-off radius of WF" wannier_plot_scale,R,"Scaling parameter for cube files" wannier_plot_spinor_mode,S,"Quantity to plot for spinor WF" wannier_plot_spinor_phase,L,"Include the “phase” when plotting spinor WF" diff --git a/docs/docs/parameters/w90-system-parameters.csv b/docs/docs/parameters/w90-system-parameters.csv index b4bb07d6..1635f81c 100644 --- a/docs/docs/parameters/w90-system-parameters.csv +++ b/docs/docs/parameters/w90-system-parameters.csv @@ -2,8 +2,8 @@ Keyword,Type,Description num_wann,I,"Number of WF" num_bands,I,"Number of bands passed to the code" unit_cell_cart,P,"Unit cell vectors in Cartesian coordinates" -atoms_cart \*,P,"Positions of atoms in Cartesian coordinates" -atoms_frac \*,R,"Positions of atoms in fractional coordinates with respect to the lattice vectors" +atoms_cart,P,"Positions of atoms in Cartesian coordinates" +atoms_frac,R,"Positions of atoms in fractional coordinates with respect to the lattice vectors" mp_grid,I,"Dimensions of the Monkhorst-Pack grid of k-points" kpoints,R,"List of k-points in the Monkhorst-Pack grid" gamma_only,L,"Wavefunctions from underlying ab initio calculation are manifestly real" diff --git a/docs/docs/parameters/w90-wannierise-parameters.csv b/docs/docs/parameters/w90-wannierise-parameters.csv index a6192020..a8d10ca3 100644 --- a/docs/docs/parameters/w90-wannierise-parameters.csv +++ b/docs/docs/parameters/w90-wannierise-parameters.csv @@ -12,11 +12,11 @@ write_r2mn,L,"Write matrix elements of $r^2$ between WF to file" guiding_centres,L,"Use guiding centres" num_guide_cycles,I,"Frequency of guiding centres" num_no_guide_iter,I,"The number of iterations after which guiding centres are used" -trial_step \*,R,"The trial step length for the parabolic line search during the minimisation of $\\Omega$" -fixed_step \*,R,"The fixed step length to take during the minimisation of $\\Omega$, instead of doing a parabolic line search" -use_bloch_phases \*\*,L,"To use phases for initial projections" -site_symmetry\*\*\*,L,"To construct symmetry-adapted Wannier functions" -symmetrize_eps\*\*\*,R,"The convergence tolerance used in the symmetry-adapted mode" +trial_step,R,"The trial step length for the parabolic line search during the minimisation of $\\Omega$" +fixed_step,R,"The fixed step length to take during the minimisation of $\\Omega$, instead of doing a parabolic line search" +use_bloch_phases,L,"To use phases for initial projections" +site_symmetry,L,"To construct symmetry-adapted Wannier functions" +symmetrize_eps,R,"The convergence tolerance used in the symmetry-adapted mode" slwf_num,I,"The number of objective WFs for selective localization" slwf_constrain,L,"Whether to constrain the centres of the objective WFs" slwf_lambda,R,"Value of the Lagrange multiplier for constraining the objective WFs" From 48f73d28941e943a286ec4de1e150d639ae3d75b Mon Sep 17 00:00:00 2001 From: Jamal Mustafa Date: Sun, 12 May 2024 17:19:58 -0700 Subject: [PATCH 5/9] add choices and default value for almost all string parameters --- docs/docs/parameters/parameters.xml | 103 ++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) diff --git a/docs/docs/parameters/parameters.xml b/docs/docs/parameters/parameters.xml index c501770c..1e45e2f9 100644 --- a/docs/docs/parameters/parameters.xml +++ b/docs/docs/parameters/parameters.xml @@ -95,6 +95,12 @@ restart S Restart from checkpoint file + + default + wannierise + plot + transport + iprint @@ -104,6 +110,11 @@ length_unit S + + Ang + Bohr + + Ang System of units to output lengths @@ -114,6 +125,11 @@ spin S + + up + down + + up Which spin channel to read @@ -339,11 +355,21 @@ wannier_plot_format S + + xcrysden + cube + + xcrysden File format in which to plot the WF wannier_plot_mode S + + crystal + molecule + + crystal Mode in which to plot the WF, molecule or crystal @@ -360,6 +386,12 @@ wannier_plot_spinor_mode S + + total + up + down + + total Quantity to plot for spinor WF @@ -385,6 +417,11 @@ bands_plot_format S + + gnuplot + xmgrace + + gnuplot File format in which to plot the interpolated bands @@ -395,6 +432,11 @@ bands_plot_mode S + + s-k + cut + + s-k Slater-Koster type interpolation or Hamiltonian cut-off @@ -435,6 +477,10 @@ fermi_surface_plot_format S + + xcrysden + + xcrysden File format for the Fermi surface plot @@ -475,6 +521,12 @@ dist_cutoff_mode S + + three_dim + two_dim + one_dim + + three_dim Dimension in which the distance between WF is calculated @@ -510,6 +562,11 @@ transport_mode S + + bulk + lcr + + bulk Bulk or left-lead_conductor_right-lead calculation @@ -610,11 +667,22 @@ dist_cutoff_mode S + + three_dim + two_dim + one_dim + + three_dim Dimension in which the distance between WF is calculated one_dim_axis S + + x + y + z + Extended direction for a one-dimensional system @@ -706,6 +774,11 @@ berry_curv_unit S + + ang2 + bohr2 + + ang2 Unit of Berry curvature @@ -716,6 +789,14 @@ berry_task S + + kubo + ahc + morb + sc + shc + kdotp + List of properties to compute @@ -866,6 +947,10 @@ dos_task S + + dos_plot + + dos_plot List of properties to compute @@ -941,6 +1026,12 @@ kpath_bands_colour S + + spin + shc + none + + none Property used to colour the energy bands along the path @@ -981,6 +1072,11 @@ kslice_fermi_lines_colour S + + spin + none + + none Property used to colour the Fermi lines @@ -1081,6 +1177,13 @@ boltz_2d_dir S + + x + y + z + no + + no Non-periodic direction (for 2D systems only) From fc2c6e3cb2de9dab953ebf66ee0f4d91f5650070 Mon Sep 17 00:00:00 2001 From: Jamal Mustafa Date: Sat, 31 Aug 2024 18:45:03 -0700 Subject: [PATCH 6/9] fprettify was transferred to fortran-lang --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c9c28e8f..5609d690 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -26,7 +26,7 @@ repos: tutorials/tutorial\d\d[-]?\w*/.+win| src/.+ )$ -- repo: https://github.com/pseewald/fprettify +- repo: https://github.com/fortran-lang/fprettify rev: v0.3.3 hooks: - id: fprettify From c8537fd04fb96679e415ed85c5b73286e0a8d843 Mon Sep 17 00:00:00 2001 From: Jamal Mustafa Date: Sat, 31 Aug 2024 18:45:29 -0700 Subject: [PATCH 7/9] add new parameters since this PR was opened --- docs/docs/parameters/parameters.xml | 25 +++++++++++++++++++ .../w90-disentanglement-parameters.csv | 3 +++ .../docs/parameters/w90-system-parameters.csv | 2 ++ 3 files changed, 30 insertions(+) diff --git a/docs/docs/parameters/parameters.xml b/docs/docs/parameters/parameters.xml index 1e45e2f9..aa456bc6 100644 --- a/docs/docs/parameters/parameters.xml +++ b/docs/docs/parameters/parameters.xml @@ -71,6 +71,16 @@ R The tolerance to control if two kpoint belong to the same shell + + higher_order_n + I + The order of higher-order finite difference to get b-vectors and weights + + + higher_order_nearest_shells + L + Use the b-vectors on the nearest shells + postproc_setup L @@ -187,6 +197,21 @@ P Top of the inner (frozen) energy window + + dis_froz_proj + L + To activate projectability disentanglement + + + dis_proj_min + P + Lower threshold for projectability disentanglement + + + dis_proj_max + P + Upper threshold for projectability disentanglement + dis_num_iter I diff --git a/docs/docs/parameters/w90-disentanglement-parameters.csv b/docs/docs/parameters/w90-disentanglement-parameters.csv index 16584e20..028cef44 100644 --- a/docs/docs/parameters/w90-disentanglement-parameters.csv +++ b/docs/docs/parameters/w90-disentanglement-parameters.csv @@ -3,6 +3,9 @@ dis_win_min,P,"Bottom of the outer energy window" dis_win_max,P,"Top of the outer energy window" dis_froz_min,P,"Bottom of the inner (frozen) energy window" dis_froz_max,P,"Top of the inner (frozen) energy window" +dis_froz_proj,L,"To activate projectability disentanglement" +dis_proj_min,P,"Lower threshold for projectability disentanglement" +dis_proj_max,P,"Upper threshold for projectability disentanglement" dis_num_iter,I,"Number of iterations for the minimisation of $\\Omega_{\\mathrm{I}}$" dis_mix_ratio,R,"Mixing ratio during the minimisation of $\\Omega_{\\mathrm{I}}$" dis_conv_tol,R,"The convergence tolerance for finding $\\Omega_{\\mathrm{I}}$" diff --git a/docs/docs/parameters/w90-system-parameters.csv b/docs/docs/parameters/w90-system-parameters.csv index 1635f81c..032f71c9 100644 --- a/docs/docs/parameters/w90-system-parameters.csv +++ b/docs/docs/parameters/w90-system-parameters.csv @@ -13,3 +13,5 @@ search_shells,I,"The number of shells to search when determining finite differen skip_B1_tests,L,"Check the condition B1 of Ref [@marzari-prb97]" nnkpts,I,"Explicit list of nearest-neighbour k-points" kmesh_tol,R,"The tolerance to control if two kpoint belong to the same shell" +higher_order_n,I,"The order of higher-order finite difference to get b-vectors and weights" +higher_order_nearest_shells,L,"Use the b-vectors on the nearest shells" From 4769cc50c32f5f9d7b5aaafc225480e2f9f37f61 Mon Sep 17 00:00:00 2001 From: Junfeng Qiao Date: Fri, 27 Sep 2024 11:48:34 +0200 Subject: [PATCH 8/9] Fix parameter table footer --- docs/docs/user_guide/postw90/postw90params.md | 5 +++-- docs/docs/user_guide/wannier90/parameters.md | 21 +++++++++++-------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/docs/docs/user_guide/postw90/postw90params.md b/docs/docs/user_guide/postw90/postw90params.md index 8cac711f..36ec9d79 100644 --- a/docs/docs/user_guide/postw90/postw90params.md +++ b/docs/docs/user_guide/postw90/postw90params.md @@ -142,8 +142,9 @@ specific to the modules can be found in the following sections. the modules in `postw90`. Argument types are represented by, I for a integer, R for a real number, P for a physical value, L for a logical value and S for a text string. - \* The keyword `spin_moment` does not affect the behavior of the modules - in , and does not really belong to any of them. It is listed here for + +- The keyword `spin_moment` does not affect the behavior of the modules + in `postw90`, and does not really belong to any of them. It is listed here for lack of a better place. ### `berry` Parameters diff --git a/docs/docs/user_guide/wannier90/parameters.md b/docs/docs/user_guide/wannier90/parameters.md index 53ce5116..46d2fd33 100644 --- a/docs/docs/user_guide/wannier90/parameters.md +++ b/docs/docs/user_guide/wannier90/parameters.md @@ -67,8 +67,8 @@ and the the `wannier90` Tutorial. `seedname.win` file keywords defining the system. Argument types are represented by, I for a integer, R for a real number, P for a physical value, L for a logical value and S for a text string. -\* `atoms_cart` and `atoms_frac` may not both be defined in the same input -file. + +- `atoms_cart` and `atoms_frac` may not both be defined in the same input file. ### Job Control Parameters @@ -99,11 +99,13 @@ physical value, L for a logical value and S for a text string. `seedname.win` file keywords controlling the wannierisation. Argument types are represented by, I for a integer, R for a real number, P for a -physical value, L for a logical value and S for a text string. \* -`fixed_step` and `trial_step` may not both be defined in the same input -file. \*\*Cannot be used in conjunction with disentanglement. -\*\*\*Cannot be used in conjunction with the inner (frozen) energy -window. +physical value, L for a logical value and S for a text string. + +- `fixed_step` and `trial_step` may not both be defined in the same input +file. +- `use_bloch_phases` cannot be used in conjunction with disentanglement. +- `site_symmetry` and `symmetrize_eps` cannot be used in conjunction with the + inner (frozen) energy window. ### Plot Parameters @@ -113,8 +115,9 @@ window. `seedname.win` file keywords controlling the plotting. Argument types are represented by, I for a integer, R for a real number, P for a -physical value, L for a logical value and S for a text string. \* Only -applies when `wannier_plot_format` is `cube`. +physical value, L for a logical value and S for a text string. + +- `wannier_plot_radius` only applies when `wannier_plot_format` is `cube`. ### Transport Parameters From 8059cc53fdc739d7c0f5a8e03d59094f6fe709d2 Mon Sep 17 00:00:00 2001 From: Junfeng Qiao Date: Fri, 27 Sep 2024 11:56:26 +0200 Subject: [PATCH 9/9] Update github actions/upload-artifact version --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4b8520b0..db90a6d0 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -60,7 +60,7 @@ jobs: uses: codecov/codecov-action@v1 - name: archive test results if: ${{ always() }} - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: test-results_parallel=${{ matrix.w90-binary-parallel }} path: |