fmmax icon indicating copy to clipboard operation
fmmax copied to clipboard

Adding propagation conventions

Open smartalecH opened this issue 2 years ago • 2 comments

We discuss a bit what propagation means in the context of scattering parameters, but it might be good to describe what that means in other contexts.

For example, when building a structure, one typically specifies a list of permittivities and a corresponding list of layer thicknesses. With many of the examples in the codebase (if not all), this list is interpreted as a stack assembled from top to bottom. In which case, all quantities (e.g. sources) that describe forward propagation, actually imply downward propagation, and all quantities that describe backward propagation, actually imply upward propagation. Furthermore, the start of layer, in this case, is the top of the layer (and the end is the bottom)

Of course, we can rearrange how we order things, and the forward/backward convention flips (which is why it's good that the codebase arguments are labeled using fwd and bwd, to maximize generalizability). But it would be nice to mention that this is indeed the case somewhere upfront.

smartalecH avatar Sep 25 '23 21:09 smartalecH

Yes, it would be good to have more documentation here. I do think everything is consistent and logical, but we can revisit this if we think this is not the case.

it may be sufficient to just say that the first layer begins at z=0, and layers are added in the +z direction. And, in the plane of the computer screen, the +z direction is downwards. This works nicely if we imagine a list of layer permittivities,

layer_permittiities = [
    layer_0_permittivity,
    layer_1_permittivity,
    layer_2_permittivity,
    layer_3_permittivity,
    layer_4_permittivity,
]

since the physical location of the layer in the stack matches the location and index in the list.

We refer to forward-going and backward-going fields, and these are just fields propagating in the +z and -z direction.

Finally, we refer to fields at the start and end of layers, and these are the fields inside the layer at the smallest and largest z values, respectively.

mfschubert avatar Sep 25 '23 22:09 mfschubert

(I intentionally avoided the use of top/bottom in variable names because of the conflict this creates)

mfschubert avatar Sep 25 '23 22:09 mfschubert