Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EMEBSDDI version 5_0_20200714_ on Linux (Ubuntu 20.04) fails, apparently jumps over indexing step #120

Open
hakonanes opened this issue Jul 14, 2020 · 9 comments

Comments

@hakonanes
Copy link
Contributor

Hello!

Running EMEBSDDI on Windows with binaries from Bluequartz (EMsoft-5.0.20200714.-Win64.zip) works nicely, but on Linux with the same pattern and NML file fails with the output:

> EMEBSDDI sic_4h_ebsddi.nml 


 Copyright (C) 2001-2019 Marc De Graef Research Group/CMU
 EMsoft comes with ABSOLUTELY NO WARRANTY.
 This is free software, and you are welcome to redistribute it
 under certain conditions; see License.txt file for details.


 Program name         : EMEBSDDI.f90
 Purpose              : Program to index EBSD patterns using a dynamically calculated pattern dictionary
 Platform             : Linux
 Source code version  : 5_0_20200714_
 Source code Revision : 
 Build Date/Time      : 2020-07-14 15:49:24Z

 See https://github.com/EMsoft-org/EMsoft/wiki for selected help pages.

 Jul 14 2020   6:56:34.695 PM


Number of command line arguments detected:           1
 Array size analysis
 ===================
 Ne           :         1024
 Nd           :         1024
 L            :         9216
 size result array  :      4194304
 size_in_bytes_dict :              37748736
 size_in_bytes_expt :              37748736
 Total allocations on GPU (Mb):                    76
 reading from xtalfile si_carbide_4h\si_carbide_4h.xtal
Orientation space sampling mode set to RFZ
Point group number and number of cubochoric sampling points :  25,  100
 Number of unique orientations sampled =        :  666187
--> Initializing OpenCL device
--> Allocating various arrays for indexing
Preprocessing experimental patterns
Creating temporary file :/home/hakon/.config/EMsoft/tmp/1_4h.data
 -> Number of threads set to  4
Starting processing of experimental patterns
 pattern size :  96 x   96
Completed row   5 of  350 rows
[...]
Completed row 350 of  350 rows
 -> experimental patterns preprocessed
Number of experimental patterns processed per second :    4819.7

 -> computing Average Dot Product map (ADP)

 -> Number of threads set to  4
 Jul 14 2020   6:57:43.601 PM
  actual number of OpenMP threads  =            4
Indexing duration (system_clock, s)                :
         3.514
Number of pattern comparisons per second           :
**************
Number of experimental patterns indexed per second :
     20916.336

At line 899 of file /home/hakon/kode/emsoft/EMsoft/Source/EMsoftHDFLib/EMh5ebsd.f90
Fortran runtime error: Index '0' of dimension 2 of array 'eulerarray' outside of expected range (1:666624)

Error termination. Backtrace:
#0  0x7f8fd444ecd1 in ???
#1  0x7f8fd444f819 in ???
#2  0x7f8fd444fe96 in ???
#3  0x5599c41a5320 in __emh5ebsd_MOD_h5ebsd_writefile
	at /home/hakon/kode/emsoft/EMsoft/Source/EMsoftHDFLib/EMh5ebsd.f90:899
#4  0x5599c411e868 in EBSDDIdriver
	at /home/hakon/kode/emsoft/EMsoft/Source/EMOpenCLLib/Indexingmod.f90:1288
#5  0x5599c40d22b9 in emebsddi
	at /home/hakon/kode/emsoft/EMsoft/Source/DictionaryIndexing/EMEBSDDI.f90:86
#6  0x5599c40d22f6 in main
	at /home/hakon/kode/emsoft/EMsoft/Source/DictionaryIndexing/EMEBSDDI.f90:54

I would have though I did something wrong, however it works fine on Windows... Anyone experiencing the same on Linux?

@hakonanes
Copy link
Contributor Author

Also, don't know if it is related to this issue, but after a successful indexing on Windows, the dot product file dataset Scan 1/EBSD/Data/FZcnt is 666187 while the dataset Scan 1/EBSD/Data/DictionaryEulerAngles has the shape (666624, 3). The point group number is 25 (space group 186).

@marcdegraef
Copy link
Collaborator

marcdegraef commented Jul 15, 2020 via email

@hakonanes
Copy link
Contributor Author

Of course, thanks for the quick response!

@hakonanes
Copy link
Contributor Author

hakonanes commented Jul 15, 2020

Just to be 100% sure, am I correct in assuming that the indices in the TopMatchIndices dataset are 1-indices, and not 0-indices, into the DictionaryEulerAngles dataset? I.e. a TopMatchIndices element of value 1 points to the first element in DictionaryEulerAngles?

@hakonanes
Copy link
Contributor Author

hakonanes commented Sep 5, 2020

I still experience this issue. Apparently indexmain is 0 when it tries to index into the Euler angle dictionary array in various routines.

@aleslagter
Copy link

Hello Håkon,

I am seeing the exact same error that you report here. Running this on linux on a HPC I see:


At line 899 of file /projects/a9009/sbc538/tickets/197097/EMsoft/Source/EMsoftHDFLib/EMh5ebsd.f90
Fortran runtime error: Index '0' of dimension 2 of array 'eulerarray' outside of expected range (1:999808)

Error termination. Backtrace:
#0  0x2b52e43b5960 in ???
#1  0x2b52e43b64d9 in ???
#2  0x2b52e43b6ad6 in ???
#3  0x5555cb096117 in __emh5ebsd_MOD_h5ebsd_writefile
	at /projects/a9009/sbc538/tickets/197097/EMsoft/Source/EMsoftHDFLib/EMh5ebsd.f90:899
#4  0x5555cb071f33 in EBSDDIdriver
	at /projects/a9009/sbc538/tickets/197097/EMsoft/Source/EMOpenCLLib/Indexingmod.f90:1378
#5  0x5555caf0a137 in emebsddi
	at /projects/a9009/sbc538/tickets/197097/EMsoft/Source/DictionaryIndexing/EMEBSDDI.f90:88
#6  0x5555caf0a568 in main
	at /projects/a9009/sbc538/tickets/197097/EMsoft/Source/DictionaryIndexing/EMEBSDDI.f90:54

Did you find a solution for this?
Thank you!

Alejandra

@hakonanes
Copy link
Contributor Author

hakonanes commented Aug 25, 2024

Hi @aleslagter, sorry, but I cannot remember what the solution was in the end.

Which version of EMsoft are you using? Have you tried EMsoftOO? This is version 6, the newest one.

@aleslagter
Copy link

Hi @hakonanes, thank you for your reply!

I am running the develop version, since this is the one that was installed on the HPC that I am using (I am really new to dictionary indexing).
I might try the EMsoftOO version in the near future if it can be successfully installed in the HPC, and was considering trying kikuchipy in the meantime. I understand that kikuchipy should yield similar results to those of EMsoft, is this correct? I am in particular interested in resolving pseudo-symmetry.

Any advice is more than welcome!

For this particular error I tried different combinations of parameters in the .nml file and different format files and got always the same error. I am not even sure it is related to the input parameters or input file that is loaded, since the error seems to come from the index that is assigned when creating the grid of euler angles to map (if I got some of it right...).
I even tried indexing a single pattern an loading an euler.txt file with a single orientation, setting the numdictsingle and numexptsingle to 1, and got the exact same error.

@hakonanes
Copy link
Contributor Author

Similar, although kikuchipy has re-implemented dictionary indexing without energy weighting of master patterns (just one available energy provided by the user). This may yield different results in some challenging cases.

Pseudo-symmetry may be resolved in the refinement step after dictionary indexing. For each pattern, the best-matching dictionary orientation and the pseudo-symmetrical equivalents, obtained by applying pseudo-symmetry operations defined by the user, are refined, and the best solution is the result. We can do this with EMsoft using the EMFitOrientation program: https://github.com/EMsoft-org/EMsoftOO/blob/5d9bd108a034365767e655b5a6817981ac1a27be/NamelistTemplates/EMFitOrientation.template#L45-L49. We have a similar option in kikuchipy (https://kikuchipy.org/en/stable/reference/generated/kikuchipy.signals.EBSD.refine_orientation.html). If you're not sure of the pseudo-symmetry operations, you may get some help by using the EMeqvPS program: https://github.com/EMsoft-org/EMsoftOO/wiki/EMeqvPS.

Good luck!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants