Skip to content
Snippets Groups Projects
Commit 08c53168 authored by Matthieu Schaller's avatar Matthieu Schaller
Browse files

Test now OK in DEFAULT_SPH

parent 6f65a822
No related branches found
No related tags found
1 merge request!208Test 125
...@@ -147,7 +147,8 @@ __attribute__((always_inline)) INLINE static void hydro_prepare_force( ...@@ -147,7 +147,8 @@ __attribute__((always_inline)) INLINE static void hydro_prepare_force(
/* Compute this particle's sound speed. */ /* Compute this particle's sound speed. */
const float u = p->u; const float u = p->u;
const float fc = p->force.soundspeed = sqrtf(hydro_gamma * hydro_gamma_minus_one * u); const float fc = p->force.soundspeed =
sqrtf(hydro_gamma * hydro_gamma_minus_one * u);
/* Compute the P/Omega/rho2. */ /* Compute the P/Omega/rho2. */
xp->omega = 1.0f + 0.3333333333f * h * p->rho_dh / p->rho; xp->omega = 1.0f + 0.3333333333f * h * p->rho_dh / p->rho;
......
...@@ -495,12 +495,14 @@ __attribute__((always_inline)) INLINE static void runner_iact_vec_force( ...@@ -495,12 +495,14 @@ __attribute__((always_inline)) INLINE static void runner_iact_vec_force(
pi[6]->u, pi[7]->u); pi[6]->u, pi[7]->u);
pju.v = vec_set(pj[0]->u, pj[1]->u, pj[2]->u, pj[3]->u, pj[4]->u, pj[5]->u, pju.v = vec_set(pj[0]->u, pj[1]->u, pj[2]->u, pj[3]->u, pj[4]->u, pj[5]->u,
pj[6]->u, pj[7]->u); pj[6]->u, pj[7]->u);
ci.v = ci.v = vec_set(pi[0]->force.soundspeed, pi[1]->force.soundspeed,
vec_set(pi[0]->force.soundspeed, pi[1]->force.soundspeed, pi[2]->force.soundspeed, pi[3]->force.soundspeed, pi[2]->force.soundspeed, pi[3]->force.soundspeed,
pi[4]->force.soundspeed, pi[5]->force.soundspeed, pi[6]->force.soundspeed, pi[7]->force.soundspeed); pi[4]->force.soundspeed, pi[5]->force.soundspeed,
cj.v = pi[6]->force.soundspeed, pi[7]->force.soundspeed);
vec_set(pj[0]->force.soundspeed, pj[1]->force.soundspeed, pj[2]->force.soundspeed, pj[3]->force.soundspeed, cj.v = vec_set(pj[0]->force.soundspeed, pj[1]->force.soundspeed,
pj[4]->force.soundspeed, pj[5]->force.soundspeed, pj[6]->force.soundspeed, pj[7]->force.soundspeed); pj[2]->force.soundspeed, pj[3]->force.soundspeed,
pj[4]->force.soundspeed, pj[5]->force.soundspeed,
pj[6]->force.soundspeed, pj[7]->force.soundspeed);
vi_sig.v = vec_set(pi[0]->force.v_sig, pi[1]->force.v_sig, pi[2]->force.v_sig, vi_sig.v = vec_set(pi[0]->force.v_sig, pi[1]->force.v_sig, pi[2]->force.v_sig,
pi[3]->force.v_sig, pi[4]->force.v_sig, pi[5]->force.v_sig, pi[3]->force.v_sig, pi[4]->force.v_sig, pi[5]->force.v_sig,
pi[6]->force.v_sig, pi[7]->force.v_sig); pi[6]->force.v_sig, pi[7]->force.v_sig);
...@@ -538,10 +540,10 @@ __attribute__((always_inline)) INLINE static void runner_iact_vec_force( ...@@ -538,10 +540,10 @@ __attribute__((always_inline)) INLINE static void runner_iact_vec_force(
pjrho.v = vec_set(pj[0]->rho, pj[1]->rho, pj[2]->rho, pj[3]->rho); pjrho.v = vec_set(pj[0]->rho, pj[1]->rho, pj[2]->rho, pj[3]->rho);
piu.v = vec_set(pi[0]->u, pi[1]->u, pi[2]->u, pi[3]->u); piu.v = vec_set(pi[0]->u, pi[1]->u, pi[2]->u, pi[3]->u);
pju.v = vec_set(pj[0]->u, pj[1]->u, pj[2]->u, pj[3]->u); pju.v = vec_set(pj[0]->u, pj[1]->u, pj[2]->u, pj[3]->u);
ci.v = ci.v = vec_set(pi[0]->force.soundspeed, pi[1]->force.soundspeed,
vec_set(pi[0]->force.soundspeed, pi[1]->force.soundspeed, pi[2]->force.soundspeed, pi[3]->force.soundspeed); pi[2]->force.soundspeed, pi[3]->force.soundspeed);
cj.v = cj.v = vec_set(pj[0]->force.soundspeed, pj[1]->force.soundspeed,
vec_set(pj[0]->force.soundspeed, pj[1]->force.soundspeed, pj[2]->force.soundspeed, pj[3]->force.soundspeed); pj[2]->force.soundspeed, pj[3]->force.soundspeed);
vi_sig.v = vec_set(pi[0]->force.v_sig, pi[1]->force.v_sig, pi[2]->force.v_sig, vi_sig.v = vec_set(pi[0]->force.v_sig, pi[1]->force.v_sig, pi[2]->force.v_sig,
pi[3]->force.v_sig); pi[3]->force.v_sig);
vj_sig.v = vec_set(pj[0]->force.v_sig, pj[1]->force.v_sig, pj[2]->force.v_sig, vj_sig.v = vec_set(pj[0]->force.v_sig, pj[1]->force.v_sig, pj[2]->force.v_sig,
...@@ -800,12 +802,14 @@ __attribute__((always_inline)) INLINE static void runner_iact_nonsym_vec_force( ...@@ -800,12 +802,14 @@ __attribute__((always_inline)) INLINE static void runner_iact_nonsym_vec_force(
pi[6]->u, pi[7]->u); pi[6]->u, pi[7]->u);
pju.v = vec_set(pj[0]->u, pj[1]->u, pj[2]->u, pj[3]->u, pj[4]->u, pj[5]->u, pju.v = vec_set(pj[0]->u, pj[1]->u, pj[2]->u, pj[3]->u, pj[4]->u, pj[5]->u,
pj[6]->u, pj[7]->u); pj[6]->u, pj[7]->u);
ci.v = ci.v = vec_set(pi[0]->force.soundspeed, pi[1]->force.soundspeed,
vec_set(pi[0]->force.soundspeed, pi[1]->force.soundspeed, pi[2]->force.soundspeed, pi[3]->force.soundspeed, pi[2]->force.soundspeed, pi[3]->force.soundspeed,
pi[4]->force.soundspeed, pi[5]->force.soundspeed, pi[6]->force.soundspeed, pi[7]->force.soundspeed); pi[4]->force.soundspeed, pi[5]->force.soundspeed,
cj.v = pi[6]->force.soundspeed, pi[7]->force.soundspeed);
vec_set(pj[0]->force.soundspeed, pj[1]->force.soundspeed, pj[2]->force.soundspeed, pj[3]->force.soundspeed, cj.v = vec_set(pj[0]->force.soundspeed, pj[1]->force.soundspeed,
pj[4]->force.soundspeed, pj[5]->force.soundspeed, pj[6]->force.soundspeed, pj[7]->force.soundspeed); pj[2]->force.soundspeed, pj[3]->force.soundspeed,
pj[4]->force.soundspeed, pj[5]->force.soundspeed,
pj[6]->force.soundspeed, pj[7]->force.soundspeed);
vi_sig.v = vec_set(pi[0]->force.v_sig, pi[1]->force.v_sig, pi[2]->force.v_sig, vi_sig.v = vec_set(pi[0]->force.v_sig, pi[1]->force.v_sig, pi[2]->force.v_sig,
pi[3]->force.v_sig, pi[4]->force.v_sig, pi[5]->force.v_sig, pi[3]->force.v_sig, pi[4]->force.v_sig, pi[5]->force.v_sig,
pi[6]->force.v_sig, pi[7]->force.v_sig); pi[6]->force.v_sig, pi[7]->force.v_sig);
...@@ -842,10 +846,10 @@ __attribute__((always_inline)) INLINE static void runner_iact_nonsym_vec_force( ...@@ -842,10 +846,10 @@ __attribute__((always_inline)) INLINE static void runner_iact_nonsym_vec_force(
pjrho.v = vec_set(pj[0]->rho, pj[1]->rho, pj[2]->rho, pj[3]->rho); pjrho.v = vec_set(pj[0]->rho, pj[1]->rho, pj[2]->rho, pj[3]->rho);
piu.v = vec_set(pi[0]->u, pi[1]->u, pi[2]->u, pi[3]->u); piu.v = vec_set(pi[0]->u, pi[1]->u, pi[2]->u, pi[3]->u);
pju.v = vec_set(pj[0]->u, pj[1]->u, pj[2]->u, pj[3]->u); pju.v = vec_set(pj[0]->u, pj[1]->u, pj[2]->u, pj[3]->u);
ci.v = ci.v = vec_set(pi[0]->force.soundspeed, pi[1]->force.soundspeed,
vec_set(pi[0]->force.soundspeed, pi[1]->force.soundspeed, pi[2]->force.soundspeed, pi[3]->force.soundspeed); pi[2]->force.soundspeed, pi[3]->force.soundspeed);
cj.v = cj.v = vec_set(pj[0]->force.soundspeed, pj[1]->force.soundspeed,
vec_set(pj[0]->force.soundspeed, pj[1]->force.soundspeed, pj[2]->force.soundspeed, pj[3]->force.soundspeed); pj[2]->force.soundspeed, pj[3]->force.soundspeed);
vi_sig.v = vec_set(pi[0]->force.v_sig, pi[1]->force.v_sig, pi[2]->force.v_sig, vi_sig.v = vec_set(pi[0]->force.v_sig, pi[1]->force.v_sig, pi[2]->force.v_sig,
pi[3]->force.v_sig); pi[3]->force.v_sig);
vj_sig.v = vec_set(pj[0]->force.v_sig, pj[1]->force.v_sig, pj[2]->force.v_sig, vj_sig.v = vec_set(pj[0]->force.v_sig, pj[1]->force.v_sig, pj[2]->force.v_sig,
......
...@@ -30,7 +30,7 @@ __attribute__((always_inline)) INLINE static void hydro_debug_particle( ...@@ -30,7 +30,7 @@ __attribute__((always_inline)) INLINE static void hydro_debug_particle(
xp->v_full[1], xp->v_full[2], p->a_hydro[0], p->a_hydro[1], p->a_hydro[2], xp->v_full[1], xp->v_full[2], p->a_hydro[0], p->a_hydro[1], p->a_hydro[2],
p->h, p->density.wcount, p->density.wcount_dh, p->mass, p->rho_dh, p->rho, p->h, p->density.wcount, p->density.wcount_dh, p->mass, p->rho_dh, p->rho,
hydro_get_pressure(p, 0.), p->force.P_over_rho2, p->entropy, hydro_get_pressure(p, 0.), p->force.P_over_rho2, p->entropy,
p->entropy_dt, p->force.soundspeed, p->density.div_v, p->entropy_dt, p->force.soundspeed, p->density.div_v, p->density.rot_v[0],
p->density.rot_v[0], p->density.rot_v[1], p->density.rot_v[2], p->density.rot_v[1], p->density.rot_v[2], p->force.balsara,
p->force.balsara, p->force.v_sig, p->force.h_dt, p->ti_begin, p->ti_end); p->force.v_sig, p->force.h_dt, p->ti_begin, p->ti_end);
} }
...@@ -89,7 +89,7 @@ for i in range(n_lines_to_check): ...@@ -89,7 +89,7 @@ for i in range(n_lines_to_check):
abs_diff = abs(data1[i,j] - data2[i,j]) abs_diff = abs(data1[i,j] - data2[i,j])
sum = abs(data1[i,j] + data2[i,j]) sum = abs(data1[i,j] + data2[i,j])
if abs(data1[i,j]) + abs(data2[i,j]) < 1e-7: continue if abs(data1[i,j]) + abs(data2[i,j]) < 2.5e-7: continue
if sum > 0: if sum > 0:
rel_diff = abs(data1[i,j] - data2[i,j]) / sum rel_diff = abs(data1[i,j] - data2[i,j]) / sum
else: else:
......
...@@ -78,9 +78,8 @@ void dump_indv_particle_fields(char *fileName, struct part *p) { ...@@ -78,9 +78,8 @@ void dump_indv_particle_fields(char *fileName, struct part *p) {
"%6llu %10f %10f %10f %10f %10f %10f %13e %13e %13e %13e %13e " "%6llu %10f %10f %10f %10f %10f %10f %13e %13e %13e %13e %13e "
"%13e %13e %13e\n", "%13e %13e %13e\n",
p->id, p->x[0], p->x[1], p->x[2], p->v[0], p->v[1], p->v[2], p->rho, p->id, p->x[0], p->x[1], p->x[2], p->v[0], p->v[1], p->v[2], p->rho,
p->rho_dh, p->density.wcount, p->density.wcount_dh, p->rho_dh, p->density.wcount, p->density.wcount_dh, p->density.div_v,
p->density.div_v, p->density.rot_v[0], p->density.rot_v[1], p->density.rot_v[0], p->density.rot_v[1], p->density.rot_v[2]);
p->density.rot_v[2]);
fclose(file); fclose(file);
} }
......
...@@ -95,6 +95,7 @@ int main() { ...@@ -95,6 +95,7 @@ int main() {
/* Clean-up */ /* Clean-up */
free(parts); free(parts);
free(gparts);
return 0; return 0;
} }
...@@ -75,9 +75,8 @@ void dump_indv_particle_fields(char *fileName, struct part *p) { ...@@ -75,9 +75,8 @@ void dump_indv_particle_fields(char *fileName, struct part *p) {
"%6llu %10f %10f %10f %10f %10f %10f %13e %13e %13e %13e %13e " "%6llu %10f %10f %10f %10f %10f %10f %13e %13e %13e %13e %13e "
"%13e %13e %13e\n", "%13e %13e %13e\n",
p->id, p->x[0], p->x[1], p->x[2], p->v[0], p->v[1], p->v[2], p->rho, p->id, p->x[0], p->x[1], p->x[2], p->v[0], p->v[1], p->v[2], p->rho,
p->rho_dh, p->density.wcount, p->density.wcount_dh, p->rho_dh, p->density.wcount, p->density.wcount_dh, p->density.div_v,
p->density.div_v, p->density.rot_v[0], p->density.rot_v[1], p->density.rot_v[0], p->density.rot_v[1], p->density.rot_v[2]);
p->density.rot_v[2]);
fclose(file); fclose(file);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment