Skip to content

Virtual Machine Apps

Marc DeGraef edited this page Dec 26, 2018 · 2 revisions

IDL Virtual Machine Apps

Many of the EMsoft programs produce output in the open source HDF5 format. This format can be read by many different programming languages, including python, Matlab, etc. The Interactive Data Language (IDL) has been used by our group at CMU for the past 25 years as a rapid-scripting environment to try out algorithms before we code them up in f90 or some other high level language. Over the past couple of years, we have created IDL applications, mostly for internal use, to visualize the data stored in the EMsoft HDF5 files, or to carry out complex tasks such as determining the detector parameters for an EBSD experiment.

Since IDL provides tools to generate stand-along Virtual Machine applications, we thought it might be a good idea to make some of our interfaces available to the community. The source code for all the apps is part of the regular source code repository (this one) on GitHub, so users who happen to have a valid IDL license can directly compile and runs them. For everyone else, we make available pre-compiled apps for Mac OS X, Windows 10, and Linux. We write the apps (and extensively test them) on Mac OS X, and then we use the IDL tools to generatethe VM apps for all three platforms. That means that we do not have the ability to check and ebug the apps on Windows 10 and Linux.

The following apps are currently available (and they have their own wiki help pages):

  • SEMDisplay: this is an interactive program to compute EBSD, TKD, or ECP patterns based on master pattern HDF5 files generated by several EMsoft programs. The user can define the detector parameters and generate diffraction patterns as needed.
  • efit: this is a fitting program to refine EBSD detector parameters.
  • CBEDDisplay: a basic program to visualize convergent beam electron diffraction (CBED) patterns based on output from the EMLACBED program.

Note that several of the IDL VM apps require access to an EMsoft dynamic library called EMsoftLib. There are two ways to obtain this library:

  • If you compiled EMsoft yourself on Mac OS X or Linux, then you will need to build a dynamic library first so that the VM apps can access some of the EMsoft routines. See instructions on the IDL-scripts wiki page on how to do this. On Windows, all libraries are dynamic (dll) from the start, so no need to build anything.
  • If you downloaded the nightly builds instead, then the dynamic library should in principle already be installed, so no need to do anything else.

Once you have the library, you need to tell EMsoft where it is located; this can be done with the EMsoftLibraryLocation variable in the configuration file. Typically, you would set this variable to the Bin folder that contains all executables and libraries. Make sure to terminate the path with a / character!

Information for Users

Home

SEM Modalities     - Monte Carlo Simulations
    - EBSD Master Pattern Simulations
    - EBSD Overlap Master Patterns
    - EBSD Pattern Simulations
    - EBSD Dictionary Indexing
    - EBSD Spherical Indexing
    - EBSD Reflector Ranking
    - EBSD HREBSD
    - ECP Master Pattern Simulations
    - ECP Pattern Simulations
    - TKD Master Pattern Simulations
    - TKD Pattern Simulations
    - ECCI Defect Image Simulations
TEM Modalities     - HH4
    - PED
    - CBED Pattern Simulations
    - STEM-DCI Image Simulations
    - EMIntegrateSTEM utility
XRD Modalities     - Laue Master Pattern Simulation
    - EMLaue
    - EMLaueSlit
General Parameter Definitions * Foil Defect Configuration Definitions
EMsoftWorkbench
Utility Programs     - EMConvertOrientations
    - EMDisorientations
    - EMHOLZ
    - EMKikuchiMap
    - EMOpenCLinfo
    - EMZAgeom
    - EMcuboMK
    - EMdpextract
    - EMdpmerge
    - EMdrawcell
    - EMeqvPS
    - EMeqvrot
    - EMfamily
    - EMGBO
    - EMGBOdm
    - EMgetEulers
    - EMgetOSM
    - EMlatgeom
    - EMlistSG
    - EMlistTC
    - EMmkxtal
    - EMorbit
    - EMorient
    - EMqg
    - EMsampleRFZ
    - EMshowxtal
    - EMsoftSlackTest
    - EMsoftinit
    - EMstar
    - EMstereo
    - EMxtalExtract
    - EMxtalinfo
    - EMzap
IDL Scripts     - Virtual Machine Apps
    - SEMDisplay
    - Efit
    - CBEDDisplay
python wrappers     - python examples
Docker     - Docker Image

Complete Examples

  1. Crystal Data Entry Example
  2. EBSD Example
  3. ECP Example
  4. TKD Example
  5. ECCI Example
  6. CBED Example
  7. Dictionary Indexing Example
  8. DItutorial

Information for Developers

Clone this wiki locally