Advanced Multi-Physics (AMP)
On-Line Documentation
Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes | List of all members
AMP::Discretization::subsetCommSelfDOFManager Class Reference

A derived class to subset a DOFManagers. More...

#include <subsetCommSelfDOFManager.h>

Inheritance diagram for AMP::Discretization::subsetCommSelfDOFManager:
Inheritance graph
[legend]

Public Member Functions

size_t appendDOFs (const AMP::Mesh::MeshElementID &id, size_t *dofs, size_t index, size_t capacity) const override
 
virtual size_t beginDOF () const
 The first D.O.F. on this core.
 
virtual std::string className () const
 Return a string with the mesh class name.
 
virtual size_t endDOF () const
 One past the last D.O.F. on this core.
 
const AMP_MPIgetComm () const
 Get the comm for the DOFManger.
 
virtual std::shared_ptr< const DOFManagergetDOFManager () const
 Get the parent DOFManager.
 
void getDOFs (const AMP::Mesh::MeshElementID &id, std::vector< size_t > &dofs) const
 Get the entry indices of DOFs given a mesh element ID.
 
void getDOFs (const std::vector< AMP::Mesh::MeshElementID > &ids, std::vector< size_t > &dofs) const
 Get the entry indices of DOFs given a mesh element ID.
 
void getDOFs (int N_ids, const AMP::Mesh::MeshElementID *ids, std::vector< size_t > &dofs) const
 Get the entry indices of DOFs given a mesh element ID.
 
int getDOFsPerPoint () const override
 Get the number of DOFs per element.
 
std::unique_ptr< AMP::Mesh::MeshElementgetElement (size_t dof) const override
 Get the mesh element for a DOF.
 
AMP::Mesh::MeshElementID getElementID (size_t dof) const override
 Get the mesh element ID for a DOF.
 
uint64_t getID () const
 Get a unique id hash.
 
AMP::Mesh::MeshIterator getIterator () const override
 Get an entry over the mesh elements associated with the DOFs.
 
virtual std::vector< size_t > getLocalParentDOFs () const
 Function to return the local DOFs on the parent DOF manager.
 
std::vector< size_t > getLocalSizes () const override
 Get the local sizes on each rank.
 
std::shared_ptr< const AMP::Mesh::MeshgetMesh () const override
 Get the underlying mesh.
 
virtual std::vector< size_t > getParentDOF (const std::vector< size_t > &) const
 Function to convert DOFs from a subset DOFManager DOF to the parent DOF.
 
std::vector< size_t > getRemoteDOFs () const override
 Get the remote DOFs for a vector.
 
std::vector< size_t > getRowDOFs (const AMP::Mesh::MeshElementID &id) const
 Get the row DOFs given a mesh element.
 
virtual size_t getRowDOFs (const AMP::Mesh::MeshElementID &id, size_t *dofs, size_t N_alloc, bool sort=true) const
 Get the row DOFs given a mesh element.
 
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.
 
virtual std::vector< size_t > getSubsetDOF (const std::vector< size_t > &) const
 
virtual size_t numGlobalDOF () const
 The global number of D.O.F.
 
virtual size_t numLocalDOF () const
 The local number of D.O.F.
 
bool operator!= (const DOFManager &rhs) const
 Inverse of ==.
 
virtual bool operator== (const DOFManager &rhs) const
 Compares two DOFManager for equality.
 
virtual void registerChildObjects (AMP::IO::RestartManager *manager) const
 Register any child objects.
 
virtual void replaceRemoteDOFs (std::vector< size_t > &newRemote)
 
std::shared_ptr< AMP::Discretization::DOFManagershared_from_this ()
 
std::shared_ptr< const AMP::Discretization::DOFManagershared_from_this () const
 
virtual std::shared_ptr< DOFManagersubset (const AMP::Mesh::MeshIterator &iterator, const AMP_MPI &comm)
 Subset the DOF Manager for a mesh element iterator.
 
virtual std::shared_ptr< DOFManagersubset (const AMP_MPI &comm)
 Subset the DOF Manager for a AMP_MPI communicator.
 
virtual std::shared_ptr< DOFManagersubset (const std::shared_ptr< const AMP::Mesh::Mesh > mesh, bool useMeshComm=true)
 Subset the DOF Manager for a mesh.
 
 subsetCommSelfDOFManager ()
 Empty constructor.
 
 subsetCommSelfDOFManager (std::shared_ptr< const DOFManager > parentDOFManager)
 Default constructor.
 
virtual void writeRestart (int64_t fid) const
 Write restart data to file.
 
virtual ~subsetCommSelfDOFManager ()=default
 Deconstructor.
 

Protected Member Functions

size_t getSubsetDOF (size_t N, size_t *dofs) const
 

Protected Attributes

size_t d_begin = 0
 The begining DOF, ending DOF and number of local DOFs for this processor.
 
AMP_MPI d_comm
 The comm for this DOFManager.
 
size_t d_end = 0
 
size_t d_global = 0
 
std::vector< size_t > d_localSize
 
std::vector< size_t > d_remoteDOFs
 The remote dofs (if cached)
 
std::shared_ptr< DOFManagerParametersparams
 The DOF manager parameters.
 
std::weak_ptr< AMP::Discretization::DOFManagerweak_ptr_
 

Private Attributes

size_t d_parentBegin
 The parent begin, end, and global DOFs.
 
std::shared_ptr< const DOFManagerd_parentDOFManager
 The parent DOF Manager.
 
size_t d_parentEnd
 

Detailed Description

A derived class to subset a DOFManagers.

This derived class impliments a concrete DOF_Manager for maintaining a subset of a DOFManager.

Definition at line 18 of file subsetCommSelfDOFManager.h.

Constructor & Destructor Documentation

◆ subsetCommSelfDOFManager() [1/2]

AMP::Discretization::subsetCommSelfDOFManager::subsetCommSelfDOFManager ( )

Empty constructor.

◆ subsetCommSelfDOFManager() [2/2]

AMP::Discretization::subsetCommSelfDOFManager::subsetCommSelfDOFManager ( std::shared_ptr< const DOFManager parentDOFManager)

Default constructor.

This is the default constructor for creating a subset DOF manager.

Parameters
[in]parentDOFManagerThe parent DOF manager

◆ ~subsetCommSelfDOFManager()

virtual AMP::Discretization::subsetCommSelfDOFManager::~subsetCommSelfDOFManager ( )
virtualdefault

Deconstructor.

Member Function Documentation

◆ appendDOFs()

size_t AMP::Discretization::subsetCommSelfDOFManager::appendDOFs ( const AMP::Mesh::MeshElementID id,
size_t *  dofs,
size_t  index,
size_t  capacity 
) const
overridevirtual

Reimplemented from AMP::Discretization::DOFManager.

◆ beginDOF()

virtual size_t AMP::Discretization::DOFManager::beginDOF ( ) const
virtualinherited

The first D.O.F. on this core.

Returns
The first D.O.F. on this core

◆ className()

virtual std::string AMP::Discretization::DOFManager::className ( ) const
virtualinherited

Return a string with the mesh class name.

Reimplemented in AMP::Discretization::simpleDOFManager.

◆ endDOF()

virtual size_t AMP::Discretization::DOFManager::endDOF ( ) const
virtualinherited

One past the last D.O.F. on this core.

Returns
One past the last D.O.F. on this core

◆ getComm()

const AMP_MPI & AMP::Discretization::DOFManager::getComm ( ) const
inlineinherited

Get the comm for the DOFManger.

Definition at line 168 of file DOF_Manager.h.

References AMP::Discretization::DOFManager::d_comm.

◆ getDOFManager()

virtual std::shared_ptr< const DOFManager > AMP::Discretization::subsetCommSelfDOFManager::getDOFManager ( ) const
virtual

Get the parent DOFManager.

◆ getDOFs() [1/3]

void AMP::Discretization::DOFManager::getDOFs ( const AMP::Mesh::MeshElementID id,
std::vector< size_t > &  dofs 
) const
inherited

Get the entry indices of DOFs given a mesh element ID.

This will return a vector of pointers into a Vector that are associated with which.

Parameters
[in]idThe element ID to collect nodal objects for. Note: the mesh element may be any type (include a vertex).
[out]dofsThe entries in the vector associated with D.O.F.s

◆ getDOFs() [2/3]

void AMP::Discretization::DOFManager::getDOFs ( const std::vector< AMP::Mesh::MeshElementID > &  ids,
std::vector< size_t > &  dofs 
) const
inherited

Get the entry indices of DOFs given a mesh element ID.

This will return a vector of pointers into a Vector that are associated with which.

Parameters
[in]idsThe element IDs to collect nodal objects for. Note: the mesh element may be any type (include a vertex).
[out]dofsThe entries in the vector associated with D.O.F.s on the nodes

◆ getDOFs() [3/3]

void AMP::Discretization::DOFManager::getDOFs ( int  N_ids,
const AMP::Mesh::MeshElementID ids,
std::vector< size_t > &  dofs 
) const
inherited

Get the entry indices of DOFs given a mesh element ID.

This will return a vector of pointers into a Vector that are associated with which.

Parameters
[in]N_idsThe number of element ids
[in]idsThe element IDs to collect nodal objects for. Note: the mesh element may be any type (include a vertex).
[out]dofsThe entries in the vector associated with D.O.F.s on the nodes

◆ getDOFsPerPoint()

int AMP::Discretization::subsetCommSelfDOFManager::getDOFsPerPoint ( ) const
overridevirtual

Get the number of DOFs per element.

This will return the number of DOFs per mesh element. If some DOFs are not associated with a mesh element or if all elements do not contain the same number of DOFs than this routine will return -1.

Reimplemented from AMP::Discretization::DOFManager.

◆ getElement()

std::unique_ptr< AMP::Mesh::MeshElement > AMP::Discretization::subsetCommSelfDOFManager::getElement ( size_t  dof) const
overridevirtual

Get the mesh element for a DOF.

This will return the mesh element associated with a given DOF.

Parameters
[in]dofThe entry in the vector associated with DOF
Returns
The element for the given DOF.

Reimplemented from AMP::Discretization::DOFManager.

◆ getElementID()

AMP::Mesh::MeshElementID AMP::Discretization::subsetCommSelfDOFManager::getElementID ( size_t  dof) const
overridevirtual

Get the mesh element ID for a DOF.

This will return the mesh element id associated with a given DOF.

Parameters
[in]dofThe entry in the vector associated with DOF
Returns
The element id for the given DOF.

Reimplemented from AMP::Discretization::DOFManager.

◆ getID()

uint64_t AMP::Discretization::DOFManager::getID ( ) const
inherited

Get a unique id hash.

◆ getIterator()

AMP::Mesh::MeshIterator AMP::Discretization::subsetCommSelfDOFManager::getIterator ( ) const
overridevirtual

Get an entry over the mesh elements associated with the DOFs.

This will return an iterator over the mesh elements associated with the DOFs. Note: if any sub-DOFManagers are the same, then this will iterate over repeated elements.

Reimplemented from AMP::Discretization::DOFManager.

◆ getLocalParentDOFs()

virtual std::vector< size_t > AMP::Discretization::subsetCommSelfDOFManager::getLocalParentDOFs ( ) const
virtual

Function to return the local DOFs on the parent DOF manager.

◆ getLocalSizes()

std::vector< size_t > AMP::Discretization::subsetCommSelfDOFManager::getLocalSizes ( ) const
inlineoverridevirtual

Get the local sizes on each rank.

Reimplemented from AMP::Discretization::DOFManager.

Definition at line 91 of file subsetCommSelfDOFManager.h.

References AMP::Discretization::DOFManager::d_begin, and AMP::Discretization::DOFManager::d_end.

◆ getMesh()

std::shared_ptr< const AMP::Mesh::Mesh > AMP::Discretization::subsetCommSelfDOFManager::getMesh ( ) const
overridevirtual

Get the underlying mesh.

This will return the mesh(es) that underly the DOF manager (if they exist)

Reimplemented from AMP::Discretization::DOFManager.

◆ getParentDOF()

virtual std::vector< size_t > AMP::Discretization::subsetCommSelfDOFManager::getParentDOF ( const std::vector< size_t > &  ) const
virtual

Function to convert DOFs from a subset DOFManager DOF to the parent DOF.

◆ getRemoteDOFs()

std::vector< size_t > AMP::Discretization::subsetCommSelfDOFManager::getRemoteDOFs ( ) const
overridevirtual

Get the remote DOFs for a vector.

Reimplemented from AMP::Discretization::DOFManager.

◆ getRowDOFs() [1/3]

std::vector< size_t > AMP::Discretization::DOFManager::getRowDOFs ( const AMP::Mesh::MeshElementID id) const

Get the row DOFs given a mesh element.

◆ getRowDOFs() [2/3]

virtual size_t AMP::Discretization::DOFManager::getRowDOFs ( const AMP::Mesh::MeshElementID id,
size_t *  dofs,
size_t  N_alloc,
bool  sort = true 
) const
virtual

Get the row DOFs given a mesh element.

Reimplemented from AMP::Discretization::DOFManager.

◆ getRowDOFs() [3/3]

size_t AMP::Discretization::subsetCommSelfDOFManager::getRowDOFs ( const AMP::Mesh::MeshElementID id,
size_t *  dofs,
size_t  N_alloc,
bool  sort = true 
) const
overridevirtual

Get the row DOFs given a mesh element.

Reimplemented from AMP::Discretization::DOFManager.

◆ getSubsetDOF() [1/2]

virtual std::vector< size_t > AMP::Discretization::subsetCommSelfDOFManager::getSubsetDOF ( const std::vector< size_t > &  ) const
virtual

Function to convert DOFs from the parent DOF to a subset manager DOF. Note: if the parent DOF does not exist in the subset, then -1 will be returned in it's place

◆ getSubsetDOF() [2/2]

size_t AMP::Discretization::subsetCommSelfDOFManager::getSubsetDOF ( size_t  N,
size_t *  dofs 
) const
protected

◆ numGlobalDOF()

virtual size_t AMP::Discretization::DOFManager::numGlobalDOF ( ) const
virtualinherited

The global number of D.O.F.

Returns
The global number of D.O.F

◆ numLocalDOF()

virtual size_t AMP::Discretization::DOFManager::numLocalDOF ( ) const
virtualinherited

The local number of D.O.F.

Returns
The local number of D.O.F

◆ operator!=()

bool AMP::Discretization::DOFManager::operator!= ( const DOFManager rhs) const
inherited

Inverse of ==.

This function performs an equality check and negates it. Hence, it is not virtual

Parameters
rhsDOFManager to compare

◆ operator==()

virtual bool AMP::Discretization::DOFManager::operator== ( const DOFManager rhs) const
virtualinherited

Compares two DOFManager for equality.

This operation compares two DOF managers to see if they are equivalent

Parameters
rhsDOFManager to compare

◆ registerChildObjects()

virtual void AMP::Discretization::DOFManager::registerChildObjects ( AMP::IO::RestartManager manager) const
virtualinherited

Register any child objects.

This function will register child objects with the manager

Parameters
managerRestart manager

Reimplemented in AMP::Discretization::simpleDOFManager.

◆ replaceRemoteDOFs()

virtual void AMP::Discretization::DOFManager::replaceRemoteDOFs ( std::vector< size_t > &  newRemote)
inlinevirtualinherited

Definition at line 174 of file DOF_Manager.h.

References AMP::Discretization::DOFManager::d_remoteDOFs.

◆ shared_from_this() [1/2]

std::shared_ptr< AMP::Discretization::DOFManager > AMP::enable_shared_from_this< AMP::Discretization::DOFManager >::shared_from_this ( )
inlineinherited

Definition at line 28 of file enable_shared_from_this.h.

◆ shared_from_this() [2/2]

std::shared_ptr< const AMP::Discretization::DOFManager > AMP::enable_shared_from_this< AMP::Discretization::DOFManager >::shared_from_this ( ) const
inlineinherited

Definition at line 46 of file enable_shared_from_this.h.

◆ subset() [1/3]

virtual std::shared_ptr< DOFManager > AMP::Discretization::DOFManager::subset ( const AMP::Mesh::MeshIterator iterator,
const AMP_MPI comm 
)
virtual

Subset the DOF Manager for a mesh element iterator.

This will subset a DOF manager for a given mesh element iterator. The resulting DOFManager will exist on the privided comm.

Parameters
[in]iteratorThe mesh iterator for the subset
[in]commThe desired comm

Reimplemented from AMP::Discretization::DOFManager.

◆ subset() [2/3]

virtual std::shared_ptr< DOFManager > AMP::Discretization::DOFManager::subset ( const AMP_MPI comm)
virtual

Subset the DOF Manager for a AMP_MPI communicator.

This will subset a DOF manager for a given communicator.

Parameters
[in]commThe communicator to use to subset

Reimplemented from AMP::Discretization::DOFManager.

◆ subset() [3/3]

virtual std::shared_ptr< DOFManager > AMP::Discretization::DOFManager::subset ( const std::shared_ptr< const AMP::Mesh::Mesh mesh,
bool  useMeshComm = true 
)
virtual

Subset the DOF Manager for a mesh.

This will subset a DOF manager for a particular mesh. The resulting DOFManager can exist on either the comm of the parent DOF manager, or the comm of the mesh (default).

Parameters
[in]meshThe mesh to use to subset
[in]useMeshCommDo we want to use the mesh comm for the new DOFManager. Note: if this is true, any processors that do not contain the mesh will return NULL.

Reimplemented from AMP::Discretization::DOFManager.

◆ writeRestart()

virtual void AMP::Discretization::DOFManager::writeRestart ( int64_t  fid) const
virtualinherited

Write restart data to file.

This function will write the mesh to an HDF5 file

Parameters
fidFile identifier to write

Reimplemented in AMP::Discretization::simpleDOFManager.

Member Data Documentation

◆ d_begin

size_t AMP::Discretization::DOFManager::d_begin = 0
protectedinherited

The begining DOF, ending DOF and number of local DOFs for this processor.

Definition at line 260 of file DOF_Manager.h.

Referenced by getLocalSizes().

◆ d_comm

AMP_MPI AMP::Discretization::DOFManager::d_comm
protectedinherited

The comm for this DOFManager.

Definition at line 267 of file DOF_Manager.h.

Referenced by AMP::Discretization::DOFManager::getComm().

◆ d_end

size_t AMP::Discretization::DOFManager::d_end = 0
protectedinherited

Definition at line 260 of file DOF_Manager.h.

Referenced by getLocalSizes().

◆ d_global

size_t AMP::Discretization::DOFManager::d_global = 0
protectedinherited

Definition at line 260 of file DOF_Manager.h.

◆ d_localSize

std::vector<size_t> AMP::Discretization::DOFManager::d_localSize
mutableprotectedinherited

Definition at line 261 of file DOF_Manager.h.

◆ d_parentBegin

size_t AMP::Discretization::subsetCommSelfDOFManager::d_parentBegin
private

The parent begin, end, and global DOFs.

Definition at line 125 of file subsetCommSelfDOFManager.h.

◆ d_parentDOFManager

std::shared_ptr<const DOFManager> AMP::Discretization::subsetCommSelfDOFManager::d_parentDOFManager
private

The parent DOF Manager.

Definition at line 122 of file subsetCommSelfDOFManager.h.

◆ d_parentEnd

size_t AMP::Discretization::subsetCommSelfDOFManager::d_parentEnd
private

Definition at line 125 of file subsetCommSelfDOFManager.h.

◆ d_remoteDOFs

std::vector<size_t> AMP::Discretization::DOFManager::d_remoteDOFs
protectedinherited

The remote dofs (if cached)

Definition at line 264 of file DOF_Manager.h.

Referenced by AMP::Discretization::DOFManager::replaceRemoteDOFs().

◆ params

std::shared_ptr<DOFManagerParameters> AMP::Discretization::DOFManager::params
protectedinherited

The DOF manager parameters.

Definition at line 257 of file DOF_Manager.h.

◆ weak_ptr_

std::weak_ptr<AMP::Discretization::DOFManager > AMP::enable_shared_from_this< AMP::Discretization::DOFManager >::weak_ptr_
mutableprotectedinherited

Definition at line 69 of file enable_shared_from_this.h.


The documentation for this class was generated from the following file:



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:42.
Comments on this page