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(
73 "BasicLattice2D::BasicLattice2D() -> Error. Lattice length can't be "
99 throw std::runtime_error(
100 "SquareLattice2D::SquareLattice2D() -> Error. Lattice length can't be "
101 "negative or zero.");
129 throw std::runtime_error(
"HexagonalLattice2D::HexagonalLattice2D() -> Error. "
130 "Lattice length can't be negative or zero.");
Defines M_PI and some more mathematical constants.
Defines classes of Lattice2D family.
Defines class ParameterPool.
Defines class RealParameter.
A two-dimensional Bravais lattice with no special symmetry.
virtual double unitCellArea() const
BasicLattice2D * clone() const
BasicLattice2D(double length1, double length2, double angle, double xi)
A two-dimensional Bravais lattice with hexagonal symmetry.
virtual double unitCellArea() const
HexagonalLattice2D * clone() const
virtual double latticeAngle() const
HexagonalLattice2D(double length, double xi)
Base class for tree-like structures containing parameterized objects.
const INode * parent() const
void removeParameter(const std::string &name)
RealParameter * parameter(const std::string &name) const
Returns parameter with given 'name'.
virtual void onChange()
Action to be taken in inherited class when a parameter has changed.
void setName(const std::string &name)
RealParameter & registerParameter(const std::string &name, double *parpointer)
A two-dimensional Bravais lattice.
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)
A two-dimensional Bravais lattice with square unit cell.
SquareLattice2D * clone() const
SquareLattice2D(double length, double xi=0.0)
virtual double latticeAngle() const
virtual double unitCellArea() const