Open phansandra opened 2 months ago
Hi,
As your mirror is not a closed shape (like a capillary) and you know the mirror’s n (normal) and z (height) as functions of x and y, you don’t need a parametric representation and you don’t need to start from a ready mirror class, such as EllipticalMirrorParam or ToroidMirror. I would subclass directly from OE
and redefine local_n(x, y)
as ~ln(b-ay), where the trapezoidal mirror width = b – ay, and local_z(x, y)
as ~y ln(b-ay) +cy. If you need to supply some geometric parameters to the mirror class, you can modify its __init__()
.
If you have troubles with subclassing, ask again.
Thank you, Konstantin. I'll let you know how it goes.
Hi! I'm modelling a KB focusing system. It includes two trapezoidal mirrors bent elliptically by rods that apply force on both ends. Curvature of the mirror increases linearly toward the narrow end, as the cross-sectional area gets smaller. We routinely refocus these mirrors to correct for astigmatism at different energies, and would like our model to represent cases when a mirror is not perfectly elliptical.
I defined an equation for curvature parameterized by arc (mirror) length. It's a function of the two applied forces from the bender rods. Other physical properties, like elasticity and position of applied forces, are known and constant. Now, I'm trying to add a custom class in XRT for these mirrors and this is where I see a few options:
Could you let me know if any of these approaches seems most reasonable to you? Please let me know if I can be clearer in any part of my description.