try ai
Popular Science
Edit
Share
Feedback
  • Contravariant Velocity

Contravariant Velocity

SciencePediaSciencePedia
Key Takeaways
  • Contravariant velocity components are the time-rates of change of coordinates, which transform "against" the basis vectors to maintain the physical velocity as an invariant quantity.
  • The metric tensor encodes the geometry of a coordinate system, providing the mathematical tool to convert between contravariant and covariant components of a vector.
  • Combining contravariant and covariant components reveals physical invariants, like speed squared, which remain constant regardless of the coordinate system used.
  • In applied fields like Computational Fluid Dynamics (CFD), contravariant velocity is crucial, representing physical flux across computational cell faces and simplifying the formulation of conservation laws and boundary conditions.

Introduction

Physical phenomena, such as the velocity of an object, exist independently of the mathematical language we use to describe them. A simple Cartesian grid provides a familiar descriptive framework, but reality is often curved, warped, and complex, demanding a more powerful and flexible language. The challenge, then, is to formulate physical laws in a way that remains true regardless of the chosen coordinate system, from the surface of a sphere to the distorted grid around an airplane wing. This is the central problem that tensor analysis, and specifically the concept of contravariant velocity, elegantly solves.

This article provides a comprehensive exploration of contravariant velocity, bridging the gap between abstract mathematical formalism and concrete physical intuition. It deciphers the core principles of this fundamental concept and showcases its indispensable role across various scientific and engineering disciplines. In the following chapters, we will first delve into the "Principles and Mechanisms," building the concept from the ground up to understand how components, basis vectors, and the metric tensor work in harmony. We will then explore "Applications and Interdisciplinary Connections," witnessing how contravariant velocity provides the natural language for describing everything from celestial mechanics to the cutting-edge simulations that drive modern engineering. Our exploration begins with the foundational principles, demystifying how contravariant velocity arises from the simple act of describing motion in a generalized way.

Principles and Mechanisms

Imagine you are watching a tiny boat drifting on the surface of a pond. Its velocity is a real, physical thing. It’s an arrow, pointing in the direction of motion, with a length representing its speed. This arrow exists independently of how you choose to describe it. You could lay a simple square grid over the pond and describe the boat’s motion by how many grid lines it crosses in the x and y directions per second. Or you could describe it from the center of the pond, using a radial distance and an angle. The boat doesn't care about your grid; its velocity is an ​​invariant​​ physical entity.

The central theme of our journey is this: while the physical vector itself is real and unchanging, its numerical description—its ​​components​​—depends entirely on the coordinate system we choose. The genius of tensor analysis is that it gives us a precise set of rules for translating between these descriptions and, more importantly, a way to identify the truly physical, invariant quantities that lie beneath the surface of our mathematical language. The contravariant velocity is our first, and perhaps most intuitive, step into this richer world.

Coordinates and Components: A Necessary Partnership

In introductory physics, we often write a velocity vector in Cartesian coordinates as v=(vx,vy)\mathbf{v} = (v_x, v_y)v=(vx​,vy​). This is a convenient shorthand, but what it truly means is v=vxi^+vyj^\mathbf{v} = v_x \hat{\mathbf{i}} + v_y \hat{\mathbf{j}}v=vx​i^+vy​j^​, where i^\hat{\mathbf{i}}i^ and j^\hat{\mathbf{j}}j^​ are the familiar unit vectors along the x and y axes. The components (vx,vy)(v_x, v_y)(vx​,vy​) are the coefficients in this expansion. They are partners with the basis vectors (i^,j^)(\hat{\mathbf{i}}, \hat{\mathbf{j}})(i^,j^​).

What happens if we move to a more general, "curvilinear" coordinate system, like the lines of latitude and longitude on a globe, or a distorted grid in a piece of heated metal? The coordinate lines may be curved, and they may not be perpendicular. We need a more general way to think about basis vectors and components.

Let's say our position in space, r\mathbf{r}r, is described by some general coordinates (u1,u2,u3)(u^1, u^2, u^3)(u1,u2,u3). These coordinates are themselves functions of time, ttt, as our particle moves. The velocity is, by definition, the rate of change of position: v=drdt\mathbf{v} = \frac{d\mathbf{r}}{dt}v=dtdr​. Using the chain rule from calculus, we can write this out:

v=∂r∂u1du1dt+∂r∂u2du2dt+∂r∂u3du3dt=∑i=13duidt∂r∂ui\mathbf{v} = \frac{\partial \mathbf{r}}{\partial u^1} \frac{du^1}{dt} + \frac{\partial \mathbf{r}}{\partial u^2} \frac{du^2}{dt} + \frac{\partial \mathbf{r}}{\partial u^3} \frac{du^3}{dt} = \sum_{i=1}^{3} \frac{du^i}{dt} \frac{\partial \mathbf{r}}{\partial u^i}v=∂u1∂r​dtdu1​+∂u2∂r​dtdu2​+∂u3∂r​dtdu3​=i=1∑3​dtdui​∂ui∂r​

This beautiful expression, derived from first principles, gives us the two key ingredients we need. First, we define the quantities vi=duidtv^i = \frac{du^i}{dt}vi=dtdui​ as the ​​contravariant components​​ of the velocity. They are simply the rates at which the coordinates themselves are changing with time. Second, we define the vectors ei=∂r∂ui\mathbf{e}_i = \frac{\partial \mathbf{r}}{\partial u^i}ei​=∂ui∂r​ as the ​​covariant basis vectors​​. Each vector ei\mathbf{e}_iei​ is tangent to the coordinate line of uiu^iui. In general, these basis vectors are not of unit length, nor are they necessarily orthogonal to each other.

So, our velocity vector is expressed as a sum: v=∑iviei\mathbf{v} = \sum_i v^i \mathbf{e}_iv=∑i​viei​. The contravariant components viv^ivi tell us "how much" of each basis vector ei\mathbf{e}_iei​ we need to add together to reconstruct the true physical velocity vector v\mathbf{v}v. The term "contravariant" (meaning to vary against) hints at a crucial partnership: if a change in coordinates causes a basis vector ei\mathbf{e}_iei​ to get longer, the corresponding component viv^ivi must get smaller to keep the physical vector v\mathbf{v}v the same.

The Rules of the Game: How Components Transform

Since the components depend on the coordinate system, there must be a clear rule for how they change when we switch from one system to another. This rule isn't arbitrary; it falls directly out of the chain rule.

Suppose we have an "old" coordinate system, xjx^jxj, and a "new" one, x′ix'^ix′i. The contravariant components of velocity in the new system are v′i=dx′idtv'^i = \frac{dx'^i}{dt}v′i=dtdx′i​. Applying the chain rule again:

v′i=dx′idt=∑j∂x′i∂xjdxjdt=∑j∂x′i∂xjvjv'^i = \frac{dx'^i}{dt} = \sum_j \frac{\partial x'^i}{\partial x^j} \frac{dx^j}{dt} = \sum_j \frac{\partial x'^i}{\partial x^j} v^jv′i=dtdx′i​=j∑​∂xj∂x′i​dtdxj​=j∑​∂xj∂x′i​vj

This is the famous ​​transformation law for contravariant vectors​​. The matrix of partial derivatives, Jji=∂x′i∂xjJ^i_j = \frac{\partial x'^i}{\partial x^j}Jji​=∂xj∂x′i​, is known as the ​​Jacobian matrix​​. It's the mathematical machine that converts components from one system to another.

Let's see this in action with some simple thought experiments.

  • ​​Simple Scaling:​​ Imagine a sheet of material that stretches by a factor of α\alphaα in the x-direction and β\betaβ in the y-direction. Our new coordinates are x′=αxx' = \alpha xx′=αx and y′=βyy' = \beta yy′=βy. A particle moves with velocity components (Vx,Vy)(V_x, V_y)(Vx​,Vy​) in the old system. What are its new components? The transformation law gives v′x=∂x′∂xvx=αVxv'^x = \frac{\partial x'}{\partial x} v^x = \alpha V_xv′x=∂x∂x′​vx=αVx​ and v′y=∂y′∂yvy=βVyv'^y = \frac{\partial y'}{\partial y} v^y = \beta V_yv′y=∂y∂y′​vy=βVy​. This makes perfect sense. To cover the same physical distance, the new coordinate, which is already "stretched," has to change by a larger numerical amount.

  • ​​Shearing:​​ Now imagine a "sheared" coordinate system where x′1=x1−αx2x'^1 = x^1 - \alpha x^2x′1=x1−αx2 and x′2=x2x'^2 = x^2x′2=x2. The x′1x'^1x′1 coordinate lines are slanted. If a particle moves with velocity (u1,u2)(u_1, u_2)(u1​,u2​) in the original Cartesian system, its new components become v′1=u1−αu2v'^1 = u_1 - \alpha u_2v′1=u1​−αu2​ and v′2=u2v'^2 = u_2v′2=u2​. Notice how the new first component, v′1v'^1v′1, now depends on both of the old velocity components. This mixing is a hallmark of non-orthogonal coordinate systems.

  • ​​Non-linear Grids:​​ The real power of this formalism shines in non-linear transformations. Consider a uniform fluid flow with velocity (U0,0)(U_0, 0)(U0​,0) in the Cartesian plane. Now let's analyze it in a "stretched grid" system where x′1=sinh⁡(ax)x'^1 = \sinh(ax)x′1=sinh(ax) and x′2=sinh⁡(by)x'^2 = \sinh(by)x′2=sinh(by). Applying the transformation law, we find the new velocity components are v′1=aU01+(x′1)2v'^1 = a U_0 \sqrt{1+(x'^1)^2}v′1=aU0​1+(x′1)2​ and v′2=0v'^2=0v′2=0. This is a remarkable result! A velocity field that was perfectly uniform in one coordinate system now has components that depend on position in the new system. The physical flow is unchanged, but our description of it has become more complex because our grid is warped.

Geometry's Fingerprint: The Metric Tensor

So far, we have discussed contravariant components viv^ivi and their partners, the covariant basis vectors ei\mathbf{e}_iei​. But there is a dual pair: ​​covariant components​​ viv_ivi​ and ​​contravariant basis vectors​​ ei\mathbf{e}^iei. For now, let's focus on the relation between the two types of components.

The key to unlocking this relationship is the ​​metric tensor​​, gijg_{ij}gij​. This object is, in essence, the "dot product machine" for our coordinate system. It is defined by the dot products of our covariant basis vectors:

gij=ei⋅ej=∂r∂ui⋅∂r∂ujg_{ij} = \mathbf{e}_i \cdot \mathbf{e}_j = \frac{\partial \mathbf{r}}{\partial u^i} \cdot \frac{\partial \mathbf{r}}{\partial u^j}gij​=ei​⋅ej​=∂ui∂r​⋅∂uj∂r​

The metric tensor encodes all the geometric information of our space as seen by our coordinates—the lengths of the basis vectors (the diagonal components giig_{ii}gii​) and the angles between them (the off-diagonal components gijg_{ij}gij​ for i≠ji \neq ji=j). For a standard Cartesian system, gijg_{ij}gij​ is just the identity matrix. For any other system, it's more interesting. On the surface of a sphere of radius RRR with coordinates (θ,ϕ)(\theta, \phi)(θ,ϕ), the metric is diagonal but position-dependent: gθθ=R2g_{\theta\theta} = R^2gθθ​=R2 and gϕϕ=R2sin⁡2(θ)g_{\phi\phi} = R^2 \sin^2(\theta)gϕϕ​=R2sin2(θ).

The metric tensor provides the bridge between the contravariant and covariant worlds. We can convert contravariant components to covariant components using a process called "lowering the index":

vi=∑jgijvjv_i = \sum_j g_{ij} v^jvi​=j∑​gij​vj

This operation uses the geometry of the space to produce a different but equally valid set of descriptive numbers for the same velocity vector.

The Invariant Heart: Finding What's Real

Why bother with two kinds of components? Because combining them reveals the physical invariants—quantities that are the same in any coordinate system. The most fundamental invariant for a velocity vector is its magnitude squared (the speed squared).

The speed squared is simply the dot product of the velocity vector with itself, ∣v∣2=v⋅v|\mathbf{v}|^2 = \mathbf{v} \cdot \mathbf{v}∣v∣2=v⋅v. Let's write this out using our new language:

∣v∣2=(∑iviei)⋅(∑jvjej)=∑i,jvivj(ei⋅ej)=∑i,jgijvivj|\mathbf{v}|^2 = \left( \sum_i v^i \mathbf{e}_i \right) \cdot \left( \sum_j v^j \mathbf{e}_j \right) = \sum_{i,j} v^i v^j (\mathbf{e}_i \cdot \mathbf{e}_j) = \sum_{i,j} g_{ij} v^i v^j∣v∣2=(i∑​viei​)⋅(j∑​vjej​)=i,j∑​vivj(ei​⋅ej​)=i,j∑​gij​vivj

This formula is always true. But there's an even more elegant way. The speed squared is also given by the simple contraction of the contravariant and covariant components:

∣v∣2=∑ivivi|\mathbf{v}|^2 = \sum_i v^i v_i∣v∣2=i∑​vivi​

Let's check that this works: ∑ivivi=∑ivi(∑jgijvj)=∑i,jgijvivj\sum_i v^i v_i = \sum_i v^i \left(\sum_j g_{ij} v^j\right) = \sum_{i,j} g_{ij} v^i v^j∑i​vivi​=∑i​vi(∑j​gij​vj)=∑i,j​gij​vivj. It's the same result! While the values of viv^ivi and viv_ivi​ will change wildly as you switch between coordinate systems, the sum of their products, viviv^i v_ivivi​, remains stubbornly constant. This value is the real, physical speed squared.

This isn't just an abstract curiosity. Consider a particle moving in a circle of radius RRR at a constant angular velocity ω\omegaω. In polar coordinates, the trajectory is r(t)=Rr(t)=Rr(t)=R and θ(t)=ωt\theta(t)=\omega tθ(t)=ωt. The contravariant velocity components are trivial to find: vr=drdt=0v^r = \frac{dr}{dt} = 0vr=dtdr​=0 and vθ=dθdt=ωv^\theta = \frac{d\theta}{dt} = \omegavθ=dtdθ​=ω. The metric for polar coordinates is grr=1g_{rr}=1grr​=1 and gθθ=r2g_{\theta\theta}=r^2gθθ​=r2. Let's compute the speed squared: ∣v∣2=grr(vr)2+gθθ(vθ)2=(1)(0)2+(R2)(ω2)=R2ω2|\mathbf{v}|^2 = g_{rr}(v^r)^2 + g_{\theta\theta}(v^\theta)^2 = (1)(0)^2 + (R^2)(\omega^2) = R^2 \omega^2∣v∣2=grr​(vr)2+gθθ​(vθ)2=(1)(0)2+(R2)(ω2)=R2ω2. The speed is ∣v∣=Rω|\mathbf{v}| = R\omega∣v∣=Rω, exactly the result we know from introductory physics! The formalism works, connecting the abstract machinery to concrete, familiar physics. Even with a bizarre, non-diagonal metric, this procedure gives the correct, invariant speed squared.

A Deeper Look: Dimensions and Physical Meaning

A curious student might notice something strange. In our polar coordinate example, vr=dr/dtv^r = dr/dtvr=dr/dt has units of length/time (a velocity), but vθ=dθ/dtv^\theta = d\theta/dtvθ=dθ/dt has units of radians/time (an angular velocity). How can components of the same vector have different physical dimensions?

This is another beautiful aspect of the component-basis vector partnership. The dimensions are shared. The basis vector eθ\mathbf{e}_\thetaeθ​ is not dimensionless; it has units of length. So the term vθeθv^\theta \mathbf{e}_\thetavθeθ​ correctly has dimensions of velocity. The components viv^ivi don't always have to be velocities themselves; they are the coefficients that, when multiplied by their corresponding basis vectors, give a physical velocity.

This leads to a final, profound physical interpretation, widely used in fields like Computational Fluid Dynamics (CFD). In CFD, engineers model fluid flow over complex shapes (like airplane wings) using warped, body-fitted coordinate grids (ξ,η,ζ)(\xi, \eta, \zeta)(ξ,η,ζ). It turns out that the contravariant velocity component, say UξU^\xiUξ, has a direct physical meaning: it measures the volume of fluid flowing across a surface of constant ξ\xiξ per unit time, per unit area in the computational (η,ζ)(\eta, \zeta)(η,ζ) plane (scaled by the Jacobian JJJ). In other words, ​​contravariant velocity components are measures of flux​​. This is why they are the natural language for writing down conservation laws (like the conservation of mass or momentum) in general coordinates. The math isn't just an exercise in notation; it's the most direct and efficient way to express fundamental physical laws in any geometry you can imagine.

Applications and Interdisciplinary Connections

After our journey through the principles and mechanisms of tensor calculus, one might be left with a sense of intellectual satisfaction, but also a nagging question: "What is this all good for?" It is a fair question. The machinery of covariant derivatives, Christoffel symbols, and contravariant components can seem like an elaborate mathematical game. But it is not a game. It is, in fact, the most natural and powerful language we have discovered for describing motion and physical laws in a world that is rarely as simple as a flat, square piece of graph paper.

The true beauty of this language lies in its ability to reveal the deep, underlying unity in seemingly unrelated phenomena. It allows us to see that the force holding a satellite in its orbit and the "fictitious" force you feel in a spinning car are two sides of the same geometric coin. It provides the essential toolkit for simulating the flow of air over a wing, the swirling of galaxies, and the expansion of the universe itself. Let us now explore some of these connections, to see how the abstract idea of contravariant velocity comes to life in the real world.

The Geometry of Motion

Perhaps the most startling and beautiful application of this formalism is in understanding something we all experience: acceleration. We learn in introductory physics that an object moving in a circle at a constant speed is accelerating, because the direction of its velocity vector is changing. The covariant derivative provides a profound way to see this.

Imagine a simple merry-go-round rotating at a constant angular velocity ω\omegaω. If we describe the motion in polar coordinates (r,θ)(r, \theta)(r,θ), the velocity of any point is purely in the angular direction. Its contravariant components are wonderfully simple: vr=0v^r = 0vr=0 and vθ=ωv^\theta = \omegavθ=ω, both constants! A naive look might suggest zero acceleration, as the components are not changing. But this is where the magic happens. The acceleration is the covariant derivative of the velocity with respect to the flow itself, ai=vj∇jvia^i = v^j \nabla_j v^iai=vj∇j​vi. When we compute this, the Christoffel symbols, which encode the curvature of our coordinate system, spring to life. They act on the constant velocity components and conjure, as if from thin air, an acceleration with components ai=(−rω2,0)a^i = (-r\omega^2, 0)ai=(−rω2,0). This is precisely the centripetal acceleration, directed radially inward, that we know must be there. The formalism doesn't just get the right answer; it reveals that what we often call "fictitious forces" are nothing more than the geometry of our chosen description.

This principle extends far beyond a flat plane. Consider a fluid flowing over the surface of a sphere, like winds in our atmosphere. The fluid is constrained to the curved surface. Any motion it has, even if its speed is constant, involves a continuous "falling" toward the sphere's center to prevent it from flying off into space. Our tensor machinery automatically captures this. The radial component of acceleration, ara^rar, can be calculated from the contravariant velocity components on the surface (Vθ,VϕV^\theta, V^\phiVθ,Vϕ). It turns out to be non-zero and negative, representing the very real inward acceleration required to maintain motion on the curve. What was once a complex problem of resolving forces becomes a straightforward calculation once we adopt the natural language of the system.

The Language of the Cosmos and the Climate

The grandest canvases for fluid motion are the oceans, atmospheres, and the universe itself. Here, working in Cartesian coordinates is not just inconvenient; it is unnatural. Curvilinear coordinates are a necessity, and with them, contravariant velocity becomes an indispensable concept.

Let's look at the cosmos. A simple model for our expanding universe is a spherical cloud of gas where every point is rushing away from the center with a speed proportional to its distance, a simplified version of Hubble's Law. In spherical coordinates, this velocity field has the contravariant components Vr=αrV^r = \alpha rVr=αr, Vθ=0V^\theta = 0Vθ=0, and Vϕ=0V^\phi = 0Vϕ=0. Is the gas compressing or thinning out? This is a question about the divergence of the velocity field. In the language of tensors, the divergence is ∇iVi\nabla_i V^i∇i​Vi. When we compute this using the proper formula that includes the metric determinant ggg, we find a remarkable result: the divergence is simply 3α3\alpha3α, a constant value everywhere in space. This tells us that the gas is expanding uniformly at a rate determined solely by the parameter α\alphaα. The machinery effortlessly handles the geometric effects of spherical coordinates to reveal a simple, underlying physical truth.

Closer to home, this same framework is essential for atmospheric and oceanic science. The law of mass conservation, the continuity equation, states that if more fluid flows out of a region than flows in, the density must decrease unless there is a source of mass. On the surface of our spherical planet, this equation is naturally written using the divergence of the surface flow. Given a particular wind pattern, described by the contravariant velocity components vθv^\thetavθ and vϕv^\phivϕ, we can use the covariant divergence on a sphere to calculate the exact source or sink of mass (for example, from evaporation or rainfall) needed at every latitude and longitude to sustain that flow.

Furthermore, the formalism reveals subtle effects that are crucial for weather. Consider a jet stream, a river of air flowing purely eastward (in the ϕ\phiϕ direction). One might think such a flow is not "rotating." But the vorticity, a measure of local spin, tells a different story. By calculating the vorticity tensor from the covariant derivatives of the velocity, we discover that the very curvature of the Earth can induce rotation in the flow. This geometrically induced vorticity is a fundamental ingredient in the dynamics of large-scale weather systems.

Engineering the Future: Computational Fluid Dynamics

Nowhere has the concept of contravariant velocity found a more practical and powerful home than in computational fluid dynamics (CFD). This is the field where engineers use supercomputers to simulate everything from the airflow over a Formula 1 car to the combustion inside a jet engine.

The core challenge in CFD is to solve equations of motion in complex physical geometries. The strategy is ingenious: instead of trying to do math on a complicated shape, create a simple, rectangular computational grid (let's call its coordinates ξ\xiξ and η\etaη) and mathematically map it onto the complex physical shape (x,y)(x, y)(x,y). The equations are then solved on this simple grid. The crucial link between the two worlds is the contravariant velocity. The physical velocity vector u=(u,v)\mathbf{u} = (u,v)u=(u,v) is a physical entity. The contravariant components, often denoted UUU and VVV, are the components of this physical velocity measured along the curving grid lines of the computational domain. They represent how fast the fluid is flowing across the faces of the computational cells. For any given grid transformation, there are straightforward algebraic formulas to convert between the familiar Cartesian velocities (u,v)(u,v)(u,v) and the computationally convenient contravariant velocities (U,V)(U,V)(U,V).

These contravariant velocities are not just a notational trick; they are the physical quantities that govern the simulation. When running a time-dependent simulation, a fundamental limit on the size of the time step Δt\Delta tΔt is the Courant-Friedrichs-Lewy (CFL) condition. It essentially says that information cannot be allowed to travel more than one grid cell per time step. On a curvilinear grid, the "speed" that matters for this condition is precisely the contravariant velocity. UξU^\xiUξ is the true speed of information propagation in the ξ\xiξ direction on the computational grid.

The choice of contravariant velocity as a primary variable can also lead to more elegant and robust algorithms. In simulating incompressible flows like water, a major challenge is enforcing the condition that the flow is divergence-free. A famous method called the MAC scheme staggers the variables on the grid. It has been found that if you define the unknowns to be the contravariant velocity components and place them on the faces of the computational cells, the entire system of equations simplifies dramatically. This choice ensures that mass is perfectly conserved by the discrete algorithm and leads to a simple, efficient, and well-behaved system to solve for the pressure. It is a beautiful example of how letting the natural geometry of the problem guide the design of the algorithm leads to a superior result.

Finally, contravariant velocity provides the most elegant way to handle boundary conditions. Suppose you want to simulate flow over a solid, wavy wall. The physical condition is simple: fluid cannot pass through the wall. If your computational grid is designed so that the wall lies along a coordinate line (say, η=0\eta=0η=0), then this physical condition translates into a beautifully simple mathematical statement: the contravariant velocity normal to the wall must be zero. That is, Uη=0U^\eta = 0Uη=0. This single, clean equation holds regardless of how complex the wall's shape is. From this simple condition, one can then derive exactly what the physical Cartesian velocities (u,v)(u,v)(u,v) must be at the wall to satisfy the no-penetration rule. This is a profound simplification over trying to enforce the condition in a fixed Cartesian system, where one would need to deal with messy projections involving normal vectors at every point along the boundary.

In the end, we see that contravariant velocity is far from a mere abstraction. It is a unifying thread that runs through physics and engineering. It is the key to seeing the geometry inherent in acceleration, the tool for modeling our planet and cosmos, and the workhorse that enables the technological marvel of modern computational simulation. It is a powerful testament to the idea that expressing physical laws in their most natural, coordinate-independent form is not just an aesthetic choice—it is the path to deeper understanding and greater practical power.