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

What’s the meaning of ‘Axisymmetric Properties’ items in dsmcFOAM

Register Blogs Community New Posts Updated Threads Search

Like Tree4Likes
  • 1 Post By Tia
  • 3 Post By ano

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   December 12, 2018, 23:47
Default What’s the meaning of ‘Axisymmetric Properties’ items in dsmcFOAM
  #1
Tia
New Member
 
Tsubasa
Join Date: Dec 2018
Posts: 2
Rep Power: 0
Tia is on a distinguished road
I’d like to calculate axsymmetry dilute fluid with dsmcFOAM. But I don’t know what’s the meaning of ‘Axisymmetric Properties’, especially ‘radialExtentOfDomain’ and ‘maxRadialWeightingFactor’. Can you help me translate. Thank you!
R2P3 likes this.
Tia is offline   Reply With Quote

Old   December 13, 2018, 13:11
Default
  #2
ano
Member
 
ano
Join Date: Jan 2017
Location: Delft
Posts: 58
Rep Power: 10
ano is on a distinguished road
Dear Tia,

The following description is for Openfoam-2.4.0-MNF. Do you use this version for your dsmc simulations?

In an axisymmetric simulation you would normally have many particles in the cells far away from your axis and very few next to the axis. Since you need a minimum of particles everywhere, an equal number density of particles would yield a high total number of particles in your domain.
To reduce the number one can use radial weighting factors: All particles get a weighting factor, if a particle moves towards the axis it gets a smaller weighting factor and depending on the ratio between the old and the new weighting factor it gets duplicated, if it moves away from the axis the particle can get deleted (the probability for that depends again on the ratio between old and new weighting factor). For a uniform number density and uniform grid, you should get so approximately the same number of particles per cell.

dsmcFoam(Plus) calculates the radial weighting factor (RWF) as:
Code:
RWF = 1.0 + maxRWF_*(radius/radialExtent_);
where
radialExtent_="radialExtentOfDomain" = Your domain size in y-direction.
maxRWF_="maxRadialWeightingFactor"
radius= distance in y-direction

Important for you:
1. Read the README in the axisymmetric tutorial to make your mesh.
2. Copy the parameters from there, but use your own domain size in y-direction for the radialExtentOfDomain.
3. Make a small test simulation to see whether the particles are equally distributed (by looking at dsmcRhoN). If there are too many particles next to the axis, decrease the radial weighting by reducing maxRadialWeightingFactor, if there are too few, increase it.
AshwaniAssam, R2P3 and Tia like this.
ano is offline   Reply With Quote

Old   March 3, 2019, 06:26
Default about dsmcFoam
  #3
New Member
 
Mascot
Join Date: Oct 2013
Posts: 3
Rep Power: 12
yougushenyun is on a distinguished road
Quote:
Originally Posted by ano View Post
Dear Tia,

The following description is for Openfoam-2.4.0-MNF. Do you use this version for your dsmc simulations?

In an axisymmetric simulation you would normally have many particles in the cells far away from your axis and very few next to the axis. Since you need a minimum of particles everywhere, an equal number density of particles would yield a high total number of particles in your domain.
To reduce the number one can use radial weighting factors: All particles get a weighting factor, if a particle moves towards the axis it gets a smaller weighting factor and depending on the ratio between the old and the new weighting factor it gets duplicated, if it moves away from the axis the particle can get deleted (the probability for that depends again on the ratio between old and new weighting factor). For a uniform number density and uniform grid, you should get so approximately the same number of particles per cell.

dsmcFoam(Plus) calculates the radial weighting factor (RWF) as:
Code:
RWF = 1.0 + maxRWF_*(radius/radialExtent_);
where
radialExtent_="radialExtentOfDomain" = Your domain size in y-direction.
maxRWF_="maxRadialWeightingFactor"
radius= distance in y-direction

Important for you:
1. Read the README in the axisymmetric tutorial to make your mesh.
2. Copy the parameters from there, but use your own domain size in y-direction for the radialExtentOfDomain.
3. Make a small test simulation to see whether the particles are equally distributed (by looking at dsmcRhoN). If there are too many particles next to the axis, decrease the radial weighting by reducing maxRadialWeightingFactor, if there are too few, increase it.

Dear ano,

I also used dsmcFoamPlus to calculate axsymmetry dilute fluid. The radialExtentOfDomain is so small(1e-5m), in order to ensure that there are 20~30 particles in one cell, I reduced maxRadialWeightingFactor to as small as 2.0. Do you know is it right. Thank you very much!

mascot
yougushenyun is offline   Reply With Quote

Old   March 6, 2019, 10:10
Default
  #4
ano
Member
 
ano
Join Date: Jan 2017
Location: Delft
Posts: 58
Rep Power: 10
ano is on a distinguished road
Dear mascot,

From your PM I understand that the number of particles next to the axis is still too small.

You can improve that by increasing the maximum radial weighting factor.

To show what is going on look e.g. at the initialisation in OpenFOAM-2.4.0-MNF/src/lagrangian/dsmc/initaliseDsmcParcels/derived/dsmcZoneFill/dsmcZoneFill.C

Code:
scalar particlesRequired = numberDensity*tetVolume;
scalar RWF = 1.0 + cloud_.maxRWF()*(radius/cloud_.radialExtent());
particlesRequired /= RWF;
If you are next to the axis the radius is small, so RWF=1 (approximately). If we are very far away, i.e. at the outer boundary, RWF=3.

The required particles is calculated by numberDensity*tetVolume/RWF. The higher the RWF the lower the number of particles which represent your molecules.

In the PM your wrote
Quote:
there are too few(<1) particles next to the axis
.

The solution is to decrease the nEquivalentParticles in constant/dsmcProperties until you have ~20 particles next to the axis. So probably you have to divide your current nEquivalentParticles by 100 or even a higher number. Then you would probably have too many particles far away from the axis. So you should increase the maxRadialWeightingFactor. I would start with the 1000 they propose in their tutorial and change based on your first results.

So you have two things influencing your number of particles per cell: Next to the axis the nEquivalentParticles, and for the rest of the domain the radial weighting factor.

If you have a rough idea how the number density is next to the axis and far away as well as the size of the volume, you should be able to get a good estimate how to chose the maxRadialWeightingFactor.

One example: if your number density is everywhere the same and the radial extend of all cells as well, a rough estimate of would be to say:
The size of the cells increases proportional to the radius. If we have 20 particles in the cell, next p the axis with the cell centre at r0, the number of particles in the last cell will be ~20*radialExtent/r0. So we would like in the last cell RWF=radialExtent/r0 to decrease the number of particles we have to simulate. Since RWF=1+maxRWF in the last cell, we should chose maxRWF=radialExtent/r0-1. Probably the minus one is negligible, if you have many cells in radial direction.
ano is offline   Reply With Quote

Old   March 8, 2019, 03:39
Default
  #5
New Member
 
Mascot
Join Date: Oct 2013
Posts: 3
Rep Power: 12
yougushenyun is on a distinguished road
Dear ano,

Thany you for you reply.

From your explanation I know how the maxRadialWeightingFactor works. And for micro-sized problems, the number of particles next to axis can exceed 20.

But for nona-sized problems, the size of feture we considered is much less than the molecule mean free path, for example, Knudsen number = 10, in order to guarantee there are several cells around the feture, we have to decrease the size of cells around the feture, and the size now is less than 1/3 mean free path. This so small cell's size leads to the very small nEquivalentParticles which is set in constant/dsmcProperties, i.e. nEquivalentParticles < 10, so I can't increase maxRadialWeightingFactor by decreasing nEquivalentParticles in order to guarantee the number of particles next to axis is greater than 10.

Is dsmcFoam not suitable for such nano-sized problem. I don't know how to solve the problem. Will you give me some advice. Look forward to your reply. Thank you very much.
yougushenyun is offline   Reply With Quote

Old   March 8, 2019, 04:03
Default
  #6
ano
Member
 
ano
Join Date: Jan 2017
Location: Delft
Posts: 58
Rep Power: 10
ano is on a distinguished road
Dear mascot,

For Kn=10, we have basically free molecular flow and collisions are not really important.

Why we normally want 20 particles per cell in dsmc is to have enough collision partners. If we don't have collisions, it is ok to have less than 20 particles per cell.

Only important is that if you want to calculate your macroscopic properties such as temperature and velocity, you would have to accumulate the particles in a cell over multiple time steps before taking the average. But I don't know whether it makes even sense for you to define macroscopic properties?

I understand that you defined the Knudsen number with respect to the nanoscale feature? Is the Knudsen number with respect to the computational domain also very big?
ano is offline   Reply With Quote

Old   March 9, 2019, 07:55
Default
  #7
New Member
 
Mascot
Join Date: Oct 2013
Posts: 3
Rep Power: 12
yougushenyun is on a distinguished road
Dear ano,

Thanks again for you reply.

Actually, collisions are not important in free molecular regimes, so there no need to guarantee several particles in one cell, in that way how to choose the size of cells.

The problem I considered is that the air flows through a nanoscale particle, and the physical space outside the particle occupied by gas molecules with Kn = 10, and the computational domain is almost 10 times of diameter of particle. So, in order to calculate macroscopic properties such as temperature and velocity, how can accumulate the particles in a cell over multiple time steps before taking the average, is there some setup or tools for this in OF.

I also have a doubt about how dsmcFoamPlus solver calculate surface Heat Transfer. We know that there is a Energy Accommodation Coefficient (EAC, or Thermal Accommodation Coefficient, TAC) to character the efficiency of energy transfer. Is there a EAC in dsmcFoamPlus solver, if so how can I set it. Thank you again.
yougushenyun is offline   Reply With Quote

Old   December 31, 2021, 13:34
Default
  #8
New Member
 
Ali
Join Date: Aug 2021
Posts: 2
Rep Power: 0
Orion7 is on a distinguished road
Dear Elin Vesper,
I try to simulate 2D Axisymmetric problem with DSMC. my radialExtentOfDomain is 0.0099 when i use 1000 for maxRadialWeightingFactor, only 140 particles added. that's too small and when i reduce this parameter to 1.0 about 60000 particles added. do you think this is true?
Or better i say, is this parameter relative with number of cells and number density and nEquivalent?
If there is relationship between them how to calculate maxRadialWeightingFactor?
(nEquivalent = 9.4738E+10, number of cells = 3360, number density = 7.30464815471710E+22)
Thanks a lot.
Orion7 is offline   Reply With Quote

Old   July 4, 2022, 15:53
Default dsmcFoam
  #9
New Member
 
hamid
Join Date: Feb 2014
Posts: 7
Rep Power: 12
moezzi is on a distinguished road
Hi,

I hope there is somebody to help.

I run my simulations with dsmcFoam+, but something happens with is a little weird for me.
As the simulation proceeds, the number of dsmc particles decreases which comparing to the tutorials provided, it should not!

I have inlet, outlet, diffuse walls and my simulation is axisymmetric.

Could you please advise?

Thanks.
Hami
moezzi is offline   Reply With Quote

Old   December 15, 2018, 07:03
Default
  #10
Tia
New Member
 
Tsubasa
Join Date: Dec 2018
Posts: 2
Rep Power: 0
Tia is on a distinguished road
Thanks for your response!
I resolved my question !
Tia is offline   Reply With Quote

Reply

Tags
asymmetric, dsmcfoam, openfoam


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



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