Filter "find feature neighbors" with periodic boundary condition

99 views
Skip to first unread message

Gyu-Jang Sim

unread,
Jan 9, 2024, 6:40:31 PM1/9/24
to dream3d-users
Hi,

I've got dream3d-reconstructing pipeline, which uses grainID_n.txt and orientations_n.txt as input (attatches below)

In the pipeline, there is a "find feature neighbors" filter, but I found out that this does not find neighboring grain across the boundary.Capture.PNG
For example, as in capture above, when the grain 36 and grain 2 are neighboring across the boundary, the "find feature neighbors" cannot find the neighbor.

How may I modify this?

Best regards,
Gyu-Jang Sim


grainID_0.txt
orientations_0.txt

Michael Jackson

unread,
Jan 11, 2024, 1:16:43 PM1/11/24
to Gyu-Jang Sim, dream3d-users
The “Find Feature Neighbors” filter does not work across periodic boundaries. You would need to essentially write a new algorithm and compute this yourself. With the new version of DREAM3DNX, there are some low level python bindings available that might help you write a DREAM3D Filter or just be able to get at the DREAM3D data from a .dream3d file more easily. Not sure which version of DREAM3D you are using. 

--
Mike Jackson
Principal DREAM.3D Developer


--
You received this message because you are subscribed to the Google Groups "dream3d-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dream3d-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/dream3d-users/ede4758a-64ac-426b-8c81-99f0ee8460a7n%40googlegroups.com.


stopk...@gmail.com

unread,
Jan 12, 2024, 9:23:33 AM1/12/24
to dream3d-users
Hi Gyu-Jang Sim,

I believe your question is in reference to the data available at Materials Commons (https://doi.org/10.13011/m3-31wm-h036). Although you may not be able to determine grain neighbors using just the "grainID_#.txt" and "orientations_#.txt" files for the periodic model, I actually included this information in the Features.csv file for each microstructure model in that data set. The first part of the .csv files is the information for each grain (e.g., orientation, centroid, etc.), but after that there is another section that specifies the number of neighbors for each grain with grain IDs and also the shared surface area between neighbors. Unfortunately, when I generated those models, I did not include the misorientation between neighboring grains. However, if you really need this, you should be able to read in this feature attribute array from the .csv file (you may need to save it in some other format) into DREAM.3D (into an attribute matrix) and then run the "Find Feature Neighbor Misorientations" filter to get that last bit of neighbor information. 

Best regards,
Kris

Krzysztof Stopka

Gyu-Jang Sim

unread,
Jan 12, 2024, 11:47:58 PM1/12/24
to dream3d-users

To Krzysztof Stopka,


Thank you for your advice.


Luckily I have found a way to solve this. 


All I had to do was just duplicate the same SVE 3x3x3, so that neighboring relationship across the boundary can be read. 


It was easily implemented by np.tile() function.


I really appreciate your help.


Gyu-Jang Sim


2024년 1월 12일 금요일 오전 7시 23분 33초 UTC-7에 stopk...@gmail.com님이 작성:
Reply all
Reply to author
Forward
0 new messages