Advanced Multi-Physics (AMP)
On-Line Documentation
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Friends | List of all members
AMP::Mesh::BoxMesh Class Referenceabstract

A class used to represent a logically rectangular box mesh. More...

#include <BoxMesh.h>

Inheritance diagram for AMP::Mesh::BoxMesh:
Inheritance graph
[legend]

Classes

class  Box
 Structure to identify a logical box. More...
 
class  MeshElementIndex
 Structure to uniquely identify an element. More...
 
class  MeshElementIndexIterator
 Iterator over a box. More...
 

Public Types

typedef AMP::Utilities::stackVector< std::pair< MeshElementIndex, MeshElementIndex >, 32 > ElementBlocks
 
using ElementListPtr = MeshElementVectorPtr
 
typedef std::function< std::shared_ptr< Mesh >(std::shared_ptr< const MeshParameters >)> generatorType
 Generator for meshes.
 
using MeshElementPtr = std::unique_ptr< MeshElement >
 Pointer to MeshElement and MeshElementVector.
 
enum class  Movable : uint8_t { Fixed = 0 , Displace = 1 , Deform = 2 }
 Enumeration for basic mesh-based quantities. More...
 

Public Member Functions

std::unique_ptr< Meshclone () const override=0
 Virtual function to copy the mesh (allows use to proply copy the derived class)
 
virtual bool containsElement (const MeshElementID &id) const
 
MeshElementIndex convert (const MeshElementID &id) const
 Convert the MeshElementID to the MeshElementIndex.
 
MeshElementID convert (const MeshElementIndex &id) const
 Convert the MeshElementIndex to the MeshElementID.
 
virtual void coord (const MeshElementIndex &index, double *pos) const =0
 Return a mesh element's coordinates given it's id.
 
MeshIterator createIterator (const ElementBlocks &list) const
 
std::shared_ptr< AMP::LinearAlgebra::VectorcreateVector (const std::string &name, int gcw=0)
 Create an ArrayVector over the mesh.
 
virtual void displaceMesh (const std::vector< double > &x)=0
 Displace the entire mesh.
 
virtual void displaceMesh (std::shared_ptr< const AMP::LinearAlgebra::Vector > x)=0
 Displace the entire mesh.
 
void fixPeriodic (MeshElementIndex &id) const
 Fix periodic boundaries in the element index.
 
virtual std::vector< MeshIDgetAllMeshIDs () const
 
virtual std::vector< MeshIDgetBaseMeshIDs () const
 
virtual MeshIterator getBlockIDIterator (const GeomType type, const int id, const int gcw=0) const override final
 Return an MeshIterator over the given geometric objects on the given block ID set.
 
std::vector< int > getBlockIDs () const override final
 Return the list of all boundary ID sets in the mesh.
 
virtual MeshIterator getBoundaryIDIterator (const GeomType type, const int id, const int gcw=0) const override final
 Return an MeshIterator over the given geometric objects on the given boundary ID set.
 
std::vector< int > getBoundaryIDs () const override final
 Return the list of all boundary ID sets in the mesh.
 
const auto & getBoundingBox () const
 Get the bounding box for the mesh.
 
const AMP_MPIgetComm () const
 Get the communicator for the mesh.
 
uint8_t getDim () const
 Get the physical dimension of the mesh.
 
MeshElementPtr getElement (const MeshElementID &id) const override final
 Return a mesh element given it's id.
 
structuredMeshElement getElement (const MeshElementIndex &index) const
 Return a mesh element given it's id.
 
MeshElementIndex getElementFromLogical (const AMP::Geometry::Point &x, GeomType type) const
 Return the element containing the point.
 
MeshElementIndex getElementFromPhysical (const AMP::Geometry::Point &x, GeomType type) const
 Return the element containing the point.
 
virtual ElementListPtr getElementParents (const MeshElement &elem, const GeomType type) const override final
 Return the parent elements of the given mesh element.
 
auto getGeometry ()
 Return the geometry of the mesh.
 
auto getGeometry () const
 Return the geometry of the mesh.
 
GeomType getGeomType () const
 Get the largest geometric type in the mesh.
 
Box getGlobalBox (int gcw=0) const
 Return the global logical box.
 
MeshIterator getIterator (const GeomType type, const int gcw=0) const override final
 Return an MeshIterator over the given geometric objects.
 
ElementBlocks getIteratorRange (std::array< int, 6 > range, const GeomType type, const int gcw) const
 
virtual std::vector< MeshIDgetLocalBaseMeshIDs () const
 
std::array< int, 6 > getLocalBlock (int rank) const
 
const auto & getLocalBoundingBox () const
 Get the bounding box for the local part of the mesh.
 
Box getLocalBox (int gcw=0) const
 Return the local logical box.
 
virtual std::vector< MeshIDgetLocalMeshIDs () const
 
uint8_t getMaxGhostWidth () const
 Get the maximum ghost width.
 
virtual std::string getName () const
 Get the mesh name.
 
virtual std::shared_ptr< AMP::LinearAlgebra::VectorgetPositionVector (std::string name, const int gcw=0) const
 Get a vector of the coordinates of the nodes.
 
int getRank (const MeshElementIndex &id) const
 Get the rank that owns the element.
 
ElementBlocks getSurface (int surface, GeomType type) const
 
int getSurfaceID (int surface) const
 
virtual MeshIterator getSurfaceIterator (const GeomType type, const int gcw=0) const override final
 Return an MeshIterator over the given geometric objects on the surface.
 
virtual std::array< AMP::Array< double >, 3 > globalCoord () const =0
 Return the vertex coordinates for the global box.
 
ElementBlocks intersect (const ElementBlocks &v1, const ElementBlocks &v2) const
 
virtual bool isBaseMesh () const
 Is the current mesh a base mesh.
 
virtual bool isMember (const MeshElementID &id) const
 Check if an element is in the mesh.
 
virtual MeshIterator isMember (const MeshIterator &it) const
 Check if elements are in the mesh.
 
virtual Movable isMeshMovable () const =0
 Is the mesh movable.
 
virtual bool isOnBoundary (const MeshElementIndex &index, int id) const
 Check if the element is on the given boundary id.
 
virtual bool isOnSurface (const MeshElementIndex &index) const
 Check if the element is on the surface.
 
virtual std::array< AMP::Array< double >, 3 > localCoord () const =0
 Return the vertex coordinates for the local box.
 
ArraySize localSize () const
 Return the size of the mesh.
 
virtual std::string meshClass () const =0
 Return a string with the mesh class name.
 
MeshID meshID () const
 Get the mesh ID.
 
std::vector< size_t > numBlocks () const
 Return the number of blocks.
 
size_t numGhostElements (const GeomType type, const int gcw) const override final
 
size_t numGlobalElements (const GeomType type) const override final
 
size_t numLocalElements (const GeomType type) const override final
 
bool operator!= (const Mesh &mesh) const
 Check if two meshes are not equal.
 
bool operator== (const Mesh &mesh) const override
 Check if two meshes are equal.
 
std::vector< bool > periodic () const
 Return the bool vector indicating which directions are periodic.
 
virtual AMP::Geometry::Point physicalToLogical (const AMP::Geometry::Point &x) const =0
 Return the logical coordinates.
 
virtual uint64_t positionHash () const =0
 Identify if the position has moved.
 
virtual void registerChildObjects (AMP::IO::RestartManager *manager) const
 Register child objects.
 
virtual void setName (std::string name)
 Set the mesh name.
 
std::shared_ptr< AMP::Mesh::Meshshared_from_this ()
 
std::shared_ptr< const AMP::Mesh::Meshshared_from_this () const
 
ArraySize size () const
 Return the size of the mesh.
 
virtual std::shared_ptr< MeshSubset (const MeshIterator &iterator, bool isGlobal=true) const
 Subset a mesh given a MeshIterator.
 
virtual std::shared_ptr< MeshSubset (Mesh &mesh) const
 Subset a mesh given another mesh.
 
virtual std::shared_ptr< MeshSubset (MeshID meshID) const
 Subset a mesh given a MeshID.
 
virtual std::shared_ptr< MeshSubset (std::string name) const
 Subset a mesh given a mesh name.
 
virtual ~BoxMesh ()
 Destructor.
 

Static Public Member Functions

static CompareResult compare (const Mesh &a, const Mesh &b)
 Compare two meshes.
 
static std::shared_ptr< MeshcreateView (const Mesh &mesh, const AMP::Database &db)
 Create a view of existing mesh(s)
 
static ArraySize estimateLogicalMeshSize (std::shared_ptr< const MeshParameters > params)
 Estimate the number of elements in the mesh.
 
static size_t estimateMeshSize (std::shared_ptr< const MeshParameters > params)
 Estimate the number of elements in the mesh.
 
static std::shared_ptr< BoxMeshgenerate (std::shared_ptr< const MeshParameters > params)
 Read in mesh files, partition domain, and prepare environment for simulation.
 
static MeshIterator getIterator (SetOP OP, const MeshIterator &, MeshIteratorEnd)
 
static MeshIterator getIterator (SetOP OP, const MeshIterator &A, const MeshIterator &B)
 Return an MeshIterator constructed through a set operation of two other MeshIterators.
 
static MeshIterator getIterator (SetOP OP, MeshIteratorEnd, const MeshIterator &)
 
static MeshIterator getIterator (SetOP OP, MeshIteratorEnd, MeshIteratorEnd)
 
static size_t maxProcs (std::shared_ptr< const MeshParameters > params)
 Return the maximum number of processors that can be used with the mesh.
 
static void printMeshHierarchy (const Mesh &mesh, std::ostream &out=std::cout, const std::string &prefix="")
 Print the mesh hierarchy<iostream>
 

Protected Types

typedef std::vector< MeshElementIndexIndexList
 
typedef std::shared_ptr< IndexListListPtr
 
typedef std::tuple< IndexList, IndexListSurfaceMapStruct
 

Protected Member Functions

 BoxMesh ()
 
 BoxMesh (const BoxMesh &)
 
 BoxMesh (int64_t, AMP::IO::RestartManager *)
 
 BoxMesh (std::shared_ptr< const MeshParameters >)
 
virtual void createBoundingBox ()
 
template<uint8_t NDIM>
std::vector< MeshElementIndexcreateMap (const std::vector< MeshElementIndex >) const
 
void createMaps ()
 
void finalize (const std::string &name, const std::vector< double > &displacement)
 
std::vector< double > getDisplacement (std::shared_ptr< const AMP::Database > db)
 
ElementBlocks getSurface2 (int surface, GeomType type) const
 
void initialize (const std::array< int, 3 > &size, const std::array< int, 6 > &ids, const std::vector< int > &minSize={})
 
bool onSide (const MeshElementIndex &index, int d, int s) const
 
BoxMeshoperator= (const BoxMesh &)=delete
 
void setMeshID ()
 
void writeRestart (int64_t) const override
 Write restart data to file.
 

Static Protected Member Functions

static void fillCartesianNodes (int dim, const int *globalSize, const double *range, const std::vector< MeshElementIndex > &index, std::vector< double > *coord)
 
static void loadBalance (std::array< int, 3 > size, int N_procs, std::vector< int > *startIndex, std::vector< int > minSize={})
 
static std::vector< double > reduceBox (const std::vector< double > &, const AMP_MPI &)
 Fill the domain box from the local box (requires communication)
 

Protected Attributes

int d_blockID
 
std::vector< ListPtrd_bnd [4][6]
 
std::vector< double > d_box
 The bounding box for the mesh.
 
std::vector< double > d_box_local
 The bounding box for the mesh.
 
AMP_MPI d_comm
 The communicator over which the mesh is stored.
 
const std::vector< int > d_endIndex [3]
 
std::shared_ptr< Geometry::Geometryd_geometry
 The geometry parameters.
 
const std::array< int, 3 > d_globalSize
 
const std::array< int, 3 > d_indexSize
 
const std::array< int, 6 > d_localIndex
 
uint8_t d_max_gcw
 The maximum ghost cell width.
 
MeshID d_meshID
 A unique id for each mesh.
 
std::string d_name
 A name for the mesh.
 
const std::array< int, 3 > d_numBlocks
 
const int d_rank
 
const int d_size
 
const std::vector< int > d_startIndex [3]
 
std::vector< ListPtrd_surface [4]
 
const std::array< int, 6 > d_surfaceId
 
SurfaceMapStruct d_surfaceMaps [3]
 
GeomType GeomDim
 The geometric dimension.
 
uint8_t PhysicalDim
 The physical dimension.
 
std::weak_ptr< AMP::Mesh::Meshweak_ptr_
 

Friends

class structuredMeshElement
 
class structuredMeshIterator
 

Detailed Description

A class used to represent a logically rectangular box mesh.

This class provides routines for creating and managing a logically rectangular mesh domain. The mesh is described by the number of elements in each direction and may be periodic along any given direction. The database may specify some simple options to generate meshes:

   MeshName - Name of the mesh
   dim - Dimension of the mesh
   Generator - "cube", "circle, "cylinder", "tube", "sphere", "shell"
   Size - ndim array with the number of intervals in each direction.
          nx, ny, nz are the number of intervals in each direction, nr is the number of intervals
          in the radius, and nphi is the number of intervals in the asmuthal direction.
          cube (2d) - [ nx, ny      ]
          cube (3d) - [ nx, ny, nz  ]
          circle    - [ nr          ]
          cylinder  - [ nr, nz      ]
          tube      - [ nr, nphi, nz]
          sphere    - [ nr          ]
          shell     - [ nr, nphi    ]
   Range - Array specifying the physical size of the mesh.
          cube (2d) - [ x-min, x-max, y-min, y-max, z-min, z-max ]
          cube (3d) - [ x-min, x-max, y-min, y-max               ]
          circle    - [ r                                        ]
          cylinder  - [ r,     z_min, z_max                      ]
          tube      - [ r_min, r_max, z_min, z_max               ]
          sphere    - [ r                                        ]
          shell     - [ r_min, r_max                             ]
   Periodic - Are any dimensions periodic (optional)
          cube (2d) - [ x_dir, y_dir ]
          cube (3d) - [ x_dir, y_dir, z_dir ]
          circle    - Not supported
          cylinder  - [ z_dir ]
          tube      - [ z_dir ]
          sphere    - Not supported
          shell     - Not supported
   GCW -  The maximum ghost cell width to support (optional, default is 1)
   x_offset - Offset in x-direction (optional)
   y_offset - Offset in y-direction (optional)
   z_offset - Offset in z-direction (optional)

Definition at line 70 of file BoxMesh.h.

Member Typedef Documentation

◆ ElementBlocks

Definition at line 468 of file BoxMesh.h.

◆ ElementListPtr

Definition at line 70 of file Mesh.h.

◆ generatorType

Generator for meshes.

This is a user-supplied function to generate a mesh. Users may register their own mesh generators using registerGenerator and the mesh builder will call them.

Definition at line 66 of file Mesh.h.

◆ IndexList

typedef std::vector<MeshElementIndex> AMP::Mesh::BoxMesh::IndexList
protected

Definition at line 542 of file BoxMesh.h.

◆ ListPtr

typedef std::shared_ptr<IndexList> AMP::Mesh::BoxMesh::ListPtr
protected

Definition at line 543 of file BoxMesh.h.

◆ MeshElementPtr

using AMP::Mesh::Mesh::MeshElementPtr = std::unique_ptr<MeshElement>
inherited

Pointer to MeshElement and MeshElementVector.

Definition at line 69 of file Mesh.h.

◆ SurfaceMapStruct

Definition at line 544 of file BoxMesh.h.

Member Enumeration Documentation

◆ Movable

enum class AMP::Mesh::Mesh::Movable : uint8_t
stronginherited

Enumeration for basic mesh-based quantities.

Enumerator
Fixed 
Displace 
Deform 

Definition at line 73 of file Mesh.h.

Constructor & Destructor Documentation

◆ ~BoxMesh()

virtual AMP::Mesh::BoxMesh::~BoxMesh ( )
virtual

Destructor.

◆ BoxMesh() [1/4]

AMP::Mesh::BoxMesh::BoxMesh ( std::shared_ptr< const MeshParameters )
explicitprotected

◆ BoxMesh() [2/4]

AMP::Mesh::BoxMesh::BoxMesh ( const BoxMesh )
explicitprotected

◆ BoxMesh() [3/4]

AMP::Mesh::BoxMesh::BoxMesh ( int64_t  ,
AMP::IO::RestartManager  
)
protected

◆ BoxMesh() [4/4]

AMP::Mesh::BoxMesh::BoxMesh ( )
protected

Member Function Documentation

◆ clone()

std::unique_ptr< Mesh > AMP::Mesh::BoxMesh::clone ( ) const
overridepure virtual

Virtual function to copy the mesh (allows use to proply copy the derived class)

Implements AMP::Mesh::Mesh.

Implemented in AMP::Mesh::MovableBoxMesh, AMP::Mesh::PureLogicalMesh, and AMP::Mesh::StructuredGeometryMesh.

◆ compare()

static CompareResult AMP::Mesh::Mesh::compare ( const Mesh a,
const Mesh b 
)
staticinherited

Compare two meshes.

This function compares two meshes.

Parameters
[in]aFirst mesh to compare
[in]bSecond mesh to compare
Returns
Result of comparison

◆ containsElement()

virtual bool AMP::Mesh::Mesh::containsElement ( const MeshElementID id) const
virtualinherited

Check if the mesh contains the given mesh element

Reimplemented in AMP::Mesh::MultiMesh, and AMP::Mesh::SubsetMesh.

◆ convert() [1/2]

MeshElementIndex AMP::Mesh::BoxMesh::convert ( const MeshElementID id) const
inline

Convert the MeshElementID to the MeshElementIndex.

◆ convert() [2/2]

MeshElementID AMP::Mesh::BoxMesh::convert ( const MeshElementIndex id) const
inline

◆ coord()

virtual void AMP::Mesh::BoxMesh::coord ( const MeshElementIndex index,
double *  pos 
) const
pure virtual

Return a mesh element's coordinates given it's id.

This function queries the mesh to get an element's coordinates given the mesh id. Ideally, this should be done in O(1) time, but the implementation is up to the underlying mesh.

Parameters
[in]indexMesh element index we are requesting.
[out]posMesh element coordinates

Implemented in AMP::Mesh::MovableBoxMesh, AMP::Mesh::PureLogicalMesh, and AMP::Mesh::StructuredGeometryMesh.

Referenced by AMP::Mesh::structuredMeshElement::coord().

◆ createBoundingBox()

virtual void AMP::Mesh::BoxMesh::createBoundingBox ( )
protectedvirtual

Reimplemented in AMP::Mesh::PureLogicalMesh.

◆ createIterator()

MeshIterator AMP::Mesh::BoxMesh::createIterator ( const ElementBlocks list) const

◆ createMap()

template<uint8_t NDIM>
std::vector< MeshElementIndex > AMP::Mesh::BoxMesh::createMap ( const std::vector< MeshElementIndex ) const
protected

◆ createMaps()

void AMP::Mesh::BoxMesh::createMaps ( )
protected

◆ createVector()

std::shared_ptr< AMP::LinearAlgebra::Vector > AMP::Mesh::BoxMesh::createVector ( const std::string &  name,
int  gcw = 0 
)

Create an ArrayVector over the mesh.

◆ createView()

static std::shared_ptr< Mesh > AMP::Mesh::Mesh::createView ( const Mesh mesh,
const AMP::Database db 
)
staticinherited

Create a view of existing mesh(s)

This function creates a view of existing mesh(s)

Parameters
meshExisting mesh(s)
dbDatabase to control the view

◆ displaceMesh() [1/2]

virtual void AMP::Mesh::Mesh::displaceMesh ( const std::vector< double > &  x)
pure virtualinherited

Displace the entire mesh.

This function will displace the entire mesh by a scalar value. This function is a blocking call for the mesh communicator, and requires the same value on all processors. The displacement vector should be the size of the physical dimension.

Parameters
xDisplacement vector

Implemented in AMP::Mesh::libmeshMesh, AMP::Mesh::MultiMesh, AMP::Mesh::MovableBoxMesh, AMP::Mesh::PureLogicalMesh, AMP::Mesh::StructuredGeometryMesh, AMP::Mesh::SubsetMesh, and AMP::Mesh::TriangleMesh< NG >.

◆ displaceMesh() [2/2]

virtual void AMP::Mesh::Mesh::displaceMesh ( std::shared_ptr< const AMP::LinearAlgebra::Vector x)
pure virtualinherited

Displace the entire mesh.

This function will displace the entire mesh by displacing each node by the values provided in the vector. This function is a blocking call for the mesh communicator

Parameters
xDisplacement vector. Must have N DOFs per node where N is the physical dimension of the mesh.

Implemented in AMP::Mesh::libmeshMesh, AMP::Mesh::MultiMesh, AMP::Mesh::MovableBoxMesh, AMP::Mesh::SubsetMesh, AMP::Mesh::TriangleMesh< NG >, AMP::Mesh::PureLogicalMesh, and AMP::Mesh::StructuredGeometryMesh.

◆ estimateLogicalMeshSize()

static ArraySize AMP::Mesh::BoxMesh::estimateLogicalMeshSize ( std::shared_ptr< const MeshParameters params)
static

Estimate the number of elements in the mesh.

This function will estimate the number of elements in the mesh. This is used so that we can properly balance the meshes across multiple processors. Ideally this should be both an accurate estimate and very fast. It should not require any communication and should not have to actually load a mesh.

Parameters
paramsParameters for constructing a mesh from an input database

◆ estimateMeshSize()

static size_t AMP::Mesh::BoxMesh::estimateMeshSize ( std::shared_ptr< const MeshParameters params)
static

Estimate the number of elements in the mesh.

This function will estimate the number of elements in the mesh. This is used so that we can properly balance the meshes across multiple processors. Ideally this should be both an accurate estimate and very fast. It should not require any communication and should not have to actually load a mesh.

Parameters
paramsParameters for constructing a mesh from an input database

◆ fillCartesianNodes()

static void AMP::Mesh::BoxMesh::fillCartesianNodes ( int  dim,
const int *  globalSize,
const double *  range,
const std::vector< MeshElementIndex > &  index,
std::vector< double > *  coord 
)
staticprotected

◆ finalize()

void AMP::Mesh::BoxMesh::finalize ( const std::string &  name,
const std::vector< double > &  displacement 
)
protected

◆ fixPeriodic()

void AMP::Mesh::BoxMesh::fixPeriodic ( MeshElementIndex id) const
inline

Fix periodic boundaries in the element index.

◆ generate()

static std::shared_ptr< BoxMesh > AMP::Mesh::BoxMesh::generate ( std::shared_ptr< const MeshParameters params)
static

Read in mesh files, partition domain, and prepare environment for simulation.

For trivial parallelism, this method reads in the meshes on each processor. Each processor contains a piece of each mesh. For massive parallelism, each mesh is on its own communicator. As such, some math libraries must be initialized accordingly.

Parameters
paramsParameters for constructing a mesh from an input database

◆ getAllMeshIDs()

virtual std::vector< MeshID > AMP::Mesh::Mesh::getAllMeshIDs ( ) const
virtualinherited

Get the meshIDs of all meshes that compose the current mesh (including its self) Note: This function may require global communication depending on the implementation

Reimplemented in AMP::Mesh::MultiMesh, and AMP::Mesh::SubsetMesh.

◆ getBaseMeshIDs()

virtual std::vector< MeshID > AMP::Mesh::Mesh::getBaseMeshIDs ( ) const
virtualinherited

Get the meshIDs of all the basic meshes that compose the current mesh (excluding multimeshes and subset meshes) Note: This function may require global communication depending on the implementation

Reimplemented in AMP::Mesh::MultiMesh, and AMP::Mesh::SubsetMesh.

◆ getBlockIDIterator()

virtual MeshIterator AMP::Mesh::BoxMesh::getBlockIDIterator ( const GeomType  type,
const int  id,
const int  gcw = 0 
) const
finaloverridevirtual

Return an MeshIterator over the given geometric objects on the given block ID set.

Return an MeshIterator over the given geometric objects on the given block ID set

Parameters
typeGeometric type to iterate over
idBlock id for the elements (example: block id in cubit, subdomain in libmesh)
gcwDesired ghost cell width

Reimplemented from AMP::Mesh::Mesh.

◆ getBlockIDs()

std::vector< int > AMP::Mesh::BoxMesh::getBlockIDs ( ) const
finaloverridevirtual

Return the list of all boundary ID sets in the mesh.

Return the list of all boundary ID sets in the mesh Note: depending on the mesh this routine may require global communication across the mesh.

Reimplemented from AMP::Mesh::Mesh.

◆ getBoundaryIDIterator()

virtual MeshIterator AMP::Mesh::BoxMesh::getBoundaryIDIterator ( const GeomType  type,
const int  id,
const int  gcw = 0 
) const
finaloverridevirtual

Return an MeshIterator over the given geometric objects on the given boundary ID set.

Return an MeshIterator over the given geometric objects on the given boundary ID set

Parameters
typeGeometric type to iterate over
idBoundary id for the elements (example: sideset id)
gcwDesired ghost cell width

Reimplemented from AMP::Mesh::Mesh.

◆ getBoundaryIDs()

std::vector< int > AMP::Mesh::BoxMesh::getBoundaryIDs ( ) const
finaloverridevirtual

Return the list of all boundary ID sets in the mesh.

Return the list of all boundary ID sets in the mesh Note: depending on the mesh this routine may require global communication across the mesh.

Reimplemented from AMP::Mesh::Mesh.

◆ getBoundingBox()

const auto & AMP::Mesh::Mesh::getBoundingBox ( ) const
inlineinherited

Get the bounding box for the mesh.

This function will return the bounding box for the entire mesh. The vector returned contains the box that contains the mesh in the form [ x_min x_max y_min y_max z_min z_max ].

Definition at line 408 of file Mesh.h.

References AMP::Mesh::Mesh::d_box.

◆ getComm()

const AMP_MPI & AMP::Mesh::Mesh::getComm ( ) const
inlineinherited

Get the communicator for the mesh.

Definition at line 336 of file Mesh.h.

References AMP::Mesh::Mesh::d_comm.

◆ getDim()

uint8_t AMP::Mesh::Mesh::getDim ( ) const
inlineinherited

Get the physical dimension of the mesh.

Definition at line 332 of file Mesh.h.

References AMP::Mesh::Mesh::PhysicalDim.

◆ getDisplacement()

std::vector< double > AMP::Mesh::BoxMesh::getDisplacement ( std::shared_ptr< const AMP::Database db)
protected

◆ getElement() [1/2]

MeshElementPtr AMP::Mesh::BoxMesh::getElement ( const MeshElementID id) const
finaloverridevirtual

Return a mesh element given it's id.

This function queries the mesh to get an element given the mesh id. This function is only required to return an element if the id is local. Ideally, this should be done in O(1) time, but the implementation is up to the underlying mesh. The base class provides a basic implementation, but uses mesh iterators and requires O(N) time on the number of elements in the mesh.

Parameters
idMesh element id we are requesting.

Reimplemented from AMP::Mesh::Mesh.

◆ getElement() [2/2]

structuredMeshElement AMP::Mesh::BoxMesh::getElement ( const MeshElementIndex index) const

Return a mesh element given it's id.

This function queries the mesh to get an element given the mesh id. This function is only required to return an element if the id is local. Ideally, this should be done in O(1) time, but the implementation is up to the underlying mesh. The base class provides a basic implementation, but uses mesh iterators and requires O(N) time on the number of elements in the mesh.

Parameters
indexMesh element index we are requesting.

◆ getElementFromLogical()

MeshElementIndex AMP::Mesh::BoxMesh::getElementFromLogical ( const AMP::Geometry::Point x,
GeomType  type 
) const

Return the element containing the point.

This function queries the mesh to get the element index given a logical point

Parameters
[in]xLogical coordinates in [0,1]
typeGeometric type to get
Returns
Returns the element containing the logical point. Note: it will return a null index (isNull) if no element of the given type contains the point.

◆ getElementFromPhysical()

MeshElementIndex AMP::Mesh::BoxMesh::getElementFromPhysical ( const AMP::Geometry::Point x,
GeomType  type 
) const

Return the element containing the point.

This function queries the mesh to get the element index given a physical point. This functionallity requires physicalToLogical which may not be supported by all meshes.

Parameters
[in]xPhysical coordinates
typeGeometric type to get
Returns
Returns the element containing the physical point. Note: it will return a null index (isNull) if no element of the given type contains the point.

◆ getElementParents()

virtual ElementListPtr AMP::Mesh::BoxMesh::getElementParents ( const MeshElement elem,
const GeomType  type 
) const
finaloverridevirtual

Return the parent elements of the given mesh element.

This function queries the mesh to get an element given the mesh id, then returns the parent elements that have the element as a child

Parameters
elemMesh element of interest
typeElement type of the parents requested

Reimplemented from AMP::Mesh::Mesh.

◆ getGeometry() [1/2]

auto AMP::Mesh::Mesh::getGeometry ( )
inlineinherited

Return the geometry of the mesh.

This function will return the geometry for the mesh if it exists. Not all meshes will have a geometry associated with them.

Definition at line 106 of file Mesh.h.

References AMP::Mesh::Mesh::d_geometry.

◆ getGeometry() [2/2]

auto AMP::Mesh::Mesh::getGeometry ( ) const
inlineinherited

Return the geometry of the mesh.

This function will return the geometry for the mesh if it exists. Not all meshes will have a geometry associated with them.

Definition at line 114 of file Mesh.h.

References AMP::Mesh::Mesh::d_geometry.

◆ getGeomType()

GeomType AMP::Mesh::Mesh::getGeomType ( ) const
inlineinherited

Get the largest geometric type in the mesh.

Definition at line 328 of file Mesh.h.

References AMP::Mesh::Mesh::GeomDim.

◆ getGlobalBox()

Box AMP::Mesh::BoxMesh::getGlobalBox ( int  gcw = 0) const
inline

Return the global logical box.

◆ getIterator() [1/5]

MeshIterator AMP::Mesh::BoxMesh::getIterator ( const GeomType  type,
const int  gcw = 0 
) const
finaloverridevirtual

Return an MeshIterator over the given geometric objects.

Return an MeshIterator over the given geometric objects

Parameters
typeGeometric type to iterate over
gcwDesired ghost cell width

Reimplemented from AMP::Mesh::Mesh.

◆ getIterator() [2/5]

static MeshIterator AMP::Mesh::Mesh::getIterator ( SetOP  OP,
const MeshIterator ,
MeshIteratorEnd   
)
staticinherited

◆ getIterator() [3/5]

static MeshIterator AMP::Mesh::Mesh::getIterator ( SetOP  OP,
const MeshIterator A,
const MeshIterator B 
)
staticinherited

Return an MeshIterator constructed through a set operation of two other MeshIterators.

Return an MeshIterator constructed through a set operation of two other MeshIterators.

Parameters
OPSet operation to perform. SetOP::Union - Perform a union of the iterators ( A U B ) SetOP::Intersection - Perform an intersection of the iterators ( A n B ) SetOP::Complement - Perform a compliment of the iterators ( A - B )
APointer to MeshIterator A
BPointer to MeshIterator B

◆ getIterator() [4/5]

static MeshIterator AMP::Mesh::Mesh::getIterator ( SetOP  OP,
MeshIteratorEnd  ,
const MeshIterator  
)
staticinherited

◆ getIterator() [5/5]

static MeshIterator AMP::Mesh::Mesh::getIterator ( SetOP  OP,
MeshIteratorEnd  ,
MeshIteratorEnd   
)
staticinherited

◆ getIteratorRange()

ElementBlocks AMP::Mesh::BoxMesh::getIteratorRange ( std::array< int, 6 >  range,
const GeomType  type,
const int  gcw 
) const

◆ getLocalBaseMeshIDs()

virtual std::vector< MeshID > AMP::Mesh::Mesh::getLocalBaseMeshIDs ( ) const
virtualinherited

Get the meshIDs of all the basic meshes that compose the current mesh (excluding multimeshes and subset meshes) on the current processor.

Reimplemented in AMP::Mesh::MultiMesh, and AMP::Mesh::SubsetMesh.

◆ getLocalBlock()

std::array< int, 6 > AMP::Mesh::BoxMesh::getLocalBlock ( int  rank) const
inline

◆ getLocalBoundingBox()

const auto & AMP::Mesh::Mesh::getLocalBoundingBox ( ) const
inlineinherited

Get the bounding box for the local part of the mesh.

This function will return the bounding box for the local part of the mesh. The vector returned contains the box that contains the mesh in the form [ x_min x_max y_min y_max z_min z_max ].

Definition at line 417 of file Mesh.h.

References AMP::Mesh::Mesh::d_box_local.

◆ getLocalBox()

Box AMP::Mesh::BoxMesh::getLocalBox ( int  gcw = 0) const
inline

Return the local logical box.

◆ getLocalMeshIDs()

virtual std::vector< MeshID > AMP::Mesh::Mesh::getLocalMeshIDs ( ) const
virtualinherited

Get the meshIDs of all meshes that compose the current mesh (including its self) on the current processor.

Reimplemented in AMP::Mesh::MultiMesh, and AMP::Mesh::SubsetMesh.

◆ getMaxGhostWidth()

uint8_t AMP::Mesh::Mesh::getMaxGhostWidth ( ) const
inlineinherited

Get the maximum ghost width.

Definition at line 340 of file Mesh.h.

References AMP::Mesh::Mesh::d_max_gcw.

◆ getName()

virtual std::string AMP::Mesh::Mesh::getName ( ) const
inlinevirtualinherited

Get the mesh name.

Definition at line 395 of file Mesh.h.

References AMP::Mesh::Mesh::d_name.

◆ getPositionVector()

virtual std::shared_ptr< AMP::LinearAlgebra::Vector > AMP::Mesh::Mesh::getPositionVector ( std::string  name,
const int  gcw = 0 
) const
virtualinherited

Get a vector of the coordinates of the nodes.

This function will return a const vector containing the coordinates of all the nodes.

Parameters
nameName of the vector
gcwDesired ghost cell width

◆ getRank()

int AMP::Mesh::BoxMesh::getRank ( const MeshElementIndex id) const
inline

Get the rank that owns the element.

◆ getSurface()

ElementBlocks AMP::Mesh::BoxMesh::getSurface ( int  surface,
GeomType  type 
) const

◆ getSurface2()

ElementBlocks AMP::Mesh::BoxMesh::getSurface2 ( int  surface,
GeomType  type 
) const
protected

◆ getSurfaceID()

int AMP::Mesh::BoxMesh::getSurfaceID ( int  surface) const

◆ getSurfaceIterator()

virtual MeshIterator AMP::Mesh::BoxMesh::getSurfaceIterator ( const GeomType  type,
const int  gcw = 0 
) const
finaloverridevirtual

Return an MeshIterator over the given geometric objects on the surface.

Return an MeshIterator over the given geometric objects on the surface

Parameters
typeGeometric type to iterate over
gcwDesired ghost cell width

Reimplemented from AMP::Mesh::Mesh.

◆ globalCoord()

virtual std::array< AMP::Array< double >, 3 > AMP::Mesh::BoxMesh::globalCoord ( ) const
pure virtual

Return the vertex coordinates for the global box.

This function returns the vertices for all local cells

Implemented in AMP::Mesh::MovableBoxMesh, AMP::Mesh::PureLogicalMesh, and AMP::Mesh::StructuredGeometryMesh.

◆ initialize()

void AMP::Mesh::BoxMesh::initialize ( const std::array< int, 3 > &  size,
const std::array< int, 6 > &  ids,
const std::vector< int > &  minSize = {} 
)
protected

◆ intersect()

ElementBlocks AMP::Mesh::BoxMesh::intersect ( const ElementBlocks v1,
const ElementBlocks v2 
) const

◆ isBaseMesh()

virtual bool AMP::Mesh::Mesh::isBaseMesh ( ) const
virtualinherited

Is the current mesh a base mesh.

Reimplemented in AMP::Mesh::MultiMesh, and AMP::Mesh::SubsetMesh.

◆ isMember() [1/2]

virtual bool AMP::Mesh::Mesh::isMember ( const MeshElementID id) const
virtualinherited

Check if an element is in the mesh.

This function queries the mesh to determine if the given element is a member of the mesh

Parameters
idMesh element id we are querying.

Reimplemented in AMP::Mesh::MultiMesh, and AMP::Mesh::SubsetMesh.

◆ isMember() [2/2]

virtual MeshIterator AMP::Mesh::Mesh::isMember ( const MeshIterator it) const
virtualinherited

Check if elements are in the mesh.

This function queries the mesh to determine if each of the given elements is a member of the mesh and returns an iterator over those elements

Parameters
itIterator containing mesh element id we are querying.
Returns
Iterator containing elements that are part of the mesh

Reimplemented in AMP::Mesh::MultiMesh, and AMP::Mesh::SubsetMesh.

◆ isMeshMovable()

virtual Movable AMP::Mesh::Mesh::isMeshMovable ( ) const
pure virtualinherited

Is the mesh movable.

This function will check if the mesh can be displaced.

Returns
enum indicating the extent the mesh can be moved

Implemented in AMP::Mesh::libmeshMesh, AMP::Mesh::MultiMesh, AMP::Mesh::MovableBoxMesh, AMP::Mesh::PureLogicalMesh, AMP::Mesh::StructuredGeometryMesh, AMP::Mesh::SubsetMesh, and AMP::Mesh::TriangleMesh< NG >.

◆ isOnBoundary()

virtual bool AMP::Mesh::BoxMesh::isOnBoundary ( const MeshElementIndex index,
int  id 
) const
virtual

Check if the element is on the given boundary id.

◆ isOnSurface()

virtual bool AMP::Mesh::BoxMesh::isOnSurface ( const MeshElementIndex index) const
virtual

Check if the element is on the surface.

◆ loadBalance()

static void AMP::Mesh::BoxMesh::loadBalance ( std::array< int, 3 >  size,
int  N_procs,
std::vector< int > *  startIndex,
std::vector< int >  minSize = {} 
)
staticprotected

◆ localCoord()

virtual std::array< AMP::Array< double >, 3 > AMP::Mesh::BoxMesh::localCoord ( ) const
pure virtual

Return the vertex coordinates for the local box.

This function returns the vertices for all local cells

Implemented in AMP::Mesh::MovableBoxMesh, AMP::Mesh::PureLogicalMesh, and AMP::Mesh::StructuredGeometryMesh.

◆ localSize()

ArraySize AMP::Mesh::BoxMesh::localSize ( ) const
inline

Return the size of the mesh.

◆ maxProcs()

static size_t AMP::Mesh::BoxMesh::maxProcs ( std::shared_ptr< const MeshParameters params)
static

Return the maximum number of processors that can be used with the mesh.

This function will return the maximum number of processors that can be used with the mesh.

Parameters
paramsParameters for constructing a mesh from an input database

◆ meshClass()

virtual std::string AMP::Mesh::Mesh::meshClass ( ) const
pure virtualinherited

◆ meshID()

MeshID AMP::Mesh::Mesh::meshID ( ) const
inlineinherited

Get the mesh ID.

Definition at line 344 of file Mesh.h.

References AMP::Mesh::Mesh::d_meshID.

◆ numBlocks()

std::vector< size_t > AMP::Mesh::BoxMesh::numBlocks ( ) const
inline

Return the number of blocks.

◆ numGhostElements()

size_t AMP::Mesh::BoxMesh::numGhostElements ( const GeomType  type,
const int  gcw 
) const
finaloverridevirtual

Reimplemented from AMP::Mesh::Mesh.

◆ numGlobalElements()

size_t AMP::Mesh::BoxMesh::numGlobalElements ( const GeomType  type) const
finaloverridevirtual

Reimplemented from AMP::Mesh::Mesh.

◆ numLocalElements()

size_t AMP::Mesh::BoxMesh::numLocalElements ( const GeomType  type) const
finaloverridevirtual

Reimplemented from AMP::Mesh::Mesh.

◆ onSide()

bool AMP::Mesh::BoxMesh::onSide ( const MeshElementIndex index,
int  d,
int  s 
) const
protected

◆ operator!=()

bool AMP::Mesh::Mesh::operator!= ( const Mesh mesh) const
inlineinherited

Check if two meshes are not equal.

Definition at line 356 of file Mesh.h.

References AMP::Mesh::Mesh::operator==().

◆ operator=()

BoxMesh & AMP::Mesh::BoxMesh::operator= ( const BoxMesh )
protecteddelete

◆ operator==()

bool AMP::Mesh::BoxMesh::operator== ( const Mesh mesh) const
overridevirtual

Check if two meshes are equal.

Implements AMP::Mesh::Mesh.

Reimplemented in AMP::Mesh::MovableBoxMesh, AMP::Mesh::PureLogicalMesh, and AMP::Mesh::StructuredGeometryMesh.

◆ periodic()

std::vector< bool > AMP::Mesh::BoxMesh::periodic ( ) const
inline

Return the bool vector indicating which directions are periodic.

◆ physicalToLogical()

virtual AMP::Geometry::Point AMP::Mesh::BoxMesh::physicalToLogical ( const AMP::Geometry::Point x) const
pure virtual

Return the logical coordinates.

This function queries the mesh to get the logical coordinates in [0,1] from the physical coordinates. Not all meshes support this functionallity.

Parameters
[in]xPhysical coordinates
Returns
Returns the logical coordinates

Implemented in AMP::Mesh::MovableBoxMesh, AMP::Mesh::PureLogicalMesh, and AMP::Mesh::StructuredGeometryMesh.

◆ positionHash()

virtual uint64_t AMP::Mesh::Mesh::positionHash ( ) const
pure virtualinherited

Identify if the position has moved.

This function will return a hash that can be used to identify if the mesh has been moved. Any time that displaceMesh is called, the hash value should change. There is no requirement that dispacing a mesh and returning it back to the original position will return the original hash.

Returns
hash value with current position id

Implemented in AMP::Mesh::libmeshMesh, AMP::Mesh::MultiMesh, AMP::Mesh::MovableBoxMesh, AMP::Mesh::PureLogicalMesh, AMP::Mesh::StructuredGeometryMesh, AMP::Mesh::SubsetMesh, and AMP::Mesh::TriangleMesh< NG >.

◆ printMeshHierarchy()

static void AMP::Mesh::Mesh::printMeshHierarchy ( const Mesh mesh,
std::ostream &  out = std::cout,
const std::string &  prefix = "" 
)
staticinherited

Print the mesh hierarchy<iostream>

◆ reduceBox()

static std::vector< double > AMP::Mesh::Mesh::reduceBox ( const std::vector< double > &  ,
const AMP_MPI  
)
staticprotectedinherited

Fill the domain box from the local box (requires communication)

◆ registerChildObjects()

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

Register child objects.

This function register child objects if necessary

Parameters
managerRestart manager

Reimplemented in AMP::Mesh::MultiMesh.

◆ setMeshID()

void AMP::Mesh::Mesh::setMeshID ( )
protectedinherited

A function to create a unique id for the mesh (requires the comm to be set) Note: this requires a global communication across the mesh communicator. Note: this function is NOT thread safe, and will need to be modified before threads are used.

◆ setName()

virtual void AMP::Mesh::Mesh::setName ( std::string  name)
inlinevirtualinherited

Set the mesh name.

Definition at line 399 of file Mesh.h.

References AMP::Mesh::Mesh::d_name.

◆ shared_from_this() [1/2]

std::shared_ptr< AMP::Mesh::Mesh > AMP::enable_shared_from_this< AMP::Mesh::Mesh >::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::Mesh::Mesh > AMP::enable_shared_from_this< AMP::Mesh::Mesh >::shared_from_this ( ) const
inlineinherited

Definition at line 46 of file enable_shared_from_this.h.

◆ size()

ArraySize AMP::Mesh::BoxMesh::size ( ) const
inline

Return the size of the mesh.

◆ Subset() [1/4]

virtual std::shared_ptr< Mesh > AMP::Mesh::Mesh::Subset ( const MeshIterator iterator,
bool  isGlobal = true 
) const
virtualinherited

Subset a mesh given a MeshIterator.

This function will subset a mesh over a given iterator. This will return a new mesh object.

Parameters
iteratorMeshIterator used to subset
isGlobalIs the new subset mesh global over the entire mesh (true,default), or do we only want to keep the local mesh (false)

Reimplemented in AMP::Mesh::MultiMesh, AMP::Mesh::SubsetMesh, and AMP::Mesh::MultiMesh.

◆ Subset() [2/4]

virtual std::shared_ptr< Mesh > AMP::Mesh::Mesh::Subset ( Mesh mesh) const
virtualinherited

Subset a mesh given another mesh.

This function will subset a mesh given another mesh

Parameters
meshMesh used to subset

Reimplemented in AMP::Mesh::MultiMesh, and AMP::Mesh::SubsetMesh.

◆ Subset() [3/4]

virtual std::shared_ptr< Mesh > AMP::Mesh::Mesh::Subset ( MeshID  meshID) const
virtualinherited

Subset a mesh given a MeshID.

This function will return the mesh with the given meshID. Note: for multimeshes, this will return the mesh with the given id. For a single mesh this will return a pointer to itself if the meshID matches the meshID of the mesh, and a null pointer otherwise.

Parameters
meshIDMeshID of the desired mesh

Reimplemented in AMP::Mesh::MultiMesh, AMP::Mesh::SubsetMesh, AMP::Mesh::MultiMesh, and AMP::Mesh::SubsetMesh.

◆ Subset() [4/4]

virtual std::shared_ptr< Mesh > AMP::Mesh::Mesh::Subset ( std::string  name) const
virtualinherited

Subset a mesh given a mesh name.

This function will return the mesh with the given name. For a single mesh this will return a pointer to itself if the mesh name matches the name of the mesh, and a null pointer otherwise. Note: The mesh name is not guaranteed to be unique. If there are multiple meshes with the same name, all meshed with the given name will be returned within a new multimesh. It is strongly recommended to use the meshID when possible.

Parameters
nameName of the desired mesh

Reimplemented in AMP::Mesh::MultiMesh, AMP::Mesh::SubsetMesh, AMP::Mesh::MultiMesh, and AMP::Mesh::SubsetMesh.

◆ writeRestart()

void AMP::Mesh::BoxMesh::writeRestart ( int64_t  fid) const
overrideprotectedvirtual

Write restart data to file.

This function will write the mesh to an HDF5 file

Parameters
fidFile identifier to write

Reimplemented from AMP::Mesh::Mesh.

Reimplemented in AMP::Mesh::MovableBoxMesh, AMP::Mesh::PureLogicalMesh, and AMP::Mesh::StructuredGeometryMesh.

Friends And Related Symbol Documentation

◆ structuredMeshElement

friend class structuredMeshElement
friend

Definition at line 540 of file BoxMesh.h.

◆ structuredMeshIterator

friend class structuredMeshIterator
friend

Definition at line 541 of file BoxMesh.h.

Member Data Documentation

◆ d_blockID

int AMP::Mesh::BoxMesh::d_blockID
protected

Definition at line 549 of file BoxMesh.h.

◆ d_bnd

std::vector<ListPtr> AMP::Mesh::BoxMesh::d_bnd[4][6]
mutableprotected

Definition at line 558 of file BoxMesh.h.

◆ d_box

std::vector<double> AMP::Mesh::Mesh::d_box
protectedinherited

The bounding box for the mesh.

Definition at line 564 of file Mesh.h.

Referenced by AMP::Mesh::Mesh::getBoundingBox().

◆ d_box_local

std::vector<double> AMP::Mesh::Mesh::d_box_local
protectedinherited

The bounding box for the mesh.

Definition at line 565 of file Mesh.h.

Referenced by AMP::Mesh::Mesh::getLocalBoundingBox().

◆ d_comm

AMP_MPI AMP::Mesh::Mesh::d_comm
protectedinherited

The communicator over which the mesh is stored.

Definition at line 562 of file Mesh.h.

Referenced by AMP::Mesh::Mesh::getComm().

◆ d_endIndex

const std::vector<int> AMP::Mesh::BoxMesh::d_endIndex[3]
protected

Definition at line 553 of file BoxMesh.h.

◆ d_geometry

std::shared_ptr<Geometry::Geometry> AMP::Mesh::Mesh::d_geometry
protectedinherited

The geometry parameters.

Definition at line 566 of file Mesh.h.

Referenced by AMP::Mesh::Mesh::getGeometry(), and AMP::Mesh::Mesh::getGeometry().

◆ d_globalSize

const std::array<int, 3> AMP::Mesh::BoxMesh::d_globalSize
protected

Definition at line 550 of file BoxMesh.h.

◆ d_indexSize

const std::array<int, 3> AMP::Mesh::BoxMesh::d_indexSize
protected

Definition at line 555 of file BoxMesh.h.

◆ d_localIndex

const std::array<int, 6> AMP::Mesh::BoxMesh::d_localIndex
protected

Definition at line 554 of file BoxMesh.h.

◆ d_max_gcw

uint8_t AMP::Mesh::Mesh::d_max_gcw
protectedinherited

The maximum ghost cell width.

Definition at line 560 of file Mesh.h.

Referenced by AMP::Mesh::Mesh::getMaxGhostWidth().

◆ d_meshID

MeshID AMP::Mesh::Mesh::d_meshID
protectedinherited

A unique id for each mesh.

Definition at line 561 of file Mesh.h.

Referenced by AMP::Mesh::Mesh::meshID().

◆ d_name

std::string AMP::Mesh::Mesh::d_name
protectedinherited

A name for the mesh.

Definition at line 563 of file Mesh.h.

Referenced by AMP::Mesh::Mesh::getName(), and AMP::Mesh::Mesh::setName().

◆ d_numBlocks

const std::array<int, 3> AMP::Mesh::BoxMesh::d_numBlocks
protected

Definition at line 551 of file BoxMesh.h.

◆ d_rank

const int AMP::Mesh::BoxMesh::d_rank
protected

Definition at line 548 of file BoxMesh.h.

◆ d_size

const int AMP::Mesh::BoxMesh::d_size
protected

Definition at line 548 of file BoxMesh.h.

◆ d_startIndex

const std::vector<int> AMP::Mesh::BoxMesh::d_startIndex[3]
protected

Definition at line 552 of file BoxMesh.h.

◆ d_surface

std::vector<ListPtr> AMP::Mesh::BoxMesh::d_surface[4]
mutableprotected

Definition at line 557 of file BoxMesh.h.

◆ d_surfaceId

const std::array<int, 6> AMP::Mesh::BoxMesh::d_surfaceId
protected

Definition at line 556 of file BoxMesh.h.

◆ d_surfaceMaps

SurfaceMapStruct AMP::Mesh::BoxMesh::d_surfaceMaps[3]
protected

Definition at line 559 of file BoxMesh.h.

◆ GeomDim

GeomType AMP::Mesh::Mesh::GeomDim
protectedinherited

The geometric dimension.

Definition at line 558 of file Mesh.h.

Referenced by AMP::Mesh::Mesh::getGeomType().

◆ PhysicalDim

uint8_t AMP::Mesh::Mesh::PhysicalDim
protectedinherited

The physical dimension.

Definition at line 559 of file Mesh.h.

Referenced by AMP::Mesh::Mesh::getDim().

◆ weak_ptr_

std::weak_ptr<AMP::Mesh::Mesh > AMP::enable_shared_from_this< AMP::Mesh::Mesh >::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:43.
Comments on this page