Skip to content

Commit

Permalink
moved abstract classes to their own file
Browse files Browse the repository at this point in the history
this should help avoid circular imports
  • Loading branch information
wolearyc committed Sep 26, 2024
1 parent baa8795 commit f7858ea
Show file tree
Hide file tree
Showing 9 changed files with 48 additions and 58 deletions.
1 change: 1 addition & 0 deletions cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@
"outcars",
"pathify",
"phonopy",
"pmodel",
"polarizabilities",
"POSCAR",
"POTCAR",
Expand Down
41 changes: 40 additions & 1 deletion ramannoodle/spectrum/abstract.py → ramannoodle/abstract.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,34 @@
"""Abstract spectra."""
"""Abstract classes."""

from abc import ABC, abstractmethod


import numpy as np
from numpy.typing import NDArray


class PolarizabilityModel(ABC): # pylint: disable=too-few-public-methods
"""Abstract polarizability model."""

@abstractmethod
def calc_polarizabilities(
self, positions_batch: NDArray[np.float64]
) -> NDArray[np.float64]:
"""Return estimated polarizabilities for a batch of fractional positions.
Parameters
----------
positions_batch
(fractional) Array with shape (S,N,3) where S is the number of samples
and N is the number of atoms.
Returns
-------
:
Array with shape (S,3,3).
"""


class RamanSpectrum(ABC): # pylint: disable=too-few-public-methods
"""Abstract class for Raman spectra."""

Expand Down Expand Up @@ -42,3 +65,19 @@ def measure( # pylint: disable=too-many-arguments
#. intensities -- (arbitrary units) Array with shape (M,).
"""


class Dynamics(ABC): # pylint: disable=too-few-public-methods
"""Abstract class for atomic dynamics."""

@abstractmethod
def get_raman_spectrum(
self, polarizability_model: PolarizabilityModel
) -> RamanSpectrum:
"""Calculate a raman spectrum using a polarizability model.
Parameters
----------
polarizability_model
Must be compatible with the dynamics.
"""
22 changes: 0 additions & 22 deletions ramannoodle/dynamics/abstract.py

This file was deleted.

4 changes: 2 additions & 2 deletions ramannoodle/dynamics/phonon.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
import numpy as np
from numpy.typing import NDArray

from ramannoodle.dynamics.abstract import Dynamics
from ramannoodle.abstract import Dynamics
from ramannoodle.constants import RAMAN_TENSOR_CENTRAL_DIFFERENCE
from ramannoodle.pmodel.abstract import PolarizabilityModel
from ramannoodle.abstract import PolarizabilityModel
from ramannoodle.spectrum.raman import PhononRamanSpectrum
from ramannoodle.exceptions import verify_ndarray_shape

Expand Down
4 changes: 2 additions & 2 deletions ramannoodle/dynamics/trajectory.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
import numpy as np
from numpy.typing import NDArray

from ramannoodle.dynamics.abstract import Dynamics
from ramannoodle.pmodel.abstract import PolarizabilityModel
from ramannoodle.abstract import Dynamics
from ramannoodle.abstract import PolarizabilityModel
from ramannoodle.exceptions import verify_ndarray_shape, get_type_error
from ramannoodle.spectrum.raman import MDRamanSpectrum
from ramannoodle.structure.utils import apply_pbc
Expand Down
28 changes: 0 additions & 28 deletions ramannoodle/pmodel/abstract.py

This file was deleted.

2 changes: 1 addition & 1 deletion ramannoodle/pmodel/interpolation.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
from scipy.interpolate import make_interp_spline, BSpline

from ramannoodle.constants import ANSICOLORS
from ramannoodle.pmodel.abstract import PolarizabilityModel
from ramannoodle.abstract import PolarizabilityModel
from ramannoodle.structure.utils import calc_displacement
from ramannoodle.structure.symmetry_utils import (
is_orthogonal_to_all,
Expand Down
2 changes: 1 addition & 1 deletion ramannoodle/pmodel/torch/gnn.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
UserError,
verify_ndarray_shape,
)
from ramannoodle.pmodel.abstract import PolarizabilityModel
from ramannoodle.abstract import PolarizabilityModel

try:
import torch
Expand Down
2 changes: 1 addition & 1 deletion ramannoodle/spectrum/raman.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

from ramannoodle.exceptions import get_type_error, verify_ndarray_shape
from ramannoodle.constants import BOLTZMANN_CONSTANT
from ramannoodle.spectrum.abstract import RamanSpectrum
from ramannoodle.abstract import RamanSpectrum

from ramannoodle.spectrum.utils import calc_signal_spectrum

Expand Down

0 comments on commit f7858ea

Please sign in to comment.