5 #ifndef _FLOWMODELSLIPJUMP_H_
6 #define _FLOWMODELSLIPJUMP_H_
14 const T accomodationCoefficient,
25 dynamic_cast<const VectorT3Array&
>(_geomFields.coordinate[faces]);
28 dynamic_cast<const VectorT3Array&
>(_geomFields.coordinate[cells]);
30 const TArray& faceAreaMag =
31 dynamic_cast<const TArray&
>(_geomFields.areaMag[faces]);
35 const TArray& p =
dynamic_cast<const TArray&
>(_flowFields.pressure[cells]);
36 const TArray& mu =
dynamic_cast<const TArray&
>(_flowFields.viscosity[cells]);
38 const T opPressure( _options[
"operatingPressure"]);
39 const T opTemperature(_options[
"operatingTemperature"]);
40 const T molWt(_options[
"molecularWeight"]);
41 const T Rgas = 8314.472/molWt;
43 const bool incompressible = _options.incompressible;
47 for(
int f=0; f<nFaces; f++)
49 const int c0 = faceCells(f,0);
53 const VectorT3 en(faceArea[f]/faceAreaMag[f]);
56 const T Vn =
dot(V[c0],en);
61 const VectorT3 ds(faceCentroid[f]-cellCentroid[c0]);
64 const T dn =
dot(ds,en);
67 const T pAbs = incompressible ? opPressure : (p[c0]+opPressure);
70 const T muCell = mu[c0];
71 const T MeanFreePath = muCell/pAbs*
sqrt(0.5*M_PI*Rgas*opTemperature);
73 const T coeff = accomodationCoefficient*MeanFreePath/ (dn+(accomodationCoefficient*MeanFreePath));
Tangent sqrt(const Tangent &a)
void applyDirichletBC(int f, const X &bValue) const
const StorageSite & getCells() const
const CRConnectivity & getFaceCells(const StorageSite &site) const
void slipJumpMomentumBC(const StorageSite &faces, const Mesh &mesh, GenericBCS< VectorT3, DiagTensorT3, T > &gbc, const T accomodationCoefficient, const FloatValEvaluator< VectorT3 > &bVelocity)
T dot(const Vector< T, 3 > &a, const Vector< T, 3 > &b)