Overset AMG support. Final serial version

This commit is contained in:
Hrvoje Jasak 2019-09-20 13:19:29 +01:00
parent 550935482d
commit a01fec1863
5 changed files with 27 additions and 2 deletions

View file

@ -309,9 +309,11 @@ Foam::oversetAMGInterface::oversetAMGInterface
// Get mesh owner-neighbour addressing to visit cells around fringe // Get mesh owner-neighbour addressing to visit cells around fringe
// faces // faces
const unallocLabelList& own = lduMesh.lowerAddr(); const unallocLabelList& own =
fineOversetInterface_.ldu().lduAddr().lowerAddr();
const unallocLabelList& nei = lduMesh.upperAddr(); const unallocLabelList& nei =
fineOversetInterface_.ldu().lduAddr().upperAddr();
const labelList& fringeFaces = const labelList& fringeFaces =
fineOversetInterface_.overset().fringeFaces(); fineOversetInterface_.overset().fringeFaces();
@ -798,6 +800,13 @@ Foam::label Foam::oversetAMGInterface::interfaceSize() const
return interfaceSize_; return interfaceSize_;
} }
const Foam::lduMesh& Foam::oversetAMGInterface::ldu() const
{
return AMGInterface::ldu();
}
const Foam::oversetMesh& Foam::oversetAMGInterface::overset() const const Foam::oversetMesh& Foam::oversetAMGInterface::overset() const
{ {
// Overset should not be accessed from coarse levels // Overset should not be accessed from coarse levels

View file

@ -170,6 +170,9 @@ public:
// Interface transfer functions // Interface transfer functions
//- Return lduMesh for owner-neighbour addressing
virtual const lduMesh& ldu() const;
//- Return access to overset mesh. //- Return access to overset mesh.
// Available only on the finest level // Available only on the finest level
virtual const oversetMesh& overset() const; virtual const oversetMesh& overset() const;

View file

@ -93,6 +93,12 @@ Foam::label Foam::oversetFvPatch::interfaceSize() const
} }
const Foam::lduMesh& Foam::oversetFvPatch::ldu() const
{
return boundaryMesh().mesh();
}
const Foam::labelList& Foam::oversetFvPatch::acceptorCells() const const Foam::labelList& Foam::oversetFvPatch::acceptorCells() const
{ {
return overset().acceptorCells(); return overset().acceptorCells();

View file

@ -126,6 +126,9 @@ public:
// of internal field // of internal field
virtual label interfaceSize() const; virtual label interfaceSize() const;
//- Return lduMesh for owner-neighbour addressing
virtual const lduMesh& ldu() const;
//- Return acceptor cells //- Return acceptor cells
virtual const labelList& acceptorCells() const; virtual const labelList& acceptorCells() const;

View file

@ -47,6 +47,7 @@ namespace Foam
{ {
// Forward declaration of classes // Forward declaration of classes
class lduMesh;
class oversetMesh; class oversetMesh;
class mapDistribute; class mapDistribute;
@ -86,6 +87,9 @@ public:
// due to different comms pattern // due to different comms pattern
virtual label interfaceSize() const = 0; virtual label interfaceSize() const = 0;
//- Return lduMesh for owner-neighbour addressing
virtual const lduMesh& ldu() const = 0;
//- Return oversetMesh for fine-level addressing //- Return oversetMesh for fine-level addressing
virtual const oversetMesh& overset() const = 0; virtual const oversetMesh& overset() const = 0;