7#ifndef CPU_1D_COLUMN_INTERP_H
8#define CPU_1D_COLUMN_INTERP_H
23 for (
int k = 0;
k < n_cblocks *
WID + 1;
k++){
25 fv_l[
k] = 1.0/60.0 * (values[
k - 3 +
WID] - 8.0 * values[
k - 2 +
WID] + 37.0 * values[
k - 1 +
WID] +
26 37.0 * values[
k +
WID] - 8.0 * values[
k + 1 +
WID] + values[
k + 2 +
WID]);
35 for (
int k = 0;
k < n_cblocks *
WID;
k++){
37 Real extrema_check = ((fv_r[
k] - values[
k +
WID]) * (values[
k +
WID] - fv_l[
k]));
38 fv_l[
k] = extrema_check < 0 ? values[
k +
WID]: fv_l[
k];
39 fv_r[
k] = extrema_check < 0 ? values[
k +
WID]: fv_r[
k];
46 for (
int k = 0;
k < n_cblocks *
WID;
k++){
48 (values[
k - 1 +
WID] - fv_l[
k]) * (fv_l[
k] - values[
k +
WID]) < 0 ||
49 (values[
k + 1 +
WID] - fv_r[
k]) * (fv_r[
k] - values[
k +
WID]) < 0;
51 Real slope_abs,slope_sign;
54 fv_l[
k] = (values[
k -1 +
WID] - fv_l[
k]) * (fv_l[
k] - values[
k +
WID]) < 0 ?
55 values[
k +
WID] - slope_sign *
min( (
Real)0.5 * slope_abs,
abs(fv_l[
k] - values[
k +
WID])) :
57 fv_r[
k] = (values[
k + 1 +
WID] - fv_r[
k]) * (fv_r[
k] - values[
k +
WID]) < 0 ?
58 values[
k +
WID] + slope_sign *
min( (
Real)0.5 * slope_abs,
abs(fv_r[
k] - values[
k +
WID])) :
73 for (uint
k = 0;
k < n_cblocks *
WID;
k++){
75 a[
k][0] = values[
k +
WID] - d_cv * 0.5;
97 for (uint
k = 0;
k < n_cblocks *
WID;
k++){
102 m_face = (p_face - m_face) * (values[
k +
WID] - 0.5 * (m_face + p_face)) > (p_face - m_face)*(p_face - m_face) / 6.0 ?
103 3 * values[
k +
WID] - 2 * p_face : m_face;
104 p_face = -(p_face - m_face) * (p_face - m_face) / 6.0 > (p_face - m_face) * (values[
k +
WID] - 0.5 * (m_face + p_face)) ?
105 3 * values[
k +
WID] - 2 * m_face : p_face;
111 a[
k][1] = 3.0 * values[
k +
WID] - 2.0 * m_face - p_face;
112 a[
k][2] = (m_face + p_face - 2.0 * values[
k +
WID]);
#define MAX_BLOCKS_PER_DIM
void compute_h6_face_values(Real *values, uint n_cblocks, Real *fv_l, Real *fv_r)
void compute_plm_coeff_explicit_column(Real *values, uint n_cblocks, Real a[][RECONSTRUCTION_ORDER+1])
void compute_ppm_coeff_explicit_column(Real *values, uint n_cblocks, Real a[][RECONSTRUCTION_ORDER+1])
void filter_boundedness(Real *values, uint n_cblocks, Real *fv_l, Real *fv_r)
void filter_extrema(Real *values, uint n_cblocks, Real *fv_l, Real *fv_r)
Real slope_limiter(const Real &l, const Real &m, const Real &r)
static ARCH_HOSTDEV VecSimple< T > min(VecSimple< T > const &l, VecSimple< T > const &r)
static ARCH_HOSTDEV VecSimple< T > abs(const VecSimple< T > &l)