mcstasscript.helper.mcstas_objects.DeclareVariable

mcstasscript.helper.mcstas_objects.DeclareVariable

class mcstasscript.helper.mcstas_objects.DeclareVariable(type, name=None, **kwargs)

Class describing a declared variable in McStas instrument

McStas parameters are declared in declare section with c syntax. This class is initialized with type, name. Using keyword arguments, the variable can become an array and have its initial value set. Can also be used as a user variable in uservars (McStas 3.0)

type

McStas type to declare: Double, Int, String

Type

str

name

Name of variable

Type

str

value

Initial value of variable, converted to string

Type

any

comment

Comment displayed next to the declaration, could contain units

Type

str

vector

0 if a single value is given, otherwise contains the length

Type

int

write_line(fo)

Writes a line to text file fo declaring the parameter in c

__init__(type, name=None, **kwargs)

Initializing mcstas declare variable or user variable object

Examples

Creates a variable with name A3 and default value A = DeclareVariable(“double”, “A3”, value=30)

Creates a variable with type integer and name A A = DeclareVariable(“int”)

Creates a variable with type integer and name sample_number A = DeclareVariable(“int”, “sample_number”)

Creates an array variable called m_values A = DeclareVariable(“double”, “m_values”, array=3,

value=[2, 2.5, 2])

Parameters
  • type (str) – Type of the parameter, double, int or string

  • name (str) – Name of input parameter

  • arguments (Keyword) –

    arrayint

    length of array to be allocated, 0 if single value

    valueany

    sets initial value of parameter, can be a list with length matching array

    commentstr

    sets comment displayed next to declaration

Methods

__init__(type[, name])

Initializing mcstas declare variable or user variable object

write_line(fo)

Writes line declaring variable to file fo

write_line(fo)

Writes line declaring variable to file fo

Parameters

fo (file object) – File the line will be written to