ENH: fvMatrix::setReferences() single value variant

This commit is contained in:
Mark Olesen
2018-03-02 13:27:34 +01:00
parent 330b113abc
commit ffd7b00ad5
4 changed files with 37 additions and 5 deletions

View File

@ -101,7 +101,7 @@ if (mesh.changing())
pcorrEqn.setReferences
(
validCells,
scalarList(validCells.size(), 0.0),
scalar(0.0),
true
);
}

View File

@ -110,7 +110,7 @@
pcorrEqn.setReferences
(
validCells,
scalarList(validCells.size(), 0.0),
scalar(0.0),
true
);
}

View File

@ -522,7 +522,32 @@ void Foam::fvMatrix<Type>::setReference
template<class Type>
void Foam::fvMatrix<Type>::setReferences
(
const labelList& cellLabels,
const labelUList& cellLabels,
const Type& value,
const bool forceReference
)
{
const bool needRef = (forceReference || psi_.needReference());
if (needRef)
{
forAll(cellLabels, celli)
{
const label cellId = cellLabels[celli];
if (cellId >= 0)
{
source()[cellId] += diag()[cellId]*value;
diag()[cellId] += diag()[cellId];
}
}
}
}
template<class Type>
void Foam::fvMatrix<Type>::setReferences
(
const labelUList& cellLabels,
const UList<Type>& values,
const bool forceReference
)
@ -544,7 +569,6 @@ void Foam::fvMatrix<Type>::setReferences
}
template<class Type>
void Foam::fvMatrix<Type>::relax(const scalar alpha)
{

View File

@ -371,7 +371,15 @@ public:
//- Set references level for solution
void setReferences
(
const labelList& cells,
const labelUList& cells,
const Type& value,
const bool forceReference = false
);
//- Set references level for solution
void setReferences
(
const labelUList& cells,
const UList<Type>& values,
const bool forceReference = false
);