Программирование симуляторов

Последнее сообщение
Mind Master 27 12
Авг 09

Здравствуйте, коллеги!
Есть здесь такие, кто занимался вопросами создания программ для гидродинамического моделирования, а именно:

  • Постановка математической модели в виде дифф. уравнений в частных производных
  • Дискретизация уравнений математической модели методом конечных разностей
  • Реализация численной модели в компьютерной программе.

Можно обмениваться опытом.

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

RomanK. 2164 13
Авг 09 #1

Mind Master пишет:

Здравствуйте, коллеги!
Есть здесь такие, кто занимался вопросами создания программ для гидродинамического моделирования, а именно:

  • Постановка математической модели в виде дифф. уравнений в частных производных
  • Дискретизация уравнений математической модели методом конечных разностей
  • Реализация численной модели в компьютерной программе.

Можно обмениваться опытом.

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


В книжках вроде рассказано, что вы в списке привели. Каким опытом вы хотели бы поделится, ну и что вообще хотите?

Mind Master 27 12
Авг 09 #2

RomanK. пишет:

В книжках вроде рассказано, что вы в списке привели. Каким опытом вы хотели бы поделится, ну и что вообще хотите?


У меня довольно специфическая проблема. Я создал программу, реализующую метод совместного решения (SS-метод) уравнений одномерной двухфазной фильтрации несжимаемых флюидов в несжимаемой пористой среде с учетом капиллярного давления. Однако, расчет не получается - программа вешается на этапе решения алгебраических уравнений. Тут может быть несколько вариантов: может это ошибка в алгоритме программы, или принципиально неверна математическая или численная модель а может быть есть еще что-то, что я не могу понять. wacko.gif
В общем, кто хоть что-то знает - прошу отозваться!

P.S. Тот же самый процесс легко реализуется методом IMPES, но для тех случаев с которыми мне приходится иметь дело нужны очень маленькие временные шаги. Все это очень затягивает расчет.

volvlad 2240 14
Авг 09 #3

Mind Master пишет:

У меня довольно специфическая проблема. Я создал программу, реализующую метод совместного решения (SS-метод) уравнений одномерной двухфазной фильтрации несжимаемых флюидов в несжимаемой пористой среде с учетом капиллярного давления. Однако, расчет не получается - программа вешается на этапе решения алгебраических уравнений. Тут может быть несколько вариантов: может это ошибка в алгоритме программы, или принципиально неверна математическая или численная модель а может быть есть еще что-то, что я не могу понять. wacko.gif
В общем, кто хоть что-то знает - прошу отозваться!

P.S. Тот же самый процесс легко реализуется методом IMPES, но для тех случаев с которыми мне приходится иметь дело нужны очень маленькие временные шаги. Все это очень затягивает расчет.

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

Перепроверь еще раз алгоритм решения системы уравнений. На этом этапе проблемы в проге?

RomanK. 2164 13
Авг 09 #4

Судя по постановке 1D, несжимаемая среда и флюиды, программа не должна очень большой. Если есть читабельная теоретическая часть, могу проверить код (С++, C#, Pascal).

Mind Master 27 12
Авг 09 #5

RomanK. пишет:

Судя по постановке 1D, несжимаемая среда и флюиды, программа не должна очень большой. Если есть читабельная теоретическая часть, могу проверить код (С++, C#, Pascal).

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

Temr 140 14
Авг 09 #6

Mind Master пишет:

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

Зачем изобретать велосипед ???
Есть программы симмуляторов с выложенным кодом
В понедельник выложу здесь трехфазный симмулятор excele c описаловом

RomanK. 2164 13
Авг 09 #7

Автор не предлагает ничего нового в моделировании, следовательно велосипедов не изобретает. Самостоятельно реализовать в коде - задача повышающая самооценку.

Temr 140 14
Авг 09 #8

RomanK. пишет:

Автор не предлагает ничего нового в моделировании, следовательно велосипедов не изобретает. Самостоятельно реализовать в коде - задача повышающая самооценку.

Не буду отвечать за автора , велосипед был по поводу подходов , реалицация дело второе .

BVA 12 13
Авг 09 #9

Temr пишет:

Есть программы симмуляторов с выложенным кодом
В понедельник выложу здесь трехфазный симмулятор excele c описаловом


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

Mind Master 27 12
Авг 09 #10

В общем посмотрел я этот симулятор в Экселе.
Если посмотреть мануал на странице 8, можно прочитать следующее:

Цитата

BOAST-NFR employs the implicit pressure - explicit saturation (IMPES) formulation for solving its system of finite-difference equations.

Как говорилось ранее, проблем с реализацией IMPES-метода, обычно, не возникает. Другое дело - SS метод, который не реализован в BOAST-NFR. Однако, на сайте есть другие программы, написанные на Фортране. Возможно там можно что-то найти.

DmitryB 487 13
Авг 09 #11

BVA пишет:

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


http://www.netl.doe.gov/technologies/oil-g...tware_main.html

RomanK. 2164 13
Авг 09 #12

Я надеюсь вам знакома книга "Математическое моделирование пластовых систем" Х.Азиз, Э.Сеттари.
В ней рассматриваются SS, IMPES, SEQ методы решения.

Mind Master 27 12
Сен 09 #13

RomanK. пишет:

Я надеюсь вам знакома книга "Математическое моделирование пластовых систем" Х.Азиз, Э.Сеттари.
В ней рассматриваются SS, IMPES, SEQ методы решения.


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

DmitryB 487 13
Сен 09 #14

Mind Master пишет:

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


С какой целью? Все уже запрограмировали по нескольку раз.

XFactor 279 13
Сен 09 #15

Mind Master пишет:

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

ну знаем таких и что, им за это деньги большие платят, а вам?
а вот зачем опять изобретать велосипед не понятно

Mind Master 27 12
Сен 09 #16

Сколько мне платят - это далеко не ваше дело! Если нечего сказать - лучше воздержитесь!

DmitryB 487 13
Сен 09 #17

Mind Master пишет:

Сколько мне платят - это далеко не ваше дело! Если нечего сказать - лучше воздержитесь!


Вопрос был скорее риторический. Что-то реакция нездоровая. Наболело?

Mind Master 27 12
Сен 09 #18

DmitryB пишет:

Вопрос был скорее риторический. Что-то реакция нездоровая. Наболело?

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

XFactor 279 13
Сен 09 #19

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

VIT 1124 15
Сен 09 #20

Mind Master пишет:

У меня довольно специфическая проблема. Я создал программу, реализующую метод совместного решения (SS-метод) уравнений одномерной двухфазной фильтрации несжимаемых флюидов в несжимаемой пористой среде с учетом капиллярного давления. Однако, расчет не получается - программа вешается на этапе решения алгебраических уравнений. Тут может быть несколько вариантов: может это ошибка в алгоритме программы, или принципиально неверна математическая или численная модель а может быть есть еще что-то, что я не могу понять. wacko.gif
В общем, кто хоть что-то знает - прошу отозваться!

P.S. Тот же самый процесс легко реализуется методом IMPES, но для тех случаев с которыми мне приходится иметь дело нужны очень маленькие временные шаги. Все это очень затягивает расчет.


А может проблема в том что все несжимаемое smile.gif Ибо в этом случае будет работать принцип дальнодействия: открываем скважину и поле давлений должно мгновенно распространиться на всю модель. Теоретически без сжимаемости алгоритм тоже может работать, но практически будет сложно добиться сходимости, как мне кажется.

Я делал IMPES симулятор, без кап давления но со сжимаемым флюидом и 2-х фазным насыщением.

Mind Master 27 12
Сен 09 #21

VIT
Сначала я тоже думал, что все дело в сжимаемости. Однако реализация симулятора с несжимаемыми флюидами и несжимаемым пластом по методу IMPES прекрасно работает. Значит решение по SS методу тоже по идее должно работать.

XFactor
Признаю, не понял вопроса из-за того как он был сформулирован. А программа пишется чисто из исследовательского интереса без коммерческой ориентированности.

Повторюсь: фактически нужная программа уже есть и она работает. Просто хочется сократить время вычислений, используя бОльшие временные шаги - вот и все.

vaque 401 13
Авг 11 #22

Подниму тему. 

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

Вопрос по поводу метода impes.

  Я понимаю сути но не могу понять как вычислять насыщенность. Складываю уравнения для двух фаз- избавлюясь от насыщенности в левой части. Пока предполагаю что давление от насыщенности не зависит, решаю уравнение на P (по координате, метод прогонки). Потом надо считать S на шаге тау. ДАвление уже посчитанно, но как записать S через P Я не могу понять. Пробывал в лоб расписать две производные для уравнения на водную фазу, но оказывается так делать нельзя, из чего собственно и возник метод IMPES.

  У меня жидкости не сжимаемы, нет капилярных сил. Но в Асис Сетари при первом просмотре я не нашел нужную мне часть.

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

Petroleum Reservoir Simulation" by Khalid Aziz, Antonin Settari

Кстати русский аналог, это её перевод или новая книга от авторов? ("Математическое моделирование пластовых систем" Х.Азиз, Э.Сеттари.) 

vaque 401 13
Авг 11 #23

в общем, ответ на последний вопрос. Да. это её полный аналог, но перевод ущербный, хотя видно что автор старался. Моё предположени что с развалом СССР всё нормальные переводчики вымерли, хотя делали свою уникальную работу за копейки, но уровень был потрясающий( читал книгу разрущение, терминалогия высший класс!) . а эта книга 2004.. новых коллег не появилось. 

VIT 1124 15
Авг 11 #24

vaque пишет:

Подниму тему. 

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

Вопрос по поводу метода impes.

  Я понимаю сути но не могу понять как вычислять насыщенность. Складываю уравнения для двух фаз- избавлюясь от насыщенности в левой части. Пока предполагаю что давление от насыщенности не зависит, решаю уравнение на P (по координате, метод прогонки). Потом надо считать S на шаге тау. ДАвление уже посчитанно, но как записать S через P Я не могу понять. Пробывал в лоб расписать две производные для уравнения на водную фазу, но оказывается так делать нельзя, из чего собственно и возник метод IMPES.

  У меня жидкости не сжимаемы, нет капилярных сил. Но в Асис Сетари при первом просмотре я не нашел нужную мне часть.

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

Petroleum Reservoir Simulation" by Khalid Aziz, Antonin Settari

Кстати русский аналог, это её перевод или новая книга от авторов? ("Математическое моделирование пластовых систем" Х.Азиз, Э.Сеттари.) 

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

AlNikS 878 13
Авг 11 #25

VIT пишет:

vaque пишет:

Подниму тему. 

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

Вопрос по поводу метода impes.

  Я понимаю сути но не могу понять как вычислять насыщенность. Складываю уравнения для двух фаз- избавлюясь от насыщенности в левой части. Пока предполагаю что давление от насыщенности не зависит, решаю уравнение на P (по координате, метод прогонки). Потом надо считать S на шаге тау. ДАвление уже посчитанно, но как записать S через P Я не могу понять. Пробывал в лоб расписать две производные для уравнения на водную фазу, но оказывается так делать нельзя, из чего собственно и возник метод IMPES.

  У меня жидкости не сжимаемы, нет капилярных сил. Но в Асис Сетари при первом просмотре я не нашел нужную мне часть.

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

Petroleum Reservoir Simulation" by Khalid Aziz, Antonin Settari

Кстати русский аналог, это её перевод или новая книга от авторов? ("Математическое моделирование пластовых систем" Х.Азиз, Э.Сеттари.) 

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

Это вроде называется "материальный баланс" :)

vaque 401 13
Авг 11 #26

Уравнение материального баланса лежит в основе уравнений Навье-Стокса(проде так они называются), 

Автор сладывает уравнения для разных фаз(поделив на плотность), и избавляется от зависимости от насыщения- получается уравнение на давление. оно решается не явно(параболического типа).

Но проблема в том, что дальше для решения насыщенности, надо брать одно из исходных уравнений баланса(например для воды), и

а) явно выражать насыщенность из него. Это делается расписыванием производное по времени от произведение(PS). но это не выход, так как уравнение на S  гиперболическое и не линейное!(есть члены S^N S и множитель у dS/dx тоже зависит от S. Помимо того, что оно решается в явном виде неустойчиво(два требования на размер сеток), так  ещё это процесс усложняет решение уравния на Р(они решаются парально на каждом шаге). У меня получаются большие осциляции. И ещё умные люди сказали что не будет сохраняться материальный баланс. 

б) делать ещё что-то мне не понятно(типа раскрывать дивергенцию ) я этой фразы не понимаю.

 

 Может есть какие-то более точные придпосылка как искать S? пока буду разбираться с Азисом.

vaque 401 13
Авг 11 #27

Я смотрел эту книгу, написанно на Sw нечто следующей, немного не втой главе где это метод описывается.

Я моуг понять что слева написанн [S(t+nтау, n)-S (t, n)]/тау так?, а как можно понять что обозначаю другие буквы??

 

VIT 1124 15
Авг 11 #28

To vaque:

Я, если честно, не понимаю почему возникла сложность. Еще раз повторим что было сказано: по методу impes находим давления, потом зная перепады давления и закон дарси считаем перетоки между ячейками. Потом по мат балансу пересчитываем насыщеность. В чем сложность.

Кстати вместо метода прогонки лучше использовать итерационные методы, особенно на больших моделях.

karakurt2 94 11
Авг 11 #29

Метод прогонки для решения СЛУ пригоден только в случае одномерной задачи.

Товарищ под уравнением материального баланса подразумивал, наверное уравнение неразрывности. А уравнение Навье-Стокса -- это уравнение движения, т.е. второй закон Ньютона.

Вообще-то алгоритм решения СЛУ больших размерностей лежит в основе симулятора и насколько внимательно инженер отнесётся к реализации этой задачи настолько успешным будет и всё предприятие.

Кстати, есть довольно-таки забавная библиотечка на C++, DealII, где решение уравнения Н.-С. приводится в примерах.

vaque 401 13
Сен 11 #30

пока до двухмерной и более задачи не дошел. мне надо одномерный случай. 

Но пока не понимаю какое уравнение на материальный баланс надо взять? сложность в явной записи S на шаге t+тау через Pt Pt+тау St. пока у меня не получается получить стабильное решение. пробую расписать зависимость насщенности для водной фазы, и при расписание в лоб произодных произведения возникает трабл(типа табулирую функцию P) из-за этого решение не стабильно.

 

библиотечку буду искать, а у вас случайно её не завалялось?

нашел то что вы описываете http://www.dealii.org/7.0.0/doxygen/tutorial/index.html пример21

но из за сложности синтаксиса С++ мне это не легче чем статья азиса. Тогда уточню. Авторы используют формулу (3).

 

F=S^2/(S^2+yiu(1-S)^2). чтобы взять градиент мне надо заранее знать зависимость S(x). или можно воспользоваться приближением (Sn-1 - Sn+1)/2dx?

пока не получилось проиходит колебания решения на S-ведь разрыв там..

vaque 401 13
Сен 11 #31

Я так понимаю ребята либо сильно заняты, либо не хотят поделиться. опытом. Ну чтоже будем разбираться. не бросать же дело на половине))

AlNikS 878 13
Окт 11 #32

Кто-нибудь может отправить эту книжечку Aziz-а на мыло? А то с работы не выйдешь на всякие "шары". Буду премного благодарен.

RomanK. 2164 13
Окт 11 #33

Есть английский и переведенный русский вариант. Могу скинь на выходных

vaque 401 13
Ноя 11 #34

В общем в азисе всё запутанно и муторно, есть потрясающая книга, 

http://www.twirpx.com/file/501668/

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

vaque 401 13
Ноя 11 #35

повторилось

Stroncz 868 14
Ноя 11 #36

На амазоне рецензия на эту книгу не очень, хотя отклик всего один

Go to top