Advanced Multi-Physics (AMP)
On-Line Documentation
structuredFaceDOFManager.h
Go to the documentation of this file.
1#ifndef included_AMP_structuredFaceDOFManager
2#define included_AMP_structuredFaceDOFManager
3
4#include "AMP/discretization/DOF_Manager.h"
5#include "AMP/mesh/Mesh.h"
6#include "AMP/mesh/MeshElement.h"
7#include <memory>
8
9
10namespace AMP::Discretization {
11
12
23{
24public:
26
27
30
31
39 structuredFaceDOFManager( std::shared_ptr<AMP::Mesh::Mesh> mesh, int DOFsPerFace[3], int gcw );
40
41
44
45
49 std::shared_ptr<const AMP::Mesh::Mesh> getMesh() const override;
50
51
57 AMP::Mesh::MeshElementID getElementID( size_t dof ) const override;
58
59
65 std::unique_ptr<AMP::Mesh::MeshElement> getElement( size_t dof ) const override;
66
67
76
77
79 std::vector<size_t> getRemoteDOFs() const override;
80
86 int getDOFsPerPoint() const override;
87
88
89public: // Advanced interfaces
92 size_t *dofs,
93 size_t N_alloc,
94 bool sort = true ) const override;
96
97 // Append DOFs to the list
99 size_t *dofs,
100 size_t index,
101 size_t capacity ) const override;
102
103
104private:
105 // Function to find the remote DOF given a set of mesh element IDs
106 std::vector<size_t>
107 getRemoteDOF( const std::vector<AMP::Mesh::MeshElementID> &remote_ids ) const;
108
109 // Function to initialize the data
111
112 // Data members
113 std::shared_ptr<AMP::Mesh::Mesh> d_mesh;
114 uint8_t d_DOFsPerFace[3] = { 0, 0, 0 };
115 uint8_t d_gcw = 0;
116
117 std::vector<AMP::Mesh::MeshElementID> d_local_ids[3];
118 std::vector<AMP::Mesh::MeshElementID> d_remote_ids[3];
119 std::vector<size_t> d_local_dofs[3];
120 std::vector<size_t> d_remote_dofs[3];
121};
122} // namespace AMP::Discretization
123
124#endif
std::vector< size_t > getRowDOFs(const AMP::Mesh::MeshElementID &id) const
Get the row DOFs given a mesh element.
virtual std::shared_ptr< DOFManager > subset(const AMP_MPI &comm)
Subset the DOF Manager for a AMP_MPI communicator.
A derived class to create a DOFManager for faces.
std::vector< size_t > getRemoteDOF(const std::vector< AMP::Mesh::MeshElementID > &remote_ids) const
std::unique_ptr< AMP::Mesh::MeshElement > getElement(size_t dof) const override
Get the mesh element for a DOF.
size_t appendDOFs(const AMP::Mesh::MeshElementID &id, size_t *dofs, size_t index, size_t capacity) const override
virtual ~structuredFaceDOFManager()
Deconstructor.
AMP::Mesh::MeshElementID getElementID(size_t dof) const override
Get the mesh element ID for a DOF.
size_t getRowDOFs(const AMP::Mesh::MeshElementID &id, size_t *dofs, size_t N_alloc, bool sort=true) const override
Get the row DOFs given a mesh element.
std::vector< AMP::Mesh::MeshElementID > d_remote_ids[3]
structuredFaceDOFManager(std::shared_ptr< AMP::Mesh::Mesh > mesh, int DOFsPerFace[3], int gcw)
Create a new DOF manager object.
int getDOFsPerPoint() const override
Get the number of DOFs per element.
std::vector< size_t > getRemoteDOFs() const override
Get the remote DOFs for a vector.
structuredFaceDOFManager()=delete
Empty Constructor.
std::vector< AMP::Mesh::MeshElementID > d_local_ids[3]
AMP::Mesh::MeshIterator getIterator() const override
Get an entry over the mesh elements associated with the DOFs.
std::shared_ptr< const AMP::Mesh::Mesh > getMesh() const override
Get the underlying mesh.
A class used to iterate over elements in a Mesh.
A structure used to identify the mesh element.
Definition MeshID.h:156



Advanced Multi-Physics (AMP)
Oak Ridge National Laboratory
Idaho National Laboratory
Los Alamos National Laboratory
This page automatically produced from the
source code by doxygen
Last updated: Tue Mar 10 2026 13:06:40.
Comments on this page