Skip to content

Commit deda9e3

Browse files
committed
GetNode for non-contiguous edges.
1 parent c523946 commit deda9e3

2 files changed

Lines changed: 6 additions & 11 deletions

File tree

Common/include/geometry/dual_grid/CEdge.hpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,11 +70,15 @@ class CEdge {
7070
inline unsigned long GetNode(unsigned long iEdge, unsigned long iNode) const { return Nodes(iEdge,iNode); }
7171

7272
/*!
73-
* \brief SIMD version of GetNode, iNode returned for multiple contiguous iEdges
73+
* \brief SIMD version of GetNode, iNode returned for multiple iEdges.
7474
*/
7575
template<class T, size_t N>
7676
FORCEINLINE simd::Array<T,N> GetNode(simd::Array<T,N> iEdge, unsigned long iNode) const {
77-
return simd::Array<T,N>(&Nodes(iEdge[0],iNode));
77+
simd::Array<T,N> result;
78+
for (size_t j = 0; j < N; ++j) {
79+
result[j] = Nodes(iEdge[j], iNode);
80+
}
81+
return result;
7882
}
7983

8084
/*!

Common/include/parallelization/vectorization.hpp

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -57,17 +57,8 @@ constexpr size_t PREFERRED_SIZE = 8;
5757
template<class T>
5858
constexpr size_t preferredLen() { return PREFERRED_SIZE / sizeof(T); }
5959

60-
#if !defined(CODI_REVERSE_TYPE) && !defined(CODI_FORWARD_TYPE)
6160
template<>
6261
constexpr size_t preferredLen<su2double>() { return PREFERRED_SIZE / sizeof(passivedouble); }
63-
#else
64-
/* enforce one element per SIMD array since (1) arrays of AD types cannot be auto vectorized and (2) they might violate
65-
* exclusive read declarations if masking is not applied throughout */
66-
template<>
67-
constexpr size_t preferredLen<su2double>() { return 1; }
68-
#endif
69-
70-
7162

7263
/*!
7364
* \class Array

0 commit comments

Comments
 (0)