CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   What’s the meaning of ‘Axisymmetric Properties’ items in dsmcFOAM (https://www.cfd-online.com/Forums/openfoam-solving/213048-what-s-meaning-axisymmetric-properties-items-dsmcfoam.html)

Tia December 12, 2018 23:47

What’s the meaning of ‘Axisymmetric Properties’ items in dsmcFOAM
 
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!

ano December 13, 2018 13:11

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.

Tia December 15, 2018 07:03

Thanks for your response!
I resolved my question !

yougushenyun March 3, 2019 06:26

about dsmcFoam
 
Quote:

Originally Posted by ano (Post 719113)
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

ano March 6, 2019 10:10

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.

yougushenyun March 8, 2019 03:39

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.

ano March 8, 2019 04:03

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?

yougushenyun March 9, 2019 07:55

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.

Orion7 December 31, 2021 13:34

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.

moezzi July 4, 2022 15:53

dsmcFoam
 
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


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