Возникли проблемы при понимании системы указателей граничных условий в коде моделирования - PullRequest
0 голосов
/ 25 февраля 2019

Η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

как мне написать граничное условие, используя эту систему.

...