ilent2 / ott

Optical Tweezers Toolbox (Version 1)
Other
51 stars 30 forks source link

TmatrixPm with 4-th order rotational symmetry #9

Closed ilent2 closed 6 years ago

ilent2 commented 6 years ago

I'm unsure what to do with the file ott/+ott/tmatrix_pm_cube.m in version 1.4

In version 1.4 I've added a TmatrixPm class with a static method for constructing simple T-matrices using the point matching method.

Should I create a subclass of TmatrixPm -> TmatrixPmCube or should I modify the simple() static method to use tmatrix_pm_cube instead? What is the purpose of tmatrix_pm_cube? Are there additional optimisations? What are Nmax_particle and Nmax_medium for?

AStilg commented 6 years ago

If you want to go "all the way" the best way to go about it is a unified approach will all the T-matrices. As each of the T-matrix codes are "tailor made". I started on a tmatrix_pm.m code which implemented all of the symmetry optimisations. That theoretical future code would replace all pm codes.

A simple version of this would be to use the mode_coupling.m code I gave to you to basically make the pm part select only the elements of the coefficient matrix used for that particular symmetry

ilent2 commented 6 years ago

I think a completely general code would be useful, but it's not something that's very high on my priority list at the moment. Any ideas for what I should do in the mean time? What are the symmetry optimisations?

AStilg commented 6 years ago

The tmatrix_pm_cube code, instead of girdding up the entire cube only takes a quadrant (1/4) and performs a least square fit to the modes which differ by m=\pm 4.

My thought is if you can avoid this for now and think about how a good implementation would look and wrap that. I can help with coding the details.

ilent2 commented 6 years ago

Plan: replace pm_cube with a N-th order discrete rotational symmetry and infinite rotational symmetry. This will be a future goal. For now we will remove tmatrix_pm_cube.m.

ilent2 commented 6 years ago

tmatrix_pm_cube.m removed: 7bd3035

ilent2 commented 6 years ago

Moving to version 2

ilent2 commented 6 years ago

T-matrix calculation for example_dynamics.m is far too slow. We should at least reimplement 4-th order rotational symmetry in this release.

ilent2 commented 6 years ago

1c885a2 -- Done :grinning: Both mirror and rotational symmetry implemented.