PSCF v1.1
List of all members
Pscf::UnitCell< D > Class Template Reference

Base template for UnitCell<D> classes, D=1, 2 or 3. More...

#include <UnitCell.h>

Inheritance diagram for Pscf::UnitCell< D >:
Pscf::UnitCellBase< D >

Additional Inherited Members

- Public Member Functions inherited from Pscf::UnitCellBase< D >
 UnitCellBase ()
 Constructor. More...
 
 ~UnitCellBase ()
 Destructor. More...
 
void setParameters (FSArray< double, 6 > const &parameters)
 Set all the parameters of unit cell. More...
 
virtual double ksq (IntVec< D > const &k) const
 Compute square magnitude of reciprocal lattice vector. More...
 
virtual double dksq (IntVec< D > const &vec, int n) const
 Compute derivative of square wavevector w/respect to cell parameter. More...
 
int nParameter () const
 Get the number of parameters in the unit cell. More...
 
FSArray< double, 6 > parameters () const
 Get the parameters of this unit cell. More...
 
double parameter (int i) const
 Get a single parameter of this unit cell. More...
 
const RealVec< D > & rBasis (int i) const
 Get Bravais basis vector i, denoted by a_i. More...
 
const RealVec< D > & kBasis (int i) const
 Get reciprocal basis vector i, denoted by b_i. More...
 
double drBasis (int k, int i, int j) const
 Get component j of derivative of rBasis vector a_i w/respect to k. More...
 
double dkBasis (int k, int i, int j) const
 Get component j of derivative of kBasis vector b_i w/respect to k. More...
 
double drrBasis (int k, int i, int j) const
 Get derivative of dot product ai.aj with respect to parameter k. More...
 
double dkkBasis (int k, int i, int j) const
 Get derivative of dot product bi.bj with respect to parameter k. More...
 
bool isInitialized () const
 Has this unit cell been initialized? More...
 
- Protected Member Functions inherited from Pscf::UnitCellBase< D >
void setLattice ()
 Compute all private data, given latticeSystem and parameters. More...
 
- Protected Attributes inherited from Pscf::UnitCellBase< D >
FArray< RealVec< D >, D > rBasis_
 Array of Bravais lattice basis vectors. More...
 
FArray< RealVec< D >, D > kBasis_
 Array of reciprocal lattice basis vectors. More...
 
FArray< FMatrix< double, D, D >, 6 > drBasis_
 Array of derivatives of rBasis. More...
 
FArray< FMatrix< double, D, D >, 6 > dkBasis_
 Array of derivatives of kBasis. More...
 
FArray< FMatrix< double, D, D >, 6 > drrBasis_
 Array of derivatives of a_i.a_j. More...
 
FArray< FMatrix< double, D, D >, 6 > dkkBasis_
 Array of derivatives of b_i.b_j. More...
 
FArray< double, 6 > parameters_
 Parameters used to describe the unit cell. More...
 
int nParameter_
 Number of parameters required to specify unit cell. More...
 
bool isInitialized_
 Has this unit cell been fully initialized? More...
 

Detailed Description

template<int D>
class Pscf::UnitCell< D >

Base template for UnitCell<D> classes, D=1, 2 or 3.

Explicit specializations are defined for D=1, 2, and 3. In each case, class UnitCell<D> is derived from UnitCellBase<D> and defines an enumeration UnitCell<D>::LatticeSystem of the possible types of Bravais lattice systems in D-dimensional space. Each explicit specialization UnitCell<D> has a member variable of this type that is returned by a function named lattice(). The value of the lattice variable is initialized to an enumeration value named Null, which denotes unknown or unitialized.

Iostream inserter (<<) and extractor (>>) operators are defined for all explicit specializations of UnitCell<D>, allowing a UnitCell to be read from or written to file like a primitive variable. The text representation for a UnitCell<D> contains a text representation of the LatticeSystem<D> enumeration (i.e., the unit cell type) and a list of one or more unit cell parameters (lengths and angles), as described here.

Definition at line 43 of file UnitCell.h.


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