1 Introduction
Swimming organisms leverage a wide variety of sensory modalities that enable them to respond to changes in their environment. One such sensory modality is flow sensing. Flow sensing and response to hydrodynamic signals is exhibited at a wide variety of length and time scales. For example, harbour seals are capable of hydrodynamically tracking a moving object by following its wake (Dehnhardt et al. Reference Dehnhardt, Mauck, Hanke and Bleckmann2001). Fish use the lateral line sensory system to respond to a wide variety of flow stimuli (e.g. Montgomery, Baker & Carton Reference Montgomery, Baker and Carton1997; Engelmann et al. Reference Engelmann, Hanke, Mogdans and Bleckmann2000). At a smaller scale, copepods have incredibly diverse sensory structures (Yen & Nicoll Reference Yen and Nicoll1990; Boxshall, Yen & Strickler Reference Boxshall, Yen and Strickler1997) and exhibit responses to hydrodynamic signals in foraging, mating and escaping (Yen, Weissburg & Doall Reference Yen, Weissburg and Doall1998).
These sophisticated responses to hydrodynamic signals are the result of complex and intertwined mechanisms, including sensory and neural networks and actuation modalities, all coupled to the hydrodynamic environment. The physiological mechanisms underlying flow sensing are most likely tuned to the hydrodynamic signals that the environment presents to the organism (Dehnhardt et al. Reference Dehnhardt, Mauck, Hanke and Bleckmann2001; Ristroph, Liao & Zhang Reference Ristroph, Liao and Zhang2015; Colvert & Kanso Reference Colvert and Kanso2016). Concretely, by hydrodynamic signal, we mean the information contained in the fluid velocity, pressure or density fields. Flow sensors could independently probe one or more of these fields. One example of organisms with sensory systems that measure fluid velocity is the copepod; see, e.g., Yen & Strickler (Reference Yen and Strickler1996), where it is argued that copepods can access the full velocity vector. Another example is the fish lateral line system, which consists of two types of sensors that measure velocity (see, e.g., Kroese & Schellart Reference Kroese and Schellart1992) and pressure (see, e.g., Coombs & Van Netten Reference Coombs and Van Netten2005) along the fish body. Most fluid mechanics studies inspired by the fish lateral line focus on emulating its pressure sensing abilities. For instance, Venturelli et al. (Reference Venturelli, Akanyeti, Visentin, Ježov, Chambers, Toming, Brown, Kruusmaa, Megill and Fiorini2012) used an array of pressure sensors and found that by measuring the frequency content of the pressure time series, they could discern between vortex streets and uniform flows, as well as determine the position and orientation of the sensory array with respect to the axis of the vortex street. Fernandez (Reference Fernandez2011) combined a physics-based model with state-estimator theory to predict the position, size and speed of an upstream object. Colvert & Kanso (Reference Colvert and Kanso2016) postulated a behaviour-based model in conjunction with a physics-based potential flow model to study fish rheotactic behaviour – their alignment to an oncoming flow field. Less is known about local velocity sensing and its implications for deciphering the character of the local flow. In this study, we restrict our attention to the information contained in the velocity field itself. More specifically, we focus on local flow characterization using bioinspired sensory systems that measure only the ambient velocity field.
The classical approach to flow characterization relies on global reconstruction of the flow field by an external observer, using either experimental or computational methods, and identification of its global topological structure (e.g. Williamson & Roshko Reference Williamson and Roshko1988; Schnipper, Andersen & Bohr Reference Schnipper, Andersen and Bohr2009). Another means of flow characterization is to identify the flow ‘type’. Locally, all incompressible flows lie on a spectrum from extensional to rotational (Marrucci & Astarita Reference Marrucci and Astarita1967; Lagnado Reference Lagnado1985). These types of characterizations are used to delineate coherent flow structures (Jeong & Hussain Reference Jeong and Hussain1995; Haller Reference Haller2005). Global flow characterization yields valuable insight for engineering design, but it does not provide a suitable framework for an organism or an engineered vehicle with local sensory capabilities. In such applications, one has access to pointwise and discrete sensory measurements in a small subdomain of the velocity field. The objective is to use these local sensory measurements to compute desired flow properties. This inverse problem is difficult to solve because it typically involves incomplete information and could have zero or multiple solutions. Two general questions are important to answer with regard to the inverse problem: what are the desired flow properties that need to be computed and how can they be computed? The how part consists of deciding the physical quantities the sensors should measure, such as which components of velocity provide enough information, as well as the processing algorithms that decode the desired flow properties from the sensory measurements.
In this work, we consider an array of velocity sensors in a general incompressible velocity field $\boldsymbol{u}(\boldsymbol{x},t)$ ; see figure 1. We assume that the flow field evolves at a larger spatial scale than the dimensions of the sensory array. We further consider one-way coupling, where the sensory array detects the ambient flow but does not affect it. We begin by linearizing the velocity field around the sensory array and calculating the local strain rates and vorticity field. Then, inspired by Lagnado (Reference Lagnado1985), we introduce the notion of flow type and flow intensity and show how these flow properties are related to the local strain rates and vorticity. We consider a simple bioinspired sensory system consisting of two velocity sensors and one piece of sensory information, the difference in measurement between the two sensors. We find that, under certain conditions on the sensory measurements, we can derive decoding algorithms that allow for reconstruction of the local strain rates and vorticity field. We then go beyond reconstructing the strain rates and vorticity to identifying the flow type on the spectrum from extensional to rotational flow, thus providing a local characterization of the flow field. To illustrate these ideas, we virtually place this sensory system in three canonical flow fields – Lamb–Oseen vortex, Gaussian shear and flow past a circular cylinder – and test its performance. Numerical results show that the sensory system and processing scheme we develop accurately characterize the local flow. More generally, this local flow characterization is linked to the problem of inferring flow structure from sparse sensory information, which could involve a large number of sensors and sensory geometries and different sensor deployment strategies. The local flow information constructed from the present algorithm would then serve to guide the behavioural response and deployment strategy of the sensory system, as in Vergassola, Villermaux & Shraiman (Reference Vergassola, Villermaux and Shraiman2007).
2 Flow characterization
We consider a fluid environment with velocity field $\boldsymbol{u}(\boldsymbol{x},t)$ , where $\boldsymbol{x}$ is the Euclidean position vector measured relative to a fixed inertial frame and $t$ is the time. At a given instant in time, we expand the velocity field $\boldsymbol{u}$ about a particular location $\boldsymbol{x}_{o}$ , which we will later take to be the location of the sensory system, using the Taylor series
Here, $\boldsymbol{u}_{o}$ is the velocity evaluated at $\boldsymbol{x}_{o}$ , and the velocity gradient tensor $\unicode[STIX]{x1D735}\boldsymbol{u}$ is evaluated at $\boldsymbol{x}_{0}$ . In figure 2, we show an example of the spatial decomposition of a nonlinear velocity field into a uniform component, a spatially linear component and a residual field representing the higher-order terms. In this work, we discard the higher-order terms and employ the linear approximation
The velocity gradient tensor $\unicode[STIX]{x1D735}\boldsymbol{u}$ is canonically decomposed into a symmetric strain-rate tensor $\unicode[STIX]{x1D64E}$ and a skew-symmetric vorticity tensor $\unicode[STIX]{x1D734}$ (e.g. Jeong & Hussain Reference Jeong and Hussain1995; Haller Reference Haller2005),
where
The superscript $(\cdot )^{\text{T}}$ denotes the transpose operation. Given an incompressible two-dimensional flow field $\unicode[STIX]{x1D735}\boldsymbol{\cdot }\boldsymbol{u}=0$ , we can write
where $\unicode[STIX]{x1D70E}$ and $\unicode[STIX]{x1D70F}$ are the strain rates and $\unicode[STIX]{x1D714}$ is the vorticity. Let $\Vert \unicode[STIX]{x1D64E}\Vert =\sqrt{\text{tr}(\unicode[STIX]{x1D64E}\unicode[STIX]{x1D64E}^{\text{T}})}$ and $\Vert \unicode[STIX]{x1D734}\Vert =\sqrt{\text{tr}(\unicode[STIX]{x1D734}\unicode[STIX]{x1D734}^{\text{T}})}$ denote the Frobenius norms of $\unicode[STIX]{x1D64E}$ and $\unicode[STIX]{x1D734}$ respectively; then,
It should be noted that the Frobenius norm of a tensor is frame-invariant; that is to say, $\Vert \unicode[STIX]{x1D64D}\unicode[STIX]{x1D63C}\Vert =\Vert \unicode[STIX]{x1D63C}\Vert$ for any matrix $\unicode[STIX]{x1D63C}$ and rotation matrix $\unicode[STIX]{x1D64D}$ . It follows that any quantities derived from the norm of the tensor are also frame-invariant.
Since $\unicode[STIX]{x1D64E}$ is symmetric, it can be diagonalized by a rotation matrix $\unicode[STIX]{x1D64D}=[\begin{array}{@{}cc@{}}\boldsymbol{r}_{1} & \boldsymbol{r}_{2}\end{array}]$ composed of its normalized eigenvectors
The diagonalized strain-rate tensor takes the form
where $\tilde{(\cdot )}$ denotes a quantity written in the eigenbasis of $\unicode[STIX]{x1D64E}$ . Meanwhile, in the case of two-dimensional flows, $\unicode[STIX]{x1D734}$ is invariant under rotation and can be generally written in the form
To this end, when expressed in the eigenbasis of $\unicode[STIX]{x1D64E}$ , the velocity gradient tensor takes the form
The $(\unicode[STIX]{x1D70E},\unicode[STIX]{x1D70F},\unicode[STIX]{x1D714})$ parameterization of the velocity gradient tensor describes the magnitudes of various velocity gradients in the flow, namely stretch, shear and vorticity. However, each one fails independently to provide an easy means by which one can identify key characteristics of the flow such as its type. We then pose the question: is there a different parameterization where the parameters represent more meaningful quantities with regard to the local flow characterization?
We introduce two parameters, the flow type $\unicode[STIX]{x1D705}$ and flow intensity $\unicode[STIX]{x1D6FC}$ ,
where $\unicode[STIX]{x1D705}\in (-\infty ,\infty )$ describes the ratio of vorticity to strain and $\unicode[STIX]{x1D6FC}\in [0,\infty )$ describes the intensity of velocity gradients. Figure 3 illustrates the parameterization of flow type by $\unicode[STIX]{x1D705}$ on a spectrum from extensional to rotational. The velocity gradient tensor can be rewritten in terms of $\unicode[STIX]{x1D705}$ and $\unicode[STIX]{x1D6FC}$ as
The $(\unicode[STIX]{x1D70E},\unicode[STIX]{x1D70F},\unicode[STIX]{x1D714})$ parameterization of the velocity gradient tensor for a two-dimensional incompressible flow is a three-parameter description of the gradients in the flow. We translate these parameters into type $\unicode[STIX]{x1D705}$ and intensity $\unicode[STIX]{x1D6FC}$ by
In addition, we also consider the rotation angle $\unicode[STIX]{x1D713}$ that diagonalized the strain-rate tensor $\unicode[STIX]{x1D64E}$ , where
The $(\unicode[STIX]{x1D705},\unicode[STIX]{x1D6FC},\unicode[STIX]{x1D713})$ parameterization has a distinct advantage over that of $(\unicode[STIX]{x1D70E},\unicode[STIX]{x1D70F},\unicode[STIX]{x1D714})$ in that each parameter has an intuitive significance that can be ascertained independently of the others. Perhaps more importantly, the values of $\unicode[STIX]{x1D705}$ and $\unicode[STIX]{x1D6FC}$ are frame-independent, since they are derived from $\Vert \unicode[STIX]{x1D64E}\Vert$ and $\Vert \unicode[STIX]{x1D734}\Vert$ , whereas $(\unicode[STIX]{x1D70E},\unicode[STIX]{x1D70F},\unicode[STIX]{x1D714})$ are fundamentally linked to a given frame of reference.
In figure 4, we demonstrate the advantage of this parameterization by examining the spatial variation of $(\unicode[STIX]{x1D705},\unicode[STIX]{x1D6FC},\unicode[STIX]{x1D713})$ for three canonical fluid flows: a Lamb–Oseen vortex, a Gaussian shear profile and a circular cylinder in uniform free stream at a Reynolds number of $Re=60$ . The Lamb–Oseen vortex is given by the velocity field $u_{\unicode[STIX]{x1D703}}=(1-\exp (-r^{2}/r_{c}^{2}))A/r$ , where $u_{\unicode[STIX]{x1D703}}$ is the azimuthal velocity, $r=\sqrt{x^{2}+y^{2}}$ is the radial dimension, $r_{c}=2$ is the vortex core size and $A=-3$ is the vortex strength, with all quantities defined in polar coordinates. The Gaussian shear flow is defined by the velocity field $u=B\exp (-y^{2}/y_{c}^{2})$ , where $u$ is the velocity in the $x$ direction, $y_{c}=5$ is the wake width and $B=5$ is the wake intensity. The cylinder data are from a Navier–Stokes simulation of uniform flow past a circular cylinder at $Re=60$ , originally published in Chen et al. (Reference Chen, Tu and Rowley2012). Figure 4(a–c) depicts the velocity vectors and vorticity fields. Figures 4(d–f) and 4(g–i) show that $\unicode[STIX]{x1D705}$ provides an intensity-independent measure of flow type, and, accordingly, $\unicode[STIX]{x1D6FC}$ provides a type-independent measure of flow intensity. Figure 4(j–l) depicts the values of $\unicode[STIX]{x1D713}$ and the associated eigenvector $\boldsymbol{r}_{1}$ , which provides the local orientation in the direction of maximum stretch.
As an aside, for a two-dimensional flow, the type and intensity can be related to the canonical ‘ $Q$ -criterion’ (Hunt, Wray & Moin Reference Hunt, Wray and Moin1988). The $Q$ -criterion is often cited as a simple means of identification of vortical structures in a flow and is computed by
In the type–intensity parameterization, $Q$ is given by
There are two important items to note regarding the $(\unicode[STIX]{x1D705},\unicode[STIX]{x1D6FC},\unicode[STIX]{x1D713})$ parameterization and the $Q$ -criterion. First, the numerical value of $Q$ is inherently tied to both the type and the intensity of the flow, whereas $\unicode[STIX]{x1D705}$ and $\unicode[STIX]{x1D6FC}$ independently reveal the type and intensity. Second, since $Q$ depends on $\unicode[STIX]{x1D705}^{2}$ rather than $\unicode[STIX]{x1D705}$ directly, the $Q$ -criterion reveals the type of flow up to a sign. It cannot distinguish the sense of the vorticity, however.
We have shown that $(\unicode[STIX]{x1D705},\unicode[STIX]{x1D6FC},\unicode[STIX]{x1D713})$ provides a convenient parameterization of the velocity gradient tensor $\unicode[STIX]{x1D735}\boldsymbol{u}$ and that $(\unicode[STIX]{x1D70E},\unicode[STIX]{x1D70F},\unicode[STIX]{x1D714})$ can be used to compute this parameterization. Next, we devise a scheme by which a sensory system that measures local velocity differences can characterize the flow type and intensity.
3 Sensory system
We consider a sensory system consisting of two velocity sensors, located at $\boldsymbol{x}_{r}$ and $\boldsymbol{x}_{l}$ , a distance $l$ apart, as depicted in figure 5. Let $(\boldsymbol{b}_{1},\boldsymbol{b}_{2})$ be an orthonormal frame attached to the system such that $\boldsymbol{x}_{l}-\boldsymbol{x}_{r}=l\boldsymbol{b}_{2}$ and let $\unicode[STIX]{x1D703}$ denote the orientation of the $\boldsymbol{b}_{1}$ -axis measured from the inertial $x$ -direction. Each sensor samples the velocity field $\boldsymbol{u}$ in the $(\boldsymbol{b}_{1},\boldsymbol{b}_{2})$ frame such that the data from both sensors are combined to produce one sensory measurement $\boldsymbol{s}=\boldsymbol{u}(\boldsymbol{x}_{l})-\boldsymbol{u}(\boldsymbol{x}_{r})$ . By virtue of (2.2), $\boldsymbol{s}$ is given by
In component form, one has
The goal of the sensory system is to invert this computation to determine the components of $\unicode[STIX]{x1D735}\boldsymbol{u}$ from the sensory output $\boldsymbol{s}$ . The inverse problem, however, is not algebraically closed with one set of measurements. The vector $\boldsymbol{s}=s_{1}\boldsymbol{b}_{1}+s_{2}\boldsymbol{b}_{2}$ contains at most two independent quantities $s_{1}$ and $s_{2}$ , whereas $\unicode[STIX]{x1D735}\boldsymbol{u}$ is a tensor containing three independent quantities ( $\unicode[STIX]{x1D70E}$ , $\unicode[STIX]{x1D70F}$ and $\unicode[STIX]{x1D714}$ ). For this reason, it is necessary to take more than one set of independent measurements by changing the orientation of the sensory system.
Let $\unicode[STIX]{x1D703}_{n}$ and $\unicode[STIX]{x1D703}_{m}$ denote the orientation of the sensory system when the $n$ th and $m$ th samples are taken respectively. We define the angle $\unicode[STIX]{x0394}\unicode[STIX]{x1D703}_{m,n}=\unicode[STIX]{x1D703}_{n}-\unicode[STIX]{x1D703}_{m}$ that parameterizes the relative rotation of the sensory array between the two angles (see figure 5). It is worth noting here that the sensory system has access to its relative rotation $\unicode[STIX]{x0394}\unicode[STIX]{x1D703}_{m,n}$ but is not aware of its orientation $\unicode[STIX]{x1D703}_{n}$ and $\unicode[STIX]{x1D703}_{m}$ in inertial space. Let $(\boldsymbol{b}_{1},\boldsymbol{b}_{2})_{n}$ and $(\boldsymbol{b}_{1},\boldsymbol{b}_{2})_{m}$ denote the body frames associated with $\unicode[STIX]{x1D703}_{n}$ and $\unicode[STIX]{x1D703}_{m}$ respectively. Let $(\unicode[STIX]{x1D735}\boldsymbol{u})_{n}$ , $(\boldsymbol{s})_{n}$ and $(\unicode[STIX]{x1D735}\boldsymbol{u})_{m}$ , $(\boldsymbol{s})_{m}$ denote the velocity gradient tensor and sensory measurements in the $n$ and $m$ frames respectively. The sensory output in the $n$ frame is given by (3.1), which, when expressed in component form, yields the following system of linear equations:
Clearly, given the strain rates and vorticity, one can directly evaluate the sensory measurement. However, we emphasize that the inverse problem – computing $(\unicode[STIX]{x1D70E}_{n},\unicode[STIX]{x1D70F}_{n},\unicode[STIX]{x1D714}_{n})$ from $((s_{1})_{n},(s_{2})_{n})$ – is not algebraically closed. Thus, we need additional sensory measurements $((s_{1})_{m},(s_{2})_{m})$ at $\unicode[STIX]{x1D703}_{m}$ and we need to relate $(\unicode[STIX]{x1D70E}_{n},\unicode[STIX]{x1D70F}_{n},\unicode[STIX]{x1D714}_{n})$ to $((s_{1})_{m},(s_{2})_{m})$ . The velocity gradients $(\unicode[STIX]{x1D735}\boldsymbol{u})_{m}$ and $(\unicode[STIX]{x1D735}\boldsymbol{u})_{n}$ are related by a change of coordinates,
where $\unicode[STIX]{x1D723}_{m,n}$ is the rotation matrix between the $n$ and $m$ frames,
The sensory measurement $((s_{1})_{m},(s_{2})_{m})$ in the $m$ frame is obtained by substituting (3.4) into (3.1), yielding
which, upon further simplification, yields the sensory measurement in component form,
We next discuss how to combine (3.3) and (3.7) to compute the desired flow characteristics from sensory measurements. This problem will depend on the capabilities of the sensory system, namely whether the velocity sensors can access $s_{1}$ , $s_{2}$ , or both.
Orthogonal sensors. We consider sensors that measure $s_{1}$ only. We refer to these sensors as orthogonal sensors because they measure the component of velocity orthogonal to the sensory array (see figure 6 a). Barring rank deficiency, the algebraic closure of the system necessitates, at a minimum, that three sensory samples are taken at $n$ , $n-1$ and $n-2$ . That is to say, our sensory information consists of the vector $[\begin{array}{@{}ccc@{}}(s_{1})_{n} & (s_{1})_{n-1} & (s_{1})_{n-2}\end{array}]^{\text{T}}$ . Using the first row of (3.3) and (3.7), we have that
where the measurement matrix $\unicode[STIX]{x1D648}_{ortho}$ is
If $\unicode[STIX]{x0394}\unicode[STIX]{x1D703}_{n-1,n},\unicode[STIX]{x0394}\unicode[STIX]{x1D703}_{n-2,n}\neq 0\text{ mod }\unicode[STIX]{x03C0}$ and $\unicode[STIX]{x0394}\unicode[STIX]{x1D703}_{n-1,n}\neq \unicode[STIX]{x0394}\unicode[STIX]{x1D703}_{n-2,n}$ , $\unicode[STIX]{x1D648}_{ortho}$ has full column rank and we can compute the inverse (omitted here). The local strain rates $\unicode[STIX]{x1D70E}_{n}$ and $\unicode[STIX]{x1D70F}_{n}$ and the local vorticity $\unicode[STIX]{x1D714}_{n}$ can thus be determined by the system. This reconstruction of the values of $\unicode[STIX]{x1D70E}_{n}$ , $\unicode[STIX]{x1D70F}_{n}$ and $\unicode[STIX]{x1D714}_{n}$ relies on measurements at three distinct orientations, which may be disadvantageous in a time-dependent velocity field.
Parallel sensors. We now consider sensors that measure $s_{2}$ only. We denote these sensors as parallel sensors because they measure the component of velocity parallel to the sensory array (see figure 6 b). Once again, barring rank deficiency, the algebraic closure requires that our sensory information consists of the vector $[\begin{array}{@{}ccc@{}}(s_{2})_{n} & (s_{2})_{n-1} & (s_{2})_{n-2}\end{array}]^{\text{T}}$ . Using the second row of (3.3) and (3.7), we have that
where the measurement matrix $\unicode[STIX]{x1D648}_{parallel}$ is
The measurement matrix $\unicode[STIX]{x1D648}_{parallel}$ has maximum column rank $2$ , and therefore the velocity gradient cannot be uniquely determined. Here, we are unable to determine $\unicode[STIX]{x1D714}_{n}$ in the case of parallel sensors because it lies in the null space of $\unicode[STIX]{x1D648}_{parallel}$ . More importantly, this result holds true regardless of the number of sensory measurements (i.e. the length of the sensory information vector).
Full velocity sensors. If the sensory system has access to full velocity data, we will see that we only need to use two sample measurements at $n$ and $n-1$ . We concatenate the orthogonal and parallel sensory data at $n$ and $n-1$ into the vector $\left[\begin{array}{@{}cccc@{}}(s_{1})_{n} & (s_{2})_{n} & (s_{1})_{n-1} & (s_{2})_{n-1}\end{array}\right]^{\text{T}}$ . For simplicity, we define $\unicode[STIX]{x0394}\unicode[STIX]{x1D703}_{n-1,n}=-\unicode[STIX]{x0394}\unicode[STIX]{x1D703}$ . Using both rows of (3.3) and (3.7), we have that
where the measurement matrix $\unicode[STIX]{x1D648}_{full}$ is
For $\unicode[STIX]{x0394}\unicode[STIX]{x1D703}\neq 0$ , $\unicode[STIX]{x1D648}_{full}$ has full column rank. If the flow field $\boldsymbol{u}$ were truly linear, then $\unicode[STIX]{x1D70E}_{n}$ , $\unicode[STIX]{x1D70F}_{n}$ and $\unicode[STIX]{x1D714}_{n}$ could be uniquely determined from these sensory data. In the general case, however, the sensory data will also include $\mathit{O}(\Vert \boldsymbol{x}-\boldsymbol{x}_{o}\Vert ^{2})$ terms from the velocity field (2.1), and the linear system (3.12) is therefore overdetermined. Using the Moore–Penrose pseudoinverse (Golub & Van Loan Reference Golub and Van Loan1996, 257), we find that the least-squares solution is given by
where $\unicode[STIX]{x1D648}_{full}^{+}=(\unicode[STIX]{x1D648}_{full}^{\text{T}}\unicode[STIX]{x1D648}_{full})^{-1}\unicode[STIX]{x1D648}_{full}^{\text{T}}$ , yielding
Thus, for $\unicode[STIX]{x0394}\unicode[STIX]{x1D703}\neq 0$ , the local strain rates $\unicode[STIX]{x1D70E}_{n}$ and $\unicode[STIX]{x1D70F}_{n}$ and the local vorticity $\unicode[STIX]{x1D714}_{n}$ can be obtained from the sensory system.
We now demonstrate how the sensory information can be used to characterize the flow locally. To this end, we will test the ability of the algorithm described in (3.15) to compute flow properties, while varying sensor parameters, in several canonical flow regimes.
Lamb–Oseen vortex. The non-dimensional flow profile for a Lamb–Oseen vortex is described by the velocity field $\boldsymbol{u}(\boldsymbol{x})=(1-\exp (-r^{2})/r^{2})(-y\boldsymbol{e}_{1}+x\boldsymbol{e}_{2})$ , where $r=\sqrt{x^{2}+y^{2}}$ . Accordingly, the flow type and intensity are given by
In figure 7, we plot $\unicode[STIX]{x1D705}$ and $\unicode[STIX]{x1D6FC}$ as a function of the vertical coordinate $y$ . We then apply the algorithm described in (3.15) to compute these flow properties first for fixed $l$ and varying $\unicode[STIX]{x0394}\unicode[STIX]{x1D703}$ (figure 7 a,b) and then vice versa (figure 7 c,d). We see that the algorithm performs very well in capturing both flow type and intensity, and changing $\unicode[STIX]{x0394}\unicode[STIX]{x1D703}$ has very little impact on performance. We also see that, for small $l$ , the algorithm performs very well, and for larger $l$ , the performance deteriorates. This result is understandable, given the fact that our primary assumption in the development of (3.15) was that the flow is locally linear, and this assumption of locality is violated for larger $l$ . However, since we did not place any restrictions on the size of $\unicode[STIX]{x0394}\unicode[STIX]{x1D703}$ , we should expect that even for finite values of $\unicode[STIX]{x0394}\unicode[STIX]{x1D703}$ , we can accurately recover the flow properties.
Gaussian shear. The non-dimensional flow profile for a Gaussian shear is described by the velocity field $\boldsymbol{u}(\boldsymbol{x})=\exp (-y^{2})\boldsymbol{e}_{1}$ . Accordingly, the flow type and intensity are given by
Figure 8(a,b) compares the analytical solution for $\unicode[STIX]{x1D705}$ and $\unicode[STIX]{x1D6FC}$ with the results obtained from (3.15) for fixed $l$ and varying $\unicode[STIX]{x0394}\unicode[STIX]{x1D703}$ , while in figure 8(c,d), we vary $l$ and fix $\unicode[STIX]{x0394}\unicode[STIX]{x1D703}$ . As was the case with the Lamb–Oseen vortex, the impact of changing $\unicode[STIX]{x0394}\unicode[STIX]{x1D703}$ is minimal in this canonical flow as well. We also see that the algorithm performs well for small $l$ .
Cylinder in uniform flow. To test the performance in a time-varying flow, we use the computational model system of a cylinder in uniform flow shown in figure 4(c,f,i,l). We place the sensory system consisting of full velocity sensors in its wake. More specifically, we place two full velocity sensors at a separation distance $l$ at a distance $9$ units downstream from the cylinder centre, along the wake axis. We allow the flow to evolve in time, measure the velocity at each sensor and calculate the velocity difference. At each time step, we obtain the sensory measurements at orientation $\unicode[STIX]{x1D703}$ and $\unicode[STIX]{x1D703}-\unicode[STIX]{x0394}\unicode[STIX]{x1D703}$ . We then feed these sensory measurements to the pseudoinverse $\unicode[STIX]{x1D648}_{full}^{+}$ and plot its output values for strain rates and vorticity. Results are shown in figure 9(a–c) for $\unicode[STIX]{x0394}\unicode[STIX]{x1D703}=0.05\unicode[STIX]{x03C0}$ . Making use of (2.13) and (2.14), we see that from $\unicode[STIX]{x1D70E}_{n}$ , $\unicode[STIX]{x1D70F}_{n}$ and $\unicode[STIX]{x1D714}_{n}$ , we can compute $\unicode[STIX]{x1D705}_{n}$ to characterize the local flow type and $\unicode[STIX]{x1D6FC}_{n}$ to determine its local intensity (figure 9 d,e). We also plot the true values of $\unicode[STIX]{x1D70F}$ , $\unicode[STIX]{x1D70E}$ , $\unicode[STIX]{x1D714}$ , $\unicode[STIX]{x1D705}$ and $\unicode[STIX]{x1D6FC}$ evaluated directly at the location of the sensory array. By comparing these results, we see that the pseudoinverse provides reasonable estimates for all quantities. For quantitative comparison, we compute the root mean square error (e.g. $\bar{\unicode[STIX]{x1D705}}=1/T\int _{0}^{T}(\unicode[STIX]{x1D705}-\unicode[STIX]{x1D705}_{sensor})^{2}\,\text{d}t$ ) for each time series for each value of $l$ ; results are given in table 1. We emphasize that the flow type $\unicode[STIX]{x1D705}$ and intensity $\unicode[STIX]{x1D6FC}$ are frame-independent quantities characteristic of the flow itself and not the frame of reference of the sensory array.
4 Conclusions
We provided a framework for locally characterizing flows by examining the velocity gradient tensor. We canonically decomposed $\unicode[STIX]{x1D735}\boldsymbol{u}$ into the symmetric strain-rate tensor $\unicode[STIX]{x1D64E}$ and the skew-symmetric vorticity tensor $\unicode[STIX]{x1D734}$ . By re-parameterizing these tensors in terms of flow type $\unicode[STIX]{x1D705}$ and intensity $\unicode[STIX]{x1D6FC}$ , we showed that all flows can be locally characterized on a spectrum from extensional to rotational. We illustrated the use of these parameters in three canonical flows: a Lamb–Oseen vortex, a Gaussian shear profile and a circular cylinder in uniform free stream at $Re=60$ .
We developed a biologically inspired sensory system that measures the difference in flow velocity. We considered three different types of velocity sensors: orthogonal, parallel and full. This notation refers to the velocity component(s) that the sensors measure in a frame attached to the sensory array. We found that parallel sensors are not capable of uniquely determining all flow properties, irrespective of how many times they sample the ambient flow. More specifically, we found that using parallel velocity sensors, the sensory system is unable to calculate the local vorticity. We then showed that, when the sensors have access to the orthogonal component or full velocity vector, the sensory system is able to unambiguously compute all three flow properties. However, in the case of the full velocity vector, this takes only two independent measurements. We derived a ‘filter’ that solves the inverse problem to obtain the local strain rates and vorticity from the sensory measurements. Finally, we demonstrated how this filter can be used in conjunction with the $(\unicode[STIX]{x1D705},\unicode[STIX]{x1D6FC},\unicode[STIX]{x1D713})$ parameterization of the velocity gradient tensor. To illustrate the capabilities of this sensory system, we used it to probe several canonical flow fields. We showed that the sensory scheme we developed provided good agreement with direct measurements of the velocity gradients, types and intensities of the flow.
This framework provides an effective method of measuring strain rates and vorticity from local sensory information and for computing the local flow type. However, we must take careful note of several limitations. We assumed that the sensor does not disturb the ambient flow. This assumption is only valid in certain flow regimes when the dimensions $l$ of the submerged sensory system are small relative to those of the flow structures. It is worth noting that, to generate the numerical results in figure 9, we relaxed this requirement by taking the sensor dimension to be equal to $1$ (the same as the cylinder radius) and obtained good agreement between the actual and sensed flow properties. Further, there is an inherent assumption regarding the time scale of the sensory system and the time scale at which the flow field is evolving. Because we sample the flow twice at $\unicode[STIX]{x1D703}_{n}$ and $\unicode[STIX]{x1D703}_{n}-\unicode[STIX]{x0394}\unicode[STIX]{x1D703}$ to reconstruct the flow properties, the frequency at which we sample must be much greater than that at which the velocity field fluctuates. Finally, the relative angle $\unicode[STIX]{x0394}\unicode[STIX]{x1D703}$ must be properly tuned to the flow field that is being sensed. When choosing $\unicode[STIX]{x0394}\unicode[STIX]{x1D703}$ , one must be aware that if $\unicode[STIX]{x0394}\unicode[STIX]{x1D703}$ is too small, the computation of strain rates and vorticity becomes ill-conditioned. In sum, careful selection of the sensory length scale $l$ and relative sampling angle $\unicode[STIX]{x0394}\unicode[STIX]{x1D703}$ will be important to ensure that the sensed flow properties are close to the actual ones. We posit that, for a given flow field, these parameters can be finely tuned to provide optimal flow information, and that the parameter studies we performed with the canonical flows of the Lamb–Oseen vortex and Gaussian shear can provide guidance on these choices.
The analyses performed here were illustrated with two-dimensional flows, but the use of $\unicode[STIX]{x1D705}$ and $\unicode[STIX]{x1D6FC}$ to uniquely characterize flows holds in the three-dimensional case as well. For any velocity field, there are three tensor invariants that can be computed for $\unicode[STIX]{x1D735}\boldsymbol{u}$ . One of these is always $0$ due to incompressibility, since $\unicode[STIX]{x1D64E}$ is traceless, and the other invariants can be uniquely mapped to $\unicode[STIX]{x1D705}$ and $\unicode[STIX]{x1D6FC}$ . The remaining independent parameters of $\unicode[STIX]{x1D735}\boldsymbol{u}$ are due to the orientations of the principal axes of strain and rotation. For the 2D case, we denote this by $\unicode[STIX]{x1D713}$ , the angle of the principal axes of strain – the principal axis of rotation is always orthogonal to the plane. For the 3D case, there are six independent parameters describing the orientations of the principal axes of strain and rotation. In both of these cases, we see that flow type and intensity uniquely characterize all flows, up to their principal axes of strain and rotation.
In future studies, we will develop quantifiable metrics for assessing the performance of a given sensory array in relation to the specific flow field it senses. Definition of quantitative metrics of sensory performance will be an indispensable step for assessing and comparing the performance of distinct sensory arrays and sensing strategies (static versus dynamic), as well as for optimizing the layout of the sensory platform. In dynamically deployed sensors, as is the case in biological swimmers, we will investigate how the sensory information can be incorporated in a feedback loop to determine the motion of the sensory array. In particular, it will become increasingly important to develop strategies to more intelligently guide the dynamic deployment of the sensory array, using techniques from estimation theory (e.g. Vergassola et al. Reference Vergassola, Villermaux and Shraiman2007), machine learning (e.g. Gazzola et al. Reference Gazzola, Tchieu, Alexeev, de Brauer and Koumoutsakos2016) and compressive sensing (e.g. Candes Reference Candes2008).
Acknowledgements
The work of E.K. and B.C. is partially supported by the ONR grant 14-001 (to E.K.). B.C. also acknowledges support from the Department of Defense (DoD) through the National Defense Science and Engineering Graduate Fellowship (NDSEG) Program. K.C. was supported by the Viterbi Postdoctoral Fellowship provided by the Viterbi School of Engineering at the University of Southern California.