Skip to content

Commit

Permalink
Merge pull request #479 from ut-issl/feature/remove-initialize-file-l…
Browse files Browse the repository at this point in the history
…ocal-env

Remove initialize file for local environment
  • Loading branch information
200km committed Sep 1, 2023
2 parents facd043 + 4e2b615 commit 345d72a
Show file tree
Hide file tree
Showing 11 changed files with 91 additions and 113 deletions.
1 change: 0 additions & 1 deletion src/environment/local/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ add_library(${PROJECT_NAME} STATIC
geomagnetic_field.cpp
solar_radiation_pressure_environment.cpp
local_celestial_information.cpp
initialize_local_environment.cpp
)

include(../../../common.cmake)
36 changes: 36 additions & 0 deletions src/environment/local/atmosphere.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

#include "library/atmosphere/harris_priester_model.hpp"
#include "library/atmosphere/simple_air_density_model.hpp"
#include "library/initialize/initialize_file_access.hpp"
#include "library/logger/log_utility.hpp"
#include "library/math/vector.hpp"
#include "library/randomization/global_randomization.hpp"
Expand Down Expand Up @@ -97,3 +98,38 @@ std::string Atmosphere::GetLogHeader() const {

return str_tmp;
}

Atmosphere InitAtmosphere(const std::string initialize_file_path, const LocalCelestialInformation* local_celestial_information,
const SimulationTime* simulation_time) {
auto conf = IniAccess(initialize_file_path);
const char* section = "ATMOSPHERE";
double f107_threshold = 50.0;
double f107_default = 150.0;

std::string model = conf.ReadString(section, "model");
std::string table_path = conf.ReadString(section, "nrlmsise00_table_file");
double rho_stddev = conf.ReadDouble(section, "air_density_standard_deviation");
bool is_manual_param_used = conf.ReadEnable(section, "is_manual_parameter_used");
double manual_daily_f107 = conf.ReadDouble(section, "manual_daily_f107");
if (manual_daily_f107 < f107_threshold) {
std::cerr << "Daily F10.7 may be too low. It is set as 150.0 in this simulation. "
"Check [ATMOSPHERE] section in LocalEnvironment.ini."
<< std::endl;
manual_daily_f107 = f107_default;
}
double manual_average_f107 = conf.ReadDouble(section, "manual_average_f107");
if (manual_average_f107 < f107_threshold) {
std::cerr << "Average F10.7 may be too low. It is set as 150.0 in this "
"simulation. Check [ATMOSPHERE] section in LocalEnvironment.ini."
<< std::endl;
manual_average_f107 = f107_default;
}
double manual_ap = conf.ReadDouble(section, "manual_ap");

Atmosphere atmosphere(model, table_path, rho_stddev, is_manual_param_used, manual_daily_f107, manual_average_f107, manual_ap,
local_celestial_information, simulation_time);
atmosphere.SetCalcFlag(conf.ReadEnable(section, INI_CALC_LABEL));
atmosphere.is_log_enabled_ = conf.ReadEnable(section, INI_LOG_LABEL);

return atmosphere;
}
9 changes: 9 additions & 0 deletions src/environment/local/atmosphere.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -107,4 +107,13 @@ class Atmosphere : public ILoggable {
double AddNoise(const double rho_kg_m3);
};

/**
* @fn InitAtmosphere
* @brief Initialize atmospheric density of the earth
* @param [in] initialize_file_path: Path to initialize file
* @param [in] local_celestial_information: Local celestial information
*/
Atmosphere InitAtmosphere(const std::string initialize_file_path, const LocalCelestialInformation* local_celestial_information,
const SimulationTime* simulation_time);

#endif // S2E_ENVIRONMENT_LOCAL_ATMOSPHERE_HPP_
16 changes: 16 additions & 0 deletions src/environment/local/geomagnetic_field.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -69,3 +69,19 @@ std::string GeomagneticField::GetLogValue() const {

return str_tmp;
}

GeomagneticField InitGeomagneticField(std::string initialize_file_path) {
auto conf = IniAccess(initialize_file_path);
const char* section = "MAGNETIC_FIELD_ENVIRONMENT";

std::string fname = conf.ReadString(section, "coefficient_file");
double mag_rwdev = conf.ReadDouble(section, "magnetic_field_random_walk_standard_deviation_nT");
double mag_rwlimit = conf.ReadDouble(section, "magnetic_field_random_walk_limit_nT");
double mag_wnvar = conf.ReadDouble(section, "magnetic_field_white_noise_standard_deviation_nT");

GeomagneticField geomagnetic_field(fname, mag_rwdev, mag_rwlimit, mag_wnvar);
geomagnetic_field.IsCalcEnabled = conf.ReadEnable(section, INI_CALC_LABEL);
geomagnetic_field.is_log_enabled_ = conf.ReadEnable(section, INI_LOG_LABEL);

return geomagnetic_field;
}
7 changes: 7 additions & 0 deletions src/environment/local/geomagnetic_field.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -85,4 +85,11 @@ class GeomagneticField : public ILoggable {
void AddNoise(double* magnetic_field_array_i_nT);
};

/**
* @fn InitGeomagneticField
* @brief Initialize magnetic field of the earth
* @param [in] initialize_file_path: Path to initialize file
*/
GeomagneticField InitGeomagneticField(std::string initialize_file_path);

#endif // S2E_ENVIRONMENT_LOCAL_GEOMAGNETIC_FIELD_HPP_
75 changes: 0 additions & 75 deletions src/environment/local/initialize_local_environment.cpp

This file was deleted.

36 changes: 0 additions & 36 deletions src/environment/local/initialize_local_environment.hpp

This file was deleted.

1 change: 0 additions & 1 deletion src/environment/local/local_environment.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@

#include "dynamics/attitude/attitude.hpp"
#include "dynamics/orbit/orbit.hpp"
#include "initialize_local_environment.hpp"
#include "library/initialize/initialize_file_access.hpp"

LocalEnvironment::LocalEnvironment(const SimulationConfiguration* simulation_configuration, const GlobalEnvironment* global_environment,
Expand Down
13 changes: 13 additions & 0 deletions src/environment/local/solar_radiation_pressure_environment.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
#include <cassert>
#include <fstream>

#include "library/initialize/initialize_file_access.hpp"
#include "library/logger/log_utility.hpp"
#include "library/math/constants.hpp"
#include "library/math/vector.hpp"
Expand Down Expand Up @@ -93,3 +94,15 @@ void SolarRadiationPressureEnvironment::CalcShadowCoefficient(std::string shadow
shadow_coefficient_ = 1.0;
}
}

SolarRadiationPressureEnvironment InitSolarRadiationPressureEnvironment(std::string initialize_file_path,
LocalCelestialInformation* local_celestial_information) {
auto conf = IniAccess(initialize_file_path);
const char* section = "SOLAR_RADIATION_PRESSURE_ENVIRONMENT";

SolarRadiationPressureEnvironment srp_env(local_celestial_information);
srp_env.IsCalcEnabled = conf.ReadEnable(section, INI_CALC_LABEL);
srp_env.is_log_enabled_ = conf.ReadEnable(section, INI_LOG_LABEL);

return srp_env;
}
Original file line number Diff line number Diff line change
Expand Up @@ -102,4 +102,13 @@ class SolarRadiationPressureEnvironment : public ILoggable {
void CalcShadowCoefficient(std::string shadow_source_name);
};

/**
* @fn InitSolarRadiationPressureEnvironment
* @brief Initialize solar radiation pressure
* @param [in] initialize_file_path: Path to initialize file
* @param [in] local_celestial_information: Local celestial information
*/
SolarRadiationPressureEnvironment InitSolarRadiationPressureEnvironment(std::string initialize_file_path,
LocalCelestialInformation* local_celestial_information);

#endif // S2E_ENVIRONMENT_LOCAL_SOLAR_RADIATION_PRESSURE_ENVIRONMENT_HPP_
1 change: 1 addition & 0 deletions src/library/initialize/initialize_file_access.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
#ifdef WIN32
#define _WINSOCKAPI_ // stops windows.h including winsock.h
#include <tchar.h>
#define NOMINMAX
#include <windows.h>
#else
#include <library/external/inih/cpp/INIReader.h>
Expand Down

0 comments on commit 345d72a

Please sign in to comment.