Skip to content

Correct attenuation length model behavior at large depths #224

@marcomuzio

Description

@marcomuzio

The attenuation length models implemented in AraSim give unphysical behavior at large depths. The following changes should be implemented to produce more accurate behavior and an improved design going forward:

  • For each of the three attenuation functions (IceModel::EffectiveAttenuationLength, IceModel::GetARAIceAttenuLength, and IceModel::GetFreqDepIceAttenuLength) two if statements should be added:
    • if the depth is < 2.5 km (depth where Dave Besson says the model becomes unreliable/unphysical), an attenuation length of 0 should be returned
    • if the depth is < bedrock, an attenuation length of 0 should be returned (this case is added as a fail-safe in case the model behavior between the bedrock and 2.5 km depth is corrected down the line)
    • NB this behavior may need to be handled with some care to avoid introducing nan's when the attenuation factor is calculated ~1/attenuation length in the Report class
  • The ice temperature only enters through the attenuation length, but for safety/consistency, some safeguards should also be added to IceModel::temperature.
    • The function should do something like return min(temp, 0), to ensure it does not return positive temperatures at large depths.
    • One could consider causing the function to crash if a depth below/above the ice was passed (but this depends a bit on how the attenuation length function is corrected)

Metadata

Metadata

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions