aiida-vibroscopy
AiiDA plugin for vibrational spectroscopy using Quantum ESPRESSO
General information
Registry checks
Plugins provided
Entry points
-
aiida-vibroscopy
aiida_vibroscopy.cli:cmd_root
-
vibroscopy.fp
aiida_vibroscopy.data.vibro_fp:VibrationalFrozenPhononData -
vibroscopy.vibrational
aiida_vibroscopy.data.vibro_lr:VibrationalData
-
vibroscopy.dielectric
class:aiida_vibroscopy.workflows.dielectric.base:DielectricWorkChainWorkchain 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.
Input Required Valid types Description central_differencetrue The inputs for the central difference scheme. propertytrue strValid inputs are:ir * born-charges * dielectric * nac * bec * raman * susceptibility-derivative * non-linear-susceptibility scftrue DataInputs for the `PwBaseWorkChain` that will be used to run the electric enthalpy scfs. settingstrue Options for how to run the workflow. symmetrytrue Namespace for symmetry related inputs. clean_workdirfalse BoolIf `True`, work directories of all called calculation will be cleaned at the end of execution. kpoints_parallel_distancefalse Float, NoneTypeDistance of the k-points in reciprocal space along the parallel direction of each applied electric field. metadatafalse parent_scffalse RemoteData, NoneTypeScf parent folder from where restarting the scfs with electric fields. Output Required Valid types Description fields_datatrue Namespace for passing TrajectoryData containing forces and polarization. tensorstrue ArrayDataContains 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_orderfalse Intcritical_electric_fieldfalse Floatelectric_field_stepfalse Floatunitsfalse DictUnits of the susceptibility derivatives tensors. Exit status Message 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:NumericalDerivativesWorkChainWorkchain 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.
Input Required Valid types Description central_differencetrue The inputs for the central difference scheme. datatrue Namespace for passing TrajectoryData containing forces and polarization. structuretrue StructureDatasymmetrytrue metadatafalse Output Required Valid types Description tensorstrue ArrayDataContains 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. unitsfalse DictUnits of the susceptibility derivatives tensors. Exit status Message 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:HarmonicWorkChainWorkchain 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.
Input Required Valid types Description phonontrue DataInputs for the `PhononWorkChain` that will beused to calculate the force constants. settingstrue Options for how to run the workflow. structuretrue StructureDatasymmetrytrue Namespace for symmetry related inputs. clean_workdirfalse BoolIf `True`, work directories of all called calculation will be cleaned at the end of execution. dielectricfalse DataInputs for the `DielectricWorkChain` that will beused to calculate the mixed derivatives with electric field. metadatafalse phonopyfalse DataInputs for the `PhonopyCalculation` that willbe used to calculate the inter-atomic force constants, or for post-processing. Output Required Valid types Description output_phonontrue Outputs of the `PhononWorkChain`. vibrational_datatrue VibrationalData, VibrationalFrozenPhononDataThe phonopy data with supercells displacements, forces and (optionally)nac parameters to use in the post-processing calculation. output_dielectricfalse Outputs of the `DielectricWorkChain`. output_phonopyfalse Outputs of the post-processing via `phonopy`. Exit status Message 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:PhononWorkChainClass for computing force constants of phonons, without non-analytical corrections.
Input Required Valid types Description scftrue DataInputs for the `PwBaseWorkChain` that will be used to run the electric enthalpy scfs. settingstrue Options for how to run the workflow. symmetrytrue Namespace for symmetry related inputs. clean_workdirfalse BoolIf `True`, work directories of all called calculation will be cleaned at the end of execution. displacement_generatorfalse Dict, NoneTypeInfo for displacements generation. The following flags are allowed: distance is_plusminus is_diagonal is_trigonal number_of_snapshots random_seed cutoff_frequency metadatafalse phonopyfalse DataInputs for the `PhonopyCalculation` that willbe used to calculate the inter-atomic force constants, or for post-processing. primitive_matrixfalse List, NoneTypePrimitive matrix that defines the primitive cell from the unitcell. supercell_matrixfalse List, NoneTypeSupercell matrix that defines the supercell from the unitcell. Output Required Valid types Description phonopy_datatrue PhonopyDataThe phonopy data with supercells displacements, forces to use in the post-processing calculation. supercells_forcestrue ArrayData, TrajectoryDataThe forces acting on the atoms of each supercell. output_phonopyfalse supercellsfalse StructureDataThe supercells with displacements. Exit status Message 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:IntensitiesAverageWorkChainWorkchain that computes IR and Raman spatial and q-direction average spectra.
Input Required Valid types Description vibrational_datatrue VibrationalData, VibrationalFrozenPhononDataVibrational data containing force constants or frozen phonons forces, nac parameters and/or susceptibility derivatives. metadatafalse parametersfalse DictOptions for averaging on the non-analytical directions. Output Required Valid types Description ir_averagedtrue ArrayDataContains high frequency dielectric tensor computed in Cartesian coordinates. raman_averagedfalse ArrayDataContains Born effective charges tensors computed in Cartesian coordinates. unitsfalse DictUnits of intensities and frequencies. Exit status Message 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:IRamanSpectraWorkChainWorkchain 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
Input Required Valid types Description dielectrictrue DataInputs for the `DielectricWorkChain` that will beused to calculate the mixed derivatives with electric field. phonontrue DataInputs for the `PhononWorkChain` that will beused to calculate the force constants. settingstrue Options for how to run the workflow. structuretrue StructureDatasymmetrytrue Namespace for symmetry related inputs. clean_workdirfalse BoolIf `True`, work directories of all called calculation will be cleaned at the end of execution. intensities_averagefalse DataInputs for the `IntensitiesAverageWorkChain` that willbe used to run the average calculation over intensities. metadatafalse Output Required Valid types Description output_phonontrue Outputs of the `PhononWorkChain`. vibrational_datatrue VibrationalData, VibrationalFrozenPhononDataThe phonopy data with supercells displacements, forces and (optionally)nac parameters to use in the post-processing calculation. fakefalse output_dielectricfalse Outputs of the `DielectricWorkChain`. output_intensities_averagefalse Intensities average over space and q-points. Exit status Message 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.