orsopy.fileio.model_language module

Implementation of the simplified model language for the ORSO header.

It includes parsing of models from header or different input information and resolving the model to a simple list of slabs.

orsopy.fileio.model_language.find_idx(string, start, value)[source]
class orsopy.fileio.model_language.ModelParameters(roughness=<factory>, length_unit='nm', mass_density_unit='g/cm^3', number_density_unit='1/nm^3', sld_unit='1/angstrom^2', magnetic_moment_unit='muB', comment=None)[source]

Bases: Header

roughness: Value
length_unit: str = 'nm'
mass_density_unit: str = 'g/cm^3'
number_density_unit: str = '1/nm^3'
sld_unit: str = '1/angstrom^2'
magnetic_moment_unit: str = 'muB'
comment: Optional[str] = None
class orsopy.fileio.model_language.Material(formula=None, mass_density=None, number_density=None, sld=None, magnetic_moment=None, relative_density=None, comment=None)[source]

Bases: Header

formula: Optional[str] = None
mass_density: Union[float, Value, None] = None
number_density: Union[float, Value, None] = None
sld: Union[float, ComplexValue, Value, None] = None
magnetic_moment: Union[float, Value, None] = None
relative_density: Optional[float] = None
original_name = None
resolve_defaults(defaults)[source]
generate_density()[source]
get_sld(xray_energy=None)[source]
Return type:

complex

comment: Optional[str] = None
class orsopy.fileio.model_language.Composit(composition, comment=None)[source]

Bases: Header

composition: Dict[str, float]
original_name = None
resolve_names(resolvable_items)[source]
resolve_defaults(defaults)[source]
generate_density()[source]

Create a material based on the composition attribute.

get_sld(xray_energy=None)[source]
comment: Optional[str] = None
class orsopy.fileio.model_language.Layer(thickness=None, roughness=None, material=None, composition=None, comment=None)[source]

Bases: Header

thickness: Union[float, Value, None] = None
roughness: Union[float, Value, None] = None
material: Union[Material, Composit, str, None] = None
composition: Optional[Dict[str, float]] = None
original_name = None
resolve_names(resolvable_items)[source]
resolve_defaults(defaults)[source]
generate_material()[source]

Create a material based on the composition attribute.

comment: Optional[str] = None
class orsopy.fileio.model_language.SubStack(repetitions=1, stack=None, sequence=None, represents=None, arguments=None, keywords=None, comment=None)[source]

Bases: Header

repetitions: int = 1
stack: Optional[str] = None
sequence: Optional[List[Layer]] = None
represents: Optional[str] = None
arguments: Optional[List[Any]] = None
keywords: Optional[Dict[str, Any]] = None
original_name = None
resolve_names(resolvable_items)[source]
resolve_defaults(defaults)[source]
resolve_to_layers()[source]
comment: Optional[str] = None
class orsopy.fileio.model_language.SampleModel(stack, origin=None, sub_stacks=None, layers=None, materials=None, composits=None, globals=None, reference=None, comment=None)[source]

Bases: Header

stack: str
origin: Optional[str] = None
sub_stacks: Optional[Dict[str, SubStack]] = None
layers: Optional[Dict[str, Layer]] = None
materials: Optional[Dict[str, Material]] = None
composits: Optional[Dict[str, Composit]] = None
globals: Optional[ModelParameters] = None
reference: Optional[str] = None
property resolvable_items
resolve_stack()[source]
resolve_to_layers()[source]
comment: Optional[str] = None