From ded4f0b2a4be7a2e1e7433360f637845b69587d2 Mon Sep 17 00:00:00 2001 From: andy Date: Thu, 30 Oct 2008 18:49:14 +0000 Subject: [PATCH] added option to set reference by point --- .../general/findRefCell/findRefCell.C | 59 ++++++++++++++++++- .../general/findRefCell/findRefCell.H | 3 +- .../fvMatrices/fvMatrix/fvMatrix.C | 2 +- 3 files changed, 59 insertions(+), 5 deletions(-) diff --git a/src/finiteVolume/cfdTools/general/findRefCell/findRefCell.C b/src/finiteVolume/cfdTools/general/findRefCell/findRefCell.C index 00ce11355a..321eeba6a8 100644 --- a/src/finiteVolume/cfdTools/general/findRefCell/findRefCell.C +++ b/src/finiteVolume/cfdTools/general/findRefCell/findRefCell.C @@ -33,15 +33,68 @@ void Foam::setRefCell const volScalarField& field, const dictionary& dict, label& refCelli, - scalar& refValue + scalar& refValue, + bool forceReference ) { - if (field.needReference()) + if (field.needReference() || forceReference) { word refCellName = field.name() + "RefCell"; + word refPointName = field.name() + "RefPoint"; + word refValueName = field.name() + "RefValue"; - refCelli = readLabel(dict.lookup(refCellName)); + if (dict.found(refCellName)) + { + if (Pstream::master()) + { + refCelli = readLabel(dict.lookup(refCellName)); + } + else + { + refCelli = -1; + } + } + else if (dict.found(refPointName)) + { + point refPointi(dict.lookup(refPointName)); + refCelli = field.mesh().findCell(refPointi); + label hasRef = (refCelli >= 0 ? 1 : 0); + label sumHasRef = returnReduce