0
Июл 10
В какой программе можно провести такое конвертировние? также из нужно из 8-ми точки удалить несколько слоев, сделав дыры.
Может у кого есть написанная утилита? самому заморачиваться времени нету.
Опубликовано
26 Июл 2010
Активность
14
ответов
4131
просмотр
5
участников
0
Рейтинг
сетка регулярная или нет?
Невозможно удалить одну или несколько точек, не нарушив при этом геометрии. Там, где есть так называемые "дыры" точки все равно присутствуют, просто они неактивные. Если только это не разлом.
Ремасштабирование не решит проблему, проще перестроить модель с учетом "дыр".
а чо сам RMS не катит для такой конвертации??
-сетка нерегулярная
-сделать "дыры" возможно только в 8-point grid (corner по своей структуре так не может)
-rms "не катит", из 8-point в corner умеет, назад нет
-поддержка обоих "гигантов" спасовала, знаем, слышали, но помочь не можем
Поясню: есть 8-ми точечный грид формата эклипс, где в неактивных ячейках вырезана сама структура грида. При конвертации в corner (необходимо чтоб обновить) "дыры" заполняются дополнительными слоями. Чтоб корректно всё вернуть назад в эклипс их нужно вырезать.
Взялся писать макрос, хотя так не хотелось.
print 'I-%d J-%d K-%d' % (I+1, J+1, K+1)
print 'Centre %f %f %f' % (mean(coord[J:J+2, I:I+2, 0]), mean(coord[J:J+2, I:I+2, 1]), mean(zcorn[2*K:2*K+2, 2*J:2*J+2, 2*I:2*I+2]))
((imm, jmm, kmm, imm2, jmm2, kmm2), (ipm, jpm, kpm, ipm2, jpm2, kpm2)), \
((imp, jmp, kmp, imp2, jmp2, kmp2), (ipp, jpp, kpp, ipp2, jpp2, kpp2)) = coord[J:J+2, I:I+2, :]
((kmmp, kpmp), (kmpp, kppp)), ((kmmm, kpmm), (kmpm, kppm)) = zcorn[2*K:2*K+2, 2*J:2*J+2, 2*I:2*I+2]
a = (kmmp-kmm)/(kmm2-kmm)
b = 1-a
xmm, ymm = b*imm + a*imm2, b*jmm + a*jmm2
print 'point --+', xmm, ymm, kmmp
и т.д. Пока что-то не получается упростить Но по крайней мере с геометрией в Cell Probe из Floviz совпадает
угу, только работает на малых сетках, на больших почему то всё каверкает.
Только немного длинновато получается
у меня так вообще 3 страницы кода хреновый из меня программист
Скриншот бы проблемы.
Это ясно. Не понятно про вырезанную структуру грида. Скриншотик бы что есть и что хочется. Без потерь (мне кажется) можно перевести, только это приведет к увеличению количества ячеек.
Пока мыл посуду домыслил. Не все так просто. Если 8 точечные блоки имеют скошенные (невертикальные) боковые грани перевод не получится. Также если блоки лежат друг на друге со смещением. Алгоритм усреднения между слоем z и z+1 будет работать только в случае очень простой геометрии. Нормально надо делать так: По всем блокам 8 точки собрать координаты (X, Y) это будет основой. Далее можно ввести некоторую погрешность, чтобы некоторую пару координат обьеденить в одну. И тут придется загрублять геометрию, для описания скошенной геометрии вертикальными гранями - придется добавлять столбцов и строк. Далее надо будет "приблизительно" свойства раскидать - например в 8точке был один блок, в корнерпоинт стало из четыре... Теоретически я мог бы написать этого монстра.
Если проще то могу написать за пару дней
Начну с самого начала, с задачи, что было и что нужно было сделать.
Дано: старые достатночно большие гидродинамические модели выполненные петроальянсом. Апскелинг проведен их же хитрой самописной программулиной. В результате имеем 8point грид со слоями "через один"для экономии ресурсов. Сделано это, я понимаю, с целью, чтоб в одном случае когда между двумя слоями глины не было соединения (была просто дырка), а в другом районе где слои сливаются не было необходимости использовать несоседние соединения. Объяснил как смог. )) Eclipse и FloViz понимают и отображают.
Задача: корректно обновить структуру и свойства.
Решение: Petrel тоже понимает, но уже на этапе импорта конвертирует в corner-point при этом добавляя некие extra zone между, слоев будет n*2-1. RMS же умеет загружать 8point, но не умеет локально обновлять такие гриды. При конвертации в corner он растягивает существующие слои до середины пустых "дыр".
Хотел обновить petrel'ем и вырезать програмулиной лишние слои. Но текучка не дала во время все завершить, в результате пошли путем RMS - сконвертировали, растянули слои, ввели множитель на NTG, задали MultZ=0, там где слои ранее не соприкасались (со скриптами помогла поддрежка роксар). Минусы - увеличились размеры ячеек по Z.
Что касается структуры 8point и cornerpoint, то в процессе я пришел к выводу, что они асбсолютно идентичны: сначала в COORD описываются координаты XYZ самых верхних и самых нижних узлов, потом в ZCORN описывается координата Z каждого узла, каждой ячейки (по 8 на штуку), и так в обоих форматах, хотя по логике в corner смежные узлы должны быть общими, как я считал ранее. В гриде же достаточно вырезать узлы отвечающие за нужные слои из ZCORN.
А вот интересно, что мешает использовать в эклипсе corner-point после первого же обновления? Каждый раз двойные преобразования..
Число слоев другое, соотвественно перфорация "съезжает", это критично, т.к. руками при ~5000 скв на модель поправить сие нереально. Плюс так как возникают фиктивные доп. слои в местах где раньше сливались верхний и нижний будет слой нулевой толщины. Придется использовать несоседение соединения, это тоже критично, т.к. кол-во ячеек достигает 3 млн. В общем гидродинамщики это так объяснили, может конечно просто поленились