Ηi, у меня возникли проблемы с пониманием того, как граничные условия работают над кодом моделирования (написанным в основном на c), интегрирующим известные уравнения для определенного блока.
Это для физики, хотя вопрос в основном программирование.
Допустим, вы получили сетку 5x5
, как для r x z
При r=0, r=5
и z=0, z=5
код должен иметь известные функции для интегрирующих величин.Для обычного моделирования код решает для плотности rho
, давления P
и скорости V
.
Как указано на странице 53 документа ЭТОГО , если мы хотим, чтобы количество было reversed/reflected
, мы следуем этому коду
/* -- reflective boundary for r > 1 --*/
d->Vc[RHO][k][j][i] = d->Vc[RHO][k][2*JBEG - j - 1][i];
Если мы хотим d density / d [grid quantity] = 0
равным нулю, поэтому то же значение в начале поля, код будет
/* -- outflow boundary for r > 1 --*/
d->Vc[RHO][k][j][i] = d->Vc[RHO][k][JBEG][i];
Если я хочу, чтобы код следовал определенной производной, скажем,
d density / d [grid quantity] = A*[g q]**2/2
или известная функция
density = B*[g q]**2/2
как мне написать граничное условие, используя эту систему.