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'))
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)
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)
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')
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"