36#define CHECK_FLOAT(x) \
38 std::cerr << __FILE__ << ":" << __LINE__ << " Illegal value: " << x << std::endl;\
42#define CHECK_FLOAT(x) {}
47 const std::string& message
51 const char *
const file,
56 const std::string& message,
57 const char *
const file,
61[[ noreturn ]]
void abort_mpi(
const std::string
str,
const int err_type = 0);
63#define sqr(x) ((x)*(x))
65#define pow3(x) ((x)*(x)*(x))
73#define MAX_BLOCKS_PER_DIM 256
434 typedef std::span<std::array<Real, fsgrids::bfield::N_BFIELD>>
perbspan;
435 typedef std::span<const std::array<Real, fsgrids::bfield::N_BFIELD>>
constperbspan;
436 typedef std::span<std::array<Real, fsgrids::efield::N_EFIELD>>
efieldspan;
438 typedef std::span<std::array<Real, fsgrids::ehall::N_EHALL>>
ehallspan;
439 typedef std::span<const std::array<Real, fsgrids::ehall::N_EHALL>>
constehallspan;
440 typedef std::span<std::array<Real, fsgrids::egradpe::N_EGRADPE>>
egradpespan;
442 typedef std::span<std::array<Real, fsgrids::dperb::N_DPERB>>
dperbspan;
443 typedef std::span<const std::array<Real, fsgrids::dperb::N_DPERB>>
constdperbspan;
444 typedef std::span<std::array<Real, bgbfield::N_BGB>>
bgbspan;
445 typedef std::span<const std::array<Real, bgbfield::N_BGB>>
constbgbspan;
446 typedef std::span<std::array<Real, fsgrids::moments::N_MOMENTS>>
momentsspan;
448 typedef std::span<std::array<Real, fsgrids::dmoments::N_DMOMENTS>>
dmomentsspan;
450 typedef std::span<std::array<Real, fsgrids::volfields::N_VOL>>
volspan;
451 typedef std::span<const std::array<Real, fsgrids::volfields::N_VOL>>
constvolspan;
499 const uint
BX = (1 << 0);
500 const uint
BY = (1 << 1);
501 const uint
BZ = (1 << 2);
502 const uint
EX = (1 << 3);
503 const uint
EY = (1 << 4);
504 const uint
EZ = (1 << 5);
528template<
typename T>
inline int sign(
const T& value) {
530 if (value <
ZERO)
return -1;
const std::vector< CellID > & getLocalCells()
@ N_IONOSPHERE_PARAMETERS
void bailout(const bool condition, const std::string &message)
A function to stop the simulation if the boolean condition is true. Raises a flag which gets MPI_Redu...
void abort_mpi(const std::string str, const int err_type=0)
@ N_VELOCITY_BLOCK_PARAMS
@ VLASOV_SOLVER_GHOST_REQNEIGH
std::span< std::array< Real, fsgrids::bfield::N_BFIELD > > perbspan
std::span< const std::array< Real, fsgrids::dmoments::N_DMOMENTS > > constdmomentsspan
std::span< const std::array< Real, bgbfield::N_BGB > > constbgbspan
std::span< const std::array< Real, fsgrids::efield::N_EFIELD > > constefieldspan
std::span< const std::array< Real, fsgrids::moments::N_MOMENTS > > constmomentsspan
std::span< std::array< Real, fsgrids::moments::N_MOMENTS > > momentsspan
std::span< std::array< Real, fsgrids::egradpe::N_EGRADPE > > egradpespan
std::span< std::array< Real, fsgrids::dmoments::N_DMOMENTS > > dmomentsspan
std::span< technical > technicalspan
std::span< const std::array< Real, fsgrids::ehall::N_EHALL > > constehallspan
std::span< std::array< Real, bgbfield::N_BGB > > bgbspan
std::span< std::array< Real, fsgrids::dperb::N_DPERB > > dperbspan
std::span< const technical > consttechnicalspan
std::span< std::array< Real, fsgrids::efield::N_EFIELD > > efieldspan
std::span< std::array< Real, fsgrids::volfields::N_VOL > > volspan
std::span< const std::array< Real, fsgrids::volfields::N_VOL > > constvolspan
std::span< const std::array< Real, fsgrids::bfield::N_BFIELD > > constperbspan
std::span< const std::array< Real, fsgrids::egradpe::N_EGRADPE > > constegradpespan
std::span< std::array< Real, fsgrids::ehall::N_EHALL > > ehallspan
std::span< const std::array< Real, fsgrids::dperb::N_DPERB > > constdperbspan
@ N_SYSBOUNDARY_CONDITIONS
static bool ionosphereJustSolved