Elsevier Science Home
Computer Physics Communications Program Library
Full text online from Science Direct
Programs in Physics & Physical Chemistry
CPC Home

[Licence| Download | New Version Template] aewz_v1_0.tar.gz(528 Kbytes)
Manuscript Title: APINetworks: A General API for the Treatment of Complex Networks in Arbitrary Computational Environments
Authors: Alfonso Niño, Camelia Muñoz-Caro, Sebastián Reyes
Program title: APINetworks 1.0
Catalogue identifier: AEWZ_v1_0
Distribution format: tar.gz
Journal reference: Comput. Phys. Commun. 196(2015)446
Programming language: Standard ANSI C++11.
Computer: Workstation.
Operating system: Linux, Windows.
Keywords: API, Software, Complex Networks, Heterogeneous Networks, Dynamic Networks.
PACS: 02.10.0x, 89.75.-k, 89.75.Hc.
Classification: 6.3.

Nature of problem:
The computational modelling and handling of complex systems, described as a network of interacting elements, is nowadays a topic of paramount importance. In the general case, it is necessary to represent static or dynamic, time dependent, sets of heterogeneous entities related through heterogeneous interactions. In turn, and depending on the size and nature of the problem, different computational approaches may be required. Thus, we can resort to sequential, parallel or distributed systems and to disk-based data structures. Different tools are available that satisfy one or several of these requirements. However, a unified approach for dealing with heterogeneous networks in arbitrary computational environments is still pending.

Solution method:
To address the above issues, we have developed an Application Programming Interface: APINetworks. The API is organized in several packages where the one responsible for the network structure acts as the core element. We resort to an object-oriented approach, that makes use of inheritance and polymorphism. In this way, we can model static and dynamic networks and include heterogeneous agents in the nodes and heterogeneous interactions in the edges. In addition, this approach permits a unified treatment, transparent to the user, of different computational environments: sequential, parallel, distributed, memory-based or disk-based.

Running time:
Examples provided take a few seconds each.