// Use the read-only data cache.
values[idx] = __ldg(&src[src_idx]);
+ __syncthreads();
+
internal::resolve_hanging_nodes<dim, fe_degree, false>(constraint_mask,
values);
-
- __syncthreads();
}
((direction == 1) && ((constraint_mask & internal::constr_type_x) ?
(x_idx == 0) :
(x_idx == fe_degree)));
- __syncthreads();
+
if (constrained_face && constrained_dof)
{
const bool type = constraint_mask & this_type;
// The synchronization is done for all the threads in one block with
// each block being assigned to one element.
__syncthreads();
-
if (constrained_face && constrained_dof)
values[index2<fe_degree + 1>(x_idx, y_idx)] = t;
+
+ __syncthreads();
}
((constraint_mask & face2) && on_face2) ||
((constraint_mask & edge) && on_face1 && on_face2));
- __syncthreads();
if (constrained_face && constrained_dof)
{
const bool type = constraint_mask & this_type;
}
}
+ // The synchronization is done for all the threads in one block with
+ // each block being assigned to one element.
__syncthreads();
if (constrained_face && constrained_dof)
values[index3<fe_degree + 1>(x_idx, y_idx, z_idx)] = t;
+
+ __syncthreads();
}
} // namespace internal