pub struct FresnelResidual {
ks: [[Complex; 2]; 2],
kzs: [[Complex; 2]; 2],
zs: [Complex; 2],
}Expand description
What fresnel saves for its pullback: the wavenumbers, the normal wavenumbers and
the impedances. The pullback differentiates the closed forms again instead of keeping
a Jacobian.
Fields§
§ks: [[Complex; 2]; 2]§kzs: [[Complex; 2]; 2]§zs: [Complex; 2]Implementations§
Source§impl FresnelResidual
impl FresnelResidual
Sourcepub fn state_size() -> Result<usize>
pub fn state_size() -> Result<usize>
Byte length of one Fresnel derivative state.
Source§impl FresnelResidual
impl FresnelResidual
Sourcepub fn pushforward(
&self,
ks: [[Complex; 2]; 2],
kz: [[Complex; 2]; 2],
z: [Complex; 2],
) -> Result<Blocks>
pub fn pushforward( &self, ks: [[Complex; 2]; 2], kz: [[Complex; 2]; 2], z: [Complex; 2], ) -> Result<Blocks>
Propagate one joint wavenumber, normal-wavenumber and impedance direction.
Sourcepub fn pullback(&self, cotangent: &Blocks) -> Result<FresnelGradient>
pub fn pullback(&self, cotangent: &Blocks) -> Result<FresnelGradient>
The gradients of all ten complex inputs under the real pairing Re Σ conj(g)·dx.
Trait Implementations§
Source§impl Debug for FresnelResidual
impl Debug for FresnelResidual
Source§impl SavedState for FresnelResidual
impl SavedState for FresnelResidual
Auto Trait Implementations§
impl Freeze for FresnelResidual
impl RefUnwindSafe for FresnelResidual
impl Send for FresnelResidual
impl Sync for FresnelResidual
impl Unpin for FresnelResidual
impl UnwindSafe for FresnelResidual
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§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.