Skip to content

Commit

Permalink
Merge branch 'main' into backup-pockels
Browse files Browse the repository at this point in the history
  • Loading branch information
bastonero authored Jan 16, 2025
2 parents 375ce50 + 7b6ef34 commit e9e86ab
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/aiida_vibroscopy/calculations/spectra_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
from __future__ import annotations

from copy import deepcopy
from typing import Tuple, Union
from typing import Tuple,

from aiida import orm
from aiida.engine import calcfunction
Expand Down
2 changes: 2 additions & 0 deletions src/aiida_vibroscopy/common/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@
elementary_charge_si=1.602176634e-19, # elementary charge in Coulomb
electron_mass_si=units.Me, # electron mass in kg
atomic_mass_si=units.AMU, # atomic mass unit in kg
raman_xsection=1.0e24 * 1.054571817e-34 / (2.0 * units.SpeedOfLight**4 * units.AMU * units.THzToCm**3
) # removed 1/4pi due to convention on Chi2 for the correction
# to be defined:
# * kelvin to eV
# * nm to eV
Expand Down
53 changes: 53 additions & 0 deletions tests/calculations/test_spectra.py
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,59 @@ def test_compute_methods(generate_phonopy_instance, generate_third_rank_tensors,
ndarrays_regression.check(results, default_tolerance=dict(atol=1e-4, rtol=1e-4))


def test_generate_vibrational_data_from_forces(generate_vibrational_data_from_forces, ndarrays_regression):
"""Test `generate_vibrational_data_from_phonopy`."""
vibro = generate_vibrational_data_from_forces()
assert np.abs(abs(alpha_comp) - abs(alpha_theo)) < 1e-3


def test_compute_methods(generate_phonopy_instance, generate_third_rank_tensors, ndarrays_regression):
"""Test the post-processing methods with data regression techniques."""
from aiida_vibroscopy.calculations.spectra_utils import (
compute_active_modes,
compute_complex_dielectric,
compute_raman_space_average,
compute_raman_susceptibility_tensors,
)

results = {}
ph = generate_phonopy_instance()
ph.symmetrize_force_constants()
raman, chi2 = generate_third_rank_tensors()

freqs, _, _ = compute_active_modes(phonopy_instance=ph)
results['active_modes_freqs'] = freqs
# results['active_modes_eigvecs'] = eigenvectors

freqs, _ , _ = compute_active_modes(phonopy_instance=ph, nac_direction=[0,0,1])
results['active_modes_nac_freqs'] = freqs
# results['active_modes_nac_eigvecs'] = eigenvectors

alpha, _, _ = compute_raman_susceptibility_tensors(ph, raman, chi2)
ints_hh, ints_hv = compute_raman_space_average(alpha)
# results['raman_susceptibility_tensors'] = alpha
results['intensities_hh'] = ints_hh
results['intensities_hv'] = ints_hv

# alpha, _, _ = compute_raman_susceptibility_tensors(ph, raman, chi2, nac_direction=[0,0,1])
# results['raman_susceptibility_tensors_nac'] = alpha

# pols, _, _ = compute_polarization_vectors(ph)
# results['polarization_vectors'] = pols

# pols, _, _ = compute_polarization_vectors(ph, nac_direction=[0,0,1])
# results['polarization_vectors_nac'] = pols

freq_range = np.linspace(10,1000,900)
eps = compute_complex_dielectric(ph, freq_range=freq_range)
results['complex_dielectric'] = eps

eps = compute_complex_dielectric(ph, nac_direction=[0,0,1], freq_range=freq_range)
results['complex_dielectric_nac'] = eps

ndarrays_regression.check(results, default_tolerance=dict(atol=1e-4, rtol=1e-4))


def test_generate_vibrational_data_from_forces(generate_vibrational_data_from_forces, ndarrays_regression):
"""Test `generate_vibrational_data_from_phonopy`."""
vibro = generate_vibrational_data_from_forces()
Expand Down

0 comments on commit e9e86ab

Please sign in to comment.