Skip to content

Materials Description Files

Valentin edited this page Apr 12, 2018 · 4 revisions

In PUMAS, material properties are encoded in XML within a Materials Description File (MDF). A compilation of ready to use materials can be found in a separate repository: pumas-materials.

The <pumas> tag is the root tag of the MDF. Any tag occurring outsides is ignored by PUMAS.

The <element> tag specifies a new atomic element. It has the following attributes:

Attribute Description Type Unit
name String
Z Atomic number Float
A Atomic mass Float g / mol
I Mean excitation energy Float eV

Note that the Mean Excitation Energy (MEE) must be provided at the atom level. It is used by PUMAS for simulating Discrete Energy Losses (DEL) for the ionisation process.

The <material> tag allows to build a new material as a collection of atomic <element>'s. It has the following attributes:

Attribute Description Type
name String
file Energy loss file String

The energy loss file must conform to the PDG text format. The search path is relative to the energy loss path provided to the pumas_initialise function.

Constituent atomic elements are defined as children of a <material> tag using <component> tags, one tag per atomic element. A material component tag has the following attributes:

Attribute Description Type
name <element> name String
fraction Mass fraction Float

In PUMAS, a <composite> is a weighted average of several <material>'s, e.g. a rock containing various minerals at the microscopic scale. A <composite> has the following attribute:

Attribute Type
name String

Constituent materials are defined as children of a <composite> tag using <component> tags, one tag per material. A composite component tag has the following attributes:

Attribute Description Type Unit
name <material> name String
fraction Mass fraction Float
density Float g / cm3

Note that the <component> mass fraction and density can be changed at runtime using the pumas_composite_update function. For example, setting a mass fraction to 0 or less disables the corresponding material from the composite. However, on the contrary it is not possible to add a component material to a composite at runtime, if not defined in the MDF.