Ejemplo n.º 1
0
def run(Plot, Save):
    from PyMieSim.Scatterer import Sphere
    from PyMieSim.Source import PlaneWave
    from PyMieSim import Material

    Source = PlaneWave(Wavelength=450e-9, Polarization=0, E0=1)

    Scat = Sphere(Diameter=300e-9, Source=Source, Material=Material('BK7'))
Ejemplo n.º 2
0
def run(Plot, Save):
    from PyMieSim.Data._Material.utils import LoadOnlineSave
    from PyMieSim import Material

    LoadOnlineSave(
        filename='Silver',
        url=
        'https://refractiveindex.info/data_csv.php?datafile=data/main/Ag/Johnson.yml'
    )

    Mat = Material('Silver')

    if Plot:
        Mat.Plot()

    if Save:
        from pathlib import Path
        Mat.SaveFig(Path(__file__).stem)
Ejemplo n.º 3
0
def run(Plot, Save):
    from PyMieSim.Data._Material.utils import LoadOnlineSave
    from PyMieSim import Material

    LoadOnlineSave(
        filename='BK7',
        url=
        'https://refractiveindex.info/data_csv.php?datafile=data/glass/schott/N-BK7.yml'
    )

    Mat = Material('BK7')

    if Plot:
        Mat.Plot()

    if Save:
        from pathlib import Path
        Mat.SaveFig(Path(__file__).stem)
Ejemplo n.º 4
0
def run(Plot, Save):
    import numpy as np
    from PyMieSim import Material
    from PyMieSim.Scatterer import Sphere
    from PyMieSim.Source import PlaneWave
    from PyMieSim.Detector import Photodiode
    from PyMieSim.Experiment import ScatSet, SourceSet, Setup, DetectorSet

    scatKwargs = {
        'Diameter': 500e-9,
        'Material': Material('BK7'),
        'nMedium': [1]
    }

    sourceKwargs = {
        'Wavelength': np.linspace(400e-9, 1000e-9, 50),
        'Polarization': [0]
    }

    detecKwargs = {
        'NA': 0.2,
        'Sampling': 300,
        'GammaOffset': 0,
        'PhiOffset': [0, 30, 60],
        'CouplingMode': 'Centered'
    }

    detecSet = DetectorSet(Detector=Photodiode, kwargs=detecKwargs)

    scatSet = ScatSet(Scatterer=Sphere, kwargs=scatKwargs)

    sourceSet = SourceSet(Source=PlaneWave, kwargs=sourceKwargs)

    Experiment = Setup(ScattererSet=scatSet,
                       SourceSet=sourceSet,
                       DetectorSet=detecSet)

    Data = Experiment.Get('Coupling')

    print(Data)

    if Plot:
        Data.Plot(y='Coupling', x='wavelength')

    if Save:
        from pathlib import Path
        dir = f'docs/images/{Path(__file__).stem}'
        Data.SaveFig(Directory=dir, y='Coupling', x='wavelength')
def run(Plot, Save):
    import numpy as np
    from PyMieSim import Material
    from PyMieSim.Scatterer import Sphere
    from PyMieSim.Source import PlaneWave
    from PyMieSim.Detector import Photodiode
    from PyMieSim.Experiment import ScatSet, SourceSet, Setup, DetectorSet

    scatKwargs = {
        'Diameter': np.geomspace(6.36e-09, 10000e-9, 500),
        'Material': [Material('Silver')],
        'nMedium': [1]
    }

    sourceKwargs = {
        'Wavelength': [400e-9, 900e-9, 1200e-9, 1600e-9],
        'Polarization': [0]
    }

    scatSet = ScatSet(Scatterer=Sphere, kwargs=scatKwargs)

    sourceSet = SourceSet(Source=PlaneWave, kwargs=sourceKwargs)

    Experiment = Setup(ScattererSet=scatSet, SourceSet=sourceSet)

    Data = Experiment.Get(Input=['Qsca', 'Qabs'])

    MeanData = Data.Mean('wavelength')

    print(MeanData)

    if Plot:
        Data.Plot(y='Qabs', x='diameter', Scale='log')

    if Save:
        from pathlib import Path
        dir = f'docs/images/{Path(__file__).stem}'
        Data.SaveFig(Directory=dir, y='Qabs', x='diameter', Scale='log')
Ejemplo n.º 6
0
def run(Plot, Save):
    return
    import numpy as np
    from PyMieSim import Material
    from PyMieSim.Scatterer import Sphere
    from PyMieSim.Detector import Photodiode, LPmode
    from PyMieSim.Source import PlaneWave
    from PyMieSim.Experiment import ScatSet, SourceSet, Setup, DetectorSet

    DiameterList = np.linspace(100e-9, 1000e-9, 200)

    Detector0 = Photodiode(NA=0.1,
                           Sampling=300,
                           GammaOffset=20,
                           PhiOffset=0,
                           CouplingMode='Centered')

    scatKwargs = {
        'Diameter': np.linspace(400e-9, 2000e-9, 200),
        'Material': Material('BK7'),
        'nMedium': [1]
    }

    sourceKwargs = {'Wavelength': 1e-6, 'Polarization': [0]}

    Detector0 = Photodiode(NA=2.0,
                           Sampling=300,
                           GammaOffset=0,
                           PhiOffset=0,
                           CouplingMode='Centered')

    detecSet = DetectorSet([Detector0])

    scatSet = ScatSet(Scatterer=Sphere, kwargs=scatKwargs)

    sourceSet = SourceSet(Source=PlaneWave, kwargs=sourceKwargs)

    Experiment = Setup(ScattererSet=scatSet,
                       SourceSet=sourceSet,
                       DetectorSet=detecSet)

    # Metric can be "max"
    #               "min"
    #               "mean"
    #               "std+RI"
    #               "std+Diameter"
    #               "std+Polarization"
    #               "std+Wavelength"
    #               "std+Detector"
    #               "monotonic+RI"
    #               "monotonic+Diameter"
    #               "monotonic+Polarization"
    #               "monotonic+Wavelength"
    #               "monotonic+Detector"

    Opt = Experiment.Optimize(Setup=Experiment,
                              Metric='mean',
                              Parameter=['PhiOffset'],
                              Optimum='Maximum',
                              MinVal=[1e-5],
                              MaxVal=[180],
                              WhichDetector=0,
                              X0=[0.6],
                              MaxIter=350,
                              Tol=1e-4,
                              FirstStride=30)

    print(Opt.Result)

    df = Experiment.Coupling(AsType='dataframe')

    if Plot:
        df.Plot(y='Coupling', x='Diameter')  # can be "Couplimg"  or  "STD"