NXapm_paraprobe_results_nanochemΒΆ

Status:

application definition, extends NXobject

Description:

Results of a paraprobe-nanochem tool run.

Symbols:

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

n_ions: The total number of ions in the reconstruction.

n_atomic: The total number of atoms in the atomic_decomposition match filter.

n_isotopic: The total number of isotopes in the isotopic_decomposition match filter.

d: The dimensionality of the delocalization grid.

c: The cardinality/total number of cells/grid points in the delocalization grid.

n_f_tri_xdmf: The total number of XDMF values to represent all faces of triangles via XDMF.

n_feature_dict: The total number of entries in a feature dictionary.

n_speci: The total number of member distinguished when reporting composition.

Groups cited:

NXcg_face_list_data_structure, NXcg_grid, NXcg_hexahedron_set, NXcg_marching_cubes, NXcg_polyhedron_set, NXcg_triangle_set, NXcg_unit_normal_set, NXchemical_composition, NXcollection, NXcoordinate_system_set, NXcs_computer, NXcs_cpu, NXcs_filter_boolean_mask, NXcs_gpu, NXcs_io_obj, NXcs_io_sys, NXcs_mm_sys, NXcs_profiling_event, NXcs_profiling, NXdata, NXdelocalization, NXentry, NXfabrication, NXion, NXisocontour, NXmatch_filter, NXprocess, NXtransformations, NXuser

Structure:

ENTRY: (required) NXentry

@version: (required) NX_CHAR

Version specifier of this application definition.

definition: (required) NX_CHAR

Official NeXus NXDL schema with which this file was written.

Obligatory value: NXapm_paraprobe_results_nanochem

program: (required) NX_CHAR

Given name of the program/software/tool with which this NeXus (configuration) file was generated.

@version: (required) NX_CHAR

Ideally program version plus build number, or commit hash or description of ever persistent resources where the source code of the program and build instructions can be found so that the program can be configured ideally in such a manner that the result of this computational process is recreatable in the same deterministic manner.

analysis_identifier: (required) NX_CHAR

Ideally, a (globally persistent) unique identifier for referring to this analysis.

analysis_description: (optional) NX_CHAR

Possibility for leaving a free-text description about this analysis.

start_time: (required) NX_DATE_TIME

ISO 8601 formatted time code with local time zone offset to UTC information included when the analysis behind this results file was started, i.e. the paraprobe-tool executable started as a process.

end_time: (required) NX_DATE_TIME

ISO 8601 formatted time code with local time zone offset to UTC information included when the analysis behind this results file were completed and the paraprobe-tool executable exited as a process.

config_filename: (required) NX_CHAR

The absolute path and name of the config file for this analysis.

@version: (required) NX_CHAR

At least SHA256 strong hash of the specific config_file for tracking provenance.

results_path: (optional) NX_CHAR

Path to the directory where the tool should store NeXus/HDF5 results of this analysis. If not specified results will be stored in the current working directory.

status: (required) NX_CHAR

A statement whether the paraprobe-tool executable managed to process the analysis or failed prematurely.

This status is written to the results file after the end_time at which point the executable must no longer compute analyses. Only when this status message is present and shows success, the user should consider the results. In all other cases, it might be that the executable has terminated prematurely or another error occurred.

Any of these values: success | failure

USER: (optional) NXuser

If used, contact information and eventually details of at least the person who performed this analysis.

name: (required) NX_CHAR

affiliation: (recommended) NX_CHAR

address: (optional) NX_CHAR

email: (recommended) NX_CHAR

orcid: (recommended) NX_CHAR

orcid_platform: (recommended) NX_CHAR

telephone_number: (optional) NX_CHAR

role: (recommended) NX_CHAR

social_media_name: (optional) NX_CHAR

social_media_platform: (optional) NX_CHAR

COORDINATE_SYSTEM_SET: (required) NXcoordinate_system_set

Details about the coordinate system conventions used. If nothing else is specified we assume that there has to be at least one set of NXtransformations named paraprobe defined, which specifies the coordinate system. In which all positions are defined.

TRANSFORMATIONS: (required) NXtransformations

The individual coordinate systems which should be used. Field names should be prefixed with the following controlled terms indicating which individual coordinate system is described:

  • paraprobe

  • lab

  • specimen

  • laser

  • leap

  • detector

  • recon

PROCESS: (optional) NXprocess

window: (required) NXcs_filter_boolean_mask

A bitmask which identifies which of the ions in the dataset were analyzed during this process.

number_of_ions: (required) NX_UINT {units=NX_UNITLESS}

Number of ions covered by the mask. The mask value for most may be 0.

bitdepth: (required) NX_UINT {units=NX_UNITLESS}

Number of bits assumed matching on a default datatype. (e.g. 8 bits for a C-style uint8).

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

The unsigned integer array representing the content of the mask. If padding is used, padded bits are set to 0. The mask is for convenience always as large as the entire dataset as it will be stored compressed anyway. The convenience feature with this is that then the mask can be decoded with numpy and mirrored against the evaporation_id array and one immediately can filter out all points that were used by the paraprobe-toolbox executable. The length of the array adds to the next unsigned integer if the number of ions in the dataset is not an integer multiple of the bitdepth (padding).

iso_surface_analysis: (optional) NXprocess

delocalization: (required) NXdelocalization

weighting_model: (required) NX_CHAR

The weighting model specifies how mark data are mapped to a weight per point/ion. For atom probe microscopy (APM) mark data are e.g. which iontype an ion has. As an example, different models are used which account differently for the multiplicity of a point/ion during delocalization:

  • unity, all points/ions get the same weight 1.

  • atomic_decomposition, points get as much weight as they have atoms of a type in atomic_decomposition_rule,

  • isotope_decomposition, points get as much weight as they have isotopes of a type in isotopic_decomposition_rule.

Any of these values:

  • unity

  • atomic_decomposition

  • isotopic_decomposition

normalization: (required) NX_CHAR

How results of the kernel-density estimation were computed 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 white list of elements in each voxel.

Any of these values:

  • total

  • candidates

  • composition

  • concentration

weight: (optional) NX_NUMBER (Rank: 1, Dimensions: [n_ions]) {units=NX_DIMENSIONLESS}

Weighting factor, in atom probe, often termed multiplicity. The weighting factor is the multiplier with which the integrated intensity contribution from the point/ion gets multiplied. The delocalization computes the integrated intensity for each grid cell. Effectively, this is an explicitly evaluated kernel method where each specific position of an ion is replaced by a smoothing kernel. For atom probe weights are positive and integer specifically the multiplicity of the ion, in accordance with the respective rulesets as defined by weighting_model.

atomic_decomposition_rule: (optional) NXmatch_filter

A list of elements (via proton number) to consider for the atomic_decomposition weighting model. Elements must exist in the periodic table of elements and be specified by their number of protons. Values in match are isotope hash values using the following hashing rule $H = Z + 256*N$ with $Z$ the number of protons and $N$ the number of neutrons of the isotope. In the case of elements this hashing rule has the advantage that for elements the proton number is their hash value because N is zero.

method: (required) NX_CHAR

Meaning of the filter: Whitelist specifies which entries with said value to include. Entries with all other values will be filtered out.

Blacklist specifies which entries with said value to exclude. Entries with all other values will be included.

Any of these values: whitelist | blacklist

match: (required) NX_NUMBER (Rank: 1, Dimensions: [n_atomic]) {units=NX_UNITLESS}

Array of values to filter according to method. For example, if the filter specifies [1, 5, 6] and method is whitelist, only entries with values matching 1, 5 or 6 will be processed. All other entries will be filtered out/not considered.

isotopic_decomposition_rule: (optional) NXmatch_filter

A list of isotopes (via proton and neutron number) to consider for the isotopic_decomposition weighting model. Isotopes must exist in the nuclid table. Values in match are isotope hash values using the following hashing rule $H = Z + 256*N$ with $Z$ the number of protons and $N$ the number of neutrons of the isotope.

method: (required) NX_CHAR

Meaning of the filter: Whitelist specifies which entries with said value to include. Entries with all other values will be filtered out.

Blacklist specifies which entries with said value to exclude. Entries with all other values will be included.

Any of these values: whitelist | blacklist

match: (required) NX_NUMBER (Rank: 1, Dimensions: [n_isotopic]) {units=NX_UNITLESS}

Array of values to filter according to method. For example, if the filter specifies [1, 5, 6] and method is whitelist, only entries with values matching 1, 5 or 6 will be processed. All other entries will be filtered out/not considered.

grid: (required) NXcg_grid

The discretized domain/grid on which the delocalization is applied.

dimensionality: (required) NX_POSINT {units=NX_UNITLESS}

Any of these values: 1 | 2 | 3

cardinality: (required) NX_POSINT {units=NX_UNITLESS}

The total number of cells/voxels of the grid.

origin: (required) NX_NUMBER (Rank: 1, Dimensions: [d])

symmetry: (required) NX_CHAR

The symmetry of the lattice defining the shape of the unit cell.

Obligatory value: cubic

cell_dimensions: (required) NX_NUMBER (Rank: 1, Dimensions: [d]) {units=NX_LENGTH}

The unit cell dimensions according to the coordinate system defined under coordinate_system.

extent: (required) NX_POSINT (Rank: 1, Dimensions: [d]) {units=NX_UNITLESS}

Number of unit cells along each of the d unit vectors. The total number of cells, or grid points has to be the cardinality. If the grid has an irregular number of grid positions in each direction, as it could be for instance the case of a grid where all grid points outside some masking primitive are removed, this extent field should not be used. Instead use the coordinate field.

coordinate_system: (optional) NX_CHAR

Reference to or definition of a coordinate system with which the positions and directions are interpretable.

identifier_offset: (required) NX_INT {units=NX_UNITLESS}

Integer which specifies the first index to be used for distinguishing identifiers for cells. Identifiers are defined either implicitly or explicitly. For implicit indexing the identifiers are defined on the interval [identifier_offset, identifier_offset+c-1]. For explicit indexing the identifier array has to be defined.

kernel_size: (required) NX_POSINT (Rank: 1, Dimensions: [3]) {units=NX_DIMENSIONLESS}

Halfwidth of the kernel about the central voxel. The shape of the kernel is that of a cuboid of extent 2*kernel_extent[i] + 1 in each dimension i.

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

Sigma of the kernel in each dimension in the paraprobe coordinate_system with i = 0 is x, i = 1 is y, i = 2 is z.

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

Expectation value of the kernel in each dimension in the paraprobe coordinate_system with i = 0 is x, i = 1 is y, i = 2 is z.

bounding_box: (required) NXcg_hexahedron_set

A tight axis-aligned bounding box about the grid.

is_axis_aligned: (required) NX_BOOLEAN {units=NX_UNITLESS}

For atom probe should be set to true.

identifier_offset: (required) NX_INT {units=NX_UNITLESS}

Integer which specifies the first index to be used for distinguishing hexahedra. Identifiers are defined either implicitly or explicitly. For implicit indexing the identifiers are defined on the interval [identifier_offset, identifier_offset+c-1]. For explicit indexing the identifier array has to be defined.

boundaries: (optional) NX_CHAR (Rank: 1, Dimensions: [6])

Name of the boundaries. E.g. left, right, front, back, bottom, top, The field must have as many entries as there are number_of_boundaries.

boundary_conditions: (optional) NX_INT (Rank: 1, Dimensions: [6]) {units=NX_UNITLESS}

The boundary conditions for each boundary:

0 - undefined 1 - open 2 - periodic 3 - mirror 4 - von Neumann 5 - Dirichlet

hexahedron: (required) NXcg_face_list_data_structure

vertex_identifier_offset: (required) NX_INT {units=NX_UNITLESS}

Integer which specifies the first index to be used for distinguishing identifiers for vertices. Identifiers are defined either implicitly or explicitly. For implicit indexing the identifiers are defined on the interval [identifier_offset, identifier_offset+c-1]. For explicit indexing the identifier array has to be defined.

face_identifier_offset: (required) NX_INT {units=NX_UNITLESS}

Integer which specifies the first index to be used for distinguishing identifiers for faces. Identifiers are defined either implicitly or explicitly. For implicit indexing the identifiers are defined on the interval [identifier_offset, identifier_offset+c-1]. For explicit indexing the identifier array has to be defined.

vertices: (required) NX_NUMBER (Rank: 2, Dimensions: [8, 3]) {units=NX_LENGTH}

Positions of the vertices.

Users are encouraged to reduce the vertices to unique set of positions and vertices as this supports a more efficient storage of the geometry data. It is also possible though to store the vertex positions naively in which case vertices_are_unique is likely False. Naively here means that one for example stores each vertex of a triangle mesh even though many vertices are shared between triangles and thus the positions of these vertices do not have to be duplicated.

faces: (required) NX_NUMBER (Rank: 2, Dimensions: [6, 4]) {units=NX_UNITLESS}

Array of identifiers from vertices which describe each face.

The first entry is the identifier of the start vertex of the first face, followed by the second vertex of the first face, until the last vertex of the first face. Thereafter, the start vertex of the second face, the second vertex of the second face, and so on and so forth.

Therefore, summating over the number_of_vertices, allows to extract the vertex identifiers for the i-th face on the following index interval of the faces array: [$sum_i = 0}^{i = n-1}$, $sum_{i=0}^{i = n}$].

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

Six equally formatted sextets chained together. For each sextett the first entry is an XDMF primitive topology key (here 5 for polygon), the second entry the XDMF primitive count value (here 4 because each face is a quad). The remaining four values are the vertex indices.

number_of_boundaries: (optional) NX_POSINT {units=NX_UNITLESS}

How many distinct boundaries are distinguished? Most grids discretize a cubic or cuboidal region. In this case six sides can be distinguished, each making an own boundary.

scalar_field_magnitude: (required) NXdata

The result of the delocalization based on which subsequent iso-surfaces will be computed. In commercial software so far there is not a possibility to export such grid.

@long_name: (optional) NX_CHAR

@signal: (required) NX_CHAR

@axes: (required) NX_CHAR

@xpos_indices: (required) NX_CHAR

@ypos_indices: (required) NX_CHAR

@zpos_indices: (required) NX_CHAR

intensity: (required) NX_FLOAT (Rank: 3, Dimensions: [n_z, n_y, n_x])

xpos: (required) NX_FLOAT (Rank: 1, Dimensions: [n_x])

Cell center of mass positions along x.

ypos: (required) NX_FLOAT (Rank: 1, Dimensions: [n_y])

Cell center of mass positions along y.

zpos: (required) NX_FLOAT (Rank: 1, Dimensions: [n_z])

Cell center of mass positions along z.

xdmf_intensity: (optional) NX_FLOAT (Rank: 1, Dimensions: [n_xyz]) {units=NX_ANY}

Intensity of the field at given point

xdmf_xyz: (optional) NX_FLOAT (Rank: 2, Dimensions: [n_xyz, 3]) {units=NX_UNITLESS}

Center of mass positions of each voxel for rendering the scalar field via XDMF in e.g. Paraview.

xdmf_topology: (optional) NX_NUMBER (Rank: 1, Dimensions: [3*n_xyz]) {units=NX_UNITLESS}

XDMF topology for rendering in combination with xdmf_xyz the scalar field via XDFM in e.g. Paraview.

scalar_field_gradient: (required) NXdata

The three-dimensional gradient nabla operator applied to scalar_field_magnitude.

@signal: (required) NX_CHAR

@axes: (required) NX_CHAR

@xpos_indices: (required) NX_CHAR

@ypos_indices: (required) NX_CHAR

@zpos_indices: (required) NX_CHAR

@long_name: (optional) NX_CHAR

intensity: (required) NX_FLOAT (Rank: 4, Dimensions: [n_z, n_y, n_x, 3])

xpos: (required) NX_FLOAT (Rank: 1, Dimensions: [n_x])

Cell center of mass positions along x.

ypos: (required) NX_FLOAT (Rank: 1, Dimensions: [n_y])

Cell center of mass positions along y.

zpos: (required) NX_FLOAT (Rank: 1, Dimensions: [n_z])

Cell center of mass positions along z.

xdmf_gradient: (optional) NX_FLOAT (Rank: 2, Dimensions: [n_xyz, 3]) {units=NX_ANY}

The gradient vector.

xdmf_xyz: (optional) NX_FLOAT (Rank: 2, Dimensions: [n_xyz, 3]) {units=NX_UNITLESS}

Center of mass positions of each voxel for rendering the scalar field via XDMF in e.g. Paraview.

xdmf_topology: (optional) NX_NUMBER (Rank: 1, Dimensions: [3*n_xyz]) {units=NX_UNITLESS}

XDMF topology for rendering in combination with xdmf_xyz the scalar field via XDFM in e.g. Paraview.

iso_surface: (optional) NXisocontour

An iso-surface is the boundary between two regions across which the magnitude of a scalar field falls below/exceeds a threshold magnitude phi. For applications in atom probe microscopy the location and shape of such a boundary (set) is typically approximated by discretization. This yields a complex of not necessarily connected geometric primitives. Paraprobe-nanochem approximates this complex with a soup of triangles.

dimensionality: (required) NX_POSINT {units=NX_UNITLESS}

isovalue: (required) NX_NUMBER {units=NX_ANY}

The threshold or iso-contour value.

marching_cubes: (required) NXcg_marching_cubes

Details about the specific marching cubes algorithm which was taken to compute the iso-surface. The grid is the delocalization grid.

implementation: (required) NX_CHAR

Reference to the specific implementation of marching cubes used. The value placed here should be a DOI. If there are no specific DOI or details write not_further_specified, or give at least a free-text description. The program and version used is the specific paraprobe-nanochem.

triangle_soup: (optional) NXcg_triangle_set

The resulting triangle soup computed via marching cubes.

dimensionality: (required) NX_POSINT {units=NX_UNITLESS}

cardinality: (required) NX_POSINT {units=NX_UNITLESS}

identifier_offset: (required) NX_INT {units=NX_UNITLESS}

Integer which specifies the first index to be used for distinguishing triangles. Identifiers are defined either implicitly or explicitly. For implicit indexing the identifiers are defined on the interval [identifier_offset, identifier_offset+c-1].

triangles: (required) NXcg_face_list_data_structure

number_of_vertices: (required) NX_POSINT {units=NX_UNITLESS}

Number of vertices.

number_of_faces: (required) NX_POSINT {units=NX_UNITLESS}

Number of faces.

vertex_identifier_offset: (required) NX_INT {units=NX_UNITLESS}

Integer which specifies the first index to be used for distinguishing identifiers for vertices. Identifiers are defined either implicitly or explicitly. For implicit indexing the identifiers are defined on the interval [identifier_offset, identifier_offset+c-1].

face_identifier_offset: (required) NX_INT {units=NX_UNITLESS}

Integer which specifies the first index to be used for distinguishing identifiers for faces. Identifiers are defined either implicitly or explicitly. For implicit indexing the identifiers are defined on the interval [identifier_offset, identifier_offset+c-1].

vertices: (required) NX_NUMBER (Rank: 2, Dimensions: [i, 3]) {units=NX_LENGTH}

Positions of the vertices.

Users are encouraged to reduce the vertices to unique set of positions and vertices as this supports a more efficient storage of the geometry data. It is also possible though to store the vertex positions naively in which case vertices_are_unique is likely False. Naively here means that one for example stores each vertex of a triangle mesh even though many vertices are shared between triangles and thus the positions of these vertices do not have to be duplicated.

faces: (required) NX_INT (Rank: 1, Dimensions: [j]) {units=NX_UNITLESS}

Array of identifiers from vertices which describe each face.

The first entry is the identifier of the start vertex of the first face, followed by the second vertex of the first face, until the last vertex of the first face. Thereafter, the start vertex of the second face, the second vertex of the second face, and so on and so forth.

Therefore, summating over the number_of_vertices, allows to extract the vertex identifiers for the i-th face on the following index interval of the faces array: [$sum_i = 0}^{i = n-1}$, $sum_{i=0}^{i = n}$].

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

A list of as many tuples of XDMF topology key, XDMF number of vertices and a triple of vertex indices specifying each triangle. The total number of entries is n_f_tri * (1+1+3).

area: (optional) NX_NUMBER (Rank: 1, Dimensions: [j]) {units=NX_AREA}

edge_length: (optional) NX_NUMBER (Rank: 2, Dimensions: [k, 3]) {units=NX_LENGTH}

Array of edge length values. For each triangle the edge length is reported for the edges traversed according to the sequence in which vertices are indexed in triangles.

interior_angle: (optional) NX_NUMBER (Rank: 2, Dimensions: [j, 3]) {units=NX_ANGLE}

Array of interior angle values. For each triangle the angle is reported for the angle opposite to the edges which are traversed according to the sequence in which vertices are indexed in triangles.

center: (optional) NX_NUMBER (Rank: 2, Dimensions: [j, 3]) {units=NX_LENGTH}

The center of mass of each triangle.

vertex_normal: (optional) NXcg_unit_normal_set

normals: (required) NX_FLOAT (Rank: 2, Dimensions: [j, 3]) {units=NX_DIMENSIONLESS}

Direction of each normal.

orientation: (optional) NX_UINT (Rank: 1, Dimensions: [j]) {units=NX_UNITLESS}

Qualifier how which specifically oriented normal to its primitive each normal represents.

  • 0 - undefined

  • 1 - outer

  • 2 - inner

face_normal: (optional) NXcg_unit_normal_set

normals: (required) NX_FLOAT (Rank: 2, Dimensions: [k, 3]) {units=NX_DIMENSIONLESS}

Direction of each normal.

orientation: (optional) NX_UINT (Rank: 1, Dimensions: [k]) {units=NX_UNITLESS}

Qualifier how which specifically oriented normal to its primitive each normal represents.

  • 0 - undefined

  • 1 - outer

  • 2 - inner

gradient_guide_magnitude: (required) NX_FLOAT (Rank: 1, Dimensions: [k]) {units=NX_ANY}

Triangle normals are oriented in the direction of the gradient vector of the local delocalized scalar field. \($\sum_{x, y, z} {\nabla{c}_i}^2$\).

gradient_guide_projection: (required) NX_FLOAT (Rank: 1, Dimensions: [k]) {units=NX_ANY}

Triangle normals are oriented in the direction of the gradient vector of the local delocalized scalar field. The projection variable here describes the cosine of the angle between the gradient direction and the normal direction vector. This is a descriptor of how parallel the projection is that is especially useful to document those triangles for whose projection is almost perpendicular.

volumetric_feature: (optional) NXprocess

Iso-surfaces of arbitrary scalar three-dimensional fields can show a complicated topology. Paraprobe-nanochem can run a DBScan-like clustering algorithm which performs a connectivity analysis on the triangle soup. This yields a set of connected features with their surfaces discretized by triangles. Currently, the tool distinguishes at most three types of features:

  1. So-called objects, i.e. not necessarily watertight features convex polyhedra

  2. So-called proxies, i.e. features that were replaced by a proxy mesh and made watertight.

  3. Remaining triangle surface meshes of arbitrary shape and cardinality.

These features can be interpreted as microstructural features. Some of them may be precipitates, some of them may be poles, some of them may be segments of dislocation lines or other crystal defects which are decorated (or not) with solutes.

Each type of feature needs to be registered in the feature_type dictionary. Type identifiers (keywords are integer), values are human-readable names like object, proxy, undefined

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

The identifier which the triangle_soup connectivity analysis returned, which constitutes the first step of the volumetric_feature identification process.

feature_type_dict_keyword: (optional) NX_UINT (Rank: 1, Dimensions: [n_feature_dict]) {units=NX_UNITLESS}

The array of keywords of feature_type dictionary.

feature_type_dict_value: (optional) NX_CHAR (Rank: 1, Dimensions: [n_feature_dict])

The array of values for each keyword of the feature_type dictionary.

feature_type: (required) NX_UINT (Rank: 1, Dimensions: [j]) {units=NX_ANY}

The array of controlled keywords, need to be from feature_type_dict_keyword, which specify which type each feature triangle cluster belongs to. Keep in mind that not each feature is an object or proxy.

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

The explicit identifier of features.

objects: (optional) NXprocess

Details for features which are (closed) objects. Identifier have to exist in feature_identifier :mathcal:$identifier in feature_identifier$.

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

volume: (required) NX_FLOAT (Rank: 1, Dimensions: [i]) {units=NX_VOLUME}

obb: (optional) NXcg_hexahedron_set

An oriented bounding box (OBB) to each object.

size: (optional) NX_FLOAT (Rank: 2, Dimensions: [i, 3]) {units=NX_LENGTH}

Edge length of the oriented bounding box from largest to smallest value.

aspect: (optional) NX_FLOAT (Rank: 2, Dimensions: [i, 2]) {units=NX_DIMENSIONLESS}

Oriented bounding box aspect ratio. YX versus ZY.

center: (optional) NX_NUMBER (Rank: 2, Dimensions: [i, 3]) {units=NX_LENGTH}

Position of the geometric center, which often is but not necessarily has to be the center_of_mass of the hexahedrally-shaped sample/sample part.

hexahedra: (required) NXcg_face_list_data_structure

A simple approach to describe the entire set of hexahedra when the main intention is to store the shape of the hexahedra for visualization.

vertices: (required) NX_NUMBER (Rank: 2, Dimensions: [k, 3]) {units=NX_LENGTH}

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

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

objects_close_to_edge: (optional) NXprocess

Details for all those objects close to edge, i.e. those which have at least one ion which lays closer to a modelled edge of the dataset than threshold.

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

volume: (required) NX_FLOAT (Rank: 1, Dimensions: [i]) {units=NX_VOLUME}

composition: (optional) NXchemical_composition

total: (required) NX_NUMBER (Rank: 1, Dimensions: [i]) {units=NX_UNITLESS}

Total (count) relevant for normalization.

ION: (optional) NXion

charge: (required) NX_INT

isotope_vector: (required) NX_UINT

nuclid_list: (required) NX_UINT

count: (required) NX_NUMBER (Rank: 1, Dimensions: [i]) {units=NX_UNITLESS}

Count or weight which, when divided by total, yields the composition of this element, isotope, molecule or ion.

objectID: (optional) NXcg_polyhedron_set

polyhedron: (required) NXcg_face_list_data_structure

vertices: (required) NX_FLOAT (Rank: 2, Dimensions: [n_v, 3]) {units=NX_LENGTH}

faces: (required) NX_UINT (Rank: 2, Dimensions: [n_f, 3]) {units=NX_UNITLESS}

face_normals: (required) NX_FLOAT (Rank: 2, Dimensions: [n_f, 3]) {units=NX_LENGTH}

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

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

ion_identifier: (optional) NX_UINT (Rank: 1, Dimensions: [i]) {units=NX_UNITLESS}

Array of evaporation_identifier / ion_identifier which specify ions laying inside or on the surface of the feature.

objects_far_from_edge: (optional) NXprocess

Details for all those objects far from edge, i.e. those whose ions lay all at least threshold distant from a modelled edge of the dataset.

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

volume: (required) NX_FLOAT (Rank: 1, Dimensions: [i]) {units=NX_VOLUME}

composition: (optional) NXchemical_composition

total: (required) NX_NUMBER (Rank: 1, Dimensions: [i]) {units=NX_UNITLESS}

Total (count) relevant for normalization.

ION: (optional) NXion

charge: (required) NX_INT

isotope_vector: (required) NX_UINT

nuclid_list: (required) NX_UINT

count: (required) NX_NUMBER (Rank: 1, Dimensions: [i]) {units=NX_UNITLESS}

Count or weight which, when divided by total yields the composition of this element, isotope, molecule or ion.

objectID: (optional) NXcg_polyhedron_set

polyhedron: (required) NXcg_face_list_data_structure

vertices: (required) NX_FLOAT (Rank: 2, Dimensions: [n_v, 3]) {units=NX_LENGTH}

faces: (required) NX_UINT (Rank: 2, Dimensions: [n_f, 3]) {units=NX_UNITLESS}

face_normals: (required) NX_FLOAT (Rank: 2, Dimensions: [n_f, 3]) {units=NX_LENGTH}

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

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

ion_identifier: (optional) NX_UINT (Rank: 1, Dimensions: [i]) {units=NX_UNITLESS}

Array of evaporation_identifier / ion_identifier which specify ions laying inside or on the surface of the feature.

proxies: (optional) NXprocess

Details for features which are so-called proxies, i.e. objects which have been reconstructed and combinatorially closed with processing their partial triangulated_surface_mesh (hole filling, refinement). Identifier have to exist in feature_identifier :mathcal:$identifier in feature_identifier$.

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

volume: (required) NX_FLOAT (Rank: 1, Dimensions: [i]) {units=NX_VOLUME}

proxies_close_to_edge: (optional) NXprocess

Details for those proxies close to edge, i.e. those which have at least one ion which lays closer to a modelled edge of the dataset than threshold. Identifier have to exist in feature_identifier :mathcal:$identifier in feature_identifier$.

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

volume: (required) NX_FLOAT (Rank: 1, Dimensions: [i]) {units=NX_VOLUME}

composition: (optional) NXchemical_composition

total: (required) NX_NUMBER (Rank: 1, Dimensions: [i]) {units=NX_UNITLESS}

Total (count) relevant for normalization.

ION: (optional) NXion

count: (required) NX_NUMBER (Rank: 1, Dimensions: [i]) {units=NX_UNITLESS}

Count or weight which, when divided by total yields the composition of this element, isotope, molecule or ion.

objectID: (optional) NXcg_polyhedron_set

polyhedron: (required) NXcg_face_list_data_structure

vertices: (required) NX_FLOAT (Rank: 2, Dimensions: [n_v, 3]) {units=NX_LENGTH}

faces: (required) NX_UINT (Rank: 2, Dimensions: [n_f, 3]) {units=NX_UNITLESS}

face_normals: (required) NX_FLOAT (Rank: 2, Dimensions: [n_f, 3]) {units=NX_LENGTH}

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

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

ion_identifier: (optional) NX_UINT (Rank: 1, Dimensions: [i]) {units=NX_UNITLESS}

Array of evaporation_identifier / ion_identifier which specify ions laying inside or on the surface of the feature.

proxies_far_from_edge: (optional) NXprocess

Details for those proxies far from edge, i.e. those whose ions lay all at least threshold distant from a modelled edge of the dataset.

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

volume: (required) NX_FLOAT (Rank: 1, Dimensions: [i]) {units=NX_VOLUME}

composition: (optional) NXchemical_composition

total: (required) NX_NUMBER (Rank: 1, Dimensions: [i]) {units=NX_UNITLESS}

Total (count) relevant for normalization.

ION: (optional) NXion

count: (required) NX_NUMBER (Rank: 1, Dimensions: [i]) {units=NX_UNITLESS}

Count or weight which, when divided by total yields the composition of this element, isotope, molecule or ion.

objectID: (optional) NXcg_polyhedron_set

polyhedron: (required) NXcg_face_list_data_structure

vertices: (required) NX_FLOAT (Rank: 2, Dimensions: [n_v, 3]) {units=NX_LENGTH}

faces: (required) NX_UINT (Rank: 2, Dimensions: [n_f, 3]) {units=NX_UNITLESS}

face_normals: (required) NX_FLOAT (Rank: 2, Dimensions: [n_f, 3]) {units=NX_LENGTH}

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

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

ion_identifier: (optional) NX_UINT (Rank: 1, Dimensions: [i]) {units=NX_UNITLESS}

Array of evaporation_identifier / ion_identifier which specify ions laying inside or on the surface of the feature.

interface_modelling: (optional) NXprocess

ion_multiplicity: (optional) NX_UINT (Rank: 1, Dimensions: [n_ions]) {units=NX_UNITLESS}

The multiplicity whereby the ion position is accounted for irrespective whether the ion is considered as a decorator of the interface or not.

decorator_multiplicity: (optional) NX_UINT (Rank: 1, Dimensions: [n_ions]) {units=NX_UNITLESS}

The multiplicity whereby the ion position is accounted for when the ion is consideredΒ΄one which is a decorator of the interface.

initial_interface: (optional) NX_CHAR

The equation of the plane that is fitting initially.

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

The four parameter ax + by + cz + d = 0 which define the plane.

MESH_CURR_PRE_DCOM_STEP: (optional) NXcg_triangle_set

The triangle surface mesh representing the interface model. Exported at some iteration before the next DCOM step.

dimensionality: (required) NX_POSINT {units=NX_UNITLESS}

cardinality: (required) NX_POSINT {units=NX_UNITLESS}

identifier_offset: (required) NX_INT {units=NX_UNITLESS}

area: (required) NX_NUMBER (Rank: 1, Dimensions: [c]) {units=NX_AREA}

edge_length: (required) NX_NUMBER (Rank: 2, Dimensions: [c, 3]) {units=NX_LENGTH}

Array of edge length values. For each triangle the edge length is reported for the edges traversed according to the sequence in which vertices are indexed in triangles.

interior_angle: (required) NX_NUMBER (Rank: 2, Dimensions: [c, 3]) {units=NX_ANGLE}

Array of interior angle values. For each triangle the angle is reported for the angle opposite to the edges which are traversed according to the sequence in which vertices are indexed in triangles.

triangles: (required) NXcg_face_list_data_structure

dimensionality: (required) NX_POSINT {units=NX_UNITLESS}

number_of_vertices: (required) NX_POSINT {units=NX_UNITLESS}

number_of_faces: (required) NX_POSINT {units=NX_UNITLESS}

vertex_identifier_offset: (required) NX_INT {units=NX_UNITLESS}

edge_identifier_offset: (required) NX_INT {units=NX_UNITLESS}

face_identifier_offset: (required) NX_INT {units=NX_UNITLESS}

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

vertices: (required) NX_NUMBER (Rank: 2, Dimensions: [i, 3]) {units=NX_LENGTH}

faces: (required) NX_UINT (Rank: 2, Dimensions: [j, 3]) {units=NX_UNITLESS}

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

face_normal: (required) NXcg_unit_normal_set

dimensionality: (required) NX_POSINT {units=NX_UNITLESS}

cardinality: (required) NX_POSINT {units=NX_UNITLESS}

normals: (required) NX_FLOAT (Rank: 2, Dimensions: [j, 3]) {units=NX_LENGTH}

Direction of each normal

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

Qualifier how which specifically oriented normal to its primitive each normal represents.

  • 0 - undefined

  • 1 - outer

  • 2 - inner

vertex_normal: (required) NXcg_unit_normal_set

dimensionality: (required) NX_POSINT {units=NX_UNITLESS}

cardinality: (required) NX_POSINT {units=NX_UNITLESS}

normals: (required) NX_FLOAT (Rank: 2, Dimensions: [j, 3]) {units=NX_LENGTH}

Direction of each normal

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

Qualifier how which specifically oriented normal to its primitive each normal represents.

  • 0 - undefined

  • 1 - outer

  • 2 - inner

MESH_CURR_POST_DCOM_STEP: (optional) NXcg_triangle_set

The triangle surface mesh representing the interface model. Exported at some iteration after the next DCOM step.

dimensionality: (required) NX_POSINT {units=NX_UNITLESS}

cardinality: (required) NX_POSINT {units=NX_UNITLESS}

identifier_offset: (required) NX_INT {units=NX_UNITLESS}

area: (required) NX_NUMBER (Rank: 1, Dimensions: [c]) {units=NX_AREA}

edge_length: (required) NX_NUMBER (Rank: 2, Dimensions: [c, 3]) {units=NX_LENGTH}

Array of edge length values. For each triangle the edge length is reported for the edges traversed according to the sequence in which vertices are indexed in triangles.

interior_angle: (required) NX_NUMBER (Rank: 2, Dimensions: [c, 3]) {units=NX_ANGLE}

Array of interior angle values. For each triangle the angle is reported for the angle opposite to the edges which are traversed according to the sequence in which vertices are indexed in triangles.

triangles: (required) NXcg_face_list_data_structure

dimensionality: (required) NX_POSINT {units=NX_UNITLESS}

number_of_vertices: (required) NX_POSINT {units=NX_UNITLESS}

number_of_faces: (required) NX_POSINT {units=NX_UNITLESS}

vertex_identifier_offset: (required) NX_INT {units=NX_UNITLESS}

face_identifier_offset: (required) NX_INT {units=NX_UNITLESS}

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

vertices: (required) NX_NUMBER (Rank: 2, Dimensions: [i, 3]) {units=NX_LENGTH}

faces: (required) NX_UINT (Rank: 2, Dimensions: [j, 3]) {units=NX_UNITLESS}

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

face_normal: (required) NXcg_unit_normal_set

dimensionality: (required) NX_POSINT {units=NX_UNITLESS}

cardinality: (required) NX_POSINT {units=NX_UNITLESS}

normals: (required) NX_FLOAT (Rank: 2, Dimensions: [j, 3]) {units=NX_LENGTH}

Direction of each normal

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

Qualifier how which specifically oriented normal to its primitive each normal represents.

  • 0 - undefined

  • 1 - outer

  • 2 - inner

vertex_normal: (required) NXcg_unit_normal_set

dimensionality: (required) NX_POSINT {units=NX_UNITLESS}

cardinality: (required) NX_POSINT {units=NX_UNITLESS}

normals: (required) NX_FLOAT (Rank: 2, Dimensions: [j, 3]) {units=NX_LENGTH}

Direction of each normal

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

Qualifier how which specifically oriented normal to its primitive each normal represents.

  • 0 - undefined

  • 1 - outer

  • 2 - inner

composition_analysis: (optional) NXprocess

xdmf_cylinder: (required) NXcg_polyhedron_set

The ROIs are defined as cylinders for the computations. To visualize these though we discretize them into regular n-gons. Using for instance a 360-gon, i.e. a regular n-gon with 360 edges resolves the lateral surface of each cylinder very finely so that they are rendered smoothly in visualization software.

dimensionality: (required) NX_POSINT {units=NX_UNITLESS}

cardinality: (required) NX_POSINT {units=NX_UNITLESS}

center: (required) NX_NUMBER (Rank: 2, Dimensions: [i, 3]) {units=NX_LENGTH}

Position of the geometric center, which often is but not necessarily has to be the center_of_mass of the polyhedra.

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

Integer which specifies the first index to be used for distinguishing ROI cylinder. Identifiers are defined explicitly.

edge_contact: (optional) NX_UINT (Rank: 1, Dimensions: [i]) {units=NX_UNITLESS}

number_of_atoms: (optional) NX_UINT (Rank: 1, Dimensions: [i]) {units=NX_UNITLESS}

The number of atoms in each ROI.

number_of_ions: (optional) NX_UINT (Rank: 1, Dimensions: [i]) {units=NX_UNITLESS}

The number of ions in each ROI.

orientation: (optional) NX_FLOAT (Rank: 2, Dimensions: [i, 3]) {units=NX_LENGTH}

The orientation of the ROI defined via a vector which points along the cylinder axis and whose length is the height of the cylinder.

polyhedra: (optional) NXcg_face_list_data_structure

ROI: (optional) NXcollection

signed_distance: (required) NX_FLOAT

In the direction of the ROI.

isotope: (required) NX_UINT

Hashvalue

performance: (recommended) NXcs_profiling

current_working_directory: (required) NX_CHAR

command_line_call: (optional) NX_CHAR

start_time: (recommended) NX_DATE_TIME

end_time: (recommended) NX_DATE_TIME

total_elapsed_time: (required) NX_NUMBER

number_of_processes: (required) NX_POSINT

number_of_threads: (required) NX_POSINT

number_of_gpus: (required) NX_POSINT

CS_COMPUTER: (recommended) NXcs_computer

name: (recommended) NX_CHAR

operating_system: (required) NX_CHAR

@version: (required) NX_CHAR

uuid: (optional) NX_CHAR

CS_CPU: (optional) NXcs_cpu

name: (optional) NX_CHAR

FABRICATION: (recommended) NXfabrication

identifier: (optional) NX_CHAR

capabilities: (optional) NX_CHAR

CS_GPU: (optional) NXcs_gpu

name: (optional) NX_CHAR

FABRICATION: (recommended) NXfabrication

identifier: (optional) NX_CHAR

capabilities: (optional) NX_CHAR

CS_MM_SYS: (optional) NXcs_mm_sys

total_physical_memory: (required) NX_NUMBER

CS_IO_SYS: (optional) NXcs_io_sys

CS_IO_OBJ: (required) NXcs_io_obj

technology: (required) NX_CHAR

max_physical_capacity: (required) NX_NUMBER

name: (optional) NX_CHAR

FABRICATION: (recommended) NXfabrication

identifier: (optional) NX_CHAR

capabilities: (optional) NX_CHAR

CS_PROFILING_EVENT: (required) NXcs_profiling_event

start_time: (optional) NX_DATE_TIME

end_time: (optional) NX_DATE_TIME

description: (required) NX_CHAR

elapsed_time: (required) NX_NUMBER

number_of_processes: (required) NX_POSINT

Specify if it was different from the number_of_processes in the NXcs_profiling super class.

number_of_threads: (required) NX_POSINT

Specify if it was different from the number_of_threads in the NXcs_profiling super class.

number_of_gpus: (required) NX_POSINT

Specify if it was different from the number_of_threads in the NXcs_profiling super class.

max_virtual_memory_snapshot: (recommended) NX_NUMBER

max_resident_memory_snapshot: (recommended) NX_NUMBER

Hypertext AnchorsΒΆ

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

NXDL Source:

https://github.com/FAIRmat-Experimental/nexus_definitions/tree/fairmat/contributed_definitions/NXapm_paraprobe_results_nanochem.nxdl.xml