From b8fd16a8d945310c64aef333b5071aaf41da2554 Mon Sep 17 00:00:00 2001 From: Max Luebke Date: Mon, 8 Apr 2024 09:19:48 +0000 Subject: [PATCH] Refactor code according to static analyzers --- src/Chemistry/ChemistryModule.cpp | 31 ++++++++++++++++--------------- src/Chemistry/ChemistryModule.hpp | 5 +++-- src/Init/InitialList.cpp | 4 ++-- src/Init/InitialList.hpp | 10 +++++----- src/Transport/DiffusionModule.hpp | 2 +- src/initializer.cpp | 4 ---- src/poet.cpp | 14 ++++---------- 7 files changed, 31 insertions(+), 39 deletions(-) diff --git a/src/Chemistry/ChemistryModule.cpp b/src/Chemistry/ChemistryModule.cpp index 422ae2e83..f48bd9a00 100644 --- a/src/Chemistry/ChemistryModule.cpp +++ b/src/Chemistry/ChemistryModule.cpp @@ -13,8 +13,6 @@ #include #include -constexpr uint32_t MB_FACTOR = 1E6; - std::vector inverseDistanceWeighting(const std::vector &to_calc, const std::vector &from, @@ -22,20 +20,21 @@ inverseDistanceWeighting(const std::vector &to_calc, const std::vector> &output) { std::vector results = from; - const std::uint32_t buffer_size = input.size() + 1; - double buffer[buffer_size]; - double from_rescaled; + // const std::uint32_t buffer_size = input.size() + 1; + // double buffer[buffer_size]; + // double from_rescaled; const std::uint32_t data_set_n = input.size(); double rescaled[to_calc.size()][data_set_n + 1]; double weights[data_set_n]; // rescaling over all key elements - for (int key_comp_i = 0; key_comp_i < to_calc.size(); key_comp_i++) { + for (std::uint32_t key_comp_i = 0; key_comp_i < to_calc.size(); + key_comp_i++) { const auto output_comp_i = to_calc[key_comp_i]; // rescale input between 0 and 1 - for (int point_i = 0; point_i < data_set_n; point_i++) { + for (std::uint32_t point_i = 0; point_i < data_set_n; point_i++) { rescaled[key_comp_i][point_i] = input[point_i][key_comp_i]; } @@ -46,7 +45,7 @@ inverseDistanceWeighting(const std::vector &to_calc, const double max = *std::max_element(rescaled[key_comp_i], rescaled[key_comp_i] + data_set_n + 1); - for (int point_i = 0; point_i < data_set_n; point_i++) { + for (std::uint32_t point_i = 0; point_i < data_set_n; point_i++) { rescaled[key_comp_i][point_i] = ((max - min) != 0 ? (rescaled[key_comp_i][point_i] - min) / (max - min) @@ -58,9 +57,10 @@ inverseDistanceWeighting(const std::vector &to_calc, // calculate distances for each data set double inv_sum = 0; - for (int point_i = 0; point_i < data_set_n; point_i++) { + for (std::uint32_t point_i = 0; point_i < data_set_n; point_i++) { double distance = 0; - for (int key_comp_i = 0; key_comp_i < to_calc.size(); key_comp_i++) { + for (std::uint32_t key_comp_i = 0; key_comp_i < to_calc.size(); + key_comp_i++) { distance += std::pow( rescaled[key_comp_i][point_i] - rescaled[key_comp_i][data_set_n], 2); } @@ -75,7 +75,8 @@ inverseDistanceWeighting(const std::vector &to_calc, // bool has_h = false; // bool has_o = false; - for (int key_comp_i = 0; key_comp_i < to_calc.size(); key_comp_i++) { + for (std::uint32_t key_comp_i = 0; key_comp_i < to_calc.size(); + key_comp_i++) { const auto output_comp_i = to_calc[key_comp_i]; double key_delta = 0; @@ -87,7 +88,7 @@ inverseDistanceWeighting(const std::vector &to_calc, // has_o = true; // } - for (int j = 0; j < data_set_n; j++) { + for (std::uint32_t j = 0; j < data_set_n; j++) { key_delta += weights[j] * output[j][output_comp_i]; } @@ -157,7 +158,7 @@ inverseDistanceWeighting(const std::vector &to_calc, poet::ChemistryModule::ChemistryModule( uint32_t wp_size_, const InitialList::ChemistryInit chem_params, MPI_Comm communicator) - : params(chem_params), wp_size(wp_size_), group_comm(communicator) { + : group_comm(communicator), wp_size(wp_size_), params(chem_params) { MPI_Comm_rank(communicator, &comm_rank); MPI_Comm_size(communicator, &comm_size); @@ -306,9 +307,9 @@ void poet::ChemistryModule::initializeInterp( if (key_species.empty()) { map_copy = this->dht->getKeySpecies(); - for (std::size_t i = 0; i < map_copy.size(); i++) { + for (auto i = 0; i < map_copy.size(); i++) { const std::uint32_t signif = - map_copy[i] - (map_copy[i] > InterpolationModule::COARSE_DIFF + static_cast(map_copy[i]) - (map_copy[i] > InterpolationModule::COARSE_DIFF ? InterpolationModule::COARSE_DIFF : 0); map_copy[i] = signif; diff --git a/src/Chemistry/ChemistryModule.hpp b/src/Chemistry/ChemistryModule.hpp index e7d74c290..80be5a22f 100644 --- a/src/Chemistry/ChemistryModule.hpp +++ b/src/Chemistry/ChemistryModule.hpp @@ -69,7 +69,8 @@ public: auto GetChemistryTime() const { return this->chem_t; } void setFilePadding(std::uint32_t maxiter) { - this->file_pad = std::ceil(std::log10(maxiter + 1)); + this->file_pad = + static_cast(std::ceil(std::log10(maxiter + 1))); } struct SurrogateSetup { @@ -365,7 +366,7 @@ protected: bool print_progessbar{false}; - std::uint32_t file_pad{1}; + std::uint8_t file_pad{1}; double chem_t{0.}; diff --git a/src/Init/InitialList.cpp b/src/Init/InitialList.cpp index 7f5360c87..57ce957c2 100644 --- a/src/Init/InitialList.cpp +++ b/src/Init/InitialList.cpp @@ -20,8 +20,8 @@ void InitialList::importList(const Rcpp::List &setup) { Rcpp::NumericVector grid_specs = setup[static_cast(ExportList::GRID_SPECS)]; - this->n_rows = grid_specs[0]; - this->n_cols = grid_specs[1]; + this->n_rows = static_cast(grid_specs[0]); + this->n_cols = static_cast(grid_specs[1]); Rcpp::NumericVector spatial = setup[static_cast(ExportList::GRID_SPATIAL)]; diff --git a/src/Init/InitialList.hpp b/src/Init/InitialList.hpp index 3b2576ea8..74ee9de4b 100644 --- a/src/Init/InitialList.hpp +++ b/src/Init/InitialList.hpp @@ -92,13 +92,13 @@ private: void prepareGrid(const Rcpp::List &grid_input); - std::uint8_t dim; + std::uint8_t dim{0}; - std::uint32_t n_cols; - std::uint32_t n_rows; + std::uint32_t n_cols{0}; + std::uint32_t n_rows{0}; - double s_cols; - double s_rows; + double s_cols{0}; + double s_rows{0}; std::vector constant_cells; std::vector porosity; diff --git a/src/Transport/DiffusionModule.hpp b/src/Transport/DiffusionModule.hpp index f19ee2064..e8a576499 100644 --- a/src/Transport/DiffusionModule.hpp +++ b/src/Transport/DiffusionModule.hpp @@ -85,7 +85,7 @@ private: * @brief time spent for transport * */ - double transport_t = 0.f; + double transport_t = 0.; }; } // namespace poet diff --git a/src/initializer.cpp b/src/initializer.cpp index d0cdada1a..c71fbed19 100644 --- a/src/initializer.cpp +++ b/src/initializer.cpp @@ -25,10 +25,6 @@ int main(int argc, char **argv) { Rcpp::List setup = R["setup"]; - // Rcpp::List grid = R.parseEval("setup$grid"); - - // Rcpp::List results; - poet::InitialList init(R); init.initializeFromList(setup); diff --git a/src/poet.cpp b/src/poet.cpp index 8ee5585a1..38ce1f974 100644 --- a/src/poet.cpp +++ b/src/poet.cpp @@ -76,8 +76,7 @@ void writeFieldsToR(RInside &R, const Field &trans, const Field &chem) { enum ParseRet { PARSER_OK, PARSER_ERROR, PARSER_HELP }; -ParseRet parseInitValues(char **argv, RInsidePOET &R, - RuntimeParameters ¶ms) { +ParseRet parseInitValues(char **argv, RuntimeParameters ¶ms) { // initialize argh object argh::parser cmdl(argv); @@ -222,7 +221,7 @@ ParseRet parseInitValues(char **argv, RInsidePOET &R, return ParseRet::PARSER_OK; } -static Rcpp::List RunMasterLoop(RInside &R, const RuntimeParameters ¶ms, +static Rcpp::List RunMasterLoop(const RuntimeParameters ¶ms, DiffusionModule &diffusion, ChemistryModule &chem) { @@ -230,8 +229,6 @@ static Rcpp::List RunMasterLoop(RInside &R, const RuntimeParameters ¶ms, * master for the following loop) */ uint32_t maxiter = params.timesteps.size(); - double sim_time = .0; - if (params.print_progressbar) { chem.setProgressBarPrintout(true); } @@ -241,7 +238,6 @@ static Rcpp::List RunMasterLoop(RInside &R, const RuntimeParameters ¶ms, double dSimTime{0}; for (uint32_t iter = 1; iter < maxiter + 1; iter++) { double start_t = MPI_Wtime(); - uint32_t tick = 0; const double &dt = params.timesteps[iter - 1]; @@ -325,8 +321,6 @@ static Rcpp::List RunMasterLoop(RInside &R, const RuntimeParameters ¶ms, } int main(int argc, char *argv[]) { - double dSimTime, sim_end; - int world_size; MPI_Init(&argc, &argv); @@ -343,7 +337,7 @@ int main(int argc, char *argv[]) { RuntimeParameters run_params; - switch (parseInitValues(argv, R, run_params)) { + switch (parseInitValues(argv, run_params)) { case ParseRet::PARSER_ERROR: case ParseRet::PARSER_HELP: MPI_Finalize(); @@ -401,7 +395,7 @@ int main(int argc, char *argv[]) { chemistry.masterSetField(init_list.getInitialGrid()); - Rcpp::List profiling = RunMasterLoop(R, run_params, diffusion, chemistry); + Rcpp::List profiling = RunMasterLoop(run_params, diffusion, chemistry); MSG("finished simulation loop");