pub struct Material {
pub epsilon: Complex,
pub mu: Complex,
pub kappa: Complex,
}Expand description
Isotropic reciprocal material, optionally chiral.
Upstream: treams.Material. Differences: index keeps the
principal square root, as treams.coeffs.mie does, where Material.n flips its
sign for a negative imaginary part.
Fields§
§epsilon: ComplexRelative permittivity.
mu: ComplexRelative permeability.
kappa: ComplexChirality parameter.
Implementations§
Source§impl Material
impl Material
Sourcepub(super) fn pushforward(self, direction: Self) -> MaterialTangent
pub(super) fn pushforward(self, direction: Self) -> MaterialTangent
Directional derivatives of the derived optical parameters. direction stores
changes of epsilon, mu and kappa, rather than another physical material.
Sourcepub fn indices(self) -> [Complex; 2]
pub fn indices(self) -> [Complex; 2]
The negative and positive helicity indices sqrt(epsilon mu) -+ kappa, each
negated if its imaginary part is negative.
Upstream: treams.misc.refractive_index.
Sourcepub fn impedance(self) -> Complex
pub fn impedance(self) -> Complex
The relative impedance sqrt(mu / epsilon) on the principal branch.
Upstream: treams.Material.impedance.
Sourcepub(super) fn tangents(self) -> [MaterialTangent; 3]
pub(super) fn tangents(self) -> [MaterialTangent; 3]
Derivatives of the index, impedance and chirality with respect to epsilon, mu and kappa, in that order.
Trait Implementations§
impl Copy for Material
Auto Trait Implementations§
impl Freeze for Material
impl RefUnwindSafe for Material
impl Send for Material
impl Sync for Material
impl Unpin for Material
impl UnwindSafe for Material
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
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>
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>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
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
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.