<< Chapter < Page | Chapter >> Page > |
Many of the concepts from the single-string case carry over to networks.
We begin by describing the notation of the information represented by our data structures. We denote the $i$ th node to have $xyz$ position vector ${p}_{i}$ . For each node at ${p}_{i}$ , there is an associated set of the indices of connected neighbor nodes ${N}_{i}$ and a set ${C}_{i}$ containing the physical constants ${k}_{ij},{s}_{ij}$ pertaining to the connection between nodes $i$ and $j\in {N}_{i}$ . Since we can divide through by ${\rho}_{i}$ on both sides of the network wave equation, we can assume without loss of generality that the constant ${\rho}_{i}=1$ , and that any data carried by the density ${\rho}_{i}$ is now contained in ${k}_{ij}$ .
Assuming we are given a set of $N$ nodes, along with the $xy$ positions of each node (the $z$ positions are assumed to be 0, such that the web is planar in the $xy$ plane at rest), our first goal is to compute our step sizes ${h}_{ij}$ and orientation vectors ${v}_{ij}$ for connections between two nodes $i$ and $j\in {N}_{i}$ . To account for Dirichlet boundary conditions, we also create an anchored node for each endpoint. In this implementation, if a node has only one neighbor, we assume it is connected to a pinned endpoint whose position is in the opposite direction but the same distance away as the only neighbor (this is required to calculate an inner product). For a node connected to an endpoint, we append the index 0 to ${N}_{i}$ .
Given ${p}_{i}$ , ${N}_{i}$ , ${C}_{i}$ , we proceed as follows
In practice, we normalize the positions of our nodes such that the web lies within a box of a desired arbitrary size $s$ . We do this by calculating the maximum distance ${d}_{max}$ between the anchored endpoints of a web, then scaling the positions ${p}_{i}$ of every node by the factor $s/{d}_{max}$ . Since the absolute positions of the nodes don't affect our discretization, we don't need to worry about subtracting off the centroid of all the node positions.
With all our variables now in place, we can now proceed to the actual construction of our discretization matrices. This requires knowing $\u2329{\phi}_{i},,,{\phi}_{j}\u232a$ , $a\left({\phi}_{i},,,{\phi}_{j}\right)$ , and ${P}_{ij}$ . We deal first with constructing the $M$ matrix, which requires only knowledge of $\u2329{\phi}_{i},,,{\phi}_{j}\u232a$ . Just as in the case of finite element on the single string, most of the basis functions ${\phi}_{i}$ and ${\phi}_{j}$ don't share support and their inner products are zero. However, in addition to calculating inner products of regular hat functions, we need to compute the inner products with joint, generalized and nonsymmetric hat functions as well.
Starting with our $M$ matrix, we only need to calculate the inner product $\u2329{\phi}_{i},,,{\phi}_{j}\u232a$ for $j=i$ and $j\in {N}_{i}$ . For the diagonal case $j=i$ , we note that our inner product $\u2329u,,,v\u232a={\sum}_{i=1}^{L}{\int}_{0}^{{\ell}_{i}}u\left({x}_{i}\right)v\left({x}_{i}\right)\phantom{\rule{0.166667em}{0ex}}d{x}_{i}$ needs only be calculated on the support of ${\phi}_{i}$ . For given $i$ ,
The last part is a generalization of our inner product for a uniform grid on a single string. For the off-diagonal case $j\in {N}_{i}$ , $j\ne i$ , the inner product is analogous to the single-string case.
Notification Switch
Would you like to follow the 'The art of the pfug' conversation and receive update notifications?