Viscous vortex domains method

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

The viscous vortex domains (VVD) method is a mesh-free method of computational fluid dynamics for directly numerically solving 2D Navier-Stokes equations in Lagrange coordinates [1][2] It doesn't implement any turbulence model and free of arbitrary parameters. The main idea of this method is to present vorticity field with discrete regions (domains), which travel with diffusive velocity relatively to fluid and conserve their circulation. The same approach was used in Diffusion Velocity method of Ogami and Akamatsu ,[3] but VVD uses other discrete formulas

Features

The VVD method deals with viscous incompressible fluid. The viscosity and density of fluid is considered to be constant. Method can be extended for simulation of heat conductive fluid flows (viscous vortex-heat domains method)

The main features are:

  • Direct solving Navier-Stokes equations (DNS)
  • Calculation of the friction force at the body surfaces
  • Proper description of the boundary layers (even turbulent)
  • Infinite computation region
  • Convenient simulation of deforming boundaries[4]
  • Investigation of the flow-structure interaction,[5] even in case of zero mass
  • Estimated numerical diffusion and stability criteria [6]

Governing equations

The VVD method is based on a theorem,[1] that circulation in viscous fluid is conserved on contours travelling with speed

Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): \mathbf{u} = \mathbf{V} + \mathbf{V}_d; ~~~\mathbf{V}_d = -\nu \dfrac{\nabla\mathbf{\Omega}}{|\mathbf{\Omega}|}; ~~~\mathbf{\Omega} = [\nabla \times \mathbf{V}]

, where V is fluid velocity, Vd — diffusion velocity, ν — kinematic viscosity. This theorem shows resemblance with Kelvin's circulation theorem, but it works for viscid flows.

Basing on this theorem, flow region with non-zero circulation is presented with number of domains (small regions with finite volumes), which move with velocity u and thus their circulation \gamma remains constant. The actual boundaries of every domain are not tracked, but coordinates of the only tracking point in every domain is saved. Array of domains' coordinates and circulations is known either from boundary conditions or from initial conditions. Such a motion results in vorticity evolution and satisfies Navier-Stokes equations.

Discrete formulas

File:Calculation of diffusion speed in VVD method.png
Diffusive vortex-vortex interaction

Fluid velocity V in point r can be calculated with help of Biot-savart law

Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): \mathbf{V}(\mathbf{r}) = \dfrac{1}{2\pi} \sum_i \gamma_i \cdot \left[\mathbf{e}_z \times \dfrac{\mathbf{r}-\mathbf{r}_i}{(\mathbf{r}-\mathbf{r}_i)^2 + \delta^2}\right]

where i indexes domains in flow, ri — tracking point of domain and γi — his circulation. δ is a so-called "radius of discreteness" — small value that smooths the vortex and helps to get rid of singularity in the domain tracking point.[6] It equals to mean distance between domains.

Calculation of diffusion velocity is more difficult[1][4]

Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): \mathbf{V}_d(\mathbf{r}) = \nu\left( \dfrac{\mathbf{I}_2(\mathbf r)}{I_1(\mathbf r)} + \dfrac{\mathbf{I}_3(\mathbf r)}{2\pi\varepsilon^2 - I_0(\mathbf r)} \right)


First fraction produces vortex-vortex interaction (i — vortex index).

Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): \mathbf{I}_2(\mathbf r) = \sum\limits_i \dfrac{\mathbf{r}-\mathbf{r}_i}{\varepsilon \left|\mathbf{r}-\mathbf{r}_i\right|} \cdot \gamma_i \cdot \exp(-\left|\mathbf{r}-\mathbf{r}_i\right|/\varepsilon)
Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): I_1(\mathbf r) = {\sum\limits_i \gamma_i \cdot \exp(-\left|\mathbf{r}-\mathbf{r}_i\right|/\varepsilon)}


And second fraction represents vortex-boundary repulsion. It helps to calculate ∇Ω near body surface and properly describe boundary layer.

Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): \mathbf{I}_3(\mathbf r) = {\sum\limits_k d\mathbf S_k\cdot \exp(-\left|\mathbf{r}-\mathbf{r}_k\right|/\varepsilon)}
Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): I_0(\mathbf r) = {\varepsilon^2\sum\limits_k \dfrac{\left|\mathbf{r}-\mathbf{r}_k\right| /\varepsilon +1}{(\mathbf{r}-\mathbf{r}_k)^2} \cdot((\mathbf{r}-\mathbf{r}_k) \cdot d\mathbf S_k)\cdot \exp(-\left|\mathbf{r}-\mathbf{r}_k\right|/\varepsilon)}

Here k indexes boundary segments, rk — its center, dSk — its normal.

References

  1. 1.0 1.1 1.2 Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. 4.0 4.1 Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. 6.0 6.1 Lua error in package.lua at line 80: module 'strict' not found.

External links