next up previous contents
Next: 1.29 How do I Up: 1. Howtos Previous: 1.27 How do I   Contents

1.28 How do I calculate the piezoelectric tensor?

To compute the piezoelectric tensor, use the what ='scf_piezo- electric_tensor' option (see example25). This option calls pw.x to perform Berry phase polarization calculations over a set of distorted structures, using the input geometry as the equilibrium reference. The code then calculates the derivatives of the polarization with respect to strain to determine the piezoelectric tensor components. If you need the code to first determine the energy-minimum geometry, use what='mur_lc_piezoelectric_tensor'. Additionally, you can compute the clamped-ion version of the tensor by setting clamped_ions=.TRUE.. Unlike the full calculation, this requires a specific multi-step workflow to ensure the internal coordinates are handled correctly. Before running the piezoelectric calculation, you must determine the relaxed atomic positions for each equilibrium configuration. Perform a preliminary run using what='scf' or what='mur_lc'. This step generates the necessary atomic position files in the restart directory. Once the relaxation run is complete, you must manually move the data: Copy the generated atomic position files into the restart directory of the piezoelectric calculation. To tell the code to strain these pre-calculated positions during the piezoelectric run, activate the following flag in your input: ltau_el_cons_from_file=.TRUE..


next up previous contents
Next: 1.29 How do I Up: 1. Howtos Previous: 1.27 How do I   Contents
2026-08-13