Mechanics of Defect Evolution Library
Loading...
Searching...
No Matches
include
DislocationDynamics
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
13
#include <
DislocationDynamicsModule.h
>
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
22
namespace
model
23
{
24
template
<
int
dim>
class
DislocationNetwork
;
25
26
template
<
int
dim>
27
class
DislocationCrossSlip
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
;
41
DislocationNetwork<dim>
& DN;
42
// CrossSlipContainerType crossSlipDeq;
43
CrossSlipBranchContainerType csNodes;
44
45
public
:
46
47
const
int
verboseCrossSlip
;
48
49
DislocationCrossSlip
(
DislocationNetwork<dim>
& DN_in) ;
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
CrossSlipModels.h
DislocationDynamicsModule.h
model::DislocationCrossSlip::CrossSlipTestAccess
friend struct CrossSlipTestAccess
Definition
DislocationCrossSlip.h:40
model::DislocationCrossSlip::getModel
static std::shared_ptr< BaseCrossSlipModel< dim > > getModel(const PolycrystallineMaterialBase &material, const DefectiveCrystalTraitsIO &traitsIO)
Definition
DislocationCrossSlip.cpp:28
model::DislocationCrossSlip::execute
void execute()
Definition
DislocationCrossSlip.cpp:94
model::DislocationCrossSlip::verboseCrossSlip
const int verboseCrossSlip
Definition
DislocationCrossSlip.h:47
model::DislocationCrossSlip::findCrossSlipSegments
void findCrossSlipSegments(const double dt=-1.0)
Definition
DislocationCrossSlip.cpp:76
model::DislocationCrossSlip::DislocationCrossSlip
DislocationCrossSlip(DislocationNetwork< dim > &DN_in)
Definition
DislocationCrossSlip.cpp:69
model::DislocationNetwork
Definition
DislocationNetwork.h:78
model
Definition
DD_converter.dox:2
model::DefectiveCrystalTraitsIO
Definition
DefectiveCrystalTraitsIO.h:18
model::DislocationNetworkTraitsBase< dim >::LoopLinkType
DislocationLoopLink< dim > LoopLinkType
Definition
DislocationNetworkTraits.h:65
model::DislocationNetworkTraitsBase< dim >::LoopNodeType
DislocationLoopNode< dim > LoopNodeType
Definition
DislocationNetworkTraits.h:64
model::DislocationNetworkTraitsBase< dim >::NetworkLinkType
DislocationSegment< dim > NetworkLinkType
Definition
DislocationNetworkTraits.h:67
model::DislocationNetworkTraitsBase< dim >::NetworkNodeType
DislocationNode< dim > NetworkNodeType
Definition
DislocationNetworkTraits.h:66
model::DislocationNetworkTraitsBase< dim >::LoopType
DislocationLoop< dim > LoopType
Definition
DislocationNetworkTraits.h:63
model::DislocationNetworkTraitsBase< dim >::VectorDim
Eigen::Matrix< double, dim, 1 > VectorDim
Definition
DislocationNetworkTraits.h:77
model::PolycrystallineMaterialBase
Definition
PolycrystallineMaterialBase.h:21
model::TypeTraits
Definition
TypeTraits.h:19
Generated by
1.15.0