diff --git a/src/immersedBoundary/immersedBoundary/immersedBoundaryFvPatchFields/basic/fixedValueIbFvPatchField/fixedValueIbFvPatchField.C b/src/immersedBoundary/immersedBoundary/immersedBoundaryFvPatchFields/basic/fixedValueIbFvPatchField/fixedValueIbFvPatchField.C index e396d37d9..a3c98f517 100644 --- a/src/immersedBoundary/immersedBoundary/immersedBoundaryFvPatchFields/basic/fixedValueIbFvPatchField/fixedValueIbFvPatchField.C +++ b/src/immersedBoundary/immersedBoundary/immersedBoundaryFvPatchFields/basic/fixedValueIbFvPatchField/fixedValueIbFvPatchField.C @@ -239,6 +239,16 @@ void fixedValueIbFvPatchField::evaluate } +template +void Foam::fixedValueIbFvPatchField::manipulateMatrix +( + fvMatrix& matrix +) +{ + this->setDeadValues(matrix); +} + + template void fixedValueIbFvPatchField::write(Ostream& os) const { diff --git a/src/immersedBoundary/immersedBoundary/immersedBoundaryFvPatchFields/basic/fixedValueIbFvPatchField/fixedValueIbFvPatchField.H b/src/immersedBoundary/immersedBoundary/immersedBoundaryFvPatchFields/basic/fixedValueIbFvPatchField/fixedValueIbFvPatchField.H index 7183e4b9f..d6bf80695 100644 --- a/src/immersedBoundary/immersedBoundary/immersedBoundaryFvPatchFields/basic/fixedValueIbFvPatchField/fixedValueIbFvPatchField.H +++ b/src/immersedBoundary/immersedBoundary/immersedBoundaryFvPatchFields/basic/fixedValueIbFvPatchField/fixedValueIbFvPatchField.H @@ -191,6 +191,9 @@ public: const Pstream::commsTypes commsType = Pstream::blocking ); + //- Manipulate a matrix + virtual void manipulateMatrix(fvMatrix& matrix); + // I-O diff --git a/src/immersedBoundary/immersedBoundary/immersedBoundaryFvPatchFields/basic/mixedIbFvPatchField/mixedIbFvPatchField.C b/src/immersedBoundary/immersedBoundary/immersedBoundaryFvPatchFields/basic/mixedIbFvPatchField/mixedIbFvPatchField.C index 952e1392a..637ce297e 100644 --- a/src/immersedBoundary/immersedBoundary/immersedBoundaryFvPatchFields/basic/mixedIbFvPatchField/mixedIbFvPatchField.C +++ b/src/immersedBoundary/immersedBoundary/immersedBoundaryFvPatchFields/basic/mixedIbFvPatchField/mixedIbFvPatchField.C @@ -257,6 +257,16 @@ void mixedIbFvPatchField::evaluate } +template +void Foam::mixedIbFvPatchField::manipulateMatrix +( + fvMatrix& matrix +) +{ + this->setDeadValues(matrix); +} + + template void mixedIbFvPatchField::write(Ostream& os) const { diff --git a/src/immersedBoundary/immersedBoundary/immersedBoundaryFvPatchFields/basic/mixedIbFvPatchField/mixedIbFvPatchField.H b/src/immersedBoundary/immersedBoundary/immersedBoundaryFvPatchFields/basic/mixedIbFvPatchField/mixedIbFvPatchField.H index 0ab147c0d..b0151cfd2 100644 --- a/src/immersedBoundary/immersedBoundary/immersedBoundaryFvPatchFields/basic/mixedIbFvPatchField/mixedIbFvPatchField.H +++ b/src/immersedBoundary/immersedBoundary/immersedBoundaryFvPatchFields/basic/mixedIbFvPatchField/mixedIbFvPatchField.H @@ -221,6 +221,9 @@ public: const Pstream::commsTypes commsType = Pstream::blocking ); + //- Manipulate a matrix + virtual void manipulateMatrix(fvMatrix& matrix); + // I-O diff --git a/src/immersedBoundary/immersedBoundary/immersedBoundaryFvPatchFields/derived/movingImmersedBoundaryVelocity/movingImmersedBoundaryVelocityFvPatchVectorField.C b/src/immersedBoundary/immersedBoundary/immersedBoundaryFvPatchFields/derived/movingImmersedBoundaryVelocity/movingImmersedBoundaryVelocityFvPatchVectorField.C index 6248707db..c312ab074 100644 --- a/src/immersedBoundary/immersedBoundary/immersedBoundaryFvPatchFields/derived/movingImmersedBoundaryVelocity/movingImmersedBoundaryVelocityFvPatchVectorField.C +++ b/src/immersedBoundary/immersedBoundary/immersedBoundaryFvPatchFields/derived/movingImmersedBoundaryVelocity/movingImmersedBoundaryVelocityFvPatchVectorField.C @@ -220,6 +220,15 @@ void Foam::movingImmersedBoundaryVelocityFvPatchVectorField::evaluate } +void Foam::movingImmersedBoundaryVelocityFvPatchVectorField::manipulateMatrix +( + fvVectorMatrix& matrix +) +{ + setDeadValues(matrix); +} + + void Foam::movingImmersedBoundaryVelocityFvPatchVectorField::write ( Ostream& os diff --git a/src/immersedBoundary/immersedBoundary/immersedBoundaryFvPatchFields/derived/movingImmersedBoundaryVelocity/movingImmersedBoundaryVelocityFvPatchVectorField.H b/src/immersedBoundary/immersedBoundary/immersedBoundaryFvPatchFields/derived/movingImmersedBoundaryVelocity/movingImmersedBoundaryVelocityFvPatchVectorField.H index 1807164d9..6fd7702c4 100644 --- a/src/immersedBoundary/immersedBoundary/immersedBoundaryFvPatchFields/derived/movingImmersedBoundaryVelocity/movingImmersedBoundaryVelocityFvPatchVectorField.H +++ b/src/immersedBoundary/immersedBoundary/immersedBoundaryFvPatchFields/derived/movingImmersedBoundaryVelocity/movingImmersedBoundaryVelocityFvPatchVectorField.H @@ -163,6 +163,9 @@ public: const Pstream::commsTypes commsType = Pstream::blocking ); + //- Manipulate a matrix + virtual void manipulateMatrix(fvVectorMatrix& matrix); + // I-O diff --git a/src/immersedBoundary/immersedBoundary/immersedBoundaryFvPatchFields/immersedBoundaryFieldBase/immersedBoundaryFieldBase.C b/src/immersedBoundary/immersedBoundary/immersedBoundaryFvPatchFields/immersedBoundaryFieldBase/immersedBoundaryFieldBase.C index d54ef9552..954627111 100644 --- a/src/immersedBoundary/immersedBoundary/immersedBoundaryFvPatchFields/immersedBoundaryFieldBase/immersedBoundaryFieldBase.C +++ b/src/immersedBoundary/immersedBoundary/immersedBoundaryFvPatchFields/immersedBoundaryFieldBase/immersedBoundaryFieldBase.C @@ -63,6 +63,39 @@ void Foam::immersedBoundaryFieldBase::setDeadValues } +template +void Foam::immersedBoundaryFieldBase::setDeadValues +( + fvMatrix& matrix +) const +{ + // Fix the value in dead cells + if (setDeadValue_) + { + const labelList& dc = ibPatch_.ibPolyPatch().deadCells(); + + // Boost the diagonal of dead cells by the volume ratio + // Volume ratio is set to SMALL; revert for diagonal + // This should also guarantee strong diagonal dominance. + // HJ, 19/Jun/2019 + + scalarField& diag = matrix.diag(); + + forAll (dc, dcI) + { + diag[dc[dcI]] *= GREAT; + } + + // Set values + matrix.setValues + ( + dc, + Field(dc.size(), deadValue_) + ); + } +} + + template void Foam::immersedBoundaryFieldBase::writeDeadData(Ostream& os) const { diff --git a/src/immersedBoundary/immersedBoundary/immersedBoundaryFvPatchFields/immersedBoundaryFieldBase/immersedBoundaryFieldBase.H b/src/immersedBoundary/immersedBoundary/immersedBoundaryFvPatchFields/immersedBoundaryFieldBase/immersedBoundaryFieldBase.H index f23cb9074..32873de87 100644 --- a/src/immersedBoundary/immersedBoundary/immersedBoundaryFvPatchFields/immersedBoundaryFieldBase/immersedBoundaryFieldBase.H +++ b/src/immersedBoundary/immersedBoundary/immersedBoundaryFvPatchFields/immersedBoundaryFieldBase/immersedBoundaryFieldBase.H @@ -123,6 +123,9 @@ public: //- Set values in dead cells void setDeadValues(Field& psiI) const; + //- Set matrix constraints in dead cells + void setDeadValues(fvMatrix& matrix) const; + // I/O diff --git a/src/immersedBoundary/immersedBoundary/immersedBoundaryPolyPatch/immersedBoundaryPolyPatch.C b/src/immersedBoundary/immersedBoundary/immersedBoundaryPolyPatch/immersedBoundaryPolyPatch.C index f63398ff4..3974c50fd 100644 --- a/src/immersedBoundary/immersedBoundary/immersedBoundaryPolyPatch/immersedBoundaryPolyPatch.C +++ b/src/immersedBoundary/immersedBoundary/immersedBoundaryPolyPatch/immersedBoundaryPolyPatch.C @@ -1262,8 +1262,8 @@ void Foam::immersedBoundaryPolyPatch::calcCorrectedGeometry() const forAll (dc, dcI) { - // Set dead volume to small - V[dc[dcI]] = SMALL; + // Scale dead volume to small + V[dc[dcI]] *= SMALL; } // Correct for all cut faces @@ -1286,7 +1286,7 @@ void Foam::immersedBoundaryPolyPatch::calcCorrectedGeometry() const forAll (df, dfI) { - // Set dead area to small + // Scale dead area to small Sf[df[dfI]] *= SMALL; } diff --git a/src/immersedBoundary/immersedBoundaryTurbulence/compressible/wallFunctions/immersedBoundaryEpsilonWallFunction/immersedBoundaryEpsilonWallFunctionFvPatchScalarField.C b/src/immersedBoundary/immersedBoundaryTurbulence/compressible/wallFunctions/immersedBoundaryEpsilonWallFunction/immersedBoundaryEpsilonWallFunctionFvPatchScalarField.C index 3edcdd566..f25dd06ad 100644 --- a/src/immersedBoundary/immersedBoundaryTurbulence/compressible/wallFunctions/immersedBoundaryEpsilonWallFunction/immersedBoundaryEpsilonWallFunctionFvPatchScalarField.C +++ b/src/immersedBoundary/immersedBoundaryTurbulence/compressible/wallFunctions/immersedBoundaryEpsilonWallFunction/immersedBoundaryEpsilonWallFunctionFvPatchScalarField.C @@ -250,6 +250,17 @@ void immersedBoundaryEpsilonWallFunctionFvPatchScalarField::evaluate } +void immersedBoundaryEpsilonWallFunctionFvPatchScalarField::manipulateMatrix +( + fvScalarMatrix& matrix +) +{ + setDeadValues(matrix); + + epsilonWallFunctionFvPatchScalarField::manipulateMatrix(matrix); +} + + void immersedBoundaryEpsilonWallFunctionFvPatchScalarField::write ( Ostream& os diff --git a/src/immersedBoundary/immersedBoundaryTurbulence/compressible/wallFunctions/immersedBoundaryEpsilonWallFunction/immersedBoundaryEpsilonWallFunctionFvPatchScalarField.H b/src/immersedBoundary/immersedBoundaryTurbulence/compressible/wallFunctions/immersedBoundaryEpsilonWallFunction/immersedBoundaryEpsilonWallFunctionFvPatchScalarField.H index 6695e6ffe..e6407a33a 100644 --- a/src/immersedBoundary/immersedBoundaryTurbulence/compressible/wallFunctions/immersedBoundaryEpsilonWallFunction/immersedBoundaryEpsilonWallFunctionFvPatchScalarField.H +++ b/src/immersedBoundary/immersedBoundaryTurbulence/compressible/wallFunctions/immersedBoundaryEpsilonWallFunction/immersedBoundaryEpsilonWallFunctionFvPatchScalarField.H @@ -170,6 +170,9 @@ public: const Pstream::commsTypes = Pstream::blocking ); + //- Manipulate a matrix + virtual void manipulateMatrix(fvScalarMatrix& matrix); + // I-O diff --git a/src/immersedBoundary/immersedBoundaryTurbulence/compressible/wallFunctions/immersedBoundaryKqRWallFunction/immersedBoundaryKqRWallFunctionFvPatchField.C b/src/immersedBoundary/immersedBoundaryTurbulence/compressible/wallFunctions/immersedBoundaryKqRWallFunction/immersedBoundaryKqRWallFunctionFvPatchField.C index 7f40e8f74..e3278d78b 100644 --- a/src/immersedBoundary/immersedBoundaryTurbulence/compressible/wallFunctions/immersedBoundaryKqRWallFunction/immersedBoundaryKqRWallFunctionFvPatchField.C +++ b/src/immersedBoundary/immersedBoundaryTurbulence/compressible/wallFunctions/immersedBoundaryKqRWallFunction/immersedBoundaryKqRWallFunctionFvPatchField.C @@ -220,6 +220,16 @@ void immersedBoundaryKqRWallFunctionFvPatchField::evaluate } +template +void immersedBoundaryKqRWallFunctionFvPatchField::manipulateMatrix +( + fvMatrix& matrix +) +{ + this->setDeadValues(matrix); +} + + template void immersedBoundaryKqRWallFunctionFvPatchField::write(Ostream& os) const { diff --git a/src/immersedBoundary/immersedBoundaryTurbulence/compressible/wallFunctions/immersedBoundaryKqRWallFunction/immersedBoundaryKqRWallFunctionFvPatchField.H b/src/immersedBoundary/immersedBoundaryTurbulence/compressible/wallFunctions/immersedBoundaryKqRWallFunction/immersedBoundaryKqRWallFunctionFvPatchField.H index e87517a37..4964d85e5 100644 --- a/src/immersedBoundary/immersedBoundaryTurbulence/compressible/wallFunctions/immersedBoundaryKqRWallFunction/immersedBoundaryKqRWallFunctionFvPatchField.H +++ b/src/immersedBoundary/immersedBoundaryTurbulence/compressible/wallFunctions/immersedBoundaryKqRWallFunction/immersedBoundaryKqRWallFunctionFvPatchField.H @@ -167,6 +167,9 @@ public: const Pstream::commsTypes commsType = Pstream::blocking ); + //- Manipulate a matrix + virtual void manipulateMatrix(fvMatrix& matrix); + // I-O diff --git a/src/immersedBoundary/immersedBoundaryTurbulence/compressible/wallFunctions/immersedBoundaryOmegaWallFunctions/immersedBoundaryOmegaWallFunctionFvPatchScalarField.C b/src/immersedBoundary/immersedBoundaryTurbulence/compressible/wallFunctions/immersedBoundaryOmegaWallFunctions/immersedBoundaryOmegaWallFunctionFvPatchScalarField.C index 67b8b4c13..9cc06be2b 100644 --- a/src/immersedBoundary/immersedBoundaryTurbulence/compressible/wallFunctions/immersedBoundaryOmegaWallFunctions/immersedBoundaryOmegaWallFunctionFvPatchScalarField.C +++ b/src/immersedBoundary/immersedBoundaryTurbulence/compressible/wallFunctions/immersedBoundaryOmegaWallFunctions/immersedBoundaryOmegaWallFunctionFvPatchScalarField.C @@ -66,7 +66,7 @@ immersedBoundaryOmegaWallFunctionFvPatchScalarField p, Switch(dict.lookup("setDeadValue")), readScalar(dict.lookup("deadValue")) - ) + ) { this->readPatchType(dict); @@ -249,6 +249,17 @@ void immersedBoundaryOmegaWallFunctionFvPatchScalarField::evaluate } +void immersedBoundaryOmegaWallFunctionFvPatchScalarField::manipulateMatrix +( + fvScalarMatrix& matrix +) +{ + setDeadValues(matrix); + + omegaWallFunctionFvPatchScalarField::manipulateMatrix(matrix); +} + + void immersedBoundaryOmegaWallFunctionFvPatchScalarField::write ( Ostream& os diff --git a/src/immersedBoundary/immersedBoundaryTurbulence/compressible/wallFunctions/immersedBoundaryOmegaWallFunctions/immersedBoundaryOmegaWallFunctionFvPatchScalarField.H b/src/immersedBoundary/immersedBoundaryTurbulence/compressible/wallFunctions/immersedBoundaryOmegaWallFunctions/immersedBoundaryOmegaWallFunctionFvPatchScalarField.H index 3e8593339..3aab48f9a 100644 --- a/src/immersedBoundary/immersedBoundaryTurbulence/compressible/wallFunctions/immersedBoundaryOmegaWallFunctions/immersedBoundaryOmegaWallFunctionFvPatchScalarField.H +++ b/src/immersedBoundary/immersedBoundaryTurbulence/compressible/wallFunctions/immersedBoundaryOmegaWallFunctions/immersedBoundaryOmegaWallFunctionFvPatchScalarField.H @@ -184,6 +184,9 @@ public: const Pstream::commsTypes = Pstream::blocking ); + //- Manipulate a matrix + virtual void manipulateMatrix(fvScalarMatrix& matrix); + // I-O diff --git a/src/immersedBoundary/immersedBoundaryTurbulence/incompressible/wallFunctions/immersedBoundaryEpsilonWallFunction/immersedBoundaryEpsilonWallFunctionFvPatchScalarField.C b/src/immersedBoundary/immersedBoundaryTurbulence/incompressible/wallFunctions/immersedBoundaryEpsilonWallFunction/immersedBoundaryEpsilonWallFunctionFvPatchScalarField.C index 87833197d..87d2539d1 100644 --- a/src/immersedBoundary/immersedBoundaryTurbulence/incompressible/wallFunctions/immersedBoundaryEpsilonWallFunction/immersedBoundaryEpsilonWallFunctionFvPatchScalarField.C +++ b/src/immersedBoundary/immersedBoundaryTurbulence/incompressible/wallFunctions/immersedBoundaryEpsilonWallFunction/immersedBoundaryEpsilonWallFunctionFvPatchScalarField.C @@ -222,10 +222,6 @@ void immersedBoundaryEpsilonWallFunctionFvPatchScalarField::updateCoeffs() { epsilonWallFunctionFvPatchScalarField::updateCoeffs(); } - - const RASModel& rasModel = db().lookupObject("RASProperties"); - const scalarField& y = rasModel.y()[patch().index()]; - Info<< "Patch y: (" << min(y) << " " << max(y) << ")" << endl; } @@ -254,6 +250,17 @@ void immersedBoundaryEpsilonWallFunctionFvPatchScalarField::evaluate } +void immersedBoundaryEpsilonWallFunctionFvPatchScalarField::manipulateMatrix +( + fvScalarMatrix& matrix +) +{ + setDeadValues(matrix); + + epsilonWallFunctionFvPatchScalarField::manipulateMatrix(matrix); +} + + void immersedBoundaryEpsilonWallFunctionFvPatchScalarField::write ( Ostream& os diff --git a/src/immersedBoundary/immersedBoundaryTurbulence/incompressible/wallFunctions/immersedBoundaryEpsilonWallFunction/immersedBoundaryEpsilonWallFunctionFvPatchScalarField.H b/src/immersedBoundary/immersedBoundaryTurbulence/incompressible/wallFunctions/immersedBoundaryEpsilonWallFunction/immersedBoundaryEpsilonWallFunctionFvPatchScalarField.H index f12d2b17a..12ba2453f 100644 --- a/src/immersedBoundary/immersedBoundaryTurbulence/incompressible/wallFunctions/immersedBoundaryEpsilonWallFunction/immersedBoundaryEpsilonWallFunctionFvPatchScalarField.H +++ b/src/immersedBoundary/immersedBoundaryTurbulence/incompressible/wallFunctions/immersedBoundaryEpsilonWallFunction/immersedBoundaryEpsilonWallFunctionFvPatchScalarField.H @@ -170,6 +170,9 @@ public: const Pstream::commsTypes = Pstream::blocking ); + //- Manipulate a matrix + virtual void manipulateMatrix(fvScalarMatrix& matrix); + // I-O diff --git a/src/immersedBoundary/immersedBoundaryTurbulence/incompressible/wallFunctions/immersedBoundaryKqRWallFunction/immersedBoundaryKqRWallFunctionFvPatchField.C b/src/immersedBoundary/immersedBoundaryTurbulence/incompressible/wallFunctions/immersedBoundaryKqRWallFunction/immersedBoundaryKqRWallFunctionFvPatchField.C index 72c36fe28..5c695b795 100644 --- a/src/immersedBoundary/immersedBoundaryTurbulence/incompressible/wallFunctions/immersedBoundaryKqRWallFunction/immersedBoundaryKqRWallFunctionFvPatchField.C +++ b/src/immersedBoundary/immersedBoundaryTurbulence/incompressible/wallFunctions/immersedBoundaryKqRWallFunction/immersedBoundaryKqRWallFunctionFvPatchField.C @@ -220,6 +220,16 @@ void immersedBoundaryKqRWallFunctionFvPatchField::evaluate } +template +void immersedBoundaryKqRWallFunctionFvPatchField::manipulateMatrix +( + fvMatrix& matrix +) +{ + this->setDeadValues(matrix); +} + + template void immersedBoundaryKqRWallFunctionFvPatchField::write(Ostream& os) const { diff --git a/src/immersedBoundary/immersedBoundaryTurbulence/incompressible/wallFunctions/immersedBoundaryKqRWallFunction/immersedBoundaryKqRWallFunctionFvPatchField.H b/src/immersedBoundary/immersedBoundaryTurbulence/incompressible/wallFunctions/immersedBoundaryKqRWallFunction/immersedBoundaryKqRWallFunctionFvPatchField.H index 49a15108d..7f7e7fb43 100644 --- a/src/immersedBoundary/immersedBoundaryTurbulence/incompressible/wallFunctions/immersedBoundaryKqRWallFunction/immersedBoundaryKqRWallFunctionFvPatchField.H +++ b/src/immersedBoundary/immersedBoundaryTurbulence/incompressible/wallFunctions/immersedBoundaryKqRWallFunction/immersedBoundaryKqRWallFunctionFvPatchField.H @@ -167,6 +167,9 @@ public: const Pstream::commsTypes commsType = Pstream::blocking ); + //- Manipulate a matrix + virtual void manipulateMatrix(fvMatrix& matrix); + // I-O diff --git a/src/immersedBoundary/immersedBoundaryTurbulence/incompressible/wallFunctions/immersedBoundaryOmegaWallFunctions/immersedBoundaryOmegaWallFunctionFvPatchScalarField.C b/src/immersedBoundary/immersedBoundaryTurbulence/incompressible/wallFunctions/immersedBoundaryOmegaWallFunctions/immersedBoundaryOmegaWallFunctionFvPatchScalarField.C index 48953a408..a7d614776 100644 --- a/src/immersedBoundary/immersedBoundaryTurbulence/incompressible/wallFunctions/immersedBoundaryOmegaWallFunctions/immersedBoundaryOmegaWallFunctionFvPatchScalarField.C +++ b/src/immersedBoundary/immersedBoundaryTurbulence/incompressible/wallFunctions/immersedBoundaryOmegaWallFunctions/immersedBoundaryOmegaWallFunctionFvPatchScalarField.C @@ -66,7 +66,7 @@ immersedBoundaryOmegaWallFunctionFvPatchScalarField p, Switch(dict.lookup("setDeadValue")), readScalar(dict.lookup("deadValue")) - ) + ) { this->readPatchType(dict); @@ -249,6 +249,17 @@ void immersedBoundaryOmegaWallFunctionFvPatchScalarField::evaluate } +void immersedBoundaryOmegaWallFunctionFvPatchScalarField::manipulateMatrix +( + fvScalarMatrix& matrix +) +{ + setDeadValues(matrix); + + omegaWallFunctionFvPatchScalarField::manipulateMatrix(matrix); +} + + void immersedBoundaryOmegaWallFunctionFvPatchScalarField::write ( Ostream& os diff --git a/src/immersedBoundary/immersedBoundaryTurbulence/incompressible/wallFunctions/immersedBoundaryOmegaWallFunctions/immersedBoundaryOmegaWallFunctionFvPatchScalarField.H b/src/immersedBoundary/immersedBoundaryTurbulence/incompressible/wallFunctions/immersedBoundaryOmegaWallFunctions/immersedBoundaryOmegaWallFunctionFvPatchScalarField.H index f39b415b1..515b31b81 100644 --- a/src/immersedBoundary/immersedBoundaryTurbulence/incompressible/wallFunctions/immersedBoundaryOmegaWallFunctions/immersedBoundaryOmegaWallFunctionFvPatchScalarField.H +++ b/src/immersedBoundary/immersedBoundaryTurbulence/incompressible/wallFunctions/immersedBoundaryOmegaWallFunctions/immersedBoundaryOmegaWallFunctionFvPatchScalarField.H @@ -184,6 +184,9 @@ public: const Pstream::commsTypes = Pstream::blocking ); + //- Manipulate a matrix + virtual void manipulateMatrix(fvScalarMatrix& matrix); + // I-O