From 5e43bb0510e704b66120391c027c7568f5b6f920 Mon Sep 17 00:00:00 2001 From: savask Date: Tue, 14 Jun 2011 16:19:10 +0700 Subject: [PATCH] Heat simulation improvement. --- src/powder.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/powder.c b/src/powder.c index adb5cb713..1c06e4dcf 100644 --- a/src/powder.c +++ b/src/powder.c @@ -1638,6 +1638,7 @@ void update_particles_i(pixel *vid, int start, int inc) hv[y/CELL][x/CELL] -= c_heat; } c_heat = 0.0f; + float c_Cm = 0.0f; for (j=0; j<8; j++) { surround_hconduct[j] = i; @@ -1650,12 +1651,14 @@ void update_particles_i(pixel *vid, int start, int inc) &&(rt!=PT_FILT||(t!=PT_BRAY&&t!=PT_PHOT&&t!=PT_BIZR&&t!=PT_BIZRG))) { surround_hconduct[j] = r>>8; - c_heat += parts[r>>8].temp; + c_heat += parts[r>>8].temp*96.645/ptypes[rt].hconduct*ptypes[rt].weight; + c_Cm += 96.645/ptypes[rt].hconduct*ptypes[rt].weight; h_count++; } } - pt = parts[i].temp = (c_heat+parts[i].temp)/(h_count+1); + pt = parts[i].temp = (c_heat+parts[i].temp*96.645/ptypes[t].hconduct*ptypes[t].weight) + /(c_Cm+96.645/ptypes[t].hconduct*ptypes[t].weight); for (j=0; j<8; j++) { parts[surround_hconduct[j]].temp = pt;