MemCom is a data management system which has been designed for engineering applications, like computational solid mechanics, computational fluid dynamics, and coupled multi-disciplinary applications. It is however not tied to specific applications and may be used in many contexts where fast or platform-independent I/O is desired.
MemCom is being actively developed and maintained. Recent additions include client/server support and support for the Python language.
MemCom supports two basic data structures:
Instances of these data structures are called datasets. Each dataset is identified by a name. A MemCom database is a collection of datasets with unique names.
MemCom can be accessed from the C, C++, Fortran 77, Fortran 90, and Python programming languages by means of specific API's.
The components of MemCom consist of (1) the library containing a range of functions for data definition and data manipulation (2) header files for the C and Fortran programming interface (3) the Python modules (4) the on-line documentation (5) the browser which is used to view databases (6) a set of auxiliary tools.
The design and implementation of MemCom are optimized for access to a large number of arbitrarily sized datasets. The complexity for adding new datasets to a MemCom database is almost O(1), making MemCom's performance superior to that of other data managers, where the complexity is rather O(n*m), n being the number of datasets and m being the average dataset size.
Due to this advantage, MemCom databases tend to hold a much greater number of datasets (easily up to 1 million) than other data managers. This removes the file cluttering frequently encountered with other solutions.
Large and portable databases are possible due to MemCom's platform-independent design and database format. Databases can be exchanged between many different hardware and software platforms, ranging from PC's to supercomputers.