Skip to main content

An interferometer modeling and ray tracing program

Project description

fintrace

Description

This repository is meant to be a generalized combination of finesse and gtrace, two interferometer modeling packages. Through the CLI you can create both a Finesse model as well as gtrace to create a physical picture of your setup. Currently, only .yaml files are accepted as input for the models, and the syntax of them must be very specific; error messages and helpful text are being added.

You can also use this created model just like you would use a Finesse model, as it inherits from Model; that is to say we can do all of the interferometric modeling we would be able to do with Finesse with the created Fintrace model. See the documentation for examples.

Installation

This repository uses its own conda environment fintrace, which can be installed with instructions below. The environment must be activate when running scripts.

To install: Make sure that you have a python package manager installed such as conda or mamba. Anaconda
mamba

  1. cd into the desired folder you'd like to place this repository
cd /path/to/desired/folder
  1. git clone this repo, then cd into it
git clone git@gitlab.com:mactodd315/fintrace.git
cd fintrace
  1. build the fintrace environment contained in environment.yml:
conda env create -f environment.yml

or

mamba env create -f environment.yml
  1. Then, enter the environment:
conda activate fintrace

or

mamba activate fintrace

You should see (fintrace) written before the beginning of your terminal prompt, indicating everything was built successfully.

  1. Finally, the code in this repository makes heavy use of the cosmic explorer repo, so it must also be cloned and installed. Clone the cosmic-explorer repo inside some repos folder (it doesn't matter where) and install it:
cd /path/to/repos folder
git clone git@gitlab.com:cosmic-explorer/cosmic-explorer.git
cd cosmic-explorer
pip install -e .

Then to get back to fintrace, cd back and install it.:

cd /path/to/fintrace
pip install -e .

You should successfully be able to run code.

Usage

To use, one must create a .yaml file with the right syntax, describing the locations and properties of each optic in the model. Generally, the more specific you are about each optic, the better; however, the examples provided show a good minimum number of parameters for each.

Connections are described using the Finesse syntax, so the user must know how the optical system will be connected before hand.

As an example, the bowtie.yaml features 4 mirrors, however all of them are technically beamsplitters in the .yaml file because of a non-zero angle of incidence. If you know an optic will have a zero angle of incidence, you should consider its type to be Mirror. Using a cavity declaration shown in this example file, we can produce a beam trace of the eigenmode by running:

fintrace_plot_yaml bowtie_test.yaml --gtrace figures/bowtie_cavity --beam-origin cavity --draw-width --grid

alt text

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fintrace-1.0.0a1.tar.gz (27.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fintrace-1.0.0a1-py3-none-any.whl (27.2 kB view details)

Uploaded Python 3

File details

Details for the file fintrace-1.0.0a1.tar.gz.

File metadata

  • Download URL: fintrace-1.0.0a1.tar.gz
  • Upload date:
  • Size: 27.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.14

File hashes

Hashes for fintrace-1.0.0a1.tar.gz
Algorithm Hash digest
SHA256 438c323dcd12898a49dac313c24a61383f39923ffd3cf78e1b4d92fafebc76a2
MD5 07377c0b712d6907333db37941b3ea63
BLAKE2b-256 1b2e4855b299319c7bcbe4f5e299bcf6b1616eba3e97f2879faf464cdeb6c897

See more details on using hashes here.

File details

Details for the file fintrace-1.0.0a1-py3-none-any.whl.

File metadata

  • Download URL: fintrace-1.0.0a1-py3-none-any.whl
  • Upload date:
  • Size: 27.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.14

File hashes

Hashes for fintrace-1.0.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 bd8164327acc1f373e0e894eaaa14259c4f313cea4418251b94f657a83261264
MD5 69f151363af03644c891ef76b0655bea
BLAKE2b-256 b284cb01ae24d6dcbdd0852bb81ad7b28d19c3684ba3d8331319d0c3ec9ef58b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page