Mechanics of Defect Evolution Library
Loading...
Searching...
No Matches
DislocationJunctionFormation.h
Go to the documentation of this file.
1/* This file is part of MoDELib, the Mechanics Of Defects Evolution Library.
2 *
3 *
4 * MoDELib is distributed without any warranty under the
5 * GNU General Public License (GPL) v2 <http://www.gnu.org/licenses/>.
6 */
7
8#ifndef model_DISLOCATIONJUNCTIONFORMATION_H_
9#define model_DISLOCATIONJUNCTIONFORMATION_H_
10
11#include <utility> // for std::pair
12#include <algorithm>
13#include <vector>
14#include <Eigen/Dense>
16#include <SweepPlane.h>
17#include <TypeTraits.h>
19
21
22namespace model
23{
24 template<int dim> class DislocationNetwork;
25
26 template <int dim>
28 {
29 typedef typename TypeTraits<DislocationNetwork<dim>>::NetworkLinkType NetworkLinkType;
30 typedef typename TypeTraits<DislocationNetwork<dim>>::NetworkNodeType NetworkNodeType;
31 typedef typename TypeTraits<DislocationNetwork<dim>>::LoopNodeType LoopNodeType;
32 typedef typename TypeTraits<DislocationNetwork<dim>>::LoopType LoopType;
33 typedef Eigen::Matrix<double,dim,1> VectorDim;
34 typedef Eigen::Matrix<double,dim-1,1> VectorLowerDim;
35 typedef typename NetworkLinkType::KeyType KeyType;
36 typedef std::tuple<KeyType,KeyType,SegmentSegmentDistance<dim>,int> IntersectionType;
37 typedef std::deque<IntersectionType> IntersectionTypeContainerType;
38
39 void insertIntersection(std::deque<IntersectionTypeContainerType> &intersectionContainer,
40 const NetworkLinkType *const linkA,
41 const NetworkLinkType *const linkB,
43 const double &currentcCollisionTOL,
44 const bool &bndJunction, const bool &gbndJunction,const int event=0);
46 void findPairIntersections(std::deque<IntersectionTypeContainerType>& intersectionContainer,
47 const NetworkLinkType* linkA,const NetworkLinkType* linkB);
48 void findIntersections(std::deque<IntersectionTypeContainerType>& intersectionContainer,
49 const size_t& nThreads);
50 std::pair<std::shared_ptr<NetworkNodeType>, bool> junctionNode(const double &t,
51 const VectorDim &x,
52 const std::shared_ptr<NetworkLinkType> &L);
53 size_t contractJunctions(const std::deque<IntersectionTypeContainerType>& intersectionContainer);
54 void glissileJunctions(const double &dx);
55
56 void breakJunctions();
57
59
60 public:
61
62 static double collisionTol;
65 const double infiniteLineLength;
66
68 static void initFromFile(const std::string& fileName);
69 void formJunctions(const double& dx);
70 };
71
72}
73#endif
DislocationJunctionFormation(DislocationNetwork< dim > &DN_in)
static void initFromFile(const std::string &fileName)
final point of the source segment t
x
Definition int_R.m:12
REAL dx