Қысқаша негізгісі
- Каждый неявный шаг — система , по уравнению на ячейку (или на каждую фазу ячейки). В строке — диагональ и по числу на каждую связь: семь чисел в трёхмерной декартовой сетке, остальное — нули.
- Матрица уравнения давления симметрична и имеет диагональное преобладание благодаря ёмкостному члену . Равномерный сдвиг давления — её собственный вектор с наименьшим собственным числом , поэтому с ростом шага обусловленность ухудшается. Якобиан полностью неявной схемы несимметричен и состоит из блоков.
- Метод Гаусса исключает неизвестные и решает треугольную систему обратной подстановкой. Исключение заполняет ленту матрицы: работа порядка , память — ; в трёхмерной сетке ширина ленты — целый слой ячеек, и для больших моделей ленточные методы непригодны.
- Якоби, Зейдель и верхняя релаксация уточняют каждое неизвестное по его уравнению. Они сходятся, если спектральный радиус матрицы перехода меньше единицы, но на больших сетках медленно: Якоби и Зейделю нужно итераций, верхней релаксации — .
- Методы Крылова (сопряжённые градиенты, GMRES) строят лучшее приближение из векторов , , , …; у сопряжённых градиентов число итераций растёт как . Предобусловливатель — грубое, но дешёвое подобие — уменьшает его в разы, особенно в неоднородных моделях.
- Итерации останавливают по относительной невязке. Невязка уравнения давления — небаланс ячейки в м³/сут: недорешённая система «создаёт» флюид, и её погрешность прямо входит в материальный баланс.
строка системы давления неявного шага (давления в начале шага одинаковы)
работа ленточного исключения и итерационного метода
итераций, чтобы уменьшить ошибку в раз
малая невязка — ещё не малая ошибка, если велико
- Обращать матрицу или якобиан: обратная матрица разреженной системы почти заполнена.
- Считать, что малая невязка гарантирует точные давления: ошибку ограничивает невязка, умноженная на число обусловленности.
- Ослаблять допуск решателя ради скорости: недорешённая система создаёт ошибку материального баланса и лишние итерации Ньютона.
- Сравнивать итерационные методы по первым итерациям: скорость в пределе задаёт спектральный радиус.
Сабақтан кейін сіз
- описать структуру матрицы гидродинамической модели: разреженность, ленту, симметрию, диагональное преобладание и зависимость обусловленности от шага по времени;
- решить небольшую систему методом Гаусса, объяснить LU-разложение, заполнение и роль нумерации ячеек и оценить работу ленточного метода;
- выполнить итерации методов Якоби, Гаусса — Зейделя и последовательной верхней релаксации и объяснить, от чего зависит их сходимость;
- объяснить идею методов подпространств Крылова и предобусловливания — неполного LU-разложения, двухступенчатого CPR, многосеточных методов — и почему они нужны неоднородным моделям;
- выбрать критерий остановки, связать невязку с материальным балансом и объяснить, почему решатель определяет время расчёта.
Откуда берутся системы уравнений и как они устроены
Неявная схема (явная и неявная схемы) превращает каждый шаг по времени в систему уравнений: перетоки считают по давлениям конца шага, ещё неизвестным, и уравнения всех ячеек решают совместно. В схеме IMPES это одна линейная система для давлений — по уравнению на ячейку. В полностью неявной схеме нелинейные уравнения решают методом Ньютона, и на каждой итерации — линейную систему с якобианом, по уравнению на каждую фазу ячейки (невязки и якобиан). За расчёт прогноза набираются сотни шагов по несколько итераций — тысячи систем с сотнями тысяч или миллионами неизвестных.
Запишем систему давления одного неявного шага для однофазной слабосжимаемой жидкости. Неизвестные — изменения давления за шаг :
- изменения давления ячейки и её соседей за шаг — неизвестные, МПа
- упругая ёмкость ячейки , м³/МПа
- коэффициент связи , м³/(сут·МПа)
- отбор скважиной в пластовых условиях (закачка — со знаком минус), м³/сут
- давления в начале шага, МПа
- шаг по времени, сут
Бірліктер: метрические промысловые
- линейное уравнение давления: свойства флюида и породы на шаге постоянны (нелинейный случай решают итерациями, и на каждой — такая же система);
- сумма — по всем связям ячейки: соседям по граням и несоседним соединениям; скважина с заданным забойным давлением добавляет к диагонали свой коэффициент.
Это система урока о неявной схеме, записанная для изменений давления. Коэффициенты связи получают из проводимостей (Перетоки между ячейками и проводимость). В строке ненулевые только диагональ и числа соседей: матрица разреженная.
- Разреженность (разреженная матрица). В строке столько ненулевых чисел, сколько у ячейки связей, плюс диагональ: три в одномерной полосе, пять в двумерной и семь в трёхмерной декартовой сетке; несоседние соединения и скважины добавляют немногие.
- Лента. При естественной нумерации — сначала вдоль оси , затем по строкам и по слоям — соседи ячейки отстоят от неё по номеру на 1, на и на . Ненулевые числа лежат на семи диагоналях, а ширина ленты — целый слой ячеек.
- Симметрия. Коэффициент связи одинаков для пар и , поэтому матрица давления симметрична. Якобиан полностью неявной схемы несимметричен — подвижность берут из ячейки выше по потоку (из чего складывается якобиан), — и каждой ячейке в нём отвечает блок 2 × 2 или 3 × 3.
- Диагональное преобладание. Диагональ больше суммы модулей остальных чисел строки на (и на коэффициент скважины с заданным забойным давлением). Симметричная матрица с таким преобладанием и положительной диагональю положительно определена: решение единственно, а многие методы гарантированно сходятся.
Сумма чисел каждой строки равна ёмкостному члену : коэффициент связи входит в неё дважды — с плюсом на диагонали и с минусом вне её. Поэтому при одинаковой ёмкости ячеек равномерное изменение давления во всём пласте — собственный вектор матрицы:
- матрица системы давления, м³/(сут·МПа)
- матрица связей: на диагонали , вне её , м³/(сут·МПа)
- единичная матрица и вектор из единиц — одинаковое изменение давления во всех ячейках, —
- упругая ёмкость ячейки (одинаковая у всех ячеек), м³/МПа
- наименьшее и наибольшее собственные числа, м³/(сут·МПа)
- число обусловленности , —
Бірліктер: метрические промысловые; безразмерно
- одинаковая ёмкость ячеек; внешние границы закрыты, скважины работают с заданным дебитом;
- скважина с заданным забойным давлением или граница с постоянным давлением добавляет к диагонали и увеличивает .
Связи не «видят» равномерного сдвига давления — его определяет только ёмкость. Чем крупнее шаг, тем меньше и тем хуже обусловлена система; в пределе несжимаемой жидкости с заданными дебитами она вырождена — давление определено с точностью до постоянной. Именно такие гладкие, общие для большой части модели составляющие ошибки труднее всего убрать простыми итерациями.
Слева квадрат из четырёх ячеек: внизу ячейки 1 (120 мД, нагнетательная скважина) и 2 (40 мД), вверху ячейки 3 (200 мД) и 4 (80 мД, добывающая скважина). Между соседями по граням подписаны проводимости: 720 между 1 и 2, 1371 между 3 и 4, 1800 между 1 и 3, 640 между 2 и 4 мД·м. Справа сетка 4 на 4: закрашены диагональ и элементы (1, 2), (1, 3), (2, 4), (3, 4) с симметричными; клетки (1, 4) и (4, 1) пусты, а клетки (2, 3) и (3, 2) отмечены другим цветом как заполнение после исключения первого неизвестного.
- Участок
- 2 × 2 ячейки 300 × 300 × 12 м: 1 — юго-западная, 2 — юго-восточная, 3 — северо-западная, 4 — северо-восточная; внешние грани закрыты
- Проницаемость ячеек 1–4
- 120; 40; 200; 80 мД
- Порода и жидкость
- = 0,20; МПа⁻¹; вязкость 1,0 мПа·с
- Скважины и шаг
- закачка 400 м³/сут в ячейку 1, отбор 400 м³/сут из ячейки 4 (пластовые условия); неявный шаг = 10 сут от одинакового давления
- Проводимости — две половины ячеек последовательно (проводимость связи); у одинаковых ячеек с гранью м² и половиной ячейки 150 м : , , , мД·м.
- Коэффициенты связи : , , , м³/(сут·МПа). Ёмкость ячейки м³/МПа, .
- Диагональ — плюс коэффициенты связей ячейки: 247,356; 148,408; 302,923; 203,975.
- Уравнения ячеек (давления в начале шага одинаковы, поэтому справа только скважины): 1: ; 2: ; 3: ; 4: .
- Собственные числа матрицы: 32,4; 176,4; 221,0; 472,9 — наименьшее равно ; число обусловленности .
Бұл нені білдіреді. Нули на местах (1, 4) и (2, 3) — частный случай главного свойства: в строке только свои связи. В модели из миллиона ячеек в строке те же семь чисел, а нулей — почти миллион. Наименьшее собственное число равно — это равномерный сдвиг давления. При шаге 100 сут оно стало бы вдесятеро меньше, а число обусловленности выросло бы почти вдесятеро (таблица ниже). Данные примера условные.
Прямые методы: исключение Гаусса и LU-разложение
Метод Гаусса (Gaussian elimination) решает систему в два хода. Прямой ход исключает неизвестные по очереди: из всех уравнений ниже первого вычитают первое, умноженное на такие числа, чтобы исчезло первое неизвестное; затем так же второе — и так до последнего. Матрица становится верхнетреугольной. Обратный ход — подстановка снизу вверх: последнее уравнение содержит одно неизвестное, каждое предыдущее — одно новое.
- элементы матрицы и правой части, которые меняются при исключении, в единицах системы
- номер исключаемого неизвестного (ведущая строка), —
- множитель строки ; множители образуют нижнетреугольную матрицу разложения, —
Бірліктер: в единицах системы
- ведущий элемент не равен нулю; при диагональном преобладании это гарантировано, и перестановки строк не нужны;
- строки, в которых , не меняются.
После исключения всех неизвестных матрица становится верхнетреугольной (), а множители образуют нижнетреугольную матрицу с единицами на диагонали: — LU-разложение. Его делают один раз, а затем для любой правой части решают две треугольные системы. Для симметричной положительно определённой матрицы применяют разложение Холецкого — вдвое дешевле.
- элементы верхнетреугольной матрицы после прямого хода, в единицах системы
- правая часть после прямого хода, в единицах системы
- неизвестные, в единицах системы
Бірліктер: в единицах системы
- верхнетреугольная система с ненулевой диагональю.
Для трёхдиагональной матрицы оба хода и составляют метод прогонки: число действий пропорционально числу неизвестных.
- Система
- из предыдущего примера; коэффициенты — с тремя знаками после запятой, множители — с пятью
- Исключаем из строки 2. Множитель ; прибавляем к строке 2 строку 1, умноженную на него: диагональ , правая часть , а на месте нуля при появляется — это заполнение.
- Строка 3: множитель ; диагональ , при появляется , правая часть . Строку 4 исключение не меняет: в ней нет.
- Исключаем с помощью новой строки 2. Строка 3: множитель ; диагональ , при : , правая часть .
- Строка 4: множитель ; диагональ , при : , правая часть .
- Исключаем из строки 4: множитель ; диагональ , правая часть . Матрица стала верхнетреугольной.
- Обратная подстановка: ; ; ; МПа.
- Проверка: решение без округлений — 1,71099; 0,01887; 0,14370; −1,87356 МПа; округления в цепочке изменили ответ не больше чем на 0,00002 МПа.
Бұл нені білдіреді. Исключив ячейку 1, мы связали её соседей — ячейки 2 и 3, которые гранью не связаны: в матрице появился новый ненулевой элемент. Так происходит всегда, и в большой сетке заполнение занимает всю ленту (рисунок ниже). Обратите внимание на : это небольшая разность больших чисел, и при вычислениях с малым числом знаков она теряла бы точность; машинная арифметика держит около 16 знаков, но плохо обусловленные системы теряют их тем больше, чем больше . Данные примера условные.
Две квадратные сетки 12 на 12. На первой закрашены главная диагональ, соседние с ней диагонали (с разрывами на границах строк сетки) и две диагонали, отстоящие от главной на 4 позиции. На второй к ним добавлены клетки другого цвета, заполняющие пространство между главной диагональю и дальними диагоналями: лента шириной 4 по обе стороны от главной диагонали заполнена, кроме трёх клеток в левом верхнем углу над диагональю и трёх симметричных под ней.
Заполнение и нумерация. Исключение неизвестного связывает всех его ещё не исключённых соседей друг с другом, поэтому в сетке при естественной нумерации заполняется почти вся лента между крайними ненулевыми диагоналями. Работа и память растут с её шириной, и порядок нумерации важен: нумеруют сначала вдоль самого короткого направления. Для сетки 10 × 5 нумерация вдоль длинной стороны даёт 648 новых элементов, вдоль короткой — 288. Обратная матрица разреженной системы заполнена почти целиком, поэтому её никогда не строят (якобиан не обращают).
- число операций умножения со сложением, —
- число хранимых чисел разложения Холецкого (у LU-разложения — вдвое больше: и ), —
- число неизвестных, —
- полуширина ленты — наибольшая разность номеров связанных неизвестных, —
- число ячеек вдоль осей, по которым идёт нумерация (быстрее всего — вдоль ), —
Бірліктер: безразмерные счёты
- главный член оценки при ; исключение без перестановок строк;
- для разложения Холецкого симметричной матрицы работа примерно вдвое меньше; для плотной матрицы работа — .
Работа растёт как квадрат ширины ленты, поэтому в трёхмерной модели нумеруют сначала по вертикали — обычно это самое короткое направление. Даже тогда ширина ленты — тысячи, и для моделей в сотни тысяч ячеек ленточное исключение слишком дорого (пример в последнем разделе).
Для разреженных матриц есть и более экономные прямые методы: неизвестные перенумеровывают так, чтобы заполнение было меньше (методы минимальной степени, вложенных сечений — nested dissection), и хранят только ненулевые числа. В двумерных задачах они работают хорошо; в трёхмерных их работа растёт примерно как квадрат числа неизвестных, и для моделей в миллионы ячеек, которые решают тысячи раз за расчёт, они слишком дороги. В симуляторах прямые методы остаются для небольших систем — двумерных разрезов, уравнений скважин, грубых уровней многосеточных методов — и как основа предобусловливателей.
Простые итерационные методы: Якоби, Зейдель, верхняя релаксация
Итерационный метод начинает с приближения — например, с нулевых изменений давления (давлений начала шага) — и уточняет его. Простейшая идея: каждое уравнение решить относительно «своего» неизвестного, подставив значения соседей из прошлого приближения, и повторять, пока изменения не станут малы.
- приближение неизвестного на итерации , в единицах неизвестных
- элементы матрицы и правой части, в единицах системы
- значение, которое дала бы формула Зейделя, в единицах неизвестных
- параметр верхней релаксации, , —
Бірліктер: в единицах системы
- ; Зейдель и SOR проходят уравнения по порядку номеров и сразу используют новые значения;
- сходимость гарантирована при строгом диагональном преобладании (Якоби и Зейдель), а для симметричной положительно определённой матрицы — у Зейделя и у SOR при .
Якоби пересчитывает все неизвестные по значениям прошлой итерации; Зейдель сразу использует уже уточнённые; последовательная верхняя релаксация (successive over-relaxation, SOR) «перешагивает» за поправку Зейделя в раз. Итерация стоит примерно одного умножения матрицы на вектор.
- Система
- участок 2 × 2 из первого примера, шаг 10 сут
- Начальное приближение
- — давления начала шага
- Критерий остановки
- относительная невязка
- Якоби, итерация 1: в уравнениях 1 и 4 соседи пока нулевые, , ; в уравнениях 2 и 3 правые части нулевые, и .
- Якоби, итерация 2: , то есть ; ; и не изменились — их соседи на итерации 1 были нулевыми.
- Зейдель, итерация 1: , как у Якоби; затем новое сразу идёт в уравнения 2 и 3: , ; в уравнении 4 — новые и : .
- Спектральный радиус матрицы Якоби = 0,858; у Зейделя = 0,736; оптимальный параметр даёт = 0,32.
- Итераций до невязки : Якоби — 65, Зейдель — 39, верхняя релаксация с = 1,32 — 15; метод сопряжённых градиентов (следующий раздел) — 3.
Бұл нені білдіреді. На первой итерации Зейдель «перескочил»: и получили 0,6692 и 0,8196 МПа — намного больше решения, потому что в уравнениях 2 и 3 он уже видел новое , но ещё не видел отрицательного . По первым итерациям методы не сравнивают: скорость в пределе задаёт спектральный радиус, и Зейдель затем сходится вдвое быстрее Якоби. Сопряжённые градиенты закончили за 3 итерации: для такой маленькой системы метод Крылова точен за число шагов, не большее числа неизвестных. Данные примера условные.
Почему итерации сходятся и как быстро? Ошибка приближения на каждой итерации умножается на одну и ту же матрицу перехода (дополнительный раздел). Итерации сходятся при любом начальном приближении, если спектральный радиус — наибольший модуль собственного числа — меньше единицы, и в пределе ошибка убывает в раз за итерацию:
- число итераций, чтобы уменьшить ошибку в раз, —
- спектральный радиус матрицы перехода метода, —
- спектральные радиусы методов Якоби, Зейделя и верхней релаксации, —
- оптимальный параметр верхней релаксации, —
Бірліктер: безразмерные
- оценка для большого числа итераций; на первых итерациях скорость зависит от начальной ошибки;
- соотношения для Зейделя и SOR — для согласованно упорядоченных матриц, к которым относятся пятиточечные матрицы декартовых сеток при естественной нумерации.
Зейдель сходится вдвое быстрее Якоби, а верхняя релаксация с оптимальным — в разы быстрее Зейделя. Но стремится к единице при измельчении сетки и при росте шага по времени: медленнее всего затухают ошибки, гладкие на масштабе многих ячеек.
- Шаг , сут
- 1
- 0,387
- 2,36
- Якоби; Зейдель; SOR
- 12; 8; 6
- Сопряжённые градиенты
- 3
- Шаг , сут
- 10
- 0,858
- 14,6
- Якоби; Зейдель; SOR
- 65; 39; 15
- Сопряжённые градиенты
- 3
- Шаг , сут
- 100
- 0,984
- 137
- Якоби; Зейдель; SOR
- 464; 287; 46
- Сопряжённые градиенты
- 3
| Шаг , сут | Якоби; Зейдель; SOR | Сопряжённые градиенты | ||
|---|---|---|---|---|
| 1 | 0,387 | 2,36 | 12; 8; 6 | 3 |
| 10 | 0,858 | 14,6 | 65; 39; 15 | 3 |
| 100 | 0,984 | 137 | 464; 287; 46 | 3 |
Итерации от нулевого приближения до относительной невязки ; SOR — с оптимальным (1,04; 1,32; 1,69). Величина растёт строго пропорционально шагу, как предсказывает формула для равномерного сдвига давления, а с ней — и число простых итераций.
На большой сетке простым методам ещё труднее. За одну итерацию Якоби поправка доходит от ячейки только до её соседей, а чтобы исправить гладкую ошибку — например, общий уровень давления в большом блоке пласта, — сведения должны пройти через всю сетку. Поэтому число итераций Якоби и Зейделя растёт как квадрат числа ячеек вдоль стороны, а верхней релаксации — пропорционально ему (таблица в следующем разделе). В симуляторах долго применяли блочные варианты, например линейную верхнюю релаксацию (line SOR, LSOR): целую строку ячеек решают сразу методом прогонки. Сегодня простые итерации работают главным образом внутри более сильных методов — как сглаживатели в многосеточных методах и предобусловливателях.
Методы подпространств Крылова и предобусловливание
Простые итерации используют только последнее приближение. Методы подпространств Крылова (Krylov subspace methods) помнят историю: приближение на итерации ищут как лучшую комбинацию векторов , , …, , которые получаются умножением матрицы на вектор. Для симметричной положительно определённой матрицы — уравнения давления — это метод сопряжённых градиентов (conjugate gradients, CG): он минимизирует ошибку в «энергетической» норме и в точной арифметике заканчивает работу не больше чем за итераций. В примере с участком 2 × 2 — за три: в правой части нет составляющей равномерного сдвига (закачка равна отбору), и оставшихся направлений три. Для несимметричных якобианов применяют GMRES и ORTHOMIN — они хранят историю направлений, и её длину ограничивают, отбрасывая старые направления или периодически начиная заново, — или BiCGStab, который обходится короткой историей, но сходится менее гладко.
- ошибка приближения после итераций, в единицах неизвестных
- энергетическая норма , —
- число обусловленности матрицы, —
- во сколько раз нужно уменьшить ошибку (обратная величина), —
Бірліктер: безразмерные
- симметричная положительно определённая матрица; точная арифметика;
- оценка сверху: на практике сходимость часто быстрее, особенно если собственные числа собраны в группы.
Число итераций растёт как корень из числа обусловленности: для модельной задачи — пропорционально числу ячеек вдоль стороны, как у верхней релаксации, но без подбора параметра. Отсюда смысл предобусловливания — уменьшить .
Предобусловливание (предобусловливатель, preconditioner). Вместо решают равносильную систему, в которой матрица ближе к единичной:
- предобусловливатель: подобие , система с которым решается дёшево, в единицах
- число обусловленности, —
Бірліктер: в единицах системы
- матрицу не строят: на каждой итерации решают систему ;
- для метода сопряжённых градиентов должна быть симметричной положительно определённой.
Хороший предобусловливатель — компромисс: чем ближе к , тем меньше итераций, но тем дороже каждая. Крайние случаи — (одна итерация, но это и есть прямое решение) и диагональ (дёшево, но помогает мало).
- Неполное LU-разложение (incomplete LU, ILU): исключение Гаусса, в котором заполнение отбрасывают; в ILU(0) множители хранят только на местах ненулевых элементов , в ILU(k) — и часть заполнения. Дёшево и особенно полезно для неоднородных моделей.
- Вложенная факторизация (nested factorization) — предобусловливатель, придуманный для гидродинамических моделей: он использует вложенный порядок связей по осям сетки (внутри линии ячеек, между линиями, между плоскостями) и широко применяется в симуляторах с декартовыми и угловыми сетками.
- Двухступенчатое предобусловливание CPR (constrained pressure residual) для полностью неявной схемы. Сначала из уравнений ячейки составляют уравнение для давления и решают его отдельно: эта часть задачи «эллиптическая» — каждая ячейка чувствует все остальные, и ошибка давления гладкая и общая для всей модели. Затем остаток ошибки, связанный в основном с насыщенностями и местный, убирают дешёвым ILU для всей системы.
- Многосеточные методы (multigrid; алгебраические, AMG, строят грубые уровни прямо по матрице): гладкую ошибку, которую простые итерации убирают медленно, исправляют на грубых сетках, где она перестаёт быть гладкой. Число итераций почти не зависит от размера сетки, поэтому AMG часто решает уравнение давления на первой ступени CPR.
- Метод
- Якоби
- 10 × 10
- 258
- 20 × 20
- 986
- 40 × 40
- 3729
- 20 × 20, неоднородный
- 2575
- Метод
- Зейдель
- 10 × 10
- 130
- 20 × 20
- 494
- 40 × 40
- 1866
- 20 × 20, неоднородный
- 1297
- Метод
- SOR с оптимальным
- 10 × 10
- 28
- 20 × 20
- 53
- 40 × 40
- 102
- 20 × 20, неоднородный
- 92
- Метод
- Сопряжённые градиенты
- 10 × 10
- 13
- 20 × 20
- 33
- 40 × 40
- 66
- 20 × 20, неоднородный
- 299
- Метод
- Сопряжённые градиенты + ILU(0)
- 10 × 10
- 10
- 20 × 20
- 16
- 40 × 40
- 30
- 20 × 20, неоднородный
- 24
| Метод | 10 × 10 | 20 × 20 | 40 × 40 | 20 × 20, неоднородный |
|---|---|---|---|---|
| Якоби | 258 | 986 | 3729 | 2575 |
| Зейдель | 130 | 494 | 1866 | 1297 |
| SOR с оптимальным | 28 | 53 | 102 | 92 |
| Сопряжённые градиенты | 13 | 33 | 66 | 299 |
| Сопряжённые градиенты + ILU(0) | 10 | 16 | 30 | 24 |
Квадратный участок пласта, окружённый водоносным горизонтом с постоянным давлением; несжимаемая жидкость, закачка в центре; итерации от нулевого приближения. Неоднородный вариант — логнормальная проницаемость со стандартным отклонением , равным 2: она меняется от ячейки к ячейке более чем на 4 порядка. Оптимальное для SOR — 1,53; 1,73; 1,85; 1,82. Данные условные.
Таблица показывает три вещи. При удвоении сетки число итераций Якоби и Зейделя растёт почти вчетверо (Якоби: 258 → 986 → 3729), у верхней релаксации и сопряжённых градиентов — примерно вдвое. Неоднородность замедляет простые методы в 1,7–2,6 раза, а сопряжённые градиенты без предобусловливания — примерно в 9 раз: их скорость задаёт обусловленность, которую контрасты проводимостей ухудшают на порядки. Неполное LU-разложение почти снимает эту трудность: 24 итерации против 299. В однородной задаче ILU(0) уменьшает число итераций лишь в 1,3–2,2 раза и не меняет его роста с размером сетки (10 → 16 → 30); рост убирают многосеточные методы.
График десятичного логарифма относительной невязки от 0 до −6 (невязка от 1 до одной миллионной) по итерациям от 0 до 100. Кривые Якоби и Зейделя опускаются медленно и к сотой итерации доходят лишь до нескольких сотых. Кривая верхней релаксации после медленного начала круто падает и достигает одной миллионной на 53-й итерации. Кривая сопряжённых градиентов неровная, но достигает одной миллионной на 33-й итерации, а с предобусловливанием ILU — на 16-й.
Когда остановить итерации: невязка, ошибка и баланс
- невязка (residual) приближения , в единицах правой части
- допуск — относительная невязка, при которой итерации останавливают, —
- число обусловленности, —
- норма вектора (например, корень из суммы квадратов), —
Бірліктер: безразмерные отношения
- невязку можно вычислить, ошибку — нет: точное решение неизвестно; неравенство для ошибки — оценка сверху.
Малая относительная невязка гарантирует малую ошибку только в хорошо обусловленной системе. В плохо обусловленной — крупный шаг, большие контрасты проводимостей, мелкие ячейки рядом с крупными — давления могут быть заметно неточными при той же невязке.
У невязки уравнения давления есть физический смысл. Каждое уравнение — баланс ячейки за шаг в кубометрах в сутки, и невязка — объём, «потерянный» или «созданный» в ячейке за сутки. Сумма невязок по всем ячейкам — погрешность материального баланса шага: перетоки между ячейками при сложении взаимно уничтожаются (почему сетка не теряет массу). Поэтому критерии сходимости симуляторов формулируют через нормированные невязки ячеек и общий баланс (критерии сходимости).
- Система
- участок 2 × 2, шаг 10 сут; метод Зейделя от нулевого приближения
- Допуски
- относительная невязка и
- До невязки нужно 9 итераций (невязка 0,0088). Изменения давления: 1,7793; 0,0714; 0,2038; −1,8250 МПа против точных 1,7110; 0,0189; 0,1437; −1,8736 — ошибка до 0,068 МПа.
- Ёмкость, умноженная на сумму изменений: м³. В точном решении сумма равна нулю — закачка равна отбору. Значит, недорешённые давления «создали» 74 м³ жидкости — 1,9 % закачанных за шаг 4000 м³.
- До невязки — 24 итерации: ошибка давления 0,0007 МПа, «созданный» объём 0,8 м³, или 0,02 % закачки.
Бұл нені білдіреді. Невязка звучит как «один процент», но это процент от правой части, а не от давлений: изменение давления в ячейке 2, где правая часть нулевая, вышло в 3,8 раза больше точного. Ошибка баланса накапливается от шага к шагу; по ней симулятор и судит, достаточно ли решены уравнения. В полностью неявной схеме допуски линейного решателя согласуют с итерациями Ньютона: на первых итерациях достаточно уменьшить невязку на один-два порядка, на последних — сильнее. Данные примера условные.
Сколько это стоит: почему решатель определяет время расчёта
- число неизвестных, —
- полуширина ленты, —
- число итераций, —
- операций на неизвестное за итерацию: умножение матрицы на вектор, предобусловливатель, скалярные произведения, —
Бірліктер: операции умножения со сложением
- главные члены оценок; для семиточечной матрицы с ILU(0) — порядка двух-трёх десятков.
Прямой метод платит степенью размера задачи, итерационный — числом итераций, которое тоже растёт с размером, но медленнее.
- Сетка
- 100 × 100 × 20 ячеек, по уравнению давления на ячейку: = 200 000
- Итерационный решатель (допущение)
- 50 итераций сопряжённых градиентов с предобусловливанием, около 25 операций на неизвестное за итерацию
- Компьютер (допущение)
- операций умножения со сложением в секунду на одно ядро
- Число решений за расчёт (допущение)
- 4000: сотни шагов по несколько итераций
- Плотная матрица: операций — 31 сут на одно решение.
- Лента при естественной нумерации: ; работа — 5,6 ч; память чисел, по 8 байт — 16 ГБ.
- Нумерация сначала по вертикали: ; работа — 13 мин на решение, память 3,2 ГБ.
- Итерационный решатель: операций — 0,25 с.
- За 4000 решений: лента (лучшая нумерация) — 37 сут, итерационный решатель — 17 мин.
Бұл нені білдіреді. Для трёхмерных моделей выбор очевиден, и он тем очевиднее, чем больше сетка: работа ленточного метода растёт как (ширина ленты — слой ячеек), итерационного — примерно как , умноженное на медленно растущее число итераций. Скорость компьютера и число операций здесь — допущения для оценки порядка величин. Данные примера условные.
Почему решатель определяет время расчёта? Сборка системы — расчёт свойств, перетоков и производных — стоит пропорционально числу ячеек. Решение — числу ячеек, умноженному на число итераций, а оно растёт с размером сетки, контрастами проводимостей, шагом по времени и нелинейностью задачи. Поэтому в больших моделях линейный решатель обычно забирает основную долю времени, и его сходимость важна не меньше, чем выбор сетки.
- 1Читать журнал
на каких шагах растёт число линейных итераций и где сокращается шаг; после пуска и остановки скважин это нормально, на спокойных участках — сигнал.
- 2Искать плохие ячейки
крошечный поровый объём рядом с крупными ячейками, проводимости, отличающиеся на много порядков, несоседние соединения с огромной проводимостью: они портят обусловленность; такие ячейки делают неактивными или объединяют с соседними.
- 3Проверить скважины
большой индекс скважины в ячейке с малым объёмом даёт резкие изменения давления и плохую обусловленность.
- 4Менять настройки осознанно
допуски и тип предобусловливателя меняют, сверяя баланс и результаты с расчётом при прежних настройках.
Терминдер мен белгілер
- Линейный решатель
- часть симулятора, решающая системы неявных шагов и итераций Ньютона.
- Разреженная матрица
- матрица, в строке которой ненулевых чисел столько, сколько связей у ячейки, плюс диагональ.
- Ширина ленты
- наибольшая разность номеров связанных неизвестных; при естественной нумерации — число ячеек в строке (2D) или в слое (3D).
- Заполнение
- новые ненулевые элементы, которые появляются при исключении: исключённое неизвестное связывает своих соседей.
- Спектральный радиус
- наибольший модуль собственного числа матрицы перехода итерационного метода; метод сходится при .
- Число обусловленности
- отношение наибольшего собственного числа симметричной матрицы к наименьшему; во сколько раз относительная ошибка может превышать относительную невязку.
- Предобусловливатель
- легко обратимое подобие матрицы, уменьшающее число итераций: ILU, вложенная факторизация, CPR, многосеточные методы.
- Невязка
- ; для уравнения давления — небаланс ячейки в м³/сут.
Жиі қателіктер
«Чтобы решить систему, надо обратить матрицу».
Обратная матрица разреженной системы почти заполнена: через цепочку соседей каждая ячейка влияет на все остальные, и для модели в миллион ячеек это триллион чисел. Систему решают исключением или итерациями, не строя обратной матрицы.
«Невязка мала — значит, давления точны».
Относительная ошибка может превышать относительную невязку в раз. В примере урока при невязке изменение давления в ячейке 2 вышло почти вчетверо больше точного, а баланс шага нарушился на 1,9 % закачки.
«Если расчёт медленный, можно ослабить допуск решателя».
Недорешённая система «создаёт» или «теряет» флюид, и ошибка баланса накапливается от шага к шагу; в полностью неявной схеме грубый допуск ещё и добавляет итераций Ньютона. Допуск меняют, только сверяя баланс и результаты.
«Простые итерации годятся для любой сетки — понадобится лишь больше итераций».
Их число растёт как квадрат числа ячеек вдоль стороны: в модельной задаче 40 × 40 Якоби нужно 3729 итераций, а сопряжённым градиентам с ILU(0) — 30. Для больших моделей нужны методы Крылова с предобусловливанием.
Толық: тереңдетілген
Почему простые итерации медленны на больших сетках
Запишем матрицу как : диагональ, нижняя и верхняя части с обратным знаком. Метод Якоби: . Вычтем его из точного равенства :
- ошибка приближения , в единицах неизвестных
- диагональ, нижняя и верхняя треугольные части матрицы (с обратным знаком), в единицах матрицы
- матрицы перехода методов Якоби и Зейделя, —
Бірліктер: безразмерные
- линейная система с постоянной матрицей; диагональ без нулей.
После итераций ошибка равна : её составляющие вдоль собственных векторов умножаются на собственные числа. Медленнее всех затухает составляющая с наибольшим модулем собственного числа — спектральным радиусом.
Для одномерной полосы из одинаковых ячеек с заданным давлением за концами, в простейшей записи (на диагонали 2, рядом −1), собственные векторы матрицы Якоби — синусоиды с полуволнами, а собственные числа — . Самая гладкая синусоида затухает медленнее всех: , и число итераций — пропорционально квадрату числа ячеек. Изрезанные составляющие, меняющие знак от ячейки к ячейке, метод Зейделя убирает за несколько итераций; на этом построены многосеточные методы: простые итерации сглаживают ошибку, а её гладкую часть исправляют на грубой сетке, где она уже не гладкая.
Как устроен метод сопряжённых градиентов
- невязка на итерации , в единицах правой части
- направление поиска, в единицах неизвестных
- длина шага вдоль направления и коэффициент нового направления, —
Бірліктер: в единицах системы
- симметричная положительно определённая матрица; с предобусловливателем в направлениях и скалярных произведениях вместо используют .
За итерацию — одно умножение матрицы на вектор и два скалярных произведения. Направления сопряжены: при , поэтому шаг вдоль нового направления не портит достигнутого вдоль прежних. В точной арифметике после итераций ошибка наименьшая из возможных в подпространстве Крылова размерности ; машинные округления постепенно нарушают сопряжённость, и на практике метод работает как итерационный.
Системы полностью неявной схемы и двухступенчатое предобусловливание
В полностью неявной схеме у ячейки два-три неизвестных — давление и насыщенности, и матрица Ньютона состоит из блоков 2 × 2 или 3 × 3 (якобиан). Части задачи ведут себя по-разному. Давление ведёт себя почти «эллиптически»: на неявном шаге изменение дебита скважины сказывается во всей модели, и ошибка давления гладкая и общая. Насыщенности «гиперболические»: они переносятся потоком и меняются в основном у фронтов и скважин, и их ошибка местная.
Двухступенчатое предобусловливание CPR использует это различие. На первой ступени из уравнений фаз ячейки составляют одно уравнение для давления — примерно так, как суммируют балансы фаз в уравнении давления (уравнение давления), — и решают его сильным методом, обычно алгебраическим многосеточным. На второй ступени дешёвое неполное LU-разложение всей системы убирает оставшуюся местную ошибку. Каждая ступень делает то, что умеет лучше, и число итераций внешнего метода (как правило, GMRES) остаётся небольшим даже для моделей в миллионы ячеек.
Басқа тақырыптармен байланыс
- Уравнение давления для однофазной фильтрации — уравнения ячеек, неявная схема и метод прогонки для одномерной сетки.
- Схемы IMPES и полностью неявная — откуда берутся линейные системы на итерациях Ньютона и критерии сходимости.
- Перетоки между ячейками и проводимость — проводимости — коэффициенты матрицы — и несоседние соединения.
- Конечные разности: от уравнений к вычислениям — чем сходимость итераций отличается от сходимости разностной схемы.
- Сетки в гидродинамических моделях — размер и форма сетки — от них зависят размер системы и обусловленность.
- Уравнения двухфазной фильтрации — уравнение давления и уравнения насыщенности двухфазной модели.
Өзіңізді тексеріңіз
- 1
Сколько ненулевых чисел в строке матрицы давления для внутренней ячейки трёхмерной декартовой сетки без несоседних соединений и скважин?
- А.7
- Б.3
- В.27
- Г.5
Жауабын көрсету
Дұрыс жауап: А. 7
Диагональ и шесть соседей по граням — справа, слева, спереди, сзади, сверху и снизу. 27 чисел было бы, если связывать ячейку со всеми соседями по углам и рёбрам, как в некоторых многоточечных схемах.
- 2
Модель — 200 × 100 × 30 ячеек. Чему равна ширина ленты при естественной нумерации (быстрее всего — вдоль длинной оси, затем вдоль второй, затем по слоям) и при нумерации сначала по вертикали, затем вдоль короткой горизонтальной оси? Во сколько раз различается работа ленточного исключения?
Жауабын көрсету
Естественная нумерация: . Сначала по вертикали, затем вдоль короткой оси: . Работа пропорциональна : . Но даже 3000 — слишком широкая лента для шести сотен тысяч неизвестных: операций на одно решение.
- 3
Шаг по времени увеличили в 10 раз. Как изменится число обусловленности системы давления закрытого пласта со скважинами с заданным дебитом, если шаг уже крупный?
- А.Не изменится
- Б.Уменьшится примерно в 10 раз
- В.Увеличится в 100 раз
- Г.Увеличится примерно в 10 раз
Жауабын көрсету
Дұрыс жауап: Г. Увеличится примерно в 10 раз
Наименьшее собственное число равно — оно уменьшится в 10 раз, а наибольшее почти не изменится: его задают связи. В примере урока при переходе от 10 к 100 сут число обусловленности выросло с 14,6 до 137, а итераций Якоби понадобилось в семь раз больше.
- 4
Методу Якоби на сетке 30 × 30 понадобилось 600 итераций, а сопряжённым градиентам — 50. Сколько примерно понадобится каждому методу на сетке 60 × 60 того же пласта?
Жауабын көрсету
Число итераций Якоби растёт как квадрат числа ячеек вдоль стороны: около . У сопряжённых градиентов — как корень из числа обусловленности, то есть пропорционально числу ячеек вдоль стороны: около 100. При этом каждая итерация на сетке 60 × 60 вчетверо дороже, так что общая работа растёт в 16 и в 8 раз.
- 5
Относительная невязка решения — , число обусловленности системы — около . Что можно сказать об относительной ошибке давлений?
- А.Она не больше
- Б.Она может достигать , то есть быть больше самого решения
- В.Она не больше
- Г.Она равна нулю, раз невязка мала
Жауабын көрсету
Дұрыс жауап: Б. Она может достигать , то есть быть больше самого решения
Оценка сверху — : при плохой обусловленности малая невязка не гарантирует даже верного порядка величин. На практике ошибка обычно меньше оценки, но поэтому в плохо обусловленных задачах допуск делают строже или улучшают предобусловливатель.
- 6
Сумма невязок уравнений давления по всем ячейкам после решения — +15 м³/сут при шаге 20 сут. Что это значит для материального баланса?
Жауабын көрсету
Сумма невязок — небаланс модели: перетоки между ячейками при сложении уничтожаются, и остаются накопление и скважины. За шаг уравнения давления «потеряли» или «создали» м³ флюида — в зависимости от знака, принятого в записи невязки. Это и есть погрешность материального баланса, которую печатает симулятор; её сравнивают с отборами и поровым объёмом и при заметной величине ужесточают допуск.
Жаңартылған: 19 октября 2026 г.