squeezingsimulation

Simulation of the noise spectrum of an optical parametric amplifier (OPO) as well as ABCD transfer matrix formalism

https://github.com/eq15t-panda/squeezingsimulation

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (17.1%) to scientific vocabulary

Keywords

bow-tie cavity gaussian-beam optical-parametric-oscillator quantum-optics ray-optics second-harmonic-generation squeezed-light
Last synced: 9 months ago · JSON representation ·

Repository

Simulation of the noise spectrum of an optical parametric amplifier (OPO) as well as ABCD transfer matrix formalism

Basic Info
  • Host: GitHub
  • Owner: eq15t-panda
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 224 KB
Statistics
  • Stars: 2
  • Watchers: 1
  • Forks: 1
  • Open Issues: 5
  • Releases: 0
Topics
bow-tie cavity gaussian-beam optical-parametric-oscillator quantum-optics ray-optics second-harmonic-generation squeezed-light
Created about 2 years ago · Last pushed 10 months ago
Metadata Files
Readme Citation

README.md

Creation of a squeezed states source

This repository contains scripts developed to find the optimal parameters for a chosen non-linear crystal and optical cavity geometry. Please note that this repository does not include the literature review or theoretical background; it is solely focused on the practical aspect of parameter optimization.

Install

General information

Required python >= 3.8 and pip

pip install -r requirements.txt

Using Pycharm

If you are using Pycharm follow these simple steps:

  1. On GitHub, click the button <> Code and copy the link
  2. On Pycharm, go to Git > Clone
  3. Paste the url of the GitHub repository you just copied and click clone.
  4. You can now access the files. The GUI should automatically ask you if you want to download the requirements

Using Spyder

How to clone a repository in Spyder?

Tutorial was found at this link.

You need to open a system terminal, go to the directory you want to clone and do git clone your-repo-here.git, then you can open Spyder and either create a new project in the directory where you cloned your repository, or just open in the files pane the directory where you cloned the repository

How to sync a Spyder folder with GitHub?

To sync your folder you need to use git commands, https://education.github.com/git-cheat-sheet-education.pdf, normally you will have two most use cases that are syncing with your remote repo and publishing your changes to the remote repo. This has to be done in a system terminal as well.

  • Exploring changes: git fetch
  • Sync remote changes to local repository: git pull
  • To publish changes, first create a commit with a description and then publish them: git add -A git commit -m "Description of the changes" git push

Project organization

Folders

  • cavity\ : Contains calculations from ray-optics/gaussian beam. The goal is to find the waist for a given cavity geometry;
  • squeezing\ : Contains scripts related to the prediction of squeezing generated by an Optical Parametric Oscillator(OPO);
  • utils\: Various utility functions for plot, settings, logger, etc.

Settings

All the settings and grouped up in a single file called settings.yaml. If this file is missing, create one at the root of the repository. Below is an example:

```yaml

Plot parameter

number_points: 2000

waist_vs: 'dc'

cmap_name: 'gray' alpha: 0.8

plotbandwidth: False plotwaist: True plotpumppower: False squeezingwavelength: False plotthreshold: False plug_value: False

Wavelength

wavelength: 780e-9

Cavity parameters

fixedlength: 500e-3 fixeddcurved: 190e-3 minL: 200e-3 maxL: 900e-3 cavityloss: 0.03 dcurvedmin: 50e-3 dcurvedmax: 200e-3

Transmission coefficients

minT: 0. maxT: 0.3 R: 50e-3

Bandwidth

centralfreq: 10.0e6 rangefreq: 0.1

Crystal parameters

crystallength: 10e-3 crystalindex: 1.84 # PPKTP refraction index

Squeezing parameters

omega_c: 10000000.0 # bandwidth of the cavity threshold: 1.0 ```

Main script

To run any scripts related to cavity optimization, make sure you set at least one parameter among: - plot_bandwidth - plot_waist - plot_pump_power - squeezing_wavelength - plot_threshold

is set to True. Then simply execute run.py.

In Pycharm, make sure in the configuration that the project directory is set to the root of the repository, otherwise utils\settings.py will not be able to load the yaml file containing new settings and will return an empty settings object. Uncomment the debugging line in utils\settings.py to check if the settings file is correctly loaded. Sometimes, when importing the settings in a script, but running in the wrong directory, the parameters will be set to default as the yaml file was not found.

Owner

  • Name: eq15t-panda
  • Login: eq15t-panda
  • Kind: organization

Citation (CITATION.cff)

message: "If you use this code, please cite it as below."
authors:
  - family-names: ChrisZeThird
title: "Squeezed States Simulation"
date-released: 2024-05-01
url: https://github.com/ChrisZeThird/SqueezingSimulation

GitHub Events

Total
Last Year

Dependencies

requirements.txt pypi
  • configargparse *
  • matplotlib *
  • numpy *