Теплотехнический расчет линейно-протяженного участка трубопровода на многолетнемерзлой породе

В программном комплексе Frost 3D Universal на персональном компьютере было осуществлено численное решение задачи прогнозирования растепления грунтов под влиянием нефтепровода на расчетной сетке, состоящей из 58.5 млн. узлов. Прогноз оттаивания грунтов вокруг трубопровода выполнялся на 2 года. В общей сложности расчет в программном комплексе Frost 3D Universal на 4-х ядерном центральном процессоре занял 70 часов с использованием 17 Гб оперативной памяти. Ранее уже производился расчет данной модели с более грубой дискретизацией в 22.3 млн. узлов, что не позволяло учитывать в модели мелкие элементы, такие как тонкий теплоизолятор. Прогнозный расчет на 20 лет при этом занимал 7 часов, используя в качестве расчетного механизма графический ускоритель Nvidia Titan.

Модель протяженного участка трубопровода

Модель протяженного участка трубопровода

Необходимость создания такой большой расчетной сетки была обусловлена спецификой решаемой задачи – моделирование формирования ореола оттаивания вокруг нефтепровода диаметром 1,2 м на участке протяженностью в 500 м. Рассматриваемый участок характеризуется сложным геолого-литологическим строением грунтов, который также включал линзы сильно-льдистого грунта. Всего на участке присутствовали 21 тип грунтов с различными теплофизическими свойствами. Учитывался также перепад высот дневной поверхности, который составлял более 35 метров.

Читать далее

Алгоритмы и математические выкладки построения воксельных сеток цилиндрической формы

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

Расчётная сетка, которая состоит из расположенных на листе и скрученных в цилиндр вокселов

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

ИСХОДНЫЕ ДАННЫЕ ДЛЯ ПОСТРОЕНИЯ ВОКСЕЛЬНОЙ СЕТКИ

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

Расположение вокселов. Шаблон

Рисунок 1 – Шаблон расположения вокселов

Читать далее

О применении статического адаптивного разбиения расчётной области

Введение

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

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

Читать далее

Как устранить ошибку пробела в имени пользователя при компиляции проекта NVIDIA CUDA Runtime в среде Microsoft Visual Studio

Предположим, что на компьютере разработчика установлена среда Microsoft Visual Studio версии 2008, 2010 или 2012 и NVidia CUDA Toolkit 5.5. Если имя пользователя Windows содержит пробел, то компиляция шаблонного проекта NVIDIA CUDA Runtime в Visual Studio может завершиться неудачей. Как правило, это ошибка «Could not setup the environment for Microsoft Visual Studio using …» со ссылкой на файл vcvars32.bat или vsvars32.bat, либо «спотыкание» на пробеле в названии домашней папки пользователя (см. снимки экрана ниже).

Ошибки компиляции проекта CUDA Runtime в Microsoft Visual Studio 2012

Ошибка компиляции проекта CUDA Runtime в Microsoft Visual Studio 2008

Ошибки компиляции проекта CUDA Runtime в Microsoft Visual Studio 2012. Error D8022: cannot open ‘C:\Users\Yury’

Более подробные сведения об ошибках можно увидеть в логе компиляции, если добавить опцию --verbose в командную строку NVCC (драйвера компиляции CUDA С/C++).

Для устранения проблемы можно воспользоваться любым из нижеперечисленных способов:

  1. Создать нового пользователя с именем без пробела (аккуратно с данными старого пользователя!),
  2. Изменить пользовательскую переменную окружения TEMP на путь, не содержащий пробела (папка по этому пути должна существовать), например C:\Temp,
  3. Добавить в файл %CUDA_PATH%/bin/nvcc.profile, где %CUDA_PATH% может иметь вид C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.5, строку «TEMP=path_without_space», где path_without_space – путь, не содержащий пробела (папка по этому пути должна существовать), например C:\Temp.

Шаблон проекта для архитектуры CUDA в Microsoft Visual Studio 2008

В интегрированной среде разработки Microsoft Visual Studio 2008 есть множество стандартных шаблонов нового проекта на Visual C++. Но при использовании такого инструмента для параллельного программирования как NVidia CUDA Toolkit 5.0 (без всяких дополнений) приходится каждый новый CUDA-проект на C++ настраивать вручную.

К счастью, рутинная процедура настройки автоматизируется после установки бесплатного CUDA VS Wizard 2.9 и внести в него небольшие исправления, перечисленные ниже.За несколько кликов можно создать пустой CUDA-проект, который успешно компилируется в конфигурации Win32. Чтобы компилировать его в конфигурации x64 (п. 2), а также для чисто «косметических» эффектов (пп. 3 и 4), выполните следующие шаги.

1. Найдите инсталляционную папку среды, например, C:/Program Files (x86)/Microsoft Visual Studio 9.0. Далее она обозначается как $(VSInstallDir).

2. Откройте в текстовом редакторе файл $(VSInstallDir)/VC/VCWizards/CUDA/CUDAWinApp/Scripts/1033/default.js. Найдите все вхождения пути «$(CUDA_PATH)\lib» и замените их на «$(CUDA_PATH)/lib/$(PlatformName);».

3. Добавьте строку «CUDAWinApp.vsz| |CUDAWinApp|1|A sample CUDA application.| |6777| |CUDAWinApp» в текстовый файл $(VSInstallDir)/VC/vcprojects/vc.vsdir.

4. В файле $(VSInstallDir)/VC/vcprojects/CUDA/CUDAWinApp.vsdir исправьте текст подсказки «TODO: Wizard Description.» на «A sample CUDA application.».

Перенос граничных условий на ортогональную гексаэдрическую сетку

При моделировании физических процессов и явлений повсеместно встает задача численного решения дифференциальных задач в частных производных. Одним из способов численного решения уравнений математической физики является подход, основанный на конечноразностной аппроксимации. Однако, существенный недостаток данного метода – необходимость использовать ортогональную гексаэдрическую сетку. При решении задач на практике, порой используется сложная геометрическая конфигурация расчетной области (см. например, рисунок 1), и поэтому упомянутый недостаток является достаточно критичным.

Рисунок 1 – Пример сложной поверхности, как части расчетной области

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

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

Приведем алгоритм, решающий выше поставленную задачу.

1) Рассмотрим сетку, которая является двойственной к исходной, то есть такую сетку, узлы которой являются центрами ячеек исходной расчетной сетки. Будем хранить трехмерный массив вещественных чисел, элементы которого соответствуют ячейкам двойственной сетки. Первоначально инициализируем элементы массива нулями.

Читать далее

Квазилинейное уравнение теплопроводности в 3D и задача Стефана в вечномерзлых грунтах в рамках конечно-разностной схемы переменных направлений

Оригинал статьи на английском языке можно прочитать на сайте Международной ассоциации инженеров.

Аннотация — Произведено исследование квазилинейного уравнения теплопроводности, в котором теплопроводность и теплоемкость зависят от температуры в трех пространственных измерениях, применительно к задаче о фазовом переходе в вечномёрзлых грунтах. Явно сформулированы условия, при которых конечно-разностная схема переменных направлений Дугласа-Рекфорда сохраняет устойчивость. Произведено сравнение полученных численных решений с известным аналитическим решением задачи Стефана в одномерном пространстве.

Ключевые слова — квазилинейное уравнение теплопроводности, задача Стефана, конечные разности, схема переменных направлений, численная устойчивость.

I. Введение

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

Хотя и доказано, что ADI методы являются эффективными и экономичными в отношении временных затрат, и, в большинстве случаев, безусловно устойчивыми, они обладают некоторыми недостатками:

1) Их конечно-разностные формулировки позволяют рассматривать только прямоугольные пространственные области (из-за требований коммутативности, накладываемых на факторизованные и расщепленные операторы) [7];

2) Применение ADI схем к задачам с изменяющимися во времени граничными условиями Неймана и Робина сталкивается с серьезными проблемами из-за необходимости определения этих граничных условий на промежуточных этапах схемы [8];

3) При применении к решению нелинейных уравнений теплопроводности, операторы, составляющие ADI схему, не коммутируют, что приводит к потере безусловной устойчивости схемы.

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

Второй и третий недостатки представляют серьёзную проблему для успешного применения ADI схемы. Насколько нам известно, в настоящее время в литературе отсутствует анализ устойчивости схемы ADI применительно к нелинейному уравнению теплопроводности в трёхмерной пространственной области. Этот факт явился одним из оснований для настоящей работы.

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

В то же время, реализация неявных схем зачастую приводит к гораздо большим вычислительным затратам, чем явные схемы, особенно для задач с быстро изменяющимися коэффициентами в сложных геометриях и существенно неоднородных сетках. Таким образом, при моделировании теплообмена в крупномасштабных системах возникает необходимость осуществления оптимального выбора между явными и неявными схемами. В случае метода конечных элементов, применительно к моделированию процессов в вечномерзлых грунтах, анализ численной устойчивости, кажется, настолько сложным, что критерий устойчивости часто устанавливается эмпирически [9].

В настоящей работе мы обсуждаем применение ADI схемы Дугласа - Рекфорда к решению задачи Стефана в пористых вечномёрзлых грунтах. Структура статьи следующая: следующий раздел содержит формулировку задачи и некоторые предположения, которые будут использоваться при доказательстве численной устойчивости ADI схемы, а в разделе 3 представлено само доказательство. В 4 разделе представлены численные результаты, за которыми следуют выводы.

Читать далее

Эффективный алгоритм учета коллизий нескольких геометрических фигур в ячейке гексаэдральной сетки при вычислении их объемов.

Абстракт

В работе предложен эффективный алгоритм вычисления объёмов нескольких геометрических фигур, образующих коллизии в ячейке гексаэдральной сетки. Главной особенностью алгоритма является высокая производительность за счет применения методики распыления точек в ячейке и однократной подготовки специальной структуры данных для вычисления принадлежности точек геометрическим фигурам. Корректировка точности алгоритма выполняется путем варьирования числа сгенерированных точек в ячейке.

В настоящее время для построения трехмерной модели грунта и локализации источника загрязнения используются как данные геологических изысканий, так и планы промышленных построек, техногенных сооружений и насыпей. При этом, для того чтобы корректно сформировать расчетную сетку, необходимо вручную решить задачу наложений и пересечений геометрических объектов (задача коллизий геометрических объектов), т.е., например, разрезать слой грунта основанием фундамента или сваи. Ручное разрешение коллизий является трудоемкой задачей, а автоматизация этого процесса является ресурсоемкой и трудно реализуемой операцией. Такая возможность отсутствует даже у ведущих мировых лидеров среди программных комплексов, способных решать задачи тепломассопереноса в пористых средах, таких как ANSYS, Hydrus, GMS, COMSOL и т.д.

Считается, что такие операции необходимо выполнять в специализированных САПР, таких как Autodesk 3ds Max, AutoCAD, SolidWorks, T-FLEX и др., где применяются специальные приемы для ускорения выполнения булевых операций. Например, строятся деревья иерархий для геометрических объектов, наподобие CSG [1, 2, 3], где новые булевы операции над все более сложными объектами сводятся к системе решений для более простых составных объектов. Явным недостатком подобных подходов является их неприменимость для произвольных геометрий. Поэтому для общих случаев решение булевых операций над произвольными геометрическими объектами является более затратным по времени.

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

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

Читать далее

Методика построения трехмерной геологической модели на основании информации о скважинах

Введение

В настоящее время для планирования и выполнения работ по застройке территорий, проведения экологической экспертизы загрязнений почвогрунтовых сред, оценки залежей полезных ископаемых и др., актуальной является задача построения трехмерной геологической модели. Так, в современных программных комплексах, предназначенных для моделирования в геологии [1-3], существуют различные подходы к решению этой задачи. При этом наиболее часто применяется метод восстановления геологического объекта на основании информации об уровнях залегания геологических горизонтов, полученных в результате бурения [4-6]. Сама реализация этого метода может иметь некоторые особенности.

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

Методика построения

Предложенная методика состоит из 6 основных этапов, описанных ниже. В качестве исходных данных служит следующая информация по скважинам: 1) координаты скважины; 2) отметка устья; 3) мощность геологических горизонтов.

Читать далее

Разбиение отрезка с опциональным сгущением на концах

Предисловие:

Исходный отрезок разбивается на части "обязательными" точками (т.е. точками, в которых должны находится узлы пространственной сетки), которые могут как быть, так и не быть точками сгущения. На каждой части разбиения можно применить способ построения подразбиения, описанный в данной заметке.

Пусть  – минимально допустимый шаг,  – максимально допустимый,  – длина отрезка, . Тогда минимально возможное число шагов – , а максимально возможное – . Если , то условие задачи некорректно. Допустим, что .

Если оба конца отрезка не требуют сгущения, то можно взять равномерное разбиение с любым количеством шагов  таким, что .

Читать далее