TPT: A new unstable REALISTIC option. No guarantees - but more realistic behaviour. f41f96f598
This commit is contained in:
parent
82a1933400
commit
f84dc03c23
@ -2539,8 +2539,14 @@ void Simulation::update_particles_i(int start, int inc)
|
|||||||
|
|
||||||
if (ptypes[t].diffusion)//the random diffusion that gasses have
|
if (ptypes[t].diffusion)//the random diffusion that gasses have
|
||||||
{
|
{
|
||||||
|
#ifdef REALISTIC
|
||||||
|
//The magic number controlls diffusion speed
|
||||||
|
parts[i].vx += 0.05*sqrtf(parts[i].temp)*ptypes[t].diffusion*(rand()/(0.5f*RAND_MAX)-1.0f);
|
||||||
|
parts[i].vy += 0.05*sqrtf(parts[i].temp)*ptypes[t].diffusion*(rand()/(0.5f*RAND_MAX)-1.0f);
|
||||||
|
#else
|
||||||
parts[i].vx += ptypes[t].diffusion*(rand()/(0.5f*RAND_MAX)-1.0f);
|
parts[i].vx += ptypes[t].diffusion*(rand()/(0.5f*RAND_MAX)-1.0f);
|
||||||
parts[i].vy += ptypes[t].diffusion*(rand()/(0.5f*RAND_MAX)-1.0f);
|
parts[i].vy += ptypes[t].diffusion*(rand()/(0.5f*RAND_MAX)-1.0f);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
j = surround_space = nt = 0;//if nt is 1 after this, then there is a particle around the current particle, that is NOT the current particle's type, for water movement.
|
j = surround_space = nt = 0;//if nt is 1 after this, then there is a particle around the current particle, that is NOT the current particle's type, for water movement.
|
||||||
@ -2571,8 +2577,8 @@ void Simulation::update_particles_i(int start, int inc)
|
|||||||
|
|
||||||
//heat transfer code
|
//heat transfer code
|
||||||
h_count = 0;
|
h_count = 0;
|
||||||
#ifdef REALHEAT
|
#ifdef REALISTIC
|
||||||
if (t&&(t!=PT_HSWC||parts[i].life==10))
|
if (t&&(t!=PT_HSWC||parts[i].life==10)&&ptypes[t].hconduct)
|
||||||
{
|
{
|
||||||
float c_Cm = 0.0f;
|
float c_Cm = 0.0f;
|
||||||
#else
|
#else
|
||||||
@ -2600,7 +2606,7 @@ void Simulation::update_particles_i(int start, int inc)
|
|||||||
&&(rt!=PT_FILT||(t!=PT_BRAY&&t!=PT_PHOT&&t!=PT_BIZR&&t!=PT_BIZRG)))
|
&&(rt!=PT_FILT||(t!=PT_BRAY&&t!=PT_PHOT&&t!=PT_BIZR&&t!=PT_BIZRG)))
|
||||||
{
|
{
|
||||||
surround_hconduct[j] = r>>8;
|
surround_hconduct[j] = r>>8;
|
||||||
#ifdef REALHEAT
|
#ifdef REALISTIC
|
||||||
c_heat += parts[r>>8].temp*96.645/ptypes[rt].hconduct*fabs(ptypes[rt].weight);
|
c_heat += parts[r>>8].temp*96.645/ptypes[rt].hconduct*fabs(ptypes[rt].weight);
|
||||||
c_Cm += 96.645/ptypes[rt].hconduct*fabs(ptypes[rt].weight);
|
c_Cm += 96.645/ptypes[rt].hconduct*fabs(ptypes[rt].weight);
|
||||||
#else
|
#else
|
||||||
@ -2609,7 +2615,7 @@ void Simulation::update_particles_i(int start, int inc)
|
|||||||
h_count++;
|
h_count++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifdef REALHEAT
|
#ifdef REALISTIC
|
||||||
if (t == PT_PHOT)
|
if (t == PT_PHOT)
|
||||||
pt = (c_heat+parts[i].temp*96.645)/(c_Cm+96.645);
|
pt = (c_heat+parts[i].temp*96.645)/(c_Cm+96.645);
|
||||||
else
|
else
|
||||||
|
Reference in New Issue
Block a user