You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
2. the node outputs of the destination end of the edge
142
142
2. two outputs:
143
-
1. the `dst` output (which is used as the input of the vertex at the destination end)
144
-
2. the `src` output (which is used as the input of the vertex at the source end)
143
+
1. the `dst` output (which is used as input for the vertex at the destination end)
144
+
2. the `src` output (which is used as input for the vertex at the source end)
145
145
146
146
In general, the two edge outputs $y_{\mathrm{src}}$ and $y_{\mathrm{dst}}$ are **completely independent** because there
147
147
is no implicit conservation law dictating that their values should be identical.
148
-
An example for such an unbalanced systems is power lines in an energy grid with losses, where the power flowing into a line
148
+
An example of such unbalanced systems is power lines in an energy grid with losses, where the power flowing into a line
149
149
does not match the power flowing out of it, because some of the energy transported is lost in the form of heat.
150
150
Another example would be a gas pipeline with some internal pressure: it is entirely possible to push in gas from both
151
151
ends simultaneously. It would simply result in increased pressure within the pipe. For the (important) special cases
152
-
where there is a strong correlation between source and destination output see the section on [Single Sided Edge Outputs](@ref) below.
152
+
where there is a strong correlation between source and destination output, see the section on [Single Sided Edge Outputs](@ref) below.
153
153
154
154
The vertex models connected to the edge do not know whether they are at the 'src' or the 'dst' end of the edge.
155
-
Therefore, the sign convention for both outputs of an edge must be identical. Typically, a positive flow represents
155
+
Therefore, the sign convention for both outputs of an edge must be identical. Typically, a positive flow represents
156
156
a flow *into* the connected vertex, whereas a negative flow represents a flow *out of* the connected vertex.
157
157
```
158
158
y_src ┌───────────────────┐ y_dst
@@ -162,11 +162,11 @@ a flow *into* the connected vertex, whereas a negative flow represents a flow *o
162
162
163
163
### Single Sided Edge Outputs
164
164
Often, the edge output functions $g_\mathrm{src}$ and $g_\mathrm{dst}$ are not independent, but rather one of them is a function of the other.
165
-
For example, in an edge model with flow conservation without internal storage, the flow magnitude at the source end is equal to the flow magnitude at the destination end (what flows in, must come out).
166
-
Since the sign convention on both ends must be identical (e.g. positive flow is a flow towards the vertex) we get anti symmetric behavior: $y_\mathrm{src} = -y_\mathrm{dst}$.
165
+
For example, in an edge model with flow conservation without internal storage, the flow magnitude at the source end is equal to the flow magnitude at the destination end (what flows in must come out).
166
+
Since the sign convention on both ends must be identical (e.g., positive flow is a flow towards the vertex), we get antisymmetric behavior: $y_\mathrm{src} = -y_\mathrm{dst}$.
167
167
168
-
To accommodate such cases, we can use the concept of **singlesided edge output functions**.
169
-
A singlesided output function only defines a function for one of the outputs:
168
+
To accommodate such cases, we can use the concept of **single-sided edge output functions**.
169
+
A single-sided output function only defines a function for one of the outputs:
170
170
171
171
```julia
172
172
functiong_single(y, xᵥ, v_src, v_dst, pₑ, t)
@@ -176,18 +176,18 @@ end
176
176
```
177
177
178
178
There are multiple wrappers available to automatically convert them into double-sided edge output functions:
179
-
-`Directed(g_single)` builds a double-sided function *which only couples* to the destination side (i.e. $y_{dst}=y$ and $y_{src} = 0$).
180
-
-`Symmetric(g_single)` builds a double-sided function in which both ends receive `y` (i.e. $y = y_{src} = y_{dst})$.
181
-
-`AntiSymmetric(g_single)` builds a double-sided function where the destination receives `y` and the source receives `-y` (i.e. $y=y_{dst}=-y_{src}$).
182
-
-`Fiducial(g_single_src, g_single_dst)` builds a double-sided edge output function based on two singlesided functions.
179
+
-`Directed(g_single)` builds a double-sided function *which only couples* to the destination side (i.e., $y_{dst}=y$ and $y_{src} = 0$).
180
+
-`Symmetric(g_single)` builds a double-sided function in which both ends receive `y` (i.e., $y = y_{src} = y_{dst}$).
181
+
-`AntiSymmetric(g_single)` builds a double-sided function where the destination receives `y` and the source receives `-y` (i.e., $y=y_{dst}=-y_{src}$).
182
+
-`Fiducial(g_single_src, g_single_dst)` builds a double-sided edge output function based on two single-sided functions.
183
183
184
184
185
185
## Feed Forward Behavior
186
186
!!! warning "Feed Forward Vertices"
187
-
As of 11/2024, vertices with feed forward behaviour (FF) are not supported at all. Use [`ff_to_constraint`](@ref) to
187
+
As of 11/2024, vertices with feed forward behavior (FF) are not supported at all. Use [`ff_to_constraint`](@ref) to
188
188
transform them into vertex models without FF.
189
189
190
-
Component models can have a so-called Feed Forward behaviour, which provides a direct link between the input and the
190
+
Component models can have a so-called feed forward behavior, which provides a direct link between the input and the
191
191
output.
192
192
193
193
The most generic version of the component models can contain direct FFs from the input to the output. This means that
@@ -204,14 +204,14 @@ gᵥ(yᵥ, xᵥ, e_aggr, pᵥ, t)
204
204
gₑ([y_src,] y_dst, xₑ, v_src, v_dst, pₑ, t)
205
205
```
206
206
207
-
NetworkDynamics cannot couple two components with FFs to each other. But, it is always possible to transform
208
-
feed forward behaviour to an internal state `x` with mass matrix entry zero to circumvent this problem. This
207
+
NetworkDynamics cannot couple two components with FFs to each other. However, it is always possible to transform
208
+
feed forward behavior to an internal state `x` with mass matrix entry zero to circumvent this problem. This
209
209
transformation can be performed automatically using [`ff_to_constraint`](@ref).
210
210
211
-
Concretely, NetworkDynamics distinguishes between 4 types of feed forward behaviours of `g` functions based on the
211
+
Concretely, NetworkDynamics distinguishes between 4 types of feed forward behaviors of `g` functions based on the
212
212
[`FeedForwardType`](@ref) trait.
213
213
The feed forward type is inferred automatically based on the provided function `g` (this is done by inspecting the available
214
-
method signatures for `g`, i.e. network dynamics checks how many arguments your `g` function takes)
214
+
method signatures for `g`, i.e., NetworkDynamics checks how many arguments your `g` function takes).
215
215
If the automatic inference of feed forward type fails, the user may specify it explicitly using the `ff` keyword
0 commit comments