26 :
INode(meta, PValues)
43 return {+ainv * std::sin(xialpha), -ainv * std::cos(xialpha), -binv * std::sin(xi),
44 +binv * std::cos(xi)};
69 :
Lattice2D(xi), m_length1(length1), m_length2(length2), m_angle(angle)
72 throw std::runtime_error(
"BasicLattice::BasicLattice() -> Error. Lattice length can't be "
98 throw std::runtime_error(
"SquareLattice::SquareLattice() -> Error. Lattice length can't be "
127 throw std::runtime_error(
"HexagonalLattice::HexagonalLattice() -> Error. "
128 "Lattice length can't be negative or zero.");
Defines classes of Lattice2D family.
Defines M_PI and some more mathematical constants.
Defines class ParameterPool.
Defines class RealParameter.
virtual double unitCellArea() const
BasicLattice * clone() const
BasicLattice(double length1, double length2, double angle, double xi)
HexagonalLattice * clone() const
virtual double unitCellArea() const
virtual double latticeAngle() const
HexagonalLattice(double length, double xi)
Base class for tree-like structures containing parameterized objects.
const INode * parent() const
RealParameter & registerParameter(const std::string &name, double *parpointer)
RealParameter * parameter(const std::string &name) const
Returns parameter with given 'name'.
void removeParameter(const std::string &name)
virtual void onChange()
Action to be taken in inherited class when a parameter has changed.
void setName(const std::string &name)
double rotationAngle() const
ReciprocalBases reciprocalBases() const
virtual double latticeAngle() const =0
virtual void onChange()
Action to be taken in inherited class when a parameter has changed.
virtual double length2() const =0
virtual double length1() const =0
void setRotationEnabled(bool enabled)
Lattice2D(const NodeMeta &meta, const std::vector< double > &PValues)
RealParameter & setPositive()
RealParameter & setUnit(const std::string &name)
SquareLattice(double length, double xi=0.0)
virtual double unitCellArea() const
SquareLattice * clone() const
virtual double latticeAngle() const