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
// 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 =
fineOversetInterface_.overset().fringeFaces();
@ -798,6 +800,13 @@ Foam::label Foam::oversetAMGInterface::interfaceSize() const
return interfaceSize_;
}
const Foam::lduMesh& Foam::oversetAMGInterface::ldu() const
{
return AMGInterface::ldu();
}
const Foam::oversetMesh& Foam::oversetAMGInterface::overset() const
{
// Overset should not be accessed from coarse levels

View file

@ -170,6 +170,9 @@ public:
// Interface transfer functions
//- Return lduMesh for owner-neighbour addressing
virtual const lduMesh& ldu() const;
//- Return access to overset mesh.
// Available only on the finest level
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
{
return overset().acceptorCells();

View file

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

View file

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