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 ()
 
 SpacePartition (const std::vector< std::vector< double >> &basisVectors, MeshType meshType)
 
virtual ~SpacePartition ()
 
unsigned int getNumDimensions () const
 
virtual Index getMajorCellIndex (const std::vector< double > &coordinate) const =0
 
virtual Index getMinorCellIndex (const std::vector< double > &coordinate, const std::vector< unsigned int > &numMeshPoints) const =0
 
virtual std::vector< std::vector< double > > getMajorMesh (const std::vector< unsigned int > &numMeshPoints) const =0
 
virtual std::vector< std::vector< double > > getMinorMesh (const std::vector< unsigned int > &numMeshPoints) const =0
 
virtual std::vector< double > getMinorMeshPoint (const std::vector< unsigned int > &meshPoint, 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

◆ MeshType

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

◆ SpacePartition() [1/2]

TBTK::SpacePartition::SpacePartition ( )

Constructor.

◆ SpacePartition() [2/2]

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

Constructor.

◆ ~SpacePartition()

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

Destructor.

Member Function Documentation

◆ getBasisVectors()

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

Get basis vectors.

◆ getMajorCellIndex()

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::WignerSeitzCell, and TBTK::ParallelepipedCell.

◆ getMajorMesh()

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::WignerSeitzCell, and TBTK::ParallelepipedCell.

◆ getMeshType()

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

Get mesh type.

◆ getMinorCellIndex()

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::WignerSeitzCell, and TBTK::ParallelepipedCell.

◆ getMinorMesh()

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::WignerSeitzCell, and TBTK::ParallelepipedCell.

◆ getMinorMeshPoint()

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

Returns a single point of the minor mesh covering the unit cell, using numMeshPoints mesh points along the corresponding directions.

Parameters
meshPointThe mesh point to retrieve.
numMeshPoints.The number of mesh points in the minor mesh.

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

◆ getNumDimensions()

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

Get number of dimensions.


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