Giter VIP home page Giter VIP logo

lightwaveexplorer's People

Contributors

nickkarpowicz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

lightwaveexplorer's Issues

support different floating point trypes

Currently only double precision is used; I would like to make this flexible so that single precision can be used (allowing it to run on Intel Xe-based iGPUs that don't support 64-bit FP), or even quads in the case that very small nonlinear effects are to be studied

Add loadOptic and applyOptic sequence functions

It would be useful to be able to apply transmission and phase from a file in the course of a sequence. Should be a 3xN array, giving frequency, transmission, phase. People might prefer wavelengths but it will be more reliable if I don't extrapolate lower frequencies.

Sequence should look like
loadOptic("filenameOpticZero.txt")
loadOptic("filenameOpticOne.txt")
do some stuff
applyOptic(0)
applyOptic(1)

This means supporting quotes in the argument field of functions. Optics should just accumulate sequentially

NLSE femtosecond laser filamentation

Hello there,
I've been playing with the beautiful application you wrote and enjoying it lately.
In my research i'm interested in the following task -
Propage a 100 fs pulse through air with external focusing (lens of 500mm) conditions and create a plasma filament.
Is this doable under your simulation?
I haven't found a way to put a lens.

Thanks,
Ivan

Add nonlinear reflection mode

Use FDTD modes to calculate nonlinear reflection:
Structure should be to place the observation plane in front of the crystal and do two propagations, one with crystal and one without, taking their difference.

Plotting the spatial distribution of light

I am currently working on simulating SHG of low pulse energy, tightly focused light. Due to the presence of group velocity mismatch and spatial walk off in the system, the generated SH should exhibit signficant pulse front tilt and a distorted SH beam profile. I am trying to use python to plot the spatial profile of the output of a simulation to characterise this (e.g. a heatmap of the electric field over the x-y axes). However I am having trouble deciphering the way the electric fields are stored in a python lightwaveExplorer object. Do you have any sample code that I could use to get started, or just some tips on the way the electric field is stored in the lightwaveExplorer object?

Any help would be greatly appreciated!

A version for CW?

could you provide a version for CW, I do not know how to fix it to CW SHG.

emoji icons don't appear properly on mac

The sequence helper icons use emoji but the Mac version uses letters, because of a current limitation of Cairo on mac. This will hopefully get fixed in a future release, or if there's a workaround I would implement it

Add nonlinear fiber mode

A simple nonlinear fiber mode would be useful.
Elements to add:

  • Apply boundary conditions in real space
  • For gradient pressure, recalculate propagation parameters when necessary
  • Add some gases to database

Can not compile on apple silicon with python3.12

Dear Nick,

I tried to compile the code on an Apple Silicon Mac and had quite a hard time. It turns out that vcpkg relies on the distutils library, which is now outdated and no longer part of Python since version 3.12. One has to use a virtual environment with Python 3.11 or earlier, and it works.

It might be worth mentioning this in your documentation.

Thanks for your great software; I love it.

Cheers,
Eliott

Add material grid to FDTD mode

Currently, the simulation only handles propagation through a simple planar crystal; would be good to have the option of a spatial map of materials
Needs:

  • File format for grid (ascii matrix of integers would be best)
  • Memory efficient way of storing the material indicies and only allocating an oscillator set when required

EOS file type not implemented yet

Selecting EOS in the pulldown menu for an input file time will simply use the parameters from the interface since no function exists yet to load it

add option for full Maxwell equations solution in sequences

In the case where reflections are a significant part of the dynamics (thin samples, nonlinear reflection from a surface) we will sometimes want to solve Maxwell's equations rather than the unidirectional propagation equation. This solution could be integrated within a sequence as a function for calling the Maxwell's equation solver and returning a new space vs. time grid from a given plane within the Maxwell grid.

First version will assume planar sample in vacuum for simplicity. Basic structure:
input field (taken from current value in solution) injected from lefthand side of maxwell grid (3D or 2D space only). Material pixels have running calculation of polarization/current which will only work for Lorentzian/Gaussian materials.

Inputs of function:
material
z extent of grid
start z of material on grid
end z of material on grid
z location of output plane
integer divisor of time step
integer divisor of z step

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.