1#ifndef PSCF_UNIT_CELL_H
2#define PSCF_UNIT_CELL_H
11#include "UnitCellBase.h"
78 template <
class Archive,
int D>
80 serialize(Archive& ar,
UnitCell<D>& cell,
const unsigned int version);
120 void readFieldHeader(std::istream& in,
int& ver1,
int& ver2,
135 void writeFieldHeader(std::ostream &out,
int ver1,
int ver2,
137 std::string
const & groupName,
200 LatticeSystem lattice_;
203 void setNParameter();
219 template <
class Archive,
int D>
220 friend void serialize(Archive& ,
UnitCell<D>& ,
const unsigned int);
239 UnitCell<1>::LatticeSystem& lattice);
250 UnitCell<1>::LatticeSystem lattice);
259 template <
class Archive>
262 const unsigned int version)
325 LatticeSystem lattice_;
328 void setNParameter();
344 template <
class Archive,
int D>
345 friend void serialize(Archive& ,
UnitCell<D>& ,
const unsigned int );
364 UnitCell<2>::LatticeSystem& lattice);
374 UnitCell<2>::LatticeSystem lattice);
383 template <
class Archive>
386 const unsigned int version)
409 Triclinic, Rhombohedral, Hexagonal, Null};
451 LatticeSystem lattice_;
454 void setNParameter();
470 template <
class Archive,
int D>
471 friend void serialize(Archive& ,
UnitCell<D>& ,
const unsigned int);
490 UnitCell<3>::LatticeSystem& lattice);
501 UnitCell<3>::LatticeSystem lattice);
510 template <
class Archive>
513 const unsigned int version)
518#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 lattice() const
Return lattice system enumeration value.
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.
Base template for UnitCell<D> classes, D=1, 2 or 3.
A fixed capacity (static) contiguous array with a variable logical size.
void writeUnitCellHeader(std::ostream &out, UnitCell< D > const &cell)
Write UnitCell<D> to a field file header (fortran PSCF format).
void readUnitCellHeader(std::istream &in, UnitCell< D > &cell)
Read UnitCell<D> from a field file header (fortran PSCF format).
void serializeEnum(Archive &ar, T &data, const unsigned int version=0)
Serialize an enumeration value.
C++ namespace for polymer self-consistent field theory (PSCF).
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.