EDEM — различия между версиями

Материал из Department of Theoretical and Applied Mechanics
Перейти к: навигация, поиск
(owukEjLdzmw)
 
(не показано 7 промежуточных версий 4 участников)
Строка 1: Строка 1:
Your webtsie has to be the electronic Swiss army knife for this topic.
+
[[Файл:EDEMlogo.jpg|400px|thumb|right]]
 +
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"/>.<br> Справка по EDEM API <ref name="API"/><br>
 +
[[Программирование под EDEM (лекции)]]<br>
 +
 
 +
К 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===
 +
Проверяйте корректность пакетов прежде чем начинайте их использовать. Как показало исследование [[Integrating Rotational Degree Of Freedom in EDEM|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>
 +
 
 +
 
 +
[[Category: Механика дискретных сред]]
 +
[[Category: Программирование]]

Текущая версия на 02:20, 27 января 2013

EDEMlogo.jpg

EDEM - это СAE (computer-aided engineering) программный пакет с заложенной в него моделью дискретных элементов DEM.
Стандартная папка для установки: "Disk":\Program Files\DEM Solutions\EDEM "Version of EDEM"\
В дальнейшем пути файлов будут указываться внутри данной папки.

Гид по использованию EDEM'a[1]. Подробнее [2]

Заложенные модели[править]

  1. Hertz-Mindlin (no slip)
  2. Hertz-Mindlin with bonding
  3. Linear Cohesion
  4. Moving Plane

Подробнее [3]

Программирование под EDEM[править]

Гид про программированию под EDEM[4].
Справка по EDEM API [5]
Программирование под EDEM (лекции)

К EDEM'у можно подключать самостоятельно написанные библиотеки взаимодействий и создания частиц. Программирование данных библиотек осуществляется на языке C++. Всего есть три вида подключаемых библиотек, они же в терминах справки, "User Defined Library" (UDL):

  1. Contact Model (контактная модель взаимодействия, к примеру, взаимодействие Hertz-Mindlin'a);
  2. Particle Body Force (объемные силы и/или дальнодействующие взаимодействия, к примеру, сила тяжести и сила электромагнитного взаимодействия между частицами);
  3. Particle Factory (создание частиц, к примеру, в виде шаров на бильярдном столе).

Для создания UDL необходимо:

  1. начать новый (пустой) проект, создающий на выходе DLL библиотеку (а НЕ ехе-файл);
  2. добавить в проект header'ы соответствующие типу создаваемой библиотеки ([4], page 7);
  3. создать новый класс-наследник, методы которого будут перегружать методы интерфейса, представленного в header'ах

или

  1. начать новый (пустой) проект, создающий на выходе DLL библиотеку (а НЕ ехе-файл);
  2. загрузить в этот проект уже существующий пример UDL;
  3. видоизменить пример.

После компиляции и создания DLL-файла необходимо поместить его в соответствующую папку, указанную в настройках EDEM (Options->File locations...), тогда он станет доступен внутри EDEM.

Тонкости программирования[править]

  1. у создаваемой библиотеки должна быть та же разрядность, что и у установленной версии EDEM (32bit или 64bit);
  2. у частиц есть два радиуса: физический и контактный; расчет силы (для Contact Models) между частицами происходит тогда и только тогда, когда частицы контактируют (что определяется контактным радиусом);
  3. с помощью встроенных средств создания начальной конфигурации невозможно создать частицы на расстоянии ближе контактного;
  4. библиотека, созданная в debug режиме работает существенно медленнее, чем созданная в release режиме;
  5. примеры UDL можно скачать с официального форума после регистрации (примеры UDL для EDEM 2.2[6])

Ошибки в EDEM[править]

Проверяйте корректность пакетов прежде чем начинайте их использовать. Как показало исследование EDEM неправильно считает вращательные степени свободы Не воспринимайте код в примерах и вспомогательных библиотеках, как безошибочный. Ошибки могут быть везде, в частности в:

  1. Helpers.h
  2. CBondedParticle.cpp (criterion, torques)

Отладка библиотек[править]

С помощью Visual Studio 2010 (скорее всего верно и для 2007):

  1. скомпилировать библиотеку в режиме debug;
  2. ничего не меняя в исходниках, подключиться к процессу edem.exe (с помощью Attach to process...);
  3. расставить breakpoint'ы и запустить расчет/создание конфигурации.

Литература[править]

  1. EDEM Users Guide (docs\)
  2. EDEM Help (help\EDEM.htm)
  3. EDEM contact models (help\Appendixes\Contact_Models\Contact_Models.htm)
  4. 4,0 4,1 EDEM Programming Guide(docs\)
  5. EDEM API Help(src\Api\Help\index.html)
  6. Examples of source files for UDLs (src\Examples\)