Различия

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

ru:ivutils [2012/11/15 06:47]
deinega
ru:ivutils [2014/05/11 18:59] (текущий)
deinega
Строка 1: Строка 1:
-======ivutils======+======Библиотека вспомогательных утилит ivutils======
  
 это набор утилит C++ для создания численных приложений. ivutils использовались при написании программ EMTL (electromagnetic modeling) и [[https://sites.physics.utoronto.ca/sajeevjohn/software/transport|Microvolt]] (semiconductor device modeling) это набор утилит C++ для создания численных приложений. ivutils использовались при написании программ EMTL (electromagnetic modeling) и [[https://sites.physics.utoronto.ca/sajeevjohn/software/transport|Microvolt]] (semiconductor device modeling)
  
-Для использования ivutils, нужно их скачать и скомпилировать с вашим кодом: {{:ivutils.zip}} +Для использования ivutils, нужно их скачать и скомпилировать с вашим кодом: {{:ivutils.zip}}
  
 ivutils включает следующие утилиты: ivutils включает следующие утилиты:
Строка 15: Строка 15:
 | | | | | |
 | grid | однородная и неоднородная сетки для хранения и интерполяции данных | | grid | однородная и неоднородная сетки для хранения и интерполяции данных |
-linsysn | интерфейс для решения системы линейных уравнений с помощью LAPACK и PARDISO |+linsolv | интерфейс для решения системы линейных уравнений с помощью LAPACK и PARDISO |
 | | | | | |
 | refobj\\ pencil |умные указатели для контроля над памятью, выделяемой под динамические объекты | | refobj\\ pencil |умные указатели для контроля над памятью, выделяемой под динамические объекты |
Строка 79: Строка 79:
  
 Векторам с целочисленными координатами отвечает класс iVector_3. Векторам с целочисленными координатами отвечает класс iVector_3.
-   + 
-Прямоугольный параллелепипед, ребра которого параллельны координатным осям, задается путем указания левого нижнего и правого верхнего векторов.+Тела, описывающие геометрические классы, являются наследниками класса Region_3. 
 +Класс Region_3 (а также его наследники) имеет следующую фунциональность: 
 +  *он может проверять, находится ли произвольная точка внутри или снаружи 
 +  *он может находить ближайшую точку на поверхности от выбранного положения 
 +  *он может находить пересечение с произвольной прямой 
 +  *он может находить сечение с произвольным плоским контуром 
 + 
 +Ниже мы приводии примеры функций, которые могут использоваться для создания некоторых распространенных объектов. 
 + 
 +<code cpp> 
 +  Region_3 *GetHalfSpace(const Vector_3 &n, const Vector_3 &pos); 
 +</code> 
 +возвращает полупространство, n - нормаль к граничной плоскости, pos - произвольная точка на этой плоскости. Например, 
 + 
 +<code cpp> 
 +  Region_3 *reg = GetHalfSpace(Vector_3(0,0,1), Vector_3(0,0,0)); 
 +</code> 
 +возвращает полупространству соответсвующее положительной части оси z. 
 + 
 +<code cpp> 
 +  Region_3 *GetPlate(const Vector_3 &n, const Vector_3 &pos, vec_type width); 
 +</code>   
 +возвращает бесконечную пластинку (пространство между двумя параллельным плоскостями), n - нормаль к плоскостям, pos - точка на некоторой плоскости, width - расстояние между этой плоскостью и соседней плоскостью. 
 + 
 +<code cpp> 
 +Region_3 *getBox(const &Vector_3 a, const &Vector_3 b); 
 +</code> 
 +возвращает параллелепипед с ребрами параллельными координатным осям. a и b - противоположные вершины параллелепипеда. 
 + 
 +<code cpp> 
 +Region_3 *GetSphere(vec_type R, const &Vector_3 center); 
 +</code> 
 +возвращает сферу радиуса R и центром center. 
 + 
 +<code cpp> 
 +Region_3 *GetCylinder(const Vector_3 &origin, Vector_3 n, vec_type R, valtype h); 
 +</code> 
 +возвращает цилиндр, origin - точка на оси цилиндра, n - направление оси, R - радиус, h - высота (если h=0, цилиндр считается бесконечным). 
 + 
 +<code cpp> 
 +Region *GetCone(const Vector_3 &origin, Vector_3 n, vec_type R, vec_type h); 
 +</code> 
 +возвращает конус, все параметры имеют такое же значение как и для GetCylinder. 
 + 
 +Также имеются многогранник, цилиндр и пирамида с основанием в виде произвольного многоугольника. Тела можно растягивать, поворачивать, брать их пересечения и объединения. Гладкие тела, например конус, можно конструировать как многогранники с большим количеством граней. Все это задокументировано в region.h. 
 + 
 + 
 +/**Прямоугольный параллелепипед, ребра которого параллельны координатным осям, задается путем указания левого нижнего и правого верхнего векторов.
  
 <code cpp> <code cpp>
Строка 91: Строка 138:
   Sphere s(1,Vector_3()); // сфера s радиуса 1, центр которой находится в начале координат   Sphere s(1,Vector_3()); // сфера s радиуса 1, центр которой находится в начале координат
 </code> </code>
- +*/
-Также имеются многогранник, цилиндр и пирамида с основанием в виде произвольного многоугольника. Тела можно растягивать, поворачивать, брать их пересечения и объединения. Гладкие тела, например конус, можно конструировать как многогранники с большим количеством граней.+
  
 ======Скрипт для запуска задач на произвольном суперкомпьютере====== ======Скрипт для запуска задач на произвольном суперкомпьютере======
Строка 155: Строка 201:
 Аргументы этой функции такие же, как и у функции qsub. Аргументы этой функции такие же, как и у функции qsub.
 Единственное отличие в том, что директория workdir/worksubdir будет создаваться в вашей рабочей директории, а исполняемый файл prog и вспомогательный файл fname будут искаться в вашей домашней директории. Единственное отличие в том, что директория workdir/worksubdir будет создаваться в вашей рабочей директории, а исполняемый файл prog и вспомогательный файл fname будут искаться в вашей домашней директории.
- 
 
/home/kintechlab/fdtd.kintechlab.com/docs/data/attic/ru/ivutils.1352947641.txt.gz · Последние изменения: 2012/11/15 06:47 — deinega     Наверх