|
[Sponsors] |
March 18, 2013, 07:47 |
BubbleInterTrackFoam with surfactant
|
#1 |
New Member
Amanda Mattos Charin
Join Date: Mar 2013
Posts: 6
Rep Power: 13 |
Hi everyone,
I was hoping to get some help here about this solver. I've tried to run the original tutorial "bubble2D_r0.75mm" and it worked fine, but I noticed that the option "cleanInterface" was set as "Yes" in "freeSurfaceProperties". I've looked into the code and for what I understood with this option enabled, BubbleInterTrackFoam doesn't solve the surfactant's conservation equation (as expected). So, I've tried to change this option to "No" with the add of "soluble yes" at the end of "freeSurfaceProperties". I've also added an initial field for the concentration of surfactant as a "volScalarField". The result was the following error: "--> FOAM FATAL IO ERROR: cannot open file file: /home/amanda/OpenFOAM/amanda-1.6-ext/run/tutorials/surfaceTracking/bubbleInterTrackFoam/bubble2D_r0.75mm-teste/1e-05/Cs at line 0. From function regIOobject::readStream() in file db/regIOobject/regIOobjectRead.C at line 62. FOAM exiting" I've tried to locate where the solver tries to read Cs and found its declaration in the middle of "freeSurface" in the file "makeFreeSurfaceData.C": "surfactConcPtr_ = new areaScalarField ( IOobject ( "Cs", DB().timeName(), mesh(), IOobject::MUST_READ, IOobject::AUTO_WRITE ), aMesh() );" But at this point the solver had already entered the time loop and was trying to read from a file that has not been created yet. It might be a silly mistake because I'm a new user of OpenFoam, but could someone give me a hand? Thanks in advance. Amanda Mattos |
|
March 18, 2013, 14:16 |
|
#2 |
Senior Member
Anton Kidess
Join Date: May 2009
Location: Germany
Posts: 1,377
Rep Power: 30 |
Create the file yourself to specify the initial surfactant distribution.
__________________
*On twitter @akidTwit *Spend as much time formulating your questions as you expect people to spend on their answer. |
|
March 18, 2013, 18:24 |
|
#3 | |
New Member
Amanda Mattos Charin
Join Date: Mar 2013
Posts: 6
Rep Power: 13 |
Quote:
The problem is that the solver tries to read this concentration after it started the time loop so the concentration for time 0 exists but for the next time 1e-5 it doesnt. Any more ideas? |
||
March 19, 2013, 02:44 |
|
#4 |
Senior Member
Anton Kidess
Join Date: May 2009
Location: Germany
Posts: 1,377
Rep Power: 30 |
Ah, yes. You said you created a volScalarField though, whereas what you need is an areaScalarField?
__________________
*On twitter @akidTwit *Spend as much time formulating your questions as you expect people to spend on their answer. |
|
March 19, 2013, 06:14 |
|
#5 |
New Member
Amanda Mattos Charin
Join Date: Mar 2013
Posts: 6
Rep Power: 13 |
||
September 22, 2014, 13:21 |
|
#6 |
New Member
Chiara
Join Date: Oct 2012
Posts: 11
Rep Power: 14 |
Hi Amanda,
I have the same problem with bubbleInterTrackFoam and the field Cs. Did you solve the problem then? If yes, can you tell me how? Thank you! Chiara |
|
September 24, 2014, 09:08 |
|
#7 | |
New Member
Amanda Mattos Charin
Join Date: Mar 2013
Posts: 6
Rep Power: 13 |
Quote:
Try calling this function "interface.surfactantConcentration();" before line 22 in file "createSurfactantConcentrationField.H" as shown in the code below and then recompile the solver. I hope it helps! Code:
// Volume surfactant concentration volScalarField* CPtr = NULL; if(!interface.cleanInterface() && interface.surfactant().soluble()) { Info << "\nReading field C\n" << endl; CPtr = new volScalarField ( IOobject ( "C", runTime.timeName(), mesh, IOobject::MUST_READ, IOobject::AUTO_WRITE ), mesh ); interface.surfactantConcentration(); if(runTime.timeIndex() == 0) { const dimensionedScalar& CA = interface.surfactant().surfactBulkConc(); dimensionedScalar CB("CB", CA.dimensions(), 0); (*CPtr) = fluidIndicator*(CA - CB) + CB; if ( CPtr->boundaryField()[spacePatchID].type() == inletOutletFvPatchScalarField::typeName ) { inletOutletFvPatchScalarField& spaceC = refCast<inletOutletFvPatchScalarField> ( CPtr->boundaryField()[spacePatchID] ); spaceC.refValue() = CA.value(); } else { FatalErrorIn(args.executable()) << "Boundary condition for bulk surfactant concentration at " << "space patch isn't and should be: " << inletOutletFvPatchScalarField::typeName << abort(FatalError); } CPtr->correctBoundaryConditions(); CPtr->write(); } } |
||
October 14, 2014, 10:00 |
|
#8 |
New Member
Chiara
Join Date: Oct 2012
Posts: 11
Rep Power: 14 |
Hi Amanda,
sorry for the delay of my feedback. Your correction worked fine, thank you! Best, Chiara |
|
June 15, 2016, 07:13 |
recompile
|
#9 |
New Member
Jan Zawala
Join Date: Jun 2016
Posts: 1
Rep Power: 0 |
Hi,
Could you please advise how to recompile the code? Thanks |
|
May 18, 2019, 06:09 |
|
#10 |
New Member
Ali
Join Date: Jul 2017
Posts: 1
Rep Power: 0 |
Hi Amanda
thank you for your advice Thanks |
|
Tags |
bubbleintertrackfoam, surfactant |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
bubbleInterTrackFoam and Mass transport | kel85uk | OpenFOAM | 3 | May 11, 2016 08:48 |
bubbleInterTrackFoam in parallel (fluidIndicator) | pbohorquez | OpenFOAM Running, Solving & CFD | 6 | January 18, 2015 22:54 |
interTrackFoam and bubbleInterTRackFoam problems | hfsf | OpenFOAM | 0 | December 26, 2012 03:12 |
bubbleInterTrackFoam tutorial | kel85uk | OpenFOAM | 16 | December 21, 2012 10:47 |
How much surfactant affect surface tension | qunwuhe@hotmail.com | Main CFD Forum | 0 | June 7, 2007 06:01 |