next up previous contents
Next: Representation of solid boundaries Up: The Gerris FAQ Previous: Installation and coding   Contents

Physics and dimensioning

Where are variables like viscosity, density etc...defined?

By default, the density is unity and the molecular viscosity is zero (i.e. there is no explicit viscous term in the momentum equation). In practice, it does not mean that there is no viscosity at all however, because any discretisation scheme always has some numerical viscosity. Of course, the lower the numerical viscosity, the better. Gerris has quite good properties in this respect.

How come Gerris generates a Von Karman vortex street for an inviscid flow around a half-cylinder? I would expect the inviscid flow to remain irrotational.

This is perfectly right in the case of flow around smooth solid boundaries. If there is a sharp corner (as for the half-cylinder), the potential flow solution is singular in the sense that the velocity tends to infinity as one gets closer to the corner. In practice (finite difference numerical solution) and in reality, the local numerical (or real) viscosity near the corner, smears out the singularity, which results in the creation of a (point) source of vorticity which is then carried away by the mean flow (as you can see on the half-cylinder example).

Even in the case of a smooth geometry, numerical inaccuracies in the boundary conditions on the solid surface can lead to the generation of a small amount of vorticity (much smaller than what is generated at a discontinuity though).

How would I create a 5 x 5 mathend000# box?

It is possible to change the size of the unit GfsBox, however, I would encourage you to think in ``relative units'' rather than ``absolute units''. When studying fluid mechanics (and other physical) problems it is almost always a good idea to use non-dimensional units. This makes relevant independent parameters (such as the Reynolds number for example) immediately apparent. When using Gerris I would recommend scaling all your physical input parameters by a reference length (the physical length of the GfsBox). This also eliminates the need for changing the length of the GfsBox.

How would I modify the file you sent me (tangaroa.gfs) for a ship that is 150 meters long and exposed to a cross-flow wind velocity of 50 meters/sec?

You would have to non-dimensionalise both the model ship geometry and wind speed.

The reference length of the GfsBox would be 3*150  meters mathend000#, so you would scale the model geometry by a factor of 1/(reference  length) mathend000# or 1/450 mathend000#.

You might want to use the transform program to do that, something like this:

% transform --scale 2.22222e-3 < model.gts > model_scaled.gts

You also have to keep in mind that the bottom boundary of a 3D box is at z = - 0.5 mathend000#. You want to have that coinciding with the sea level (i.e. translate your model vertically by the correct amount).

How would I redimensionalise U,V,W and P?

U  meters/sec = U*Uref = U*50  meters/sec

mathend000#

V  meters/sec = V*Uref = V*50  meters/sec

mathend000#

W  meters/sec = W*Uref = W*50  meters/sec

mathend000#

P  Pascals = P*DENSITY*Uref2

mathend000#

However, keep in mind that the only relevant parameter for the (constant density) Navier-Stokes equations is the Reynolds number. If you do not include any explicit viscous term the (theoretical) Reynolds number is always infinite. In practice this means that the inflow velocity has only a uniform scaling influence on the final solution. For example

simulation 1:
inflow velocity set to 1.0
simulation 2:
inflow velocity set to 2.0
then, the velocity field of simulation 1 at time t is exactly equal (to machine precision) to the velocity field for simulation 2 at time t/2.0 mathend000#, divided by 2.0.

It looks like t and dt output by GfsOutputTime are also scaled? How would I scale t and dt to time in seconds?

Let's say your reference scale is L = 450  meters mathend000#, your reference speed U = 50  meters/sec mathend000#, your reference time is then T = L/U = 9  sec mathend000#

You thus need to multiply both t and dt by T = 9  sec mathend000#.

How do I scale Vorticity?

The units of vorticity are

LT-1/L $\displaystyle \rightarrow$ T-1

mathend000#

and

T' = T*Lref /Vref

mathend000#

therefore

VORTICITY' = VORTICITY*Vref /Lref

mathend000#

The code provides support for the variable density incompressible Euler equations. Does that mean you can input the density of the fluid density (air, water, etc...)?

Not really if what you mean is a constant density throughout the domain. In the case of the incompressible constant-density Navier-Stokes equations, the density is irrelevant. It is only a scaling factor for the pressure.

What this really means is that Gerris can deal with flows where the density varies across the domain (e.g. a mixture of two miscible fluids, or density variations due to salinity variations in the sea for example).

Although the initialised problem is symmetric, the solution becomes asymmetric as time passes, why?

The code is indeed not perfectly numerically symmetrical. This is due mainly to the tolerance in the solution for the pressure equation, if you decrease the tolerance you should see smaller asymmetries. You can do this using

  ApproxProjectionParams {
    tolerance = 1e-6
  }
  ProjectionParams {
    tolerance = 1e-6
  }

How do I deal with negative values of the pressure?

Your question is interesting, it comes down to the meaning of ``pressure'' for incompressible flows.

For compressible flows ``pressure'' has a thermodynamic definition and is directly linked to other physical quantities through an equation of state. It is defined on an absolute scale.

For incompressible flows ``pressure'' does not have a thermodynamic definition (there is no equation of state linking it to other physical quantities), rather it comes about as the stress field necessary to enforce the incompressibility condition. In this context, only its gradients are relevant, not its absolute value i.e. one can add any constant to the pressure field without changing the solution.

Conclusion: If you don't like negative pressures just add any constant necessary to make them positive.



Subsections
next up previous contents
Next: Representation of solid boundaries Up: The Gerris FAQ Previous: Installation and coding   Contents