OPALX (Object Oriented Parallel Accelerator Library for Exascal) MINIorX
OPALX
IndexMap Class Reference

#include <IndexMap.h>

Collaboration diagram for IndexMap:

Classes

struct  Range
class  OutOfBounds
class  myCompare

Public Types

typedef Range key_t
typedef std::set< std::shared_ptr< Component > > value_t

Public Member Functions

 IndexMap ()
void add (key_t::first_type initialStep, key_t::second_type finalStep, const value_t &val)
value_t query (key_t::first_type s, key_t::second_type ds)
void tidyUp (double zstop)
void print (std::ostream &) const
void saveSDDS (double startS) const
size_t size () const
size_t numElements () const
key_t getRange (const IndexMap::value_t::value_type &element, double position) const
value_t getTouchingElements (const key_t &range) const

Private Types

typedef std::map< key_t, value_t, myComparemap_t
typedef std::multimap< value_t::value_type, key_tinvertedMap_t

Static Private Member Functions

static bool almostEqual (double, double)

Private Attributes

map_t mapRange2Element_m
invertedMap_t mapElement2Range_m
double totalPathLength_m

Static Private Attributes

static const double oneMinusEpsilon_m = 1.0 - std::numeric_limits<double>::epsilon()

Detailed Description

Definition at line 36 of file IndexMap.h.


Class Documentation

◆ IndexMap::Range

struct IndexMap::Range

Definition at line 39 of file IndexMap.h.

Collaboration diagram for IndexMap::Range:
Class Members
typedef double first_type
typedef double second_type
Class Members
first_type begin
second_type end

Member Typedef Documentation

◆ invertedMap_t

typedef std::multimap<value_t::value_type, key_t> IndexMap::invertedMap_t
private

Definition at line 95 of file IndexMap.h.

◆ key_t

Definition at line 46 of file IndexMap.h.

◆ map_t

typedef std::map<key_t, value_t, myCompare> IndexMap::map_t
private

Definition at line 94 of file IndexMap.h.

◆ value_t

typedef std::set<std::shared_ptr<Component> > IndexMap::value_t

Definition at line 47 of file IndexMap.h.

Constructor & Destructor Documentation

◆ IndexMap()

IndexMap::IndexMap ( )

Definition at line 43 of file IndexMap.cpp.

References mapElement2Range_m, mapRange2Element_m, and totalPathLength_m.

Member Function Documentation

◆ add()

void IndexMap::add ( key_t::first_type initialStep,
key_t::second_type finalStep,
const value_t & val )

Definition at line 112 of file IndexMap.cpp.

References almostEqual(), IndexMap::Range::begin, IndexMap::Range::end, mapElement2Range_m, mapRange2Element_m, oneMinusEpsilon_m, and totalPathLength_m.

Here is the call graph for this function:

◆ almostEqual()

bool IndexMap::almostEqual ( double x,
double y )
staticprivate

Definition at line 391 of file IndexMap.cpp.

Referenced by add(), and getTouchingElements().

Here is the caller graph for this function:

◆ getRange()

IndexMap::key_t IndexMap::getRange ( const IndexMap::value_t::value_type & element,
double position ) const

Definition at line 356 of file IndexMap.cpp.

References mapElement2Range_m.

◆ getTouchingElements()

IndexMap::value_t IndexMap::getTouchingElements ( const key_t & range) const

Definition at line 377 of file IndexMap.cpp.

References almostEqual(), IndexMap::Range::begin, end(), IndexMap::Range::end, and mapRange2Element_m.

Here is the call graph for this function:

◆ numElements()

size_t IndexMap::numElements ( ) const

◆ print()

void IndexMap::print ( std::ostream & out) const

Definition at line 49 of file IndexMap.cpp.

References IndexMap::Range::begin, IndexMap::Range::end, and mapRange2Element_m.

◆ query()

Definition at line 75 of file IndexMap.cpp.

References end(), mapRange2Element_m, and totalPathLength_m.

Here is the call graph for this function:

◆ saveSDDS()

void IndexMap::saveSDDS ( double startS) const

Definition at line 176 of file IndexMap.cpp.

References Util::combineFilePath(), end(), OpalData::getAuxiliaryOutputDirectory(), OpalData::getInputBasename(), OpalData::getInstance(), mapElement2Range_m, mapRange2Element_m, RFCAVITY, SIZE, and TRAVELINGWAVE.

Here is the call graph for this function:

◆ size()

size_t IndexMap::size ( ) const
inline

Definition at line 106 of file IndexMap.h.

References mapRange2Element_m.

◆ tidyUp()

void IndexMap::tidyUp ( double zstop)

Definition at line 147 of file IndexMap.cpp.

References mapRange2Element_m.

Member Data Documentation

◆ mapElement2Range_m

invertedMap_t IndexMap::mapElement2Range_m
private

Definition at line 97 of file IndexMap.h.

Referenced by add(), getRange(), IndexMap(), and saveSDDS().

◆ mapRange2Element_m

map_t IndexMap::mapRange2Element_m
private

Definition at line 96 of file IndexMap.h.

Referenced by add(), getTouchingElements(), IndexMap(), print(), query(), saveSDDS(), size(), and tidyUp().

◆ oneMinusEpsilon_m

const double IndexMap::oneMinusEpsilon_m = 1.0 - std::numeric_limits<double>::epsilon()
staticprivate

Definition at line 102 of file IndexMap.h.

Referenced by add().

◆ totalPathLength_m

double IndexMap::totalPathLength_m
private

Definition at line 99 of file IndexMap.h.

Referenced by add(), IndexMap(), and query().


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