WarpTwin
Documentation for WarpTwin models and classes.
Loading...
Searching...
No Matches
MSISAtmosphereModel.h
Go to the documentation of this file.
1/******************************************************************************
2* Copyright (c) ATTX INC 2025. All Rights Reserved.
3*
4* This software and associated documentation (the "Software") are the
5* proprietary and confidential information of ATTX INC. The Software is
6* furnished under a license agreement between ATTX and the user organization
7* and may be used or copied only in accordance with the terms of the agreement.
8* Refer to 'license/attx_license.adoc' for standard license terms.
9*
10* EXPORT CONTROL NOTICE: THIS SOFTWARE MAY INCLUDE CONTENT CONTROLLED UNDER THE
11* INTERNATIONAL TRAFFIC IN ARMS REGULATIONS (ITAR) OR THE EXPORT ADMINISTRATION
12* REGULATIONS (EAR99). No part of the Software may be used, reproduced, or
13* transmitted in any form or by any means, for any purpose, without the express
14* written permission of ATTX INC.
15******************************************************************************/
16/*
17MSIS Atmosphere Model header file
18
19Author: Alex Reynolds
20*/
21/*
22Metadata for MS GUI:
23imdata = {"exclude" : True}
24*/
25
26#ifndef MODELS_ENVIRONMENT_MSIS_ATMOSPHERE_MODEL
27#define MODELS_ENVIRONMENT_MSIS_ATMOSPHERE_MODEL
28
29#include "simulation/Model.h"
30#include "msis/nrlmsise-00.h"
31
32namespace warptwin {
33
45 MODEL(MSISAtmosphereModel)
46 public:
47 // Model params
48 // NAME TYPE DEFAULT VALUE
51 SIGNAL(solar_flux_81d_avg, double, 150.0)
53 SIGNAL(solar_flux_day, double, 150.0)
55 SIGNAL(daily_ap, double, 10.0)
58 SIGNAL(R_idealgas_kJ_kg_K, double, 286.0)
60
61 // Model inputs
62 // NAME TYPE DEFAULT VALUE
65 SIGNAL(lat_rad, double, 0.0)
67 SIGNAL(lon_rad, double, 0.0)
69 SIGNAL(alt_m, double, 0.0)
71 SIGNAL(day, int, 1)
73 SIGNAL(utsec, double, 0.0)
75
76 // Model outputs
77 // NAME TYPE DEFAULT VALUE
80 SIGNAL(density_kg_m3, double, 0.0)
82 SIGNAL(temperature_K, double, 0.0)
86 SIGNAL(pressure_ideal_N_m2, double, 0.0)
88
91 void delayCalcSteps(unsigned int num_steps) {_start_run = num_steps;}
92 protected:
93 int16 start() override;
94 int16 execute() override;
95
98 int _msisCheckInputs();
99
100 // Flag, input, output MSIS parameters specified per nrlmsise-00.h.
101 // Used to interact with the actual MSIS model.
105
106 unsigned int _step_counter = 0;
107 unsigned int _start_run = 0;
108 };
109}
110
111#endif
#define SIGNAL(NAME, TYPE, INITIAL_VALUE)
Definition appmacros.h:27
#define START_PARAMS
Definition appmacros.h:42
#define END_OUTPUTS
Definition appmacros.h:33
#define END_PARAMS
Definition appmacros.h:47
#define START_OUTPUTS
Definition appmacros.h:28
#define END_INPUTS
Definition appmacros.h:40
#define START_INPUTS
Definition appmacros.h:35
Class to propagate CR3BP dynamics in characteristic units.
Definition statistics.hpp:22
int16 start() override
Class to execute logging.
SIGNAL(_mu, double, warpos::earth_wgs84.mu)
nrlmsise_input _input
Definition MSISAtmosphereModel.h:103
nrlmsise_flags _flags
Definition MSISAtmosphereModel.h:102
unsigned int _start_run
Definition MSISAtmosphereModel.h:107
unsigned int _step_counter
Definition MSISAtmosphereModel.h:106
@ MODEL
Simplified dynamics model representing motion in the circular restricted 3 body problem.
Definition ImNode.h:31
int _msisCheckInputs()
Function to check range of input values.
Definition MSISAtmosphereModel.cpp:97
int16 execute() override
Function to check monitor input conditions and set trigger flag accordingly. Should be implemented in...
nrlmsise_output _output
Definition MSISAtmosphereModel.h:104
Definition nrlmsise-00.h:26
Definition nrlmsise-00.h:85
Definition nrlmsise-00.h:126