All plugins

aiida-vibroscopy

AiiDA plugin for vibrational spectroscopy using Quantum ESPRESSO

status stable AiiDA >=2.8,<3.0

General information

Install pip install aiida-vibroscopy
Python import import aiida_vibroscopy
Latest version 1.7.0
Released 2026-08-18

Registry checks

All checks passed

Plugins provided

Data 2 Workflows 6 Console scripts 1

Entry points

Console scripts console_scripts
  • aiida-vibroscopy

    aiida_vibroscopy.cli:cmd_root
Data node types aiida.data
  • vibroscopy.fp

    aiida_vibroscopy.data.vibro_fp:VibrationalFrozenPhononData
  • vibroscopy.vibrational

    aiida_vibroscopy.data.vibro_lr:VibrationalData
WorkChains and work functions aiida.workflows
  • vibroscopy.dielectric

    class: aiida_vibroscopy.workflows.dielectric.base:DielectricWorkChain

    Workchain computing different second and third order tensors. It computes the high frequency dielectric tensor, the Born effective charges, the non-linear optical susceptibility and Raman tensors using homogeneous small electric fields via the electric enthalpy functional.

    InputRequiredValid typesDescription
    central_difference true The inputs for the central difference scheme.
    property true str Valid inputs are:ir * born-charges * dielectric * nac * bec * raman * susceptibility-derivative * non-linear-susceptibility
    scf true Data Inputs for the `PwBaseWorkChain` that will be used to run the electric enthalpy scfs.
    settings true Options for how to run the workflow.
    symmetry true Namespace for symmetry related inputs.
    clean_workdir false Bool If `True`, work directories of all called calculation will be cleaned at the end of execution.
    kpoints_parallel_distance false Float, NoneType Distance of the k-points in reciprocal space along the parallel direction of each applied electric field.
    metadata false
    parent_scf false RemoteData, NoneType Scf parent folder from where restarting the scfs with electric fields.
    OutputRequiredValid typesDescription
    fields_data true Namespace for passing TrajectoryData containing forces and polarization.
    tensors true ArrayData Contains high frequency dielectric and Born effectivecharges tensors computed in Cartesian coordinates. Depending on the inputs, it can also contain the derivatives of the susceptibility in respect to the atomic positions (called `Raman tensors`) and the non linear optical susceptibility, always expressed in Cartesian coordinates.
    accuracy_order false Int
    critical_electric_field false Float
    electric_field_step false Float
    units false Dict Units of the susceptibility derivatives tensors.
    Exit statusMessage
    1 The process has failed with an unspecified error.
    2 The process failed with legacy failure mode.
    10 The process returned an invalid output.
    11 The process did not register a required output.
    400 The initial scf work chain failed.
    401 The nscf work chain failed.
    402 The electric field scf work chain failed for direction {direction}.
    403 The numerical derivatives calculation failed.
    404 The scf PwBaseWorkChain sub process in iteration returned a non integer total magnetization (threshold exceeded).
    404 A metallic ground-state has been detected after the nscf PwBaseWorkChain
  • vibroscopy.dielectric.numerical_derivatives

    class: aiida_vibroscopy.workflows.dielectric.numerical_derivatives:NumericalDerivativesWorkChain

    Workchain carrying out numerical derivatives. It computes the first and second order derivatives of forces and polarization in respect to electric field, to obtain dielectric tensor, Born effective charges, non linear optical susceptibility and Raman tensors. Forces and polarization must be passed as TrajectoryData as a dictionary in `data`. Numerical derivatives can have different number of evaluation points, depending on order and accuracy. The price to pay is the standardization of the structure of the dictionary to pass to this namespace. To understand, let's review the approach.In central differencs approach we need the evaluation of the function at the value we want the derivative (in our case at :math:`\\mathcal{E}=0`, E is the electric field), and at displaced positions from this value. The evaluation of the function at these points will have weights (or coefficients), which depend on order and accuracy. For example: - :math:`\\frac{df}{dx} = \\frac{ 0.5 \\cdot f(+1.0 \\cdot h) -0.5 \\cdot f(-1.0 \\cdot h) }{h} +\\mathcal{O}(h^2)` - :math:`\\frac{d^2 f}{dx^2} = \\frac{ 1.0 \\cdot f(+1.0 \\cdot h) -2.0 \\cdot f(0. \\cdot h) +1.0 \\cdot f(-1.0 \\cdot h) }{h^2} +\\mathcal{O}(h^2)` Referring to the coefficients for each step as :math:`c_i`, where `i` is an integer, our convention is to put in sequence the Trajectory data with increasing numbers as labels, for example: | '0': TrajectoryData for :math:`c_1`, | '1': TrajectoryData for :math:`c_{-1}`, | '2': TrajectoryData for :math:`c_2`, | '3': TrajectoryData for :math:`c_{-2}`, | ... This way to creating an analogous of an array with coefficients :math:`[c_1,c_{-1},c_2,c_{-2}, \\dots]`. These dictionaries are going to be put as sub-dictionary in a general `data` dictionary. Each sub-dict has to be put with a key with suffix a number indicating which tensor component is referring to. In our case, we use a similar Voigt notation. Namely we have two cases: * first order derivatives: keys suffices are 0,1,2; 0 for :math:`[i,x]`, 1 for :math:`[i,y]`, 2 for :math:`[i,z]` (with :math:`i={x,y,z}`) * second order derivatives: keys suffices are 0,...5; 0 for :math:`[i,x,x]`, :math:`\dots` (as in Voigt), 5 for :math:`[i,x,y]` (with :math:`i={x,y,z}`) The prefix can be anything. Best practice is using ``field_`` with and underscorre as prefix. The Trajectory data for the :math:`c_0` coefficient (i.e. the one with :math:`\mathcal{E}=0`) must be passed with a different key, namely ``null_field``. This is to avoid errors and due to the fact that is common to the all derivatives.

    InputRequiredValid typesDescription
    central_difference true The inputs for the central difference scheme.
    data true Namespace for passing TrajectoryData containing forces and polarization.
    structure true StructureData
    symmetry true
    metadata false
    OutputRequiredValid typesDescription
    tensors true ArrayData Contains high frequency dielectric and Born effectivecharges tensors computed in Cartesian coordinates. Depending on the inputs, it can also contain the derivatives of the susceptibility in respect to the atomic positions (called `Raman tensors`) and the non linear optical susceptibility, always expressed in Cartesian coordinates.
    units false Dict Units of the susceptibility derivatives tensors.
    Exit statusMessage
    1 The process has failed with an unspecified error.
    2 The process failed with legacy failure mode.
    10 The process returned an invalid output.
    11 The process did not register a required output.
  • vibroscopy.phonons.harmonic

    class: aiida_vibroscopy.workflows.phonons.harmonic:HarmonicWorkChain

    Workchain for frozen phonons calculations. Non-analytical constants (NAC) and higher order mixed derivatives are computed via finite differences through finite electric fields. See :class:`~aiida_vibroscopy.workflows.DielectricWorkChain` for more details on how they are carried out.

    InputRequiredValid typesDescription
    phonon true Data Inputs for the `PhononWorkChain` that will beused to calculate the force constants.
    settings true Options for how to run the workflow.
    structure true StructureData
    symmetry true Namespace for symmetry related inputs.
    clean_workdir false Bool If `True`, work directories of all called calculation will be cleaned at the end of execution.
    dielectric false Data Inputs for the `DielectricWorkChain` that will beused to calculate the mixed derivatives with electric field.
    metadata false
    phonopy false Data Inputs for the `PhonopyCalculation` that willbe used to calculate the inter-atomic force constants, or for post-processing.
    OutputRequiredValid typesDescription
    output_phonon true Outputs of the `PhononWorkChain`.
    vibrational_data true VibrationalData, VibrationalFrozenPhononData The phonopy data with supercells displacements, forces and (optionally)nac parameters to use in the post-processing calculation.
    output_dielectric false Outputs of the `DielectricWorkChain`.
    output_phonopy false Outputs of the post-processing via `phonopy`.
    Exit statusMessage
    1 The process has failed with an unspecified error.
    2 The process failed with legacy failure mode.
    10 The process returned an invalid output.
    11 The process did not register a required output.
    400 The phonon workchain failed.
    401 The dielectric workchain failed.
    402 The phonopy calculation failed.
  • vibroscopy.phonons.phonon

    class: aiida_vibroscopy.workflows.phonons.base:PhononWorkChain

    Class for computing force constants of phonons, without non-analytical corrections.

    InputRequiredValid typesDescription
    scf true Data Inputs for the `PwBaseWorkChain` that will be used to run the electric enthalpy scfs.
    settings true Options for how to run the workflow.
    symmetry true Namespace for symmetry related inputs.
    clean_workdir false Bool If `True`, work directories of all called calculation will be cleaned at the end of execution.
    displacement_generator false Dict, NoneType Info for displacements generation. The following flags are allowed: distance is_plusminus is_diagonal is_trigonal number_of_snapshots random_seed cutoff_frequency
    metadata false
    phonopy false Data Inputs for the `PhonopyCalculation` that willbe used to calculate the inter-atomic force constants, or for post-processing.
    primitive_matrix false List, NoneType Primitive matrix that defines the primitive cell from the unitcell.
    supercell_matrix false List, NoneType Supercell matrix that defines the supercell from the unitcell.
    OutputRequiredValid typesDescription
    phonopy_data true PhonopyData The phonopy data with supercells displacements, forces to use in the post-processing calculation.
    supercells_forces true ArrayData, TrajectoryData The forces acting on the atoms of each supercell.
    output_phonopy false
    supercells false StructureData The supercells with displacements.
    Exit statusMessage
    1 The process has failed with an unspecified error.
    2 The process failed with legacy failure mode.
    10 The process returned an invalid output.
    11 The process did not register a required output.
    400 The initial supercell scf work chain failed.
    401 The initial PwBaseWorkChain sub process returned a non integer total magnetization.
    402 At least one sub processe did not finish successfully.
    403 The phonopy calculation did not finish correctly.
  • vibroscopy.spectra.intensities_average

    class: aiida_vibroscopy.workflows.spectra.intensities_average:IntensitiesAverageWorkChain

    Workchain that computes IR and Raman spatial and q-direction average spectra.

    InputRequiredValid typesDescription
    vibrational_data true VibrationalData, VibrationalFrozenPhononData Vibrational data containing force constants or frozen phonons forces, nac parameters and/or susceptibility derivatives.
    metadata false
    parameters false Dict Options for averaging on the non-analytical directions.
    OutputRequiredValid typesDescription
    ir_averaged true ArrayData Contains high frequency dielectric tensor computed in Cartesian coordinates.
    raman_averaged false ArrayData Contains Born effective charges tensors computed in Cartesian coordinates.
    units false Dict Units of intensities and frequencies.
    Exit statusMessage
    1 The process has failed with an unspecified error.
    2 The process failed with legacy failure mode.
    10 The process returned an invalid output.
    11 The process did not register a required output.
  • vibroscopy.spectra.iraman

    class: aiida_vibroscopy.workflows.spectra.iraman:IRamanSpectraWorkChain

    Workchain for automatically compute IR and Raman spectra using finite displacements and fields. For other details of the sub-workchains used, see also: * :class:`~aiida_vibroscopy.workflows.dielectric.base.DielectricWorkChain` for finite fields * :class:`~aiida_vibroscopy.workflows.phonons.base.PhononWorkChain` for finite displacements

    InputRequiredValid typesDescription
    dielectric true Data Inputs for the `DielectricWorkChain` that will beused to calculate the mixed derivatives with electric field.
    phonon true Data Inputs for the `PhononWorkChain` that will beused to calculate the force constants.
    settings true Options for how to run the workflow.
    structure true StructureData
    symmetry true Namespace for symmetry related inputs.
    clean_workdir false Bool If `True`, work directories of all called calculation will be cleaned at the end of execution.
    intensities_average false Data Inputs for the `IntensitiesAverageWorkChain` that willbe used to run the average calculation over intensities.
    metadata false
    OutputRequiredValid typesDescription
    output_phonon true Outputs of the `PhononWorkChain`.
    vibrational_data true VibrationalData, VibrationalFrozenPhononData The phonopy data with supercells displacements, forces and (optionally)nac parameters to use in the post-processing calculation.
    fake false
    output_dielectric false Outputs of the `DielectricWorkChain`.
    output_intensities_average false Intensities average over space and q-points.
    Exit statusMessage
    1 The process has failed with an unspecified error.
    2 The process failed with legacy failure mode.
    10 The process returned an invalid output.
    11 The process did not register a required output.
    400 The averaging procedure for intensities had an unexpected error.
    401 The averaging procedure for intensities had an unexpected error.