Skip to content

Feature/nrlmsis#255

Merged
sylvain-guillet merged 23 commits intomainfrom
feature/nrlmsis
Dec 24, 2025
Merged

Feature/nrlmsis#255
sylvain-guillet merged 23 commits intomainfrom
feature/nrlmsis

Conversation

@sylvain-guillet
Copy link
Contributor

This pull request introduces NRLMSISE-00 atmospheric model
Closes #251

Sylvain Guillet and others added 23 commits December 10, 2025 15:37
This commit introduces a new test file for the NRLMSISE-00 model, implementing the test_gtd7 function. The test evaluates the model's output for various atmospheric conditions and prints the results for verification. The input parameters include day of year, time, altitude, geographic latitude and longitude, and solar activity indices. The output includes temperature and density profiles for different atmospheric constituents.
…in expert, software architect, and test writer
Introduced internal static Data class containing all published NRLMSISE-00 empirical atmosphere model coefficients as immutable static arrays. Includes temperature, density, and auxiliary parameter tables with detailed documentation. No logic added; this file serves as a reference data container for model computations and validation.
…g NrlmsiseInput, NrlmsiseOutput, ApArray, and NrlmsiseFlags
…Mars; refactor existing models to use new interfaces
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces the NRLMSISE-00 atmospheric model, a comprehensive empirical model for Earth's atmosphere from ground to thermospheric heights. The changes include a significant architectural refactoring of the atmospheric modeling system.

Key changes:

  • New NRLMSISE-00 atmospheric model implementation with full support for time-varying, position-dependent atmospheric conditions
  • Refactored atmospheric model architecture using interface-based design (IAtmosphericModel, IAtmosphericContext)
  • Backward-compatible migration path with deprecated legacy classes
  • Comprehensive test coverage including unit tests and integration tests

Reviewed changes

Copilot reviewed 40 out of 40 changed files in this pull request and generated 72 comments.

Show a summary per file
File Description
NRLMSISE00.cs Core NRLMSISE-00 model implementation (~1424 lines) with atmospheric calculations
Nrlmsise00Model.cs Framework adapter implementing IAtmosphericModel interface
Data.cs Static coefficient tables for NRLMSISE-00 model (~822 lines of data)
SpaceWeather.cs, ApArray.cs Supporting data structures for space weather indices
NrlmsiseInput.cs, NrlmsiseOutput.cs, NrlmsiseFlags.cs Model I/O data structures
IAtmosphericModel.cs, IAtmosphericContext.cs New interfaces for atmospheric modeling architecture
AtmosphericContext.cs Concrete implementation of atmospheric context
EarthStandardAtmosphere.cs, MarsStandardAtmosphere.cs Refactored simple atmospheric models
AtmosphericModel.cs, EarthAtmosphericModel.cs, MarsAtmosphericModel.cs Deprecated legacy classes for backward compatibility
CelestialBody.cs Updated to use new IAtmosphericModel interface with context-based API
AtmosphericDrag.cs Updated to create atmospheric context with position and time
Time.cs Added helper method for creating time from year, day of year, and seconds
Test files Comprehensive unit and integration tests for NRLMSISE-00
CLI/Performance files Updated namespace references from Physics to Atmosphere
Version files Bumped to 8.0.0 (major version) reflecting breaking API changes

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +216 to +222
/// <summary>
/// Create time from year, day of year, and seconds of day
/// </summary>
/// <param name="year"></param>
/// <param name="doy"></param>
/// <param name="sec"></param>
/// <returns></returns>
Copy link

Copilot AI Dec 24, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The XML documentation is incomplete. The param tags for 'year', 'doy', and 'sec' are present but lack descriptions. Consider adding descriptions to explain the valid ranges and meanings of these parameters (e.g., "year - Calendar year (0 defaults to 2000)", "doy - Day of year (1-366)", "sec - Seconds within the day (0-86400)").

Copilot uses AI. Check for mistakes.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot open a new pull request to apply changes based on this feedback

Copy link

Copilot AI commented Dec 24, 2025

@sylvain-guillet I've opened a new pull request, #256, to work on those changes. Once the pull request is ready, I'll request review from you.

@sylvain-guillet sylvain-guillet moved this to In Progress in IO.Astrodynamics Dec 24, 2025
@sylvain-guillet sylvain-guillet merged commit 418b889 into main Dec 24, 2025
11 of 12 checks passed
@github-project-automation github-project-automation bot moved this from In Progress to Done in IO.Astrodynamics Dec 24, 2025
@sylvain-guillet sylvain-guillet deleted the feature/nrlmsis branch December 24, 2025 13:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Use NRLMSISE atmospheric model

2 participants