Skip to content

Two errors in dsmcCLLWallPatch.C (Cercignani-Lampis-Lord wall reflection model) #164

@sven-brock

Description

@sven-brock

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));

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions