libMesh
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
libMesh::Elem::SideIter Class Reference

The definition of the protected nested SideIter class. More...

#include <elem.h>

Public Member Functions

 SideIter (const unsigned int side_number, Elem *parent)
 
 SideIter ()
 
 SideIter (const SideIter &other)
 
SideIter & operator= (const SideIter &other)
 
Elem *& operator* () const
 
SideIter & operator++ ()
 
bool operator== (const SideIter &other) const
 
bool side_on_boundary () const
 

Private Member Functions

void _update_side_ptr () const
 

Private Attributes

std::unique_ptr< Elem > _side
 
Elem * _side_ptr
 
Elem * _parent
 
unsigned int _side_number
 

Detailed Description

The definition of the protected nested SideIter class.

Definition at line 3493 of file elem.h.

Constructor & Destructor Documentation

◆ SideIter() [1/3]

libMesh::Elem::SideIter::SideIter ( const unsigned int  side_number,
Elem *  parent 
)
inline

Definition at line 3497 of file elem.h.

3499 : _side(),
3500 _side_ptr(nullptr),
3501 _parent(parent),
3502 _side_number(side_number)
3503 {}
std::unique_ptr< Elem > _side
Definition elem.h:3582
unsigned int _side_number
Definition elem.h:3597
const Elem * parent() const
Definition elem.h:3168

◆ SideIter() [2/3]

libMesh::Elem::SideIter::SideIter ( )
inline

Definition at line 3507 of file elem.h.

3508 : _side(),
3509 _side_ptr(nullptr),
3510 _parent(nullptr),
3512 {}
const unsigned int invalid_uint
A number which is used quite often to represent an invalid or uninitialized value for an unsigned int...
Definition libmesh.h:303

◆ SideIter() [3/3]

libMesh::Elem::SideIter::SideIter ( const SideIter &  other)
inline

Definition at line 3516 of file elem.h.

3517 : _side(),
3518 _side_ptr(nullptr),
3519 _parent(other._parent),
3520 _side_number(other._side_number)
3521 {}

Member Function Documentation

◆ _update_side_ptr()

void libMesh::Elem::SideIter::_update_side_ptr ( ) const
inlineprivate

Definition at line 3570 of file elem.h.

3571 {
3572 // Construct new side, store in std::unique_ptr
3573 this->_side = this->_parent->build_side_ptr(this->_side_number);
3574
3575 // Also set our internal naked pointer. Memory is still owned
3576 // by the std::unique_ptr.
3577 this->_side_ptr = _side.get();
3578 }
virtual std::unique_ptr< Elem > build_side_ptr(const unsigned int i)=0

References _parent, _side, _side_number, _side_ptr, and libMesh::Elem::build_side_ptr().

Referenced by operator*().

◆ operator*()

Elem *& libMesh::Elem::SideIter::operator* ( ) const
inline

Definition at line 3533 of file elem.h.

3534 {
3535 // Set the std::unique_ptr
3536 this->_update_side_ptr();
3537
3538 // Return a reference to _side_ptr
3539 return this->_side_ptr;
3540 }
void _update_side_ptr() const
Definition elem.h:3570

References _side_ptr, and _update_side_ptr().

◆ operator++()

SideIter & libMesh::Elem::SideIter::operator++ ( )
inline

Definition at line 3543 of file elem.h.

3544 {
3545 ++_side_number;
3546 return *this;
3547 }

References _side_number.

◆ operator=()

SideIter & libMesh::Elem::SideIter::operator= ( const SideIter &  other)
inline

Definition at line 3525 of file elem.h.

3526 {
3527 this->_parent = other._parent;
3528 this->_side_number = other._side_number;
3529 return *this;
3530 }

References _parent, and _side_number.

◆ operator==()

bool libMesh::Elem::SideIter::operator== ( const SideIter &  other) const
inline

Definition at line 3551 of file elem.h.

3552 {
3553 return (this->_side_number == other._side_number &&
3554 this->_parent == other._parent);
3555 }

References _parent, and _side_number.

◆ side_on_boundary()

bool libMesh::Elem::SideIter::side_on_boundary ( ) const
inline

Definition at line 3562 of file elem.h.

3563 {
3564 return this->_parent->neighbor_ptr(_side_number) == nullptr;
3565 }
const Elem * neighbor_ptr(unsigned int i) const
Definition elem.h:2736

References _parent, _side_number, and libMesh::Elem::neighbor_ptr().

Member Data Documentation

◆ _parent

Elem* libMesh::Elem::SideIter::_parent
private

Definition at line 3594 of file elem.h.

Referenced by _update_side_ptr(), operator=(), operator==(), and side_on_boundary().

◆ _side

std::unique_ptr<Elem> libMesh::Elem::SideIter::_side
mutableprivate

Definition at line 3582 of file elem.h.

Referenced by _update_side_ptr().

◆ _side_number

unsigned int libMesh::Elem::SideIter::_side_number
private

Definition at line 3597 of file elem.h.

Referenced by _update_side_ptr(), operator++(), operator=(), operator==(), and side_on_boundary().

◆ _side_ptr

Elem* libMesh::Elem::SideIter::_side_ptr
mutableprivate

Definition at line 3591 of file elem.h.

Referenced by _update_side_ptr(), and operator*().


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