use crate::math::array::Array;
use crate::methods::finitedifferences::operators::{FdmLinearOpIterator, FdmLinearOpLayout};
use crate::shared::Shared;
use crate::types::{Real, Size};
pub trait FdmMesher {
fn layout(&self) -> &Shared<FdmLinearOpLayout>;
fn dplus(&self, iter: &FdmLinearOpIterator, direction: Size) -> Real;
fn dminus(&self, iter: &FdmLinearOpIterator, direction: Size) -> Real;
fn location(&self, iter: &FdmLinearOpIterator, direction: Size) -> Real;
fn locations(&self, direction: Size) -> Array;
}