Skip to content

Commit

Permalink
Rename is_field_v -> is_vector_field_v
Browse files Browse the repository at this point in the history
Fixes #381

See merge request gysela-developpers/gyselalibxx!737

--------------------------------------------
  • Loading branch information
EmilyBourne committed Oct 22, 2024
1 parent 0c10faa commit 441ff9b
Show file tree
Hide file tree
Showing 8 changed files with 21 additions and 20 deletions.
4 changes: 2 additions & 2 deletions src/data_types/vector_field.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ template <
class NDTag,
class LayoutStridedPolicy,
class MemorySpace>
inline constexpr bool enable_field<
inline constexpr bool enable_vector_field<
VectorField<ElementType, IdxRangeType, NDTag, LayoutStridedPolicy, MemorySpace>> = true;

template <
Expand All @@ -38,7 +38,7 @@ template <
class NDTag,
class LayoutStridedPolicy,
class MemorySpace>
inline constexpr bool enable_borrowed_field<
inline constexpr bool enable_borrowed_vector_field<
VectorField<ElementType, IdxRangeType, NDTag, LayoutStridedPolicy, MemorySpace>> = true;


Expand Down
15 changes: 8 additions & 7 deletions src/data_types/vector_field_common.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,26 +9,27 @@ template <class FieldType, class NDTypeSeq>
class VectorFieldCommon;

template <class T>
inline constexpr bool enable_field = false;
inline constexpr bool enable_vector_field = false;

template <class T>
inline constexpr bool enable_borrowed_field = false;
inline constexpr bool enable_borrowed_vector_field = false;

template <class T>
inline constexpr bool is_field_v = enable_field<std::remove_const_t<std::remove_reference_t<T>>>;
inline constexpr bool is_vector_field_v
= enable_vector_field<std::remove_const_t<std::remove_reference_t<T>>>;

template <class T>
inline constexpr bool is_borrowed_field_v
= is_field_v<
T> && (std::is_lvalue_reference_v<T> || enable_borrowed_field<std::remove_cv_t<std::remove_reference_t<T>>>);
inline constexpr bool is_borrowed_vector_field_v
= is_vector_field_v<
T> && (std::is_lvalue_reference_v<T> || enable_borrowed_vector_field<std::remove_cv_t<std::remove_reference_t<T>>>);

namespace ddcHelper {

template <
class FieldDst,
class FieldSrc,
std::enable_if_t<
is_borrowed_field_v<FieldDst> && is_borrowed_field_v<FieldSrc>,
is_borrowed_vector_field_v<FieldDst> && is_borrowed_vector_field_v<FieldSrc>,
bool> = true>
auto deepcopy(FieldDst&& dst, FieldSrc&& src)
{
Expand Down
2 changes: 1 addition & 1 deletion src/data_types/vector_field_mem.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ class VectorFieldMem;

template <class ElementType, class IdxRangeType, class DimSeq, class MemSpace>
inline constexpr bool
enable_field<VectorFieldMem<ElementType, IdxRangeType, DimSeq, MemSpace>> = true;
enable_vector_field<VectorFieldMem<ElementType, IdxRangeType, DimSeq, MemSpace>> = true;

template <class ElementType, class IdxRangeType, class DimSeq, class Allocator>
inline constexpr bool enable_data_access_methods<
Expand Down
4 changes: 2 additions & 2 deletions src/timestepper/crank_nicolson.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ class CrankNicolson : public ITimeStepper<FieldMem, DerivFieldMem, ExecSpace>
dy_calculator(m_k_new, y);

// Calculation of step
if constexpr (is_field_v<DerivFieldMem>) {
if constexpr (is_vector_field_v<DerivFieldMem>) {
ddc::parallel_for_each(
exec_space,
get_idx_range(m_k_total),
Expand Down Expand Up @@ -210,7 +210,7 @@ class CrankNicolson : public ITimeStepper<FieldMem, DerivFieldMem, ExecSpace>
private:
void copy(ValField copy_to, ValConstField copy_from) const
{
if constexpr (is_field_v<ValField>) {
if constexpr (is_vector_field_v<ValField>) {
ddcHelper::deepcopy(copy_to, copy_from);
} else {
ddc::parallel_deepcopy(copy_to, copy_from);
Expand Down
4 changes: 2 additions & 2 deletions src/timestepper/itimestepper.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ template <
class ExecSpace = Kokkos::DefaultExecutionSpace>
class ITimeStepper
{
static_assert(ddc::is_chunk_v<FieldMem> or is_field_v<FieldMem>);
static_assert(ddc::is_chunk_v<DerivFieldMem> or is_field_v<DerivFieldMem>);
static_assert(ddc::is_chunk_v<FieldMem> or is_vector_field_v<FieldMem>);
static_assert(ddc::is_chunk_v<DerivFieldMem> or is_vector_field_v<DerivFieldMem>);

static_assert(std::is_same_v<
typename FieldMem::discrete_domain_type,
Expand Down
2 changes: 1 addition & 1 deletion src/timestepper/rk2.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ class RK2 : public ITimeStepper<FieldMem, DerivFieldMem, ExecSpace>
ValField y_prime(y_prime_alloc);

// Save initial conditions
if constexpr (is_field_v<FieldMem>) {
if constexpr (is_vector_field_v<FieldMem>) {
ddcHelper::deepcopy(y_prime, y);
} else {
ddc::parallel_deepcopy(y_prime, y);
Expand Down
6 changes: 3 additions & 3 deletions src/timestepper/rk3.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ class RK3 : public ITimeStepper<FieldMem, DerivFieldMem, ExecSpace>

// --------- Calculate k3 ------------
// Calculation of step
if constexpr (is_field_v<DerivFieldMem>) {
if constexpr (is_vector_field_v<DerivFieldMem>) {
ddc::parallel_for_each(
exec_space,
get_idx_range(k_total),
Expand Down Expand Up @@ -148,7 +148,7 @@ class RK3 : public ITimeStepper<FieldMem, DerivFieldMem, ExecSpace>

// --------- Update y ------------
// Calculation of step
if constexpr (is_field_v<DerivFieldMem>) {
if constexpr (is_vector_field_v<DerivFieldMem>) {
ddc::parallel_for_each(
exec_space,
get_idx_range(k_total),
Expand All @@ -173,7 +173,7 @@ class RK3 : public ITimeStepper<FieldMem, DerivFieldMem, ExecSpace>
private:
void copy(ValField copy_to, ValConstField copy_from) const
{
if constexpr (is_field_v<ValField>) {
if constexpr (is_vector_field_v<ValField>) {
ddcHelper::deepcopy(copy_to, copy_from);
} else {
ddc::parallel_deepcopy(copy_to, copy_from);
Expand Down
4 changes: 2 additions & 2 deletions src/timestepper/rk4.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ class RK4 : public ITimeStepper<FieldMem, DerivFieldMem, ExecSpace>

// --------- Update y ------------
// Calculation of step
if constexpr (is_field_v<DerivFieldMem>) {
if constexpr (is_vector_field_v<DerivFieldMem>) {
ddc::parallel_for_each(
exec_space,
get_idx_range(k_total),
Expand All @@ -166,7 +166,7 @@ class RK4 : public ITimeStepper<FieldMem, DerivFieldMem, ExecSpace>
private:
void copy(ValField copy_to, ValConstField copy_from) const
{
if constexpr (is_field_v<ValField>) {
if constexpr (is_vector_field_v<ValField>) {
ddcHelper::deepcopy(copy_to, copy_from);
} else {
ddc::parallel_deepcopy(copy_to, copy_from);
Expand Down

0 comments on commit 441ff9b

Please sign in to comment.