dentonFluxModel#

Executive Summary#

This module provides the GEO electron and ion flux based on 82 satellite-years as discussed in this paper by M. H. Denton and on this website. A Fortran module can be downloaded from this website which computes the electron and ion flux for a given \(K_p\) index, local time and particle energy, and also includes the relevant flux data. The Basilisk module only uses the mean flux data.

Message Connection Descriptions#

The following table lists all the module input and output messages. The module msg connection is set by the user from python. The msg type contains a link to the message structure definition, while the description provides information on what this message is used for.

../../../../../_images/moduleDentonFluxModel.svg

Figure 1: dentonFluxModel() Module I/O Illustration#

Module I/O Messages#

Msg Variable Name

Msg Type

Description

scStateInMsg

SCStatesMsgPayload

spacecraft state input message

earthStateInMsg

SpicePlanetStateMsgPayload

Earth planet state input message

sunStateInMsg

SpicePlanetStateMsgPayload

Sun state input message

fluxOutMsg

PlasmaFluxMsgPayload

output ion and electron fluxes

Module Assumptions and Limitations#

This module assumes that the position vectors of the spacecraft, Sun and Earth are expressed in an Earth equatorial frame with the z-component perpendicular to the equatorial plane. The local time of the spacecraft is determined by projecting the spacecraft and Sun position vectors onto the equatorial plane and computing the angle between the resulting projected vectors. When both projected vectors point in the same direction, then the local time (LT) is 12 hours.

The particle energies are limited between 100 eV and 40 keV. The lower limit of 100 eV is recommended by M. H. Denton, because the fluxes of smaller energies are unreliable due to contamination with secondary electrons and photoelectrons. The flux data provided by Denton does not provide information above 40 keV.

Since the flux data is only valid for the GEO regime, a BSK warning message is generated if the spacecraft location is more than 4,000 km away from Geostationary Orbit (equatorial orbit with radius of 42,000 km).

User Guide#

The Denton model averaged GEO space plasma properties module is created using:

1fluxModule = dentonFluxModel.DentonFluxModel()
2fluxModule.modelTag = "dentonFluxModule"
3fluxModule.dataPath = bskPath + '/supportData/DentonGEO/'
4fluxModule.kpIndex = "2+"
5fluxModule.numOutputEnergies = 30
6scSim.AddModelToTask(dynTaskName, fluxModule)

The \(K_p\) index (kpIndex) and number of output energies (numOutputEnergies) must be added to FluxModule as well, while the local time is computed within the module using the position vectors of the spacecraft, Sun and Earth.

Note that the Kp index (global geomagnetic activity index) ranges from 0 to 9, with sub-indices ‘-‘,’o’ and ‘+’ and therefore a total number of 28 indices (\(K_p\) index 0- and 9+ do not exist). In this module, the Kp index is specified with a string of length 2, for example ‘5-‘.

Class DentonFluxModel#

class DentonFluxModel : public SysModel#

This module provides the 10-year averaged GEO elecon and ion flux as discussed in the paper by Denton.

Public Functions

DentonFluxModel()#

This is the constructor for the module class. It sets default variable values and initializes the various parts of the model

~DentonFluxModel()#

Module Destructor

void reset(uint64_t currentSimNanos) override#

This method is used to reset the module and checks that required input messages are connect.

Parameters:

currentSimNanos – current simulation time in nano-seconds

Returns:

void

void updateState(uint64_t currentSimNanos) override#

This is the main method that gets called every time the module is updated. Provide an appropriate description.

Parameters:

currentSimNanos – current simulation time in nano-seconds

Returns:

void

Public Members

int numOutputEnergies = -1#

number of energy bins used in the output message

std::string kpIndex = ""#

Kp index.

std::string dataPath = ""#

— String with the path to the Denton GEO data

std::string eDataFileName = "model_e_array_all.txt"#

file name of the electron data file

std::string iDataFileName = "model_i_array_all.txt"#

file name of the ion data file

ReadFunctor<SCStatesMsgPayload> scStateInMsg#

spacecraft state input message

ReadFunctor<SpicePlanetStateMsgPayload> earthStateInMsg#

Earth planet state input message.

ReadFunctor<SpicePlanetStateMsgPayload> sunStateInMsg#

sun state input message

Message<PlasmaFluxMsgPayload> fluxOutMsg#

output message with ion and electron fluxes

BSKLogger bskLogger#

&#8212; BSK Logging