diff --git a/src/wallBC.cpp b/src/wallBC.cpp index 90c605d75..d07adad1d 100644 --- a/src/wallBC.cpp +++ b/src/wallBC.cpp @@ -236,6 +236,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 a277b81aa..c6cc10d00 100644 --- a/src/wallBC.hpp +++ b/src/wallBC.hpp @@ -83,6 +83,7 @@ class WallBC : public BoundaryCondition { void computeBdrFlux(Vector &normal, Vector &stateIn, DenseMatrix &gradState, Vector transip, double delta, double distance, Vector &bdrFlux); + void computeBdrPrimitiveStateForGradient(const Vector &primIn, Vector &primBC) const override; virtual void initBCs();