Skip to content

Commit 16470c4

Browse files
authored
clang-tidy suggested these fixes; update amrex submodule (#1023)
* clang-tidy suggested these fixes; update amrex submodule * fix for HIP
1 parent 09ceeb1 commit 16470c4

32 files changed

+282
-194
lines changed

.clang-tidy

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
Checks: >
2+
'-*,
3+
bugprone-*,
4+
-bugprone-easily-swappable-parameters,
5+
-bugprone-exception-escape,
6+
-bugprone-implicit-widening-of-multiplication-result,
7+
clang-analyzer-*,
8+
-clang-analyzer-optin.mpi.MPI-Checker,
9+
clang-diagnostic-*,
10+
cppcoreguidelines-*,
11+
-cppcoreguidelines-avoid-c-arrays,
12+
-cppcoreguidelines-avoid-goto,
13+
-cppcoreguidelines-avoid-magic-numbers,
14+
-cppcoreguidelines-avoid-non-const-global-variables,
15+
-cppcoreguidelines-init-variables,
16+
-cppcoreguidelines-interfaces-global-init,
17+
-cppcoreguidelines-macro-usage,
18+
-cppcoreguidelines-no-malloc,
19+
-cppcoreguidelines-non-private-member-variables-in-classes,
20+
-cppcoreguidelines-owning-memory,
21+
-cppcoreguidelines-pro-*,
22+
modernize-*,
23+
-modernize-avoid-c-arrays,
24+
-modernize-return-braced-init-list,
25+
-modernize-use-trailing-return-type,
26+
-modernize-use-using,
27+
performance-*,
28+
readability-*,
29+
-readability-braces-around-statements,
30+
-readability-container-data-pointer,
31+
-readability-else-after-return,
32+
-readability-function-cognitive-complexity,
33+
-readability-function-size,
34+
-readability-identifier-length,
35+
-readability-implicit-bool-conversion,
36+
-readability-isolate-declaration,
37+
-readability-magic-numbers,
38+
-readability-named-parameter,
39+
-readability-simplify-boolean-expr,
40+
mpi-*
41+
'
42+
43+
HeaderFilterRegex: '[^n][^o][^l][^i][^n][^t]\.H$'

Exec/CouetteFlow/prob.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -92,15 +92,15 @@ init_custom_prob(
9292
});
9393

9494
amrex::ParallelFor(xbx, [=, parms=parms] AMREX_GPU_DEVICE(int i, int j, int k) noexcept {
95-
const auto prob_hi = geomdata.ProbHi();
96-
const auto dx = geomdata.CellSize();
95+
const auto *const prob_hi = geomdata.ProbHi();
96+
const auto *const dx = geomdata.CellSize();
9797
const Real z = (k + 0.5) * dx[2];
9898
x_vel(i, j, k) = parms.u_0 * z / prob_hi[2];
9999
});
100100

101101
amrex::ParallelFor(ybx, [=, parms=parms] AMREX_GPU_DEVICE(int i, int j, int k) noexcept {
102-
const auto prob_hi = geomdata.ProbHi();
103-
const auto dx = geomdata.CellSize();
102+
const auto *const prob_hi = geomdata.ProbHi();
103+
const auto *const dx = geomdata.CellSize();
104104
const Real z = (k + 0.5) * dx[2];
105105
y_vel(i, j, k) = parms.v_0 * z / prob_hi[2];
106106
});

Source/Advection/Advection.H

+4-4
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ void AdvectionSrcForRhoAndTheta (const amrex::Box& bx, const amrex::Box& valid_b
3333
const int use_terrain);
3434

3535
void AdvectionSrcForScalars (const amrex::Box& bx,
36-
const int &start_comp, const int &num_comp,
37-
const amrex::Array4<const amrex::Real>& rho_u,
38-
const amrex::Array4<const amrex::Real>& rho_v,
39-
const amrex::Array4<const amrex::Real>& rho_w,
36+
const int &icomp, const int &ncomp,
37+
const amrex::Array4<const amrex::Real>& avg_xmom,
38+
const amrex::Array4<const amrex::Real>& avg_ymom,
39+
const amrex::Array4<const amrex::Real>& avg_zmom,
4040
const amrex::Array4<const amrex::Real>& cell_prim,
4141
const amrex::Array4<amrex::Real>& src,
4242
const amrex::Array4<const amrex::Real>& detJ,

Source/BoundaryConditions/ABLMost.cpp

+6-6
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ void ABLMost::update_fluxes(int lev, int max_iters)
99
m_ma.compute_averages(lev);
1010

1111
// Pointers to the computed averages
12-
const auto tm_ptr = m_ma.get_average(lev,2);
13-
const auto umm_ptr = m_ma.get_average(lev,3);
12+
const auto *const tm_ptr = m_ma.get_average(lev,2);
13+
const auto *const umm_ptr = m_ma.get_average(lev,3);
1414

1515
// GPU device captures
1616
amrex::Real d_kappa = kappa;
@@ -155,10 +155,10 @@ ABLMost::impose_most_bcs(const int lev,
155155
const auto eta_arr = eddyDiffs->array(mfi);
156156

157157
// Get average arrays
158-
const auto u_mean = m_ma.get_average(lev,0);
159-
const auto v_mean = m_ma.get_average(lev,1);
160-
const auto t_mean = m_ma.get_average(lev,2);
161-
const auto u_mag_mean = m_ma.get_average(lev,3);
158+
const auto *const u_mean = m_ma.get_average(lev,0);
159+
const auto *const v_mean = m_ma.get_average(lev,1);
160+
const auto *const t_mean = m_ma.get_average(lev,2);
161+
const auto *const u_mag_mean = m_ma.get_average(lev,3);
162162

163163
const auto um_arr = u_mean->array(mfi);
164164
const auto vm_arr = v_mean->array(mfi);

Source/BoundaryConditions/ERF_FillPatcher.H

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ class ERFFillPatcher
77
{
88
public:
99

10-
ERFFillPatcher (amrex::BoxArray const& fba, amrex::DistributionMapping const& fdm,
10+
ERFFillPatcher (amrex::BoxArray const& fba, amrex::DistributionMapping fdm,
1111
amrex::Geometry const& fgeom,
12-
amrex::BoxArray const& cba, amrex::DistributionMapping const& cdm,
12+
amrex::BoxArray cba, amrex::DistributionMapping cdm,
1313
amrex::Geometry const& cgeom,
1414
int nghost, int ncomp, amrex::InterpBase* interp);
1515

Source/BoundaryConditions/ERF_FillPatcher.cpp

+6-5
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
#include <ERF_FillPatcher.H>
2+
#include <utility>
23

34
using namespace amrex;
45

5-
ERFFillPatcher::ERFFillPatcher (BoxArray const& fba, DistributionMapping const& fdm,
6+
ERFFillPatcher::ERFFillPatcher (BoxArray const& fba, DistributionMapping fdm,
67
Geometry const& fgeom,
7-
BoxArray const& cba, DistributionMapping const& cdm,
8+
BoxArray cba, DistributionMapping cdm,
89
Geometry const& cgeom,
910
int nghost, int ncomp, InterpBase* interp)
1011
: m_fba(fba),
11-
m_cba(cba),
12-
m_fdm(fdm),
13-
m_cdm(cdm),
12+
m_cba(std::move(cba)),
13+
m_fdm(std::move(fdm)),
14+
m_cdm(std::move(cdm)),
1415
m_fgeom(fgeom),
1516
m_cgeom(cgeom),
1617
m_nghost(nghost),

Source/BoundaryConditions/ERF_PhysBCFunct.H

+2-2
Original file line numberDiff line numberDiff line change
@@ -89,10 +89,10 @@ public:
8989
amrex::Real time, int bccomp_u, int bccomp_v, int bccomp_w,
9090
int terrain_type);
9191

92-
void impose_lateral_cons_bcs (const amrex::Array4<amrex::Real>& mf,
92+
void impose_lateral_cons_bcs (const amrex::Array4<amrex::Real>& dest_arr,
9393
const amrex::Box& bx, const amrex::Box& domain,
9494
int icomp, int ncomp, amrex::Real time, int bccomp);
95-
void impose_vertical_cons_bcs (const amrex::Array4<amrex::Real>& mf,
95+
void impose_vertical_cons_bcs (const amrex::Array4<amrex::Real>& dest_arr,
9696
const amrex::Box& bx, const amrex::Box& domain,
9797
const amrex::Array4<amrex::Real const>& z_nd,
9898
const amrex::GpuArray<amrex::Real,AMREX_SPACEDIM> dxInv,

Source/BoundaryConditions/MOSTAverage.H

+21-4
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@
1111

1212
class MOSTAverage {
1313
public:
14-
explicit MOSTAverage(const amrex::Vector<amrex::Geometry>& geom,
14+
explicit MOSTAverage(amrex::Vector<amrex::Geometry> geom,
1515
amrex::Vector<amrex::Vector<amrex::MultiFab>>& vars_old,
1616
amrex::Vector<std::unique_ptr<amrex::MultiFab>>& Theta_prim,
1717
amrex::Vector<std::unique_ptr<amrex::MultiFab>>& z_phys_nd);
18-
MOSTAverage() = default;
18+
// MOSTAverage() = default;
1919
~MOSTAverage()
2020
{
2121
for (int lev(0); lev<m_maxlev; ++lev){
@@ -31,6 +31,23 @@ public:
3131
}
3232
}
3333

34+
// Declare a default move constructor so we ensure the destructor is
35+
// not called when we return an object of this class by value
36+
// MOSTAverage(MOSTAverage&&) noexcept = default;
37+
38+
// Declare a default move assignment operator
39+
MOSTAverage& operator=(MOSTAverage&& other) noexcept = default;
40+
41+
// Delete the copy constructor and copy assignment operators because
42+
// the integrator allocates internal memory that is best initialized
43+
// from scratch when needed instead of making a copy.
44+
45+
// Delete the copy constructor
46+
MOSTAverage(const MOSTAverage& other) = delete;
47+
//
48+
// Delete the copy assignment operator
49+
MOSTAverage& operator=(const MOSTAverage& other) = delete;
50+
3451
// Reset the pointers to field MFs
3552
void update_field_ptrs(int lev,
3653
amrex::Vector<amrex::Vector<amrex::MultiFab>>& vars_old,
@@ -80,10 +97,10 @@ public:
8097
void write_averages(int lev);
8198

8299
// Get pointer to the 2D mf of averages
83-
const amrex::MultiFab* get_average(int lev, int comp) const { return m_averages[lev][comp]; }
100+
[[nodiscard]] const amrex::MultiFab* get_average(int lev, int comp) const { return m_averages[lev][comp]; }
84101

85102
// Get z_ref (may be computed from specified k_indx)
86-
amrex::Real get_zref() { return m_zref; }
103+
[[nodiscard]] amrex::Real get_zref() const { return m_zref; }
87104

88105
// Interpolate fields to a specified position (w/ terrain)
89106
AMREX_GPU_HOST_DEVICE AMREX_INLINE

Source/BoundaryConditions/MOSTAverage.cpp

+8-7
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
#include <MOSTAverage.H>
2+
#include <utility>
23

34
// Constructor
4-
MOSTAverage::MOSTAverage (const amrex::Vector<amrex::Geometry>& geom,
5+
MOSTAverage::MOSTAverage (amrex::Vector<amrex::Geometry> geom,
56
amrex::Vector<amrex::Vector<amrex::MultiFab>>& vars_old,
67
amrex::Vector<std::unique_ptr<amrex::MultiFab>>& Theta_prim,
78
amrex::Vector<std::unique_ptr<amrex::MultiFab>>& z_phys_nd)
8-
: m_geom(geom)
9+
: m_geom(std::move(geom))
910
{
1011
// Get basic info
1112
//--------------------------------------------------------
@@ -46,7 +47,7 @@ MOSTAverage::MOSTAverage (const amrex::Vector<amrex::Geometry>& geom,
4647
auto& mf = vars_old[lev][Vars::xvel];
4748
amrex::MultiFab* mfp = &vars_old[lev][Vars::xvel];
4849
// Create a 2D ba, dm, & ghost cells
49-
amrex::BoxArray ba = mf.boxArray();
50+
const amrex::BoxArray& ba = mf.boxArray();
5051
amrex::BoxList bl2d = ba.boxList();
5152
for (auto& b : bl2d) b.setRange(2,0);
5253
amrex::BoxArray ba2d(std::move(bl2d));
@@ -62,7 +63,7 @@ MOSTAverage::MOSTAverage (const amrex::Vector<amrex::Geometry>& geom,
6263
auto& mf = vars_old[lev][Vars::yvel];
6364
amrex::MultiFab* mfp = &vars_old[lev][Vars::yvel];
6465
// Create a 2D ba, dm, & ghost cells
65-
amrex::BoxArray ba = mf.boxArray();
66+
const amrex::BoxArray& ba = mf.boxArray();
6667
amrex::BoxList bl2d = ba.boxList();
6768
for (auto& b : bl2d) b.setRange(2,0);
6869
amrex::BoxArray ba2d(std::move(bl2d));
@@ -78,7 +79,7 @@ MOSTAverage::MOSTAverage (const amrex::Vector<amrex::Geometry>& geom,
7879
auto& mf = *Theta_prim[lev];
7980
amrex::MultiFab* mfp = Theta_prim[lev].get();
8081
// Create a 2D ba, dm, & ghost cells
81-
amrex::BoxArray ba = mf.boxArray();
82+
const amrex::BoxArray& ba = mf.boxArray();
8283
amrex::BoxList bl2d = ba.boxList();
8384
for (auto& b : bl2d) b.setRange(2,0);
8485
amrex::BoxArray ba2d(std::move(bl2d));
@@ -475,7 +476,7 @@ MOSTAverage::compute_plane_averages(int lev)
475476
// Peel back the level
476477
auto& fields = m_fields[lev];
477478
auto& averages = m_averages[lev];
478-
auto& geom = m_geom[lev];
479+
const auto & geom = m_geom[lev];
479480

480481
auto& z_phys = m_z_phys_nd[lev];
481482
auto& x_pos = m_x_pos[lev];
@@ -640,7 +641,7 @@ MOSTAverage::compute_region_averages(int lev)
640641
// Peel back the level
641642
auto& fields = m_fields[lev];
642643
auto& averages = m_averages[lev];
643-
auto& geom = m_geom[lev];
644+
const auto & geom = m_geom[lev];
644645

645646
auto& z_phys = m_z_phys_nd[lev];
646647
auto& x_pos = m_x_pos[lev];

Source/BoundaryConditions/TimeInterpolatedData.H

+19-2
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,36 @@
66
#include <AMReX_REAL.H>
77

88
struct TimeInterpolatedData {
9-
TimeInterpolatedData() {}
9+
TimeInterpolatedData() = default;
1010

1111
TimeInterpolatedData(amrex::Real time) : m_time(time) {}
1212

1313
~TimeInterpolatedData() {
1414
clear();
1515
}
1616

17+
// Declare a default move constructor so we ensure the destructor is
18+
// not called when we return an object of this class by value
19+
TimeInterpolatedData(TimeInterpolatedData&&) noexcept = default;
20+
21+
// Declare a default move assignment operator
22+
TimeInterpolatedData& operator=(TimeInterpolatedData&& other) noexcept = default;
23+
24+
// Delete the copy constructor and copy assignment operators because
25+
// the integrator allocates internal memory that is best initialized
26+
// from scratch when needed instead of making a copy.
27+
28+
// Delete the copy constructor
29+
TimeInterpolatedData(const TimeInterpolatedData& other) = delete;
30+
//
31+
// Delete the copy assignment operator
32+
TimeInterpolatedData& operator=(const TimeInterpolatedData& other) = delete;
33+
1734
void set_time(amrex::Real time) {
1835
m_time = time;
1936
}
2037

21-
amrex::Real get_time() { return m_time; }
38+
[[nodiscard]] amrex::Real get_time() const { return m_time; }
2239

2340
void add_var(amrex::MultiFab* var_data, int own_data) {
2441
m_data.push_back(var_data);

Source/Diffusion/Diffusion.H

+6-6
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ void DiffusionSrcForMom_N (const amrex::Box& bxx, const amrex::Box& bxy, const a
1919
const amrex::Array4<const amrex::Real>& tau12 ,
2020
const amrex::Array4<const amrex::Real>& tau13 ,
2121
const amrex::Array4<const amrex::Real>& tau23 ,
22-
const amrex::Array4<const amrex::Real>& cell_data,
22+
const amrex::Array4<const amrex::Real>& cons,
2323
const SolverChoice& solverChoice,
24-
const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>& cellSizeInv,
24+
const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>& dxInv,
2525
const amrex::Array4<const amrex::Real>& mf_m ,
2626
const amrex::Array4<const amrex::Real>& mf_u ,
2727
const amrex::Array4<const amrex::Real>& mf_v );
@@ -35,9 +35,9 @@ void DiffusionSrcForMom_T (const amrex::Box& bxx, const amrex::Box& bxy, const a
3535
const amrex::Array4<const amrex::Real>& tau12 , const amrex::Array4<const amrex::Real>& tau13,
3636
const amrex::Array4<const amrex::Real>& tau21 , const amrex::Array4<const amrex::Real>& tau23,
3737
const amrex::Array4<const amrex::Real>& tau31 , const amrex::Array4<const amrex::Real>& tau32,
38-
const amrex::Array4<const amrex::Real>& cell_data, const amrex::Array4<const amrex::Real>& detJ,
38+
const amrex::Array4<const amrex::Real>& cons, const amrex::Array4<const amrex::Real>& detJ,
3939
const SolverChoice& solverChoice ,
40-
const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>& cellSizeInv,
40+
const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>& dxInv,
4141
const amrex::Array4<const amrex::Real>& mf_m ,
4242
const amrex::Array4<const amrex::Real>& mf_u ,
4343
const amrex::Array4<const amrex::Real>& mf_v );
@@ -140,7 +140,7 @@ void ComputeStrain_N(amrex::Box bxcc, amrex::Box tbxxy, amrex::Box tbxxz, amrex:
140140
const amrex::Array4<const amrex::Real>& w,
141141
amrex::Array4<amrex::Real>& tau11, amrex::Array4<amrex::Real>& tau22, amrex::Array4<amrex::Real>& tau33,
142142
amrex::Array4<amrex::Real>& tau12, amrex::Array4<amrex::Real>& tau13, amrex::Array4<amrex::Real>& tau23,
143-
const amrex::BCRec* bc_ptr, const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>& cellSizeInv,
143+
const amrex::BCRec* bc_ptr, const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>& dxInv,
144144
const amrex::Array4<const amrex::Real>& mf_m, const amrex::Array4<const amrex::Real>& mf_u, const amrex::Array4<const amrex::Real>& mf_v);
145145

146146
void ComputeStrain_T(amrex::Box bxcc, amrex::Box tbxxy, amrex::Box tbxxz, amrex::Box tbxyz,
@@ -152,6 +152,6 @@ void ComputeStrain_T(amrex::Box bxcc, amrex::Box tbxxy, amrex::Box tbxxz, amrex:
152152
amrex::Array4<amrex::Real>& tau21, amrex::Array4<amrex::Real>& tau23,
153153
amrex::Array4<amrex::Real>& tau31, amrex::Array4<amrex::Real>& tau32,
154154
const amrex::Array4<const amrex::Real>& z_nd ,
155-
const amrex::BCRec* bc_ptr, const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>& cellSizeInv,
155+
const amrex::BCRec* bc_ptr, const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>& dxInv,
156156
const amrex::Array4<const amrex::Real>& mf_m, const amrex::Array4<const amrex::Real>& mf_u, const amrex::Array4<const amrex::Real>& mf_v);
157157
#endif

0 commit comments

Comments
 (0)