8#ifndef model_DislocationLinkingNumber_H_
9#define model_DislocationLinkingNumber_H_
29 static constexpr double tol=FLT_EPSILON;
57 static double myAsin(
const double&
x);
68 static double loopPairLN(
const std::vector<VectorDim>& loop1,
69 const std::vector<VectorDim>& loop2);
75 const std::vector<VectorDim>& loop2,
96 static constexpr double tol=FLT_EPSILON;
102 static double segmentPairLN(
const LoopLink& link1,
103 const LoopLink& link2);
206 static std::pair<double,bool> linkingNumber(
const LoopType& loop1,
207 const LoopType& loop2);
224 std::ostream&
write(std::ostream& os)
const;
friend T & operator<<(T &os, const DislocationLinkingNumber< dim > &ln)
std::ostream & write(std::ostream &os) const
DislocationLinkingNumber(const DislocationNetwork< dim > &DN_in)
TraitsType::VectorDim VectorDim
TraitsType::LoopType LoopType
TraitsType::LoopLinkType LoopLinkType
static VectorDim unitCross(const VectorDim &v1, const VectorDim &v2)
static double loopPairLN(const std::vector< VectorDim > &loop1, const std::vector< VectorDim > &loop2)
Eigen::Matrix< double, dim, 1 > VectorDim
static double loopPairHelicity(const std::vector< VectorDim > &loop1, const VectorDim &b1, const std::vector< VectorDim > &loop2, const VectorDim &b2)
static constexpr double tol
static double myAsin(const double &x)
static double segmentPairLN(const VectorDim &R1, const VectorDim &R2, const VectorDim &R3, const VectorDim &R4)