Mechanics of Defect Evolution Library
Loading...
Searching...
No Matches
Lattices_NEW/Lattice.h
Go to the documentation of this file.
1/* This file is part of model.
2 *
3 * MoDELib is distributed without any warranty under the MIT License.
4 */
5
6
7#ifndef model_Lattice_h_
8#define model_Lattice_h_
9
10#include <LatticeModule.h>
11#include <StaticID.h>
13
14namespace model
15{
16 template <int dim>
17 class Lattice : public StaticID<Lattice<dim>>
18 {
19 static constexpr double roundTol=FLT_EPSILON;
23 typedef typename LatticeCore<dim>::MatrixDimI MatrixDimI;
24
25 static MatrixDimD getLatticeBasis(const MatrixDimD& A,const MatrixDimD& Q);
26
27 public:
28
31 const MatrixDimD C2G;
32
33 Lattice(const MatrixDimD& A,const MatrixDimD& Q=MatrixDimD::Identity()) ;
35
36 template<typename OtherDerived>
37 LatticeDirection<dim> latticeDirection(const Eigen::MatrixBase<OtherDerived>& other) const
38 {
39 return LatticeDirection<dim>(LatticeVector<dim>(other,*this));
40 }
41
44 const typename BestRationalApproximation::LongIntType& maxDen=1000) const;
45
46 template<typename OtherDerived>
47 LatticeVector<dim> latticeVector(const Eigen::MatrixBase<OtherDerived>& other) const
48 {
49 return LatticeVector<dim>(other,*this);
50 }
51
54
55 };
56}
57#endif
static constexpr double roundTol
Eigen::Matrix< double, dim, dim > MatrixDimD
ReciprocalLatticeDirection< dim > reciprocalLatticeDirection(const VectorDimD &d) const
const MatrixDimD latticeBasis
const MatrixDimD C2G
LatticeVector< dim > latticeVector(const Eigen::MatrixBase< OtherDerived > &other) const
LatticeDirection< dim > latticeDirection(const Eigen::MatrixBase< OtherDerived > &other) const
LatticeVector< dim > latticeVector(const VectorDimD &p) const
RationalLatticeDirection< dim > rationalLatticeDirection(const VectorDimD &d, const typename BestRationalApproximation::LongIntType &maxDen=1000) const
LatticeDirection< dim > latticeDirection(const VectorDimD &d) const
Lattice(const MatrixDimD &A, const MatrixDimD &Q=MatrixDimD::Identity())
Eigen::Matrix< double, dim, 1 > VectorDimD
Eigen::Matrix< long int, dim, 1 > VectorDimI
static MatrixDimD getLatticeBasis(const MatrixDimD &A, const MatrixDimD &Q)
const MatrixDimD reciprocalBasis
ReciprocalLatticeVector< dim > reciprocalLatticeVector(const VectorDimD &p) const
A class template that implements a counter of the number of instances of Derived type that are create...
Definition StaticID.h:29
function infiniteDisplacement syms Ax Ay Az Bx By Bz qx qy qz u L x y z real A
Eigen::Matrix< IntScalarType, dim, dim > MatrixDimI
Definition LatticeCore.h:28
Eigen::Matrix< double, dim, 1 > VectorDimD
Definition LatticeCore.h:24
Eigen::Matrix< double, dim, dim > MatrixDimD
Definition LatticeCore.h:25
Eigen::Matrix< IntScalarType, dim, 1 > VectorDimI
Definition LatticeCore.h:27
Q
vertex p[3]