|
[Sponsors] |
January 18, 2014, 06:56 |
Wall bounded values and streamlines
|
#1 |
Member
Julian Langowski
Join Date: May 2011
Location: Bremen, Germany
Posts: 91
Rep Power: 15 |
Dear Foamers,
does anyone have experience in using wallBoundedStreamLine? What do the entries exactly mean? I commented, what I do understand or think I understand and which questions I have: Code:
wallBoundedStreamLines { functionObjectLibs ("libfieldFunctionObjects.so"); type wallBoundedStreamLine; outputControl outputTime; setFormat vtk; UName UNear; //calculation of near wall velocity field for later streamline calculation trackForward true; interpolationScheme cellPoint; fields (p U k UNear); //necessary fields for streamline calculation lifeTime 100; //life time of generated particles? life time in time steps? cloudName wallBoundedParticleTracks; seedSampleSet patchSeed; //whats the difference between the coeffs types? uniformCoeffs { type uniform; distance 0.00051; nPoints 20; } cloudCoeffs { type cloud; distance 0.00051; } patchSeedCoeffs { type patchSeed; patches (rotor_OBJECT); //patch to calculate streamlines on axis x; //distance; //what does the axis mean? maxPoints 2000; //no. of particles or streamlines? } } Moreover: I run a simulation (MRFSimpleFoam, wind turbine rotor blade 120° wedge) with cyclic patches in parallel. If I activate wallBoundStreamLines (WBSL) OF gives me an error (problem with cyclic and parallel ...). So I reconstruct the latest time step, and run one more step with WBSL, which OF does. It calculates UNear, U, p and so on, but afterwards I get the following message for a lot of cells: Code:
--> FOAM Warning : From function Foam::List<Foam::tetIndices> Foam::polyMeshTetDecomposition::faceTetIndices(const polyMesh&, label, label) in file meshes/polyMesh/polyMeshTetDecomposition/polyMeshTetDecomposition.C at line 570 No base point for face 3348692, 5(1402997 1323072 1353391 1309945 1345687), produces a valid tet decomposition. --> FOAM Warning : Suppressing any further warnings. What I actually would like to get are the close wall values of U and p and the resulting streamlines. Thanks and best regards Julian |
|
January 18, 2014, 08:44 |
|
#2 |
Member
Julian Langowski
Join Date: May 2011
Location: Bremen, Germany
Posts: 91
Rep Power: 15 |
P.S.:
This is the error I get, when I run my simulation with wallBoundedStreamLines in parallel: Code:
[3] --> FOAM FATAL ERROR: [3] Particle tracking across AMI patches is only currently supported for cases where the AMI patches reside on a single processor [3] [3] From function void Foam::Cloud<ParticleType>::initCloud(const bool) [3] in file lnInclude/Cloud.C at line 59. [3] FOAM parallel run aborting [3] [3] #0 Foam::error::printStack(Foam::Ostream&) at ??:? [3] #1 Foam::error::abort()[1] [1] [1] --> FOAM FATAL ERROR: [1] Particle tracking across AMI patches is only currently supported for cases where the AMI patches reside on a single processor [1] [1] From function void Foam::Cloud<ParticleType>::initCloud(const bool) [1] in file lnInclude/Cloud.C at line 59. [1] FOAM parallel run aborting [1] [1] #0 Foam::error::printStack(Foam::Ostream&) at ??:? [1] #1 Foam::error::abort()[0] [0] [0] --> FOAM FATAL ERROR: [0] Particle tracking across AMI patches is only currently supported for cases where the AMI patches reside on a single processor [0] [0] From function void Foam::Cloud<ParticleType>::initCloud(const bool) [0] in file lnInclude/Cloud.C at line 59. [0] FOAM parallel run aborting [0] [0] #0 Foam::error::printStack(Foam::Ostream&) at ??:? [3] #2 Foam::passiveParticleCloud::passiveParticleCloud(Foam::polyMesh const&, Foam::word const&, bool) at ??:? [0] #1 Foam::error::abort() at ??:? [3] #3 Foam::uniformSet::trackToBoundary(Foam::passiveParticle&, Foam::Vector<double>&, int&, Foam::DynamicList<Foam::Vector<double>, 0u, 2u, 1u>&, Foam::DynamicList<int, 0u, 2u, 1u>&, Foam::DynamicList<int, 0u, 2u, 1u>&, Foam::DynamicList<double, 0u, 2u, 1u>&) const at ??:? [1] #2 Foam::passiveParticleCloud::passiveParticleCloud(Foam::polyMesh const&, Foam::word const&, bool) at ??:? [0] #2 Foam::passiveParticleCloud::passiveParticleCloud(Foam::polyMesh const&, Foam::word const&, bool) at ??:? [3] #4 Foam::uniformSet::calcSamples(Foam::DynamicList<Foam::Vector<double>, 0u, 2u, 1u>&, Foam::DynamicList<int, 0u, 2u, 1u>&, Foam::DynamicList<int, 0u, 2u, 1u>&, Foam::DynamicList<int, 0u, 2u, 1u>&, Foam::DynamicList<double, 0u, 2u, 1u>&) const at ??:? [1] #3 Foam::uniformSet::trackToBoundary(Foam::passiveParticle&, Foam::Vector<double>&, int&, Foam::DynamicList<Foam::Vector<double>, 0u, 2u, 1u>&, Foam::DynamicList<int, 0u, 2u, 1u>&, Foam::DynamicList<int, 0u, 2u, 1u>&, Foam::DynamicList<double, 0u, 2u, 1u>&) const at ??:? [0] #3 Foam::uniformSet::trackToBoundary(Foam::passiveParticle&, Foam::Vector<double>&, int&, Foam::DynamicList<Foam::Vector<double>, 0u, 2u, 1u>&, Foam::DynamicList<int, 0u, 2u, 1u>&, Foam::DynamicList<int, 0u, 2u, 1u>&, Foam::DynamicList<double, 0u, 2u, 1u>&) const at ??:? [1] #4 Foam::uniformSet::calcSamples(Foam::DynamicList<Foam::Vector<double>, 0u, 2u, 1u>&, Foam::DynamicList<int, 0u, 2u, 1u>&, Foam::DynamicList<int, 0u, 2u, 1u>&, Foam::DynamicList<int, 0u, 2u, 1u>&, Foam::DynamicList<double, 0u, 2u, 1u>&) const[2] [2] [2] --> FOAM FATAL ERROR: [2] Particle tracking across AMI patches is only currently supported for cases where the AMI patches reside on a single processor [2] [2] From function void Foam::Cloud<ParticleType>::initCloud(const bool) [2] in file lnInclude/Cloud.C at line 59. [2] FOAM parallel run aborting [2] [2] #0 Foam::error::printStack(Foam::Ostream&) at ??:? [3] #5 Foam::uniformSet::genSamples() at ??:? [0] #4 Foam::uniformSet::calcSamples(Foam::DynamicList<Foam::Vector<double>, 0u, 2u, 1u>&, Foam::DynamicList<int, 0u, 2u, 1u>&, Foam::DynamicList<int, 0u, 2u, 1u>&, Foam::DynamicList<int, 0u, 2u, 1u>&, Foam::DynamicList<double, 0u, 2u, 1u>&) const at ??:? [2] #1 Foam::error::abort() at ??:? [1] #5 Foam::uniformSet::genSamples() at ??:? [3] #6 Foam::uniformSet::uniformSet(Foam::word const&, Foam::polyMesh const&, Foam::meshSearch const&, Foam::dictionary const&) at ??:? [0] #5 Foam::uniformSet::genSamples() at ??:? [2] #2 Foam::passiveParticleCloud::passiveParticleCloud(Foam::polyMesh const&, Foam::word const&, bool) at ??:? [0] #6 Foam::uniformSet::uniformSet(Foam::word const&, Foam::polyMesh const&, Foam::meshSearch const&, Foam::dictionary const&) at ??:? [3] #7 Foam::sampledSet::addwordConstructorToTable<Foam::uniformSet>::New(Foam::word const&, Foam::polyMesh const&, Foam::meshSearch const&, Foam::dictionary const&) at ??:? [2] #3 Foam::uniformSet::trackToBoundary(Foam::passiveParticle&, Foam::Vector<double>&, int&, Foam::DynamicList<Foam::Vector<double>, 0u, 2u, 1u>&, Foam::DynamicList<int, 0u, 2u, 1u>&, Foam::DynamicList<int, 0u, 2u, 1u>&, Foam::DynamicList<double, 0u, 2u, 1u>&) const at ??:? [1] #6 Foam::uniformSet::uniformSet(Foam::word const&, Foam::polyMesh const&, Foam::meshSearch const&, Foam::dictionary const&) at ??:? [0] #7 Foam::sampledSet::addwordConstructorToTable<Foam::uniformSet>::New(Foam::word const&, Foam::polyMesh const&, Foam::meshSearch const&, Foam::dictionary const&) at ??:? [3] #8 Foam::sampledSet::New(Foam::word const&, Foam::polyMesh const&, Foam::meshSearch const&, Foam::dictionary const&) at ??:? [2] #4 Foam::uniformSet::calcSamples(Foam::DynamicList<Foam::Vector<double>, 0u, 2u, 1u>&, Foam::DynamicList<int, 0u, 2u, 1u>&, Foam::DynamicList<int, 0u, 2u, 1u>&, Foam::DynamicList<int, 0u, 2u, 1u>&, Foam::DynamicList<double, 0u, 2u, 1u>&) const at ??:? [1] #7 Foam::sampledSet::addwordConstructorToTable<Foam::uniformSet>::New(Foam::word const&, Foam::polyMesh const&, Foam::meshSearch const&, Foam::dictionary const&) at ??:? [0] #8 Foam::sampledSet::New(Foam::word const&, Foam::polyMesh const&, Foam::meshSearch const&, Foam::dictionary const&) at ??:? [3] #9 Foam::wallBoundedStreamLine::read(Foam::dictionary const&) at ??:? [2] #5 Foam::uniformSet::genSamples() at ??:? [1] #8 Foam::sampledSet::New(Foam::word const&, Foam::polyMesh const&, Foam::meshSearch const&, Foam::dictionary const&) at ??:? [0] #9 Foam::wallBoundedStreamLine::read(Foam::dictionary const&) at ??:? [3] #10 Foam::wallBoundedStreamLine::wallBoundedStreamLine(Foam::word const&, Foam::objectRegistry const&, Foam::dictionary const&, bool) at ??:? [0] #10 Foam::wallBoundedStreamLine::wallBoundedStreamLine(Foam::word const&, Foam::objectRegistry const&, Foam::dictionary const&, bool) at ??:? [2] #6 Foam::uniformSet::uniformSet(Foam::word const&, Foam::polyMesh const&, Foam::meshSearch const&, Foam::dictionary const&) at ??:? [1] #9 Foam::wallBoundedStreamLine::read(Foam::dictionary const&) at ??:? [3] #11 Foam::OutputFilterFunctionObject<Foam::wallBoundedStreamLine>::allocateFilter() at ??:? [0] #11 Foam::OutputFilterFunctionObject<Foam::wallBoundedStreamLine>::allocateFilter() at ??:? [2] #7 Foam::sampledSet::addwordConstructorToTable<Foam::uniformSet>::New(Foam::word const&, Foam::polyMesh const&, Foam::meshSearch const&, Foam::dictionary const&) at ??:? [1] #10 Foam::wallBoundedStreamLine::wallBoundedStreamLine(Foam::word const&, Foam::objectRegistry const&, Foam::dictionary const&, bool) at ??:? [3] #12 Foam::OutputFilterFunctionObject<Foam::wallBoundedStreamLine>::start() at ??:? [0] #12 Foam::OutputFilterFunctionObject<Foam::wallBoundedStreamLine>::start() at ??:? [2] #8 Foam::sampledSet::New(Foam::word const&, Foam::polyMesh const&, Foam::meshSearch const&, Foam::dictionary const&) at ??:? [3] #13 Foam::functionObjectList::read() at ??:? [1] #11 Foam::OutputFilterFunctionObject<Foam::wallBoundedStreamLine>::allocateFilter() at ??:? [0] #13 Foam::functionObjectList::read() at ??:? [2] #9 Foam::wallBoundedStreamLine::read(Foam::dictionary const&) at ??:? [3] #14 Foam::Time::run() const at ??:? [1] #12 Foam::OutputFilterFunctionObject<Foam::wallBoundedStreamLine>::start() at ??:? [0] #14 Foam::Time::run() const at ??:? [2] #10 Foam::wallBoundedStreamLine::wallBoundedStreamLine(Foam::word const&, Foam::objectRegistry const&, Foam::dictionary const&, bool) at ??:? [3] #15 Foam::Time::loop() at ??:? [1] #13 Foam::functionObjectList::read() at ??:? [0] #15 Foam::Time::loop() at ??:? [2] #11 Foam::OutputFilterFunctionObject<Foam::wallBoundedStreamLine>::allocateFilter() at ??:? [3] #16 Foam::simpleControl::loop() at ??:? [1] #14 Foam::Time::run() const at ??:? [0] #16 Foam::simpleControl::loop() at ??:? [3] #17 at ??:? [2] #12 Foam::OutputFilterFunctionObject<Foam::wallBoundedStreamLine>::start() at ??:? [1] #15 Foam::Time::loop() at ??:? [0] #17 at ??:? [2] #13 Foam::functionObjectList::read() at ??:? [1] #16 Foam::simpleControl::loop() [3] at ??:? [3] #18 __libc_start_main at ??:? [1] #17 at ??:? [2] #14 Foam::Time::run() const[0] at ??:? [0] #18 __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6" [3] #19 in "/lib/x86_64-linux-gnu/libc.so.6" [0] #19 at ??:? [2] #15 Foam::Time::loop() [1] at ??:? [1] #18 __libc_start_main at ??:? [2] #16 Foam::simpleControl::loop()-------------------------------------------------------------------------- MPI_ABORT was invoked on rank 3 in communicator MPI_COMM_WORLD with errorcode 1. NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes. You may or may not see output from other processes, depending on exactly when Open MPI kills them. |
|
January 24, 2014, 16:06 |
|
#3 |
Member
Julian Langowski
Join Date: May 2011
Location: Bremen, Germany
Posts: 91
Rep Power: 15 |
Hi,
help is still very much appreciated In serial the calculation is running, but during writing the output it seems to crash Code:
Create time Create mesh for time = 1000 Reading field p Reading field U Reading/calculating face flux field phi AMI: Creating addressing and weights between 48621 source faces and 71280 target faces AMI: Patch source weights min/max/average = 0.9997723, 1.000002, 0.9999998 AMI: Patch target weights min/max/average = 0.9997389, 1.000002, 0.9999998 Selecting incompressible transport model Newtonian Selecting RAS turbulence model kOmegaSST kOmegaSSTCoeffs { alphaK1 0.85034; alphaK2 1; alphaOmega1 0.5; alphaOmega2 0.85616; gamma1 0.5532; gamma2 0.4403; beta1 0.075; beta2 0.0828; betaStar 0.09; a1 0.31; b1 1; c1 10; F3 false; } Creating fintite volume options from fvOptions Selecting finite volume options model type MRFSource Source: rotatingVolume - applying source for all time - selecting cells using cellZone rotor_cells_zone - selected 10941018 cell(s) with volume 287.696 SIMPLE: convergence criteria field p tolerance 1e-10 field U tolerance 1e-09 field k tolerance 1e-08 Starting time loop forces forces: forceCoeffs forceCoeffs: nearWallFields nearWallFields: Creating 2 fields created pNear to sample p created UNear to sample U wallBoundedStreamLine : fixed track length specified : 0.0064 Time = 1001 DILUPBiCG: Solving for Ux, Initial residual = 2.821475e-05, Final residual = 2.151082e-09, No Iterations 7 DILUPBiCG: Solving for Uy, Initial residual = 0.000104667, Final residual = 5.230414e-08, No Iterations 5 DILUPBiCG: Solving for Uz, Initial residual = 3.168403e-05, Final residual = 9.593234e-09, No Iterations 6 GAMG: Solving for p, Initial residual = 0.03821306, Final residual = 0.0003685356, No Iterations 26 GAMG: Solving for p, Initial residual = 0.01049193, Final residual = 9.309729e-05, No Iterations 16 GAMG: Solving for p, Initial residual = 0.002297191, Final residual = 2.072066e-05, No Iterations 23 GAMG: Solving for p, Initial residual = 0.001000528, Final residual = 9.442547e-06, No Iterations 19 GAMG: Solving for p, Initial residual = 0.0004666346, Final residual = 4.53107e-06, No Iterations 15 GAMG: Solving for p, Initial residual = 0.0002317556, Final residual = 2.234682e-06, No Iterations 16 GAMG: Solving for p, Initial residual = 0.0001345208, Final residual = 1.170508e-06, No Iterations 12 GAMG: Solving for p, Initial residual = 7.3326e-05, Final residual = 6.203478e-07, No Iterations 13 GAMG: Solving for p, Initial residual = 4.606675e-05, Final residual = 3.245047e-07, No Iterations 11 time step continuity errors : sum local = 1.427492e-09, global = 1.643401e-10, cumulative = 1.643401e-10 DILUPBiCG: Solving for omega, Initial residual = 3.306011e-05, Final residual = 7.599807e-09, No Iterations 1 DILUPBiCG: Solving for k, Initial residual = 1.774335e-05, Final residual = 2.623527e-09, No Iterations 1 ExecutionTime = 438.76 s ClockTime = 439 s forces forces output: forces(pressure,viscous,porous) = ((0.1925579 0.01165662 0.04023865),(0.0004173754 9.395157e-05 -0.001121611),(0 0 0)) moment(pressure,viscous,porous) = ((0.02154812 0.00185286 -0.123217),(-0.000778934 -5.635177e-06 -0.0002338782),(0 0 0)) forceCoeffs forceCoeffs output: Cm = 0.8881965 Cd = 8.252606 Cl = 0.5025144 Cl(f) = 1.139454 Cl(r) = -0.6369393 nearWallFields nearWallFields output: Writing sampled fields to 1001 HERE IT SIMPLY STOPS AND DOES NOT GO ON... Thanks
__________________
πάντα ῥεῖ - Heraclitus |
|
January 28, 2014, 17:55 |
|
#4 |
Member
Julian Langowski
Join Date: May 2011
Location: Bremen, Germany
Posts: 91
Rep Power: 15 |
Dear Foamers, did anybody successfully use the wall bounded streamlines utility (besides the motor bike tutorial)?
Are there any things in particular, I have to take care of? I just don`t understand why it is not working in my case Thanks Julian
__________________
πάντα ῥεῖ - Heraclitus |
|
February 2, 2014, 16:49 |
|
#5 |
Retired Super Moderator
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,981
Blog Entries: 45
Rep Power: 128 |
Greetings Julian,
Let's see... regarding the first post, you can find more information if you follow these steps:
Code:
checkMesh -allGeometry -allTopology -constant As for using function objects after the simulation is finished, have a look here: http://www.cfd-online.com/Forums/ope...s-utility.html Beyond this, I have never user this function object, so I don't have experience with it. Best regards, Bruno
__________________
|
|
February 2, 2014, 17:45 |
|
#6 | |||
Member
Julian Langowski
Join Date: May 2011
Location: Bremen, Germany
Posts: 91
Rep Power: 15 |
Dear Bruno,
thanks for your answer. Quote:
Quote:
This error is already outdated and no problem anymore. Quote:
Thanks anyway for your reply. Seems, as if the wallBoundedStreamlinesFunction is quite unkown to the OF community. Best regards Julian
__________________
πάντα ῥεῖ - Heraclitus |
||||
Tags |
near wall fields, post processing, wall bounded streamlines |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
opening sims as a wall. | Curran919 | CFX | 8 | March 19, 2012 22:31 |
Airfoil simulation using moving wall | Alejandro | Fidelity CFD | 9 | November 4, 2008 03:00 |
RELATIVE STREAMLINES | ozgur | FLUENT | 0 | September 30, 2004 09:15 |
help :streamlines bumping head-on into wall | Subhra Datta | Main CFD Forum | 6 | November 25, 2003 19:26 |
streamlines problem | newbie | FLUENT | 0 | January 17, 2002 13:06 |