diff --git a/applications/solvers/combustion/plasmaReactingFoam/YEqn.H b/applications/solvers/combustion/plasmaReactingFoam/YEqn.H index 70dc185d..50850456 100644 --- a/applications/solvers/combustion/plasmaReactingFoam/YEqn.H +++ b/applications/solvers/combustion/plasmaReactingFoam/YEqn.H @@ -35,12 +35,12 @@ tmp > mvConvection forAll(Y, i) { + volScalarField& Yi = Y[i]; + const volScalarField& Di = D[i]; if (Y[i].name() == electronSpecie) { - volScalarField& Yi = Y[i]; - Udrift = - linearInterpolate(mue*E/ng); ve = (Udrift & mesh.Sf()) + q; @@ -50,19 +50,19 @@ tmp > mvConvection forAll (wallPatcheIDs, pidx) { label patchID = wallPatcheIDs[pidx]; + scalar pReflex = wallReflexes[pidx]; // Probability of electron reflex + fvsPatchScalarField &wallFlux = ve.boundaryField()[patchID]; - const fvsPatchScalarField &wallMSf = msf.boundaryField()[patchID]; - const fvPatchScalarField &wallTe = Te.boundaryField()[patchID]; - scalarField vt(sqrt((8.0/pi)*(2.0/3.0)/16.0*eCharge.value()/eMass.value()*wallTe)); + scalarField vt(sqrt(8.0*kB.value()/pi/eMass.value()*wallTe)); // remove negative wallFlux value (flux from wall) wallFlux = max(wallFlux, 0.0); // add flux by thermal velocity - wallFlux += vt * wallMSf; + wallFlux += vt * wallMSf * max((1.0-max(pReflex,1.0)),1.0) / 4.0; } tmp electronR( @@ -92,7 +92,6 @@ tmp > mvConvection } else if (Y[i].name() != inertSpecie) { - volScalarField& Yi = Y[i]; fvScalarMatrix YiEqn ( diff --git a/applications/solvers/combustion/plasmaReactingFoam/createFields.H b/applications/solvers/combustion/plasmaReactingFoam/createFields.H index bdbde984..c0192ac3 100644 --- a/applications/solvers/combustion/plasmaReactingFoam/createFields.H +++ b/applications/solvers/combustion/plasmaReactingFoam/createFields.H @@ -63,6 +63,7 @@ word TeName(wallElectronFlux.lookup("TeName")); wordList wallPatcheNames (wallElectronFlux.lookup("wallPatches")); labelList wallPatcheIDs (wallPatcheNames.size(), 0); +scalarList wallReflexes (wallElectronFlux.lookup("wallReflexes")); forAll (wallPatcheNames, pi) {