Mechanics of Defect Evolution Library
Loading...
Searching...
No Matches
DislocationCrossSlip.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_DislocationCrossSlip_h_
9#define model_DislocationCrossSlip_h_
10
11#include <memory>
12
14#include <CrossSlipModels.h>
15
16#ifndef NDEBUG
17#define VerboseCrossSlip(N,x) if(verboseCrossSlip>=N){std::cout<<x;}
18#else
19#define VerboseCrossSlip(N,x)
20#endif
21
22namespace model
23{
24 template<int dim> class DislocationNetwork;
25
26 template <int dim>
28 {
29 typedef TypeTraits<DislocationNetwork<dim>> TraitsType;
30 typedef typename TraitsType::NetworkLinkType NetworkLinkType;
31 typedef typename TraitsType::NetworkNodeType NetworkNodeType;
32 typedef typename TraitsType::LoopNodeType LoopNodeType;
33 typedef typename TraitsType::LoopLinkType LoopLinkType;
34 typedef typename TraitsType::LoopType LoopType;
35 typedef typename TraitsType::VectorDim VectorDim;
36 typedef std::tuple<std::shared_ptr<NetworkNodeType>,std::shared_ptr<NetworkNodeType>,size_t,size_t> CrossSlipTupleType;
37 typedef std::deque<CrossSlipTupleType> CrossSlipContainerType;
38 typedef std::deque<CrossSlipBranch<dim>> CrossSlipBranchContainerType;
39
40 friend struct CrossSlipTestAccess;
42// CrossSlipContainerType crossSlipDeq;
43 CrossSlipBranchContainerType csNodes;
44
45 public:
46
48
50 void findCrossSlipSegments(const double dt=-1.0);
51 void execute();
52 static std::shared_ptr<BaseCrossSlipModel<dim>> getModel(const PolycrystallineMaterialBase& material,const DefectiveCrystalTraitsIO& traitsIO);
53
54
55 };
56
57}
58#endif
static std::shared_ptr< BaseCrossSlipModel< dim > > getModel(const PolycrystallineMaterialBase &material, const DefectiveCrystalTraitsIO &traitsIO)
void findCrossSlipSegments(const double dt=-1.0)
DislocationCrossSlip(DislocationNetwork< dim > &DN_in)