Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TmatrixPm with 4-th order rotational symmetry #9

Closed
ilent2 opened this issue Apr 5, 2018 · 8 comments
Closed

TmatrixPm with 4-th order rotational symmetry #9

ilent2 opened this issue Apr 5, 2018 · 8 comments

Comments

@ilent2
Copy link
Owner

ilent2 commented Apr 5, 2018

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?

@ilent2 ilent2 added the help wanted Extra attention is needed label Apr 5, 2018
@ilent2 ilent2 added this to To do in Version 1.5.0 via automation Apr 5, 2018
@AStilg
Copy link

AStilg commented Apr 5, 2018

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
Copy link
Owner Author

ilent2 commented Apr 5, 2018

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
Copy link

AStilg commented Apr 5, 2018

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
Copy link
Owner Author

ilent2 commented Apr 6, 2018

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
Copy link
Owner Author

ilent2 commented Apr 6, 2018

tmatrix_pm_cube.m removed: 7bd3035

@ilent2 ilent2 added enhancement New feature or request and removed help wanted Extra attention is needed labels Apr 6, 2018
@ilent2
Copy link
Owner Author

ilent2 commented Apr 16, 2018

Moving to version 2

@ilent2 ilent2 closed this as completed Apr 16, 2018
Version 1.5.0 automation moved this from To do to Done Apr 16, 2018
@ilent2
Copy link
Owner Author

ilent2 commented Apr 20, 2018

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 ilent2 reopened this Apr 20, 2018
Version 1.5.0 automation moved this from Done to In progress Apr 20, 2018
@ilent2 ilent2 moved this from In progress to To do in Version 1.5.0 Apr 20, 2018
@ilent2 ilent2 changed the title Unsure what to do with tmatrix_pm_cube.m TmatrixPm with 4-th order rotational symmetry Apr 20, 2018
@ilent2 ilent2 removed the enhancement New feature or request label Apr 20, 2018
@ilent2
Copy link
Owner Author

ilent2 commented Apr 25, 2018

1c885a2 -- Done 😀 Both mirror and rotational symmetry implemented.

@ilent2 ilent2 closed this as completed Apr 25, 2018
Version 1.5.0 automation moved this from To do to Done Apr 25, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Version 1.5.0
  
Done
Development

No branches or pull requests

2 participants