CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM

droplet&wall interaction, evaporation

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   October 17, 2017, 07:03
Default droplet&wall interaction, evaporation
  #1
New Member
 
Join Date: Jul 2016
Posts: 14
Rep Power: 10
liliu is on a distinguished road
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
liliu is offline   Reply With Quote

Old   October 26, 2017, 06:27
Default
  #2
New Member
 
Join Date: Jul 2016
Posts: 14
Rep Power: 10
liliu is on a distinguished road
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.
liliu is offline   Reply With Quote

Old   October 31, 2017, 06:19
Default
  #3
New Member
 
Join Date: Jul 2016
Posts: 14
Rep Power: 10
liliu is on a distinguished road
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;
}
liliu is offline   Reply With Quote

Old   November 17, 2017, 09:20
Default
  #4
New Member
 
Join Date: Jul 2016
Posts: 14
Rep Power: 10
liliu is on a distinguished road
Any suggestions??? Thanks.
liliu is offline   Reply With Quote

Old   November 21, 2017, 12:00
Default
  #5
New Member
 
Joseph Urich
Join Date: Mar 2009
Location: Pittsburgh, PA
Posts: 21
Rep Power: 17
jurich is on a distinguished road
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.
jurich is offline   Reply With Quote

Old   November 23, 2017, 09:58
Default
  #6
New Member
 
Join Date: Jul 2016
Posts: 14
Rep Power: 10
liliu is on a distinguished road
Quote:
Originally Posted by jurich View Post
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.
Thanks a lot, Joseph, for kind help. Just to clarify that my understanding is correct. You suggested me testthe code in the ReactingParcel.C, like below, right?

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;
}
liliu is offline   Reply With Quote

Old   November 28, 2017, 05:55
Default
  #7
New Member
 
Join Date: Jul 2016
Posts: 14
Rep Power: 10
liliu is on a distinguished road
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.
liliu is offline   Reply With Quote

Old   May 29, 2018, 15:21
Default
  #8
New Member
 
Daniel Norton
Join Date: Feb 2015
Posts: 17
Rep Power: 11
Dano62 is on a distinguished road
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!
Dano62 is offline   Reply With Quote

Old   June 18, 2018, 15:57
Default
  #9
Member
 
Join Date: Oct 2015
Posts: 63
Rep Power: 11
Scram_1 is on a distinguished road
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
Scram_1 is offline   Reply With Quote

Reply


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 Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


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


All times are GMT -4. The time now is 23:08.