All Projects → philmain28 → philsol

philmain28 / philsol

Licence: other
Simple python library for calculating the modes of electromagnetic waveguides using finite difference frequency domain method.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to philsol

modesolverpy
Photonic mode solver with a simple interface.
Stars: ✭ 47 (+123.81%)
Mutual labels:  mode, waveguide
blt
Lattice-based integer linear programming solver
Stars: ✭ 60 (+185.71%)
Mutual labels:  solver
SiEPIC Photonics Package
A Python (v3.6.5) package that provides a set of basic functions commonly used in integrated photonics.
Stars: ✭ 22 (+4.76%)
Mutual labels:  solver
SAAS
🤣🔫Sicko Mode as a service
Stars: ✭ 21 (+0%)
Mutual labels:  mode
WarpPI
WarpPI Calculator, Step-by-step algebra calculator for Raspberry Pi. (abandoned project)
Stars: ✭ 93 (+342.86%)
Mutual labels:  solver
PyMiniSolvers
A Python API for the MiniSat and MiniCard constraint solvers.
Stars: ✭ 18 (-14.29%)
Mutual labels:  solver
Sundials
SUNDIALS is a SUite of Nonlinear and DIfferential/ALgebraic equation Solvers. This is a mirror of current releases, and development will move here eventually. Pull requests are welcome for bug fixes and minor changes.
Stars: ✭ 194 (+823.81%)
Mutual labels:  solver
Hodoku
Hodoku is a solver/generator/trainer/analyzer for standard sudoku.
Stars: ✭ 49 (+133.33%)
Mutual labels:  solver
openmeeg
A C++ package for low-frequency bio-electromagnetism solving forward problems in the field of EEG and MEG.
Stars: ✭ 62 (+195.24%)
Mutual labels:  electromagnetism
sudokufx
AR Sudoku grabber and solver using JavaCV, JavaFX and Scala
Stars: ✭ 64 (+204.76%)
Mutual labels:  solver
SkytilsMod
A Hypixel Skyblock Utilities mod
Stars: ✭ 236 (+1023.81%)
Mutual labels:  solver
mSAT
A modular sat/smt solver with proof output.
Stars: ✭ 91 (+333.33%)
Mutual labels:  solver
flipy
A Python linear programming interface library
Stars: ✭ 23 (+9.52%)
Mutual labels:  solver
frontity-embedded
Embedded Mode plugin for Frontity sites
Stars: ✭ 24 (+14.29%)
Mutual labels:  mode
odex-js
Bulirsch-Stoer integration of systems of ordinary differential equations in JavaScript
Stars: ✭ 52 (+147.62%)
Mutual labels:  solver
Cubejs
cube.js -- JavaScript library for modeling and solving the 3x3x3 Rubik's Cube
Stars: ✭ 215 (+923.81%)
Mutual labels:  solver
libdnf
Package management library.
Stars: ✭ 157 (+647.62%)
Mutual labels:  solver
glpk.js
GLPK for browser & node
Stars: ✭ 72 (+242.86%)
Mutual labels:  solver
stlbfgs
C++ L-BFGS implementation using plain STL
Stars: ✭ 21 (+0%)
Mutual labels:  solver
optaplanner-quickstarts
OptaPlanner quick starts for AI optimization: many use cases shown in many different technologies.
Stars: ✭ 226 (+976.19%)
Mutual labels:  solver

philsol

Modes for the Masses (Massless?)

Fed up with relying on expensive proprietary software for your electromagnetic waveguide research? philsol might just be the package for you. In a world where high performance hardware is cheaper than specialist software, philsol throws elegence and sophistication out of the window and replaces it with brute force.

This is a fully vectorial finite difference waveguide mode solver and a direct Python implimentation of the algorithm found in the paper: 'Full-vectorial finite-difference analysis of microstructured optical fibres', by Zhu and Brown.

Warning: I haven't thoroughly tested so be wary and check the results are sensible...

New Warning: Original paper by Zhu and Brown is in gaussian not S. I. units. To correct use conversion table here.

Installation

  • Install using pip with command 'pip install philsol'
  • If you can't be bothered, the important part is the function eigenbuild in core.py.

Examples

  • Commented example projects can be found in the examples directory.
  • To run the examples, first install philsol to your Python environment (see above)

Features

Solver

  • Solves vector Maxwell(Helmholtz) equations in 2D for arbitary refractive index profile.
  • Return x and y componants of electric field.
  • philsol can handle anisotropic refractive indices with diagonal tensor.
  • Choice of solving routines: the default scipy.sparse solver or Slepc (slepc4py and petsc4py) this libraries can be fiddly to set up but are very heavily featured including some limited GPU support.
  • Extra field componants Ez, Hx, Hy, Hz can be calculated from construct module
  • Perfect electric conductor, periodic and absorbing boundary conditions.

Geometry building

  • The quickest way of importing geometry is with a bitmap image
  • See examples/example_image.py and examples/Hollow_Core_Fibre.ipynb for examples loading .bpm images
  • See examples/example_build.py for an example in building geometry using PIL/Pillow
  • See examples/Boundary Interpolation Example.ipynb for an attempt to handle curved boundaries with pillows anti-aliasing capabilities

Final Note

I wrote this code a while ago for my PhD but sometimes I get nostalgic about photonics so if you are doing anything cool with philsol I would love to know about it.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].