nns.c  1.0.1
Nanowire Network simulator
network.h
Go to the documentation of this file.
1 
16 #ifndef NETWORK_H
17 #define NETWORK_H
18 
19 #include "datasheet.h"
20 #include "junction.h"
21 #include "wire.h"
22 
25 typedef struct
26 {
27  wire* Ws;
34  int js_count;
42 
46 typedef struct
47 {
48  double* Ys;
52  double* Vs;
54 
66 network_topology create_network(const datasheet ds, int n2c[], int* ccs_count);
67 
76 
83 int ntcmp(const void* e1, const void* e2);
84 
91 
99  const datasheet ds,
100  const network_topology nt,
101  const network_state ns
102 );
103 
111 
118 
119 #endif /* NETWORK_H */
Defines the structure and comparison function for a device's datasheet.
Defines the structure and comparison function for nanowire junctions.
void destroy_topology(network_topology nt)
Destroy a network topology memorized in the stack. This function practically frees the wires and junc...
Definition: network.c:89
void destroy_state(network_state ns)
Destroy a network state memorized in the stack. This function practically frees Ys and Vs arrays of t...
Definition: network.c:95
network_state copy_state(const datasheet ds, const network_topology nt, const network_state ns)
Create a deep copy of a network state.
Definition: network.c:70
network_topology create_network(const datasheet ds, int n2c[], int *ccs_count)
Create the Nanowire Network topology determining the wires and junctions distribution....
Definition: network.c:10
network_state construe_circuit(const datasheet ds, const network_topology nt)
Construe the equivalent electrical circuit of the Nanowire Network. Both nanowires and junctions are ...
Definition: network.c:29
network_topology copy_topology(const datasheet ds, const network_topology nt)
Create a deep copy of a network topology.
Definition: network.c:54
int ntcmp(const void *e1, const void *e2)
Compare two network topologies according to the number of junctions.
Definition: network.c:46
Defines the static characteristics of the device.
Definition: datasheet.h:16
Stores the index of the wires forming the junction together with its position.
Definition: junction.h:19
Electrical state of the Nanowire Network. It contains the varying values of the junctions and the vol...
Definition: network.h:47
double * Ys
Definition: network.h:48
double * Vs
Voltage distribution across the nanowires.
Definition: network.h:52
Topology of the Nanowire Network. It contains information about the physical placement of nanowires a...
Definition: network.h:26
int js_count
Number of junctions identified.
Definition: network.h:34
wire * Ws
Definition: network.h:27
junction * Js
Definition: network.h:35
Stores the starting and ending positions of a wire together with its centroid position and total leng...
Definition: wire.h:20
Defines the ‘wire’ structure and a function for comparing wires by length.