This module contains functions related to mesh verification.

microstructpy.verification.error_stats(fit_seeds, seeds, phases, poly_mesh=None, verif_mask=None)[source]

Error statistics for seeds

This function creates a dictionary of error statistics for each of the input distributions in the phases.

  • fit_seeds (SeedList) – List of seeds of best fit.
  • seeds (SeedList) – List of seeds.
  • phases (list) – List of input phase dictionaries.
  • poly_mesh (PolyMesh) – (optional) Polygonal/polyhedral mesh.
  • verif_mask (list or numpy.ndarray) – (optional) Mask for seeds to be included in the analysis. Defaults to all True.

List with the same size and dictionary keywords as phases, but with error statistics dictionaries in each entry.

Return type:


microstructpy.verification.mle_phases(seeds, phases, poly_mesh=None, verif_mask=None)[source]

Get maximum likelihood estimators (MLEs) for phases

This function finds distributions in the list of phases and computes the MLE parameters for those distributions. The returned value is a list of phases with the same length and dictionary keywords, except the distributions are replaced with MLE distributions (based on the seeds). Constant values are replaced with the mean of the seed values.

Note that the directional statistics are not used - so the results for orientation angles and matrices are unreliable.

Also note that SciPy currently does not support MLEs for discrete random variables. Any discrete distributions will be given a histogram output.


Directional statistics are not used and as such the results for orientation angles and matrices are unreliable. The only exception is normally distributed orientation angles.

  • seeds (SeedList) – List of seeds.
  • phases (list) – List of input phase dictionaries.
  • poly_mesh (PolyMesh) – (optional) Polygonal/polyhedral mesh.
  • verif_mask (list or numpy.ndarray) – (optional) Mask for which seeds to include in the MLE parameter calculation. Default is True for all seeds.
microstructpy.verification.plot_distributions(seeds, phases, dirname='.', ext='png', poly_mesh=None, verif_mask=None)[source]

Plot comparison between input and output distributions

This function takes seeds and compares them against the input phases. A polygon mesh can be included for cases where grains are given an area or volume distribution, rather than size/shape/etc.

This function creates both PDF and CDF plots.

  • seeds (SeedList) – List of seeds to compare.
  • phases (list) – List of phase dictionaries.
  • dirname (str) – (optional) Plot output directory. Defaults to ..
  • ext (str or list) – (optional) File extension(s) of the output plots. Defaults to 'png'.
  • poly_mesh (PolyMesh) – (optional) Polygonal mesh, useful for phases with an area or volume distribution.

none, creates plot files.

microstructpy.verification.plot_volume_fractions(vol_fracs, phases, filename='volume_fractions.png')[source]

Plot volume fraction verification

This function creates a bar chart comparing the input and output volume fractions. If the input volume fraction is distributed, the top of the bar will be a curve representing the CDF of the distribution.

  • vol_fracs (list or numpy.ndarray) – Output volume fractions.
  • phases (list) – List of phase dictionaries
  • filename (str or list) – (optional) Filename(s) to save the plot. Defaults to volume_fractions.png.

none, writes plot to file.

microstructpy.verification.seeds_of_best_fit(seeds, phases, pmesh, tmesh)[source]

Calculate seed geometries of best fit

This function computes the seeds of best fit for the resultant polygonal and triangular meshes. It calls the the best_fit function of each seed’s geometry, then copies the other seed attributes to create a new SeedList.

The points on the faces of the grains are used to determine a fit geometry. Points on the exterior of the domain are not used since they would alter the shape of the best fit seed.

  • seeds (SeedList) – List of seed geometries.
  • phases (list) – List of material phases. See Phase Dictionaries for more information on formatting.
  • pmesh (PolyMesh) – Resultant polygonal/polyhedral mesh.
  • tmesh (TriMesh) – Resultant triangular/tetrahedral mesh.

List of seeds of best fit.

Return type:


microstructpy.verification.volume_fractions(poly_mesh, n_phases)[source]

Verify volume fractions

This function computes the volume fractions of each phase in the output mesh. It does so by summing the volumes of the cells in the polygonal mesh.

  • poly_mesh (PolyMesh) – The polygonal/polyhedral mesh.
  • n_phases (int) – Number of phases.

Volume fractions of each phase in the poly mesh.

Return type:


microstructpy.verification.write_error_stats(errs, phases, filename='error_stats.txt')[source]

Write error statistics to file

This function takes previously computed error statistics and writes them to a human-readable text file.

  • errs (list) – List of error statistics for each input phase parameter. Organized the same as phases.
  • phases (list) – List of input phases. See Phase Dictionaries for more details.
  • filename (str) – (optional) The name of the file to contain the error statistics. Defaults to error_stats.txt.
microstructpy.verification.write_mle_phases(inp_phases, out_phases, filename='mles.txt')[source]

Write MLE parameters in a table

This function writes out a text file containing the input parameters and maximum likelihood estimators (MLEs) for the outputs.

  • inp_phases (list) – List of input phase dictionaries.
  • out_phases (list) – List of output phase dictionaries.
  • filename (str) – (optional) Filename of the output table. Defaults to mles.txt.

none, writes file.

microstructpy.verification.write_volume_fractions(vol_fracs, phases, filename='volume_fractions.txt')[source]

Write volume fractions to a file

Write the volume fractions verification out to a file. The output columns are:

  1. Phase number
  2. Phase name
  3. Input relative volume (average, if distributed)
  4. Output relative volume
  5. Input volume fraction (average, if distributed)
  6. Output volume fraction

The first three lines of the output file are headings.

  • vol_fracs (list or numpy.ndarray) – Volume fractions of the output mesh.
  • phases (list) – List of phase dictionaries.
  • filename (str) – (optional) Name of file to write. Defaults to volume_fractions.txt.

none, prints formatted volume fraction verification table to file