2015-04-23 2 views
1

Это может быть простой вопрос, но какой правильный синтаксис FiPy использовать, если я хочу решить PDE с пространственно изменяющимся коэффициентом, который находится за пределами градиента? Все примеры, которые я видел до сих пор, говорят только о коэффициенте внутри градиента.FiPy: пространственно изменяющийся коэффициент вне градиента?

Например:

д/дт (Сигма) = (1/г) д/дг (г^0,5 г/дг (Nu Sigma г^0,5))

(я не обращая внимания числовые коэффициенты)

и я хочу решить для Sigma (t, r). Как обрабатывать (1/r) перед d/dr?

Я знаю, что это простое уравнение можно массировать, так что мне не нужно беспокоиться о пространственно изменяющемся коэффициенте, который находится за пределами градиента (или просто переместить коэффициент в пределах производного по времени), но мне придется добавить больше терминов для реальной проблемы, которую я пытаюсь решить, и трюк больше не будет действительным. Например, что мне делать, если мое уравнение выглядит так:

d/dt (var) = f (r) d^2/dr^2 (var) + g (r) d/dr (var)

Любая помощь была бы принята с благодарностью!

ответ

0

Это может быть простой вопрос, но что такое правильный синтаксис FiPy использовать, если я хочу, чтобы решить PDE с пространственно варьирования коэффициента, который находится вне градиента?

Я думаю, что общее уравнение всегда может быть переписано таким образом, что FiPy все еще может действовать неявно на переменную решения. В большинстве случаев это требует дополнительного источника.

Я знаю, что это простое уравнение можно массировать так, что мне не нужно беспокоиться о пространственно варьирования коэффициента, который находится за пределами градиента (или просто переместить коэффициент внутри производной по времени срок), но я буду необходимо добавить в более подробные условия для реальной проблемы, которую я пытаюсь решить, и трюк будет больше недействителен.

В примере уравнение

eqn1 http://bit.ly/1KcPB9Y

может быть представлена ​​в виде

eqn2 http://bit.ly/1HBpSbI

в FiPy, который не добавляет каких-либо дополнительных условий. В общем случае,

eqn3 http://bit.ly/1GvFSNB

уравнение может быть представлено в виде

\frac{\partial}{\partial t} \left(\frac{\phi}{f} \right) = \frac{\partial^2 \phi}{\partial r^2} + \frac{\partial}{\partial r} \left(\frac{g \phi}{f} \right) - \phi \frac{\partial}{\partial r} \left(\frac{g}{f} \right) http://bit.ly/1GjmBtk

Хотя есть дополнительный термин, термины по-прежнему подразумевается в \ Phi и дополнительный срок может быть представленный как неявный исходный термин для \ phi в зависимости от знака g/f. FiPy должен обрабатывать проблему с значком, просто используя ImplicitSourceTerm.

Обратите внимание, что часто используется r за пределами оператора при использовании цилиндрических координат. FiPy имеет класс сетки, CylindricalGrid1D, который обрабатывает цилиндрические координаты при использовании стандартных терминов (не требуется и пространственная переменная r в уравнениях).