You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have noticed unphysical behavior when using the Cercignani-Lampis-Lord wall reflection model. There are two errors in the implementation of it in file dsmcCLLWallPatch.C:
The first error has already been reported in the “MicroNanoFlows” repository. In the case of a moving wall, the wall velocity is incorrectly multiplied by the accommodations coefficient of tangential kinetic energy (alphaT in code) instead of the tangential momentum accommodation coefficient (TMAC). As a result, the wall transfers more momentum and the particle is scattered too strongly in the direction of the wall movement. https://github.com/MicroNanoFlows/OpenFOAM-2.4.0-MNF/issues/11
The second error occurs when TMAC > 1 is used. Let's start with some background knowledge:
A TMAC = 0 describes complete specular reflection and a TMAC = 1 describes complete diffuse scattering, in which the particle is scattered in a random direction at a random speed. In contrast to the Maxwell model (mixedDiffuseSpecular), where one fraction of the particles is specularly scattered and the rest is diffusely scattered (depending on the TMAC), the CLL model relates this to fractions of the tangential momentum of each individual particle. This case is correctly represented in the code.
However, there is also the special case that particles are backscattered, which is the case for TMAC>1. Physically, this behavior is rather rare, but occurs, for example, with surface structures, which I am researching.
Here, an error has crept in due to a transformation of the underlying equations. In line 195, sqrt(1-alphaT) should be replaced by (1-TMAC). Both expressions are identical in the case TMAC < 1, but the root acts like a magnitude function at TMAC > 1, so that instead of the backscattering specular reflection results here as well. I would like to refer to the book “Rarefied Gas Dynamics” (Shen, 2005, https://doi.org/10.1007/b138784), where you can see the correct implementation in equations (3.52) and (3.36). Here also the error at hand can be seen in equation (3.38)', as using the root while transforming from equation (3.38) necessitates a +/- on the right hand side which is neglected.
Thus i would like to propose the following changes for line 247-248 vector UTangential1 = (U & tw1) * tw1 + uWallTangential1*tangentialAccommodationCoefficient_; vector UTangential2 = (U & tw2) * tw2 + uWallTangential2*tangentialAccommodationCoefficient_;
and for line 195-196 of dsmcCLLWallPatch.C. scalar tangentialVelocity1 = ((1-tangentialAccommodationCoefficient_)*mag(normalisedIncidentTangentialVelocity1) + rTangential1*cos(thetaTangential1));
The text was updated successfully, but these errors were encountered:
The original issue only considered tangential movement of the wall. Futher investigations suggest, there is also a problem regarding wall movement in normal direction of the wall. This problem might be linked to handling wall collisions in general, as the specular reflection model shows the same issue.
A simple examplatory calculation shows this. Consider fully specular reflection either with the specular model or CLL-model with alphaN = 0:
n = (1, 0, 0) normal vector of wall (parallel to yz-plane)
v_i = (20, 0, 0)m/s particle incident velocity vector (movement in +x direction)
v_W = (-10, 0, 0)m/s wall velocity vector (movement in -x direction)
v_r to be calculated particle reflected velocity vector
specular model as implemented:
v_r = v_i - 2 * n * (v_i * n) = (-20, 0, 0)m/s
Of course there is a error at hand, as the results must be equal regardless of the used reference frame. Without going into detail, the CLL-Model, as currently implemented, also preduces v_r = (-20,0,0)m/s for alphaN=0.
The safest way would probably be to switch into a reference frame moving with the wall, then perform the wall reflection, and at last, backtransformation into the global reference frame. This approach would be able to handle any wall reflection models.
Hello,
I have noticed unphysical behavior when using the Cercignani-Lampis-Lord wall reflection model. There are two errors in the implementation of it in file dsmcCLLWallPatch.C:
The first error has already been reported in the “MicroNanoFlows” repository. In the case of a moving wall, the wall velocity is incorrectly multiplied by the accommodations coefficient of tangential kinetic energy (alphaT in code) instead of the tangential momentum accommodation coefficient (TMAC). As a result, the wall transfers more momentum and the particle is scattered too strongly in the direction of the wall movement.
https://github.com/MicroNanoFlows/OpenFOAM-2.4.0-MNF/issues/11
The second error occurs when TMAC > 1 is used. Let's start with some background knowledge:
A TMAC = 0 describes complete specular reflection and a TMAC = 1 describes complete diffuse scattering, in which the particle is scattered in a random direction at a random speed. In contrast to the Maxwell model (mixedDiffuseSpecular), where one fraction of the particles is specularly scattered and the rest is diffusely scattered (depending on the TMAC), the CLL model relates this to fractions of the tangential momentum of each individual particle. This case is correctly represented in the code.
However, there is also the special case that particles are backscattered, which is the case for TMAC>1. Physically, this behavior is rather rare, but occurs, for example, with surface structures, which I am researching.
Here, an error has crept in due to a transformation of the underlying equations. In line 195, sqrt(1-alphaT) should be replaced by (1-TMAC). Both expressions are identical in the case TMAC < 1, but the root acts like a magnitude function at TMAC > 1, so that instead of the backscattering specular reflection results here as well. I would like to refer to the book “Rarefied Gas Dynamics” (Shen, 2005, https://doi.org/10.1007/b138784), where you can see the correct implementation in equations (3.52) and (3.36). Here also the error at hand can be seen in equation (3.38)', as using the root while transforming from equation (3.38) necessitates a +/- on the right hand side which is neglected.
Thus i would like to propose the following changes for line 247-248
vector UTangential1 = (U & tw1) * tw1 + uWallTangential1*tangentialAccommodationCoefficient_;
vector UTangential2 = (U & tw2) * tw2 + uWallTangential2*tangentialAccommodationCoefficient_;
and for line 195-196 of dsmcCLLWallPatch.C.
scalar tangentialVelocity1 = ((1-tangentialAccommodationCoefficient_)*mag(normalisedIncidentTangentialVelocity1) + rTangential1*cos(thetaTangential1));
The text was updated successfully, but these errors were encountered: