use deep_causality_algebra::RealField;
use deep_causality_tensor::CausalTensor;
use deep_causality_topology::{LatticeComplex, Manifold};
use super::validate_graded_field;
use crate::error::physics_error::PhysicsError;
#[derive(Debug, Clone, PartialEq)]
pub struct PressureZeroForm<R: RealField> {
field: CausalTensor<R>,
}
impl<R: RealField> PressureZeroForm<R> {
pub fn new<const D: usize>(
field: CausalTensor<R>,
manifold: &Manifold<LatticeComplex<D, R>, R>,
) -> Result<Self, PhysicsError> {
validate_graded_field(&field, 0, "PressureZeroForm", manifold)?;
Ok(Self { field })
}
pub fn as_tensor(&self) -> &CausalTensor<R> {
&self.field
}
pub fn len(&self) -> usize {
self.field.len()
}
pub fn is_empty(&self) -> bool {
self.field.len() == 0
}
}