|
Mundy: Multibody Nonlocal Dynamics Version of the Day
|
General periodic metric for a tilted unit cell. More...
#include <periodicity.hpp>
Public Types | |
Type aliases | |
| using | value_type = Scalar |
| using | OurVector3 = Vector3<Scalar> |
| using | OurMatrix3 = Matrix3<Scalar> |
| using | OurPoint = Point<Scalar> |
Public Member Functions | |
Constructors | |
| constexpr | TriclinicMetric ()=default |
| constexpr | TriclinicMetric (const OurMatrix3 &h) |
| void | set_cell_matrix (const OurMatrix3 &h) |
Metric operations | |
| template<ValidPointType PointT> | |
| constexpr OurPoint | to_fractional (const PointT &p) const |
| template<ValidPointType PointT> | |
| constexpr OurPoint | from_fractional (const PointT &frac) const |
| template<ValidVector3Type Vector3T> | |
| constexpr OurVector3 | frac_minimum_image (const Vector3T &fv) const |
| Minimum-image displacement in fractional coordinates. | |
| template<ValidVector3Type Vector3T> | |
| constexpr OurVector3 | frac_wrap_to_unit_cell (const Vector3T &fv) const |
| template<ValidPointType PointT1, ValidPointType PointT2> | |
| constexpr OurVector3 | sep (const PointT1 &p1, const PointT2 &p2) const |
| template<ValidPointType PointT> | |
| constexpr OurPoint | wrap (const PointT &p) const |
| constexpr OurMatrix3 | direct_lattice_vectors () const |
| template<ValidPointType PointT, typename Integer> | |
| constexpr OurPoint | shift_image (const PointT &p, const Vector3< Integer > &n) const |
Periodicity queries | |
| constexpr bool | is_periodic (unsigned dim) const |
| constexpr unsigned | num_periodic_dimensions () const |
| template<unsigned dim> | |
| static constexpr bool | is_periodic () |
| PeriodicAxes | Bitmask of periodic lattice-vector directions. Combine AXIS_X (0b001), AXIS_Y (0b010), AXIS_Z (0b100) with | for multi-axis periodicity. AXIS_X/Y/Z refer to the first, second, and third lattice vector directions (fractional axes), not Cartesian x/y/z. |
| Scalar | Floating-point scalar type. |
The cell is described by a 3x3 matrix h whose columns are the lattice vectors. For axis-aligned cells prefer OrthorhombicMetric: it avoids the matrix multiplications in to_fractional and from_fractional.
| using mundy::TriclinicMetric< PeriodicAxes, Scalar >::value_type = Scalar |
| using mundy::TriclinicMetric< PeriodicAxes, Scalar >::OurVector3 = Vector3<Scalar> |
| using mundy::TriclinicMetric< PeriodicAxes, Scalar >::OurMatrix3 = Matrix3<Scalar> |
| using mundy::TriclinicMetric< PeriodicAxes, Scalar >::OurPoint = Point<Scalar> |
|
constexprdefault |
|
inlineexplicitconstexpr |
|
inline |
|
inlinestaticconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
Maps each periodic fractional component to [-0.5, 0.5) by subtracting round(). Non-periodic fractional components are passed through unchanged.
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |