Аннотация:
При численном моделировании газодинамических течений в областях со сложной геометрией необходимо использовать подробные неструктурированные сетки и численные методы высокой точности. Для решения задач такого типа хорошо зарекомендовал себя метод Галеркина с разрывными базисными функциями или Discontinuous Galerkin Method (DGM). Данный метод обладает рядом достоинств, присущих как конечно-элементным, так и конечно-разностным аппроксимациям. При этом разрывный метод Галёркина обладает существенной вычислительной сложностью, поэтому встает вопрос о максимально эффективном использовании всех возможностей вычислительной техники. С целью ускорения вычислений при создании расчетного модуля использовался операторный метод программирования. Операторный метод программирования позволяет компактно записывать математические формулы в программах и облегчает перенос программ на параллельные архитектуры, такие как NVidia CUDA и Intel Xeon Phi. Ранее операторный метод программирования был реализован для регулярных трёхмерных декартовых сеток и трёхмерных локально-адаптивных сеток. В данной работе этот метод переносится на трёхмерные тетраэдральные сетки. На этом примере иллюстрируется возможность эффективной реализации данного метода на произвольных трёхмерных сетках. Кроме того, в работе демонстрируется применение методов шаблонного метапрограммирования языка C++ для ускорения вычислений.
Ключевые слова:операторный метод программирования, трёхмерные тетраэдральные сетки, разрывный метод Галёркина, CUDA, шаблонное метапрограммирование.