Physics

Utilities for building and using physics tabulations.

Description

In order to save computation time the physical properties of materials are first tabulated for each projectile, i.e. muon or tau, before the simulation. Then, during the simulation a fast lookup procedure is used. The build function allows to generate a set of material tabulations. It requires specifying Material properties. A collection of predefined materials is available in the materials table.

Note

The material tabulations generated by the build function are stored on disk. They need to be generated once and only once for a given set of materials. Note however that by default the tabulations are stored in a binary format that depends on the architecture of the execution host, e.g. 32 or 64 bits, litlle or big endian. Therefore, when migrating to another machine you might want to re-generate the tabulations instead of copying them in order to avoid compatibility issues.

Note

The material tabulations are optimized in size for a given set of materials and atomic elements. Adding, removing or modifying a material is not supported. Instead one should build a new set of material tabulations.

Composite materials are microscopic mixtures of homogeneous (base) materials, e.g. a rock made of micrometric to millimetric mineral inclusions. Composite materials are specified by providing a table of base materials mass fractions to the build function.

Note

Contrary to base materials, the composition of the composite, i.e. the mass fractions, can be modified at runtime. However, it is not possible to add or remove a composite from the tabulations nor to add a base material component to an existing composite. Instead one should build a new set of materials.

Material tabulations are loaded when instantiating a Physics object. For C users it is also possible to instantiate a Physics object from XML Material Description Files (MDFs). The material tabulations as well as some other related properties are exposed as TabulatedMaterial instances.

Examples

-- Build a set of material tabulations
pumas.build{
    materials = {'StandardRock', 'Water', 'Air'},
    composites = {WetRock = {StandardRock = 0.7, Water = 0.3}},
    path = 'share/materials/standard'
}

-- Create the simulation physics
local physics = pumas.Physics('share/materials/standard')

See also

build, CompositeMaterials, Element, Material, Physics, TabulatedMaterial.