OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
Loading...
Searching...
No Matches
ReferencePathSegment Class Reference

Reference-coordinate interval with optional legacy ELEMEDGE anchor. More...

#include <ReferencePathSegment.h>

Collaboration diagram for ReferencePathSegment:
Collaboration graph

Public Types

using element_set_t = std::set< std::shared_ptr< Component > >
 

Public Member Functions

 ReferencePathSegment (double begin=0.0, double end=0.0, const element_set_t &activeElements={}, const std::optional< double > &legacyElementEdge=std::nullopt)
 
double getBegin () const
 
double getEnd () const
 
const element_set_tgetActiveElements () const
 
bool hasLegacyElementEdge () const
 
const std::optional< double > & getLegacyElementEdge () const
 

Private Attributes

double begin_m
 
double end_m
 
element_set_t activeElements_m
 
std::optional< double > legacyElementEdge_m
 

Detailed Description

Reference-coordinate interval with optional legacy ELEMEDGE anchor.

This class belongs to the reference and ordering layer, not the geometric placement layer. It can therefore preserve ELEMEDGE for backward compatibility without making it the primary placement mechanism. In the first redesign stage the segment can also carry the active element set for the interval \([s_\mathrm{begin}, s_\mathrm{end}]\).

Definition at line 19 of file ReferencePathSegment.h.

Member Typedef Documentation

◆ element_set_t

using ReferencePathSegment::element_set_t = std::set<std::shared_ptr<Component> >

Definition at line 21 of file ReferencePathSegment.h.

Constructor & Destructor Documentation

◆ ReferencePathSegment()

ReferencePathSegment::ReferencePathSegment ( double  begin = 0.0,
double  end = 0.0,
const element_set_t activeElements = {},
const std::optional< double > &  legacyElementEdge = std::nullopt 
)
inline

Definition at line 23 of file ReferencePathSegment.h.

Member Function Documentation

◆ getActiveElements()

const element_set_t & ReferencePathSegment::getActiveElements ( ) const
inline

Definition at line 33 of file ReferencePathSegment.h.

References activeElements_m.

◆ getBegin()

double ReferencePathSegment::getBegin ( ) const
inline

Definition at line 31 of file ReferencePathSegment.h.

References begin_m.

Referenced by OrbitThreader::processElementRegister().

◆ getEnd()

double ReferencePathSegment::getEnd ( ) const
inline

Definition at line 32 of file ReferencePathSegment.h.

References end_m.

Referenced by OrbitThreader::processElementRegister().

◆ getLegacyElementEdge()

const std::optional< double > & ReferencePathSegment::getLegacyElementEdge ( ) const
inline

Definition at line 35 of file ReferencePathSegment.h.

References legacyElementEdge_m.

◆ hasLegacyElementEdge()

bool ReferencePathSegment::hasLegacyElementEdge ( ) const
inline

Definition at line 34 of file ReferencePathSegment.h.

References legacyElementEdge_m.

Member Data Documentation

◆ activeElements_m

element_set_t ReferencePathSegment::activeElements_m
private

Definition at line 40 of file ReferencePathSegment.h.

Referenced by getActiveElements().

◆ begin_m

double ReferencePathSegment::begin_m
private

Definition at line 38 of file ReferencePathSegment.h.

Referenced by getBegin().

◆ end_m

double ReferencePathSegment::end_m
private

Definition at line 39 of file ReferencePathSegment.h.

Referenced by getEnd().

◆ legacyElementEdge_m

std::optional<double> ReferencePathSegment::legacyElementEdge_m
private

Definition at line 41 of file ReferencePathSegment.h.

Referenced by getLegacyElementEdge(), and hasLegacyElementEdge().


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