История изменений
Исправление Architector, (текущая версия) :
Сейчас я вам кое-что покажу, но вы не ругайтесь
Кхм, молекула движется только по осям x,y. При достижении горизонтальной стенки (максимума или минимума по у), мы просто отражаем молекулу - для молекулы это выглядит, будто она движется дальше.
При достижении вертикальной стенки мы пытаемся задать ей соответствующую скорость.
Я написал такую кривую функцию getrs(bool fl)
, потому что хз, как распределять скорость по осям. При fl==true
- молекула соприкасается горячей стенки, иначе - холодной.
Т.е. по сути вот я могу сделать так:
float x = static_cast <float> (rand()) / static_cast <float> (RAND_MAX);
float y = static_cast <float> (rand()) / static_cast <float> (RAND_MAX);
float z = static_cast <float> (rand()) / static_cast <float> (RAND_MAX);
speed = sqrt(x*x+y*y+z*z)*V;
Где V
- это средняя скорость, которая должна быть.
Но тут появляется составляющая z
, которую хотелось бы выкинуть. И потом, мы получаем в принципе скорость, а как её потом разбивать на составляющие? Не поровну же.
Ну и в соответствии с кривой программой при каждом столкновении разность энергий равна нулю…Хотя это вроде не должно быть из-за той функции
Исходная версия Architector, :
Сейчас я вам кое-что покажу, но вы не ругайтесь
Кхм, молекула движется только по осям x,y. При достижении горизонтальной стенки (максимума или минимума по у), мы просто отражаем молекулу - для молекулы это выглядит, будто она движется дальше.
При достижении вертикальной стенки мы пытаемся задать ей соответствующую скорость.
Я написал такую кривую функцию getrs(bool fl)
, потому что хз, как распределять скорость по осям. При fl==true
- молекула соприкасается горячей стенки, иначе - холодной.
Т.е. по сути вот я могу сделать так:
float x = static_cast <float> (rand()) / static_cast <float> (RAND_MAX);
float y = static_cast <float> (rand()) / static_cast <float> (RAND_MAX);
float z = static_cast <float> (rand()) / static_cast <float> (RAND_MAX);
speed = sqrt(x*x+y*y+z*z)*V;
Где V
- это средняя скорость, которая должна быть.
Но тут появляется составляющая z
, которую хотелось бы выкинуть. И потом, мы получаем в принципе скорость, а как её потом разбивать на составляющие? Не поровну же.