Mechanics of Defect Evolution Library
Loading...
Searching...
No Matches
DislocationNodeContraction.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_DislocationNodeContraction_H_
9#define model_DislocationNodeContraction_H_
10
11#include <memory>
12#include <Eigen/Dense>
13#include <TypeTraits.h>
14
15namespace model
16{
17 template<int dim> class DislocationNetwork;
18 template <int dim>
20 {
21 typedef typename TypeTraits<DislocationNetwork<dim>>::NetworkNodeType NetworkNodeType;
22 typedef Eigen::Matrix<double,dim,1> VectorDim;
23
24 std::vector<std::set<std::shared_ptr<NetworkNodeType>>> contractBoundary(std::shared_ptr<NetworkNodeType> nA,std::shared_ptr<NetworkNodeType> nB);
25 bool contractSecondAndVirtual(std::shared_ptr<NetworkNodeType> nA,std::shared_ptr<NetworkNodeType> nB,const bool reconcileBoundary);
26 bool contractYoungest(std::shared_ptr<NetworkNodeType> nA,std::shared_ptr<NetworkNodeType> nB,const bool reconcileBoundary);
27 bool contractToPosition(std::shared_ptr<NetworkNodeType> nA,std::shared_ptr<NetworkNodeType> nB,const VectorDim& X, const double& maxRange,const bool reconcileBoundary);
28
29 bool canReach(const std::shared_ptr<NetworkNodeType>& node,const VectorDim& target) const;
30 bool commitContraction(std::shared_ptr<NetworkNodeType> a,std::shared_ptr<NetworkNodeType> b,const VectorDim& target,const bool reconcileBoundary);
32
33 public:
34
36
38 bool contract(std::shared_ptr<NetworkNodeType> nA,std::shared_ptr<NetworkNodeType> nB,const bool reconcileBoundary=true);
39 };
40}
41#endif
42
DislocationNodeContraction(DislocationNetwork< dim > &DN_in)
bool contract(std::shared_ptr< NetworkNodeType > nA, std::shared_ptr< NetworkNodeType > nB, const bool reconcileBoundary=true)
a
Definition int_R.m:14
b
Definition int_R.m:16