Я працюю над проектом, у якому я маю два домени, пов'язані з adv-diff через їхні відповідні умови (один домен додає масу, інший віднімає масу). Для стислості я моделюю їх у стаціонарному стані. Рівняння є вашим стандартним рівнянням транспорту адвекційно-дифузійного транспорту із вихідним терміном виглядати так:
Де - дифузійний та адвективний потік для видів , а - вихідний термін для виду .
Мені вдалося написати вирішувач для моєї проблеми за допомогою методу Ньютона-Рафсона і повністю з'єднав два домени за допомогою матриці блокової маси, тобто:
Термін використовується для визначення матриці якобіан та оновлення як і :
або
Щоб прискорити роботу, я не обчислюю якобіанську кожну ітерацію - зараз я граю з кожніми п’ятьма ітераціями, які, здається, працюють досить добре і підтримують рішення стабільним.
Проблема полягає в тому, що я перейду до більшої системи, де обидва домени знаходяться в 2D / 2.5D, і обчислення матриці Якобій швидко вичерпає мої наявні комп'ютерні ресурси. Я будую цю модель, щоб згодом її використовувати в налаштуваннях оптимізації, тому я також не можу бути за кермом при кожній ітерації, що налаштовує коефіцієнт демпфування тощо.
Чи правильно я шукаю в іншому місці більш надійний і алгоритм для моєї проблеми, чи це так добре, як це отримується? Я трохи заглянув у квазілінеаризацію, але не впевнений, наскільки це застосовано до моєї системи.
Чи є які-небудь інші алгоритми гладкості, які я, можливо, пропустив, які можуть вирішити систему нелінійних рівнянь, не вдаючись до повторного обчислення якобіян як відстороненого?