PARAPROBE is a collection of open source tools for efficient analyses of Atom Probe Tomography (APT) and Field Ion Microscopy (FIM) data. The toolbox does not replace but complement existent APT/FIM software tools.
PARAPROBE is a collection of individual tools, each is specialized for a specific task: the loading of data from e.g. IVAS, the creating of synthetic specimens, the computing of dense alpha shape triangle hulls to define the specimen boundary, of spatial statistics, atom probe crystallography methods, and the generation and characterization of full volume tessellations.
PARAPROBE is designed for workstations and computer clusters. The tools offer strong scaling performance, i.e. they make the most of multi-core CPUs and GPUs.
The toolbox is developed by Markus_ Kühbach, a scientific computing Postdoc with the Max-Planck BiGmax’s research network at the Max-Planck-Institut für Eisenforschung GmbH (MPIE) in Düsseldorf.
Feel free to utilize the tool. In doing so, feel free to suggest me_ any improvements or analysis features that you think would be great to have or improve in PARAPROBE.
1. Getting started¶
This documentation should serve as a guide through PARAPROBE. In case of questions, feel free to ask me. In these sections you will learn to work with PARAPROBE as a user. For advanced users and software developers there is a developer section with more details.
- PARAPROBE - Pros
- PARAPROBE - Cons
- FAQ
- What is the key idea behind PARAPROBE?
- Which operating system is supported?
- Which specimens are processable?
- Which type of computer do I need?
- Which additional software do I need?
- What else is useful to know?
- Third-party tools
- Compilers required
- So, which tools do I need for what?
- How to get my IVAS data into PARAPROBE?
- What to do with the PARAPROBE results?
- How to visualize these results?
- Are the results deterministic? What about randomness?
2. Prepare your computer¶
3. Compile the tools¶
The compilation of the tools differs. The benefit is that users can work exclusively on small tools, without having to worry about what is encapsulated elsewhere. As a trade-off, the compilation is more complex. Therefore, the compilation is automatized with a script which guides through the entire compilation step and reduces most of its complexity.
5. Define your analyses¶
Each tool is controlled with an XML file that serves two purposes: on the one hand it instructs the tool to do something. On the other hand it is your record of what was planned. The following pages detail how the input and parameter for each tool are configured. In addition, there is a parmsetup tool in the making which will enable Python-scripted automation of all input file generation.
- Configure paraprobe-utils
- Configure paraprobe-gui
- Configure paraprobe-transcoder
- Configure paraprobe-synthetic
- Configure paraprobe-ranger
- Configure paraprobe-surfacer
- Configure paraprobe-spatstat
- Configure paraprobe-autoreporter
- Configure paraprobe-fourier
- Configure paraprobe-araullo
- Configure paraprobe-indexer
6. Execute parallelized¶
7. Work through examples¶
There is an example for a synthetic polycrystal in the example folder. The folder contains all configuration files and an exemplar Jupyter notebook called:
example-synthetic-polycrystal.ipynb
8. Open source, how to cite¶
9. How to contribute¶
10. Funding¶
Markus Kühbach gratefully acknowledges the support from the Deutsche Forschungsgemeinschaft (DFG) through project BA 4253/2-1. Markus Kühbach especially acknowledges the provisioning of computing resources by the Max Planck Gesellschaft, and the funding received through BiGmax, the Max-Planck-Research Network on Big-Data-Driven Materials Science.
11. Advanced topics¶
This section address mainly software developers who wish to compile individual tools manually.
- Which parallelization methods are employed?
- Which tool offers which parallelism?
- Which third-party dependencies does each tool have?
- How to compile the tools manually?
- Troubleshooting?!
- Compiler optimization
- Best practices when using multi-threading
- Further details of OpenMP multi-threading
- Manage thread affinity
- Testimonial on using the Parallel HDF5 for APT/FIM