void ParticleSystem::Update(float deltaTime){ UpdateGrid(); clearAcceleration(); computeDenisty(); computePressure(); checkWallCollisions(); step(deltaTime); }
void updatePressures(fluid_particle *fluid_particles, param *params) { int num_particles = params->number_fluid_particles; #pragma omp parallel for firstprivate(num_particles) shared(fluid_particles, params) default(none) for(int i=0; i<num_particles; i++) { double3 p_pos = fluid_particles[i].pos; double3 p_v = fluid_particles[i].v; double density = fluid_particles[i].density; for(int j=0; j<num_particles; j++) { double3 q_pos = fluid_particles[j].pos; double3 q_v = fluid_particles[j].v; density += computeDensity(p_pos,p_v,q_pos,q_v, params); } fluid_particles[i].density = density; fluid_particles[i].pressure = computePressure(density, params); } }
void updatePressures(fluid_particle *fluid_particles, param *params) { int num_particles = params->number_fluid_particles; // Hint: Parallelize this loop for(int i=0; i<num_particles; i++) { double3 p_pos = fluid_particles[i].pos; double3 p_v = fluid_particles[i].v; double density = fluid_particles[i].density; for(int j=0; j<num_particles; j++) { double3 q_pos = fluid_particles[j].pos; double3 q_v = fluid_particles[j].v; density += computeDensity(p_pos,p_v,q_pos,q_v, params); } fluid_particles[i].density = density; fluid_particles[i].pressure = computePressure(density, params); } }
void updatePressures(fluid_particle *fluid_particles, param *params) { int num_particles = params[0].number_fluid_particles; #pragma acc parallel loop default(present) for(int i=0; i<num_particles; i++) { double3 p_pos = fluid_particles[i].pos; double3 p_v = fluid_particles[i].v; double density = fluid_particles[i].density; for(int j=0; j<num_particles; j++) { double3 q_pos = fluid_particles[j].pos; double3 q_v = fluid_particles[j].v; density += computeDensity(p_pos,p_v,q_pos,q_v, params[0].mass_particle,params[0].smoothing_radius,params[0].time_step); } fluid_particles[i].density = density; fluid_particles[i].pressure = computePressure(density, params[0].rest_density,params[0].speed_sound); } }