oILAB
Loading...
Searching...
No Matches
Dislocations.h
Go to the documentation of this file.
1//
2// Created by Nikhil Chandra Admal on 2/18/24.
3//
4
5#ifndef OILAB_DISLOCATIONS_H
6#define OILAB_DISLOCATIONS_H
7
9#include<vector>
10
11namespace gbLAB {
12 class Dislocations : private std::vector<DislocationDipole>
13 {
14 using Matrix2d= Eigen::Matrix2d;
15 using Vector2d= Eigen::Vector2d;
16 double line_search(const Vector2d& x, const Vector2d& dx, const Vector2d& y, const int& branch) const;
17 Matrix2d jacobian(const Vector2d& x, const int& branch) const;
18 Vector2d inverseDeformationMap(const Vector2d& x, const int& branch) const;
19 const std::vector<DislocationDipole>& dislocations() const;
20
21 public:
22
23 const double a2;
25 const int nImages;
26
27 Dislocations(const double& a2,
28 const double& shiftSize,
29 const int& nImages);
30
32 void removeDislocationDipole(const int& index);
33 Vector2d deformationMap(const Vector2d& X, const int& branch) const;
35 const Vector2d& x2,
36 const Vector2d& b1,
37 const Vector2d& b2) const;
38 double elasticEnergy() const;
39
40 };
41}
42#endif //OILAB_DISLOCATIONS_H
Eigen::Matrix2d Matrix2d
const std::vector< DislocationDipole > & dislocations() const
const Vector2d shift
double line_search(const Vector2d &x, const Vector2d &dx, const Vector2d &y, const int &branch) const
double elasticEnergy() const
Dislocations(const double &a2, const double &shiftSize, const int &nImages)
Vector2d deformationMap(const Vector2d &X, const int &branch) const
double edgeElasticEnergyKernel(const Vector2d &x1, const Vector2d &x2, const Vector2d &b1, const Vector2d &b2) const
Vector2d inverseDeformationMap(const Vector2d &x, const int &branch) const
Eigen::Vector2d Vector2d
void removeDislocationDipole(const int &index)
void insertDislocationDipole(Matrix2d &ends, Vector2d &b)
Matrix2d jacobian(const Vector2d &x, const int &branch) const