diff --git a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.C b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.C index f3037d7e1be31b60ee4715220221038a212c8051..e9b5e9aee1309414fcb261c3ec7505403195ad33 100644 --- a/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.C +++ b/src/OpenFOAM/fields/GeometricFields/GeometricField/GeometricField.C @@ -1092,6 +1092,10 @@ void Foam::GeometricField<Type, PatchField, GeoMesh>::relax(const scalar alpha) << "Relaxing" << nl << this->info() << " by " << alpha << endl; operator==(prevIter() + alpha*(*this - prevIter())); + + // Make sure any e.g. jump-cyclic are updated. Note: unfortunately also + // triggers e.g. cyclic interpolation. + this->correctLocalBoundaryConditions(); } diff --git a/src/finiteArea/fields/faPatchFields/constraint/processor/processorFaPatchField.H b/src/finiteArea/fields/faPatchFields/constraint/processor/processorFaPatchField.H index e50d5a2a9184834334522c1762c14477baca4426..65ebe8a830f957e0f5864a0c2082ee100fbae4aa 100644 --- a/src/finiteArea/fields/faPatchFields/constraint/processor/processorFaPatchField.H +++ b/src/finiteArea/fields/faPatchFields/constraint/processor/processorFaPatchField.H @@ -175,7 +175,7 @@ public: virtual bool ready() const; //- Return neighbour field given internal field - tmp<Field<Type>> patchNeighbourField() const; + virtual tmp<Field<Type>> patchNeighbourField() const; // Evaluation diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/cyclic/cyclicFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/constraint/cyclic/cyclicFvPatchField.H index b8199cb28eccaf38815d89da8d71d9770a2b94fb..84e8dcb6f9f6ee9a98951101206f3460150bdae4 100644 --- a/src/finiteVolume/fields/fvPatchFields/constraint/cyclic/cyclicFvPatchField.H +++ b/src/finiteVolume/fields/fvPatchFields/constraint/cyclic/cyclicFvPatchField.H @@ -170,7 +170,7 @@ public: // Evaluation functions //- Return neighbour coupled internal cell data - tmp<Field<Type>> patchNeighbourField() const; + virtual tmp<Field<Type>> patchNeighbourField() const; //- Return reference to neighbour patchField const cyclicFvPatchField<Type>& neighbourPatchField() const; diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclic/jumpCyclicFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclic/jumpCyclicFvPatchField.H index 199215c62823a7def4e94a74b6a8a655219fdf22..5d46b8f67fbbc74854cfcd21cbf578edfd907f78 100644 --- a/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclic/jumpCyclicFvPatchField.H +++ b/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclic/jumpCyclicFvPatchField.H @@ -128,7 +128,7 @@ public: // Evaluation functions //- Return neighbour coupled given internal cell data - tmp<Field<Type>> patchNeighbourField() const; + virtual tmp<Field<Type>> patchNeighbourField() const; //- Update result field based on interface functionality virtual void updateInterfaceMatrix diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclicAMI/jumpCyclicAMIFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclicAMI/jumpCyclicAMIFvPatchField.H index 4787e0ef0b08bc0a633b0c8a06f33ef3f0db42d2..236514fd042c75e69001492d32c304f1084c5eaf 100644 --- a/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclicAMI/jumpCyclicAMIFvPatchField.H +++ b/src/finiteVolume/fields/fvPatchFields/constraint/jumpCyclicAMI/jumpCyclicAMIFvPatchField.H @@ -137,7 +137,7 @@ public: virtual void evaluate(const Pstream::commsTypes commsType); //- Initialise interface functionality - void initInterfaceMatrixUpdate + virtual void initInterfaceMatrixUpdate ( solveScalarField& result, const bool add,