diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-tdyno.spec | 276 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 278 insertions, 0 deletions
@@ -0,0 +1 @@ +/tdyno-0.1.7.tar.gz diff --git a/python-tdyno.spec b/python-tdyno.spec new file mode 100644 index 0000000..69eb451 --- /dev/null +++ b/python-tdyno.spec @@ -0,0 +1,276 @@ +%global _empty_manifest_terminate_build 0 +Name: python-tdyno +Version: 0.1.7 +Release: 1 +Summary: FDTD with dynamic modulations in the refractive index or the gain/loss in materials. +License: GNU Affero General Public License v3 or later (AGPLv3+) +URL: https://github.com/alexysong/tdyno +Source0: https://mirrors.aliyun.com/pypi/web/packages/bb/4c/55637ab9a8a1c7e44bfd3d1cbda574e482713136c0bc1a2994d47bb6f657/tdyno-0.1.7.tar.gz +BuildArch: noarch + +Requires: python3-numpy +Requires: python3-scipy +Requires: python3-matplotlib + +%description +**T-Dyno** is a 2D finite-difference time-domain (FDTD) package. +Apart from conventional FDTD functionalities, TDyno is capable of applying dynamic modulations in both the real and the imaginary parts of the permittivity, i.e. having index modulations and gain/loss modulations. +It can thus simulate dynamically modulated optical devices such as isolators, circulators, directional absorbers, and nonreciprocal amplifiers in the time-domain. +## Features +T-Dyno natively supports the following features: +* point sources +* Total-field scattered-field (TF/SF) sources and directional plane-wave souces with the following temporal profiles: + * continuous waves (cw) + * Gaussian pulses + * wave packets, i.e. Gaussian modulated cw waves +* Convolutional perfectly matched layers (CPML) +* Supported materials: + * dispersionless lossy/lossless dielectrics + * dispersive dielectrics (Lorentz model) + * metal (Drude model) + * dynamically modulated refractive index + * dynamically modulated gain and loss +* Shapes: + * rectangle + * circular + * ring + * wedge +* Monitors + Point monitors: weighted sum of the wave amplitudes on a set of points. Can the energy spectral density, power spectral density, number flux spectrum and number flux rate spectrum. + Poynting energy flux monitor: monitor the real-time energy flux through a box or any edges of the box, from inside to outside. Calculate the frequency-space integral Poynting flux spectrum. +* User interface + Simple user interface where you can start, pause, reset, save plot, record videos, and save monitor data. +## Install + $ pip install tdyno +Or, + $ git clone git://github.com/alexsong/tdyno + $ pip install . +## Requirements +- Python 2.7 or >= 3.6 +- Numpy >= 1.11.3 +- matplotlib >= 2.0.0 +- scipy >= 0.19.0 +- for recording videos, need to install `ffmpeg`. +## Usage +The `examples` in the `examples/` folder are the easiest places to get started with the package. +* `fdtd_2d.py` + It's recommended that you go through `fdtd_2d.py` first, then move on to other examples. + `fdtd_2d.py` contains a detailed explanation of the basic functionalities of the package. It contains: point sources and a TF/SF source with different source temporal profiles, PML absorbing boundary condition, and different types of materials and geometries to build a structure. + https://user-images.githubusercontent.com/55603472/130169577-fa837496-456e-4b95-bf7c-93633b9a2fc7.mp4 +* `ring_coupler.py` + This is an example of a ring resonator coupled to input/output waveguides. +* `waveguide_2d_dynamic_modulation.py` + This example contains a waveguide under dynamic modulations. The modulation can be in the refractive index or in the gain/loss. + This example also contain several point monitors and a Poynting monitor to measure wave intensities and calculate the spectrum. + https://user-images.githubusercontent.com/55603472/130178495-1d9e19fb-0cf3-4a73-9e2b-c7f018962742.mp4 +## Citing +If you find T-Dyno useful for your research, we would apprecite you citing our [paper](https://doi.org/10.1103/PhysRevA.99.013824). For your convenience, you can use the following BibTex entry: +``` +@article{song2019dynamic, + title={Direction-dependent parity-time phase transition and nonreciprocal amplification with dynamic gain-loss modulation}, + author={Song, Alex Y. and Shi, Yu and Lin, Qian and Fan, Shanhui}, + journal={Physical Review A}, + volume={99}, + issue={1}, + pages={013824}, + numpages={7}, + year={2019}, + month={Jan}, + publisher={American Physical Society}, + doi={10.1103/PhysRevA.99.013824}, + url={https://link.aps.org/doi/10.1103/PhysRevA.99.013824} +} +``` + +%package -n python3-tdyno +Summary: FDTD with dynamic modulations in the refractive index or the gain/loss in materials. +Provides: python-tdyno +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-tdyno +**T-Dyno** is a 2D finite-difference time-domain (FDTD) package. +Apart from conventional FDTD functionalities, TDyno is capable of applying dynamic modulations in both the real and the imaginary parts of the permittivity, i.e. having index modulations and gain/loss modulations. +It can thus simulate dynamically modulated optical devices such as isolators, circulators, directional absorbers, and nonreciprocal amplifiers in the time-domain. +## Features +T-Dyno natively supports the following features: +* point sources +* Total-field scattered-field (TF/SF) sources and directional plane-wave souces with the following temporal profiles: + * continuous waves (cw) + * Gaussian pulses + * wave packets, i.e. Gaussian modulated cw waves +* Convolutional perfectly matched layers (CPML) +* Supported materials: + * dispersionless lossy/lossless dielectrics + * dispersive dielectrics (Lorentz model) + * metal (Drude model) + * dynamically modulated refractive index + * dynamically modulated gain and loss +* Shapes: + * rectangle + * circular + * ring + * wedge +* Monitors + Point monitors: weighted sum of the wave amplitudes on a set of points. Can the energy spectral density, power spectral density, number flux spectrum and number flux rate spectrum. + Poynting energy flux monitor: monitor the real-time energy flux through a box or any edges of the box, from inside to outside. Calculate the frequency-space integral Poynting flux spectrum. +* User interface + Simple user interface where you can start, pause, reset, save plot, record videos, and save monitor data. +## Install + $ pip install tdyno +Or, + $ git clone git://github.com/alexsong/tdyno + $ pip install . +## Requirements +- Python 2.7 or >= 3.6 +- Numpy >= 1.11.3 +- matplotlib >= 2.0.0 +- scipy >= 0.19.0 +- for recording videos, need to install `ffmpeg`. +## Usage +The `examples` in the `examples/` folder are the easiest places to get started with the package. +* `fdtd_2d.py` + It's recommended that you go through `fdtd_2d.py` first, then move on to other examples. + `fdtd_2d.py` contains a detailed explanation of the basic functionalities of the package. It contains: point sources and a TF/SF source with different source temporal profiles, PML absorbing boundary condition, and different types of materials and geometries to build a structure. + https://user-images.githubusercontent.com/55603472/130169577-fa837496-456e-4b95-bf7c-93633b9a2fc7.mp4 +* `ring_coupler.py` + This is an example of a ring resonator coupled to input/output waveguides. +* `waveguide_2d_dynamic_modulation.py` + This example contains a waveguide under dynamic modulations. The modulation can be in the refractive index or in the gain/loss. + This example also contain several point monitors and a Poynting monitor to measure wave intensities and calculate the spectrum. + https://user-images.githubusercontent.com/55603472/130178495-1d9e19fb-0cf3-4a73-9e2b-c7f018962742.mp4 +## Citing +If you find T-Dyno useful for your research, we would apprecite you citing our [paper](https://doi.org/10.1103/PhysRevA.99.013824). For your convenience, you can use the following BibTex entry: +``` +@article{song2019dynamic, + title={Direction-dependent parity-time phase transition and nonreciprocal amplification with dynamic gain-loss modulation}, + author={Song, Alex Y. and Shi, Yu and Lin, Qian and Fan, Shanhui}, + journal={Physical Review A}, + volume={99}, + issue={1}, + pages={013824}, + numpages={7}, + year={2019}, + month={Jan}, + publisher={American Physical Society}, + doi={10.1103/PhysRevA.99.013824}, + url={https://link.aps.org/doi/10.1103/PhysRevA.99.013824} +} +``` + +%package help +Summary: Development documents and examples for tdyno +Provides: python3-tdyno-doc +%description help +**T-Dyno** is a 2D finite-difference time-domain (FDTD) package. +Apart from conventional FDTD functionalities, TDyno is capable of applying dynamic modulations in both the real and the imaginary parts of the permittivity, i.e. having index modulations and gain/loss modulations. +It can thus simulate dynamically modulated optical devices such as isolators, circulators, directional absorbers, and nonreciprocal amplifiers in the time-domain. +## Features +T-Dyno natively supports the following features: +* point sources +* Total-field scattered-field (TF/SF) sources and directional plane-wave souces with the following temporal profiles: + * continuous waves (cw) + * Gaussian pulses + * wave packets, i.e. Gaussian modulated cw waves +* Convolutional perfectly matched layers (CPML) +* Supported materials: + * dispersionless lossy/lossless dielectrics + * dispersive dielectrics (Lorentz model) + * metal (Drude model) + * dynamically modulated refractive index + * dynamically modulated gain and loss +* Shapes: + * rectangle + * circular + * ring + * wedge +* Monitors + Point monitors: weighted sum of the wave amplitudes on a set of points. Can the energy spectral density, power spectral density, number flux spectrum and number flux rate spectrum. + Poynting energy flux monitor: monitor the real-time energy flux through a box or any edges of the box, from inside to outside. Calculate the frequency-space integral Poynting flux spectrum. +* User interface + Simple user interface where you can start, pause, reset, save plot, record videos, and save monitor data. +## Install + $ pip install tdyno +Or, + $ git clone git://github.com/alexsong/tdyno + $ pip install . +## Requirements +- Python 2.7 or >= 3.6 +- Numpy >= 1.11.3 +- matplotlib >= 2.0.0 +- scipy >= 0.19.0 +- for recording videos, need to install `ffmpeg`. +## Usage +The `examples` in the `examples/` folder are the easiest places to get started with the package. +* `fdtd_2d.py` + It's recommended that you go through `fdtd_2d.py` first, then move on to other examples. + `fdtd_2d.py` contains a detailed explanation of the basic functionalities of the package. It contains: point sources and a TF/SF source with different source temporal profiles, PML absorbing boundary condition, and different types of materials and geometries to build a structure. + https://user-images.githubusercontent.com/55603472/130169577-fa837496-456e-4b95-bf7c-93633b9a2fc7.mp4 +* `ring_coupler.py` + This is an example of a ring resonator coupled to input/output waveguides. +* `waveguide_2d_dynamic_modulation.py` + This example contains a waveguide under dynamic modulations. The modulation can be in the refractive index or in the gain/loss. + This example also contain several point monitors and a Poynting monitor to measure wave intensities and calculate the spectrum. + https://user-images.githubusercontent.com/55603472/130178495-1d9e19fb-0cf3-4a73-9e2b-c7f018962742.mp4 +## Citing +If you find T-Dyno useful for your research, we would apprecite you citing our [paper](https://doi.org/10.1103/PhysRevA.99.013824). For your convenience, you can use the following BibTex entry: +``` +@article{song2019dynamic, + title={Direction-dependent parity-time phase transition and nonreciprocal amplification with dynamic gain-loss modulation}, + author={Song, Alex Y. and Shi, Yu and Lin, Qian and Fan, Shanhui}, + journal={Physical Review A}, + volume={99}, + issue={1}, + pages={013824}, + numpages={7}, + year={2019}, + month={Jan}, + publisher={American Physical Society}, + doi={10.1103/PhysRevA.99.013824}, + url={https://link.aps.org/doi/10.1103/PhysRevA.99.013824} +} +``` + +%prep +%autosetup -n tdyno-0.1.7 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-tdyno -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 0.1.7-1 +- Package Spec generated @@ -0,0 +1 @@ +e8a30f9fa688ba1aa2988699158bafd5 tdyno-0.1.7.tar.gz |
