ElecNetKit ArchitectureElecNetKit Documentation

This article illustrates the component architecture of ElecNetKit.

Block Diagram And Description

The components in ElecNetKit interact in the fashion demonstrated in the block digram, below.

Block Diagram

The core components of ElecNetKit are:

NetworkController
The NetworkController is responsible for coordinating the entire experimentation / simulation process. It invokes all other modules at the appropriate time and tightly controls access to the NetworkModel to ensure reliability of results.
ISimulator
The ISimulator 'abstracts away' the complexity of the raw simulator software interface. Upon receiving commands from the NetworkController, it sends and extracts data to and from the underlying simulation engine. ISimulators are not directly interacted with for the purposes of running network experiments. The only time that ISimulators should be directly used is when passed to NetworkController.
IExperimentor
The IExperimentor defines an interface for conducting experiments on the simulated network. When the NetworkController runs a simulation, it invokes the assigned IExperimentor, alerting it to the current state of the electrical network and expecting a list of simulator commands that will be used to manipulate the network.
IResultsTransform
The IResultsTransform class offers a way to read the network results both before and after the experiment is undertaken, and can modify the results and topology of the final network immediately before it is returned by the NetworkController. This allows for perturb-and-observe style measurements, or logarithmic scaling of results, for example.
NetworkModel
The NetworkModel represents the entire electrical network that is being operated upon. For futher information, see Traversing the Network Model.
INetworkGraph
The INetworkGraph interface specifies a consistent means for producing visual representations of NetworkModels. Some graphs are included with ElecNetKit for convenience. These are discussed in Graphing with ElecNetKit.

To get a feel for the interaction between these modules, take a look at the Walkthrough: A Minimal Working Example example.

See Also

Reference