X-Git-Url: https://git.lukelau.me/?a=blobdiff_plain;f=simulation.hpp;fp=simulation.hpp;h=2a81c873c34c57262369093ff98bcb9b0b7043fb;hb=efac65ad1c51cdd7e8ecd37ebb9570ac14efeeeb;hp=0000000000000000000000000000000000000000;hpb=724a80cbecb587d1d069f7999758181b10d92f73;p=clouds.git diff --git a/simulation.hpp b/simulation.hpp new file mode 100644 index 0000000..2a81c87 --- /dev/null +++ b/simulation.hpp @@ -0,0 +1,31 @@ +#define CLOUD_DIM_X 64 +#define CLOUD_DIM_Y 16 +#define CLOUD_DIM_Z 64 + +/* #define CLOUD_DIM_X 16 */ +/* #define CLOUD_DIM_Y 16 */ +/* #define CLOUD_DIM_Z 16 */ + +#define P_EXT 0.1 +#define P_HUM 0.1 +#define P_ACT 0.001 + +struct Clouds { + // TODO: make more efficient + bool hum[CLOUD_DIM_X][CLOUD_DIM_Y][CLOUD_DIM_Z]; + bool cld[CLOUD_DIM_X][CLOUD_DIM_Y][CLOUD_DIM_Z]; + bool act[CLOUD_DIM_X][CLOUD_DIM_Y][CLOUD_DIM_Z]; + float p_ext[CLOUD_DIM_X][CLOUD_DIM_Y][CLOUD_DIM_Z]; + float p_hum[CLOUD_DIM_X][CLOUD_DIM_Y][CLOUD_DIM_Z]; + float p_act[CLOUD_DIM_X][CLOUD_DIM_Y][CLOUD_DIM_Z]; + /** Wind velocity + * Called vz in the paper, but here our z axis is y + */ + float vy[CLOUD_DIM_Y]; + /** continuous distribution */ + float q[CLOUD_DIM_X][CLOUD_DIM_Y][CLOUD_DIM_Z]; +}; + +void initClouds(Clouds *cs); + +void stepClouds(Clouds *cs);