IAP GITLAB

Initial refractive index interface and constant refractive index model.

Excuse the MR spam but I'm trying to tick off all the boxes needed for me to start testing my radio emission model #276 (closed) . I'd appreciate any and all feedback on the architecture or implementation.

This MR implements:

  • A refractive index interface, IRefractiveIndexModel that provides a GetRefractiveIndex(Point const&) -> quantity<dimensionless_d>. I had this return a quantity<> instance to be consistent with all of the other environment interfaces that are unit-full.
  • Since phys/units does not provide any literals for quantity<dimensionless_d> and it is not implicitly constructible from a raw numerical type, the only constructor that I'm aware of is (quantity<corsika::units::si::dimensionless_d> myvalue(phys::units::detail::magnitude_tag, 1.000327) (please let me know if you know a better way). To make this less verbose, I defined a new literal for dimensionsless values of __ (i.e. 3__ is a quantity<dimenionless_d> value). I can change this to dimenionless or something more explicit if people prefer (i.e. 3_dimensionless) but that seems excessivey long. Let me know if you have a better suggestion/idea!
  • I also implemented a simple instance, UniformRefractiveIndex, that provides a constant refractive index everywhere in the environment. This will be useful for a test case for air showers and is physically useful for in-ice showers.
  • Several unit tests for the UniformRefractiveIndex are provided in testEnvironment.cc.

An exponential refractive index model will be provided in a future MR.

Edited by Remy Prechelt

Merge request reports

Loading