oILAB
Loading...
Searching...
No Matches
DislocationDipole.h
Go to the documentation of this file.
1//
2// Created by Nikhil Chandra Admal on 2/17/24.
3//
4
5#ifndef OILAB_DISLOCATIONDIPOLE_H
6#define OILAB_DISLOCATIONDIPOLE_H
7#include "Eigen/Dense"
8
9namespace oILAB {
11 using Matrix2d = Eigen::Matrix2d;
12 using Vector2d = Eigen::Vector2d;
13
14 template <typename T> int sgn(T val) const {
15 return (T(0) < val) - (val < T(0));
16 }
17
18public:
19 // const Matrix2d ends;
20 // const Vector2d b;
21 // const Vector2d shift;
22 // const int nImages;
27
28 DislocationDipole(const Matrix2d &end_in, const Vector2d &b_in,
29 const Vector2d &shift_in, const int &nImages_in);
30
31 double solidAngle(const Vector2d &x, const int &branch) const;
32 Vector2d solidAngleGradient(const Vector2d &x, const int &branch) const;
33 Vector2d displacement(const Vector2d &x, const int &branch) const;
34 static std::pair<Vector2d, double>
35 localPosition(const Vector2d &A, const Vector2d &B, const Vector2d &x);
36
37 };
38 } // namespace oILAB
39#endif //OILAB_DISLOCATIONDIPOLE_H
static std::pair< Vector2d, double > localPosition(const Vector2d &A, const Vector2d &B, const Vector2d &x)
Vector2d solidAngleGradient(const Vector2d &x, const int &branch) const
double solidAngle(const Vector2d &x, const int &branch) const
Vector2d displacement(const Vector2d &x, const int &branch) const
DislocationDipole(const Matrix2d &end_in, const Vector2d &b_in, const Vector2d &shift_in, const int &nImages_in)