Главная > Документ


Численные решения и инженерные подходы в проектировании и построении вычислительных экспериментов в гидромеханике

УДК: 519.67

А. В. Масолов1, В. Н. Храмушин2, С. А. Шкичев3, г. Южно-Сахалинск

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

Numerical methods and engineering approach in design and structure of computational experiments in hydromechanics. Alexey V. Masolov, Sakhalin Energy Investment Company, LTD.; Sergey A. Shkichev, Vasily N. Khramushin, Sakhalin State University.

Various mathematical models for spatial representation of geometrical objects and operations are analyzed in this research. Their features of practical usage are compared in realization of applied problems of the physical theory of a field, and in visualization of spatial objects and processes for computer graphics representation. Following the principles of consistent designing of effective computer algorithms, new mathematical models for decision making in three-dimensional mechanics of solid environments are presented in the research as well as the review of technical solutions for development of computing aided engineering application.

Введение

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

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

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

Постановка и актуальность проблемы

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

Математический анализ и обоснование проблемы
Термин «тензор» происходит от английского «tension» – напряжение. Исторически тензорный вычислительный аппарат связан с теорией упругости для описания напряженного состояния элементарного объема и задает линейные зависимости деформаций Tот внешних сил T с помощью инвариантов реологического состояния вещества.

;
где: – нормальные напряжения и  – касательные напряжения имеют размерность давления [Н/м2];   – осевая деформация и  – сдвиг условно безразмерны. Если при постановке физических задач исходными являются напряжения T на всей поверхности тела, то такие граничные условия называются статическими. Если изначально определяются только смещения Tкинематическими, иначе граничные условия являются смешанными.

В изотропной упругой среде компоненты тензоров напряжений и деформаций связываются энергетическими условиями совместимости в единой абсолютной системе отчета и в обобщенной форме Ламе могут быть сведены к привычным определениям закона Гука в кинематической записи:

x = ·(x+y+z) + 2·x; xy = ·xy,

где и – инвариантные реологические постоянные объемной и сдвиговой упругости Гука, имеющие физические размерности давления [H/м2].

С учетом малости деформаций тензоры Tи T могут использоваться в теореме Коши-Гельмгольца, интерпретирующей поворот контрольного объема как антисимметричную часть тензора, чистую деформацию – как его симметричную составляющую, а след тензора (сумму диагональных элементов) – как равнообъемное сжатие/расширение.

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

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

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

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

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

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

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

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

Координаты точкиa переходят в абсолютную систему отсчета при сложении вектора местоположения R и произведения локального вектора a с тензором его базиса r в абсолютной системе отсчета:

A = R + a·r, [м]

где вектор a, изменяющий свою систему координат, стоит в произведении слева.

Физические размерности всех числовых объектов определены в абсолютной системе координат. Размерность базисного тензора локальной системы отсчета r : [м3]. Это означает, что все величины, заданные внутри локального базиса, должны представляться как распределенные по его объему. Локальный вектор a будет иметь размерность [м/м3] или [м-2], что предполагает такой вектор не традиционным геометрическим объектом, а скорее особой точкой некоторого поляризованного поля (диполем), определяемого интенсивностью и направлением вектора a.

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

+A = R+V·t + a·( r+v·t ) = 0A + ( V+v )·t,

где: t – расчетный интервал времени; a – координаты контрольной точки в локальной системе отсчета; +А и 0А – новое и исходное положение контрольной точки в абсолютной системе координат; R – местоположение локального базиса в абсолютной системе координат; V – скорость поступательного смещения локального базиса – крупной частицы жидкости; r – тензор формы крупной частицы жидкости; v – тензор скоростей локальных движений базисных осей тензора, определяющий деформацию крупной частицы жидкости. Исчисление флюксий Ньютона, в отличие от анализа бесконечно малых, естественным образом формализует внутреннее состояние корпускул (по Ньютону) в рамках тензорной вычислительной арифметики.

Приращение координат внутреннего вектора a, как дифференциала скорости перемещения среды внутри крупной частицы жидкости ·t в точке a, приводит кинематическое выражение ко второму порядку по времени, вводя определение внутренних динамических процессов для среды условно единичной плотности, отражаемых в глобальном базисе как инерция:

+A = R+V·t +a·( r+v·t ) +·( r+v·t )·t.

Согласно исчислению флюксий, опустим не изменяющуюся часть кинематического уравнения и разделим результат на малый параметр t для приведения уравнения к величине скорости движения:

+V  =   0V +  v ·a +  r· + v · ·t.

После приведения локальных векторов к абсолютной системе отсчета выпал сомножитель с базисным тензором, так как:  r · r =1:

+V  =   0V +  +  v ·a + v ··t. [м/с]

Получается разложение вектора движения в абсолютной системе координат на составляющие: скорости полного потока V; скорости внутреннего смещения ;конвективной скорости  v ·a и некоторого приращения локальной скорости v ··t, зависящего от скорости течений внутри крупной частицы жидкости. Заметим, что в исчислении флюксий Ньютона последнее слагаемое, содержащее малый множитель t , можно опускать, но не будем спешить с потерей локальных течений и внутренней энергии крупной частицы жидкости.

Естественным решением проблемы учета внутренних течений, проявляющихся в виде реакции (инерции) внутренней кинетической энергии, является использование своеобразного логического тензора плотности , определенного внутри локального базиса r с физическими размерностями распределенной массы [кг/м3]. Первое проецирование (пространственное интегрирование) для приведения компонент тензора плотности к абсолютной системе координат превращает его в тензор м, ассоциируемый с инерционной массой [кг] элементарной частицы жидкости, определяющей особую внутреннюю энергию движения в обобщенной тензорной модели крупной частицы жидкости:

м  =  ·r· = мij , [кг]

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

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

Обратный тензор   , определенный теперь в проекциях абсолютной системы координат, получит физическую размерность [м3/кг]. Расположим трансформируемый тензор формы частицы в произведении справа от тензора плотности:

м =  · r = мj. [кг-1]

По аналогии вводится тензор внешних напряжений, действующий на границах элементарной частицы жидкости:f [Н·м2] и способный погасить (скомпенсировать) проявление внутренних живых сил инерционного тензора массы м.

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

Дифференциал закона движения Ньютона в виде приращения скорости течения:

+V = 0V +м·F·t.

Запишем уравнение движения в привычной форме динамики твердого тела м [кг-1] с учетом деформации под действием внешних распределенных: f [Н·м2, кг·м32] и массовых: F· [Н, кг·м/с2] сил:

+A = R+V·t + м·F·t2/2+( r+v·t+м·f t2/2 )·a.

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

Сопоставим это уравнение движения с ранее полученным чисто кинематическим выражением:

+A = R + V·t + ( r+v·t )·a + ( r+v·t )··t,

что, после их взаимного вычитания, позволит выделить соответствие сил и кинематических параметров уравнения движения в обобщенной форме Ньютона – Эйлера:

F+ ·a )·м·t/2 = ( r+v·t )· [м/с]

или, после приведения векторов к абсолютному базису:

F+ f )·м·t/2 =·+·t. [м/с]

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

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

По ранее сделанному определению:

 = м·r [м3/кг];            f = f·r [кг/с2, Н/м]

Подставляя тензорr вместо вектора a , и заменив вектор скорости внутреннего течения соответствующим тензором , получим:

 ·f ·t/2 = ( 1+v·t )· . [м3/c]

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

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

f= ·v / t . [кг/с2, Н/м]

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

fН= ·vН /  ;  : [кг/м/с, Н·c/м2]

fГ=c ·vГ ·t /  , c : [кг/м/с2, Н·м2]

где: – динамическая вязкость (коэффициент внутреннего трения); c – модуль сдвига; – отстояние (рычаг) для момента сил.

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

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

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

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

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

Однородные координаты OpenGL
Вершины (Vertex) в OpenGL задаются однородными векторами-столбцами: = { xyz, e }T, определяющими точки: q/ = { x/, y/, z/, 1 }T в трехмерном пространстве с масштабным множителем . Если компоненты  – единичны:  = 1, то q' = { xy} – станет обычной точкой Евклидова пространства.

Нормали записываются векторами-строками = { xyz, e }, которые в геометрических построениях определяются как однородные плоскости. Если однородная вершина q лежит в однородной плоскости v, то их произведение:  q = 0. Применяется также обозначение нормали как вектора-столбца: nT = v или nT = 0.

Однородные координаты используются в строгом соответствии с математическими моделями линейной алгебры, что формально подразумевает существование опорной ортогональной (Евклидовой) системы отсчета и тем самым исключаются из рассмотрения смешанные тензоры для косоугольных локальных базисов. В однородных координатах не вводится ограничений на малость пространственных деформаций или углов поворота, что соответствует операциям произведения матриц. Операции для поступательных смещений геометрических объектов также задаются с помощью операций произведения, в которых векторы смещений образуются правым окаймляющим столбцом контекстных числовых матрицами: CTM – current transformation matrix.

Работа с графическими объектами и сценами начинается с построения единичной матрицы CTM с помощью процедуры glLoadIdentity() – Начальная инициализация. Затем следует стандартный набор пространственных геометрических преобразований:

glTranslate*( x, y, z )  – перемещение в точку x, y, z;

glRotate*( a, x, y, z )  – вращение – поворот на угол по оси x, y, z;

glScale*( x, y, z )  – масштабирование по компонентам x,y,z;

glOrtho( l, r, b, t, n, f )  – ортогональная проекция для сцены;

glFrustum( l, r, b, t, n, f)  – перспективная проекция в кубе с границами: l, r – левая, правая; b, t – нижняя, верхняя; n, f – ближняя и дальняя.

Общая система координат для графической сцены задается однократно и автоматически перенастраивается при изменении размеров графического экрана.

Процедура перерисовки: glutReshapeFunc( ReShape ).

Функция ReShape включает последовательность контекстных произведений с матрицами СТМ:

void Reshape( int Width, int Height )

{ glViewport( 0,0,Width,Height ); // подтверждение размера графического изображения

glMatrixMode( GL_PROJECTION ); // установка режима настройки сцены

glLoadIdentity(); // установка контекста из единичной матрицы

Real rat = Real( Width )/Height; // фактор искажения масштабов графического экрана

if( rat>1.0 )glOrtho( rat/-2,rat/2, -0.5,0.5, -1,1 ); // установка ортогональной

else glOrtho( -0.5,0.5, -0.5/rat,0.5/rat, -1,1 ); // сцены с размерностью 1.0

gluPerspective( 25.0, 1.0, -1,1 ); // контекстное дополнение до перспективной проекции

gluLookAt( 1,2,6, 0,0,0, 0,1,0 ); // и переустановка точки обзора немного вправо и вверх

glutPostRedisplay(); // активизация очереди с ожиданием полной перерисовки сцены

}

Таким образом, в OpenGL определяется абсолютная или глобальная система координат, а также произвольное количество локальных систем отсчета, непосредственно связанных с каждым из графических объектов, предназначенных для представления на графическом экране ЭВМ.

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

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

С точки зрения производимых вычислений разница между использованием этих моделей заключается в следующем:

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

2. В тензорной математике для вращения и деформации локального базиса требуется умножение матрицы размерностью 3х3 (27 операций), в то время как в однородных координатах перемножаются матрицы 4х4 (64 операции). Таким образом, при всех равных условиях (без использования перемножителя матриц в сопроцессоре) тензорная математика приводит к более эффективным алгоритмам пространственных вычислений как по скорости, так и по ресурсам оперативной памяти.

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

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

Обзор технического инструментария

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

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

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

В настоящее время появилась тенденция использования ресурсов графических плат для решения вычислительных задач в разных областях знаний, таких как физика, квантовая механика, искусственный интеллект, криптография и распознавание образов. Эти задачи сложно решать в рамках графических API, таких как OpenGL или Direct X. Развитие программирования общего назначения на GPU (Graphical Processing Unit) привело к возникновению технологий, которые позволили преодолеть это препятствие. Компанией Nvidia была создана технология CUDA (Compute Unified Device Architecture) для проведения вычислений на графических картах производства Nvidia, а консорциумом Khronos Group был представлен набор библиотек OpenCL для проведения вычислений на CPU, GPU и других устройствах. OpenCL был позже поддержан Nvidia, AMD ATI и другими производителями, поэтому о нем можно говорить как о стандарте в данной области.

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

OpenGL является одним из самых популярных прикладных программных интерфейсов (API – Application Programming Interface) для разработки приложений в области двумерной и трехмерной графики. Стандарт OpenGL (Open Graphics Library – открытая графическая библиотека) был разработан и утвержден в 1992 году ведущими фирмами в области разработки программного обеспечения как эффективный аппаратно-независимый интерфейс, пригодный для реализации на различных платформах. Основой стандарта стала библиотека IRIS GL, разработанная фирмой Silicon Graphics Inc. Библиотека насчитывает около 120 различных команд, которые программист использует для задания объектов и операций, необходимых для написания интерактивных графических приложений. На сегодняшний день графическая система OpenGL поддерживается большинством производителей аппаратных и программных платформ. Эта система доступна тем, кто работает в среде Windows, пользователям компьютеров Apple. Свободно распространяемые коды системы Mesa (пакет API на базе OpenGL) можно компилировать в большинстве операционных систем, в том числе в Linux. Характерными особенностями OpenGL, которые обеспечили распространение и развитие этого графического стандарта, являются:

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

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

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

Все функции OpenGL можно разделить на пять категорий:

Функции описания примитивов нижнего уровня иерархии, которые способна отображать графическая подсистема. В OpenGL в качестве примитивов выступают точки, линии, многоугольники и т. д.

Функции описания источников света служат для описания положения и параметров источников света, расположенных в трехмерной сцене.

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

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

OpenGL может выполнять дополнительные операции, такие как использование сплайнов для построения линий и поверхностей, удаление невидимых фрагментов изображений, работа с изображениями на уровне пикселей и т. д.

OpenGL состоит из набора библиотек. Все базовые функции хранятся в основной библиотеке GL. В состав GLU (GL Utility) вошла реализация более сложных функций, таких как набор популярных геометрических примитивов (куб, шар, цилиндр, диск), функции построения сплайнов, реализация дополнительных операций над матрицами и т. п.

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

GLUT и freeGLUT
Наиболее популярной является библиотека GLUT (GL Utility Toolkit). GLUT предоставляет только минимально необходимый набор функций для создания OpenGL-приложения и берет на себя такие задачи, как: инициализация, обработка событий, управление окнами, управление перекрытием, регистрация вызываемых функций, отображение геометрических фигур.

GLUT создавался Марком Килгардом (Mark Kilgard) в качестве академического пакета при освоении OpenGL во время его работы в Silicon Graphics Inc. и не является свободно распространяемым продуктом, хотя в интернет опубликован вместе с исходными текстами программ. Сообществом разработчиков был предложен открытый вариант подобной библиотеки: FreeGlut – включающей большинство базовых функций Glut, и несколько расширенный для профессионального использования.

GLFW
GLFW – существенно более компактный API, позволяющий реализовать функции, относящиеся к операционной системе в рамках OpenGL программирования. GLFW предоставляет следующие дополнительные возможности для программиста: открытие и управление OpenGL окнами, поддержка многопоточности.

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

Заключение

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

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

Литература

  1. Кильчевский, Н. А. Элементы тензорного исчисления и его приложения в механике [Текст] / Н. А. Кильчевский. – М.: Государственное издательство технико-теоретической литературы, 1954. – 168 с.

  2. Фокс, А. Вычислительная геометрия (применение в проектировании и производстве) [Текст] / А. Фокс, М. Пратт. – М.: Мир, 1982. – 304 с.

  3. Храмушин, В. Н. Трехмерная тензорная математика вычислительных экспериментов в гидромеханике / В. Н. Храмушин. – Владивосток: ДВО РАН, 2005. – 212 с.

  4. Эйнджел, Э. Интерактивная компьютерная графика. Вводный курс на основе OpenGL [Текст] / Эдвард Эйнджел. – М.: изд. дом «Вильямс», 2001. – 592 с.

1 Масолов Алексей Владимирович, консультант по портфелю производственных приложений, «Сахалин Энерджи Инвестмент Компани, ЛТД», аспирант СахГУ.

2 Храмушин Василий Николаевич, к. т. н., доцент кафедры математики, зав. лаб. вычислительной гидромеханики и морских исследований СахГУ.

3 Шкичев Сергей Александрович, студент, гр. 431 СахГУ.



Скачать документ

Похожие документы:

  1. Численные решения и инженерные подходы в проектировании и построении вычислительных экспериментов в гидромеханике УДК 519 67

    Документ
    3 Литература Численныерешения и инженерныеподходы в проектировании и построениивычислительныхэкспериментов в гидромеханикеУДК: 519.67 А. В. Масолов1, В. Н. Храмушин2, С. А. Шкичев3, г. Южно-Сахалинск В ...
  2. Рубрикатор ВИНИТИ по математике и вычислительным наукам 2004 г

    Документ
    ... .25 Численные методы решения нелинейных систем УДК519.615.5 271.41.17 Численные методы анализа УДК519 ... методы вычислительной математики УДК519.67 271.41.23.15 Программирование на ЭВМ УДК519.671 ...
  3. Рубрикатор ВИНИТИ по математике и вычислительным наукам 2004 г

    Документ
    ... .25 Численные методы решения нелинейных систем УДК519.615.5 271.41.17 Численные методы анализа УДК519 ... методы вычислительной математики УДК519.67 271.41.23.15 Программирование на ЭВМ УДК519.671 ...
  4. РУБРИКАТОР ИНФОРМАЦИОННЫХ ИЗДАНИЙ ВИНИТИ

    Документ
    ... .25 Численные методы решения нелинейных систем УДК519.615.5 271.41.17 Численные методы анализа УДК519 ... методы вычислительной математики УДК519.67 271.41.23.15 Программирование на ЭВМ УДК519.671 ...
  5. Алгоритмы и методы численного моделирования характеристик

    Монография
    ... Монография рассчитана на инженерно-технических работников, занимающихся проектированием и эксплуатацией элементов ... Р. Вычислительнаягидромеханика и теплообмен. В 2-х т. -М.: Мир, 1990. 45. Патанкар С. Численные методы решения задач теплообмена ...

Другие похожие документы..