Skip to content

Commit

Permalink
fix missing raman response flag during simulations without Ramman
Browse files Browse the repository at this point in the history
  • Loading branch information
majsylw authored and karoltarnowski committed Aug 27, 2021
1 parent b406082 commit 5cb7455
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 14 deletions.
40 changes: 26 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

# gnlse-python

gnlse-python is a Python set of scripts for solving
Generalized Nonlinear Schrodringer Equation. It is one of the WUST-FOG students
gnlse-python is a Python set of scripts for solving
Generalized Nonlinear Schrodringer Equation. It is one of the WUST-FOG students
projects developed by [Fiber Optics Group, WUST](http://www.fog.pwr.edu.pl/).

Complete documentation is available at
Complete documentation is available at
[https://gnlse.readthedocs.io](https://gnlse.readthedocs.io)

## Installation
Expand All @@ -15,7 +15,7 @@ Complete documentation is available at
2. Activate it with `. gnlse/bin/activate`.
3. Clone this repository `git clone https://github.com/WUST-FOG/gnlse-python.git`
4. Install the requirements in this directory `pip install -r requirements.txt`.
5. Install gnlse package `pip install .` or set `PYTHONPATH` enviroment variable
5. Install gnlse package `pip install .` (or `pip install -v -e .` for develop mode) or set `PYTHONPATH` enviroment variable

```bash
python -m venv gnlse
Expand All @@ -38,6 +38,7 @@ cd gnlse-python/examples

python test_Dudley.py
```

And you expect to visualise supercontinuum generation process in use of 3 types
of pulses (simulation similar to Fig.3 of Dudley et. al, RMP 78 1135 (2006)):

Expand All @@ -47,12 +48,12 @@ And you expect to visualise supercontinuum generation process in use of 3 types

- **Modular Design**

Main core of gnlse module is derived from the RK4IP matlab script
written by J.C.Travers, H. Frosz and J.M. Dudley
that is provided in "Supercontinuum Generation in Optical Fibers",
edited by J. M. Dudley and J. R. Taylor (Cambridge 2010).
Main core of gnlse module is derived from the RK4IP matlab script
written by J.C.Travers, H. Frosz and J.M. Dudley
that is provided in "Supercontinuum Generation in Optical Fibers",
edited by J. M. Dudley and J. R. Taylor (Cambridge 2010).
The toolbox prepares integration using SCIPYs ode solvers (adaptive step size).
We decompose the solver framework into different components
We decompose the solver framework into different components
and one can easily construct a customized simulations
by accounting different physical phenomena, ie. self stepening, Raman response.

Expand All @@ -61,7 +62,13 @@ And you expect to visualise supercontinuum generation process in use of 3 types
We implement three different raman response functions:
- 'blowwood': Blow and D. Wood, IEEE J. of Quant. Elec., vol. 25, no. 12, pp. 2665–2673, Dec. 1989,
- 'linagrawal': Lin and Agrawal, Opt. Lett., vol. 31, no. 21, pp. 3086–3088, Nov. 2006,
- 'hollenbeck': Hollenbeck and Cantrell J. Opt. Soc. Am. B / Vol. 19, No. 12 / December 2002.
- 'hollenbeck': Hollenbeck and Cantrell, J. Opt. Soc. Am. B, vol. 19, no. 12, Dec. 2002.

- **Nonlinearity**

We implement the possibility to account effective mode area's dependence on frequency:
- provide float value for gamma (effective nonlinear coefficient)
- 'NonlinearityFromEffectiveArea': introduce effective mode area's dependence on frequency (J. Laegsgaard, Opt. Express, vol. 15, no. 24, pp. 16110-16123, Nov. 2007).

- **Dispersion operator**

Expand All @@ -76,28 +83,33 @@ And you expect to visualise supercontinuum generation process in use of 3 types
- plot_Raman_response.py: plots different Raman in temporal domain,
- test_3rd_order_soliton.py: evolution of the spectral and temporal characteristics of the 3rd order soliton,
- test_dispersion.py: example of supercontinuum generation using different dispersion operators,
- test_nonlinearity.py: example of supercontinuum generation using different GNLSE and M-GNLSE (take into account mode profile dispersion),
- test_Dudley.py: example of supercontinuum generation with three types of input pulse,
- test_gvd.py: example of impuls broadening due to group velocity dispersion,
- test_import_export.py: example of saving file with `.mat` extension,
- test_raman.py: example of soliton fision for diffrent raman response functions,
- test_spm.py: example of self phase modulation,
- test_spm+gvd.py: example of generation of 1st order soliton.

## Release History

v1.0.0 was released in 13/8/2020.
v1.1.0 was released in 21/8/2021.
The master branch works with **python 3.7**.

* **1.0.0 -> Aug 13th, 2020**
* The first proper release
* CHANGE: Complete documentation and code
* **1.1.0 -> Aug 21th, 2021**
* Modified-GNLSE extension
* CHANGE: Code refactor - relocate GNLSE's attribiutes setting into constructor
* ADD: Possibility to take into account the effective mode area's dependence on frequency

## Authors

- [Adam Pawłowski](https://github.com/adampawl)
- [Paweł Redman](https://redman.xyz/)
- [Daniel Szulc](http://szulc.xyz/)
- Magda Zatorska
- [Magda Zatorska](https://github.com/magdazatorska)
- [Sylwia Majchrowska](https://majsylw.netlify.app/)
- [Karol Tarnowski](http://www.if.pwr.wroc.pl/~tarnowski/)

Expand Down Expand Up @@ -134,4 +146,4 @@ what you would like to change.
Please make sure to update example tests as appropriate.

## License
[MIT](https://choosealicense.com/licenses/mit/)
[MIT](https://choosealicense.com/licenses/mit/)
1 change: 1 addition & 0 deletions gnlse/gnlse.py
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,7 @@ def __init__(self, setup):
self.scale = 1

# Raman scattering
self.RW = None
if setup.raman_model:
self.fr, RT = setup.raman_model(self.t)
if np.abs(self.fr) < np.finfo(float).eps:
Expand Down

0 comments on commit 5cb7455

Please sign in to comment.