Files
Examples/C++/Navier Stokes Fluid Sim/main.cpp
Benjamin Kyd f205a0bc06 Doom Fire
2019-02-02 17:21:32 +00:00

47 lines
954 B
C++

#include <string>
#define OLC_PGE_APPLICATION
#include "olcPixelGameEngine.h"
#define N 600
#define SIZE (N + 2) * (N + 2)
#define IX(i,j) ((i)+(N+2)*(j))
class NavierStokes : public olc::PixelGameEngine {
public:
NavierStokes() {
sAppName = "Fluid Dynamics";
}
bool OnUserCreate() override {
return true;
memset(u, 0, sizeof(float) * SIZE);
memset(v, 0, sizeof(float) * SIZE);
memset(u_prev, 0, sizeof(float) * SIZE);
memset(v_prev, 0, sizeof(float) * SIZE);
memset(dens, 0, sizeof(float) * SIZE);
memset(dens_prev, 0, sizeof(float) * SIZE);
};
bool OnUserUpdate(float fElapsedTime) override {
Clear(olc::WHITE);
return true;
}
private:
float u[SIZE], v[SIZE], u_prev[SIZE], v_prev[SIZE];
float dens[SIZE], dens_prev[SIZE];
};
int main(int argc, char** argv) {
NavierStokes app;
if (app.Construct(600, 600, 1, 1)) {
app.Start();
}
return 0;
}