|
[Sponsors] |
June 27, 2020, 08:04 |
Please help!!! Flow past circular cylinder - pisoFoam
|
#1 |
New Member
Mudit Mehta
Join Date: Jun 2020
Posts: 19
Rep Power: 6 |
Please help!!!
I am trying to simulate flow past a circular cylinder at Re = 3900. But my drag and lift coefficient is not coming correctly. My all the related files are attached below. Please suggest where i am doing wrong? Please Help. Thanks in advance. I am quite new to OpenFOAM. and stuck on this problem. Code:
FoamFile { version 2.0; format ascii; class volVectorField; object U; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 1 -1 0 0 0 0]; internalField uniform (1 0 0); boundaryField { inlet { type freestreamVelocity; //referenceField uniform (10 0 0); //fluctuationScale (0.02 0.01 0.01); freestreamValue uniform (1 0 0); } outlet { type zeroGradient; } top { type noSlip; } bottom { type noSlip; } cylinder { type noSlip; } front { type symmetryPlane; } Back { type symmetryPlane; } } Code:
FoamFile { version 2.0; format ascii; class volScalarField; object p; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 2 -2 0 0 0 0]; internalField uniform 0; boundaryField { inlet { type zeroGradient; } outlet { type fixedValue; value uniform 0; } top { type zeroGradient; } bottom { type zeroGradient; } cylinder { type zeroGradient; } front { type symmetryPlane; } Back { type symmetryPlane; } } Code:
FoamFile { version 2.0; format ascii; class volScalarField; object k; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 2 -2 0 0 0 0]; internalField uniform 0; boundaryField { inlet { type fixedValue; value uniform 2e-05; } outlet { type inletOutlet; inletValue uniform 0; value uniform 0; } top { type fixedValue; value uniform 0; } bottom { type fixedValue; value uniform 0; } cylinder { type fixedValue; value uniform 0; } front { type symmetryPlane; } Back { type symmetryPlane; } } Code:
FoamFile { version 2.0; format ascii; class volScalarField; object nut; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 2 -1 0 0 0 0]; internalField uniform 0; boundaryField { inlet { type zeroGradient; } outlet { type zeroGradient; } top { type zeroGradient; } bottom { type zeroGradient; } cylinder { type zeroGradient; } Back { type symmetryPlane; } front { type symmetryPlane; } } Code:
FoamFile { version 2.0; format ascii; class volScalarField; object nuTilda; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 2 -1 0 0 0 0]; internalField uniform 0; boundaryField { inlet { type fixedValue; value uniform 0; } outlet { type inletOutlet; inletValue uniform 0; value uniform 0; } top { type fixedValue; value uniform 0; } bottom { type fixedValue; value uniform 0; } cylinder { type fixedValue; value uniform 0; } front { type symmetryPlane; } Back { type symmetryPlane; } } Code:
FoamFile { version 2.0; format ascii; class volScalarField; object s; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 0 0 0 0 0 0]; internalField uniform 0; boundaryField { inlet { type fixedValue; value uniform 1; } outlet { type inletOutlet; inletValue uniform 0; value uniform 0; } top { type zeroGradient; } bottom { type zeroGradient; } front { type symmetryPlane; } Back { type symmetryPlane; } cylinder { type zeroGradient; } } Code:
FoamFile { version 2.0; format ascii; class dictionary; location "constant"; object transportProperties; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // transportModel Newtonian; nu [0 2 -1 0 0 0 0] 0.00025641103; Code:
FoamFile { version 2.0; format ascii; class dictionary; location "constant"; object turbulenceProperties; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // simulationType LES; LES { LESModel dynamicKEqn; turbulence on; printCoeffs on; delta cubeRootVol; dynamicKEqnCoeffs { filter simple; } cubeRootVolCoeffs { deltaCoeff 1; } PrandtlCoeffs { delta cubeRootVol; cubeRootVolCoeffs { deltaCoeff 1; } smoothCoeffs { delta cubeRootVol; cubeRootVolCoeffs { deltaCoeff 1; } maxDeltaRatio 1.1; } Cdelta 0.158; } vanDriestCoeffs { delta cubeRootVol; cubeRootVolCoeffs { deltaCoeff 1; } smoothCoeffs { delta cubeRootVol; cubeRootVolCoeffs { deltaCoeff 1; } maxDeltaRatio 1.1; } Aplus 26; Cdelta 0.158; } smoothCoeffs { delta cubeRootVol; cubeRootVolCoeffs { deltaCoeff 1; } maxDeltaRatio 1.1; } } Code:
FoamFile { version 2.0; format ascii; class dictionary; location "system"; object controlDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // application pisoFoam; startFrom startTime; startTime 0; stopAt endTime; endTime 30; deltaT 0.005; writeControl timeStep; writeInterval 100; purgeWrite 0; writeFormat ascii; writePrecision 6; writeCompression off; timeFormat general; timePrecision 6; runTimeModifiable true; functions { probes { type probes; libs ("libsampling.so"); writeControl timeStep; writeInterval 1; fields ( p ); probeLocations ( (0.0254 0.0253 0) (0.0508 0.0253 0) (0.0762 0.0253 0) (0.1016 0.0253 0) (0.127 0.0253 0) (0.1524 0.0253 0) (0.1778 0.0253 0) ); } fieldAverage1 { type fieldAverage; libs ("libfieldFunctionObjects.so"); writeControl writeTime; fields ( U { mean on; prime2Mean on; base time; } p { mean on; prime2Mean on; base time; } ); } surfaceSampling { // Sample near-wall velocity type surfaces; // Where to load it from (if not already in solver) libs ("libsampling.so"); writeControl writeTime; interpolationScheme cellPoint; surfaceFormat vtk; // Fields to be sampled fields ( U ); surfaces ( nearWall { type patchInternalField; patches ( lowerWall ); distance 1E-6; interpolate true; triangulate false; } ); } #includeFunc scalarTransport } functions { vorticity { type vorticity; libs ("libfieldFunctionObjects.so"); writeControl writeTime; } forces { type forceCoeffs; libs ("libforces.so"); log yes; writeControl timeStep; writeInterval 40; patches ( cylinder ); rho rhoInf; p p; U U; rhoInf 1; CofR (0 0 0); liftDir (0 1 0); dragDir (1 0 0); pitchAxis (0 0 1); magUInf 1; lRef 3.14; Aref 3.14; } error { // Load the library containing the 'coded' functionObject libs ("libutilityFunctionObjects.so"); type coded; // Name of on-the-fly generated functionObject name error; codeEnd #{ // Lookup U Info<< "Looking up field U\n" << endl; const volVectorField& U = mesh().lookupObject<volVectorField>("U"); Info<< "Reading inlet velocity uInfX\n" << endl; scalar ULeft = 0.0; label leftI = mesh().boundaryMesh().findPatchID("left"); const fvPatchVectorField& fvp = U.boundaryField()[leftI]; if (fvp.size()) { ULeft = fvp[0].x(); } reduce(ULeft, maxOp<scalar>()); dimensionedScalar uInfX ( "uInfx", dimensionSet(0, 1, -1, 0, 0), ULeft ); Info << "U at inlet = " << uInfX.value() << " m/s" << endl; scalar magCylinder = 0.0; label cylI = mesh().boundaryMesh().findPatchID("cylinder"); const fvPatchVectorField& cylFvp = mesh().C().boundaryField()[cylI]; if (cylFvp.size()) { magCylinder = mag(cylFvp[0]); } reduce(magCylinder, maxOp<scalar>()); dimensionedScalar radius ( "radius", dimensionSet(0, 1, 0, 0, 0), magCylinder ); Info << "Cylinder radius = " << radius.value() << " m" << endl; volVectorField UA ( IOobject ( "UA", mesh().time().timeName(), U.mesh(), IOobject::NO_READ, IOobject::AUTO_WRITE ), U ); Info<< "\nEvaluating analytical solution" << endl; const volVectorField& centres = UA.mesh().C(); volScalarField magCentres(mag(centres)); volScalarField theta(acos((centres & vector(1,0,0))/magCentres)); volVectorField cs2theta ( cos(2*theta)*vector(1,0,0) + sin(2*theta)*vector(0,1,0) ); UA = uInfX*(dimensionedVector(vector(1,0,0)) - pow((radius/magCentres),2)*cs2theta); // Force writing of UA (since time has not changed) UA.write(); volScalarField error("error", mag(U-UA)/mag(UA)); Info<<"Writing relative error in U to " << error.objectPath() << endl; error.write(); #}; } } // ************************************************************************* // Last edited by tony256; June 28, 2020 at 09:42. |
|
June 27, 2020, 20:29 |
|
#2 |
New Member
Mudit Mehta
Join Date: Jun 2020
Posts: 19
Rep Power: 6 |
I am still stuck on this problem. Please have a look and help.
|
|
March 18, 2021, 08:27 |
|
#3 |
Member
Bushra Rasheed
Join Date: Dec 2020
Posts: 97
Rep Power: 5 |
Were you able to solve this ?
|
|
March 18, 2021, 15:33 |
|
#4 |
Senior Member
Michael Alletto
Join Date: Jun 2018
Location: Bremen
Posts: 616
Rep Power: 16 |
2d LES is always wrong. With LES one tries to resolve the relevant turbulent motion. Turbulent Eddies are always 3d.
Is the drag and lift too high or too small |
|
Tags |
openfoam, pisofoam, turbulence |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Clinch when simulating flow past circular cylinder | HectorRedal | Main CFD Forum | 3 | April 10, 2016 17:40 |
Drag force coefficient too high for a flow past a cylinder using komega sst | Scabbard | OpenFOAM Running, Solving & CFD | 37 | March 21, 2016 17:16 |
Flow past a circular cylinder | faycal2013 | FLUENT | 0 | July 19, 2014 08:29 |
Tubulent flow past circular cylinder at Re=3900 | Jinglei | Main CFD Forum | 1 | September 11, 2007 07:05 |
Simulation of the Flow past a circular cylinder using STAR-CD | M. S. GUEROUACHE | Main CFD Forum | 0 | October 1, 1998 11:51 |