From 6c86384ac7d8d37db4dd5a1ea81d31f7b64faa75 Mon Sep 17 00:00:00 2001 From: Mark Olesen <Mark.Olesen@Germany> Date: Mon, 14 Jun 2010 13:52:39 +0200 Subject: [PATCH] ENH: use UList instead of Field for fvMatrix::setValues() --- .../fvMatrices/fvMatrix/fvMatrix.C | 23 +++++++++---------- .../fvMatrices/fvMatrix/fvMatrix.H | 10 ++++---- 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C index ea181f77619..c8bab409504 100644 --- a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C +++ b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C @@ -393,13 +393,11 @@ Foam::fvMatrix<Type>::~fvMatrix() // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -// Set solution in given cells and eliminate corresponding -// equations from the matrix template<class Type> void Foam::fvMatrix<Type>::setValues ( - const labelList& cellLabels, - const Field<Type>& values + const unallocLabelList& cellLabels, + const UList<Type>& values ) { const fvMesh& mesh = psi_.mesh(); @@ -417,10 +415,11 @@ void Foam::fvMatrix<Type>::setValues forAll(cellLabels, i) { - label celli = cellLabels[i]; + const label celli = cellLabels[i]; + const Type& value = values[i]; - psi[celli] = values[i]; - source_[celli] = values[i]*Diag[celli]; + psi[celli] = value; + source_[celli] = value*Diag[celli]; if (symmetric() || asymmetric()) { @@ -428,7 +427,7 @@ void Foam::fvMatrix<Type>::setValues forAll(c, j) { - label facei = c[j]; + const label facei = c[j]; if (mesh.isInternalFace(facei)) { @@ -436,11 +435,11 @@ void Foam::fvMatrix<Type>::setValues { if (celli == own[facei]) { - source_[nei[facei]] -= upper()[facei]*values[i]; + source_[nei[facei]] -= upper()[facei]*value; } else { - source_[own[facei]] -= upper()[facei]*values[i]; + source_[own[facei]] -= upper()[facei]*value; } upper()[facei] = 0.0; @@ -449,11 +448,11 @@ void Foam::fvMatrix<Type>::setValues { if (celli == own[facei]) { - source_[nei[facei]] -= lower()[facei]*values[i]; + source_[nei[facei]] -= lower()[facei]*value; } else { - source_[own[facei]] -= upper()[facei]*values[i]; + source_[own[facei]] -= upper()[facei]*value; } upper()[facei] = 0.0; diff --git a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.H b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.H index 748d713a354..bda7b7feffa 100644 --- a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.H +++ b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -309,12 +309,12 @@ public: // Operations - //- Set solution in given cells and eliminate corresponding - // equations from the matrix + //- Set solution in given cells to the specified values + // and eliminate the corresponding equations from the matrix. void setValues ( - const labelList& cells, - const Field<Type>& values + const unallocLabelList& cells, + const UList<Type>& values ); //- Set reference level for solution -- GitLab