VTK  9.7.1
vtkDGSidesResponder.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
9 #ifndef vtkDGSidesResponder_h
10 #define vtkDGSidesResponder_h
11 
12 #include "vtkFiltersCellGridModule.h" // For export macro.
13 
14 #include "vtkCellGridResponder.h"
15 #include "vtkCellGridSidesQuery.h" // For inheritance.
16 #include "vtkDGCell.h" // For Shape enum.
17 
18 VTK_ABI_NAMESPACE_BEGIN
19 class vtkCellMetadata;
20 class vtkDGSidesResponders;
21 
22 class VTKFILTERSCELLGRID_EXPORT vtkDGSidesResponder
23  : public vtkCellGridResponder<vtkCellGridSidesQuery>
24 {
25 public:
26  static vtkDGSidesResponder* New();
28 
29  bool Query(vtkCellGridSidesQuery* query, vtkCellMetadata* cellType,
30  vtkCellGridResponders* caches) override;
31 
32 protected:
33  vtkDGSidesResponder() = default;
34  ~vtkDGSidesResponder() override = default;
35 
36  bool HashSides(vtkCellGridSidesQuery* query, vtkDGCell* cellType);
37  bool SummarizeSides(vtkCellGridSidesQuery* query, vtkDGCell* cellType);
38  bool GenerateSideSets(vtkCellGridSidesQuery* query, vtkDGCell* cellType);
39  static bool ProcessSidesOfInput(
40  vtkCellGridSidesQuery* query, vtkDGCell::Shape sideShape, vtkDGCell::Shape cellShape);
41 
46  void HashSidesOfSide(vtkCellGridSidesQuery* query, vtkDGCell* cellType,
47  vtkDGCell::Shape sourceShape, std::vector<vtkIdType>& side,
48  const std::vector<vtkIdType>& sidesOfSide, vtkIdType cellId,
49  const std::vector<vtkTypeInt64>& entry, std::set<int>& sidesVisited, vtkDataArray* ngm);
50 
51 private:
53  void operator=(const vtkDGSidesResponder&) = delete;
54 };
55 
56 VTK_ABI_NAMESPACE_END
57 #endif // vtkDGSidesResponder_h
58 // VTK-HeaderTest-Exclude: vtkDGSidesResponder.h
A cell-grid query for enumerating sides of cells.
Respond to a query on one particular type of cell.
Compute the sides on the outside surface of a collection of DG cells.
Metadata for a particular type of cell (finite element).
int vtkIdType
Definition: vtkType.h:363
A container that holds objects able to respond to queries specialized for particular vtkCellMetadata ...
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:44
Base class for a discontinuous Galerkin cells of all shapes.
Definition: vtkDGCell.h:43
virtual bool Query(QueryClass *query, vtkCellMetadata *cellType, vtkCellGridResponders *caches)=0
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
Shape
All possible shapes for DG cells.
Definition: vtkDGCell.h:70