WarpTwin
Documentation for WarpTwin models and classes.
Loading...
Searching...
No Matches
SolarRadiationPressureModel.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/*
17Solar Radiation Pressure model header file
18
19Author: Sam Matez
20*/
21/*
22Metadata for MS GUI:
23imdata = {"displayname" : "Solar Radiation Pressure",
24 "exclude" : False,
25 "category" : "Environment"
26}
27aliases = {"S" : "Solar Flux",
28 "C_r" : "Coeff. of Reflectivity",
29 "A_srp" : "Spacecraft Area",
30 "position_body_sun_f" : "Position",
31 "v" : "Solar Intensity",
32 "srp_force_body_f" : "SRP Force"
33}
34*/
35
36#ifndef MODELS_SOLAR_RADIATION_PRESSURE_MODEL_H
37#define MODELS_SOLAR_RADIATION_PRESSURE_MODEL_H
38
39// #include "frames/Body.h"
40#include "frames/frameutils.h"
41#include "simulation/Model.h"
42#include "constants/unitutils.h"
43
44namespace warptwin {
45
58 MODEL(SolarRadiationPressureModel)
59 public:
60 // Model params
61 // NAME TYPE DEFAULT VALUE
64 SIGNAL(S, double, 1361.0)
66
67 // Model inputs
68 // NAME TYPE DEFAULT VALUE
71 SIGNAL(C_r, double, 1.0)
73 SIGNAL(A_srp, double, 1.0)
75 SIGNAL(position_body_sun_f, CartesianVector3, CartesianVector3({warpos::AU_TO_METERS, 0.0, 0.0}))
77 SIGNAL(v, double, 1.0)
79
80 // Model Outputs
81 // NAME TYPE DEFAULT VALUE
84 SIGNAL(srp_force_body_f, CartesianVector3, CartesianVector3({0.0, 0.0, 0.0}))
86
87 protected:
88 // Execute in protected
89 int16 execute() override;
90
91 // Temporary vectors and variables to carry out our calculations
92 double _r;
93 double _multiplier;
95 };
96
97}
98
99#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
#define CartesianVector3
Definition mathmacros.h:43
const floating_point AU_TO_METERS
Definition unitutils.h:55
Class to propagate CR3BP dynamics in characteristic units.
Definition statistics.hpp:22
SIGNAL(_mu, double, warpos::earth_wgs84.mu)
@ MODEL
Simplified dynamics model representing motion in the circular restricted 3 body problem.
Definition ImNode.h:31
CartesianVector3 _unitpos_body_sun_f
Definition SolarRadiationPressureModel.h:94
int16 execute() override
Function to check monitor input conditions and set trigger flag accordingly. Should be implemented in...
double _r
Point mass gravity model.
Definition GravityGradientModel.h:94
double _multiplier
Definition GravityGradientModel.h:95