Skip to content

Latest commit

 

History

History
79 lines (54 loc) · 2.38 KB

densities.rst

File metadata and controls

79 lines (54 loc) · 2.38 KB

Geometry package

In MCEq, geometry is everything related to the medium in which the particle cascade develops. The very basic geometrical functions for the polar coordinate system of the Earth - no it's not flat, but just azimuth symmetric - are located in MCEq.geometry.geometry. The density parameterizations and interfaces are in MCEq.geometry.density_profiles

MCEq.geometry.density_profiles

This module includes classes and functions modeling the Earth's atmosphere. Currently, two different types models are supported:

  • Linsley-type/CORSIKA-style parameterization
  • Numerical atmosphere via external routine (NRLMSISE-00)

Both implementations have to inherit from the abstract class EarthsAtmosphere, which provides the functions for other parts of the program. In particular the function EarthsAtmosphere.get_density

Typical interaction:

$ atm_object = CorsikaAtmosphere("BK_USStd")
$ atm_object.set_theta(90)
$ print 'density at X=100', atm_object.X2rho(100.)
The class MCEqRun will only the following routines::
  • EarthsAtmosphere.set_theta,
  • EarthsAtmosphere.r_X2rho.

If you are extending this module make sure to provide these functions without breaking compatibility.

Example:

An example can be run by executing the module:

$ python MCEq/atmospheres.py

MCEq.geometry.density_profiles

MCEq.geometry.geometry

The module contains the geometry for an azimuth symmetric Earth.

MCEq.geometry.geometry

MCEq.geometry.nrlmsise00

CTypes interface to the C-version of the NRLMSISE-00 code, originally developed by Picone et al.. The C-translation is by Dominik Brodowski <https://www.brodo.de/space/nrlmsise/index.html>_.

MCEq.geometry.nrlmsise00

MCEq.geometry.corsikaatm

This set of functions are C implementations of the piecewise defined exponential profiles as used in CORSIKA. An efficient implementation is difficult in plain numpy.

MCEq.geometry.corsikaatm