|
|
Строка 1: |
Строка 1: |
− | [[Файл:EDEMlogo.jpg|400px|thumb|right]]
| + | Your webtsie has to be the electronic Swiss army knife for this topic. |
− | EDEM - это СAE (computer-aided engineering) программный пакет с заложенной в него моделью дискретных элементов [[DEM]].
| |
− | <br>
| |
− | Стандартная папка для установки: "Disk":\Program Files\DEM Solutions\EDEM "Version of EDEM"\
| |
− | <br>
| |
− | В дальнейшем пути файлов будут указываться внутри данной папки.
| |
− | <br><br>
| |
− | Гид по использованию EDEM'a<ref name="UG"/>. Подробнее <ref name="EDEM_help"/>
| |
− | | |
− | ==Заложенные модели==
| |
− | #[[Hertz-Mindlin|Hertz-Mindlin (no slip)]]
| |
− | #[[Bonded-Particle Model|Hertz-Mindlin with bonding]]
| |
− | #[[Linear Cohesion]]
| |
− | #[[Moving Plane]]
| |
− | Подробнее <ref name="EDEM_models"/>
| |
− | | |
− | ==Программирование под EDEM==
| |
− | Гид про программированию под EDEM<ref name="PG"/>. Справка по EDEM API <ref name="API"/>
| |
− | | |
− | К EDEM'у можно подключать самостоятельно написанные библиотеки взаимодействий и создания частиц. Программирование данных библиотек осуществляется на языке C++.
| |
− | Всего есть три вида подключаемых библиотек, они же в терминах справки, "User Defined Library" (UDL):
| |
− | #Contact Model (контактная модель взаимодействия, к примеру, взаимодействие [[Hertz-Mindlin]]'a);
| |
− | #Particle Body Force (объемные силы и/или дальнодействующие взаимодействия, к примеру, сила тяжести и сила электромагнитного взаимодействия между частицами);
| |
− | #Particle Factory (создание частиц, к примеру, в виде шаров на бильярдном столе).
| |
− | Для создания UDL необходимо:
| |
− | #начать новый (пустой) проект, создающий на выходе DLL библиотеку (а '''НЕ''' ехе-файл);
| |
− | #добавить в проект header'ы соответствующие типу создаваемой библиотеки (<ref name="PG"/>, page 7);
| |
− | #создать новый класс-наследник, методы которого будут перегружать методы интерфейса, представленного в header'ах
| |
− | или
| |
− | #начать новый (пустой) проект, создающий на выходе DLL библиотеку (а '''НЕ''' ехе-файл);
| |
− | #загрузить в этот проект уже существующий пример UDL;
| |
− | #видоизменить пример.
| |
− | | |
− | После компиляции и создания DLL-файла необходимо поместить его в соответствующую папку, указанную в настройках EDEM (Options->File locations...), тогда он станет доступен внутри EDEM.
| |
− | | |
− | ===Тонкости программирования===
| |
− | #у создаваемой библиотеки должна быть та же разрядность, что и у установленной версии EDEM (32bit или 64bit);
| |
− | #у частиц есть два радиуса: физический и контактный; расчет силы (для Contact Models) между частицами происходит тогда и только тогда, когда частицы контактируют (что определяется контактным радиусом);
| |
− | #с помощью встроенных средств создания начальной конфигурации невозможно создать частицы на расстоянии ближе контактного;
| |
− | #библиотека, созданная в debug режиме работает существенно медленнее, чем созданная в release режиме;
| |
− | #примеры UDL можно скачать с [http://www.dem-solutions.com/forum/viewforum.php?f=15 официального форума] после регистрации (примеры UDL для EDEM 2.2<ref name="UDL_sources"/>)
| |
− | | |
− | ===Ошибки в EDEM===
| |
− | Не воспринимайте код в примерах и вспомогательных библиотеках, как безошибочный. Ошибки могут быть везде, в частности в:
| |
− | #Helpers.h
| |
− | #CBondedParticle.cpp (criterion, torques)
| |
− | | |
− | ===Отладка библиотек===
| |
− | С помощью Visual Studio 2010 (скорее всего верно и для 2007):
| |
− | #скомпилировать библиотеку в режиме debug;
| |
− | #ничего не меняя в исходниках, подключиться к процессу edem.exe (с помощью Attach to process...);
| |
− | #расставить breakpoint'ы и запустить расчет/создание конфигурации.
| |
− | | |
− | ==Литература==
| |
− | <references>
| |
− | <ref name="UG">
| |
− | EDEM Users Guide (docs\)
| |
− | </ref>
| |
− | <ref name="EDEM_help">
| |
− | EDEM Help (help\EDEM.htm)
| |
− | </ref>
| |
− | <ref name="EDEM_models">
| |
− | EDEM contact models (help\Appendixes\Contact_Models\Contact_Models.htm)
| |
− | </ref>
| |
− | <ref name="UDL_sources">
| |
− | Examples of source files for UDLs (src\Examples\)
| |
− | </ref>
| |
− | <ref name="PG">
| |
− | EDEM Programming Guide(docs\)
| |
− | </ref>
| |
− | <ref name="API">
| |
− | EDEM API Help(src\Api\Help\index.html)
| |
− | </ref>
| |
− | </references>
| |
Your webtsie has to be the electronic Swiss army knife for this topic.