diff --git a/include/PolarGrid/polargrid.inl b/include/PolarGrid/polargrid.inl index 9d9df122..f56b8623 100755 --- a/include/PolarGrid/polargrid.inl +++ b/include/PolarGrid/polargrid.inl @@ -1,5 +1,7 @@ #pragma once +#include + #include "polargrid.h" inline int PolarGrid::nr() const @@ -18,13 +20,13 @@ inline int PolarGrid::numberOfNodes() const inline double PolarGrid::radius(const int r_index) const { - assert(r_index >= 0 && static_cast(r_index) < radii_.size()); + assert(r_index >= 0 && r_index < std::ssize(radii_)); return radii_[r_index]; } inline double PolarGrid::theta(const int theta_index) const { - assert(theta_index >= 0 && static_cast(theta_index) < angles_.size()); + assert(theta_index >= 0 && theta_index < std::ssize(angles_)); return angles_[theta_index]; } @@ -57,7 +59,7 @@ inline int PolarGrid::numberRadialSmootherNodes() const inline double PolarGrid::radialSpacing(const int r_index) const { - assert(r_index >= 0 && static_cast(r_index) < radial_spacings_.size()); + assert(r_index >= 0 && r_index < std::ssize(radial_spacings_)); return radial_spacings_[r_index]; } diff --git a/src/DirectSolver/DirectSolver-COO-MUMPS-Give/applySymmetryShift.cpp b/src/DirectSolver/DirectSolver-COO-MUMPS-Give/applySymmetryShift.cpp index e729c530..320657ab 100644 --- a/src/DirectSolver/DirectSolver-COO-MUMPS-Give/applySymmetryShift.cpp +++ b/src/DirectSolver/DirectSolver-COO-MUMPS-Give/applySymmetryShift.cpp @@ -2,6 +2,8 @@ #include "../../../include/common/geometry_helper.h" +#include + #ifdef GMGPOLAR_USE_MUMPS /* ----------------------- */ @@ -123,7 +125,7 @@ void DirectSolverGive::applySymmetryShiftOuterBoundary(Vector x) const // clang-format off void DirectSolverGive::applySymmetryShift(Vector x) const { - assert(x.size() == grid_.numberOfNodes()); + assert(std::ssize(x) == grid_.numberOfNodes()); assert(grid_.nr() >= 4); if (num_omp_threads_ == 1) { diff --git a/src/DirectSolver/DirectSolver-COO-MUMPS-Take/applySymmetryShift.cpp b/src/DirectSolver/DirectSolver-COO-MUMPS-Take/applySymmetryShift.cpp index e78ee456..5b3d7d4c 100644 --- a/src/DirectSolver/DirectSolver-COO-MUMPS-Take/applySymmetryShift.cpp +++ b/src/DirectSolver/DirectSolver-COO-MUMPS-Take/applySymmetryShift.cpp @@ -1,5 +1,7 @@ #include "../../../include/DirectSolver/DirectSolver-COO-MUMPS-Take/directSolverTake.h" +#include + #ifdef GMGPOLAR_USE_MUMPS /* ----------------------- */ @@ -80,7 +82,7 @@ void DirectSolverTake::applySymmetryShiftOuterBoundary(Vector x) const void DirectSolverTake::applySymmetryShift(Vector x) const { - assert(x.size() == grid_.numberOfNodes()); + assert(std::ssize(x) == grid_.numberOfNodes()); assert(grid_.nr() >= 4); if (num_omp_threads_ == 1) { diff --git a/src/GMGPolar/build_rhs_f.cpp b/src/GMGPolar/build_rhs_f.cpp index c97b640e..0965a91d 100644 --- a/src/GMGPolar/build_rhs_f.cpp +++ b/src/GMGPolar/build_rhs_f.cpp @@ -4,7 +4,7 @@ void GMGPolar::build_rhs_f(const Level& level, Vector rhs_f, const Bound const SourceTerm& source_term) { const PolarGrid& grid = level.grid(); - assert(rhs_f.size() == static_cast(grid.numberOfNodes())); + assert(std::ssize(rhs_f) == grid.numberOfNodes()); #pragma omp parallel { @@ -55,7 +55,7 @@ void GMGPolar::build_rhs_f(const Level& level, Vector rhs_f, const Bound void GMGPolar::discretize_rhs_f(const Level& level, Vector rhs_f) { const PolarGrid& grid = level.grid(); - assert(rhs_f.size() == static_cast(grid.numberOfNodes())); + assert(std::ssize(rhs_f) == grid.numberOfNodes()); if (level.levelCache().cacheDomainGeometry()) { /* DomainGeometry is cached */ diff --git a/src/GMGPolar/solver.cpp b/src/GMGPolar/solver.cpp index 2af5c999..85685fd7 100644 --- a/src/GMGPolar/solver.cpp +++ b/src/GMGPolar/solver.cpp @@ -319,8 +319,8 @@ void GMGPolar::extrapolatedResidual(const int current_level, Vector resi const PolarGrid& fineGrid = levels_[current_level].grid(); const PolarGrid& coarseGrid = levels_[current_level + 1].grid(); - assert(residual.size() == static_cast(fineGrid.numberOfNodes())); - assert(residual_next_level.size() == static_cast(coarseGrid.numberOfNodes())); + assert(std::ssize(residual) == fineGrid.numberOfNodes()); + assert(std::ssize(residual_next_level) == coarseGrid.numberOfNodes()); #pragma omp parallel num_threads(max_omp_threads_) { @@ -397,7 +397,7 @@ std::pair GMGPolar::computeExactError(Level& level, ConstVector< const LevelCache& levelCache = level.levelCache(); assert(solution.size() == error.size()); - assert(solution.size() == static_cast(grid.numberOfNodes())); + assert(std::ssize(solution) == grid.numberOfNodes()); #pragma omp parallel num_threads(max_omp_threads_) { diff --git a/src/GMGPolar/writeToVTK.cpp b/src/GMGPolar/writeToVTK.cpp index 48d1fa32..07c43e74 100644 --- a/src/GMGPolar/writeToVTK.cpp +++ b/src/GMGPolar/writeToVTK.cpp @@ -63,7 +63,7 @@ void GMGPolar::writeToVTK(const std::filesystem::path& file_path, const Level& l const PolarGrid& grid = level.grid(); const LevelCache& level_cache = level.levelCache(); - assert(static_cast(grid.numberOfNodes()) == grid_function.size()); + assert(std::ssize(grid_function) == grid.numberOfNodes()); const auto filename = file_path.stem().string() + ".vtu"; diff --git a/src/Interpolation/extrapolated_prolongation.cpp b/src/Interpolation/extrapolated_prolongation.cpp index 343770a1..c42f8232 100644 --- a/src/Interpolation/extrapolated_prolongation.cpp +++ b/src/Interpolation/extrapolated_prolongation.cpp @@ -84,8 +84,8 @@ void Interpolation::applyExtrapolatedProlongation(const PolarGrid& coarse_grid, const PolarGrid& fine_grid, Vector fine_result, ConstVector coarse_values) const { - assert(coarse_values.size() == static_cast(coarse_grid.numberOfNodes())); - assert(fine_result.size() == static_cast(fine_grid.numberOfNodes())); + assert(std::ssize(coarse_values) == coarse_grid.numberOfNodes()); + assert(std::ssize(fine_result) == fine_grid.numberOfNodes()); /* We split the loops into two regions to better respect the */ /* access patterns of the smoother and improve cache locality. */ diff --git a/src/Interpolation/extrapolated_restriction.cpp b/src/Interpolation/extrapolated_restriction.cpp index ae692536..06cb9d09 100644 --- a/src/Interpolation/extrapolated_restriction.cpp +++ b/src/Interpolation/extrapolated_restriction.cpp @@ -49,8 +49,8 @@ void Interpolation::applyExtrapolatedRestriction(const PolarGrid& fine_grid, const PolarGrid& coarse_grid, Vector coarse_result, ConstVector fine_values) const { - assert(fine_values.size() == static_cast(fine_grid.numberOfNodes())); - assert(coarse_result.size() == static_cast(coarse_grid.numberOfNodes())); + assert(std::ssize(fine_values) == fine_grid.numberOfNodes()); + assert(std::ssize(coarse_result) == coarse_grid.numberOfNodes()); /* We split the loops into two regions to better respect the */ /* access patterns of the smoother and improve cache locality. */ diff --git a/src/Interpolation/fmg_interpolation.cpp b/src/Interpolation/fmg_interpolation.cpp index b0cf74a9..f75c0842 100644 --- a/src/Interpolation/fmg_interpolation.cpp +++ b/src/Interpolation/fmg_interpolation.cpp @@ -231,8 +231,8 @@ void Interpolation::applyFMGInterpolation(const PolarGrid& coarse_grid, const PolarGrid& fine_grid, Vector fine_result, ConstVector coarse_values) const { - assert(coarse_values.size() == static_cast(coarse_grid.numberOfNodes())); - assert(fine_result.size() == static_cast(fine_grid.numberOfNodes())); + assert(std::ssize(coarse_values) == coarse_grid.numberOfNodes()); + assert(std::ssize(fine_result) == fine_grid.numberOfNodes()); #pragma omp parallel num_threads(max_omp_threads_) { diff --git a/src/Interpolation/injection.cpp b/src/Interpolation/injection.cpp index 0ec0a27e..c756f37a 100644 --- a/src/Interpolation/injection.cpp +++ b/src/Interpolation/injection.cpp @@ -5,8 +5,8 @@ void Interpolation::applyInjection(const PolarGrid& fine_grid, const PolarGrid& coarse_grid, Vector coarse_result, ConstVector fine_values) const { - assert(fine_values.size() == static_cast(fine_grid.numberOfNodes())); - assert(coarse_result.size() == static_cast(coarse_grid.numberOfNodes())); + assert(std::ssize(fine_values) == fine_grid.numberOfNodes()); + assert(std::ssize(coarse_result) == coarse_grid.numberOfNodes()); #pragma omp parallel num_threads(max_omp_threads_) { diff --git a/src/Interpolation/prolongation.cpp b/src/Interpolation/prolongation.cpp index d0cf221f..4e52d295 100644 --- a/src/Interpolation/prolongation.cpp +++ b/src/Interpolation/prolongation.cpp @@ -108,8 +108,8 @@ void Interpolation::applyProlongation(const PolarGrid& coarse_grid, const PolarGrid& fine_grid, Vector fine_result, ConstVector coarse_values) const { - assert(coarse_values.size() == static_cast(coarse_grid.numberOfNodes())); - assert(fine_result.size() == static_cast(fine_grid.numberOfNodes())); + assert(std::ssize(coarse_values) == coarse_grid.numberOfNodes()); + assert(std::ssize(fine_result) == fine_grid.numberOfNodes()); /* We split the loops into two regions to better respect the */ /* access patterns of the smoother and improve cache locality. */ diff --git a/src/Interpolation/restriction.cpp b/src/Interpolation/restriction.cpp index ca99cace..a108501b 100644 --- a/src/Interpolation/restriction.cpp +++ b/src/Interpolation/restriction.cpp @@ -67,8 +67,8 @@ void Interpolation::applyRestriction(const PolarGrid& fine_grid, const PolarGrid& coarse_grid, Vector coarse_result, ConstVector fine_values) const { - assert(fine_values.size() == static_cast(fine_grid.numberOfNodes())); - assert(coarse_result.size() == static_cast(coarse_grid.numberOfNodes())); + assert(std::ssize(fine_values) == fine_grid.numberOfNodes()); + assert(std::ssize(coarse_result) == coarse_grid.numberOfNodes()); /* We split the loops into two regions to better respect the */ /* access patterns of the smoother and improve cache locality. */ diff --git a/src/Stencil/stencil.cpp b/src/Stencil/stencil.cpp index fdc1b29c..7ca20e2b 100644 --- a/src/Stencil/stencil.cpp +++ b/src/Stencil/stencil.cpp @@ -5,7 +5,7 @@ Stencil::Stencil(std::initializer_list init) { std::copy(init.begin(), init.end(), values_.begin()); stencil_size_ = 0; - for (int i = 0; i < static_cast(init.size()); i++) { + for (int i = 0; i < std::ssize(init); i++) { if (values_[i] != -1) stencil_size_++; } diff --git a/src/convergence_order.cpp b/src/convergence_order.cpp index 1a9fa1ff..1755b278 100644 --- a/src/convergence_order.cpp +++ b/src/convergence_order.cpp @@ -158,7 +158,7 @@ int main(int argc, char* argv[]) // Print the table rows with data for (int i = 0; i < MAX_DIVIDE_BY_2; i++) { // Start the row - std::cout << std::setw(6) << table_nr[i] << " x " << table_ntheta[i] << std::setw(7.5) << table_iterations[i] + std::cout << std::setw(6) << table_nr[i] << " x " << table_ntheta[i] << std::setw(7) << table_iterations[i] << std::setw(9) << table_reduction_factor[i]; // Print ||err||_2/sqrt(m) in scientific notation diff --git a/tests/test_tools.h b/tests/test_tools.h index 75d7e6bd..1ecaa9dd 100644 --- a/tests/test_tools.h +++ b/tests/test_tools.h @@ -10,7 +10,7 @@ inline Vector generate_random_sample_data(const PolarGrid& grid, unsigne Vector x("x", grid.numberOfNodes()); std::mt19937 gen(seed); std::uniform_real_distribution dist(min_val, max_val); - for (uint i = 0; i < x.size(); ++i) { + for (std::size_t i = 0; i < x.size(); ++i) { x(i) = dist(gen); } return x;