BlueQuartzSoftware / simplnx

The backend algorithms and framework associated with DREAM3DNX, a data analysis program for materials science data analytics
http://www.dream3d.io/
Other
6 stars 9 forks source link

ENH: Allow the "Merge Twins" and/or "Find Twin Boundaries" filters to compute twin length or area fraction. #909

Open StopkaKris opened 3 months ago

StopkaKris commented 3 months ago

Is there an existing plan for this?

Description of the Feature, Filter, or Functionality?

It is common for us to want to know the twin area (or length, if users have 2D EBSD scans or models) fraction, i.e., the ratio of grain boundary areas that share the twin orientation relationship to the total grain boundary area. The filter enhancement would add an array to the Cell Ensemble Attribute Matrix and report a float for the twin length or area fraction.

Although these filters currently work for only Sigma 3 grain boundaries in FCC materials, a very long term extension could be applying it to any special grain boundary desired by the user.

Version

7.0.x (DREAM3DNX beta)

What section did you foresee your suggestion falling in? [Further details may be required during triage process]

No response

High Level Steps To Implement

Those filters already iterate through all the grain boundaries to determine misorientation across them. This enhancement would keep track of the area of those grain boundaries of interest (most commonly, the Sigma 3 grain boundaries) and then just divide this by the total sum of grain boundary area (or length, if users are working with a 2D EBSD scan or microstructure).

Anything else?

No response

Code of Conduct

imikejackson commented 3 months ago

@StopkaKris I like this idea. I'd need additional help to properly calculate the requested statistics. You are saying that the Twin length is reported on a per-phase basis? I would have thought it would be reported as "per grain" or "per-twin"?

StopkaKris commented 3 months ago

@imikejackson The twin length (2D) or twin area (3D) fraction is typically reported for each phase, and would be of most use. I'm happy to help with this effort.

In terms of per-grain or per-twin: I think it might also be useful to store, for each feature, the information about how much line (2D) or area (3D) it shares with neighboring features that satisfy the twin relationship vs. a 'regular' grain boundary. The per-feature information is already available since the shared surface area and misorientation between neighboring features can be calculated, so maybe this can also be reported as a list. But I would say this should not be a priority.

As a note, there are other twin metrics that may be useful for users, for example number of twins per parent grain, twin thickness, etc., but these are more complex to determine and are very specific.

StopkaKris commented 2 months ago

@imikejackson Another metric we should include is the number fraction of twin boundaries, which we should also get "for free".