PSCF v1.1
|
Base template for UnitCell<D> classes, D=1, 2 or 3. More...
#include <UnitCell.h>
Additional Inherited Members | |
![]() | |
UnitCellBase () | |
Constructor. More... | |
~UnitCellBase () | |
Destructor. More... | |
void | setParameters (FSArray< double, 6 > const ¶meters) |
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... | |
![]() | |
void | setLattice () |
Compute all private data, given latticeSystem and parameters. More... | |
![]() | |
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... | |
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.