TBTK
TBTK::SpacePartition Class Referenceabstract

#include <SpacePartition.h>

Inheritance diagram for TBTK::SpacePartition:
TBTK::ParallelepipedCell TBTK::WignerSeitzCell TBTK::BrillouinZone

Public Types

enum  MeshType { Nodal, Interior }
 

Public Member Functions

 SpacePartition (std::initializer_list< std::initializer_list< double >> basisVectors, MeshType meshType)
 
 SpacePartition (const std::vector< std::vector< double >> &basisVectors, MeshType meshType)
 
virtual ~SpacePartition ()
 
unsigned int getNumDimensions () const
 
Index getMajorCellIndex (std::initializer_list< double > coordinate) const
 
virtual Index getMajorCellIndex (const std::vector< double > &coordinate) const =0
 
Index getMinorCellIndex (std::initializer_list< double > coordinate, std::initializer_list< unsigned int > numMeshPoints) const
 
Index getMinorCellIndex (const std::vector< double > &coordinate, std::initializer_list< unsigned int > numMeshPoints) const
 
Index getMinorCellIndex (std::initializer_list< double > coordinate, const std::vector< unsigned int > &numMeshPoints) const
 
virtual Index getMinorCellIndex (const std::vector< double > &coordinate, const std::vector< unsigned int > &numMeshPoints) const =0
 
std::vector< std::vector< double > > getMajorMesh (std::initializer_list< unsigned int > numMeshPoints)
 
virtual std::vector< std::vector< double > > getMajorMesh (const std::vector< unsigned int > &numMeshPoints) const =0
 
std::vector< std::vector< double > > getMinorMesh (std::initializer_list< unsigned int > numMeshPoints)
 
virtual std::vector< std::vector< double > > getMinorMesh (const std::vector< unsigned int > &numMeshPoints) const =0
 

Protected Member Functions

const std::vector< Vector3d > & getBasisVectors () const
 
MeshType getMeshType () const
 

Detailed Description

SpacePartition. Major indices indexes the unit cells, while minor indices arise when the unit cells are further subdivided.

Member Enumeration Documentation

Enum class used to indicate whether the mesh should be nodal or interior. A nodal mesh is a mesh resulting from dividing a space partition into equispaced elements and identifying the mesh with the nodal grid points. An interior mesh is a mesh that results from a similar division but where the mesh is identified with the central point of the line/area/volume elements of the grid. Note that interior points never fall on the bounding surface of the space partition, while nodal points does.

Constructor & Destructor Documentation

TBTK::SpacePartition::SpacePartition ( std::initializer_list< std::initializer_list< double >>  basisVectors,
MeshType  meshType 
)

Constructor.

TBTK::SpacePartition::SpacePartition ( const std::vector< std::vector< double >> &  basisVectors,
MeshType  meshType 
)

Constructor.

virtual TBTK::SpacePartition::~SpacePartition ( )
virtual

Destructor.

Member Function Documentation

const std::vector< Vector3d > & TBTK::SpacePartition::getBasisVectors ( ) const
inlineprotected

Get basis vectors.

Index TBTK::SpacePartition::getMajorCellIndex ( std::initializer_list< double >  coordinate) const
inline

Returns the major index of the space partition for the given coordinate.

virtual Index TBTK::SpacePartition::getMajorCellIndex ( const std::vector< double > &  coordinate) const
pure virtual

Returns the major index of the space partition for the given coordinate.

Implemented in TBTK::ParallelepipedCell, and TBTK::WignerSeitzCell.

std::vector< std::vector< double > > TBTK::SpacePartition::getMajorMesh ( std::initializer_list< unsigned int >  numMeshPoints)
inline

Returns an equispaced mesh spanned by the basis vectors, using numMeshPoints mesh points along the corresponding directions.

virtual std::vector<std::vector<double> > TBTK::SpacePartition::getMajorMesh ( const std::vector< unsigned int > &  numMeshPoints) const
pure virtual

Returns an equispaced mesh spanned by the basis vectors, using numMeshPoints mesh points along the corresponding directions.

Implemented in TBTK::ParallelepipedCell, and TBTK::WignerSeitzCell.

SpacePartition::MeshType TBTK::SpacePartition::getMeshType ( ) const
inlineprotected

Get mesh type.

Index TBTK::SpacePartition::getMinorCellIndex ( std::initializer_list< double >  coordinate,
std::initializer_list< unsigned int >  numMeshPoints 
) const
inline

Returns the minor index of the space partition corresponding to the given coordinate, where the unit cell has been subdivided into smaller cells specified by numMeshPoints.

Index TBTK::SpacePartition::getMinorCellIndex ( const std::vector< double > &  coordinate,
std::initializer_list< unsigned int >  numMeshPoints 
) const
inline

Returns the minor index of the space partition corresponding to the given coordinate, where the unit cell has been subdivided into smaller cells specified by numMeshPoints.

Index TBTK::SpacePartition::getMinorCellIndex ( std::initializer_list< double >  coordinate,
const std::vector< unsigned int > &  numMeshPoints 
) const
inline

Returns the minor index of the space partition corresponding to the given coordinate, where the unit cell has been subdivided into smaller cells specified by numMeshPoints.

virtual Index TBTK::SpacePartition::getMinorCellIndex ( const std::vector< double > &  coordinate,
const std::vector< unsigned int > &  numMeshPoints 
) const
pure virtual

Returns the minor index of the space partition corresponding to the given coordinate, where the unit cell has been subdivided into smaller cells specified by numMeshPoints.

Implemented in TBTK::ParallelepipedCell, and TBTK::WignerSeitzCell.

std::vector< std::vector< double > > TBTK::SpacePartition::getMinorMesh ( std::initializer_list< unsigned int >  numMeshPoints)
inline

Returns an equispaced mesh covering the unit cell, using numMeshPoints mesh points along the corresponding directions.

virtual std::vector<std::vector<double> > TBTK::SpacePartition::getMinorMesh ( const std::vector< unsigned int > &  numMeshPoints) const
pure virtual

Returns an equispaced mesh covering the unit cell, using numMeshPoints mesh points along the corresponding directions.

Implemented in TBTK::ParallelepipedCell, and TBTK::WignerSeitzCell.

unsigned int TBTK::SpacePartition::getNumDimensions ( ) const
inline

Get number of dimensions.


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