use crate::datatype::{Current, Gradient, Point};
use crate::error::Result;
use super::CurrentData;
#[allow(dead_code)]
pub(crate) const DEFAULT_CURRENT: ConstantCurrent = ConstantCurrent { u: 0.0, v: 0.0 };
pub(crate) struct ConstantCurrent {
u: f64,
v: f64,
}
#[allow(dead_code)]
impl ConstantCurrent {
pub(crate) fn new(u: f64, v: f64) -> Self {
ConstantCurrent { u, v }
}
}
impl CurrentData for ConstantCurrent {
fn current(&self, _point: &Point<f64>) -> Result<Current<f64>> {
Ok(Current::new(self.u, self.v))
}
fn current_and_gradient(
&self,
_point: &Point<f64>,
) -> Result<(Current<f64>, (Gradient<f64>, Gradient<f64>))> {
Ok((
Current::new(self.u, self.v),
(Gradient::new(0.0, 0.0), Gradient::new(0.0, 0.0)),
))
}
}