pub struct CartesianIdentity3d<R>where
R: CfdScalar + ConjugateScalar<Real = R>,{ /* private fields */ }Expand description
The Cartesian identity coordinate over a 2^Lx × 2^Ly × 2^Lz lattice with physical spacing
(dx, dy, dz).
Implementations§
Source§impl<R> CartesianIdentity3d<R>where
R: CfdScalar + ConjugateScalar<Real = R>,
impl<R> CartesianIdentity3d<R>where
R: CfdScalar + ConjugateScalar<Real = R>,
Sourcepub fn new(
lx: usize,
ly: usize,
lz: usize,
dx: R,
dy: R,
dz: R,
trunc: Truncation<R>,
) -> Result<Self, PhysicsError>
pub fn new( lx: usize, ly: usize, lz: usize, dx: R, dy: R, dz: R, trunc: Truncation<R>, ) -> Result<Self, PhysicsError>
Build the identity chart on a 2^lx × 2^ly × 2^lz lattice with physical spacing (dx, dy, dz).
§Errors
Propagates operator-assembly / codec errors.
Trait Implementations§
Source§impl<R> MetricProvider3d<R> for CartesianIdentity3d<R>where
R: CfdScalar + ConjugateScalar<Real = R>,
impl<R> MetricProvider3d<R> for CartesianIdentity3d<R>where
R: CfdScalar + ConjugateScalar<Real = R>,
Source§fn dims(&self) -> (usize, usize, usize)
fn dims(&self) -> (usize, usize, usize)
The computational lattice mode counts
(Lx, Ly, Lz) (grid is 2^Lx × 2^Ly × 2^Lz).Source§fn sample<F>(&self, f: F) -> Result<CausalTensorTrain<R>, PhysicsError>where
F: Fn(R, R, R) -> R,
fn sample<F>(&self, f: F) -> Result<CausalTensorTrain<R>, PhysicsError>where
F: Fn(R, R, R) -> R,
Sample
f(ξ, η, ζ) on the computational lattice (ξ_i = i/Nx, η_j = j/Ny, ζ_k = k/Nz) and
QTT-encode it. Read moreSource§fn physical_gradient(
&self,
u: &CausalTensorTrain<R>,
) -> Result<PhysicalGradient3d<R>, PhysicsError>
fn physical_gradient( &self, u: &CausalTensorTrain<R>, ) -> Result<PhysicalGradient3d<R>, PhysicsError>
The physical gradient
(∂u/∂x, ∂u/∂y, ∂u/∂z) of a field u carried in this coordinate, via
the chain rule and the low-rank metric. Read moreSource§fn jacobian(&self) -> &CausalTensorTrain<R>
fn jacobian(&self) -> &CausalTensorTrain<R>
The Jacobian determinant
|J| (the conservative volume factor) as a low-rank tensor train.Auto Trait Implementations§
impl<R> Freeze for CartesianIdentity3d<R>
impl<R> RefUnwindSafe for CartesianIdentity3d<R>where
CausalTensorTrainOperator<R>: RefUnwindSafe,
CausalTensorTrain<R>: RefUnwindSafe,
Truncation<R>: RefUnwindSafe,
impl<R> Send for CartesianIdentity3d<R>
impl<R> Sync for CartesianIdentity3d<R>
impl<R> Unpin for CartesianIdentity3d<R>
impl<R> UnsafeUnpin for CartesianIdentity3d<R>where
CausalTensorTrainOperator<R>: UnsafeUnpin,
CausalTensorTrain<R>: UnsafeUnpin,
Truncation<R>: UnsafeUnpin,
impl<R> UnwindSafe for CartesianIdentity3d<R>where
CausalTensorTrainOperator<R>: UnwindSafe,
CausalTensorTrain<R>: UnwindSafe,
Truncation<R>: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more