Merge branch 'hotfix/gcc47_HR' into nextRelease
Conflicts: src/OpenFOAM/fields/PointPatchFields/constraint/processor/ProcessorPointPatchField.C src/OpenFOAM/fields/PointPatchFields/derived/global/GlobalPointPatchField.C
This commit is contained in:
commit
031d180f63
46 changed files with 295 additions and 507 deletions
24
ThirdParty/rpmBuild/SOURCES/paraview-gcc47.patch
vendored
Normal file
24
ThirdParty/rpmBuild/SOURCES/paraview-gcc47.patch
vendored
Normal file
|
@ -0,0 +1,24 @@
|
|||
diff -up ParaView-3.12.0/Qt/Core/pqServerManagerSelectionModel.h.gcc47 ParaView-3.12.0/Qt/Core/pqServerManagerSelectionModel.h
|
||||
--- ParaView-3.12.0/Qt/Core/pqServerManagerSelectionModel.h.gcc47 2012-01-27 12:12:55.623530977 -0700
|
||||
+++ ParaView-3.12.0/Qt/Core/pqServerManagerSelectionModel.h 2012-01-30 15:26:33.107335300 -0700
|
||||
@@ -72,7 +72,7 @@ public:
|
||||
Clear = QItemSelectionModel::Clear,
|
||||
Select = QItemSelectionModel::Select,
|
||||
Deselect = QItemSelectionModel::Deselect,
|
||||
- ClearAndSelect = Clear | Select
|
||||
+ ClearAndSelect = static_cast<int>(Clear) | static_cast<int>(Select)
|
||||
};
|
||||
Q_DECLARE_FLAGS(SelectionFlags, SelectionFlag)
|
||||
|
||||
diff -up ParaView-3.12.0/Utilities/Xdmf2/vtk/Testing/Cxx/XdmfTestVTKIO.cxx.gcc47 ParaView-3.12.0/Utilities/Xdmf2/vtk/Testing/Cxx/XdmfTestVTKIO.cxx
|
||||
--- ParaView-3.12.0/Utilities/Xdmf2/vtk/Testing/Cxx/XdmfTestVTKIO.cxx.gcc47 2011-11-08 13:56:29.000000000 -0700
|
||||
+++ ParaView-3.12.0/Utilities/Xdmf2/vtk/Testing/Cxx/XdmfTestVTKIO.cxx 2012-01-27 09:30:00.088542888 -0700
|
||||
@@ -37,6 +37,8 @@
|
||||
#include "vtkTimeSourceExample.h"
|
||||
#include "vtkXdmfReader.h"
|
||||
|
||||
+#include <unistd.h>
|
||||
+
|
||||
#define NUMTESTS 20
|
||||
|
||||
const char testobject[NUMTESTS][40] = {
|
|
@ -78,6 +78,7 @@ Source: %url/%{name}-%{version}.tar.gz
|
|||
Prefix: %{_prefix}
|
||||
Group: Development/Tools
|
||||
Patch0: ParaView-3.12.0.patch_darwin
|
||||
Patch1: paraview-gcc47.patch
|
||||
|
||||
%define _installPrefix %{_prefix}/packages/%{name}-%{version}/platforms/%{_WM_OPTIONS}
|
||||
|
||||
|
@ -109,6 +110,8 @@ Patch0: ParaView-3.12.0.patch_darwin
|
|||
%patch0 -p1
|
||||
%endif
|
||||
|
||||
%patch1 -p1
|
||||
|
||||
%build
|
||||
#
|
||||
# set CMake cache variables
|
||||
|
|
|
@ -70,7 +70,7 @@ void HashPtrTable<T, Key, Hash>::read(Istream& is, const INew& inewt)
|
|||
{
|
||||
Key key;
|
||||
is >> key;
|
||||
insert(key, inewt(key, is).ptr());
|
||||
this->insert(key, inewt(key, is).ptr());
|
||||
|
||||
is.fatalCheck
|
||||
(
|
||||
|
@ -117,7 +117,7 @@ void HashPtrTable<T, Key, Hash>::read(Istream& is, const INew& inewt)
|
|||
is.putBack(lastToken);
|
||||
Key key;
|
||||
is >> key;
|
||||
insert(key, inewt(key, is).ptr());
|
||||
this->insert(key, inewt(key, is).ptr());
|
||||
|
||||
is.fatalCheck
|
||||
(
|
||||
|
|
|
@ -48,7 +48,7 @@ Foam::HashSet<Key, Hash>::HashSet
|
|||
++cit
|
||||
)
|
||||
{
|
||||
insert(cit.key());
|
||||
this->insert(cit.key());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -58,7 +58,7 @@ Foam::HashSet<Key, Hash>::HashSet
|
|||
template<class Key, class Hash>
|
||||
inline bool Foam::HashSet<Key, Hash>::operator[](const Key& key) const
|
||||
{
|
||||
return found(key);
|
||||
return this->found(key);
|
||||
}
|
||||
|
||||
|
||||
|
@ -77,7 +77,7 @@ bool Foam::HashSet<Key, Hash>::operator==(const HashSet<Key, Hash>& rhs) const
|
|||
// Are all rhs elements in lhs?
|
||||
for (const_iterator iter = rhs.cbegin(); iter != rhs.cend(); ++iter)
|
||||
{
|
||||
if (!found(iter.key()))
|
||||
if (!this->found(iter.key()))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
@ -90,7 +90,7 @@ bool Foam::HashSet<Key, Hash>::operator==(const HashSet<Key, Hash>& rhs) const
|
|||
template<class Key, class Hash>
|
||||
bool Foam::HashSet<Key, Hash>::operator!=(const HashSet<Key, Hash>& rhs) const
|
||||
{
|
||||
return !(operator==(rhs));
|
||||
return !(this->operator==(rhs));
|
||||
}
|
||||
|
||||
|
||||
|
@ -100,7 +100,7 @@ void Foam::HashSet<Key, Hash>::operator|=(const HashSet<Key, Hash>& rhs)
|
|||
// Add rhs elements into lhs
|
||||
for (const_iterator iter = rhs.cbegin(); iter != rhs.cend(); ++iter)
|
||||
{
|
||||
insert(iter.key());
|
||||
this->insert(iter.key());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -113,7 +113,7 @@ void Foam::HashSet<Key, Hash>::operator&=(const HashSet<Key, Hash>& rhs)
|
|||
{
|
||||
if (!rhs.found(iter.key()))
|
||||
{
|
||||
erase(iter);
|
||||
this->erase(iter);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -127,11 +127,11 @@ void Foam::HashSet<Key, Hash>::operator^=(const HashSet<Key, Hash>& rhs)
|
|||
{
|
||||
if (found(iter.key()))
|
||||
{
|
||||
erase(iter.key());
|
||||
this->erase(iter.key());
|
||||
}
|
||||
else
|
||||
{
|
||||
insert(iter.key());
|
||||
this->insert(iter.key());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -144,7 +144,7 @@ void Foam::HashSet<Key, Hash>::operator-=(const HashSet<Key, Hash>& rhs)
|
|||
// Remove rhs elements from lhs
|
||||
for (const_iterator iter = rhs.cbegin(); iter != rhs.cend(); ++iter)
|
||||
{
|
||||
erase(iter.key());
|
||||
this->erase(iter.key());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ Foam::ILList<LListBase, T>::ILList(const ILList<LListBase, T>& lst)
|
|||
++iter
|
||||
)
|
||||
{
|
||||
append(iter().clone().ptr());
|
||||
this->append(iter().clone().ptr());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -146,7 +146,7 @@ void Foam::ILList<LListBase, T>::operator=(const ILList<LListBase, T>& lst)
|
|||
++iter
|
||||
)
|
||||
{
|
||||
append(iter().clone().ptr());
|
||||
this->append(iter().clone().ptr());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -58,7 +58,7 @@ void Foam::ILList<LListBase, T>::read(Istream& is, const INew& iNew)
|
|||
{
|
||||
for (label i=0; i<s; i++)
|
||||
{
|
||||
append(iNew(is).ptr());
|
||||
this->append(iNew(is).ptr());
|
||||
|
||||
is.fatalCheck
|
||||
(
|
||||
|
@ -70,7 +70,7 @@ void Foam::ILList<LListBase, T>::read(Istream& is, const INew& iNew)
|
|||
else
|
||||
{
|
||||
T* tPtr = iNew(is).ptr();
|
||||
append(tPtr);
|
||||
this->append(tPtr);
|
||||
|
||||
is.fatalCheck
|
||||
(
|
||||
|
@ -80,7 +80,7 @@ void Foam::ILList<LListBase, T>::read(Istream& is, const INew& iNew)
|
|||
|
||||
for (label i=1; i<s; i++)
|
||||
{
|
||||
append(new T(*tPtr));
|
||||
this->append(new T(*tPtr));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -112,7 +112,7 @@ void Foam::ILList<LListBase, T>::read(Istream& is, const INew& iNew)
|
|||
)
|
||||
{
|
||||
is.putBack(lastToken);
|
||||
append(iNew(is).ptr());
|
||||
this->append(iNew(is).ptr());
|
||||
|
||||
is >> lastToken;
|
||||
is.fatalCheck("operator>>(Istream&, ILList<LListBase, T>&)");
|
||||
|
|
|
@ -61,7 +61,7 @@ void Foam::LPtrList<LListBase, T>::read(Istream& is, const INew& iNew)
|
|||
{
|
||||
for (label i=0; i<s; i++)
|
||||
{
|
||||
append(iNew(is).ptr());
|
||||
this->append(iNew(is).ptr());
|
||||
|
||||
is.fatalCheck
|
||||
(
|
||||
|
@ -73,7 +73,7 @@ void Foam::LPtrList<LListBase, T>::read(Istream& is, const INew& iNew)
|
|||
else
|
||||
{
|
||||
T* tPtr = iNew(is).ptr();
|
||||
append(tPtr);
|
||||
this->append(tPtr);
|
||||
|
||||
is.fatalCheck
|
||||
(
|
||||
|
@ -83,7 +83,7 @@ void Foam::LPtrList<LListBase, T>::read(Istream& is, const INew& iNew)
|
|||
|
||||
for (label i=1; i<s; i++)
|
||||
{
|
||||
append(tPtr->clone().ptr());
|
||||
this->append(tPtr->clone().ptr());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -115,7 +115,7 @@ void Foam::LPtrList<LListBase, T>::read(Istream& is, const INew& iNew)
|
|||
)
|
||||
{
|
||||
is.putBack(lastToken);
|
||||
append(iNew(is).ptr());
|
||||
this->append(iNew(is).ptr());
|
||||
|
||||
is >> lastToken;
|
||||
is.fatalCheck
|
||||
|
@ -145,14 +145,14 @@ template<class LListBase, class T>
|
|||
template<class INew>
|
||||
Foam::LPtrList<LListBase, T>::LPtrList(Istream& is, const INew& iNew)
|
||||
{
|
||||
read(is, iNew);
|
||||
this->read(is, iNew);
|
||||
}
|
||||
|
||||
|
||||
template<class LListBase, class T>
|
||||
Foam::LPtrList<LListBase, T>::LPtrList(Istream& is)
|
||||
{
|
||||
read(is, INew<T>());
|
||||
this->read(is, INew<T>());
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -448,7 +448,7 @@ void DimensionedField<Type, GeoMesh>::operator=
|
|||
checkField(*this, df, "=");
|
||||
|
||||
dimensions_ = df.dimensions();
|
||||
transfer(const_cast<DimensionedField<Type, GeoMesh>&>(df));
|
||||
this->transfer(const_cast<DimensionedField<Type, GeoMesh>&>(df));
|
||||
tdf.clear();
|
||||
}
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ void DimensionedField<Type, GeoMesh>::readField
|
|||
dimensions_.reset(dimensionSet(fieldDict.lookup("dimensions")));
|
||||
|
||||
Field<Type> f(fieldDictEntry, fieldDict, GeoMesh::size(mesh_));
|
||||
transfer(f);
|
||||
this->transfer(f);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -53,7 +53,7 @@ GeometricBoundaryField
|
|||
|
||||
forAll(bmesh_, patchi)
|
||||
{
|
||||
set
|
||||
this->set
|
||||
(
|
||||
patchi,
|
||||
PatchField<Type>::New
|
||||
|
@ -105,7 +105,7 @@ GeometricBoundaryField
|
|||
|
||||
forAll(bmesh_, patchi)
|
||||
{
|
||||
set
|
||||
this->set
|
||||
(
|
||||
patchi,
|
||||
PatchField<Type>::New
|
||||
|
@ -142,7 +142,7 @@ GeometricBoundaryField
|
|||
|
||||
forAll(bmesh_, patchi)
|
||||
{
|
||||
set(patchi, ptfl[patchi].clone(field));
|
||||
this->set(patchi, ptfl[patchi].clone(field));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -170,7 +170,7 @@ GeometricBoundaryField
|
|||
|
||||
forAll(bmesh_, patchi)
|
||||
{
|
||||
set(patchi, btf[patchi].clone(field));
|
||||
this->set(patchi, btf[patchi].clone(field));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -227,7 +227,7 @@ GeometricBoundaryField
|
|||
{
|
||||
if (bmesh_[patchi].type() != emptyPolyPatch::typeName)
|
||||
{
|
||||
set
|
||||
this->set
|
||||
(
|
||||
patchi,
|
||||
PatchField<Type>::New
|
||||
|
@ -240,7 +240,7 @@ GeometricBoundaryField
|
|||
}
|
||||
else
|
||||
{
|
||||
set
|
||||
this->set
|
||||
(
|
||||
patchi,
|
||||
PatchField<Type>::New
|
||||
|
|
|
@ -48,8 +48,7 @@ template
|
|||
class Type
|
||||
>
|
||||
void ProcessorPointPatchField
|
||||
<PatchField, Mesh, PointPatch, ProcessorPointPatch, MatrixType, Type>::
|
||||
resizeBuf
|
||||
<PatchField, Mesh, PointPatch, ProcessorPointPatch, MatrixType, Type>::resizeBuf
|
||||
(
|
||||
List<char>& buf,
|
||||
const label size
|
||||
|
@ -234,7 +233,7 @@ initAddFieldTempl
|
|||
const Field<Type2>& pField
|
||||
) const
|
||||
{
|
||||
this->sendField(patchInternalField(pField), commsType);
|
||||
this->sendField(this->patchInternalField(pField), commsType);
|
||||
}
|
||||
|
||||
|
||||
|
@ -512,7 +511,7 @@ evaluate
|
|||
}
|
||||
|
||||
// Average over two sides
|
||||
tpn = 0.5*(patchInternalField(this->internalField()) + tpn);
|
||||
tpn = 0.5*(this->patchInternalField(this->internalField()) + tpn);
|
||||
|
||||
// Get internal field to insert values into
|
||||
Field<Type>& iF = const_cast<Field<Type>&>(this->internalField());
|
||||
|
@ -962,8 +961,7 @@ initInterfaceMatrixUpdate
|
|||
const lduMatrix& m,
|
||||
const scalarField& coeffs,
|
||||
const direction,
|
||||
const Pstream::commsTypes commsType,
|
||||
const bool switchToLhs
|
||||
const Pstream::commsTypes commsType
|
||||
) const
|
||||
{
|
||||
tmp<scalarField> tlocalMult(new scalarField(this->size(), 0));
|
||||
|
@ -987,191 +985,95 @@ initInterfaceMatrixUpdate
|
|||
// use the counter.
|
||||
label coeffI = 0;
|
||||
|
||||
if (switchToLhs)
|
||||
// Owner side
|
||||
// ~~~~~~~~~~
|
||||
{
|
||||
// Owner side
|
||||
// ~~~~~~~~~~
|
||||
{
|
||||
const labelList& cutOwn = procPatch_.cutEdgeOwnerIndices();
|
||||
const labelList& cutOwnStart = procPatch_.cutEdgeOwnerStart();
|
||||
|
||||
forAll (mp, pointI)
|
||||
{
|
||||
label ownIndex = cutOwnStart[pointI];
|
||||
label endOwn = cutOwnStart[pointI + 1];
|
||||
|
||||
for (; ownIndex < endOwn; ownIndex++)
|
||||
{
|
||||
localMult[pointI] +=
|
||||
coeffs[coeffI]*psiInternal[U[cutOwn[ownIndex]]];
|
||||
|
||||
// Multiply the internal side as well using the cut mask
|
||||
result[U[cutOwn[ownIndex]]] -=
|
||||
cutMask[coeffI]*coeffs[coeffI]*psiInternal[mp[pointI]];
|
||||
|
||||
coeffI++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Neighbour side
|
||||
// ~~~~~~~~~~~~~~
|
||||
{
|
||||
const labelList& cutNei = procPatch_.cutEdgeNeighbourIndices();
|
||||
const labelList& cutNeiStart = procPatch_.cutEdgeNeighbourStart();
|
||||
|
||||
forAll (mp, pointI)
|
||||
{
|
||||
label neiIndex = cutNeiStart[pointI];
|
||||
label endNei = cutNeiStart[pointI + 1];
|
||||
|
||||
for (; neiIndex < endNei; neiIndex++)
|
||||
{
|
||||
localMult[pointI] +=
|
||||
coeffs[coeffI]*psiInternal[L[cutNei[neiIndex]]];
|
||||
|
||||
// Multiply the internal side as well using the cut mask
|
||||
result[L[cutNei[neiIndex]]] -=
|
||||
cutMask[coeffI]*coeffs[coeffI]*psiInternal[mp[pointI]];
|
||||
|
||||
coeffI++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Doubly cut coefficients
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
// There exists a possibility of having an internal edge for a
|
||||
// point on the processor patch which is in fact connected to
|
||||
// another point of the same patch. This particular nastiness
|
||||
// introduces a deformation in the solution because the edge is
|
||||
// either multiplied twice or not at all. For this purpose, the
|
||||
// offending edges need to be separated out and multiplied
|
||||
// appropriately. This will only happen for cell tetrahedral
|
||||
// decomposition and is generally nasty.
|
||||
// No need for cut mask here
|
||||
{
|
||||
const labelList& doubleCut = procPatch_.doubleCutEdgeIndices();
|
||||
|
||||
const labelList& doubleCutOwner = procPatch_.doubleCutOwner();
|
||||
const labelList& doubleCutNeighbour =
|
||||
procPatch_.doubleCutNeighbour();
|
||||
|
||||
forAll (doubleCut, edgeI)
|
||||
{
|
||||
// Owner side
|
||||
localMult[doubleCutOwner[edgeI]] +=
|
||||
coeffs[coeffI]*psiInternal[U[doubleCut[edgeI]]];
|
||||
coeffI++;
|
||||
|
||||
// Neighbour side
|
||||
localMult[doubleCutNeighbour[edgeI]] +=
|
||||
coeffs[coeffI]*psiInternal[L[doubleCut[edgeI]]];
|
||||
coeffI++;
|
||||
}
|
||||
}
|
||||
|
||||
// Add the local multiplication to this side as well
|
||||
const labelList& cutOwn = procPatch_.cutEdgeOwnerIndices();
|
||||
const labelList& cutOwnStart = procPatch_.cutEdgeOwnerStart();
|
||||
|
||||
forAll (mp, pointI)
|
||||
{
|
||||
result[mp[pointI]] -= localMult[pointI];
|
||||
label ownIndex = cutOwnStart[pointI];
|
||||
label endOwn = cutOwnStart[pointI + 1];
|
||||
|
||||
for (; ownIndex < endOwn; ownIndex++)
|
||||
{
|
||||
localMult[pointI] +=
|
||||
coeffs[coeffI]*psiInternal[U[cutOwn[ownIndex]]];
|
||||
|
||||
// Multiply the internal side as well using the cut mask
|
||||
result[U[cutOwn[ownIndex]]] +=
|
||||
cutMask[coeffI]*coeffs[coeffI]*psiInternal[mp[pointI]];
|
||||
|
||||
coeffI++;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
// Neighbour side
|
||||
// ~~~~~~~~~~~~~~
|
||||
{
|
||||
// Owner side
|
||||
// ~~~~~~~~~~
|
||||
{
|
||||
const labelList& cutOwn = procPatch_.cutEdgeOwnerIndices();
|
||||
const labelList& cutOwnStart = procPatch_.cutEdgeOwnerStart();
|
||||
|
||||
forAll (mp, pointI)
|
||||
{
|
||||
label ownIndex = cutOwnStart[pointI];
|
||||
label endOwn = cutOwnStart[pointI + 1];
|
||||
|
||||
for (; ownIndex < endOwn; ownIndex++)
|
||||
{
|
||||
localMult[pointI] +=
|
||||
coeffs[coeffI]*psiInternal[U[cutOwn[ownIndex]]];
|
||||
|
||||
// Multiply the internal side as well using the cut mask
|
||||
result[U[cutOwn[ownIndex]]] +=
|
||||
cutMask[coeffI]*coeffs[coeffI]*psiInternal[mp[pointI]];
|
||||
|
||||
coeffI++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Neighbour side
|
||||
// ~~~~~~~~~~~~~~
|
||||
{
|
||||
const labelList& cutNei = procPatch_.cutEdgeNeighbourIndices();
|
||||
const labelList& cutNeiStart = procPatch_.cutEdgeNeighbourStart();
|
||||
|
||||
forAll (mp, pointI)
|
||||
{
|
||||
label neiIndex = cutNeiStart[pointI];
|
||||
label endNei = cutNeiStart[pointI + 1];
|
||||
|
||||
for (; neiIndex < endNei; neiIndex++)
|
||||
{
|
||||
localMult[pointI] +=
|
||||
coeffs[coeffI]*psiInternal[L[cutNei[neiIndex]]];
|
||||
|
||||
// Multiply the internal side as well using the cut mask
|
||||
result[L[cutNei[neiIndex]]] +=
|
||||
cutMask[coeffI]*coeffs[coeffI]*psiInternal[mp[pointI]];
|
||||
|
||||
coeffI++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Doubly cut coefficients
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
// There exists a possibility of having an internal edge for a
|
||||
// point on the processor patch which is in fact connected to
|
||||
// another point of the same patch. This particular nastiness
|
||||
// introduces a deformation in the solution because the edge is
|
||||
// either multiplied twice or not at all. For this purpose, the
|
||||
// offending edges need to be separated out and multiplied
|
||||
// appropriately. This will only happen for cell tetrahedral
|
||||
// decomposition and is generally nasty.
|
||||
// No need for cut mask here
|
||||
{
|
||||
const labelList& doubleCut = procPatch_.doubleCutEdgeIndices();
|
||||
|
||||
const labelList& doubleCutOwner = procPatch_.doubleCutOwner();
|
||||
const labelList& doubleCutNeighbour =
|
||||
procPatch_.doubleCutNeighbour();
|
||||
|
||||
forAll (doubleCut, edgeI)
|
||||
{
|
||||
// Owner side
|
||||
localMult[doubleCutOwner[edgeI]] +=
|
||||
coeffs[coeffI]*psiInternal[U[doubleCut[edgeI]]];
|
||||
coeffI++;
|
||||
|
||||
// Neighbour side
|
||||
localMult[doubleCutNeighbour[edgeI]] +=
|
||||
coeffs[coeffI]*psiInternal[L[doubleCut[edgeI]]];
|
||||
coeffI++;
|
||||
}
|
||||
}
|
||||
|
||||
// Add the local multiplication to this side as well
|
||||
const labelList& cutNei = procPatch_.cutEdgeNeighbourIndices();
|
||||
const labelList& cutNeiStart = procPatch_.cutEdgeNeighbourStart();
|
||||
|
||||
forAll (mp, pointI)
|
||||
{
|
||||
result[mp[pointI]] += localMult[pointI];
|
||||
label neiIndex = cutNeiStart[pointI];
|
||||
label endNei = cutNeiStart[pointI + 1];
|
||||
|
||||
for (; neiIndex < endNei; neiIndex++)
|
||||
{
|
||||
localMult[pointI] +=
|
||||
coeffs[coeffI]*psiInternal[L[cutNei[neiIndex]]];
|
||||
|
||||
// Multiply the internal side as well using the cut mask
|
||||
result[L[cutNei[neiIndex]]] +=
|
||||
cutMask[coeffI]*coeffs[coeffI]*psiInternal[mp[pointI]];
|
||||
|
||||
coeffI++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Doubly cut coefficients
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
// There exists a possibility of having an internal edge for a
|
||||
// point on the processor patch which is in fact connected to
|
||||
// another point of the same patch. This particular nastiness
|
||||
// introduces a deformation in the solution because the edge is
|
||||
// either multiplied twice or not at all. For this purpose, the
|
||||
// offending edges need to be separated out and multiplied
|
||||
// appropriately. This will only happen for cell tetrahedral
|
||||
// decomposition and is generally nasty.
|
||||
// No need for cut mask here
|
||||
{
|
||||
const labelList& doubleCut = procPatch_.doubleCutEdgeIndices();
|
||||
|
||||
const labelList& doubleCutOwner = procPatch_.doubleCutOwner();
|
||||
const labelList& doubleCutNeighbour = procPatch_.doubleCutNeighbour();
|
||||
|
||||
forAll (doubleCut, edgeI)
|
||||
{
|
||||
// Owner side
|
||||
localMult[doubleCutOwner[edgeI]] +=
|
||||
coeffs[coeffI]*psiInternal[U[doubleCut[edgeI]]];
|
||||
coeffI++;
|
||||
|
||||
// Neighbour side
|
||||
localMult[doubleCutNeighbour[edgeI]] +=
|
||||
coeffs[coeffI]*psiInternal[L[doubleCut[edgeI]]];
|
||||
coeffI++;
|
||||
}
|
||||
}
|
||||
|
||||
// Add the local multiplication to this side as well
|
||||
|
||||
forAll (mp, pointI)
|
||||
{
|
||||
result[mp[pointI]] += localMult[pointI];
|
||||
}
|
||||
|
||||
// Send the localMult
|
||||
sendField(tlocalMult, commsType);
|
||||
}
|
||||
|
@ -1197,13 +1099,9 @@ updateInterfaceMatrix
|
|||
const lduMatrix&,
|
||||
const scalarField&,
|
||||
const direction,
|
||||
const Pstream::commsTypes commsType,
|
||||
const bool switchToLhs
|
||||
const Pstream::commsTypes commsType
|
||||
) const
|
||||
{
|
||||
// Switch to lhs handled in init
|
||||
// HJ, 22/May/2013
|
||||
|
||||
// Get the neighbour side multiplication
|
||||
tmp<scalarField> tneiMult = receivePointField<scalar>(commsType);
|
||||
this->addToInternalField(result, tneiMult());
|
||||
|
|
|
@ -247,7 +247,7 @@ void GlobalPointPatchField
|
|||
{
|
||||
// Set the values from the global sum
|
||||
tmp<Field<Type2> > trpf =
|
||||
this->reduceExtractPoint<Type2>(patchInternalField(pField));
|
||||
reduceExtractPoint<Type2>(this->patchInternalField(pField));
|
||||
|
||||
Field<Type2>& rpf = trpf();
|
||||
|
||||
|
@ -1024,8 +1024,7 @@ void GlobalPointPatchField
|
|||
const lduMatrix& m,
|
||||
const scalarField& coeffs,
|
||||
const direction,
|
||||
const Pstream::commsTypes commsType,
|
||||
const bool switchToLhs
|
||||
const Pstream::commsTypes commsType
|
||||
) const
|
||||
{
|
||||
tmp<scalarField> tlocalMult(new scalarField(this->size(), 0));
|
||||
|
@ -1048,261 +1047,125 @@ void GlobalPointPatchField
|
|||
label coeffI = 0;
|
||||
scalarField sumOffDiag(this->size(), 0);
|
||||
|
||||
if (switchToLhs)
|
||||
// Owner side
|
||||
// ~~~~~~~~~~
|
||||
{
|
||||
// Owner side
|
||||
// ~~~~~~~~~~
|
||||
const labelList& cutOwn = globalPointPatch_.cutEdgeOwnerIndices();
|
||||
const labelList& cutOwnStart = globalPointPatch_.cutEdgeOwnerStart();
|
||||
|
||||
forAll (mp, pointI)
|
||||
{
|
||||
const labelList& cutOwn = globalPointPatch_.cutEdgeOwnerIndices();
|
||||
const labelList& cutOwnStart =
|
||||
globalPointPatch_.cutEdgeOwnerStart();
|
||||
label ownIndex = cutOwnStart[pointI];
|
||||
label endOwn = cutOwnStart[pointI + 1];
|
||||
|
||||
forAll (mp, pointI)
|
||||
for (; ownIndex < endOwn; ownIndex++)
|
||||
{
|
||||
label ownIndex = cutOwnStart[pointI];
|
||||
label endOwn = cutOwnStart[pointI + 1];
|
||||
localMult[pointI] +=
|
||||
cutMask[coeffI]*coeffs[coeffI]
|
||||
*psiInternal[U[cutOwn[ownIndex]]];
|
||||
|
||||
for (; ownIndex < endOwn; ownIndex++)
|
||||
{
|
||||
localMult[pointI] +=
|
||||
cutMask[coeffI]*coeffs[coeffI]
|
||||
*psiInternal[U[cutOwn[ownIndex]]];
|
||||
sumOffDiag[pointI] += cutMask[coeffI]*coeffs[coeffI];
|
||||
|
||||
sumOffDiag[pointI] += cutMask[coeffI]*coeffs[coeffI];
|
||||
|
||||
// Multiply the internal side as well
|
||||
result[U[cutOwn[ownIndex]]] -=
|
||||
coeffs[coeffI]*psiInternal[mp[pointI]];
|
||||
|
||||
coeffI++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Neighbour side
|
||||
// ~~~~~~~~~~~~~~
|
||||
{
|
||||
const labelList& cutNei =
|
||||
globalPointPatch_.cutEdgeNeighbourIndices();
|
||||
const labelList& cutNeiStart =
|
||||
globalPointPatch_.cutEdgeNeighbourStart();
|
||||
|
||||
forAll (mp, pointI)
|
||||
{
|
||||
label neiIndex = cutNeiStart[pointI];
|
||||
label endNei = cutNeiStart[pointI + 1];
|
||||
|
||||
for (; neiIndex < endNei; neiIndex++)
|
||||
{
|
||||
localMult[pointI] +=
|
||||
cutMask[coeffI]*coeffs[coeffI]
|
||||
*psiInternal[L[cutNei[neiIndex]]];
|
||||
|
||||
sumOffDiag[pointI] += cutMask[coeffI]*coeffs[coeffI];
|
||||
|
||||
// Multiply the internal side as well
|
||||
result[L[cutNei[neiIndex]]] -=
|
||||
coeffs[coeffI]*psiInternal[mp[pointI]];
|
||||
|
||||
coeffI++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Doubly cut coefficients
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
// There exists a possibility of having an internal edge for a
|
||||
// point on the processor patch which is in fact connected to
|
||||
// another point of the same patch. This particular nastiness
|
||||
// introduces a deformation in the solution because the edge is
|
||||
// either multiplied twice or not at all. For this purpose, the
|
||||
// offending edges need to be separated out and multiplied
|
||||
// appropriately.
|
||||
{
|
||||
const labelList& doubleCut =
|
||||
globalPointPatch_.doubleCutEdgeIndices();
|
||||
|
||||
const labelList& doubleCutOwner =
|
||||
globalPointPatch_.doubleCutOwner();
|
||||
|
||||
const labelList& doubleCutNeighbour =
|
||||
globalPointPatch_.doubleCutNeighbour();
|
||||
|
||||
forAll (doubleCut, edgeI)
|
||||
{
|
||||
// Owner side
|
||||
localMult[doubleCutOwner[edgeI]] +=
|
||||
cutMask[coeffI]*coeffs[coeffI]*
|
||||
psiInternal[U[doubleCut[edgeI]]];
|
||||
|
||||
sumOffDiag[doubleCutOwner[edgeI]] +=
|
||||
cutMask[coeffI]*coeffs[coeffI];
|
||||
|
||||
coeffI++;
|
||||
|
||||
// Neighbour side
|
||||
localMult[doubleCutNeighbour[edgeI]] +=
|
||||
cutMask[coeffI]*coeffs[coeffI]*
|
||||
psiInternal[L[doubleCut[edgeI]]];
|
||||
|
||||
sumOffDiag[doubleCutNeighbour[edgeI]] +=
|
||||
cutMask[coeffI]*coeffs[coeffI];
|
||||
// Multiply the internal side as well
|
||||
result[U[cutOwn[ownIndex]]] +=
|
||||
coeffs[coeffI]*psiInternal[mp[pointI]];
|
||||
|
||||
coeffI++;
|
||||
}
|
||||
}
|
||||
|
||||
// Reduce/extract the result and enforce over all processors
|
||||
|
||||
// Requires global sync points to flush buffers before gather-scatter
|
||||
// communications. Reconsider. HJ, 29/Mar/2011
|
||||
if (Pstream::defaultCommsType == Pstream::nonBlocking)
|
||||
{
|
||||
IPstream::waitRequests();
|
||||
OPstream::waitRequests();
|
||||
}
|
||||
|
||||
tmp<Field<scalar> > trpf =
|
||||
reduceExtractPoint<scalar>(localMult);
|
||||
|
||||
Field<scalar>& rpf = trpf();
|
||||
|
||||
// Get addressing
|
||||
const labelList& addr = globalPointPatch_.meshPoints();
|
||||
|
||||
forAll (addr, i)
|
||||
{
|
||||
result[addr[i]] -= rpf[i];
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
// Neighbour side
|
||||
// ~~~~~~~~~~~~~~
|
||||
{
|
||||
// Owner side
|
||||
// ~~~~~~~~~~
|
||||
const labelList& cutNei = globalPointPatch_.cutEdgeNeighbourIndices();
|
||||
const labelList& cutNeiStart =
|
||||
globalPointPatch_.cutEdgeNeighbourStart();
|
||||
|
||||
forAll (mp, pointI)
|
||||
{
|
||||
const labelList& cutOwn = globalPointPatch_.cutEdgeOwnerIndices();
|
||||
const labelList& cutOwnStart =
|
||||
globalPointPatch_.cutEdgeOwnerStart();
|
||||
label neiIndex = cutNeiStart[pointI];
|
||||
label endNei = cutNeiStart[pointI + 1];
|
||||
|
||||
forAll (mp, pointI)
|
||||
for (; neiIndex < endNei; neiIndex++)
|
||||
{
|
||||
label ownIndex = cutOwnStart[pointI];
|
||||
label endOwn = cutOwnStart[pointI + 1];
|
||||
localMult[pointI] +=
|
||||
cutMask[coeffI]*coeffs[coeffI]
|
||||
*psiInternal[L[cutNei[neiIndex]]];
|
||||
|
||||
for (; ownIndex < endOwn; ownIndex++)
|
||||
{
|
||||
localMult[pointI] +=
|
||||
cutMask[coeffI]*coeffs[coeffI]
|
||||
*psiInternal[U[cutOwn[ownIndex]]];
|
||||
sumOffDiag[pointI] += cutMask[coeffI]*coeffs[coeffI];
|
||||
|
||||
sumOffDiag[pointI] += cutMask[coeffI]*coeffs[coeffI];
|
||||
|
||||
// Multiply the internal side as well
|
||||
result[U[cutOwn[ownIndex]]] +=
|
||||
coeffs[coeffI]*psiInternal[mp[pointI]];
|
||||
|
||||
coeffI++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Neighbour side
|
||||
// ~~~~~~~~~~~~~~
|
||||
{
|
||||
const labelList& cutNei =
|
||||
globalPointPatch_.cutEdgeNeighbourIndices();
|
||||
const labelList& cutNeiStart =
|
||||
globalPointPatch_.cutEdgeNeighbourStart();
|
||||
|
||||
forAll (mp, pointI)
|
||||
{
|
||||
label neiIndex = cutNeiStart[pointI];
|
||||
label endNei = cutNeiStart[pointI + 1];
|
||||
|
||||
for (; neiIndex < endNei; neiIndex++)
|
||||
{
|
||||
localMult[pointI] +=
|
||||
cutMask[coeffI]*coeffs[coeffI]
|
||||
*psiInternal[L[cutNei[neiIndex]]];
|
||||
|
||||
sumOffDiag[pointI] += cutMask[coeffI]*coeffs[coeffI];
|
||||
|
||||
// Multiply the internal side as well
|
||||
result[L[cutNei[neiIndex]]] +=
|
||||
coeffs[coeffI]*psiInternal[mp[pointI]];
|
||||
|
||||
coeffI++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Doubly cut coefficients
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
// There exists a possibility of having an internal edge for a
|
||||
// point on the processor patch which is in fact connected to
|
||||
// another point of the same patch. This particular nastiness
|
||||
// introduces a deformation in the solution because the edge is
|
||||
// either multiplied twice or not at all. For this purpose, the
|
||||
// offending edges need to be separated out and multiplied
|
||||
// appropriately.
|
||||
{
|
||||
const labelList& doubleCut =
|
||||
globalPointPatch_.doubleCutEdgeIndices();
|
||||
|
||||
const labelList& doubleCutOwner =
|
||||
globalPointPatch_.doubleCutOwner();
|
||||
|
||||
const labelList& doubleCutNeighbour =
|
||||
globalPointPatch_.doubleCutNeighbour();
|
||||
|
||||
forAll (doubleCut, edgeI)
|
||||
{
|
||||
// Owner side
|
||||
localMult[doubleCutOwner[edgeI]] +=
|
||||
cutMask[coeffI]*coeffs[coeffI]*
|
||||
psiInternal[U[doubleCut[edgeI]]];
|
||||
|
||||
sumOffDiag[doubleCutOwner[edgeI]] +=
|
||||
cutMask[coeffI]*coeffs[coeffI];
|
||||
|
||||
coeffI++;
|
||||
|
||||
// Neighbour side
|
||||
localMult[doubleCutNeighbour[edgeI]] +=
|
||||
cutMask[coeffI]*coeffs[coeffI]*
|
||||
psiInternal[L[doubleCut[edgeI]]];
|
||||
|
||||
sumOffDiag[doubleCutNeighbour[edgeI]] +=
|
||||
cutMask[coeffI]*coeffs[coeffI];
|
||||
// Multiply the internal side as well
|
||||
result[L[cutNei[neiIndex]]] +=
|
||||
coeffs[coeffI]*psiInternal[mp[pointI]];
|
||||
|
||||
coeffI++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Reduce/extract the result and enforce over all processors
|
||||
// Doubly cut coefficients
|
||||
// ~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
// Requires global sync points to flush buffers before gather-scatter
|
||||
// communications. Reconsider. HJ, 29/Mar/2011
|
||||
if (Pstream::defaultCommsType == Pstream::nonBlocking)
|
||||
// There exists a possibility of having an internal edge for a
|
||||
// point on the processor patch which is in fact connected to
|
||||
// another point of the same patch. This particular nastiness
|
||||
// introduces a deformation in the solution because the edge is
|
||||
// either multiplied twice or not at all. For this purpose, the
|
||||
// offending edges need to be separated out and multiplied
|
||||
// appropriately.
|
||||
{
|
||||
const labelList& doubleCut = globalPointPatch_.doubleCutEdgeIndices();
|
||||
|
||||
const labelList& doubleCutOwner = globalPointPatch_.doubleCutOwner();
|
||||
const labelList& doubleCutNeighbour =
|
||||
globalPointPatch_.doubleCutNeighbour();
|
||||
|
||||
forAll (doubleCut, edgeI)
|
||||
{
|
||||
IPstream::waitRequests();
|
||||
OPstream::waitRequests();
|
||||
// Owner side
|
||||
localMult[doubleCutOwner[edgeI]] +=
|
||||
cutMask[coeffI]*coeffs[coeffI]*
|
||||
psiInternal[U[doubleCut[edgeI]]];
|
||||
|
||||
sumOffDiag[doubleCutOwner[edgeI]] +=
|
||||
cutMask[coeffI]*coeffs[coeffI];
|
||||
|
||||
coeffI++;
|
||||
|
||||
// Neighbour side
|
||||
localMult[doubleCutNeighbour[edgeI]] +=
|
||||
cutMask[coeffI]*coeffs[coeffI]*
|
||||
psiInternal[L[doubleCut[edgeI]]];
|
||||
|
||||
sumOffDiag[doubleCutNeighbour[edgeI]] +=
|
||||
cutMask[coeffI]*coeffs[coeffI];
|
||||
|
||||
coeffI++;
|
||||
}
|
||||
}
|
||||
|
||||
tmp<Field<scalar> > trpf =
|
||||
reduceExtractPoint<scalar>(localMult);
|
||||
// Reduce/extract the result and enforce over all processors
|
||||
|
||||
Field<scalar>& rpf = trpf();
|
||||
// Requires global sync points to flush buffers before gather-scatter
|
||||
// communications. Reconsider. HJ, 29/Mar/2011
|
||||
if (Pstream::defaultCommsType == Pstream::nonBlocking)
|
||||
{
|
||||
IPstream::waitRequests();
|
||||
OPstream::waitRequests();
|
||||
}
|
||||
|
||||
// Get addressing
|
||||
const labelList& addr = globalPointPatch_.meshPoints();
|
||||
tmp<Field<scalar> > trpf =
|
||||
reduceExtractPoint<scalar>(localMult);
|
||||
|
||||
forAll (addr, i)
|
||||
{
|
||||
result[addr[i]] += rpf[i];
|
||||
}
|
||||
Field<scalar>& rpf = trpf();
|
||||
|
||||
// Get addressing
|
||||
const labelList& addr = globalPointPatch_.meshPoints();
|
||||
|
||||
forAll (addr, i)
|
||||
{
|
||||
result[addr[i]] += rpf[i];
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -163,7 +163,7 @@ Foam::BlockBiCGStabSolver<Type>::solve
|
|||
|
||||
solverPerf.finalResidual() = gSum(cmptMag(r))/norm;
|
||||
solverPerf.nIterations()++;
|
||||
} while (!stop(solverPerf));
|
||||
} while (!this->stop(solverPerf));
|
||||
}
|
||||
|
||||
return solverPerf;
|
||||
|
|
|
@ -144,7 +144,7 @@ typename Foam::BlockSolverPerformance<Type> Foam::BlockCGSolver<Type>::solve
|
|||
|
||||
solverPerf.finalResidual() = gSum(cmptMag(rA))/norm;
|
||||
solverPerf.nIterations()++;
|
||||
} while (!stop(solverPerf));
|
||||
} while (!this->stop(solverPerf));
|
||||
}
|
||||
|
||||
return solverPerf;
|
||||
|
|
|
@ -240,7 +240,7 @@ Foam::BlockGMRESSolver<Type>::solve
|
|||
|
||||
solverPerf.finalResidual() = gSum(cmptMag(rA))/norm;
|
||||
solverPerf.nIterations()++;
|
||||
} while (!stop(solverPerf));
|
||||
} while (!this->stop(solverPerf));
|
||||
}
|
||||
|
||||
return solverPerf;
|
||||
|
|
|
@ -106,7 +106,7 @@ Foam::BlockGaussSeidelSolver<Type>::solve
|
|||
|
||||
solverPerf.finalResidual() = gSum(cmptMag(wA))/norm;
|
||||
solverPerf.nIterations()++;
|
||||
} while (!stop(solverPerf));
|
||||
} while (!this->stop(solverPerf));
|
||||
}
|
||||
|
||||
return solverPerf;
|
||||
|
|
|
@ -165,7 +165,7 @@ Foam::scalar Foam::ExactParticle<ParticleType>::trackToFace
|
|||
this->position_ = endPosition;
|
||||
}
|
||||
|
||||
label patchi = patch(this->facei_);
|
||||
label patchi = this->patch(this->facei_);
|
||||
const polyPatch& patch = mesh.boundaryMesh()[patchi];
|
||||
|
||||
if (isA<wedgePolyPatch>(patch))
|
||||
|
|
|
@ -176,7 +176,7 @@ bool Foam::TimeActivatedExplicitSourceList<Type>::readData(Istream& is)
|
|||
typename TimeActivatedExplicitSource<Type>::iNew(mesh_, fieldNames_)
|
||||
);
|
||||
|
||||
transfer(newSources);
|
||||
this->transfer(newSources);
|
||||
|
||||
return is.good();
|
||||
}
|
||||
|
|
|
@ -518,7 +518,7 @@ CoEulerDdtScheme<Type>::fvcDdtPhiCorr
|
|||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
fvcDdtPhiCoeff(U.oldTime(), phi.oldTime())*
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phi.oldTime())*
|
||||
(
|
||||
fvc::interpolate(rDeltaT*rA)*phi.oldTime()
|
||||
- (fvc::interpolate(rDeltaT*rA*U.oldTime()) & mesh().Sf())
|
||||
|
@ -579,7 +579,7 @@ CoEulerDdtScheme<Type>::fvcDdtPhiCorr
|
|||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
fvcDdtPhiCoeff(U.oldTime(), phi.oldTime())
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phi.oldTime())
|
||||
*(
|
||||
fvc::interpolate(rDeltaT*rA*rho.oldTime())*phi.oldTime()
|
||||
- (fvc::interpolate(rDeltaT*rA*rho.oldTime()*U.oldTime())
|
||||
|
@ -599,7 +599,7 @@ CoEulerDdtScheme<Type>::fvcDdtPhiCorr
|
|||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
fvcDdtPhiCoeff
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
U.oldTime(),
|
||||
phi.oldTime()/fvc::interpolate(rho.oldTime())
|
||||
|
@ -628,7 +628,7 @@ CoEulerDdtScheme<Type>::fvcDdtPhiCorr
|
|||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
fvcDdtPhiCoeff(rho.oldTime(), U.oldTime(), phi.oldTime())
|
||||
this->fvcDdtPhiCoeff(rho.oldTime(), U.oldTime(), phi.oldTime())
|
||||
*(
|
||||
fvc::interpolate(rDeltaT*rA)*phi.oldTime()
|
||||
- (
|
||||
|
|
|
@ -947,7 +947,7 @@ CrankNicholsonDdtScheme<Type>::fvcDdtPhiCorr
|
|||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
fvcDdtPhiCoeff(U.oldTime(), phi.oldTime())
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phi.oldTime())
|
||||
*fvc::interpolate(rA)
|
||||
*(
|
||||
(rDtCoef*phi.oldTime() + offCentre_(dphidt0()))
|
||||
|
@ -1046,7 +1046,7 @@ CrankNicholsonDdtScheme<Type>::fvcDdtPhiCorr
|
|||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
fvcDdtPhiCoeff(U.oldTime(), phi.oldTime())*
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phi.oldTime())*
|
||||
(
|
||||
fvc::interpolate(rA*rho.oldTime())
|
||||
*(rDtCoef*phi.oldTime() + offCentre_(dphidt0()))
|
||||
|
@ -1091,7 +1091,7 @@ CrankNicholsonDdtScheme<Type>::fvcDdtPhiCorr
|
|||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
fvcDdtPhiCoeff
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
U.oldTime(),
|
||||
phi.oldTime()/fvc::interpolate(rho.oldTime())
|
||||
|
@ -1140,7 +1140,7 @@ CrankNicholsonDdtScheme<Type>::fvcDdtPhiCorr
|
|||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
fvcDdtPhiCoeff(rho.oldTime(), U.oldTime(), phi.oldTime())*
|
||||
this->fvcDdtPhiCoeff(rho.oldTime(), U.oldTime(), phi.oldTime())*
|
||||
(
|
||||
fvc::interpolate(rA)
|
||||
*(rDtCoef*phi.oldTime() + offCentre_(dphidt0()))
|
||||
|
|
|
@ -395,7 +395,7 @@ EulerDdtScheme<Type>::fvcDdtPhiCorr
|
|||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
fvcDdtPhiCoeff(U.oldTime(), phiAbs.oldTime(), phiCorr())
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phiAbs.oldTime(), phiCorr())
|
||||
*fvc::interpolate(rDeltaT*rA)*phiCorr
|
||||
)
|
||||
);
|
||||
|
@ -437,7 +437,7 @@ EulerDdtScheme<Type>::fvcDdtPhiCorr
|
|||
(
|
||||
ddtIOobject,
|
||||
rDeltaT
|
||||
*fvcDdtPhiCoeff(U.oldTime(), phiAbs.oldTime())
|
||||
*this->fvcDdtPhiCoeff(U.oldTime(), phiAbs.oldTime())
|
||||
*(
|
||||
fvc::interpolate(rA*rho.oldTime())*phiAbs.oldTime()
|
||||
- (fvc::interpolate(rA*rho.oldTime()*U.oldTime())
|
||||
|
@ -458,7 +458,7 @@ EulerDdtScheme<Type>::fvcDdtPhiCorr
|
|||
(
|
||||
ddtIOobject,
|
||||
rDeltaT
|
||||
*fvcDdtPhiCoeff
|
||||
*this->fvcDdtPhiCoeff
|
||||
(
|
||||
U.oldTime(),
|
||||
phiAbs.oldTime()/fvc::interpolate(rho.oldTime())
|
||||
|
@ -488,7 +488,7 @@ EulerDdtScheme<Type>::fvcDdtPhiCorr
|
|||
(
|
||||
ddtIOobject,
|
||||
rDeltaT
|
||||
*fvcDdtPhiCoeff(rho.oldTime(), U.oldTime(), phiAbs.oldTime())
|
||||
*this->fvcDdtPhiCoeff(rho.oldTime(), U.oldTime(), phiAbs.oldTime())
|
||||
*(
|
||||
fvc::interpolate(rA)*phiAbs.oldTime()
|
||||
- (fvc::interpolate(rA*U.oldTime()) & mesh().Sf())
|
||||
|
|
|
@ -521,7 +521,7 @@ SLTSDdtScheme<Type>::fvcDdtPhiCorr
|
|||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
fvcDdtPhiCoeff(U.oldTime(), phi.oldTime())*
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phi.oldTime())*
|
||||
(
|
||||
fvc::interpolate(rDeltaT*rA)*phi.oldTime()
|
||||
- (fvc::interpolate(rDeltaT*rA*U.oldTime()) & mesh().Sf())
|
||||
|
@ -582,7 +582,7 @@ SLTSDdtScheme<Type>::fvcDdtPhiCorr
|
|||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
fvcDdtPhiCoeff(U.oldTime(), phi.oldTime())
|
||||
this->fvcDdtPhiCoeff(U.oldTime(), phi.oldTime())
|
||||
*(
|
||||
fvc::interpolate(rDeltaT*rA*rho.oldTime())*phi.oldTime()
|
||||
- (fvc::interpolate(rDeltaT*rA*rho.oldTime()*U.oldTime())
|
||||
|
@ -602,7 +602,7 @@ SLTSDdtScheme<Type>::fvcDdtPhiCorr
|
|||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
fvcDdtPhiCoeff
|
||||
this->fvcDdtPhiCoeff
|
||||
(
|
||||
U.oldTime(),
|
||||
phi.oldTime()/fvc::interpolate(rho.oldTime())
|
||||
|
@ -631,7 +631,7 @@ SLTSDdtScheme<Type>::fvcDdtPhiCorr
|
|||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
fvcDdtPhiCoeff(rho.oldTime(), U.oldTime(), phi.oldTime())
|
||||
this->fvcDdtPhiCoeff(rho.oldTime(), U.oldTime(), phi.oldTime())
|
||||
*(
|
||||
fvc::interpolate(rDeltaT*rA)*phi.oldTime()
|
||||
- (
|
||||
|
|
|
@ -545,7 +545,7 @@ backwardDdtScheme<Type>::fvcDdtPhiCorr
|
|||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
rDeltaT*fvcDdtPhiCoeff(U.oldTime(), phi.oldTime())
|
||||
rDeltaT*this->fvcDdtPhiCoeff(U.oldTime(), phi.oldTime())
|
||||
*(
|
||||
fvc::interpolate(rA)
|
||||
*(
|
||||
|
@ -609,7 +609,7 @@ backwardDdtScheme<Type>::fvcDdtPhiCorr
|
|||
new fluxFieldType
|
||||
(
|
||||
ddtIOobject,
|
||||
rDeltaT*fvcDdtPhiCoeff(U.oldTime(), phiAbs.oldTime())
|
||||
rDeltaT*this->fvcDdtPhiCoeff(U.oldTime(), phiAbs.oldTime())
|
||||
*(
|
||||
coefft0*fvc::interpolate(rA*rho.oldTime())
|
||||
*phiAbs.oldTime()
|
||||
|
@ -642,7 +642,7 @@ backwardDdtScheme<Type>::fvcDdtPhiCorr
|
|||
(
|
||||
ddtIOobject,
|
||||
rDeltaT
|
||||
*fvcDdtPhiCoeff
|
||||
*this->fvcDdtPhiCoeff
|
||||
(
|
||||
U.oldTime(),
|
||||
phiAbs.oldTime()/fvc::interpolate(rho.oldTime())
|
||||
|
@ -681,7 +681,7 @@ backwardDdtScheme<Type>::fvcDdtPhiCorr
|
|||
(
|
||||
ddtIOobject,
|
||||
rDeltaT
|
||||
*fvcDdtPhiCoeff(rho.oldTime(), U.oldTime(), phiAbs.oldTime())
|
||||
*this->fvcDdtPhiCoeff(rho.oldTime(), U.oldTime(), phiAbs.oldTime())
|
||||
*(
|
||||
fvc::interpolate(rA)
|
||||
*(
|
||||
|
|
|
@ -217,7 +217,7 @@ limitedSurfaceInterpolationScheme<Type>::flux
|
|||
const GeometricField<Type, fvPatchField, volMesh>& phi
|
||||
) const
|
||||
{
|
||||
return faceFlux_*interpolate(phi);
|
||||
return faceFlux_*this->interpolate(phi);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -68,7 +68,7 @@ public:
|
|||
|
||||
void add(const GeometricField<Type, fvPatchField, volMesh>& f)
|
||||
{
|
||||
insert(f.name(), &f);
|
||||
this->insert(f.name(), &f);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -87,7 +87,7 @@ Foam::label Foam::Cloud<ParticleType>::getNewParticleID() const
|
|||
template<class ParticleType>
|
||||
void Foam::Cloud<ParticleType>::addParticle(ParticleType* pPtr)
|
||||
{
|
||||
append(pPtr);
|
||||
this->append(pPtr);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -586,7 +586,7 @@ void Foam::DsmcCloud<ParcelType>::addNewParcel
|
|||
typeId
|
||||
);
|
||||
|
||||
addParticle(pPtr);
|
||||
this->addParticle(pPtr);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -249,7 +249,7 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::calc
|
|||
scalarField Cs(td.cloud().mcCarrierThermo().species().size(), 0.0);
|
||||
|
||||
// Calc mass and enthalpy transfer due to phase change
|
||||
calcPhaseChange
|
||||
this->calcPhaseChange
|
||||
(
|
||||
td,
|
||||
dt,
|
||||
|
@ -278,7 +278,7 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::calc
|
|||
scalarField dMassDV(YGas_.size(), 0.0);
|
||||
|
||||
// Calc mass and enthalpy transfer due to devolatilisation
|
||||
calcDevolatilisation
|
||||
this->calcDevolatilisation
|
||||
(
|
||||
td,
|
||||
dt,
|
||||
|
@ -299,7 +299,7 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::calc
|
|||
);
|
||||
|
||||
// Correct surface values due to emitted species
|
||||
correctSurfaceValues(td, cellI, Ts, Cs, rhos, mus, Pr, kappa);
|
||||
this->correctSurfaceValues(td, cellI, Ts, Cs, rhos, mus, Pr, kappa);
|
||||
|
||||
|
||||
// Surface reactions
|
||||
|
@ -356,7 +356,7 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::calc
|
|||
|
||||
// Calculate new particle temperature
|
||||
scalar T1 =
|
||||
calcHeatTransfer
|
||||
this->calcHeatTransfer
|
||||
(
|
||||
td,
|
||||
dt,
|
||||
|
@ -379,7 +379,7 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::calc
|
|||
|
||||
// Calculate new particle velocity
|
||||
vector U1 =
|
||||
calcVelocity(td, dt, cellI, Re, mus, d0, U0, rho0, mass0, Su, dUTrans);
|
||||
this->calcVelocity(td, dt, cellI, Re, mus, d0, U0, rho0, mass0, Su, dUTrans);
|
||||
|
||||
dUTrans += 0.5*(mass0 - mass1)*(U0 + U1);
|
||||
|
||||
|
|
|
@ -302,7 +302,7 @@ void Foam::ReactingParcel<ParcelType>::calc
|
|||
|
||||
// Calculate new particle temperature
|
||||
scalar T1 =
|
||||
calcHeatTransfer
|
||||
this->calcHeatTransfer
|
||||
(
|
||||
td,
|
||||
dt,
|
||||
|
@ -325,7 +325,7 @@ void Foam::ReactingParcel<ParcelType>::calc
|
|||
|
||||
// Calculate new particle velocity
|
||||
vector U1 =
|
||||
calcVelocity(td, dt, cellI, Re, mus, d0, U0, rho0, mass0, Su, dUTrans);
|
||||
this->calcVelocity(td, dt, cellI, Re, mus, d0, U0, rho0, mass0, Su, dUTrans);
|
||||
|
||||
dUTrans += 0.5*(mass0 - mass1)*(U0 + U1);
|
||||
|
||||
|
|
|
@ -181,7 +181,7 @@ void Foam::ThermoParcel<ParcelType>::calc
|
|||
|
||||
// Calculate new particle velocity
|
||||
vector U1 =
|
||||
calcVelocity(td, dt, cellI, Re, mus, d0, U0, rho0, mass0, Su, dUTrans);
|
||||
this->calcVelocity(td, dt, cellI, Re, mus, d0, U0, rho0, mass0, Su, dUTrans);
|
||||
|
||||
|
||||
// Accumulate carrier phase source terms
|
||||
|
|
|
@ -87,7 +87,7 @@ void Foam::gnuplotSetWriter<Type>::write
|
|||
|
||||
forAll(valueSets, i)
|
||||
{
|
||||
writeTable(points, *valueSets[i], os);
|
||||
this->writeTable(points, *valueSets[i], os);
|
||||
os << "e" << nl;
|
||||
}
|
||||
}
|
||||
|
@ -132,7 +132,7 @@ void Foam::gnuplotSetWriter<Type>::write
|
|||
|
||||
forAll(valueSets, i)
|
||||
{
|
||||
writeTable(trackPoints[trackI], valueSets[i][trackI], os);
|
||||
this->writeTable(trackPoints[trackI], valueSets[i][trackI], os);
|
||||
os << "e" << nl;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -97,7 +97,7 @@ void Foam::jplotSetWriter<Type>::write
|
|||
columns[i] = valueSets[i];
|
||||
}
|
||||
|
||||
writeTable(points, columns, os);
|
||||
this->writeTable(points, columns, os);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -75,7 +75,7 @@ void Foam::rawSetWriter<Type>::write
|
|||
columns[i] = valueSets[i];
|
||||
}
|
||||
|
||||
writeTable(points, columns, os);
|
||||
this->writeTable(points, columns, os);
|
||||
}
|
||||
|
||||
|
||||
|
@ -107,7 +107,7 @@ void Foam::rawSetWriter<Type>::write
|
|||
columns[i] = &valueSets[i][trackI];
|
||||
}
|
||||
|
||||
writeTable(points[trackI], columns, os);
|
||||
this->writeTable(points[trackI], columns, os);
|
||||
os << nl << nl;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -79,7 +79,7 @@ void Foam::xmgraceSetWriter<Type>::write
|
|||
<< valueSetNames[i] << '"' << nl
|
||||
<< "@target G0.S" << i << nl;
|
||||
|
||||
writeTable(points, *valueSets[i], os);
|
||||
this->writeTable(points, *valueSets[i], os);
|
||||
|
||||
os << '&' << nl;
|
||||
}
|
||||
|
@ -120,7 +120,7 @@ void Foam::xmgraceSetWriter<Type>::write
|
|||
os << "@ s" << sI << " legend " << '"'
|
||||
<< valueSetNames[i] << "_track" << i << '"' << nl
|
||||
<< "@target G0.S" << sI << nl;
|
||||
writeTable(trackPoints[trackI], valueSets[i][trackI], os);
|
||||
this->writeTable(trackPoints[trackI], valueSets[i][trackI], os);
|
||||
os << '&' << nl;
|
||||
|
||||
sI++;
|
||||
|
|
|
@ -38,7 +38,7 @@ Foam::fileFormats::AC3DsurfaceFormat<Face>::AC3DsurfaceFormat
|
|||
const fileName& filename
|
||||
)
|
||||
{
|
||||
read(filename);
|
||||
this->read(filename);
|
||||
}
|
||||
|
||||
|
||||
|
@ -287,7 +287,7 @@ void Foam::fileFormats::AC3DsurfaceFormat<Face>::write
|
|||
(
|
||||
surf.surfZones().size()
|
||||
? surf.surfZones()
|
||||
: oneZone(faceLst)
|
||||
: AC3DsurfaceFormat::oneZone(faceLst)
|
||||
);
|
||||
|
||||
const bool useFaceMap = (surf.useFaceMap() && zones.size() > 1);
|
||||
|
|
|
@ -36,7 +36,7 @@ Foam::fileFormats::NASsurfaceFormat<Face>::NASsurfaceFormat
|
|||
const fileName& filename
|
||||
)
|
||||
{
|
||||
read(filename);
|
||||
this->read(filename);
|
||||
}
|
||||
|
||||
|
||||
|
@ -380,7 +380,7 @@ bool Foam::fileFormats::NASsurfaceFormat<Face>::read
|
|||
}
|
||||
}
|
||||
|
||||
sortFacesAndStore(dynFaces.xfer(), dynZones.xfer(), sorted);
|
||||
this->sortFacesAndStore(dynFaces.xfer(), dynZones.xfer(), sorted);
|
||||
|
||||
// add zones, culling empty ones
|
||||
this->addZones(dynSizes, names, true);
|
||||
|
|
|
@ -40,7 +40,7 @@ Foam::fileFormats::OBJsurfaceFormat<Face>::OBJsurfaceFormat
|
|||
const fileName& filename
|
||||
)
|
||||
{
|
||||
read(filename);
|
||||
this->read(filename);
|
||||
}
|
||||
|
||||
|
||||
|
@ -203,7 +203,7 @@ bool Foam::fileFormats::OBJsurfaceFormat<Face>::read
|
|||
// transfer to normal lists
|
||||
this->storedPoints().transfer(dynPoints);
|
||||
|
||||
sortFacesAndStore(dynFaces.xfer(), dynZones.xfer(), sorted);
|
||||
this->sortFacesAndStore(dynFaces.xfer(), dynZones.xfer(), sorted);
|
||||
|
||||
// add zones, culling empty ones
|
||||
this->addZones(dynSizes, dynNames, true);
|
||||
|
@ -227,7 +227,7 @@ void Foam::fileFormats::OBJsurfaceFormat<Face>::write
|
|||
(
|
||||
surf.surfZones().size() > 1
|
||||
? surf.surfZones()
|
||||
: oneZone(faceLst, "")
|
||||
: OBJsurfaceFormat::oneZone(faceLst, "")
|
||||
);
|
||||
|
||||
const bool useFaceMap = (surf.useFaceMap() && zones.size() > 1);
|
||||
|
|
|
@ -142,7 +142,7 @@ bool Foam::fileFormats::OFFsurfaceFormat<Face>::read
|
|||
}
|
||||
|
||||
// transfer to normal lists, no zone information
|
||||
reset(pointLst.xfer(), dynFaces.xfer(), Xfer<surfZoneList>());
|
||||
this->reset(pointLst.xfer(), dynFaces.xfer(), Xfer<surfZoneList>());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -54,7 +54,7 @@ void Foam::fileFormats::SMESHsurfaceFormat<Face>::write
|
|||
(
|
||||
surf.surfZones().size() > 1
|
||||
? surf.surfZones()
|
||||
: oneZone(faceLst)
|
||||
: SMESHsurfaceFormat::oneZone(faceLst)
|
||||
);
|
||||
|
||||
const bool useFaceMap = (surf.useFaceMap() && zones.size() > 1);
|
||||
|
|
|
@ -208,7 +208,7 @@ bool Foam::fileFormats::STARCDsurfaceFormat<Face>::read
|
|||
}
|
||||
mapPointId.clear();
|
||||
|
||||
sortFacesAndStore(dynFaces.xfer(), dynZones.xfer(), sorted);
|
||||
this->sortFacesAndStore(dynFaces.xfer(), dynZones.xfer(), sorted);
|
||||
|
||||
// add zones, culling empty ones
|
||||
this->addZones(dynSizes, dynNames, true);
|
||||
|
@ -231,7 +231,7 @@ void Foam::fileFormats::STARCDsurfaceFormat<Face>::write
|
|||
(
|
||||
surf.surfZones().size() > 1
|
||||
? surf.surfZones()
|
||||
: oneZone(faceLst)
|
||||
: STARCDsurfaceFormat::oneZone(faceLst)
|
||||
);
|
||||
|
||||
const bool useFaceMap = (surf.useFaceMap() && zones.size() > 1);
|
||||
|
|
|
@ -215,7 +215,7 @@ void Foam::fileFormats::STLsurfaceFormat<Face>::writeAscii
|
|||
(
|
||||
surf.surfZones().size() > 1
|
||||
? surf.surfZones()
|
||||
: oneZone(faceLst)
|
||||
: STLsurfaceFormat::oneZone(faceLst)
|
||||
);
|
||||
|
||||
const bool useFaceMap = (surf.useFaceMap() && zones.size() > 1);
|
||||
|
@ -276,7 +276,7 @@ void Foam::fileFormats::STLsurfaceFormat<Face>::writeBinary
|
|||
(
|
||||
surf.surfZones().size() > 1
|
||||
? surf.surfZones()
|
||||
: oneZone(faceLst)
|
||||
: STLsurfaceFormat::oneZone(faceLst)
|
||||
);
|
||||
|
||||
const bool useFaceMap = (surf.useFaceMap() && zones.size() > 1);
|
||||
|
|
|
@ -141,7 +141,7 @@ void Foam::fileFormats::TRIsurfaceFormat<Face>::write
|
|||
(
|
||||
surf.surfZones().size() > 1
|
||||
? surf.surfZones()
|
||||
: oneZone(faceLst)
|
||||
: TRIsurfaceFormat::oneZone(faceLst)
|
||||
);
|
||||
|
||||
const bool useFaceMap = (surf.useFaceMap() && zones.size() > 1);
|
||||
|
|
|
@ -72,7 +72,7 @@ void Foam::fileFormats::VTKsurfaceFormat<Face>::write
|
|||
(
|
||||
surf.surfZones().size() > 1
|
||||
? surf.surfZones()
|
||||
: oneZone(faceLst)
|
||||
: VTKsurfaceFormat::oneZone(faceLst)
|
||||
);
|
||||
|
||||
const bool useFaceMap = (surf.useFaceMap() && zones.size() > 1);
|
||||
|
|
|
@ -55,7 +55,7 @@ void Foam::fileFormats::WRLsurfaceFormat<Face>::write
|
|||
(
|
||||
surf.surfZones().size() > 1
|
||||
? surf.surfZones()
|
||||
: oneZone(faceLst, "")
|
||||
: WRLsurfaceFormat::oneZone(faceLst, "")
|
||||
);
|
||||
|
||||
const bool useFaceMap = (surf.useFaceMap() && zones.size() > 1);
|
||||
|
|
|
@ -57,7 +57,7 @@ void Foam::fileFormats::X3DsurfaceFormat<Face>::write
|
|||
(
|
||||
surf.surfZones().size() > 1
|
||||
? surf.surfZones()
|
||||
: oneZone(faceLst, "")
|
||||
: X3DsurfaceFormat::oneZone(faceLst, "")
|
||||
);
|
||||
|
||||
const bool useFaceMap = (surf.useFaceMap() && zones.size() > 1);
|
||||
|
|
|
@ -51,7 +51,7 @@ void Reaction<ReactionThermo>::setThermo
|
|||
|
||||
for (label i=1; i<rhs_.size(); i++)
|
||||
{
|
||||
operator+=
|
||||
this->operator+=
|
||||
(
|
||||
rhs_[i].stoichCoeff*(*thermoDatabase[species_[rhs_[i].index]])
|
||||
);
|
||||
|
@ -59,7 +59,7 @@ void Reaction<ReactionThermo>::setThermo
|
|||
|
||||
for (label i=0; i<lhs_.size(); i++)
|
||||
{
|
||||
operator-=
|
||||
this->operator-=
|
||||
(
|
||||
lhs_[i].stoichCoeff*(*thermoDatabase[species_[lhs_[i].index]])
|
||||
);
|
||||
|
|
Reference in a new issue