diff --git a/src/wallBC.cpp b/src/wallBC.cpp index ad90531f6..798e3437a 100644 --- a/src/wallBC.cpp +++ b/src/wallBC.cpp @@ -207,6 +207,30 @@ void WallBC::computeBdrFlux(Vector &normal, Vector &stateIn, DenseMatrix &gradSt } } +void WallBC::computeBdrPrimitiveStateForGradient(const Vector &primIn, Vector &primBC) const { + primBC = primIn; + + switch (wallType_) { + case INV: + // TODO(trevilo): fix + break; + case VISC_ADIAB: + // TODO(trevilo): fix + break; + case VISC_ISOTH: + // no-slip + for (int i = 0; i < nvel_; i++) { + primBC[1 + i] = 0.0; + } + // isothermal + primBC[nvel_ + 1] = wallTemp_; + break; + case VISC_GNRL: + // TODO(trevilo): fix + break; + } +} + void WallBC::integrationBC(Vector &y, const Vector &x, const elementIndexingData &elem_index_data, ParGridFunction *Up, ParGridFunction *gradUp, const boundaryFaceIntegrationData &boundary_face_data, const int &maxIntPoints, const int &maxDofs) { diff --git a/src/wallBC.hpp b/src/wallBC.hpp index 3caf79fe9..4f7d15117 100644 --- a/src/wallBC.hpp +++ b/src/wallBC.hpp @@ -78,6 +78,7 @@ class WallBC : public BoundaryCondition { ~WallBC(); void computeBdrFlux(Vector &normal, Vector &stateIn, DenseMatrix &gradState, double radius, Vector &bdrFlux); + void computeBdrPrimitiveStateForGradient(const Vector &primIn, Vector &primBC) const override; virtual void initBCs();