Clamped Pockels tensor of AlAs
In this tutorial you will learn how to calculate the clamped Pockels tensor using aiida-vibroscopy.
For the demonstration, we will make use of AlAs, a non-centrosymmetric semiconductor material.
Let’s get started!
Pockels tensor formalism
The Pockels effect in a linear electro-optic effect relating an external electric field \(\mathcal{E}_k\) modulation to a change in refractive index \(n_{ij}\) in a non-centrosymmetric material. The Pockels tensor \(r_{ijk}\) is defined within the formalism of the index ellipsoid as
(1)\[\begin{equation}
\Delta \Bigg(\frac{1}{n_{ij}^2} \Bigg)
=
\sum_{k=1}^3 r_{ijk} \mathcal{E}_k
\end{equation}\]
where indices \(i\), \(j\), and \(k\) represent the polarizations (in a Cartesian basis) of the incoming optical field, the outgoing optical field, and the modulating electrical field, respectively.
The Pockels tensor is a function of electric field, atomic positions, and lattice strains. aiida-vibroscopy computes the clamped contribution to \(r_{ijk}\) only, thus neglecting the lattice strains contributions. This approximation is valid for electric field modulations that exceed lattice resonance frequencies. In such case, \(r_{ijk}\) can be written as \(r_{ijk}^{el} + r_{ijk}^{ion}\), i.e., a high-frequency (electronic) and a phonon contribution (ionic)
(2)\[\begin{equation}
r_{ijk}^{el} + r_{ijk}^{ion}
=
-\frac{2}{n_{ii}^2 n_{jj}^2} \chi_{ijk}^{(2)}
- \frac{1}{n_{ii}^2 n_{jj}^2} \sum_m \frac{\alpha_{ij}^m p_{m,k}}{\omega_m^2}
\end{equation}\]
where \(\chi_{ijk}^{(2)}\) is the DC-field second-order dielectric susceptibility. The \(\alpha_{ij}^m\) variable is the Raman susceptibility tensor associated with phonon mode \(m\). It is calculated as
(3)\[\begin{equation}
\alpha_{ij}^m
=
\sum_{\kappa, \beta} \frac{\partial \chi_{ij}^{(1)}}{\partial \tau_{\kappa, \beta}} u_m(\kappa, \beta)
\end{equation}\]
where \(\frac{\partial \chi_{ij}^{(1)}}{\partial \tau_{\kappa, \beta}}\) is the Raman tensor introduced in the tutorial on vibrational spectra and \(u_m(\kappa, \beta)\) is the eigenvector associated with atom \(\kappa\) and polarization direction \(\beta\). The mode polarity \(p_{m, k}\) is calculated as
(4)\[\begin{equation}
p_{m,k}
=
\sum_{\kappa, \beta} Z_{\kappa, k \beta}^* u_m(\kappa, \beta)
\end{equation}\]
with the Born effective charges \(Z_{\kappa, k \beta}^*\) introduced in the tutorial on dielectric tensor calculations.
Note
The Pockels formalism was originally developed in the late 60s, however its implementation in aiida-vibroscopy is based on the successive work of Veithen et al.. See:
Johnston Jr, W.D., Phys. Rev. B, 1.8, 3494 (1970)
Veithen, M., Xavier Gonze, and Ph Ghosez, Phys. Rev. B, 71.12, 125107 (2005)
Attention! The non-analytical constants (NAC) should be accounted for whenever polar materials are investigated (refer to the tutorial on phonon and dielectric properties of AlAs).
Show code cell content
Hide code cell content
Report: downloading patch versions information...
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:46: AiidaDeprecationWarning: The `Code` class is deprecated. To create an instance, use the `aiida.orm.nodes.data.code.installed.InstalledCode` or `aiida.orm.nodes.data.code.portable.PortableCode` for a "remote" or "local" code, respectively. If you are using this class to compare type, e.g. in `isinstance`, use `aiida.orm.nodes.data.code.abstract.AbstractCode`. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:58: AiidaDeprecationWarning: The `Code` plugin is deprecated, use the `InstalledCode` (`core.code.remote`) instead. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:493: AiidaDeprecationWarning: `Code.set_remote_computer_exec` method is deprecated, use `InstalledCode`. (this will be removed in v3)
warn_deprecation('`Code.set_remote_computer_exec` method is deprecated, use `InstalledCode`.', version=3)
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:406: AiidaDeprecationWarning: `Code.set_input_plugin_name` method is deprecated, use the `default_calc_job_plugin` property instead. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:386: AiidaDeprecationWarning: `Code.set_prepend_text` method is deprecated, use the `prepend_text` property instead. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:565: AiidaDeprecationWarning: `Code.is_local` method is deprecated, use a `PortableCode` instance and check the type. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:523: AiidaDeprecationWarning: `Code.get_remote_computer` method is deprecated, use the `computer` attribute instead. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:513: AiidaDeprecationWarning: `Code.get_remote_exec_path` method is deprecated, use `InstalledCode.filepath_executable` instead. (this will be removed in v3)
warn_deprecation(
[OK]
Report: downloading selected pseudopotentials archive... [OK]
Report: downloading selected pseudopotentials metadata... [OK]
Importing the structure from COD
Let’s import the AlAs structure from the COD database via AiiDA.
/opt/conda/lib/python3.9/site-packages/aiida/plugins/entry_point.py:338: AiidaDeprecationWarning: The entry point `cod` is deprecated. Please replace it with `core.cod`. (this will be removed in v3)
warn_deprecation(f'The entry point `{name}` is deprecated. Please replace it with `core.{name}`.', version=3)
/opt/conda/lib/python3.9/site-packages/aiida/tools/data/cif.py:134: FutureWarning: get_structures is deprecated
get_structures is deprecated and will be removed in 2024. Use parse_structures instead.The only difference is that primitive defaults to False in the new parse_structures method.So parse_structures(primitive=True) is equivalent to the old behavior of get_structures().
structures = parser.get_structures(**parameters)
Running the IRamanSpectraWorkChain
Let’s import the WorkChain and run it!
As usual, we use the get_builder_from_protocol to get a prefilled builder with all inputs. These inputs should be considered not as converged parameters, but as a good starting point. You may also need to tweak some parameters, e.g. add magnetization etc., depending on your case.
Show code cell output
Hide code cell output
03/06/2025 09:40:24 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [124|IRamanSpectraWorkChain|run_spectra]: submitting `HarmonicWorkChain` <PK=126>
03/06/2025 09:40:24 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [126|HarmonicWorkChain|run_phonon]: submitting `PhononWorkChain` <PK=129>
03/06/2025 09:40:25 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [126|HarmonicWorkChain|run_dielectric]: submitting `DielectricWorkChain` <PK=130>
03/06/2025 09:40:26 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [130|DielectricWorkChain|run_base_scf]: launching base scf PwBaseWorkChain<143>
03/06/2025 09:40:26 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [143|PwBaseWorkChain|run_process]: launching PwCalculation<146> iteration #1
03/06/2025 09:40:27 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [129|PhononWorkChain|run_base_supercell]: launching base supercell scf PwBaseWorkChain<152>
03/06/2025 09:40:27 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [152|PwBaseWorkChain|run_process]: launching PwCalculation<155> iteration #1
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:565: AiidaDeprecationWarning: `Code.is_local` method is deprecated, use a `PortableCode` instance and check the type. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:523: AiidaDeprecationWarning: `Code.get_remote_computer` method is deprecated, use the `computer` attribute instead. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:565: AiidaDeprecationWarning: `Code.is_local` method is deprecated, use a `PortableCode` instance and check the type. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:513: AiidaDeprecationWarning: `Code.get_remote_exec_path` method is deprecated, use `InstalledCode.filepath_executable` instead. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:565: AiidaDeprecationWarning: `Code.is_local` method is deprecated, use a `PortableCode` instance and check the type. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:523: AiidaDeprecationWarning: `Code.get_remote_computer` method is deprecated, use the `computer` attribute instead. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:565: AiidaDeprecationWarning: `Code.is_local` method is deprecated, use a `PortableCode` instance and check the type. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:513: AiidaDeprecationWarning: `Code.get_remote_exec_path` method is deprecated, use `InstalledCode.filepath_executable` instead. (this will be removed in v3)
warn_deprecation(
03/06/2025 09:40:39 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [143|PwBaseWorkChain|results]: work chain completed after 1 iterations
03/06/2025 09:40:39 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [143|PwBaseWorkChain|on_terminated]: remote folders will not be cleaned
03/06/2025 09:40:40 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [152|PwBaseWorkChain|results]: work chain completed after 1 iterations
03/06/2025 09:40:40 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [152|PwBaseWorkChain|on_terminated]: remote folders will not be cleaned
03/06/2025 09:40:40 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [130|DielectricWorkChain|run_nscf]: launching base scf PwBaseWorkChain<168>
03/06/2025 09:40:41 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [168|PwBaseWorkChain|run_process]: launching PwCalculation<171> iteration #1
03/06/2025 09:40:41 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [129|PhononWorkChain|run_forces]: submitting `PwBaseWorkChain` <PK=176> with supercell n.o 1
03/06/2025 09:40:43 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [129|PhononWorkChain|run_forces]: submitting `PwBaseWorkChain` <PK=178> with supercell n.o 2
03/06/2025 09:40:44 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [176|PwBaseWorkChain|run_process]: launching PwCalculation<181> iteration #1
03/06/2025 09:40:44 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [178|PwBaseWorkChain|run_process]: launching PwCalculation<184> iteration #1
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:565: AiidaDeprecationWarning: `Code.is_local` method is deprecated, use a `PortableCode` instance and check the type. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:523: AiidaDeprecationWarning: `Code.get_remote_computer` method is deprecated, use the `computer` attribute instead. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:565: AiidaDeprecationWarning: `Code.is_local` method is deprecated, use a `PortableCode` instance and check the type. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:513: AiidaDeprecationWarning: `Code.get_remote_exec_path` method is deprecated, use `InstalledCode.filepath_executable` instead. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:565: AiidaDeprecationWarning: `Code.is_local` method is deprecated, use a `PortableCode` instance and check the type. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:523: AiidaDeprecationWarning: `Code.get_remote_computer` method is deprecated, use the `computer` attribute instead. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:565: AiidaDeprecationWarning: `Code.is_local` method is deprecated, use a `PortableCode` instance and check the type. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:513: AiidaDeprecationWarning: `Code.get_remote_exec_path` method is deprecated, use `InstalledCode.filepath_executable` instead. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:565: AiidaDeprecationWarning: `Code.is_local` method is deprecated, use a `PortableCode` instance and check the type. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:523: AiidaDeprecationWarning: `Code.get_remote_computer` method is deprecated, use the `computer` attribute instead. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:565: AiidaDeprecationWarning: `Code.is_local` method is deprecated, use a `PortableCode` instance and check the type. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:513: AiidaDeprecationWarning: `Code.get_remote_exec_path` method is deprecated, use `InstalledCode.filepath_executable` instead. (this will be removed in v3)
warn_deprecation(
03/06/2025 09:41:03 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [168|PwBaseWorkChain|results]: work chain completed after 1 iterations
03/06/2025 09:41:04 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [168|PwBaseWorkChain|on_terminated]: remote folders will not be cleaned
03/06/2025 09:41:05 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [130|DielectricWorkChain|run_null_field_scfs]: launching PwBaseWorkChain<200> with null electric field 0
03/06/2025 09:41:05 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [130|DielectricWorkChain|run_null_field_scfs]: launching PwBaseWorkChain<201> with null electric field 1
03/06/2025 09:41:06 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [200|PwBaseWorkChain|run_process]: launching PwCalculation<204> iteration #1
03/06/2025 09:41:06 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [201|PwBaseWorkChain|run_process]: launching PwCalculation<207> iteration #1
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:565: AiidaDeprecationWarning: `Code.is_local` method is deprecated, use a `PortableCode` instance and check the type. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:523: AiidaDeprecationWarning: `Code.get_remote_computer` method is deprecated, use the `computer` attribute instead. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:565: AiidaDeprecationWarning: `Code.is_local` method is deprecated, use a `PortableCode` instance and check the type. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:513: AiidaDeprecationWarning: `Code.get_remote_exec_path` method is deprecated, use `InstalledCode.filepath_executable` instead. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:565: AiidaDeprecationWarning: `Code.is_local` method is deprecated, use a `PortableCode` instance and check the type. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:523: AiidaDeprecationWarning: `Code.get_remote_computer` method is deprecated, use the `computer` attribute instead. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:565: AiidaDeprecationWarning: `Code.is_local` method is deprecated, use a `PortableCode` instance and check the type. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:513: AiidaDeprecationWarning: `Code.get_remote_exec_path` method is deprecated, use `InstalledCode.filepath_executable` instead. (this will be removed in v3)
warn_deprecation(
03/06/2025 09:41:09 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [176|PwBaseWorkChain|results]: work chain completed after 1 iterations
03/06/2025 09:41:10 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [176|PwBaseWorkChain|on_terminated]: cleaned remote folders of calculations: 181
03/06/2025 09:41:10 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [178|PwBaseWorkChain|results]: work chain completed after 1 iterations
03/06/2025 09:41:10 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [178|PwBaseWorkChain|on_terminated]: cleaned remote folders of calculations: 184
03/06/2025 09:41:12 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [129|PhononWorkChain|on_terminated]: cleaned remote folders of calculations: 155 181 184
03/06/2025 09:41:29 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [200|PwBaseWorkChain|results]: work chain completed after 1 iterations
03/06/2025 09:41:29 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [200|PwBaseWorkChain|on_terminated]: remote folders will not be cleaned
03/06/2025 09:41:31 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [201|PwBaseWorkChain|results]: work chain completed after 1 iterations
03/06/2025 09:41:32 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [201|PwBaseWorkChain|on_terminated]: remote folders will not be cleaned
03/06/2025 09:41:33 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [130|DielectricWorkChain|run_electric_field_scfs]: launching PwBaseWorkChain<231> with electric field index 2 and sign 1.0 iteration #0
03/06/2025 09:41:34 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [130|DielectricWorkChain|run_electric_field_scfs]: launching PwBaseWorkChain<234> with electric field index 3 and sign 1.0 iteration #0
03/06/2025 09:41:35 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [231|PwBaseWorkChain|run_process]: launching PwCalculation<237> iteration #1
03/06/2025 09:41:35 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [234|PwBaseWorkChain|run_process]: launching PwCalculation<240> iteration #1
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:565: AiidaDeprecationWarning: `Code.is_local` method is deprecated, use a `PortableCode` instance and check the type. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:523: AiidaDeprecationWarning: `Code.get_remote_computer` method is deprecated, use the `computer` attribute instead. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:565: AiidaDeprecationWarning: `Code.is_local` method is deprecated, use a `PortableCode` instance and check the type. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:513: AiidaDeprecationWarning: `Code.get_remote_exec_path` method is deprecated, use `InstalledCode.filepath_executable` instead. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:565: AiidaDeprecationWarning: `Code.is_local` method is deprecated, use a `PortableCode` instance and check the type. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:523: AiidaDeprecationWarning: `Code.get_remote_computer` method is deprecated, use the `computer` attribute instead. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:565: AiidaDeprecationWarning: `Code.is_local` method is deprecated, use a `PortableCode` instance and check the type. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:513: AiidaDeprecationWarning: `Code.get_remote_exec_path` method is deprecated, use `InstalledCode.filepath_executable` instead. (this will be removed in v3)
warn_deprecation(
03/06/2025 09:41:59 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [231|PwBaseWorkChain|results]: work chain completed after 1 iterations
03/06/2025 09:41:59 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [231|PwBaseWorkChain|on_terminated]: remote folders will not be cleaned
03/06/2025 09:41:59 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [234|PwBaseWorkChain|results]: work chain completed after 1 iterations
03/06/2025 09:41:59 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [234|PwBaseWorkChain|on_terminated]: remote folders will not be cleaned
03/06/2025 09:42:00 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [130|DielectricWorkChain|run_electric_field_scfs]: launching PwBaseWorkChain<253> with electric field index 2 and sign 1.0 iteration #1
03/06/2025 09:42:01 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [130|DielectricWorkChain|run_electric_field_scfs]: launching PwBaseWorkChain<256> with electric field index 3 and sign 1.0 iteration #1
03/06/2025 09:42:03 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [253|PwBaseWorkChain|run_process]: launching PwCalculation<259> iteration #1
03/06/2025 09:42:03 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [256|PwBaseWorkChain|run_process]: launching PwCalculation<262> iteration #1
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:565: AiidaDeprecationWarning: `Code.is_local` method is deprecated, use a `PortableCode` instance and check the type. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:523: AiidaDeprecationWarning: `Code.get_remote_computer` method is deprecated, use the `computer` attribute instead. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:565: AiidaDeprecationWarning: `Code.is_local` method is deprecated, use a `PortableCode` instance and check the type. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:513: AiidaDeprecationWarning: `Code.get_remote_exec_path` method is deprecated, use `InstalledCode.filepath_executable` instead. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:565: AiidaDeprecationWarning: `Code.is_local` method is deprecated, use a `PortableCode` instance and check the type. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:523: AiidaDeprecationWarning: `Code.get_remote_computer` method is deprecated, use the `computer` attribute instead. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:565: AiidaDeprecationWarning: `Code.is_local` method is deprecated, use a `PortableCode` instance and check the type. (this will be removed in v3)
warn_deprecation(
/opt/conda/lib/python3.9/site-packages/aiida/orm/nodes/data/code/legacy.py:513: AiidaDeprecationWarning: `Code.get_remote_exec_path` method is deprecated, use `InstalledCode.filepath_executable` instead. (this will be removed in v3)
warn_deprecation(
03/06/2025 09:42:25 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [253|PwBaseWorkChain|results]: work chain completed after 1 iterations
03/06/2025 09:42:25 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [253|PwBaseWorkChain|on_terminated]: remote folders will not be cleaned
03/06/2025 09:42:27 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [256|PwBaseWorkChain|results]: work chain completed after 1 iterations
03/06/2025 09:42:28 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [256|PwBaseWorkChain|on_terminated]: remote folders will not be cleaned
03/06/2025 09:42:29 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [130|DielectricWorkChain|run_numerical_derivatives]: launching NumericalDerivativesWorkChain<280> for computing numerical derivatives.
/aiida-plugins/aiida-vibroscopy/src/aiida_vibroscopy/calculations/symmetry.py:164: UserWarning: Symmetry of dChi/dr tensors is largely broken.
The max difference is:
22.88281777626398
warnings.warn('\n'.join(lines))
/aiida-plugins/aiida-vibroscopy/src/aiida_vibroscopy/calculations/symmetry.py:164: UserWarning: Symmetry of dChi/dr tensors is largely broken.
The max difference is:
94.61659485017016
warnings.warn('\n'.join(lines))
/aiida-plugins/aiida-vibroscopy/src/aiida_vibroscopy/calculations/symmetry.py:164: UserWarning: Symmetry of dChi/dr tensors is largely broken.
The max difference is:
118.52785387480554
warnings.warn('\n'.join(lines))
03/06/2025 09:42:32 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [130|DielectricWorkChain|on_terminated]: cleaned remote folders of calculations: 146 171 204 207 237 240 259 262
03/06/2025 09:42:35 AM <15160> aiida.orm.nodes.process.workflow.workchain.WorkChainNode: [REPORT] [126|HarmonicWorkChain|on_terminated]: cleaned remote folders of calculations: 155 181 184 146 171 204 207 237 240 259 262
Calculating the clamped Pockels tensor
Let’s print the clamped Pockels tensor r_tot, its electronic contribution r_el, and its ionic contribution r_ion.
Clamped Pockels tensor (r_tot) of AlAs in pm/V:
[[[ 0. 0. -0. ]
[-0. 0. -0.75]
[-0. -0.75 -0. ]]
[[-0. 0. -0.75]
[-0. -0. 0. ]
[-0.75 0. -0. ]]
[[-0. -0.75 -0. ]
[-0.75 0. -0. ]
[-0. -0. -0. ]]]
Electronic contribution to r_tot in pm/V:
[[[-0. -0. -0. ]
[-0. -0. -1.22]
[-0. -1.22 -0. ]]
[[-0. -0. -1.22]
[-0. 0. 0. ]
[-1.22 0. -0. ]]
[[-0. -1.22 -0. ]
[-1.22 0. -0. ]
[-0. -0. -0. ]]]
Ionic contribution to r_tot in pm/V:
[[[ 0. 0. 0. ]
[-0. 0. 0.47]
[ 0. 0.47 0. ]]
[[-0. 0. 0.47]
[ 0. -0. -0. ]
[ 0.47 0. 0. ]]
[[ 0. 0.47 0. ]
[ 0.47 0. 0. ]
[ 0. 0. 0. ]]]
Due to symmetry (AlAs belongs to space group number 216), we obtain \(-0.75\) pm/V for each \(r_{123} = r_{132} = r_{213} = r_{231} = r_{321} = r_{312}\) clamped Pockels coefficient. This value is very small and of negligible interest for practical opto-electronic applications - hence the lack of available experimental data, as far as we know. We chose AlAs for the sake of running this tutorial within a reasonable amount of time. However, once you get the hang of it, you can go on and study more relevant materials.
Warning
In the literature, it is common to refer to Pockels coefficients using the Voigt notation, where the first two indices are contracted as follows: \(11 \rightarrow 1\), \(22 \rightarrow 2\), \(33 \rightarrow 3\), \(23 = 32 \rightarrow 4\), \(31 = 13 \rightarrow 5\), and \(12 = 21 \rightarrow 6\). For AlAs for instance, \(r_{123} = r_{63}\), \(r_{132} = r_{52}\), …