:mod:`ocelot.optics.elements` ============================= .. py:module:: ocelot.optics.elements .. autoapi-nested-parse:: optics elements Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: ocelot.optics.elements.OptElement ocelot.optics.elements.Aperture ocelot.optics.elements.Lense ocelot.optics.elements.Mirror ocelot.optics.elements.EllipticMirror ocelot.optics.elements.ParabolicMirror ocelot.optics.elements.Grating ocelot.optics.elements.Crystal ocelot.optics.elements.Filter_freq ocelot.optics.elements.OptDrift ocelot.optics.elements.Detector ocelot.optics.elements.Geometry ocelot.optics.elements.Material Functions ~~~~~~~~~ .. autoapisummary:: ocelot.optics.elements.debug ocelot.optics.elements.warn ocelot.optics.elements.info .. function:: debug(*args) .. function:: warn(*args) .. function:: info(*args) .. py:class:: OptElement(r, roll_ang, pitch_ang, yaw_ang, size, id) OptElement is an optics building element with an arbitrary set of parameters attached .. method:: __hash__(self) Return hash(self). .. method:: __eq__(self, other) Return self==value. .. py:class:: Aperture(r=[0, 0, 0], d=[0, 0], no=[0, 0, 1], size=[1, 1, 0.1], id=None, type='circular') all optical element sizes are for circular aperture add Aperture element in front to model more complex shapes/apertures .. method:: slit(self, x, y) .. py:class:: Lense(r=[0, 0, 0], no=[0, 0, 1], s1=0.0, s2=0.0, D=1.0, n=0.99, id='') .. method:: c_fun(self, r) .. py:class:: Mirror(r=[0, 0, 0], roll_ang=0.0, pitch_ang=0.0, yaw_ang=0.0, size=[1.0, 1.0, 0.1], id=None) Bases: :class:`ocelot.optics.elements.OptElement` plane mirror .. py:class:: EllipticMirror(r=[0, 0, 0], roll_ang=0.0, pitch_ang=0.0, yaw_ang=0.0, size=[1.0, 1.0, 0.2], a=[1, 1], id='') Bases: :class:`ocelot.optics.elements.OptElement` OptElement is an optics building element with an arbitrary set of parameters attached .. py:class:: ParabolicMirror(r=[0, 0, 0], no=[0, 0, 1], a=[1, 1], size=[1.0, 1.0, 0.1]) .. py:class:: Grating(r=[0, 0, 0], no=[0, 1, 0], size=[1.0, 1.0, 0.1], d=0, id='') .. py:class:: Crystal(r=[0, 0, 0], no=[0, 0, 1], size=[1, 1, 0.1], id='') .. method:: slit(self, x, y) .. py:class:: Filter_freq(r=[0, 0, 0], no=[0, 0, 1], size=[1, 1, 1], id='', filename='') .. py:class:: OptDrift(r=[0, 0, 0], size=[0, 0, 0], id='') Free space .. py:class:: Detector(r=[0, 0, 0], size=[1.0, 1.0, 0], no=[0, 0, 1], nx=101, ny=101, id='') .. method:: hit(self, r) .. method:: clear(self) .. py:class:: Geometry(geo=[]) .. method:: __call__(self) .. method:: __getitem__(self, idx) .. method:: __setitem__(self, idx, val) .. method:: find(self, id) .. method:: create_lookup_tables(self) .. method:: get_c(self, r) .. py:class:: Material(n=1.0) .. data:: MaterialDb