EDEM — различия между версиями
(Новая страница: «EDEM - это СAE (computer-aided engineering) программный пакет с заложенной в него моделью дискретных элеме...») |
|||
(не показано 16 промежуточных версий 7 участников) | |||
Строка 1: | Строка 1: | ||
+ | [[Файл:EDEMlogo.jpg|400px|thumb|right]] | ||
EDEM - это СAE (computer-aided engineering) программный пакет с заложенной в него моделью дискретных элементов [[DEM]]. | EDEM - это СAE (computer-aided engineering) программный пакет с заложенной в него моделью дискретных элементов [[DEM]]. | ||
+ | <br> | ||
Стандартная папка для установки: "Disk":\Program Files\DEM Solutions\EDEM "Version of EDEM"\ | Стандартная папка для установки: "Disk":\Program Files\DEM Solutions\EDEM "Version of EDEM"\ | ||
+ | <br> | ||
В дальнейшем пути файлов будут указываться внутри данной папки. | В дальнейшем пути файлов будут указываться внутри данной папки. | ||
+ | <br><br> | ||
Гид по использованию EDEM'a<ref name="UG"/>. Подробнее <ref name="EDEM_help"/> | Гид по использованию EDEM'a<ref name="UG"/>. Подробнее <ref name="EDEM_help"/> | ||
+ | |||
==Заложенные модели== | ==Заложенные модели== | ||
#[[Hertz-Mindlin|Hertz-Mindlin (no slip)]] | #[[Hertz-Mindlin|Hertz-Mindlin (no slip)]] | ||
Строка 8: | Строка 13: | ||
#[[Linear Cohesion]] | #[[Linear Cohesion]] | ||
#[[Moving Plane]] | #[[Moving Plane]] | ||
+ | Подробнее <ref name="EDEM_models"/> | ||
+ | |||
==Программирование под EDEM== | ==Программирование под EDEM== | ||
+ | Гид про программированию под EDEM<ref name="PG"/>.<br> Справка по EDEM API <ref name="API"/><br> | ||
+ | [[Программирование под EDEM (лекции)]]<br> | ||
+ | |||
К EDEM'у можно подключать самостоятельно написанные библиотеки взаимодействий и создания частиц. Программирование данных библиотек осуществляется на языке C++. | К EDEM'у можно подключать самостоятельно написанные библиотеки взаимодействий и создания частиц. Программирование данных библиотек осуществляется на языке C++. | ||
Всего есть три вида подключаемых библиотек, они же в терминах справки, "User Defined Library" (UDL): | Всего есть три вида подключаемых библиотек, они же в терминах справки, "User Defined Library" (UDL): | ||
Строка 23: | Строка 33: | ||
#видоизменить пример. | #видоизменить пример. | ||
− | После компиляции и создания DLL-файла необходимо поместить его в соответствующую папку, указанную в настройках EDEM (Options->File locations...). | + | После компиляции и создания DLL-файла необходимо поместить его в соответствующую папку, указанную в настройках EDEM (Options->File locations...), тогда он станет доступен внутри EDEM. |
===Тонкости программирования=== | ===Тонкости программирования=== | ||
Строка 30: | Строка 40: | ||
#с помощью встроенных средств создания начальной конфигурации невозможно создать частицы на расстоянии ближе контактного; | #с помощью встроенных средств создания начальной конфигурации невозможно создать частицы на расстоянии ближе контактного; | ||
#библиотека, созданная в debug режиме работает существенно медленнее, чем созданная в release режиме; | #библиотека, созданная в debug режиме работает существенно медленнее, чем созданная в release режиме; | ||
− | #примеры UDL | + | #примеры UDL можно скачать с [http://www.dem-solutions.com/forum/viewforum.php?f=15 официального форума] после регистрации (примеры UDL для EDEM 2.2<ref name="UDL_sources"/>) |
+ | |||
===Ошибки в EDEM=== | ===Ошибки в EDEM=== | ||
+ | Проверяйте корректность пакетов прежде чем начинайте их использовать. Как показало исследование [[Integrating Rotational Degree Of Freedom in EDEM|EDEM неправильно считает вращательные степени свободы]] | ||
Не воспринимайте код в примерах и вспомогательных библиотеках, как безошибочный. Ошибки могут быть везде, в частности в: | Не воспринимайте код в примерах и вспомогательных библиотеках, как безошибочный. Ошибки могут быть везде, в частности в: | ||
#Helpers.h | #Helpers.h | ||
Строка 41: | Строка 53: | ||
#ничего не меняя в исходниках, подключиться к процессу edem.exe (с помощью Attach to process...); | #ничего не меняя в исходниках, подключиться к процессу edem.exe (с помощью Attach to process...); | ||
#расставить breakpoint'ы и запустить расчет/создание конфигурации. | #расставить breakpoint'ы и запустить расчет/создание конфигурации. | ||
+ | |||
==Литература== | ==Литература== | ||
<references> | <references> | ||
Строка 48: | Строка 61: | ||
<ref name="EDEM_help"> | <ref name="EDEM_help"> | ||
EDEM Help (help\EDEM.htm) | EDEM Help (help\EDEM.htm) | ||
+ | </ref> | ||
+ | <ref name="EDEM_models"> | ||
+ | EDEM contact models (help\Appendixes\Contact_Models\Contact_Models.htm) | ||
</ref> | </ref> | ||
<ref name="UDL_sources"> | <ref name="UDL_sources"> | ||
Строка 54: | Строка 70: | ||
<ref name="PG"> | <ref name="PG"> | ||
EDEM Programming Guide(docs\) | EDEM Programming Guide(docs\) | ||
+ | </ref> | ||
+ | <ref name="API"> | ||
+ | EDEM API Help(src\Api\Help\index.html) | ||
</ref> | </ref> | ||
</references> | </references> | ||
+ | |||
+ | |||
+ | [[Category: Механика дискретных сред]] | ||
+ | [[Category: Программирование]] |
Текущая версия на 02:20, 27 января 2013
EDEM - это СAE (computer-aided engineering) программный пакет с заложенной в него моделью дискретных элементов DEM.
Стандартная папка для установки: "Disk":\Program Files\DEM Solutions\EDEM "Version of EDEM"\
В дальнейшем пути файлов будут указываться внутри данной папки.
Гид по использованию EDEM'a[1]. Подробнее [2]
Содержание
Заложенные модели[править]
Подробнее [3]
Программирование под EDEM[править]
Гид про программированию под EDEM[4].
Справка по EDEM API [5]
Программирование под EDEM (лекции)
К EDEM'у можно подключать самостоятельно написанные библиотеки взаимодействий и создания частиц. Программирование данных библиотек осуществляется на языке C++. Всего есть три вида подключаемых библиотек, они же в терминах справки, "User Defined Library" (UDL):
- Contact Model (контактная модель взаимодействия, к примеру, взаимодействие Hertz-Mindlin'a);
- Particle Body Force (объемные силы и/или дальнодействующие взаимодействия, к примеру, сила тяжести и сила электромагнитного взаимодействия между частицами);
- Particle Factory (создание частиц, к примеру, в виде шаров на бильярдном столе).
Для создания UDL необходимо:
- начать новый (пустой) проект, создающий на выходе DLL библиотеку (а НЕ ехе-файл);
- добавить в проект header'ы соответствующие типу создаваемой библиотеки ([4], page 7);
- создать новый класс-наследник, методы которого будут перегружать методы интерфейса, представленного в header'ах
или
- начать новый (пустой) проект, создающий на выходе DLL библиотеку (а НЕ ехе-файл);
- загрузить в этот проект уже существующий пример UDL;
- видоизменить пример.
После компиляции и создания DLL-файла необходимо поместить его в соответствующую папку, указанную в настройках EDEM (Options->File locations...), тогда он станет доступен внутри EDEM.
Тонкости программирования[править]
- у создаваемой библиотеки должна быть та же разрядность, что и у установленной версии EDEM (32bit или 64bit);
- у частиц есть два радиуса: физический и контактный; расчет силы (для Contact Models) между частицами происходит тогда и только тогда, когда частицы контактируют (что определяется контактным радиусом);
- с помощью встроенных средств создания начальной конфигурации невозможно создать частицы на расстоянии ближе контактного;
- библиотека, созданная в debug режиме работает существенно медленнее, чем созданная в release режиме;
- примеры UDL можно скачать с официального форума после регистрации (примеры UDL для EDEM 2.2[6])
Ошибки в EDEM[править]
Проверяйте корректность пакетов прежде чем начинайте их использовать. Как показало исследование EDEM неправильно считает вращательные степени свободы Не воспринимайте код в примерах и вспомогательных библиотеках, как безошибочный. Ошибки могут быть везде, в частности в:
- Helpers.h
- CBondedParticle.cpp (criterion, torques)
Отладка библиотек[править]
С помощью Visual Studio 2010 (скорее всего верно и для 2007):
- скомпилировать библиотеку в режиме debug;
- ничего не меняя в исходниках, подключиться к процессу edem.exe (с помощью Attach to process...);
- расставить breakpoint'ы и запустить расчет/создание конфигурации.