2.3.3.3.26. NXapm_paraprobe_nanochem_config

Status:

application definition, extends NXobject

Description:

Application definition for a configuration file of the paraprobe-nanochem tool. ...

Application definition for a configuration file of the paraprobe-nanochem tool.

This tool is part of the paraprobe-toolbox. Inspect NXapm_paraprobe_tool_config for details.

Symbols:

The symbols used in the schema to specify e.g. dimensions of arrays.

n_ityp_deloc_cand: How many iontypes does the delocalization filter specify.

n_grid: How many grid_resolutions values.

n_var: How many kernel_variance values.

n_control_pts: How many disjoint control points are defined.

n_fct_filter_cand: How many iontypes does the interface meshing iontype filter specify.

n_fct_iterations: How many DCOM iterations.

n_ivec_max: Maximum number of atoms per molecular ion.

n_rois: Number of cylinder ROIs to place for oned_profile if no feature mesh is used.

Groups cited:

NXapm_paraprobe_tool_common, NXapm_paraprobe_tool_config, NXcg_cylinder_set, NXcg_ellipsoid_set, NXcg_face_list_data_structure, NXcg_hexahedron_set, NXcg_polyhedron_set, NXcs_filter_boolean_mask, NXcs_profiling, NXentry, NXidentifier, NXmatch_filter, NXobject, NXprocess, NXprogram, NXserialized, NXspatial_filter, NXsubsampling_filter

Structure:

ENTRY: (required) NXentry

definition: (required) NX_CHAR

Obligatory value: NXapm_paraprobe_nanochem_config

@version: (required) NX_CHAR

delocalization: (optional) NXapm_paraprobe_tool_config

Discretization and distributing of the ion point cloud on a 3D grid ...

Discretization and distributing of the ion point cloud on a 3D grid to enable continuum-scale analyses.

By default, the tool computes a full kernel density estimation of decomposed ions to create one discretized field for each element.

One delocalization task configures a parameter sweep with at least one delocalization. The total number of runs depends on the number of grid_resolution and kernel_variance values. For example, setting two grid_resolutions and three kernel_variance will compute six runs. Two sets of three with the first set using the first grid_resolutions and in sequence the kernel_variance respectively.

analysis_identifier: (recommended) NX_UINT

method: (required) NX_CHAR

Compute delocalization or load an existent one from input. ...

Compute delocalization or load an existent one from input.

Any of these values: compute | load_existent

nuclide_whitelist: (required) NX_UINT (Rank: 2, Dimensions: [n_ityp_deloc_cand, n_ivec_max]) {units=NX_UNITLESS}

Matrix of nuclides representing how iontypes should be accounted for durin ...

Matrix of nuclides representing how iontypes should be accounted for during the delocalization. This is the most general approach to define if and how many times an ion is to be counted. The tool performs a so-called atomic decomposition of all iontypes, i.e. the tool analyses from how many atoms of each nuclide or element respectively an (molecular) ion is built from.

Taking the hydroxonium H3O+ molecular ion as an example: It contains hydrogen and oxygen atoms. The multiplicity of hydrogen is three whereas that of oxygen is one. Therefore, the respective atomic decomposition analysis prior to the iso-surface computation adds three hydrogen counts for each H3O+ ion.

This is a practical solution which accepts that on the one hand not every bond is broken during an atom probe experiment but also that ions may react further during their flight to the detector. The exact details depend on the local field conditions, quantum mechanics of possible electron transfer and thus the detailed trajectory of the system and its electronic state.

The detection of molecular ions instead of always single atom ions only is the reason that an atom probe experiment tells much about field evaporation physics but also faces an inherent loss of information with respect to the detailed spatial arrangement that is independent of other imprecisions such as effect of limited accuracy of reconstruction protocols and their parameterization.

Unused values in each row of the matrix are nullified. Nuclides are identified as hashed nuclide (see NXion) for further details.

grid_resolution: (required) NX_FLOAT (Rank: 1, Dimensions: [n_grid]) {units=NX_LENGTH}

Array of edge lengths of the cubic cells used for discretizing the reconst ...

Array of edge lengths of the cubic cells used for discretizing the reconstructed dataset on a cuboidal 3D grid (NXcg_grid). The tool performs as many delocalization computations as values are specified in grid_resolution.

kernel_size: (required) NX_UINT {units=NX_UNITLESS}

Half the width of a :math:`{(2 \cdot n + 1)}^3` cubic kernel of cubic voxe ...

Half the width of a \({(2 \cdot n + 1)}^3\) cubic kernel of cubic voxel beyond which the Gaussian Ansatz function will be truncated. Intensity outside the kernel is factorized into the kernel via a normalization procedure.

kernel_variance: (required) NX_FLOAT (Rank: 1, Dimensions: [n_var]) {units=NX_LENGTH}

Array of variance values :math:`\sigma` of the Gaussian Ansatz kernel ...

Array of variance values \(\sigma\) of the Gaussian Ansatz kernel (\(\sigma_x := \sigma\), \(\sigma_x = \sigma_y = 2 \cdot \sigma_z\)). The tool performs as many delocalization computations as values are specified in kernel_variance.

normalization: (required) NX_CHAR

How should the results of the kernel-density estimation be normalized into ...

How should the results of the kernel-density estimation be normalized into quantities. By default, the tool computes the total number (intensity) of ions or elements. Alternatively, the tool can compute the total intensity, the composition, or the concentration of the ions/elements specified by the nuclide_whitelist.

Any of these values: none | composition | concentration

has_scalar_fields: (required) NX_BOOLEAN

Specifies if the tool should report the delocalization 3D field values.

IDENTIFIER: (optional) NXidentifier

reconstruction: (required) NXserialized

type: (required) NX_CHAR

path: (required) NX_CHAR

checksum: (required) NX_CHAR

algorithm: (required) NX_CHAR

position: (required) NX_CHAR

mass_to_charge: (required) NX_CHAR

ranging: (required) NXserialized

type: (required) NX_CHAR

path: (required) NX_CHAR

checksum: (required) NX_CHAR

algorithm: (required) NX_CHAR

ranging_definitions: (required) NX_CHAR

surface: (required) NXserialized

A precomputed triangulated surface mesh representing a model (of the surfa ...

A precomputed triangulated surface mesh representing a model (of the surface) of the edge of the dataset. This model can be used to detect and control various sources of bias in the analyses.

type: (required) NX_CHAR

path: (required) NX_CHAR

checksum: (required) NX_CHAR

algorithm: (required) NX_CHAR

vertices: (required) NX_CHAR

Absolute path in the (HDF5) file that points to the array ...

Absolute path in the (HDF5) file that points to the array of vertex positions for the triangles in that triangle_set.

indices: (required) NX_CHAR

Absolute path in the (HDF5) file that points to the array ...

Absolute path in the (HDF5) file that points to the array of vertex indices for the triangles in that triangle_set.

surface_distance: (recommended) NXserialized

Distance between each ion and triangulated surface mesh.

type: (required) NX_CHAR

path: (required) NX_CHAR

checksum: (required) NX_CHAR

algorithm: (required) NX_CHAR

distance: (required) NX_CHAR

spatial_filter: (required) NXspatial_filter

windowing_method: (required) NX_CHAR

hexahedron_set: (optional) NXcg_hexahedron_set

dimensionality: (required) NX_POSINT

cardinality: (required) NX_POSINT

identifier_offset: (required) NX_INT

hexahedra: (required) NXcg_face_list_data_structure

vertices: (required) NX_UINT

cylinder_set: (optional) NXcg_cylinder_set

dimensionality: (required) NX_POSINT

cardinality: (required) NX_POSINT

identifier_offset: (required) NX_INT

center: (required) NX_NUMBER

height: (required) NX_NUMBER

radii: (required) NX_NUMBER

ellipsoid_set: (optional) NXcg_ellipsoid_set

dimensionality: (required) NX_POSINT

cardinality: (required) NX_POSINT

identifier_offset: (required) NX_INT

center: (required) NX_NUMBER

half_axes_radii: (required) NX_NUMBER

orientation: (required) NX_NUMBER

polyhedron_set: (optional) NXcg_polyhedron_set

bitmask: (optional) NXcs_filter_boolean_mask

number_of_objects: (required) NX_UINT

bitdepth: (required) NX_UINT

mask: (required) NX_UINT

evaporation_id_filter: (optional) NXsubsampling_filter

min_incr_max: (required) NX_INT

iontype_filter: (optional) NXmatch_filter

method: (required) NX_CHAR

match: (required) NX_NUMBER

hit_multiplicity_filter: (optional) NXmatch_filter

method: (required) NX_CHAR

match: (required) NX_NUMBER

input: (required) NXserialized

Serialized result of an already computed delocalization which is for perfo ...

Serialized result of an already computed delocalization which is for performance reasons here just loaded and not computed again.

type: (required) NX_CHAR

path: (required) NX_CHAR

checksum: (required) NX_CHAR

algorithm: (required) NX_CHAR

results: (required) NX_CHAR

Absolute path in the (HDF5) file that points to the group within which ...

Absolute path in the (HDF5) file that points to the group within which individual delocalization results are stored.

isosurfacing: (optional) NXprocess

Configuration of the set of iso-surfaces to compute using that delocalizat ...

Configuration of the set of iso-surfaces to compute using that delocalization. Such iso-surfaces are the starting point for a reconstruction of so-called objects or (microstructual) features. Examples of scientific relevant are (line features e.g. dislocations poles, surface features such as interfaces, i.e. phase and grain boundaries, or volumetric features such as precipitates. Users should be aware that reconstructed datasets in atom probe are a model and may face inaccuracies and artifacts that can be mistaken incorrectly as microstructural features.

edge_method: (required) NX_CHAR

As it is detailed in `M. Kühbach et al.

As it is detailed in M. Kühbach et al., the handling of triangles at the surface (edge) of the dataset requires special attention especially for composition-normalized delocalization. Here, it is possible that the composition increases towards the edge of the dataset because the quotient of two numbers that are both smaller than one is larger instead of smaller than the counter.

By default, the tool uses a modified marching cubes algorithm of Lewiner et al. which detects if voxels face such a situation. In this case, no triangles are generated for such voxels.

Alternatively, keep_edge_triangles instructs the tool to not remove triangles at the edge of the dataset at the cost of bias. When using this keep_edge_triangles users should understand that all features in contact with the edge of the dataset get usually artificial enlarged. Consequently, triangulated surface meshes of these objects are closed during the marching. However, this closure is artificial and can biased shape analyses for those objects. This also holds for such practices that are offered in proprietary software like IVAS / AP Suite. The situation is comparable to analyses of grain shapes via orientation microscopy from electron microscopy or X-ray diffraction tomography. Features at the edge of the dataset may have not been captured fully.

Thanks to collaboration with V. V. Rielli and S. Primig from the Sydney atom probe group, paraprobe-nanochem implements a complete pipeline to process features at the edge of the dataset. Specifically, these are modelled and replaced with closed polyhedral objects using an iterative mesh and hole-filling procedures with fairing operations.

The tool bookkeeps such objects separately to lead the decision whether or not to consider these objects to the user. Users should be aware that results from fairing operations should be compared to results from analyses where all objects at the edge of the dataset have been removed. Furthermore, users should be careful with overestimating the statistical significance of their dataset especially when using atom probe when they use their atom probe result to compare different descriptors. Even though a dataset may deliver statistically significant results for compositions, this does not necessarily mean that same dataset will also yield statistically significant and insignificantly biased results for 3D object analyses!

Being able to quantify these effects and making atom probers aware of these subtleties was one of the main reasons why the paraprobe-nanochem tool was implemented.

Any of these values: default | keep_edge_triangles

edge_threshold: (required) NX_FLOAT {units=NX_LENGTH}

The ion-to-surface distance that is used in the analyses of features to ...

The ion-to-surface distance that is used in the analyses of features to identify whether these are laying inside the dataset or close to the surface (edge) of the dataset.

If an object has at least one ion with an ion-to-surface-distance below this threshold, the object is considered close to the edge of the dataset. The tool uses a distance-based approach to solve the in general complicated and involved treatment of computing volumetric intersections between closed 2-manifolds that are not necessarily convex. The main practical reason is that such computational geometry analyses face numerical robustness issues as a consequence of which a mesh can be detected as being completely inside another mesh although in reality it is only \(\epsilon\)-close only, i.e. almost touching only the edge (e.g. from inside).

Practically, humans would likely still state in such case that the object is close to the edge of the dataset; however mathematically the object is indeed completely inside. In short, a distance-based approach is rigorous and flexible.

phi: (required) NX_FLOAT {units=NX_ANY}

Iso-contour values. For each value, the tool computes an iso-surface and ...

Iso-contour values. For each value, the tool computes an iso-surface and performs subsequent analyses for each iso-surface. The unit depends on the choice for the normalization of the accumulated ion intensity values per voxel:

  • total, total number of ions, irrespective their iontype

  • candidates, total number of ions with type in the isotope_whitelist.

  • composition, candidates but normalized by composition, i.e. at.-%

  • concentration, candidates but normalized by voxel volume, i.e. ions/nm^3

has_triangle_soup: (required) NX_BOOLEAN

Specifies if the tool should report the triangle soup which represents e ...

Specifies if the tool should report the triangle soup which represents each triangle of the iso-surface complex. The resulting set of triangles is colloquially referred to as a soup because different sub-set may not be connected.

Each triangle is reported with an ID specifying to which triangle cluster (with IDs starting at zero) the triangle belongs. The clustering of triangles within the soup is performed with a modified DBScan algorithm.

has_object: (required) NX_BOOLEAN

Specifies if the tool should analyze for each cluster of triangles how t ...

Specifies if the tool should analyze for each cluster of triangles how they can be combinatorially processed to describe a closed polyhedron. Such a closed polyhedron (not-necessarily convex!) can be used to describe objects with relevance in the microstructure.

Users should be aware that the resulting mesh does not necessarily represent the original precipitate. In fact, inaccuracies in the reconstructed positions cause inaccuracies in all downstream processing operations. Especially the effect on one-dimensional spatial statistics like nearest neighbor correlation functions were discussed in the literature B. Gault et al..

In continuation of these thoughts, this applies also to reconstructed objects. A well-known example is the discussion of shape deviations of scandium-rich precipitates in aluminium alloys which in reconstructions may appear as ellipsoids although they should be indeed almost spherical provided their size is larger than the atomic length scale.

has_object_geometry: (required) NX_BOOLEAN

Specifies if the tool should report a triangulated surface mesh for each ...

Specifies if the tool should report a triangulated surface mesh for each identified closed polyhedron. It is common that a marching cubes algorithm creates iso-surfaces with a fraction of tiny sub-complexes (e.g. small isolated tetrahedra).

These can be small tetrahedra/polyhedra about the center of a voxel of the support grid on which marching cubes operates. Such objects may not contain an ion; especially when considering that delocalization procedures smoothen the positions of the ions. Although these small objects are interesting from a numerical point of view, scientists may argue they are not worth to be reported because a microstructural feature should contain at least a few atoms to become relevant. Therefore, paraprobe-nanochem by default does not report closed objects which bound a volume that contains no ion.

has_object_properties: (required) NX_BOOLEAN

Specifies if the tool should report properties of each closed polyhedron ...

Specifies if the tool should report properties of each closed polyhedron, such as volume and other details.

has_object_obb: (required) NX_BOOLEAN

Specifies if the tool should report for each closed polyhedron an approx ...

Specifies if the tool should report for each closed polyhedron an approximately optimal bounding box fitted to all triangles of the surface mesh of the object and ion positions inside or on the surface of the mesh. This bounding box informs about the closed object’s shape (aspect ratios).

Users should be aware that the choice of the algorithm to compute the bounding box can have an effect on aspect ratio statistics. It is known that computing the true optimal bounding box of in 3D is an \(\mathcal{O}^3\)-time-complex task. The tool uses well-established approximate algorithms of the Computational Geometry Algorithms Library (CGAL).

has_object_ions: (required) NX_BOOLEAN

Specifies if the tool should report for each closed polyhedron all evapo ...

Specifies if the tool should report for each closed polyhedron all evaporation IDs of those ions which lay inside or on the boundary of the polyhedron. This information is used by the paraprobe-intersector tool to infer if two objects share common ions, which is then understood as that the two objects intersect.

Users should be aware that two arbitrarily closed polyhedra in three-dimensional space can intersect but not share a common ion. In fact, the volume bounded by the polyhedron has sharp edges and flat face(t)s. When taking two objects, an edge of one object may for instance pierce into the surface of another object. In this case the objects partially overlap / intersect volumetrically; however this piercing might be so small or happening in the volume between two reconstructed ion positions. Consequently, sharing ions is a sufficient but not a necessary condition for interpreting (volumetric) intersections between objects.

Paraprobe-intersector implements a rigorous alternative to handle such intersections using a tetrahedralization of closed objects. However, in many practical cases, we found through examples that there are polyhedra (especially when they are non-convex and have almost point-like) connected channels, where tetrahedralization libraries have challenges dealing with. In this case, checking intersections via shared_ions is a more practical alternative.

has_object_edge_contact: (required) NX_BOOLEAN

Specifies if the tool should report if a (closed) object has contact wit ...

Specifies if the tool should report if a (closed) object has contact with the surface aka edge of the dataset. For this the tool currently inspects if the shortest distance between the set of triangles of the triangulated surface mesh and the triangles of the edge model is larger than edge_threshold. If this is the case, the object is assumed to be deeply embedded in the interior of the dataset. Otherwise, the object is considered to have an edge contact, i.e. it shape is likely affected by the edge.

has_proxy: (required) NX_BOOLEAN

Specifies if the tool should analyze a closed polyhedron (aka proxy) for ...

Specifies if the tool should analyze a closed polyhedron (aka proxy) for each cluster of triangles whose combinatorial analysis according to has_object returned that the object is not a closed polyhedron. Such proxies are closed via iterative hole-filling, mesh refinement, and fairing operations.

Users should be aware that the resulting mesh does not necessarily represent the original feature. In most cases objects, precipitates in atom probe end up as open objects because they have been clipped by the edge of the dataset. Using a proxy is in this case a strategy to still be able to account for these objects. However, users should make themselves familiar with the consequences and potential biases which this can introduce into the analysis.

has_proxy_geometry: (required) NX_BOOLEAN

Like has_object_geometry but for the proxies.

has_proxy_properties: (required) NX_BOOLEAN

Like has_object_properties but for the proxies.

has_proxy_obb: (required) NX_BOOLEAN

Like has_object_obb but for the proxies.

has_proxy_ions: (required) NX_BOOLEAN

Like has_object_ions but for the proxies.

has_proxy_edge_contact: (required) NX_BOOLEAN

Like has_object_edge_contact but for the proxies.

has_object_proxigram: (required) NX_BOOLEAN

Specifies if the tool should report for each closed object a (cylindrica ...

Specifies if the tool should report for each closed object a (cylindrical) region-of-interest (ROI) that gets placed, centered, and aligned with the local normal for each triangle of the object.

has_object_proxigram_edge_contact: (required) NX_BOOLEAN

Specifies if the tool should report for each ROI that was placed at a tr ...

Specifies if the tool should report for each ROI that was placed at a triangle of each object if this ROI intersects with the edge the dataset. Currently, the tool supports cylindrical ROIs. A computational geometry test is performed to check for a possible intersection of each ROI with the triangulated surface mesh that is defined via surface. Results of this cylinder-set-of-triangles intersection are interpreted as follows: If the cylinder intersects with at least one triangle of the surface (mesh) the ROI is assumed to make edge contact. Otherwise, the ROI is assumed to make no edge contact.

Users should note that this approach does not work if the ROI is laying completely outside the dataset as also in this case the cylinder intersects with any triangle. However, for atom probe this case is practically irrelevant provided constructions such as alpha shapes or alpha wrappings (such as paraproeb-surfacer does) about the ions of the entire reconstructed volume are used.

interface_meshing: (optional) NXapm_paraprobe_tool_config

Use a principle component analysis (PCA) to mesh a single free-standing inte ...

Use a principle component analysis (PCA) to mesh a single free-standing interface patch within the reconstructed volume that is decorated by ions of specific iontypes (e.g. solute atoms).

Interface_meshing is a typical starting point for the quantification of Gibbsian interfacial excess in cases when closed objects constructed from patches e.g. iso-surfaces are not available or when there is no substantial or consistently oriented concentration gradients across an interface patch. The functionality can also be useful when the amount of latent crystallographic information within the point cloud is insufficient or when combined with interface_meshing based on ion density traces in field-desorption maps (see Y. Wei et al. and A. Breen et al. for details).

Noteworthy to mention is that the method used is conceptually similar to the work of Z. Peng et al. and related work (DCOM algorithm) by P. Felfer et al.. Compared to these implementations paraprobe-nanochem uses inspection functionalities which detect potential geometric inconsistencies or self-interactions of the evolved DCOM mesh.

analysis_identifier: (recommended) NX_UINT

initialization: (required) NX_CHAR

How is the PCA initialized: ...

How is the PCA initialized:

  • default, means based on segregated solutes in the ROI

  • control_point_file, means based on reading an external list of control points, currently coming from the Leoben APT_Analyzer.

The control_point_file is currently expected with a specific format. The Leoben group lead by L. Romaner has developed a GUI tool A. Reichmann et al. creates a control_point_file that can be parsed by paraprobe-parmsetup-nanochem to match the here required formatting in control_points.

Any of these values: default | control_point_file

method: (required) NX_CHAR

Method used for identifying and refining the location of the interface. Cu ...

Method used for identifying and refining the location of the interface. Currently, paraprobe-nanochem implements a PCA followed by an iterative loop of isotropic mesh refinement and DCOM step(s), paired with self-intersection detection.

Obligatory value: pca_plus_dcom

number_of_iterations: (required) NX_UINT {units=NX_UNITLESS}

How many times should the DCOM and mesh refinement be applied?

target_edge_length: (required) NX_FLOAT (Rank: 1, Dimensions: [n_fct_iterations]) {units=NX_LENGTH}

Array of decreasing positive not smaller than one nanometer real values ...

Array of decreasing positive not smaller than one nanometer real values which specify how the initial triangles of the mesh should be iteratively refined by edge splitting and related mesh refinement operations.

target_dcom_radius: (required) NX_FLOAT (Rank: 1, Dimensions: [n_fct_iterations]) {units=NX_LENGTH}

Array of decreasing positive not smaller than one nanometer real values ...

Array of decreasing positive not smaller than one nanometer real values which specify the radius of the spherical region of interest within which the DCOM algorithm decides for each vertex how the vertex might be relocated.

The larger it is the DCOM radius in relation to the target_edge_length the more likely it becomes that vertices will be relocated so substantially that triangle self-intersections may occur. The tool detects these and stops in a controlled manner so that the user can repeat the analyses with using a different parameterization.

target_smoothing_step: (required) NX_UINT (Rank: 1, Dimensions: [n_fct_iterations]) {units=NX_UNITLESS}

Array of integers which specify for each DCOM step how many times the mesh ...

Array of integers which specify for each DCOM step how many times the mesh should be iteratively smoothened. Users should be aware that all three arrays target_edge_length, target_dcom_radius, and target_smoothing_step are interpreted in the same sequence, i.e. the zeroth entry of each array specifies the respective parameter values to be used in the first DCOM iteration. The first entry of each array those for the second DCOM iteration and so on and so forth.

IDENTIFIER: (optional) NXidentifier

reconstruction: (required) NXserialized

type: (required) NX_CHAR

path: (required) NX_CHAR

checksum: (required) NX_CHAR

algorithm: (required) NX_CHAR

position: (required) NX_CHAR

mass_to_charge: (required) NX_CHAR

ranging: (required) NXserialized

type: (required) NX_CHAR

path: (required) NX_CHAR

checksum: (required) NX_CHAR

algorithm: (required) NX_CHAR

ranging_definitions: (required) NX_CHAR

surface: (optional) NXserialized

A precomputed triangulated surface mesh representing a model (of the surfa ...

A precomputed triangulated surface mesh representing a model (of the surface) of the edge of the dataset. This model can be used to detect and control various sources of bias in the analyses.

type: (required) NX_CHAR

path: (required) NX_CHAR

checksum: (required) NX_CHAR

algorithm: (required) NX_CHAR

vertices: (required) NX_CHAR

Absolute path in the (HDF5) file that points to the array ...

Absolute path in the (HDF5) file that points to the array of vertex positions for the triangles in that triangle_set.

indices: (required) NX_CHAR

Absolute path in the (HDF5) file that points to the array ...

Absolute path in the (HDF5) file that points to the array of vertex indices for the triangles in that triangle_set.

spatial_filter: (required) NXspatial_filter

windowing_method: (required) NX_CHAR

hexahedron_set: (optional) NXcg_hexahedron_set

dimensionality: (required) NX_POSINT

cardinality: (required) NX_POSINT

identifier_offset: (required) NX_INT

hexahedra: (required) NXcg_face_list_data_structure

vertices: (required) NX_UINT

cylinder_set: (optional) NXcg_cylinder_set

dimensionality: (required) NX_POSINT

cardinality: (required) NX_POSINT

identifier_offset: (required) NX_INT

center: (required) NX_NUMBER

height: (required) NX_NUMBER

radii: (required) NX_NUMBER

ellipsoid_set: (optional) NXcg_ellipsoid_set

dimensionality: (required) NX_POSINT

cardinality: (required) NX_POSINT

identifier_offset: (required) NX_INT

center: (required) NX_NUMBER

half_axes_radii: (required) NX_NUMBER

orientation: (required) NX_NUMBER

polyhedron_set: (optional) NXcg_polyhedron_set

bitmask: (optional) NXcs_filter_boolean_mask

number_of_objects: (required) NX_UINT

bitdepth: (required) NX_UINT

mask: (required) NX_UINT

evaporation_id_filter: (optional) NXsubsampling_filter

min_incr_max: (required) NX_INT

iontype_filter: (optional) NXmatch_filter

method: (required) NX_CHAR

match: (required) NX_NUMBER

hit_multiplicity_filter: (optional) NXmatch_filter

method: (required) NX_CHAR

match: (required) NX_NUMBER

control_point: (required) NXserialized

Details about the control point file used.

type: (required) NX_CHAR

path: (required) NX_CHAR

checksum: (required) NX_CHAR

algorithm: (required) NX_CHAR

control_points: (required) NX_CHAR

X, Y, Z position matrix of disjoint control points.

decoration_filter: (required) NXmatch_filter

Specify those nuclides which the tool should inspect iontypes for if they ...

Specify those nuclides which the tool should inspect iontypes for if they contain such nuclides. If this is the case ions of such type are taken with the number of nuclides of this multiplicity found. The atoms of these ions are assumed to serve as useful markers for locating the interface and refining the interface mesh.

method: (required) NX_CHAR

Obligatory value: whitelist

match: (required) NX_UINT (Rank: 2, Dimensions: [n_fct_filter_cand, n_ivec_max]) {units=NX_UNITLESS}

Array of nuclide iontypes to filter.

oned_profile: (optional) NXapm_paraprobe_tool_config

Analysis of one-dimensional profiles in ROIs placed in the dataset. ...

Analysis of one-dimensional profiles in ROIs placed in the dataset. Such analyses are useful for quantifying interfacial excess or for performing classical composition analyses.

The tool will test for each ROIs if it is completely embedded in the dataset. Specifically, each such test evaluates if the ROI cuts at least one triangle of the triangulated surface mesh that is referred to by surface. If this is the case the ROI is marked as one close to the surface and not analyzed further. Otherwise, the ROI is marked as one far from the surface and processed further.

For each ROI the tool computes atomically decomposed profiles. This means, molecular ions are splitted into nuclides as many times as their respective multiplicity. For each processed ROI the tool stores a sorted list of signed distance values to enable post-processing with other software like e.g. reporter to perform classical Krakauer/Seidman-style interfacial excess analyses.

Users should be aware that the latter intersection analysis is not a volumetric intersection analysis. Given that the triangulated mesh referred to in surface is not required to mesh neither a watertight nor convex polyhedron a rigorous testing of volumetric intersection is much more involved. If the mesh is watertight one could use split the task in first tessellating the mesh into convex polyhedra (e.g. tetrahedra and apply a volumetric intersection method like the Gilbert-Johnson-Keerthi algorithm (GJK). In cases when the mesh is not even watertight distance-based segmentation in combination with again intersection of triangles and convex polyhedra is a robust but currently not implemented method to quantify intersections.

analysis_identifier: (recommended) NX_UINT

distancing_model: (required) NX_CHAR

Which type of distance should be reported for the profile. ...

Which type of distance should be reported for the profile.

Obligatory value: project_to_triangle_plane

roi_orientation: (required) NX_CHAR

For each ROI, along which direction should the cylindrical ROI ...

For each ROI, along which direction should the cylindrical ROI be oriented if ROIs are placed at triangles of the feature mesh.

Obligatory value: triangle_outer_unit_normal

roi_cylinder_height: (required) NX_FLOAT {units=NX_LENGTH}

For each ROI, how high (projected onto the cylinder axis) should ...

For each ROI, how high (projected onto the cylinder axis) should the cylindrical ROI be if ROIs are placed at triangles of the feature mesh.

roi_cylinder_radius: (required) NX_FLOAT {units=NX_LENGTH}

For each ROI, how wide (in radius) should the cylindrical ROI ...

For each ROI, how wide (in radius) should the cylindrical ROI be if ROIs are placed at triangles of the feature mesh.

IDENTIFIER: (optional) NXidentifier

reconstruction: (required) NXserialized

type: (required) NX_CHAR

path: (required) NX_CHAR

checksum: (required) NX_CHAR

algorithm: (required) NX_CHAR

position: (required) NX_CHAR

mass_to_charge: (required) NX_CHAR

ranging: (required) NXserialized

type: (required) NX_CHAR

path: (required) NX_CHAR

checksum: (required) NX_CHAR

algorithm: (required) NX_CHAR

ranging_definitions: (required) NX_CHAR

surface: (optional) NXserialized

A precomputed triangulated surface mesh representing a model (of the surfa ...

A precomputed triangulated surface mesh representing a model (of the surface) of the edge of the dataset. This model can be used to detect and control various sources of bias in the analyses.

type: (required) NX_CHAR

path: (required) NX_CHAR

checksum: (required) NX_CHAR

algorithm: (required) NX_CHAR

vertices: (required) NX_CHAR

Absolute path in the (HDF5) file that points to the array ...

Absolute path in the (HDF5) file that points to the array of vertex positions for the triangles in that triangle_set.

indices: (required) NX_CHAR

Absolute path in the (HDF5) file that points to the array ...

Absolute path in the (HDF5) file that points to the array of vertex indices for the triangles in that triangle_set.

surface_distance: (recommended) NXserialized

Distance between each ion and triangulated surface mesh.

type: (required) NX_CHAR

path: (required) NX_CHAR

checksum: (required) NX_CHAR

algorithm: (required) NX_CHAR

distance: (required) NX_CHAR

Absolute path in the (HDF5) file that points to the distance values. ...

Absolute path in the (HDF5) file that points to the distance values. The tool assumes that the values are stored in the same order as points (ions).

feature: (optional) NXserialized

A precomputed triangulated mesh of the feature representing a model of the ...

A precomputed triangulated mesh of the feature representing a model of the interface at which to place ROIs to profile. This can be the mesh of an interface as returned e.g. by a previous interface_meshing task or the mesh of an iso-surface from a previous delocalization task.

type: (required) NX_CHAR

path: (required) NX_CHAR

checksum: (required) NX_CHAR

algorithm: (required) NX_CHAR

vertices: (required) NX_CHAR

Absolute HDF5 path to the dataset that specifies the array of vertex positions.

indices: (required) NX_CHAR

Absolute HDF5 path to the dataset that specifies the array of facet indi ...

Absolute HDF5 path to the dataset that specifies the array of facet indices which refer to vertices.

facet_normals: (required) NX_CHAR

Absolute HDF5 path to the dataset that specifies the array of facet sig ...

Absolute HDF5 path to the dataset that specifies the array of facet signed unit normals.

vertex_normals: (required) NX_CHAR

Absolute HDF5 path to the dataset that specifies the array of vertex sig ...

Absolute HDF5 path to the dataset that specifies the array of vertex signed unit normals.

patch_filter: (optional) NXmatch_filter

If interface_model is isosurface this filter can be used to restrict the ...

If interface_model is isosurface this filter can be used to restrict the analysis to specific patches of an iso-surface.

method: (required) NX_CHAR

match: (required) NX_NUMBER

feature_distance: (optional) NXserialized

To enable an additional filtration of specific parts of the feature ...

To enable an additional filtration of specific parts of the feature mesh it is recommended to feed precomputed distances of each ion to the triangles of the feature mesh.

type: (required) NX_CHAR

path: (required) NX_CHAR

checksum: (required) NX_CHAR

algorithm: (required) NX_CHAR

distance: (required) NX_CHAR

Absolute path in the (HDF5) file that points to the distance values. ...

Absolute path in the (HDF5) file that points to the distance values. The tool assumes that the values are stored in the same order as points (ions).

spatial_filter: (required) NXspatial_filter

windowing_method: (required) NX_CHAR

hexahedron_set: (optional) NXcg_hexahedron_set

dimensionality: (required) NX_POSINT

cardinality: (required) NX_POSINT

identifier_offset: (required) NX_INT

hexahedra: (required) NXcg_face_list_data_structure

vertices: (required) NX_UINT

cylinder_set: (optional) NXcg_cylinder_set

dimensionality: (required) NX_POSINT

cardinality: (required) NX_POSINT

identifier_offset: (required) NX_INT

center: (required) NX_NUMBER

height: (required) NX_NUMBER

radii: (required) NX_NUMBER

ellipsoid_set: (optional) NXcg_ellipsoid_set

dimensionality: (required) NX_POSINT

cardinality: (required) NX_POSINT

identifier_offset: (required) NX_INT

center: (required) NX_NUMBER

half_axes_radii: (required) NX_NUMBER

orientation: (required) NX_NUMBER

polyhedron_set: (optional) NXcg_polyhedron_set

bitmask: (optional) NXcs_filter_boolean_mask

number_of_objects: (required) NX_UINT

bitdepth: (required) NX_UINT

mask: (required) NX_UINT

evaporation_id_filter: (optional) NXsubsampling_filter

min_incr_max: (required) NX_INT

iontype_filter: (optional) NXmatch_filter

method: (required) NX_CHAR

match: (required) NX_NUMBER

hit_multiplicity_filter: (optional) NXmatch_filter

method: (required) NX_CHAR

match: (required) NX_NUMBER

user_defined_roi: (optional) NXobject

As an alternative mode the tool can be instructed to place ROIs ...

As an alternative mode the tool can be instructed to place ROIs at specific locations into the dataset. This is the programmatic equivalent to the classical approach in atom probe to place ROIs for composition analyses via positioning and rotating them via a graphical user interface (such as in IVAS / AP Suite).

cylinder_set: (required) NXcg_cylinder_set

identifier_offset: (required) NX_INT

center: (required) NX_NUMBER (Rank: 2, Dimensions: [n_rois, 3])

height: (required) NX_NUMBER (Rank: 2, Dimensions: [n_rois, 3])

radii: (required) NX_NUMBER (Rank: 1, Dimensions: [n_rois])

common: (required) NXapm_paraprobe_tool_common

status: (required) NX_CHAR

programID: (required) NXprogram

program: (required) NX_CHAR

@version: (required) NX_CHAR

profiling: (recommended) NXcs_profiling

start_time: (required) NX_DATE_TIME

end_time: (required) NX_DATE_TIME

total_elapsed_time: (required) NX_FLOAT

current_working_directory: (required) NX_CHAR

Hypertext Anchors

List of hypertext anchors for all groups, fields, attributes, and links defined in this class.

NXDL Source:

https://github.com/FAIRmat-NFDI/nexus_definitions/tree/fairmat/contributed_definitions/NXapm_paraprobe_nanochem_config.nxdl.xml