Skip to content

Constraints

constraints

Define per-device optimization constraints.

This is intentionally separate from the hardware definitions and from the optimzer-specific configurations in order to: - make it easy to find - keep it optimizer-agnostic

A constraint on an input variable (such as a centroid position) tells the optimizer that that the point is no good. The optimizer should avoid such points and not consider them in the model. This is intended for points that are invalid data, or otherwise are correlated with problems. These are the "constraints" in the XOpt VOCS. These are "objectives" with constraint= instead of target= in Blop.

A contraint on an output variable (such as allowed range, step sizes) tells the optimizer which points it is or is not allowed to try. These are restrictions on "variables" in the XOpt VOCS (and sometimes, generator kwargs). These are restrictions on "degress of freedom" in Blop.

Attributes

constraint_data module-attribute

constraint_data = ConstraintData(yag=yag_constraint_data, mirr=mfx_mirror_constraints, und=hxr_und_constraints)

hxr_und_constraints module-attribute

hxr_und_constraints = UndulatorConstraints(xy_delta=200, max_travel_distance=75)

mfx_dg1_yag_constraints module-attribute

mfx_dg1_yag_constraints = YagConstraints(roi_center=(240, 270), roi_radius=180)

mfx_dg2_yag_constraints module-attribute

mfx_dg2_yag_constraints = YagConstraints(roi_center=(256, 256), roi_radius=200)

mfx_mirror_constraints module-attribute

mfx_mirror_constraints = MirrorConstraints(range_center=-548.0, range_delta=4, max_travel_distance=2)

xcs_yag1_constraints module-attribute

xcs_yag1_constraints = YagConstraints(roi_center=(567, 343), roi_radius=100)

yag_constraint_data module-attribute

yag_constraint_data: dict[Diagnostics, YagConstraints] = {'xcs1': xcs_yag1_constraints, 'dg1': mfx_dg1_yag_constraints, 'dg2': mfx_dg2_yag_constraints}

Classes

ConstraintData dataclass

ConstraintData(yag: dict[Diagnostics, YagConstraints], mirr: MirrorConstraints, und: UndulatorConstraints)
Attributes
mirr instance-attribute
mirr: MirrorConstraints
und instance-attribute
und: UndulatorConstraints
yag instance-attribute
yag: dict[Diagnostics, YagConstraints]
Functions

MirrorConstraints dataclass

MirrorConstraints(range_center: float, range_delta: float, max_travel_distance: float | None = None)
Attributes
max_travel_distance class-attribute instance-attribute
max_travel_distance: float | None = None
range_center instance-attribute
range_center: float
range_delta instance-attribute
range_delta: float
Functions

UndulatorConstraints dataclass

UndulatorConstraints(xy_delta: float, max_travel_distance: float | None = None)
Attributes
max_travel_distance class-attribute instance-attribute
max_travel_distance: float | None = None
xy_delta instance-attribute
xy_delta: float
Functions

YagConstraints dataclass

YagConstraints(roi_center: tuple[int, int] | None = None, roi_radius: int | None = None)
Attributes
roi_center class-attribute instance-attribute
roi_center: tuple[int, int] | None = None
roi_radius class-attribute instance-attribute
roi_radius: int | None = None
Functions