KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
List of all members
Kratos::KDTreePartition< TLeafType > Class Template Reference

#include <kd_tree.h>

Inheritance diagram for Kratos::KDTreePartition< TLeafType >:
Collaboration diagram for Kratos::KDTreePartition< TLeafType >:

Public Member Functions

Life Cycle
 KDTreePartition (IndexType CutingDimension, CoordinateType Position, CoordinateType LeftEnd, CoordinateType RightEnd, TreeNodeType *pLeftChild=NULL, TreeNodeType *pRightChild=NULL)
 Partition constructor. More...
 
 ~KDTreePartition ()
 Destructor. More...
 
- Public Member Functions inherited from Kratos::KDTreePartitionBase< TLeafType >
 KDTreePartitionBase (IndexType CutingDimension, CoordinateType Position, CoordinateType LeftEnd, CoordinateType RightEnd, TreeNodeType *pLeftChild=NULL, TreeNodeType *pRightChild=NULL)
 Partition constructor. More...
 
void PrintData (std::ostream &rOStream, std::string const &Perfix=std::string()) const override
 
virtual ~KDTreePartitionBase ()
 Destructor. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (KDTreePartitionBase)
 Pointer definition of KDTree. More...
 
void SearchNearestPoint (PointType const &rThisPoint, PointerType &rResult, CoordinateType &rResultDistance) override
 
void SearchNearestPoint (PointType const &rThisPoint, PointerType &rResult, CoordinateType &rResultDistance, SearchStructureType &Auxiliar) override
 
void SearchInRadius (PointType const &ThisPoint, CoordinateType const &Radius, CoordinateType const &Radius2, IteratorType &Results, DistanceIteratorType &ResultsDistances, SizeType &NumberOfResults, SizeType const &MaxNumberOfResults) override
 
void SearchInRadius (PointType const &ThisPoint, CoordinateType const &Radius, CoordinateType const &Radius2, IteratorType &Results, DistanceIteratorType &ResultsDistances, SizeType &NumberOfResults, SizeType const &MaxNumberOfResults, SearchStructureType &Auxiliar) override
 
void SearchInRadius (PointType const &ThisPoint, CoordinateType const &Radius, CoordinateType const &Radius2, IteratorType &Results, SizeType &NumberOfResults, SizeType const &MaxNumberOfResults) override
 
void SearchInRadius (PointType const &ThisPoint, CoordinateType const &Radius, CoordinateType const &Radius2, IteratorType &Results, SizeType &NumberOfResults, SizeType const &MaxNumberOfResults, SearchStructureType &Auxiliar) override
 
void SearchInBox (PointType const &SearchMinPoint, PointType const &SearchMaxPoint, IteratorType &Results, SizeType &NumberOfResults, SizeType const &MaxNumberOfResults) override
 
- Public Member Functions inherited from Kratos::TreeNode< TLeafType::Dimension, TLeafType::PointType, TLeafType::PointerType, TLeafType::IteratorType, TLeafType::DistanceIteratorType >
 KRATOS_CLASS_POINTER_DEFINITION (TreeNode)
 Pointer definition of TreeNode. More...
 
 TreeNode ()
 
virtual ~TreeNode ()
 
virtual void SearchNearestPoint (PointType const &ThisPoint, PointerType &rResult, CoordinateType &rResultDistance)
 
virtual void SearchNearestPoint (PointType const &ThisPoint, PointerType &rResult, CoordinateType &rResultDistance, SearchStructureType &Auxiliar)
 
virtual void SearchInRadius (PointType const &ThisPoint, CoordinateType const &Radius, CoordinateType const &Radius2, IteratorType &Results, DistanceIteratorType &ResultsDistances, SizeType &NumberOfResults, SizeType const &MaxNumberOfResults)
 
virtual void SearchInRadius (PointType const &ThisPoint, CoordinateType const &Radius, CoordinateType const &Radius2, IteratorType &Results, DistanceIteratorType &ResultsDistances, SizeType &NumberOfResults, SizeType const &MaxNumberOfResults, SearchStructureType &Auxiliar)
 
virtual void SearchInRadius (PointType const &ThisPoint, CoordinateType const &Radius, CoordinateType const &Radius2, IteratorType &Results, SizeType &NumberOfResults, SizeType const &MaxNumberOfResults)
 
virtual void SearchInRadius (PointType const &ThisPoint, CoordinateType const &Radius, CoordinateType const &Radius2, IteratorType &Results, SizeType &NumberOfResults, SizeType const &MaxNumberOfResults, SearchStructureType &Auxiliar)
 
virtual void SearchInBox (PointType const &SearchMinPoint, PointType const &SearchMaxPoint, IteratorType &Results, SizeType &NumberOfResults, SizeType const &MaxNumberOfResults)
 

Static Public Member Functions

Operations
static IteratorType Partition (IteratorType PointsBegin, IteratorType PointsEnd, IndexType &rCuttingDimension, CoordinateType &rCuttingValue)
 
static SizeType MaxSpread (IteratorType PointsBegin, IteratorType PointsEnd)
 
static void MedianSplit (IteratorType PointsBegin, IteratorType PartitionPosition, IteratorType PointsEnd, IndexType CuttingDimension, CoordinateType &rCuttingValue)
 
static TreeNodeTypeConstruct (IteratorType PointsBegin, IteratorType PointsEnd, const PointType &HighPoint, const PointType &LowPoint, SizeType BucketSize)
 
- Static Public Member Functions inherited from Kratos::TreeNode< TLeafType::Dimension, TLeafType::PointType, TLeafType::PointerType, TLeafType::IteratorType, TLeafType::DistanceIteratorType >
static IteratorTypeNullIterator ()
 
static PointerTypeNullPointer ()
 
static TreeNodeNullLeaf ()
 

Type Definitions

enum  { Dimension = LeafType::Dimension }
 
typedef KDTreePartitionBase< TLeafType > BaseType
 
typedef TLeafType LeafType
 
typedef LeafType::PointType PointType
 
typedef LeafType::ContainerType ContainerType
 
typedef LeafType::IteratorType IteratorType
 
typedef LeafType::DistanceIteratorType DistanceIteratorType
 
typedef LeafType::PointerType PointerType
 
typedef LeafType::DistanceFunction DistanceFunction
 
typedef TreeNode< Dimension, PointType, PointerType, IteratorType, DistanceIteratorTypeTreeNodeType
 
typedef TreeNodeType::CoordinateType CoordinateType
 
typedef TreeNodeType::SizeType SizeType
 
typedef TreeNodeType::IndexType IndexType
 
typedef LeafType::SearchStructureType SearchStructureType
 
 KRATOS_CLASS_POINTER_DEFINITION (KDTreePartition)
 Pointer definition of KDTree. More...
 

Additional Inherited Members

- Public Types inherited from Kratos::KDTreePartitionBase< TLeafType >
enum  { Dimension = LeafType::Dimension }
 
typedef TLeafType LeafType
 
typedef LeafType::PointType PointType
 
typedef LeafType::ContainerType ContainerType
 
typedef LeafType::IteratorType IteratorType
 
typedef LeafType::DistanceIteratorType DistanceIteratorType
 
typedef LeafType::PointerType PointerType
 
typedef LeafType::DistanceFunction DistanceFunction
 
typedef TreeNode< Dimension, PointType, PointerType, IteratorType, DistanceIteratorTypeTreeNodeType
 
typedef TreeNodeType::CoordinateType CoordinateType
 
typedef TreeNodeType::SizeType SizeType
 
typedef TreeNodeType::IndexType IndexType
 
typedef LeafType::SearchStructureType SearchStructureType
 
- Public Types inherited from Kratos::TreeNode< TLeafType::Dimension, TLeafType::PointType, TLeafType::PointerType, TLeafType::IteratorType, TLeafType::DistanceIteratorType >
using SizeType = std::size_t
 Define SizeType as std::size_t. More...
 
using IndexType = std::size_t
 Define IndexType as std::size_t. More...
 
using CoordinateType = double
 Define CoordinateType as double. More...
 
using PointType = TLeafType::PointType
 Define PointType as TPointType. More...
 
using PointerType = TLeafType::PointerType
 Define PointerType as TPointerType. More...
 
using IteratorType = TLeafType::IteratorType
 Define IteratorType as TIteratorType. More...
 
using DistanceIteratorType = TLeafType::DistanceIteratorType
 Define DistanceIteratorType as TDistanceIteratorType. More...
 
using TreeNodeType = TreeNode< TDimension, TLeafType::PointType, TLeafType::PointerType, TLeafType::IteratorType, TLeafType::DistanceIteratorType >
 Define TreeNodeType as a TreeNode type with the given template arguments. More...
 
using IteratorIteratorType = typename std::vector< IteratorType >::iterator
 Define IteratorIteratorType as an iterator type for a vector of IteratorType. More...
 
using SearchStructureType = SearchStructure< IndexType, SizeType, CoordinateType, TLeafType::IteratorType, IteratorIteratorType, TDimension >
 Define SearchStructureType as a SearchStructure type with the given template arguments. More...
 

Member Typedef Documentation

◆ BaseType

template<class TLeafType >
typedef KDTreePartitionBase<TLeafType> Kratos::KDTreePartition< TLeafType >::BaseType

◆ ContainerType

template<class TLeafType >
typedef LeafType::ContainerType Kratos::KDTreePartition< TLeafType >::ContainerType

◆ CoordinateType

template<class TLeafType >
typedef TreeNodeType::CoordinateType Kratos::KDTreePartition< TLeafType >::CoordinateType

◆ DistanceFunction

template<class TLeafType >
typedef LeafType::DistanceFunction Kratos::KDTreePartition< TLeafType >::DistanceFunction

◆ DistanceIteratorType

template<class TLeafType >
typedef LeafType::DistanceIteratorType Kratos::KDTreePartition< TLeafType >::DistanceIteratorType

◆ IndexType

template<class TLeafType >
typedef TreeNodeType::IndexType Kratos::KDTreePartition< TLeafType >::IndexType

◆ IteratorType

template<class TLeafType >
typedef LeafType::IteratorType Kratos::KDTreePartition< TLeafType >::IteratorType

◆ LeafType

template<class TLeafType >
typedef TLeafType Kratos::KDTreePartition< TLeafType >::LeafType

◆ PointerType

template<class TLeafType >
typedef LeafType::PointerType Kratos::KDTreePartition< TLeafType >::PointerType

◆ PointType

template<class TLeafType >
typedef LeafType::PointType Kratos::KDTreePartition< TLeafType >::PointType

◆ SearchStructureType

template<class TLeafType >
typedef LeafType::SearchStructureType Kratos::KDTreePartition< TLeafType >::SearchStructureType

◆ SizeType

template<class TLeafType >
typedef TreeNodeType::SizeType Kratos::KDTreePartition< TLeafType >::SizeType

◆ TreeNodeType

Member Enumeration Documentation

◆ anonymous enum

template<class TLeafType >
anonymous enum
Enumerator
Dimension 

Constructor & Destructor Documentation

◆ KDTreePartition()

template<class TLeafType >
Kratos::KDTreePartition< TLeafType >::KDTreePartition ( IndexType  CutingDimension,
CoordinateType  Position,
CoordinateType  LeftEnd,
CoordinateType  RightEnd,
TreeNodeType pLeftChild = NULL,
TreeNodeType pRightChild = NULL 
)
inline

Partition constructor.

◆ ~KDTreePartition()

template<class TLeafType >
Kratos::KDTreePartition< TLeafType >::~KDTreePartition ( )
inline

Destructor.

Member Function Documentation

◆ Construct()

template<class TLeafType >
static TreeNodeType* Kratos::KDTreePartition< TLeafType >::Construct ( IteratorType  PointsBegin,
IteratorType  PointsEnd,
const PointType HighPoint,
const PointType LowPoint,
SizeType  BucketSize 
)
inlinestatic

◆ KRATOS_CLASS_POINTER_DEFINITION()

template<class TLeafType >
Kratos::KDTreePartition< TLeafType >::KRATOS_CLASS_POINTER_DEFINITION ( KDTreePartition< TLeafType >  )

Pointer definition of KDTree.

◆ MaxSpread()

template<class TLeafType >
static SizeType Kratos::KDTreePartition< TLeafType >::MaxSpread ( IteratorType  PointsBegin,
IteratorType  PointsEnd 
)
inlinestatic

◆ MedianSplit()

template<class TLeafType >
static void Kratos::KDTreePartition< TLeafType >::MedianSplit ( IteratorType  PointsBegin,
IteratorType  PartitionPosition,
IteratorType  PointsEnd,
IndexType  CuttingDimension,
CoordinateType rCuttingValue 
)
inlinestatic

◆ Partition()

template<class TLeafType >
static IteratorType Kratos::KDTreePartition< TLeafType >::Partition ( IteratorType  PointsBegin,
IteratorType  PointsEnd,
IndexType rCuttingDimension,
CoordinateType rCuttingValue 
)
inlinestatic

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