|
[Sponsors] |
October 17, 2017, 07:03 |
droplet&wall interaction, evaporation
|
#1 |
New Member
Join Date: Jul 2016
Posts: 14
Rep Power: 10 |
hi foamers,
I am currently using sprayfoam to model water injection. In terms of interaction between droplets and wall. there are currently three regimes, i.e. rebound, stick, and escape. What I need is 100% evaporation when droplets hit the wall. Anyone could give any idea, suggestions on how to modified the lagrangian/intermediate library to achieve that? Would be really appreciated. Best Wishes, Li |
|
October 26, 2017, 06:27 |
|
#2 |
New Member
Join Date: Jul 2016
Posts: 14
Rep Power: 10 |
I have been working on modifying the Reactingparcel (lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C), since it is the class dealing with phase change. I have tried to add a "if" condition i.e. if td.keepParticle = false, then droplets will 100% evaporate. The new library was compiled successful. However, the simulation result shows that droplets disappeared, but no phase change occurred.
Does anyone have any idea about this? Thank you. |
|
October 31, 2017, 06:19 |
|
#3 |
New Member
Join Date: Jul 2016
Posts: 14
Rep Power: 10 |
hi,
In the ReactingParcel.C file, I found particles are removed when mass falls below a threshold. // Remove the particle when mass falls below minimum threshold if (np0*mass1 < td.cloud().constProps().minParticleMass()) { td.keepParticle = false; if (td.cloud().solution().coupled()) { scalar dm = np0*mass1; // Absorb parcel into carrier phase forAll(Y_, i) { scalar dmi = dm*Y_[i]; label gid = composition.localToGlobalCarrierId(0, i); scalar hs = composition.carrier().Hs(gid, pc_, T0); td.cloud().rhoTrans(gid)[cellI] += dmi; td.cloud().hsTrans()[cellI] += dmi*hs; } td.cloud().UTrans()[cellI] += dm*U0; td.cloud().phaseChange().addToPhaseChangeMass(dm); } return; } I have tried to use similar way to remove particles when particles hit the wall. I added the code below and compiled, however, particles are not removed. Wonder if anyone has any clue on this. Thanks. if ( isA<wallPolyPatch>(pp)) { td.keepParticle = false; if (td.cloud().solution().coupled()) { scalar dm = np0*mass1; // Absorb parcel into carrier phase forAll(Y_, i) { scalar dmi = dm*Y_[i]; label gid = composition.localToGlobalCarrierId(0, i); scalar hs = composition.carrier().Hs(gid, pc_, T0); td.cloud().rhoTrans(gid)[cellI] += dmi; td.cloud().hsTrans()[cellI] += dmi*hs; } td.cloud().UTrans()[cellI] += dm*U0; td.cloud().phaseChange().addToPhaseChangeMass(dm); } return; } |
|
November 17, 2017, 09:20 |
|
#4 |
New Member
Join Date: Jul 2016
Posts: 14
Rep Power: 10 |
Any suggestions??? Thanks.
|
|
November 21, 2017, 12:00 |
|
#5 |
New Member
Joseph Urich
Join Date: Mar 2009
Location: Pittsburgh, PA
Posts: 21
Rep Power: 17 |
Hello,
If you look in StandardWallInteration.C, the stick condition sets keepParticle = true and U = Zero. So you could use that as the test, if( td.keepParticle == true && U0 == Zero) Seems unlikely that the momentum equations would ever result in velocity of precisely zero. |
|
November 23, 2017, 09:58 |
|
#6 | |
New Member
Join Date: Jul 2016
Posts: 14
Rep Power: 10 |
Quote:
if ( td.keepParticle == true && U0 == Zero) { td.keepParticle = false; if (td.cloud().solution().coupled()) { scalar dm = np0*mass1; // Absorb parcel into carrier phase forAll(Y_, i) { scalar dmi = dm*Y_[i]; label gid = composition.localToGlobalCarrierId(0, i); scalar hs = composition.carrier().Hs(gid, pc_, T0); td.cloud().rhoTrans(gid)[cellI] += dmi; td.cloud().hsTrans()[cellI] += dmi*hs; } td.cloud().UTrans()[cellI] += dm*U0; td.cloud().phaseChange().addToPhaseChangeMass(dm); } return; } |
||
November 28, 2017, 05:55 |
|
#7 |
New Member
Join Date: Jul 2016
Posts: 14
Rep Power: 10 |
i have tried to add the code below in the ReactingParcel.C, and set "stick" as particle wall interaction.
if ( mag(U0) < SMALL) { td.keepParticle = false; if (td.cloud().solution().coupled()) { scalar dm = np0*mass1; // Absorb parcel into carrier phase forAll(Y_, i) { scalar dmi = dm*Y_[i]; label gid = composition.localToGlobalCarrierId(0, i); scalar hs = composition.carrier().Hs(gid, pc_, T0); td.cloud().rhoTrans(gid)[cellI] += dmi; td.cloud().hsTrans()[cellI] += dmi*hs; } td.cloud().UTrans()[cellI] += dm*U0; td.cloud().phaseChange().addToPhaseChangeMass(dm); } return; } However, parcels stick on the wall rather than removed (in Paraview), and there is no big increase in the mass transfer phase change. But I've noticed something interesting: i set the writeInterval as 0.01, the number of stick parcels on the wall is cleared as zero at the start of next writerInterval. for example, the number of stick parcels at t = 0.059s is 30, but at t=0.06s, the the number of stick parcels is zero. I am not quite sure why this happened. anyone has any idea? Thank you. |
|
May 29, 2018, 15:21 |
|
#8 |
New Member
Daniel Norton
Join Date: Feb 2015
Posts: 17
Rep Power: 11 |
Hi Liliu,
I'm starting to look for a very similar functionality with a droplet evaporating once it hits a wall. Did you manage to resolve this? Thanks! |
|
June 18, 2018, 15:57 |
|
#9 |
Member
Join Date: Oct 2015
Posts: 63
Rep Power: 11 |
Hi,
Can anyone tell me where the definition for rhoTrans() is? Or can someone explain what the below line means? td.cloud().rhoTrans(gid)[cellI] += dmi; Best, Scram_1 |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Evaporation model in ansys Fluent 12.1 | oldisbest | Fluent UDF and Scheme Programming | 12 | March 26, 2020 10:11 |
Water Surface Evaporation | sunggun1212 | FLUENT | 3 | January 11, 2020 05:12 |
Liquid Evaporation Model Error in OF 2.3.0 | brbbhatti | OpenFOAM | 11 | June 16, 2014 10:40 |
Question:Considerations about the evaporation in VOF | dokeun | FLUENT | 10 | February 24, 2011 21:47 |
CFX Liquid Evaporation Model | Jinx | CFX | 3 | January 28, 2010 17:31 |