pm2_h = ww_pm2_h.native_optical_element  # Wiser optical element
    pm2_h.ComputationSettings.UseFigureError = False
    pm2_h.CoreOptics.Orientation = Optics.OPTICS_ORIENTATION.HORIZONTAL

    pm2_h.ComputationSettings.Ignore = False  # Lo user decide di non simulare lo specchio ()
    pm2_h.ComputationSettings.UseCustomSampling = UseCustomSampling  # l'utente decide di impostare a mano il campionamento
    pm2_h.ComputationSettings.NSamples = N

    # KB(v)
    # ==========================================================================
    ww_kb_v = WiserOpticalElement(
        name='kb_v',
        boundary_shape=None,
        native_CoreOptics=Optics.MirrorElliptic(f1=f1_v,
                                                f2=f2_v,
                                                L=L,
                                                Alpha=AngleGrazing),
        native_PositioningDirectives=Foundation.PositioningDirectives(
            ReferTo='source', PlaceWhat='upstream focus', PlaceWhere='centre'))

    kb_v = ww_kb_v.native_optical_element
    kb_v.CoreOptics.ComputationSettings.UseFigureError = False
    kb_v.CoreOptics.Orientation = Optics.OPTICS_ORIENTATION.VERTICAL
    kb_v.CoreOptics.ComputationSettings.UseRoughness = False
    kb_v.CoreOptics.ComputationSettings.UseSmallDisplacements = False  # serve per traslare/ruotare l'EO

    kb_v.ComputationSettings.UseCustomSampling = UseCustomSampling  # l'utente decide di impostare a mano il campionamento
    kb_v.ComputationSettings.NSamples = N
    # kb_v.CoreOptics.FigureErrorLoad(File='DATA/LTP/kbh.txt', Step=2e-3, AmplitudeScaling=-1e-3)

    # KB(h)
Ejemplo n.º 2
0
 def get_native_optical_element(self):
     return Optics.MirrorElliptic(f1=self.f1,
                                  f2=self.f2,
                                  L=self.length,
                                  Alpha=numpy.deg2rad(self.alpha))