EDEM API Files

EDEM includes the C++ EDEM API v3.3.0 for Contact Models, v2.1.0 for Factories, and v3.3.0 for Particle Body Forces.

You can also continue to use any legacy API from the previous versions of EDEM. For more information about how to use the API, see the API Reference Help included in the EDEM installation folder.

Example source files (which you can use as the basis for writing your own UDLs) are available from the customer section of Altair's website. Header files containing the details of each available function are available at the following location: EDEM at Install Directory EDEM > src > Api.

The following tables provide an overview of EDEM’s API source file location and files.

API Directories

Directory Description
src/Api Contains v2.0.0 (and later) API files for contact models, particle body forces, and factories.
src/Api/Help Contains the Online Reference Help.
src/Misc Contains additional files that may be of use when developing UDLs. The Helpers.h file is an updated version of sharedTypes.h from the legacy API.
src/LegacyApi Contains older API files as shipped with the previous version of EDEM.

Core API Header Files

Directory Description
Apilds.h Contains unique ID numbers for all the supported APIs.
ApiTypes.h Contains constants and declarations used by the EDEM generic API.
IApi.h Defines the IApi interface. This is the base interface for all non-UDL APIs.
IApiManager_1_0.h Defines the IApiManager_1_0 interface that provides the ability to allocate and initialize various APIs for use by UDLs.
ICustomPropertyDataApi_1_0.h Provides basic access to custom property data and delta values.
ICustomPropertyManagerApi_1_0.h Provides basic access to custom property meta-data for one of four different custom property collections (Particle, Geometry element, Contact, and Simulation).
IFieldApi_1_0.h Defines the IFieldAPI_1_0 interface that provides basic access to field data through a series of query methods.
IFieldManagerApi_1_0.h Provides basic access to the Field Manager via a series of query methods.
IGeometryManager_1_0.h Provides basic access to the custom properties associated with configured Geometries.
IGeometryManager_1_1.h Enables the custom Geometry property data entries to be reset by the property index instead of by name, and improves the speed of user API code.
IGeometryManagerApi_1_2.h Provides additional access to the configured Geometries mesh coordinates, in addition to the normal custom property access.
IParticleManagerApi_1_0.h Provides basic access to the particles, and the ability to reset particle custom property values, as well as get and set the size (scale) of the particles.
IParticleManagerApi_1_1.h Provides a function to get the total number of particles of a specified type.
IParticleManagerApi_1_2.h Enables the custom particle property data entries to be reset by the property index instead of by name, and improves the speed of user API code.
IParticleManagerApi_1_3 Enables the option to mark the External Force model particle for additional CPU processing. Marked particles are removed from the simulation.
ISimulationManagerApi_1_0.h Provides access to the simulation properties, enabling them to be reset to a specified value.
ISimulationManagerApi_1_1.h Allows custom simulation property values to be reset by the index instead of by name, and improves the speed of user API code.
ISimulationManagerApi_1_2 Returns the value of the gravity vector used in the simulation.
NCalcForceTypesV3_0_0.h Contains structures used in the calculateForce() function.
NExternalForceTypesV3_0_0.h Contains structures used in the externalForce() function.
PluginConstants.h Contains constants and declarations used by Contact Model, Particle Body Forces, and Factory UDLs.

Contact Model Header Files

Directory Description
IPluginContactModel.h Defines the IPluginContactModel interface that all Contact Model UDLs versioned interfaces are derive from.
IPluginContactModelV3_4_0.h Defines the IPluginContactModelV3_4_0 versioned interface for contact models. Contains all the main methods for implementation.
PluginContactModelCore.h Core interface for contact models. Implement the methods contained in this interface to enable EDEM to access your UDL.

Particle Body Force Header Files

Directory Description
IPluginParticleBodyForce.h Defines the IPluginParticleBodyForce interface that all Particle Body Force versioned interfaces derive from.
IPluginParticleBodyForceV3_4_0.h Defines the IPluginParticleBodyFroceV3_3_0 versioned interface for particle body forces. Contains all the main methods to implement.
PluginParticleBodyForceCore.h Core interface for Particle Body Force UDLs. Implement the methods contained in this interface to enable EDEM to access your UDL.

Particle Factory Header Files

Directory Description
IPluginParticleFactory.h Defines the PluginParticleFactory UDL interface that all Factory versioned interfaces derive from.
IPluginParticleFactoryV2_1_0.h Defines the IPluginParticleFactoryV2_1_0 versioned interface for factories. Contains all the main methods to implement.
IPluginParticleFactoryV2_2_0.h Allows API factories to be used with the Cylindrical Periodic boundaries.
PluginParticleFactoryCore.h Core interface for factories. Implement the methods contained here to enable EDEM to access your UDL.

Other Header Files

Directory Description
CGenericFileReader.h Provides a generic way to read configuration files. You will also need to compile the CGenericFileReader.cpp file into your UDLs shared library along with other source files.
HelpersV3_0_0.h Includes various utility classes to help with vector and matrix calculations.
HelpersV3_4_0.h This update includes all helpers in sync CUDA API, providing greater parity between the CPU and CUDA API.
Use Example Source files as the basis for writing your own UDLs.