# Wall bounded values and streamlines

 Register Blogs Members List Search Today's Posts Mark Forums Read

 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: 8 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? } }``` Thanks for any tips. 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::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.``` I am not sure if simpleFoam is still running (top says so). Did anyone have this error, too? With or without WBSL? 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: 8 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::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::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::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&, int&, Foam::DynamicList, 0u, 2u, 1u>&, Foam::DynamicList&, Foam::DynamicList&, Foam::DynamicList&) 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, 0u, 2u, 1u>&, Foam::DynamicList&, Foam::DynamicList&, Foam::DynamicList&, Foam::DynamicList&) const at ??:? [1] #3 Foam::uniformSet::trackToBoundary(Foam::passiveParticle&, Foam::Vector&, int&, Foam::DynamicList, 0u, 2u, 1u>&, Foam::DynamicList&, Foam::DynamicList&, Foam::DynamicList&) const at ??:? [0] #3 Foam::uniformSet::trackToBoundary(Foam::passiveParticle&, Foam::Vector&, int&, Foam::DynamicList, 0u, 2u, 1u>&, Foam::DynamicList&, Foam::DynamicList&, Foam::DynamicList&) const at ??:? [1] #4 Foam::uniformSet::calcSamples(Foam::DynamicList, 0u, 2u, 1u>&, Foam::DynamicList&, Foam::DynamicList&, Foam::DynamicList&, Foam::DynamicList&) 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::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, 0u, 2u, 1u>&, Foam::DynamicList&, Foam::DynamicList&, Foam::DynamicList&, Foam::DynamicList&) 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::New(Foam::word const&, Foam::polyMesh const&, Foam::meshSearch const&, Foam::dictionary const&) at ??:? [2] #3 Foam::uniformSet::trackToBoundary(Foam::passiveParticle&, Foam::Vector&, int&, Foam::DynamicList, 0u, 2u, 1u>&, Foam::DynamicList&, Foam::DynamicList&, Foam::DynamicList&) 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::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, 0u, 2u, 1u>&, Foam::DynamicList&, Foam::DynamicList&, Foam::DynamicList&, Foam::DynamicList&) const at ??:? [1] #7 Foam::sampledSet::addwordConstructorToTable::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::allocateFilter() at ??:? [0] #11 Foam::OutputFilterFunctionObject::allocateFilter() at ??:? [2] #7 Foam::sampledSet::addwordConstructorToTable::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::start() at ??:? [0] #12 Foam::OutputFilterFunctionObject::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::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::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::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::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.``` Any hints? I donīt understand the error, as the cyclicAMI patches are on the same processor (I used preservePatches). By the way, I use OF 2.2.2.

 January 24, 2014, 16:06 #3 Member   Julian Langowski Join Date: May 2011 Location: Bremen, Germany Posts: 91 Rep Power: 8 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...``` Any idea what to do? Is it just this slow, because I am calculating on 1 core? Thanks __________________ πάντα ῥεῖ - Heraclitus

 January 28, 2014, 17:55 #4 Member   Julian Langowski Join Date: May 2011 Location: Bremen, Germany Posts: 91 Rep Power: 8 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 Super Moderator   Bruno Santos Join Date: Mar 2009 Location: Lisbon, Portugal Posts: 10,125 Blog Entries: 39 Rep Power: 110 Greetings Julian, Let's see... regarding the first post, you can find more information if you follow these steps: Go to the modules page on the Code Documentation web-page: http://foam.sourceforge.net/docs/cpp/modules.html Look for the link "Function Objects" and then below it is "Field functions objects". Click on it. On that page find "wallBoundedStreamLine". Click on the link. Scroll down to the section "Detailed Description" and there you'll find most of the information you were asking about. As for the problem with MRFSimpleFoam, it would seem like the mesh has some critical flaw, which leads to the function object to be unable to process properly. Run checkMesh with all of the checks: Code: `checkMesh -allGeometry -allTopology -constant` As for the problem with the AMI patches... there is an option named "preservePatches" in "decomposeParDict" which should enforce one or more patches to remain in a single processor. Have a look here: Cyclic patches and parallel postprocessing problems post #8 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 __________________ OpenFOAM: FAQ | Getting started Forum: How to get help, to post code/output and forum guide What am I doing/planning: blog/wiki Read this before sending me PM

February 2, 2014, 17:45
#6
Member

Julian Langowski
Join Date: May 2011
Location: Bremen, Germany
Posts: 91
Rep Power: 8
Dear Bruno,

Quote:
 Originally Posted by wyldckat Go to the modules page on the Code Documentation web-page: http://foam.sourceforge.net/docs/cpp/modules.htmlLook for the link "Function Objects" and then below it is "Field functions objects". Click on it. On that page find "wallBoundedStreamLine". Click on the link. Scroll down to the section "Detailed Description" and there you'll find most of the information you were asking about.

Quote:
 Originally Posted by wyldckat As for the problem with MRFSimpleFoam, it would seem like the mesh has some critical flaw, which leads to the function object to be unable to process properly. Run checkMesh with all of the checks: Code: `checkMesh -allGeometry -allTopology -constant` As for the problem with the AMI patches... there is an option named

This error is already outdated and no problem anymore.

Quote:
 Originally Posted by wyldckat preservePatches" in "decomposeParDict" which should enforce one or more patches to remain in a single processor
I already did that and still get the error...

Thanks anyway for your reply. Seems, as if the wallBoundedStreamlinesFunction is quite unkown to the OF community.

Best regards
Julian
__________________
πάντα ῥεῖ - Heraclitus

 Thread Tools Display Modes Linear Mode

 Posting Rules You may not post new threads You may not post replies You may not post attachments You may not edit your posts BB code is On Smilies are On [IMG] code is On HTML code is OffTrackbacks are On Pingbacks are On Refbacks are On Forum Rules

 Similar Threads Thread Thread Starter Forum Replies Last Post Curran919 CFX 8 March 19, 2012 22:31 Alejandro NUMECA 9 November 4, 2008 03:00 ozgur FLUENT 0 September 30, 2004 08:15 Subhra Datta Main CFD Forum 6 November 25, 2003 19:26 newbie FLUENT 0 January 17, 2002 13:06

All times are GMT -4. The time now is 07:16.