Jashcraf / poke

Poke (pronounced poh-keh) is a Polarization Ray Tracing and Gaussian Beamlet module for Python
BSD 3-Clause "New" or "Revised" License
32 stars 6 forks source link

2.3 Rethink structure of code for ease of use #22

Closed Jashcraf closed 8 months ago

Jashcraf commented 1 year ago

Recently was introduced to the @classmethod way of constructing the raybundle. Think it might be nice to do so I have alternate ways of constructing the raybundle based on whether polarization ray tracing or gaussian beamlets is being done. The ideal product is suitable for both - but I don't want to force the user to construct the differential ray bundles if they don't have to.

Easy changes (could do right now)

Medium changes (take a week to make sure I do it right)

Hard changes (take >1 week to fully implement well)

Jashcraf commented 1 year ago

On Restructuring Poke

The development philosophy I find intuitive is to have one python file for each type of utility. These are simply lists of functions that can be called to perform a task. Then there's a file where we construct the Rayfront class

List of Files

At the moment this is a big change from where we are now, but I didn't expect Gaussian Beamlets to be so compatible with Poke so originally it was just for polarization ray tracing.

Jashcraf commented 1 year ago

More thoughts for a polarization script. Including some method of handling mueller matrices and polarimetry would be nice, but making the code readable is key. Maybe we split polarization to hold the matrices and polarimetry to hold the data reduction.

Jashcraf commented 1 year ago

Is poke just going to be an amalgamation of all the code I wrote in grad school rather than having a cohesive theme? Yes, probably it will.

Jashcraf commented 1 year ago

poke_core

Rayfront class

Methods

Jashcraf commented 1 year ago

Idea for passing surface data as dictionaries

Image

This seems sufficient to turn into a branch, gonna try that now

trentjbrendel commented 1 year ago

Is poke just going to be an amalgamation of all the code I wrote in grad school rather than having a cohesive theme? Yes, probably it will.

This is the way.

Jashcraf commented 1 year ago

Poke has been restructured in the restructure branch. Currently the following modules exist:

To do

Jashcraf commented 8 months ago

I think accel_math got folded into poke_math, and polarimetry doesn't really fit here. I don't particularly care for utils scripts, because they just feel like a pile of uncategorized things. For now, I'm closing this up