1#ifndef PRDC_UNIT_CELL_H
2#define PRDC_UNIT_CELL_H
11#include "UnitCellBase.h"
53 class UnitCell :
public UnitCellBase<D>
70 std::istream&
operator >> (std::istream& in, UnitCell<D>& cell);
81 std::ostream&
operator << (std::ostream& out, UnitCell<D>
const& cell);
91 template <
class Archive,
int D>
93 serialize(Archive& ar, UnitCell<D>& cell,
const unsigned int version);
192 double volume()
const;
199 LatticeSystem lattice_;
202 void setNParameter();
218 template <
class Archive,
int D>
219 friend void serialize(Archive& ,
UnitCell<D>& ,
const unsigned int);
258 template <
class Archive>
261 const unsigned int version)
337 double volume()
const;
342 LatticeSystem lattice_;
345 void setNParameter();
361 template <
class Archive,
int D>
362 friend void serialize(Archive& ,
UnitCell<D>& ,
const unsigned int );
400 template <
class Archive>
403 const unsigned int version)
426 Triclinic, Rhombohedral, Hexagonal, Null};
482 double volume()
const;
486 LatticeSystem lattice_;
489 void setNParameter();
505 template <
class Archive,
int D>
506 friend void serialize(Archive& ,
UnitCell<D>& ,
const unsigned int);
545 template <
class Archive>
548 const unsigned int version)
553#include "UnitCell.tpp"
Base class template for a crystallographic unit cell.
bool isInitialized() const
Has this unit cell been initialized?
FSArray< double, 6 > parameters() const
Get the parameters of this unit cell.
LatticeSystem lattice() const
Return lattice system enumeration value.
LatticeSystem
Enumeration of 1D lattice system types.
LatticeSystem
Enumeration of 2D lattice system types.
LatticeSystem lattice() const
Return lattice system enumeration value.
LatticeSystem
Enumeration of the 7 possible 3D Bravais lattice systems.
LatticeSystem lattice() const
Return lattice system enumeration value.
Base template for UnitCell<D> classes, D=1, 2 or 3.
A fixed capacity (static) contiguous array with a variable logical size.
void readUnitCellHeader(std::istream &in, UnitCell< D > &cell)
Read UnitCell<D> from a field file header (fortran PSCF format).
void writeUnitCellHeader(std::ostream &out, UnitCell< D > const &cell)
Write UnitCell<D> to a field file header (fortran PSCF format).
void serializeEnum(Archive &ar, T &data, const unsigned int version=0)
Serialize an enumeration value.
PSCF package top-level namespace.
Utility classes for scientific computation.
std::istream & operator>>(std::istream &in, Pair< Data > &pair)
Input a Pair from an istream.
std::ostream & operator<<(std::ostream &out, const Pair< Data > &pair)
Output a Pair to an ostream, without line breaks.