pub struct GrainStructure {
pub grains: Vec<Grain>,
pub system_size: Vector3<f64>,
}Expand description
A simplified grain structure based on nearest-neighbor assignment to randomly placed grain centers (Voronoi-like tessellation).
Fields§
§grains: Vec<Grain>Individual grains with their properties.
system_size: Vector3<f64>System size in each dimension [m].
Implementations§
Source§impl GrainStructure
impl GrainStructure
Sourcepub fn generate(
num_grains: usize,
system_size: Vector3<f64>,
mean_diameter: f64,
diameter_spread: f64,
seed: u64,
) -> Result<Self>
pub fn generate( num_grains: usize, system_size: Vector3<f64>, mean_diameter: f64, diameter_spread: f64, seed: u64, ) -> Result<Self>
Generate a grain structure with num_grains randomly placed grain centers.
Each grain receives a random easy axis and a diameter drawn from a uniform
distribution around mean_diameter with spread diameter_spread.
§Arguments
num_grains- Number of grains to generatesystem_size- Physical dimensions of the simulation box [m]mean_diameter- Mean grain diameter [m]diameter_spread- Half-width of the uniform diameter distribution [m]seed- PRNG seed
§Errors
Returns an error if parameters are non-positive.
Trait Implementations§
Source§impl Clone for GrainStructure
impl Clone for GrainStructure
Source§fn clone(&self) -> GrainStructure
fn clone(&self) -> GrainStructure
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for GrainStructure
impl RefUnwindSafe for GrainStructure
impl Send for GrainStructure
impl Sync for GrainStructure
impl Unpin for GrainStructure
impl UnsafeUnpin for GrainStructure
impl UnwindSafe for GrainStructure
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> 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>
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§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 moreSource§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).Source§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.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.