Source code for vbeam.core.speed_of_sound

"""Interface for sampling the speed of sound on a line, typically the line between a 
:term:`sender` and a :term:`point`, and a :term:`point` and a :term:`receiver`. """

from abc import ABC, abstractmethod

from vbeam.fastmath import numpy as np


[docs] class SpeedOfSound(ABC):
[docs] @abstractmethod def average( self, sender_position: np.ndarray, point_position: np.ndarray, receiver_position: np.ndarray, ) -> float: """Sample the speed of sound between the sender, the point position, and the receiver, and return the average. All positions are arrays of three elements: (x, y, z)."""