Module

Modules simplify the creation of large models.

What is a module?
Modules are building blocks which can be used to create models with less effort compared to using only basic elements like neurons and pipes.

In principle, a module is nothing more than a model From a technical point of view, it can therefore be said that a module is a model and every model can be used as a module.
 * All commands and features working for models also work for modules
 * The external storage format of models and modules is identical
 * Module files have the extension ".mod" as do model files

The main difference lies in the usage. Modules are created and specially prepared to be used as building blocks, which can be used in different models. Modules can also be used multiple times in one model.

Creating modules
As every model can be considered a module, creating a module basically means nothing else as saving a model to disk. However, in order to optimally fulfil its purpose as a reusable building block, a module should be prepared in a special way. A module should be equipped with connectors.

Adding modules to models
The decisive point for the usage of a module is the command Add module. In contrast to Open model, the "Add Model" command does not replace the current model by a different model, but the newly read model is added to the the current model. This way, any large models can be constructed in a short time, by adding prefabricated components.

Connectors
A newly added module initially has no connection to the rest of the model. The user's next task is to connect input neurons and output neurons to form a coherent network. Typically a larger number of neurons must be connected, which can be tedious and time consuming.

The key feature for the efficient usage of modules are connectors. A connector is a group of input or output neurons that are firmly connected to each other. In analogy to sockets and plugs in electronic devices, connectors come in two different flavours: Input connectors, consisting of input neurons and output connectors, consisting of output neurons. Connectors allow multiple connections to be established in one step. The user can plug an input connector into an output connector, similar to plugging connectors in electronic devices.

List of commands related to modules

 * Add module
 * Connect
 * Disconnect
 * Plug
 * Split

Best practices
The interaction of these commands in the practical application is described in the following best practices:
 * Creating modules
 * Using modules