Refactor code according to static analyzers

This commit is contained in:
Max Luebke 2024-04-08 09:19:48 +00:00
parent 9a7b6f0f24
commit 2c7fc089cc
7 changed files with 31 additions and 39 deletions

View File

@ -13,8 +13,6 @@
#include <string> #include <string>
#include <vector> #include <vector>
constexpr uint32_t MB_FACTOR = 1E6;
std::vector<double> std::vector<double>
inverseDistanceWeighting(const std::vector<std::int32_t> &to_calc, inverseDistanceWeighting(const std::vector<std::int32_t> &to_calc,
const std::vector<double> &from, const std::vector<double> &from,
@ -22,20 +20,21 @@ inverseDistanceWeighting(const std::vector<std::int32_t> &to_calc,
const std::vector<std::vector<double>> &output) { const std::vector<std::vector<double>> &output) {
std::vector<double> results = from; std::vector<double> results = from;
const std::uint32_t buffer_size = input.size() + 1; // const std::uint32_t buffer_size = input.size() + 1;
double buffer[buffer_size]; // double buffer[buffer_size];
double from_rescaled; // double from_rescaled;
const std::uint32_t data_set_n = input.size(); const std::uint32_t data_set_n = input.size();
double rescaled[to_calc.size()][data_set_n + 1]; double rescaled[to_calc.size()][data_set_n + 1];
double weights[data_set_n]; double weights[data_set_n];
// rescaling over all key elements // 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]; const auto output_comp_i = to_calc[key_comp_i];
// rescale input between 0 and 1 // 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]; rescaled[key_comp_i][point_i] = input[point_i][key_comp_i];
} }
@ -46,7 +45,7 @@ inverseDistanceWeighting(const std::vector<std::int32_t> &to_calc,
const double max = *std::max_element(rescaled[key_comp_i], const double max = *std::max_element(rescaled[key_comp_i],
rescaled[key_comp_i] + data_set_n + 1); 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] = rescaled[key_comp_i][point_i] =
((max - min) != 0 ((max - min) != 0
? (rescaled[key_comp_i][point_i] - min) / (max - min) ? (rescaled[key_comp_i][point_i] - min) / (max - min)
@ -58,9 +57,10 @@ inverseDistanceWeighting(const std::vector<std::int32_t> &to_calc,
// calculate distances for each data set // calculate distances for each data set
double inv_sum = 0; 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; 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( distance += std::pow(
rescaled[key_comp_i][point_i] - rescaled[key_comp_i][data_set_n], 2); rescaled[key_comp_i][point_i] - rescaled[key_comp_i][data_set_n], 2);
} }
@ -75,7 +75,8 @@ inverseDistanceWeighting(const std::vector<std::int32_t> &to_calc,
// bool has_h = false; // bool has_h = false;
// bool has_o = 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]; const auto output_comp_i = to_calc[key_comp_i];
double key_delta = 0; double key_delta = 0;
@ -87,7 +88,7 @@ inverseDistanceWeighting(const std::vector<std::int32_t> &to_calc,
// has_o = true; // 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]; key_delta += weights[j] * output[j][output_comp_i];
} }
@ -157,7 +158,7 @@ inverseDistanceWeighting(const std::vector<std::int32_t> &to_calc,
poet::ChemistryModule::ChemistryModule( poet::ChemistryModule::ChemistryModule(
uint32_t wp_size_, const InitialList::ChemistryInit chem_params, uint32_t wp_size_, const InitialList::ChemistryInit chem_params,
MPI_Comm communicator) 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_rank(communicator, &comm_rank);
MPI_Comm_size(communicator, &comm_size); MPI_Comm_size(communicator, &comm_size);
@ -306,9 +307,9 @@ void poet::ChemistryModule::initializeInterp(
if (key_species.empty()) { if (key_species.empty()) {
map_copy = this->dht->getKeySpecies(); 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 = const std::uint32_t signif =
map_copy[i] - (map_copy[i] > InterpolationModule::COARSE_DIFF static_cast<std::uint32_t>(map_copy[i]) - (map_copy[i] > InterpolationModule::COARSE_DIFF
? InterpolationModule::COARSE_DIFF ? InterpolationModule::COARSE_DIFF
: 0); : 0);
map_copy[i] = signif; map_copy[i] = signif;

View File

@ -69,7 +69,8 @@ public:
auto GetChemistryTime() const { return this->chem_t; } auto GetChemistryTime() const { return this->chem_t; }
void setFilePadding(std::uint32_t maxiter) { void setFilePadding(std::uint32_t maxiter) {
this->file_pad = std::ceil(std::log10(maxiter + 1)); this->file_pad =
static_cast<std::uint8_t>(std::ceil(std::log10(maxiter + 1)));
} }
struct SurrogateSetup { struct SurrogateSetup {
@ -365,7 +366,7 @@ protected:
bool print_progessbar{false}; bool print_progessbar{false};
std::uint32_t file_pad{1}; std::uint8_t file_pad{1};
double chem_t{0.}; double chem_t{0.};

View File

@ -20,8 +20,8 @@ void InitialList::importList(const Rcpp::List &setup) {
Rcpp::NumericVector grid_specs = Rcpp::NumericVector grid_specs =
setup[static_cast<int>(ExportList::GRID_SPECS)]; setup[static_cast<int>(ExportList::GRID_SPECS)];
this->n_rows = grid_specs[0]; this->n_rows = static_cast<std::uint32_t>(grid_specs[0]);
this->n_cols = grid_specs[1]; this->n_cols = static_cast<std::uint32_t>(grid_specs[1]);
Rcpp::NumericVector spatial = Rcpp::NumericVector spatial =
setup[static_cast<int>(ExportList::GRID_SPATIAL)]; setup[static_cast<int>(ExportList::GRID_SPATIAL)];

View File

@ -92,13 +92,13 @@ private:
void prepareGrid(const Rcpp::List &grid_input); 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_cols{0};
std::uint32_t n_rows; std::uint32_t n_rows{0};
double s_cols; double s_cols{0};
double s_rows; double s_rows{0};
std::vector<std::uint32_t> constant_cells; std::vector<std::uint32_t> constant_cells;
std::vector<double> porosity; std::vector<double> porosity;

View File

@ -85,7 +85,7 @@ private:
* @brief time spent for transport * @brief time spent for transport
* *
*/ */
double transport_t = 0.f; double transport_t = 0.;
}; };
} // namespace poet } // namespace poet

View File

@ -25,10 +25,6 @@ int main(int argc, char **argv) {
Rcpp::List setup = R["setup"]; Rcpp::List setup = R["setup"];
// Rcpp::List grid = R.parseEval("setup$grid");
// Rcpp::List results;
poet::InitialList init(R); poet::InitialList init(R);
init.initializeFromList(setup); init.initializeFromList(setup);

View File

@ -76,8 +76,7 @@ void writeFieldsToR(RInside &R, const Field &trans, const Field &chem) {
enum ParseRet { PARSER_OK, PARSER_ERROR, PARSER_HELP }; enum ParseRet { PARSER_OK, PARSER_ERROR, PARSER_HELP };
ParseRet parseInitValues(char **argv, RInsidePOET &R, ParseRet parseInitValues(char **argv, RuntimeParameters &params) {
RuntimeParameters &params) {
// initialize argh object // initialize argh object
argh::parser cmdl(argv); argh::parser cmdl(argv);
@ -222,7 +221,7 @@ ParseRet parseInitValues(char **argv, RInsidePOET &R,
return ParseRet::PARSER_OK; return ParseRet::PARSER_OK;
} }
static Rcpp::List RunMasterLoop(RInside &R, const RuntimeParameters &params, static Rcpp::List RunMasterLoop(const RuntimeParameters &params,
DiffusionModule &diffusion, DiffusionModule &diffusion,
ChemistryModule &chem) { ChemistryModule &chem) {
@ -230,8 +229,6 @@ static Rcpp::List RunMasterLoop(RInside &R, const RuntimeParameters &params,
* master for the following loop) */ * master for the following loop) */
uint32_t maxiter = params.timesteps.size(); uint32_t maxiter = params.timesteps.size();
double sim_time = .0;
if (params.print_progressbar) { if (params.print_progressbar) {
chem.setProgressBarPrintout(true); chem.setProgressBarPrintout(true);
} }
@ -241,7 +238,6 @@ static Rcpp::List RunMasterLoop(RInside &R, const RuntimeParameters &params,
double dSimTime{0}; double dSimTime{0};
for (uint32_t iter = 1; iter < maxiter + 1; iter++) { for (uint32_t iter = 1; iter < maxiter + 1; iter++) {
double start_t = MPI_Wtime(); double start_t = MPI_Wtime();
uint32_t tick = 0;
const double &dt = params.timesteps[iter - 1]; const double &dt = params.timesteps[iter - 1];
@ -325,8 +321,6 @@ static Rcpp::List RunMasterLoop(RInside &R, const RuntimeParameters &params,
} }
int main(int argc, char *argv[]) { int main(int argc, char *argv[]) {
double dSimTime, sim_end;
int world_size; int world_size;
MPI_Init(&argc, &argv); MPI_Init(&argc, &argv);
@ -343,7 +337,7 @@ int main(int argc, char *argv[]) {
RuntimeParameters run_params; RuntimeParameters run_params;
switch (parseInitValues(argv, R, run_params)) { switch (parseInitValues(argv, run_params)) {
case ParseRet::PARSER_ERROR: case ParseRet::PARSER_ERROR:
case ParseRet::PARSER_HELP: case ParseRet::PARSER_HELP:
MPI_Finalize(); MPI_Finalize();
@ -401,7 +395,7 @@ int main(int argc, char *argv[]) {
chemistry.masterSetField(init_list.getInitialGrid()); 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"); MSG("finished simulation loop");