
- •Лекция 11 Гидродинамическая модель баженовской свиты при термогазовом и парогазовом воздействии
- •1. Введение
- •2. Конкретные данные
- •3. Основы механики и термодинамики многофазной и многокомпонентной фильтрации
- •4. Исходные уравнения модели термогазового воздействия
- •5. Одномерные модели термогазового воздействия
- •6. Уравнения модели водогазового воздействия
- •7. Одномерные модели водогазового воздействия
- •8. Плоская аналитическая модель вытеснения нефти водой
- •9. Описание алгоритма
- •10. Заключение
- •Литература
- •Список обозначений
9. Описание алгоритма
В данном разделе дается общее описание алгоритма, предназначенного для численной реализации предложенных выше моделей термогазового воздействия на пласты баженовской свиты. Оказывается, что известные алгоритмы неприемлемы в принципе или же требуют радикальной переработки.
Разработка гибкого программного обеспечения для решения сложных междисциплинарных задач, к которым относится проблема численного моделирования термогазового воздействия на пласты баженовской свиты, представляет собой сложную, нетривиальную задачу даже в одномерной постановке. Проблема состоит в том, чтобы разработать удобный для исследователя интерфейс, позволяющий быстро уточнять, а также изменять математические модели физико-химических процессов, которые представляются исследователю определяющими на данном этапе аналитического и численного моделирования.
Известные коммерческие программные продукты, используемые в области численного моделирования междисциплинарных задач, такие как: ANSYS,COMSOL,FLUENTи другие, основаны на физически-ориентированном интерфейсе. В этом случае пользователь ограничен некоторым набором физико-химических модулей, т.е. фиксированных форм дифференциальных уравнений в частных производных и определяющих соотношений, что существенно ограничивает их применение особенно на этапе уточнения математической модели исследуемого процесса. С нашей точки зрения, для этой цели наиболее удобно использовать в качестве интерфейса саму систему уравнений в частных производных с соответствующими начальными и граничными условиями. Этот подход частично реализован, например, в таких пакетах какCLAWPACK, который применяется для решения гиперболических систем уравнений в частных производных, как в консервативной, так и неконсервативной формах, а такжеBACOL, ориентированный на решение параболическо-эллиптических систем методом адаптивной коллокациииb-сплайнами. Для системыMATLAB, существует модуль решения систем гиперболических уравнений в частных производныхHPDE, разработанный известным специалистом в области численного решения дифференциальных уравненийShampine. Известны и другие менее эффективные реализации такого подхода.
Основным недостатком указанных пакетов, при попытке их применения для решения поставленной нами задачи, является то, что они не ориентированы на решение задач с подвижными границами. Кроме того, в них предполагается, что все уравнения в системе разрешены относительно первой производной по времени, причем каждое уравнение содержит только одну эту производную. Данное ограничение не подходит для нашей математической модели, поскольку не дает возможности использовать метод отслеживания границ, основанный на применении преобразования Ландау, фиксирующего их положение. Последнее ограничение определяется тем, что пакеты были реализованы на стандартных языках программирования.
В общем случае системы, которые можно решать, например, с помощью пакета BACOL, должны иметь вид:
(9.1)
где n– число уравнений,u(x,t) – вектор неизвестных,i– номер уравнения. Естественно, что система должна быть дополнена необходимым набором начальных и граничных условий.
Исходя из сказанного, нам представляется, что решением поставленной задачи численного моделирования сложных физико-химических процессов совместно с возможностью уточнения математической модели является интерфейс пользователя, основанный на символьном представлении системы дифференциальных уравнений, но реализованный в некоторой системе компьютерной алгебры. Это позволяет символьно генерировать вычислительные схемы, которые затем можно будет решать любым подходящим численным методом. Этот подход можно рассматривать как промежуточную форму общего метода, называемого кодогенерацией, где на основе системы уравнений автоматически создается программа на некотором языке программирования, которая далее компилируюется для получения исполнимого модуля.
С одной стороны мы хотим иметь наиболее общую форму представления решаемой системы уравнений, но с другой стороны для создания эффективного символьно-численного алгоритма необходимо ввести некоторые ограничения. Во-первых, предполагается, что производные по пространству и времени аддитивно разделены, и, во-вторых, существует только одно уравнение, содержащее подвижные границы. Таким образом, нашу систему уравнений можно представить в виде:
,
(9.2)
Где
- некоторые произвольные функции,
заданные для каждого уравнения. Как и
раньшеu(x,y)
– вектор неизвестных,n– общее число уравнений. Кажется, что
достаточно определить только функциюf1, однако функцияf2
введена для того, чтобы можно было
получить консервативную дискретную
аппроксимацию исходной системы уравнений.
Для всех уравнений предполагается
наличие необходимых начальных и граничных
условий.
Для определенности будем полагать, что именно первое уравнение содержит подвижные границы. Рассмотрим задачу с одной подвижной границей, поскольку обобщение на случай существования нескольких подвижных границ не представляет никакой сложности. Таким образом, первое уравнение имеет вид:
,
(9.3)
(9.4)
. (9.5)
(9.6)
Для простоты записи здесь убран индекс
1. Решение определено на интервале
,
означают производные по времени и
пространству,s(t)
– положение подвижной границы, символы
- и + означают слева и справа от границы
соответственно,
- скачок на границе. Здесь условие на
подвижной границе (9.5,6) приведено в самой
простой форме, которая наиболее часто
используется в задачах с подвижной
границей. Не составляет большой проблемы
введение дополнительных источников,
определение зависимости величины скачка
от пространственной переменной или
времени, а также задание условия на
подвижной границе в т.н. неявной форме
Стефана.
Применим к этому уравнению преобразование,
предложенное Ландау в 1950 году, которое
фиксирует положение границы. Для левого
уравнения используем преобразование
,
а для правого
.
В результате после преобразования
каждое из уравнений будет задано на
отрезке [0,1], причем точка
=1
как для левого, так и для правого уравнения
будет соответствовать положению
свободной границы.
Применение этого преобразования позволяет точно отслеживать положение скачка. В этом и состоит существенное преимущество данного подхода, поскольку альтернативные методы сквозного счета могут существенно размывать скачок решения. После применения преобразования Ландау к первому уравнению можно использовать два различных подхода к решению всей системы.
Первый подход состоит в решении системы методом расщепления по физическим процессам. Для определенности приведем один шаг такого алгоритма. Для малого шага по времени сначала решается первое уравнение, содержащее подвижную границу при замороженном состоянии остальных компонент вектора неизвестных. Далее при известном положении подвижной границы и вычисленной первой компоненте вектора решения ищутся остальные неизвестные на этом шаге по времени. Для этого подходит любой численный метод решения системы, состоящей из n-1 уравнения в частных производных, который можно использовать для систем вида (9.2).
Основная проблема этого подхода состоит в том, что на каждом шаге по времени необходимо будет интерполировать решение для первой компоненты на узлы пространственной сетки, в которых ищутся остальные составляющие вектора решения. Кроме того, если сетка пространственной дискретизации для остальных компонент фиксированная или подвижная, но со своим алгоритмом движения узлов, не связанным с положением подвижной границы, то возникает проблема отслеживания подвижной границы. Очевидно, что она практически всегда будет расположена между узлами сетки. Это обстоятельство необходимо точно учитывать при разработке численных алгоритмов решения задач такого типа.
Второй подход состоит в применении пары преобразований Ландау ко всей исходной системе уравнений. В результате проблема интерполяции решения снимается, но мы проигрываем в размерности результирующей системы. Если в первом случае нужно будет решить систему из n+2 уравнений, то во втором случае система будет иметь размерность 2*n+1, включая уравнение для подвижной границы. Преимущество данного подхода состоит в том, что для решения всех уравнений можно использовать один и тот же метод. Единственно, что нужно хорошо продумать и реализовать, это точность сопряжения непрерывных решений на подвижной границе.
Общей проблемой для обоих подходов является запуск процедуры решения, поскольку преобразование Ландау привносит в решаемую систему уравнений сингулярность, связанную с тем, что начальное условие для подвижной границы s(0)=0. Обойти это ограничение возможно двумя способами: перенести подвижную границу в точку, расположенную достаточно близко от начала координат, но не вызывающую проблем с решением системы. При этом необходимо разумным образом провести интерполяцию начальных условий на это новое положение подвижной границы. Второй метод представляется более формальным, обоснованным и позволяющим провести доказательство корректности переноса границы. Он состоит в применении метода Ньютона-Канторовича для получения асимптотики малых времен. Идея состоит в том, чтобы для дифференциального оператора, соответствующего системе 2*n+1 уравнений, символьно (аналитически) определить производную Фреше, что сразу дает возможность построить метод Ньютона в соответствующем Банаховом пространстве. В результате на каждом шаге этой итерационной процедуры требуется решить уже линейную систему уравнений в частных производных. Решение системы можно искать в виде формальных степенных рядов, причем в качестве начального приближения можно выбрать соответствующую аппроксимацию начальных условий. Для достаточно малого времени условия теоремы Канторовича будут выполнены и процесс сойдется. Реализация данной итерационной процедуры в виде программы на внутреннем языке любой достаточно развитой системы компьютерной алгебры не представляет существенной проблемы.
В качестве метода пространственной дискретизации исходной системы 2*n+1 дифференциального уравнения в частных производных для сведения её к задаче Коши для системы обыкновенных дифференциальных уравнений можно использовать метод прямых или метод конечных элементов с эрмитовыми элементами, что повысит консервативность вычислительной схемы.
Таким образом, общий алгоритм численно-аналитического решения поставленной задачи можно представить в следующем виде:
1. С помощью разработанной программы символьных преобразований для некоторой фиксированной формы представления уравнений в частных производных получить преобразованную по Ландау систему уравнений, начальных и граничных условий. Если исходная система состояла из n уравнений, то в результате мы получим 2*n+1 уравнение.
2. Методом Ньютона-Канторовича построить асимптотику малых времен для решения преобразованной задачи. Полученный результат далее используется для задания начальных условий в задаче Коши.
3. Провести пространственную дискретизацию преобразованной системы уравнений в частных производных методом прямых на равномерной сетке по пространству или построить пространственную дискретизацию методом конечных элементов. В результате этого символьного преобразования будет получена соответствующая задача Коши для системы обыкновенных дифференциальных уравнений. Далее по полученной задаче Коши сгенерировать код по форме записи приемлемый для некоторой программы решения жестких систем дифференциально-алгебраических уравнений. Использование метода, ориентированного на решение жестких систем дифференциальных уравнений, определяется тем, что в результате дискретизации по пространству у нас с большой вероятностью получится именно такая система.
4. Решить выбранным численным методом сгенерированную задачу Коши.
Очевидно, что при переходе к полярным или сферическим координатам данный алгоритм позволяет решать радиально и сферически симметричные 2Dи 3Dзадачи,
В заключение приведем замечание Shampineо разработанном им модуле решения гиперболических систем уравнений в частных производных дляMATLAB- "Решение систем уравнений в частных производных такой степени общности не является простой, рутинной задачей, поэтому успех при использовании нашего программного обеспечения не гарантирован. С другой стороны, его легко использовать и оно показало свою эффективность при решении многих задач". Предложенная нами форма представления дифференциальных уравнений является более общей. Кроме того, сама задача осложняется наличием подвижных границ.