Skip to content

Commit

Permalink
switch some more min(max(..)) to std::clamp (#1627)
Browse files Browse the repository at this point in the history
  • Loading branch information
zingale authored Jul 21, 2024
1 parent 66beb70 commit a85dc0d
Show file tree
Hide file tree
Showing 7 changed files with 11 additions and 12 deletions.
10 changes: 5 additions & 5 deletions EOS/helmholtz/actual_eos.H
Original file line number Diff line number Diff line change
Expand Up @@ -156,9 +156,9 @@ void apply_electrons (T& state)

// hash locate this temperature and density
int jat = int((std::log10(state.T) - tlo) * tstpi) + 1;
jat = amrex::max(1, amrex::min(jat, jmax-1)) - 1;
jat = std::clamp(jat, 1, jmax-1) - 1;
int iat = int((std::log10(din) - dlo) * dstpi) + 1;
iat = amrex::max(1, amrex::min(iat, imax-1)) - 1;
iat = std::clamp(iat, 1, imax-1) - 1;

amrex::Real fi[36];

Expand Down Expand Up @@ -1005,7 +1005,7 @@ void single_iter_update (T& state, int var, int dvar,
amrex::Real xnew = x - (v - v_want) / dvdx;

// Don't let the temperature/density change by more than a factor of two
xnew = amrex::max(0.5_rt * x, amrex::min(xnew, 2.0_rt * x));
xnew = std::clamp(xnew, 0.5_rt * x, 2.0_rt * x);

// Don't let us freeze/evacuate
xnew = amrex::max(smallx, xnew);
Expand Down Expand Up @@ -1120,8 +1120,8 @@ void double_iter_update (T& state, int var1, int var2,

// Don't let the temperature or density change by more
// than a factor of two
tnew = amrex::max(0.5e0_rt * told, amrex::min(tnew, 2.0e0_rt * told));
rnew = amrex::max(0.5e0_rt * rold, amrex::min(rnew, 2.0e0_rt * rold));
tnew = std::clamp(tnew, 0.5e0_rt * told, 2.0e0_rt * told);
rnew = std::clamp(rnew, 0.5e0_rt * rold, 2.0e0_rt * rold);

// Don't let us freeze or evacuate
tnew = amrex::max(EOSData::mintemp, tnew);
Expand Down
2 changes: 1 addition & 1 deletion integration/BackwardEuler/be_integrator.H
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,7 @@ int be_integrator (BurnT& state, BeT& be)
// backward-Euler has a local truncation error of dt**2

amrex::Real dt_new = dt_sub * std::pow(1.0_rt / rel_error, 0.5_rt);
dt_sub = amrex::min(amrex::max(dt_new, dt_sub / 2.0), 2.0 * dt_sub);
dt_sub = std::clamp(dt_new, dt_sub / 2.0, 2.0 * dt_sub);

} else {

Expand Down
2 changes: 1 addition & 1 deletion integration/ForwardEuler/actual_integrator.H
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ void clean_state (const amrex::Real time, IntT& int_state, BurnT& state)

// Ensure that the temperature always stays within reasonable limits.

state.T = amrex::min(MAX_TEMP, amrex::max(state.T, EOSData::mintemp));
state.T = std::clamp(state.T, EOSData::mintemp, MAX_TEMP);

}

Expand Down
2 changes: 1 addition & 1 deletion integration/RKC/rkc.H
Original file line number Diff line number Diff line change
Expand Up @@ -308,7 +308,7 @@ int rkclow (BurnT& state, RkcT& rstate)
}
}
absh = std::max(0.1_rt, fac) * absh;
absh = std::max(hmin, std::min(rstate.hmax, absh));
absh = std::clamp(absh, hmin, rstate.hmax);
errold = err;
hold = h;
h = tdir * absh;
Expand Down
3 changes: 1 addition & 2 deletions integration/integrator_type_sdc.H
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,7 @@ void clean_state(const amrex::Real time, BurnT& state, T& int_state)
if (do_species_clip) {
for (int n = 1; n <= NumSpec; ++n) {
// we use 1-based indexing, so we need to offset SFS
int_state.y(SFS+n) = amrex::max(amrex::min(int_state.y(SFS+n), state.rho),
state.rho * SMALL_X_SAFE);
int_state.y(SFS+n) = std::clamp(int_state.y(SFS+n), state.rho * SMALL_X_SAFE, state.rho);
}
}

Expand Down
2 changes: 1 addition & 1 deletion integration/integrator_type_strang.H
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ void clean_state (const amrex::Real time, BurnT& state, I& int_state)

if (do_species_clip) {
for (int n = 1; n <= NumSpec; ++n) {
int_state.y(n) = amrex::max(amrex::min(int_state.y(n), 1.0_rt), SMALL_X_SAFE);
int_state.y(n) = std::clamp(int_state.y(n), SMALL_X_SAFE, 1.0_rt);
}
}

Expand Down
2 changes: 1 addition & 1 deletion integration/utils/initial_timestep.H
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ amrex::Real initial_react_dt (BurnT& burn_state, IntT& int_state,
// Save the final timestep, with a bias factor.

amrex::Real dt = h / 2.0_rt;
dt = amrex::min(amrex::max(h, hL), hU);
dt = std::clamp(h, hL, hU);

dt = amrex::min(dt, ode_max_dt);

Expand Down

0 comments on commit a85dc0d

Please sign in to comment.