MSUtils.voronoi.VoronoiSeeds.VoronoiSeeds#
- class MSUtils.voronoi.VoronoiSeeds.VoronoiSeeds(num_crystals=None, RVE_length=[1, 1, 1], method='sobol', BitGeneratorSeed=None, filename=None, grp_name=None)#
Bases:
object
Methods
read
write
- _generate_lattice(Nx, Ny, Nz, RVE_length, stagger=True)#
Generate points in a 3D lattice with optional staggering, ensuring symmetry across the xy, xz, and yz planes.
Parameters: - Nx: Number of points along the x-axis. - Ny: Number of points along the y-axis. - Nz: Number of points along the z-axis. - RVE_length: Lengths of the box in each dimension (x, y, z). - stagger: Boolean indicating whether to apply staggering.
Returns: - np.ndarray: Seed points in lattice arrangement.
- _generate_seeds()#
Returns:
seeds: Generated seed points of shape (num_crystals, 3).
lattice_vectors: Orthonormal lattice vectors for each seed. The array has a shape
- of (num_crystals, 3, 3), where:
The first dimension corresponds to each crystal.
The second dimension enumerates the three orthonormal vectors for each crystal.
The third dimension represents the three components of a vector (x, y, z).
Notes: A uniform distribution on the group of rotations SO(3) is used to assign random orientations to the grains of the aggregate. This is based on random variables X, Y, Z that are uniformly distributed on the interval [0, 1) to determine three Euler angles (z-x-z convention) via ϕ1 = 2πX, Φ = acos(2Y - 1), ϕ2 = 2πZ.