Program Listing for File constants_gcpm.h¶

↰ Return to documentation for file (environment/plasma/gcpm/constants_gcpm.h)

#pragma once

#include <array>
#include <cmath>

#include "lupnt/environment/plasma/core/constants.h"

namespace pecsim {

  // Define the poleward auroral edge array (PN)
  const double origPN[720] = {
      73.6, 73.8, 74.0, 74.2, 74.6, 74.8, 75.0, 75.1, 75.3, 75.4, 75.5, 75.6, 75.5, 75.2, 75.1,
      74.9, 74.8, 74.7, 74.6, 74.5, 74.5, 74.5, 74.5, 74.5, 74.5, 74.9, 75.3, 76.1, 76.8, 77.3,
      78.0, 78.5, 78.9, 79.2, 79.5, 79.7, 79.9, 80.0, 80.1, 80.2, 80.2, 80.2, 80.2, 80.1, 80.1,
      80.0, 79.8, 79.7, 79.4, 79.3, 79.1, 78.9, 78.6, 78.3, 78.1, 77.8, 77.3, 76.9, 76.4, 76.0,
      75.5, 75.1, 74.9, 74.6, 74.3, 74.1, 73.9, 73.8, 73.8, 73.7, 73.6, 73.6,  // 1
      72.9, 73.0, 73.2, 73.4, 73.7, 73.9, 74.1, 74.4, 74.6, 74.8, 75.0, 75.1, 75.2, 75.3, 75.4,
      75.4, 75.4, 75.3, 75.2, 75.1, 75.0, 74.9, 74.8, 74.7, 74.6, 74.8, 75.0, 75.5, 76.0, 76.5,
      77.0, 77.5, 78.0, 78.3, 78.7, 78.9, 79.0, 79.1, 79.2, 79.2, 79.2, 79.1, 79.0, 78.9, 78.8,
      78.7, 78.5, 78.2, 78.0, 77.8, 77.6, 77.4, 77.2, 77.0, 76.8, 76.4, 76.1, 76.0, 75.8, 75.6,
      75.3, 75.1, 74.9, 74.7, 74.4, 74.2, 74.0, 73.8, 73.4, 73.3, 73.1, 73.0,  // 2
      72.3, 72.2, 72.3, 72.6, 72.8, 73.0, 73.2, 73.6, 73.9, 74.1, 74.3, 74.8, 75.0, 75.2, 75.3,
      75.4, 75.5, 75.4, 75.3, 75.1, 75.0, 74.9, 74.8, 74.8, 74.9, 75.1, 75.6, 76.0, 76.4, 76.8,
      77.2, 77.4, 77.8, 77.9, 78.0, 78.0, 78.0, 77.9, 77.8, 77.7, 77.6, 77.5, 77.4, 77.2, 77.0,
      76.9, 76.8, 76.7, 76.5, 76.4, 76.3, 76.2, 76.1, 76.1, 76.0, 75.9, 75.8, 75.7, 75.6, 75.4,
      75.2, 75.0, 74.8, 74.6, 74.2, 74.0, 73.7, 73.3, 73.0, 72.9, 72.7, 72.4,  // 3
      72.8, 72.9, 73.0, 73.2, 73.4, 73.6, 73.8, 74.0, 74.2, 74.4, 74.6, 74.8, 74.9, 74.9, 75.0,
      75.0, 75.0, 75.0, 75.0, 75.0, 75.0, 75.0, 75.0, 75.1, 75.1, 75.2, 75.4, 75.6, 75.8, 76.0,
      76.1, 76.2, 76.4, 76.6, 76.7, 76.8, 76.9, 77.0, 77.0, 77.0, 76.9, 76.8, 76.6, 76.4, 76.2,
      76.1, 76.0, 75.9, 75.8, 75.7, 75.6, 75.5, 75.5, 75.5, 75.5, 75.5, 75.4, 75.4, 75.3, 75.3,
      75.2, 75.1, 75.0, 74.9, 74.6, 74.3, 74.0, 73.9, 73.7, 73.4, 73.2, 73.0,  // 4
      73.6, 73.8, 74.0, 74.1, 74.2, 74.4, 74.6, 74.7, 74.8, 74.9, 75.0, 75.1, 75.2, 75.2, 75.2,
      75.1, 75.0, 74.9, 74.8, 74.8, 74.7, 74.7, 74.7, 74.8, 74.8, 74.9, 75.0, 75.1, 75.2, 75.3,
      75.5, 75.6, 75.7, 75.8, 75.9, 75.9, 76.0, 76.0, 76.0, 76.0, 76.0, 75.9, 75.8, 75.7, 75.6,
      75.5, 75.3, 75.2, 75.1, 75.0, 75.0, 74.9, 74.9, 74.9, 74.9, 74.9, 75.0, 75.0, 75.0, 75.0,
      75.0, 75.0, 74.9, 74.8, 74.7, 74.6, 74.3, 74.1, 74.0, 73.9, 73.8, 73.7,  // 5
      74.2, 74.3, 74.4, 74.6, 74.7, 74.8, 74.9, 75.0, 75.1, 75.2, 75.3, 75.4, 75.5, 75.4, 75.2,
      75.1, 75.0, 74.8, 74.6, 74.2, 74.0, 73.9, 73.8, 73.7, 73.6, 73.7, 73.8, 73.9, 74.0, 74.2,
      74.5, 74.9, 75.0, 75.1, 75.2, 75.2, 75.2, 75.2, 75.1, 75.1, 75.0, 75.0, 75.0, 74.9, 74.8,
      74.8, 74.7, 74.7, 74.7, 74.7, 74.7, 74.7, 74.7, 74.7, 74.7, 74.7, 74.7, 74.6, 74.6, 74.6,
      74.5, 74.5, 74.5, 74.4, 74.4, 74.3, 74.3, 74.2, 74.2, 74.2, 74.2, 74.2,  // 6
      75.0, 75.1, 75.2, 75.3, 75.4, 75.5, 75.6, 75.6, 75.7, 75.7, 75.8, 75.8, 75.8, 75.7, 75.5,
      75.3, 75.0, 74.8, 74.3, 74.0, 73.5, 73.0, 72.7, 72.5, 72.5, 72.6, 72.8, 73.0, 73.2, 73.4,
      73.6, 73.8, 74.0, 74.1, 74.2, 74.2, 74.2, 74.2, 74.2, 74.2, 74.2, 74.2, 74.2, 74.2, 74.2,
      74.1, 74.1, 74.1, 74.1, 74.0, 74.0, 74.0, 74.0, 74.0, 74.0, 74.0, 74.0, 74.0, 74.0, 74.0,
      74.0, 74.0, 74.1, 74.2, 74.3, 74.5, 74.6, 74.7, 74.8, 74.9, 75.0, 75.0,  // 7
      75.5, 75.5, 75.5, 75.5, 75.5, 75.5, 75.5, 75.4, 75.4, 75.3, 75.2, 75.1, 75.0, 75.0, 74.9,
      74.8, 74.7, 74.4, 74.0, 73.5, 73.0, 72.5, 72.0, 71.7, 71.5, 71.6, 71.8, 71.9, 72.0, 72.2,
      72.5, 72.7, 72.8, 73.0, 73.1, 73.2, 73.3, 73.4, 73.6, 73.6, 73.7, 73.7, 73.7, 73.7, 73.7,
      73.8, 73.8, 73.8, 73.8, 73.8, 73.8, 73.8, 73.7, 73.7, 73.6, 73.6, 73.5, 73.5, 73.5, 73.6,
      73.8, 73.9, 74.0, 74.1, 74.3, 74.6, 74.8, 74.9, 75.0, 75.1, 75.3, 75.4,  // 8
      76.0, 75.9, 75.8, 75.7, 75.6, 75.5, 75.4, 75.2, 75.0, 74.9, 74.8, 74.5, 74.3, 74.0, 73.6,
      73.1, 72.9, 72.4, 72.0, 71.6, 71.1, 70.8, 70.4, 70.0, 70.0, 69.9, 69.9, 70.0, 70.2, 70.4,
      70.8, 71.0, 71.3, 71.8, 72.0, 72.3, 72.7, 73.0, 73.1, 73.2, 73.4, 73.7, 73.8, 73.8, 73.7,
      73.5, 73.2, 73.0, 72.8, 72.6, 72.4, 72.2, 72.1, 72.1, 72.1, 72.2, 72.3, 72.5, 72.8, 72.9,
      73.1, 73.6, 74.0, 74.3, 74.7, 75.0, 75.2, 75.4, 75.8, 75.9, 76.0, 76.0,  // 9
      76.0, 75.9, 75.8, 75.7, 75.6, 75.5, 75.4, 75.2, 75.0, 74.9, 74.8, 74.5, 74.3, 74.0, 73.6,
      73.1, 72.9, 72.4, 72.0, 71.6, 71.1, 70.8, 70.4, 70.0, 70.0, 69.9, 69.9, 70.0, 70.2, 70.4,
      70.8, 71.0, 71.3, 71.8, 72.0, 72.3, 72.7, 73.0, 73.1, 73.2, 73.4, 73.7, 73.8, 73.8, 73.7,
      73.5, 73.2, 73.0, 72.8, 72.6, 72.4, 72.2, 72.1, 72.1, 72.1, 72.2, 72.3, 72.5, 72.8, 72.9,
      73.1, 73.6, 74.0, 74.3, 74.7, 75.0, 75.2, 75.4, 75.8, 75.9, 76.0, 76.0  // 10
  };

  // Define the equatorial auroral edge array (PS)
  const double origPS[720] = {
      65.5, 65.6, 65.8, 66.0, 66.2, 66.6, 66.8, 66.9, 67.0, 67.2, 67.4, 67.7, 68.0, 68.6, 69.0,
      69.6, 70.0, 70.2, 70.6, 70.9, 71.1, 71.3, 71.8, 72.0, 72.5, 72.8, 73.1, 73.6, 74.0, 74.3,
      74.8, 75.0, 75.4, 75.7, 76.0, 76.1, 76.2, 76.4, 76.5, 76.6, 76.7, 76.8, 76.8, 76.8, 76.7,
      76.6, 76.4, 76.2, 76.0, 75.8, 75.4, 75.0, 74.7, 74.2, 73.7, 73.2, 72.8, 72.3, 71.9, 71.4,
      71.0, 70.6, 70.0, 69.6, 69.0, 68.4, 67.8, 67.2, 66.8, 66.2, 65.9, 65.7,  // 1
      64.5, 64.6, 64.8, 65.0, 65.2, 65.5, 65.9, 66.0, 66.2, 66.6, 67.0, 67.2, 67.6, 68.0, 68.5,
      69.0, 69.4, 69.9, 70.1, 70.5, 70.8, 70.9, 71.1, 71.3, 71.7, 72.0, 72.4, 72.9, 73.2, 73.7,
      74.0, 74.3, 74.6, 74.8, 75.0, 75.1, 75.2, 75.2, 75.2, 75.1, 75.1, 75.0, 75.0, 75.0, 74.9,
      74.8, 74.8, 74.7, 74.6, 74.4, 74.2, 73.9, 73.6, 73.2, 72.7, 72.1, 71.6, 70.9, 70.3, 69.6,
      69.0, 68.6, 68.2, 67.8, 67.3, 67.0, 66.4, 66.0, 65.4, 65.0, 64.8, 64.7,  // 2
      63.5, 63.6, 63.8, 64.0, 64.2, 64.5, 64.7, 64.8, 64.8, 64.8, 64.9, 65.0, 65.0, 65.0, 65.1,
      65.3, 65.8, 66.2, 66.8, 67.4, 68.0, 68.6, 69.1, 69.7, 70.1, 70.8, 71.2, 71.8, 72.2, 72.8,
      73.1, 73.6, 73.8, 74.0, 74.1, 74.2, 74.2, 74.2, 74.2, 74.2, 74.2, 74.1, 74.0, 74.0, 73.9,
      73.8, 73.6, 73.3, 73.0, 72.8, 72.3, 72.0, 71.5, 71.0, 70.4, 69.9, 69.1, 68.5, 68.0, 67.6,
      67.1, 66.8, 66.3, 66.0, 65.8, 65.3, 65.0, 64.4, 64.0, 63.9, 63.7, 63.6,  // 3
      62.5, 62.5, 62.5, 62.6, 62.7, 62.8, 62.9, 62.9, 63.0, 63.1, 63.3, 63.6, 63.8, 63.9, 64.2,
      64.8, 65.4, 66.1, 66.9, 67.6, 68.2, 68.9, 69.4, 70.0, 70.3, 70.8, 71.1, 71.5, 71.9, 72.2,
      72.4, 72.7, 72.9, 73.0, 73.1, 73.1, 73.0, 72.9, 72.8, 72.7, 72.6, 72.4, 72.1, 72.0, 71.9,
      71.8, 71.7, 71.5, 71.4, 71.2, 71.0, 70.8, 70.3, 70.0, 69.5, 69.0, 68.3, 67.6, 66.9, 66.0,
      65.2, 64.8, 64.3, 64.0, 63.8, 63.7, 63.6, 63.5, 63.3, 63.1, 63.0, 62.8,  // 4
      61.4, 61.4, 61.3, 61.2, 61.2, 61.1, 61.2, 61.3, 61.4, 61.6, 61.8, 62.0, 62.3, 63.0, 63.7,
      64.3, 65.1, 66.0, 66.8, 67.3, 68.1, 68.8, 69.1, 69.6, 69.8, 70.0, 70.2, 70.5, 70.8, 71.0,
      71.3, 71.7, 71.9, 72.0, 72.0, 72.0, 72.0, 72.0, 72.0, 72.0, 72.0, 72.0, 72.0, 71.8, 71.6,
      71.4, 71.1, 70.8, 70.3, 70.0, 69.5, 69.0, 68.4, 67.9, 67.3, 66.7, 66.0, 65.8, 65.2, 64.9,
      64.5, 64.1, 64.0, 63.8, 63.5, 63.2, 63.0, 62.8, 62.5, 62.0, 61.9, 61.6,  // 5
      60.5, 60.5, 60.4, 60.3, 60.2, 60.1, 60.1, 60.2, 60.3, 60.4, 60.8, 61.0, 61.5, 62.0, 62.9,
      63.6, 64.4, 65.1, 65.9, 66.4, 67.0, 67.5, 68.0, 68.2, 68.5, 68.8, 69.0, 69.3, 69.7, 69.9,
      70.0, 70.3, 70.6, 70.8, 70.9, 70.9, 71.0, 71.0, 71.0, 70.9, 70.7, 70.5, 70.2, 70.0, 69.6,
      69.2, 68.9, 68.6, 68.4, 68.1, 67.9, 67.7, 67.4, 67.1, 66.8, 66.4, 66.0, 65.5, 65.0, 64.4,
      63.6, 63.0, 62.5, 62.0, 61.7, 61.3, 61.0, 60.9, 60.9, 60.9, 60.7, 60.6,  // 6
      59.6, 59.7, 59.6, 59.6, 59.5, 59.4, 59.4, 59.5, 59.6, 59.8, 60.0, 60.2, 60.8, 61.3, 62.0,
      62.8, 63.5, 64.2, 64.9, 65.4, 66.0, 66.4, 66.8, 67.1, 67.3, 67.5, 67.8, 68.1, 68.4, 68.8,
      69.1, 69.4, 69.7, 69.9, 70.0, 70.1, 70.0, 70.0, 70.0, 69.8, 69.5, 69.1, 68.8, 68.3, 67.9,
      67.3, 66.8, 66.3, 66.0, 65.8, 65.5, 65.3, 65.1, 65.0, 64.9, 64.7, 64.2, 64.0, 63.8, 63.5,
      63.0, 62.5, 62.1, 61.8, 61.4, 61.0, 60.7, 60.2, 59.9, 59.7, 59.6, 59.6,  // 7
      58.6, 58.8, 58.9, 58.9, 58.9, 58.9, 58.9, 58.9, 59.0, 59.2, 59.7, 59.9, 60.2, 60.7, 61.2,
      61.8, 62.2, 62.8, 63.2, 63.9, 64.5, 65.0, 65.5, 66.0, 66.4, 66.8, 67.0, 67.3, 67.8, 68.0,
      68.2, 68.3, 68.6, 68.8, 68.9, 68.9, 68.8, 68.7, 68.5, 68.3, 68.0, 67.7, 67.2, 66.8, 66.2,
      65.7, 65.1, 64.8, 64.2, 64.0, 63.8, 63.7, 63.6, 63.5, 63.5, 63.4, 63.2, 63.1, 63.0, 62.9,
      62.5, 62.2, 62.0, 61.7, 61.2, 60.9, 60.5, 60.0, 59.8, 59.3, 59.0, 58.8,  // 8
      57.9, 58.0, 58.1, 58.3, 58.6, 58.8, 59.0, 59.3, 59.6, 59.8, 59.9, 60.0, 60.0, 60.4, 61.0,
      61.6, 62.1, 62.8, 63.3, 63.8, 64.1, 64.6, 64.9, 65.0, 65.1, 65.3, 65.6, 65.8, 66.0, 66.2,
      66.4, 66.7, 66.8, 66.9, 67.0, 67.0, 67.0, 67.0, 66.8, 66.5, 66.1, 65.7, 65.2, 64.8, 64.1,
      63.7, 63.1, 62.8, 62.4, 62.4, 62.5, 62.7, 62.8, 62.9, 63.0, 63.0, 63.1, 63.0, 62.8, 62.5,
      62.0, 61.6, 61.0, 60.5, 50.0, 59.4, 59.0, 58.6, 58.3, 58.2, 58.1, 58.0,  // 9
      57.9, 58.0, 58.1, 58.3, 58.6, 58.8, 59.0, 59.3, 59.6, 59.8, 59.9, 60.0, 60.0, 60.4, 61.0,
      61.6, 62.1, 62.8, 63.3, 63.8, 64.1, 64.6, 64.9, 65.0, 65.1, 65.3, 65.6, 65.8, 66.0, 66.2,
      66.4, 66.7, 66.8, 66.9, 67.0, 67.0, 67.0, 67.0, 66.8, 66.5, 66.1, 65.7, 65.2, 64.8, 64.1,
      63.7, 63.1, 62.8, 62.4, 62.4, 62.5, 62.7, 62.8, 62.9, 63.0, 63.0, 63.1, 63.0, 62.8, 62.5,
      62.0, 61.6, 61.0, 60.5, 60.0, 59.4, 59.0, 58.6, 58.3, 58.2, 58.1, 58.0  // 10
  };

  double PN(int i, int j);
  double PS(int i, int j);

}  // namespace pecsim