// CelerisLab/kernels/macros.h

// cuda parameters
#define MULT_GPU False
#define NT 128
#define X_1U 256
#define Y_1U 128
#define Z_1U 32

// flow parameters
#define LBtype float
#define UX 1
#define UY 1
#define UZ 1
#define NX 256
#define NY 128
#define NZ 32
#define DIM 3
#define NQ 19
#define VIS 0.0096000000
#define RHO 1.0
#define U0 0.04

// constants
#define PI 3.141592653589793238
#define FLUID       0b00000001
#define SOLID       0b00000010
#define GAS         0b00000100
#define INTERFACE   0b00001000
#define SENSOR      0b00010000

// vortex type
#define V_TAYLOR    0b00000001

// variables
#define N_OBJS 0
// #define N_SENS 2

// ============================================================================
// New architecture configuration (Stage 1)
// These defaults are safe for backward compatibility.
// compiler.py can override any of them via modify_macro().
// ============================================================================

// Collision model: 0=SRT, 1=TRT, 2=MRT
#ifndef COLLISION_MODEL
#define COLLISION_MODEL 0
#endif

// Streaming model: 0=double-buffer, 1=esoteric-pull
#ifndef STREAMING_MODEL
#define STREAMING_MODEL 0
#endif

// Storage precision: 0=FP32, 1=FP16S, 2=FP16C
#ifndef STORE_PRECISION
#define STORE_PRECISION 0
#endif

// DDF-shifting: 0=off, 1=on
#ifndef USE_DDF_SHIFTING
#define USE_DDF_SHIFTING 0
#endif