Skip to content

Project Support Page

capitanevs edited this page Aug 28, 2019 · 8 revisions

Usage:

Before inserting new issues or Project ideas, let's freely drop our ideas here. Let's use this to

  • To lay out problems and doubt
  • To expand concepts
  • To write memos

Topic: Parallelization

Benchmarking

We should benchmark a little bit on different systems. On my computer the code runs on all cores, both in virtual machine (Windows) and natively (Linux).

Computational complexity

n, t(n) graph, where n is the number of points (sampling) and t(n) is the computation time.

Usage of numba

It seems that numba is the best way to write efficient code, but for best result the code has to be rewritten a little bit. I already improved on the Huygens_1d_Kernel quite a lot.

EDIT: Very nice feature is that numba also supports interaction with CUDA, which can be implemented in the future.


Topic: Ensure that scripts are working

Be sure that the EXAMPLES scripts keep working

SIMPLE! just create an automated script traversing the Examples folder

Be Sure that the Scientific scripts keep working.

More complicated. One keeps the eye on the research, codes many different version of the same files, and only very seldom produces a "FROZEN" definitive version. There is not the perfect solution. Either one copy-paste the script in a "watch folder" (that will never work), or one will mark the script with an extra tag "VERSIONWATCH" (which may work for a few times, but it is so clumsy that it will stop working soon). As a conclusion => don't know.... don't change too much the code 🙂


Topic: Transmission Efficiency

Add the capability of handle the reflectivity/transmission of a mirror for a given coating. To discuss how to do that.

Mirror only? I would say: no, more general.

Idea: class OpticsEfficiency:

EDIT: Calculating reflectivity of a multilayer (can be single layer as well) is not too difficult, one for loop...


Topic: mirror orientation

do we need a way to tell that a mirror (o.e.) is horizontal or vertical? e.g. if in a beamline there may be V or H mirror. The propagation should be done among similar planes (H & H, or V & V). One possibility is to draw two distinct beamlines

Source---V1----V2---V3 Source---H1---H2

This is how we can do now. Or to draw a unique beamline with mixed elements.

Source---V1---H1----V2----H2----V3 AND to instruct the code (probably something in the propagation section) that he has to do First the V, then the H. Consider the options to add extra flag for mixed states.

It is not so "minor". When designing a beamline it is natural to design "as is", and not to split the H and V part. Splitting would require re-computing the all the distances (the "previous" element is an amologous one or not?), which would be a great bothering