Skip to content
Snippets Groups Projects

Feature/free boundary condition

Merged Stéphane Del Pino requested to merge feature/free-boundary-condition into develop
1 file
+ 5
8
Compare changes
  • Side-by-side
  • Inline
@@ -55,8 +55,7 @@ class SubItemValuePerItem
public:
template <typename IndexType>
PUGS_INLINE const DataType&
operator[](IndexType i) const noexcept(NO_ASSERT)
PUGS_INLINE const DataType& operator[](IndexType i) const noexcept(NO_ASSERT)
{
static_assert(std::is_integral_v<IndexType>, "SubView is indexed by integral values");
Assert(i < m_size);
@@ -64,8 +63,7 @@ class SubItemValuePerItem
}
template <typename IndexType>
PUGS_FORCEINLINE DataType&
operator[](IndexType i) noexcept(NO_ASSERT)
PUGS_FORCEINLINE DataType& operator[](IndexType i) noexcept(NO_ASSERT)
{
static_assert(std::is_integral_v<IndexType>, "SubView is indexed by integral values");
Assert(i < m_size);
@@ -104,10 +102,10 @@ class SubItemValuePerItem
PUGS_FORCEINLINE DataType&
operator()(IndexType item_id, SubIndexType i) const noexcept(NO_ASSERT)
{
static_assert(std::is_same_v<IndexType, ItemId>, "first index must be an ItemId");
static_assert(std::is_same_v<IndexType, ItemId>, "first index must be of the correct ItemId type");
static_assert(std::is_integral_v<SubIndexType>, "second index must be an integral type");
Assert(this->isBuilt());
Assert(i < m_host_row_map(size_t{item_id} + 1) - m_host_row_map(size_t{item_id}));
Assert(i + m_host_row_map(size_t{item_id}) < m_host_row_map(size_t{item_id} + 1));
return m_values[m_host_row_map(size_t{item_id}) + i];
}
@@ -122,8 +120,7 @@ class SubItemValuePerItem
// Following Kokkos logic, these classes are view and const view does allow
// changes in data
template <typename ArrayIndexType>
DataType&
operator[](const ArrayIndexType& i) const noexcept(NO_ASSERT)
DataType& operator[](const ArrayIndexType& i) const noexcept(NO_ASSERT)
{
static_assert(std::is_integral_v<ArrayIndexType>, "index must be an integral type");
Assert(this->isBuilt());
Loading