/
ElementSideNeighborLayers.h
48 lines (38 loc) · 1.43 KB
/
ElementSideNeighborLayers.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//* This file is part of the MOOSE framework
//* https://www.mooseframework.org
//*
//* All rights reserved, see COPYRIGHT for full restrictions
//* https://github.com/idaholab/moose/blob/master/COPYRIGHT
//*
//* Licensed under LGPL 2.1, please see LICENSE for details
//* https://www.gnu.org/licenses/lgpl-2.1.html
#ifndef ELEMENTSIDENEIGHBORLAYERS_H
#define ELEMENTSIDENEIGHBORLAYERS_H
#include "FunctorRelationshipManager.h"
// Forward declarations
class ElementSideNeighborLayers;
namespace libMesh
{
class GhostingFunctor;
}
template <>
InputParameters validParams<ElementSideNeighborLayers>();
/**
* ElementSideNeighborLayers is used to increase the halo or stencil depth of each processor's
* partition. It is useful when non-local element resources are needed when using DistributedMesh.
*/
class ElementSideNeighborLayers : public FunctorRelationshipManager
{
public:
ElementSideNeighborLayers(const InputParameters & parameters);
virtual std::string getInfo() const override;
virtual bool operator==(const RelationshipManager & rhs) const override;
protected:
virtual void internalInit() override;
/// Size of the halo or stencil of elements available in each local processors partition. Only
/// applicable and necessary when using DistributedMesh.
unsigned short _layers;
/// Whether or not this RM is keeping track of periodic boundaries
bool _has_periodic_boundaries = false;
};
#endif /* ELEMENTSIDENEIGHBORLAYERS_H */