i am trying to validate openfoam solver rhocentralfoam by running the case of supersonic flow over a flat plate.My freestream flow conditons are MachNumber =2, Pinf =0.01181, Tinf=226.5.

Ufile

/*--------------------------------*- C++ -*----------------------------------*\

| ========= | |

| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |

| \\ / O peration | Version: 2.2.0 |

| \\ / A nd | Web: www.OpenFOAM.org |

| \\/ M anipulation | |

\*---------------------------------------------------------------------------*/

FoamFile

{

version 2.0;

format ascii;

class volVectorField;

object U;

}

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions [0 1 -1 0 0 0 0];

internalField uniform (0 0 0);

boundaryField

{

inlet

{

type fixedValue;

value uniform (603.35 0 0);

}

outlet

{

type zeroGradient;

}

walls

{

type fixedValue;

value uniform (0 0 0);

}

farfield

{

type symmetryPlane;

}

frontAndBack

{

type empty;

}

}

// ************************************************** *********************** //

Pfile

/*--------------------------------*- C++ -*----------------------------------*\

| ========= | |

| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |

| \\ / O peration | Version: 2.2.0 |

| \\ / A nd | Web: www.OpenFOAM.org |

| \\/ M anipulation | |

\*---------------------------------------------------------------------------*/

FoamFile

{

version 2.0;

format ascii;

class volScalarField;

object p;

}

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions [1 -1 -2 0 0 0 0];

internalField uniform 0;

boundaryField

{

outlet

{

type zeroGradient;

}

inlet

{

type fixedValue;

value uniform 1196.64;

}

walls

{

type zeroGradient;

}

farfield

{

type symmetryPlane;

}

frontAndBack

{

type empty;

}

}

// ************************************************** *********************** //

T file

/*--------------------------------*- C++ -*----------------------------------*\

| ========= | |

| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |

| \\ / O peration | Version: 2.2.0 |

| \\ / A nd | Web: www.OpenFOAM.org |

| \\/ M anipulation | |

\*---------------------------------------------------------------------------*/

FoamFile

{

version 2.0;

format ascii;

class volScalarField;

object T;

}

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions [0 0 0 1 0 0 0];

internalField uniform 226.5;

boundaryField

{

inlet

{

type fixedValue;

value uniform 226.5;

}

outlet

{

type zeroGradient;

}

walls

{

type fixedValue;

value uniform 226.5;

}

farfield

{

type symmetryPlane;

}

frontAndBack

{

type empty;

}

}

// ************************************************** *********************** //

blockMeshDict

/*--------------------------------*- C++ -*----------------------------------*\

| ========= | |

| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |

| \\ / O peration | Version: 2.2.0 |

| \\ / A nd | Web: www.OpenFOAM.org |

| \\/ M anipulation | |

\*---------------------------------------------------------------------------*/

FoamFile

{

version 2.0;

format ascii;

class dictionary;

object blockMeshDict;

}

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

convertToMeters 0.1;

vertices

(

(0 0 0)

(5 0 0)

(5 0.5 0)

(0 0.5 0)

(0 0 2)

(5 0 2)

(5 0.5 2)

(0 0.5 2)

);

blocks

(

hex (0 1 2 3 4 5 6 7) (100 100 1) simpleGrading (1 1 1)

);

edges

(

);

boundary

(

inlet

{

type patch;

faces

(

(0 4 7 3)

);

}

outlet

{

type patch;

faces

(

(1 2 6 5)

);

}

walls

{

type wall;

faces

(

(0 1 5 4)

);

}

farfield

{

type symmetryPlane;

faces

(

(3 7 6 2)

);

}

frontAndBack

{

type empty;

faces

(

(5 6 7 4)

(0 3 2 1)

);

}

);

mergePatchPairs

(

);

// ************************************************** *********************** // ]]>

PolyDualMesh. 1,9M cells.

The comparation with CFX and Russian CFD package LOGOS from

Vladimirova, N.A., CFD ANALYSIS AND CALCULATION OF AERODYNAMIC CHARACTERISTICS OF HELICOPTER ROTOR, ERF 2013.

]]>

My participation will be sporadic, as I have a young son who takes much of my 'free time', but as I'm doing this mainly for pleasure, there's no rush. I may be impatient at times, as I want to get stuck in, but I'm happy making baby-steps - so long as they are moving forwards :).

I look forward to learning from fellow hobbyists, and seasoned pros alike. If I question something you've stated, I'm not making personal attacks, I'm merely trying to understand what it is you've told me.

Thanks ]]>

Hence, the density is constant the first term (underlined) at the RHS is zero due to the mass conservation equation:

After a huge amount of mathematics we get :D

So there is no deviatoric part till now. But in FOAM we calculate the viscouse part of the stress tensor using divDevReff. Now we add the hydrostatic part multiply by the viscosity and substract it again:

it follows:

The last term is zero due to mass conservation and can be removed:

We end up with:

If we substitute the transponed gradient U matrix with A:

Again we have the laplacian term and again the deviatoric part (here calcated with oneThird, so the correct definition of

And this is exactly what we get here:

Code:

tmp<fvVectorMatrix> laminar::divDevReff(volVectorField& U) const { return ( - fvm::laplacian(nuEff(), U) - fvc::div(nuEff()*dev(T(fvc::grad(U)))) ); }

I hope everything is clear now and that there are no mistakes.

Additionally I hope it makes stuff clearer and help anybody to get a better understanding how things work.

Kind regards ]]>

as I read befor, there are still some people available, who are confused about all that stuff. Therefore, I want to make the derivations and want to show you that the implementation is correct for both cases. We consider compressible and incompressible fluids. Further more I only take into account laminar flow and explain the way to get to

Due to the fact that everyone are more or less familiar with the equations, I do not mention the variables meaning. For the further proceeding I do not consider body forces. If we have newtonian fluid the stress tensor can be expressed as:

Some modifications and we end up with:

Combining both, and neglect all other body forces, we end up with:

Lets focus only only to the RHS (step by step):

Now it can be shown that the first term is the gradient of the pressure:

The analytic proof:

The second term at the RHS is often symboled with and stand for the viscose part of the stress tensor (normally without the divergence symbol):

This

using this formula and sorting the equation, we get the following:

Thats it. If we call turbulence->divDevRhoReff() we will exactly get this equation. Using a substituion for the gradient of the transponed velocity field, the name of the function

The deviatoric part of a matrix is defined as:

Now we see, that the second term include the deviatoric part of the matrix (gradU). In compressible we call the

Code:

219 tmp<fvVectorMatrix> laminar::divDevRhoReff(volVectorField& U) const 220 { 221 return 222 ( 223 - fvm::laplacian(muEff(), U) 224 - fvc::div(muEff()*dev2(T(fvc::grad(U)))) 225 ); 226 }

is equal to (muEff = mu for laminar):

Code:

fvm::laplacian(muEff, U)

is equal to

At least dev2 calculates exactly the deviatoric part. The code is here: http://foam.sourceforge.net/docs/cpp/a08631_source.html

Code:

303 //- Return the deviatoric part of a symmetric tensor 304 template<class Cmpt> 305 inline SymmTensor<Cmpt> dev2(const SymmTensor<Cmpt>& st) 306 { 307 return st - SphericalTensor<Cmpt>::twoThirdsI*tr(st); 308 }

Check :) or no check :confused:, I think, its obvous.

The incompressible stuff is in the second post. ]]>

Espesially at low velocities.

The data about propeller were obtained in thesis Isa Diana de Sousa Baptista Morais Carvalho "Low Reynolds Propellers for Increased Quadcopters Endurance",

the experimental data scrached from http://m-selig.ae.illinois.edu/props/propDB.html

Sure, it can be more precise but i've only used classical work of Yuryev.

(Boris Yuryev (1889-1957), a Russian/Soviet scientist in the field of aerodynamics and academician. Inventor of swashplate for helicopter, which allow to control of helicopter flight)

Anyway it can be upgraded for the time.

]]>

Following is the step by step procedure for generating surface streamlines!

1. Load Your Data in paraview

2. Add Slice filter to your Loaded Data

3. Add SurfaceVector filter to Slice

4. Add MaskPoint filter to SurfaceVector

5. Add StreamTracerWithCostumSource filter to SurfaceVector,a Dialogue Box will appear, select MaskPoint as Seed Source and Click Ok.

Wait for sometime, and Streamlines would be added to your Slice.

Note:

You Can Get Appropriate Streamlines by Playing With MaskPoints Setting "On Ratio", and "Maximum Number of Points" ]]>

In practice, this is an extension of the Reichardt wall law to pressure gradient effects.

It is semi-analytical because it takes as assumption that the base Reichardt law is an exact solution of the 1D problem (which is not true).

While this might certainly be material for a paper (every work i am aware of uses numerical integration to solve the 1D problem; this, in particular, requires solving a tridiagonal system for every near wall cell), i honestly don't have time for this (life is too short to be spent in review).

Hence, here it is the work: a description in the pdf file and a matlab/octave comparison script in the txt file. If you ever worked on wall function you should fastly get to the point.

Otherwise, i'm open to discussion.

http://www.openfoam.org/download/git.php

to install the Repository Release Version 2.3.x on a centOS 6.6 machine.

But even after installing all the dependency packages written in the above link, I was getting the following error

Code:

/usr/bin/ld: cannot find -lz collect2: error: ld returned 1 exit status make[2]: *** [dummysizes] Error 1

The problem with -lz will be solved by installing static version of zlib named zlib-static.

Code:

yum install zlib-static

Code:

yum install glibc-static

Code:

./Allwmake > make-attempt2.log 2>&1

Grey - advanced tip (left on Q-comparation image)

]]>

polyhedral mesh

]]>

Posts where I've tried to do the math:

- http://www.cfd-online.com/Forums/har...tml#post527354 post #3
- http://www.cfd-online.com/Forums/har...tml#post523854 post #18
- http://www.cfd-online.com/Forums/har...tml#post520919 post #5
- http://www.cfd-online.com/Forums/har...tml#post523825 post #10

]]>

bc.f95 - auxiliary program which takes x y airfoil coordinate file and produces contour (bc) files for furteruse by meher dist_mesh_new.f95

bl.f95 - auxiliary program which takes x y airfoil file and produces sub mesh (boundary layer) file for further use by mesher dist_mesh_new.f95

dist_mesh_new.f95 - mesher

IMPORTANT !!!!!! : Read "ReadMe.txt" before using the code

Make appropriate changes Pathes/filenames of input files between the lines

! ----- START of USER INPUT ----

and

! ----- END of USER INPUT

of the dist_mesh_new.f95

and other programs (bl.f95) and (bc.f95) as well.

Note that dist_mesh_new.f95 uses .dat files while here, in the blog yoy have the same files with .txt extension. Do appropriate changes in file names and Pathes.

Headers of all programs contain code description

2) run Example 2 of dist_mesh_new.f95 (look the code) using input files:

mum_m=1

m_file(1)="e184_bl.txt"

num_c=2

c_file(1)="wt_bc.txt"

c_file(2)="wake_bc.txt"