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.