Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 14 additions & 6 deletions pgens/accretion/pgen.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@
#include "global.h"

#include "arch/kokkos_aliases.h"
#include "arch/traits.h"
#include "utils/numeric.h"

#include "archetypes/energy_dist.h"
#include "archetypes/particle_injector.h"
#include "archetypes/problem_generator.h"
#include "archetypes/spatial_dist.h"
#include "archetypes/traits.h"
#include "framework/domain/metadomain.h"

#include "kernels/particle_moments.hpp"
Expand Down Expand Up @@ -43,7 +43,8 @@ namespace user {
TWO * metric.spin() * g_00);
}

Inline auto bx1(const coord_t<D>& x_Ph) const -> real_t { // at ( i , j + HALF )
Inline auto bx1(const coord_t<D>& x_Ph) const
-> real_t { // at ( i , j + HALF )
coord_t<D> xi { ZERO }, x0m { ZERO }, x0p { ZERO };
metric.template convert<Crd::Ph, Crd::Cd>(x_Ph, xi);

Expand All @@ -61,7 +62,8 @@ namespace user {
}
}

Inline auto bx2(const coord_t<D>& x_Ph) const -> real_t { // at ( i + HALF , j )
Inline auto bx2(const coord_t<D>& x_Ph) const
-> real_t { // at ( i + HALF , j )
coord_t<D> xi { ZERO }, x0m { ZERO }, x0p { ZERO };
metric.template convert<Crd::Ph, Crd::Cd>(x_Ph, xi);

Expand Down Expand Up @@ -197,11 +199,17 @@ namespace user {
template <SimEngine::type S, class M>
struct PGen : public arch::ProblemGenerator<S, M> {
// compatibility traits for the problem generator
static constexpr auto engines { traits::compatible_with<SimEngine::GRPIC>::value };
static constexpr auto engines {
arch::traits::pgen::compatible_with<SimEngine::GRPIC>::value
};
static constexpr auto metrics {
traits::compatible_with<Metric::Kerr_Schild, Metric::QKerr_Schild, Metric::Kerr_Schild_0>::value
arch::traits::pgen::compatible_with<Metric::Kerr_Schild,
Metric::QKerr_Schild,
Metric::Kerr_Schild_0>::value
};
static constexpr auto dimensions {
arch::traits::pgen::compatible_with<Dim::_2D>::value
};
static constexpr auto dimensions { traits::compatible_with<Dim::_2D>::value };

// for easy access to variables in the child class
using arch::ProblemGenerator<S, M>::D;
Expand Down
12 changes: 8 additions & 4 deletions pgens/magnetosphere/pgen.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@
#include "global.h"

#include "arch/kokkos_aliases.h"
#include "arch/traits.h"
#include "utils/numeric.h"

#include "archetypes/problem_generator.h"
#include "archetypes/traits.h"
#include "framework/domain/metadomain.h"

#include <string>
Expand Down Expand Up @@ -87,11 +87,15 @@ namespace user {
template <SimEngine::type S, class M>
struct PGen : public arch::ProblemGenerator<S, M> {
// compatibility traits for the problem generator
static constexpr auto engines { traits::compatible_with<SimEngine::SRPIC>::value };
static constexpr auto engines {
arch::traits::pgen::compatible_with<SimEngine::SRPIC>::value
};
static constexpr auto metrics {
traits::compatible_with<Metric::Spherical, Metric::QSpherical>::value
arch::traits::pgen::compatible_with<Metric::Spherical, Metric::QSpherical>::value
};
static constexpr auto dimensions {
arch::traits::pgen::compatible_with<Dim::_2D>::value
};
static constexpr auto dimensions { traits::compatible_with<Dim::_2D>::value };

// for easy access to variables in the child class
using arch::ProblemGenerator<S, M>::D;
Expand Down
18 changes: 9 additions & 9 deletions pgens/pgen.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
#include "enums.h"
#include "global.h"

#include "arch/traits.h"
#include "utils/formatting.h"

#include "archetypes/problem_generator.h"
#include "archetypes/traits.h"
#include "framework/domain/metadomain.h"

#include <plog/Log.h>
Expand All @@ -19,18 +19,18 @@ namespace user {
struct PGen : public arch::ProblemGenerator<S, M> {
// compatibility traits for the problem generator
static constexpr auto engines {
traits::compatible_with<SimEngine::SRPIC, SimEngine::GRPIC>::value
arch::traits::pgen::compatible_with<SimEngine::SRPIC, SimEngine::GRPIC>::value
};
static constexpr auto metrics {
traits::compatible_with<Metric::Minkowski,
Metric::Spherical,
Metric::QSpherical,
Metric::Kerr_Schild,
Metric::QKerr_Schild,
Metric::Kerr_Schild_0>::value
arch::traits::pgen::compatible_with<Metric::Minkowski,
Metric::Spherical,
Metric::QSpherical,
Metric::Kerr_Schild,
Metric::QKerr_Schild,
Metric::Kerr_Schild_0>::value
};
static constexpr auto dimensions {
traits::compatible_with<Dim::_1D, Dim::_2D, Dim::_3D>::value
arch::traits::pgen::compatible_with<Dim::_1D, Dim::_2D, Dim::_3D>::value
};

// for easy access to variables in the child class
Expand Down
12 changes: 8 additions & 4 deletions pgens/reconnection/pgen.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@
#include "global.h"

#include "arch/kokkos_aliases.h"
#include "arch/traits.h"
#include "utils/numeric.h"

#include "archetypes/energy_dist.h"
#include "archetypes/particle_injector.h"
#include "archetypes/problem_generator.h"
#include "archetypes/spatial_dist.h"
#include "archetypes/traits.h"
#include "archetypes/utils.h"
#include "framework/domain/metadomain.h"

Expand Down Expand Up @@ -141,10 +141,14 @@ namespace user {
template <SimEngine::type S, class M>
struct PGen : public arch::ProblemGenerator<S, M> {
// compatibility traits for the problem generator
static constexpr auto engines { traits::compatible_with<SimEngine::SRPIC>::value };
static constexpr auto metrics { traits::compatible_with<Metric::Minkowski>::value };
static constexpr auto engines {
arch::traits::pgen::compatible_with<SimEngine::SRPIC>::value
};
static constexpr auto metrics {
arch::traits::pgen::compatible_with<Metric::Minkowski>::value
};
static constexpr auto dimensions {
traits::compatible_with<Dim::_2D, Dim::_3D>::value
arch::traits::pgen::compatible_with<Dim::_2D, Dim::_3D>::value
};

// for easy access to variables in the child class
Expand Down
14 changes: 8 additions & 6 deletions pgens/streaming/pgen.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@
#include "global.h"

#include "arch/kokkos_aliases.h"
#include "arch/traits.h"
#include "utils/error.h"
#include "utils/numeric.h"

#include "archetypes/problem_generator.h"
#include "archetypes/traits.h"
#include "archetypes/utils.h"
#include "framework/domain/domain.h"
#include "framework/domain/metadomain.h"
Expand Down Expand Up @@ -54,18 +54,20 @@ namespace user {
struct PGen : public arch::ProblemGenerator<S, M> {

// compatibility traits for the problem generator
static constexpr auto engines = traits::compatible_with<SimEngine::SRPIC>::value;
static constexpr auto metrics = traits::compatible_with<Metric::Minkowski>::value;
static constexpr auto engines =
arch::traits::pgen::compatible_with<SimEngine::SRPIC>::value;
static constexpr auto metrics =
arch::traits::pgen::compatible_with<Metric::Minkowski>::value;
static constexpr auto dimensions =
traits::compatible_with<Dim::_1D, Dim::_2D, Dim::_3D>::value;
arch::traits::pgen::compatible_with<Dim::_1D, Dim::_2D, Dim::_3D>::value;

// for easy access to variables in the child class
using arch::ProblemGenerator<S, M>::D;
using arch::ProblemGenerator<S, M>::C;
using arch::ProblemGenerator<S, M>::params;

prmvec_t drifts_in_x, drifts_in_y, drifts_in_z;
prmvec_t densities, temperatures;
prmvec_t drifts_in_x, drifts_in_y, drifts_in_z;
prmvec_t densities, temperatures;
// initial magnetic field
real_t Btheta, Bphi, Bmag;
InitFields<D> init_flds;
Expand Down
11 changes: 7 additions & 4 deletions pgens/turbulence/pgen.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
#include "utils/numeric.h"

#include "archetypes/energy_dist.h"
#include "archetypes/particle_injector.h"
#include "archetypes/problem_generator.h"
#include "archetypes/traits.h"
#include "archetypes/utils.h"
#include "framework/domain/domain.h"
#include "framework/domain/metadomain.h"
Expand Down Expand Up @@ -293,9 +293,12 @@ namespace user {
struct PGen : public arch::ProblemGenerator<S, M> {

// compatibility traits for the problem generator
static constexpr auto engines = traits::compatible_with<SimEngine::SRPIC>::value;
static constexpr auto metrics = traits::compatible_with<Metric::Minkowski>::value;
static constexpr auto dimensions = traits::compatible_with<Dim::_2D, Dim::_3D>::value;
static constexpr auto engines =
arch::traits::pgen::compatible_with<SimEngine::SRPIC>::value;
static constexpr auto metrics =
arch::traits::pgen::compatible_with<Metric::Minkowski>::value;
static constexpr auto dimensions =
arch::traits::pgen::compatible_with<Dim::_2D, Dim::_3D>::value;

// for easy access to variables in the child class
using arch::ProblemGenerator<S, M>::D;
Expand Down
35 changes: 20 additions & 15 deletions pgens/wald/pgen.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,16 @@
#include "global.h"

#include "arch/kokkos_aliases.h"
#include "arch/traits.h"
#include "utils/comparators.h"
#include "utils/error.h"
#include "utils/formatting.h"
#include "utils/log.h"
#include "utils/numeric.h"

#include "archetypes/energy_dist.h"
#include "archetypes/particle_injector.h"
#include "archetypes/problem_generator.h"
#include "framework/domain/domain.h"
#include "archetypes/traits.h"
#include "framework/domain/metadomain.h"

#include <string>
#include <vector>

enum InitFieldGeometry {
Wald,
Expand Down Expand Up @@ -64,7 +59,8 @@ namespace user {
TWO * metric.spin() * g_00);
}

Inline auto bx1(const coord_t<D>& x_Ph) const -> real_t { // at ( i , j + HALF )
Inline auto bx1(const coord_t<D>& x_Ph) const
-> real_t { // at ( i , j + HALF )
coord_t<D> xi { ZERO }, x0m { ZERO }, x0p { ZERO };
metric.template convert<Crd::Ph, Crd::Cd>(x_Ph, xi);

Expand All @@ -82,7 +78,8 @@ namespace user {
}
}

Inline auto bx2(const coord_t<D>& x_Ph) const -> real_t { // at ( i + HALF , j )
Inline auto bx2(const coord_t<D>& x_Ph) const
-> real_t { // at ( i + HALF , j )
coord_t<D> xi { ZERO }, x0m { ZERO }, x0p { ZERO };
metric.template convert<Crd::Ph, Crd::Cd>(x_Ph, xi);

Expand All @@ -99,8 +96,8 @@ namespace user {
}
}

Inline auto bx3(
const coord_t<D>& x_Ph) const -> real_t { // at ( i + HALF , j + HALF )
Inline auto bx3(const coord_t<D>& x_Ph) const
-> real_t { // at ( i + HALF , j + HALF )
if (field_geometry == InitFieldGeometry::Wald) {
coord_t<D> xi { ZERO }, x0m { ZERO }, x0p { ZERO };
metric.template convert<Crd::Ph, Crd::Cd>(x_Ph, xi);
Expand All @@ -120,7 +117,8 @@ namespace user {
}
}

Inline auto dx1(const coord_t<D>& x_Ph) const -> real_t { // at ( i + HALF , j )
Inline auto dx1(const coord_t<D>& x_Ph) const
-> real_t { // at ( i + HALF , j )
if (field_geometry == InitFieldGeometry::Wald) {
coord_t<D> xi { ZERO }, x0m { ZERO }, x0p { ZERO };
metric.template convert<Crd::Ph, Crd::Cd>(x_Ph, xi);
Expand Down Expand Up @@ -158,7 +156,8 @@ namespace user {
}
}

Inline auto dx2(const coord_t<D>& x_Ph) const -> real_t { // at ( i , j + HALF )
Inline auto dx2(const coord_t<D>& x_Ph) const
-> real_t { // at ( i , j + HALF )
if (field_geometry == InitFieldGeometry::Wald) {
coord_t<D> xi { ZERO }, x0m { ZERO }, x0p { ZERO };
metric.template convert<Crd::Ph, Crd::Cd>(x_Ph, xi);
Expand Down Expand Up @@ -232,11 +231,17 @@ namespace user {
template <SimEngine::type S, class M>
struct PGen : public arch::ProblemGenerator<S, M> {
// compatibility traits for the problem generator
static constexpr auto engines { traits::compatible_with<SimEngine::GRPIC>::value };
static constexpr auto engines {
arch::traits::pgen::compatible_with<SimEngine::GRPIC>::value
};
static constexpr auto metrics {
traits::compatible_with<Metric::Kerr_Schild, Metric::QKerr_Schild, Metric::Kerr_Schild_0>::value
arch::traits::pgen::compatible_with<Metric::Kerr_Schild,
Metric::QKerr_Schild,
Metric::Kerr_Schild_0>::value
};
static constexpr auto dimensions {
arch::traits::pgen::compatible_with<Dim::_2D>::value
};
static constexpr auto dimensions { traits::compatible_with<Dim::_2D>::value };

// for easy access to variables in the child class
using arch::ProblemGenerator<S, M>::D;
Expand Down
14 changes: 3 additions & 11 deletions src/engines/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,6 @@
#
# @sources:
#
# * engine_printer.cpp
# * engine_init.cpp
# * engine_run.cpp
#
# @includes:
#
# * ../
Expand All @@ -31,21 +27,17 @@
# * mpi [optional]
# ------------------------------

set(SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR})
set(SOURCES ${SRC_DIR}/engine_printer.cpp ${SRC_DIR}/engine_init.cpp
${SRC_DIR}/engine_run.cpp)
add_library(ntt_engines ${SOURCES})
add_library(ntt_engines INTERFACE)

set(libs ntt_global ntt_framework ntt_metrics ntt_archetypes ntt_kernels
ntt_pgen)
if(${output})
list(APPEND libs ntt_output)
endif()
add_dependencies(ntt_engines ${libs})
target_link_libraries(ntt_engines PUBLIC ${libs})
target_compile_definitions(ntt_engines PRIVATE PGEN=\"${PGEN}\")
target_link_libraries(ntt_engines INTERFACE ${libs})
target_compile_definitions(ntt_engines INTERFACE PGEN=\"${PGEN}\")

target_include_directories(
ntt_engines
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../
INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/../)
Loading