Mechanics of Defect Evolution Library
Loading...
Searching...
No Matches
src
DislocationDynamics
DislocationLoopIO.cpp
Go to the documentation of this file.
1
#include <
DislocationDynamics/DislocationLoopIO.h
>
2
#include <cfloat>
3
4
namespace
model
5
{
6
7
8
template
<
short
unsigned
int
dim>
9
DislocationLoopIO<dim>::DislocationLoopIO
(
const
size_t
& sID_in,
// sID
10
const
VectorDim
& B_in,
// position
11
const
VectorDim
& N_in,
// velocity
12
const
VectorDim
& P_in,
// velocity
13
const
size_t
& grainID_in,
14
const
int
& loopType_in
15
) :
16
/* init */
sID
(sID_in)
17
/* init */
,
B
(B_in)
18
/* init */
,
N
(N_in)
19
/* init */
,
P
(P_in)
20
/* init */
,
grainID
(grainID_in)
21
/* init */
,
loopType
(loopType_in)
22
/* init */
,
loopLength
(std::make_tuple(0.0,0.0,0.0,0.0))
23
/* init */
,
slippedArea
(0.0)
24
{
25
26
}
27
28
template
<
short
unsigned
int
dim>
29
DislocationLoopIO<dim>::DislocationLoopIO
() :
30
/* init */
sID
(0)
31
/* init */
,
B
(
VectorDim
::Zero())
32
/* init */
,
N
(
VectorDim
::Zero())
33
/* init */
,
P
(
VectorDim
::Zero())
34
/* init */
,
grainID
(0)
35
/* init */
,
loopType
(0)
36
/* init */
,
loopLength
(std::make_tuple(0.0,0.0,0.0,0.0))
37
/* init */
,
slippedArea
(0.0)
38
{
39
40
}
41
42
template
<
short
unsigned
int
dim>
43
DislocationLoopIO<dim>::DislocationLoopIO
(std::stringstream&
ss
) :
44
/* init */
sID
(0)
45
/* init */
,
B
(
VectorDim
::Zero())
46
/* init */
,
N
(
VectorDim
::Zero())
47
/* init */
,
P
(
VectorDim
::Zero())
48
/* init */
,
grainID
(0)
49
/* init */
,
loopType
(0)
50
/* init */
,
loopLength
(std::make_tuple(0.0,0.0,0.0,0.0))
51
/* init */
,
slippedArea
(0.0)
52
{
53
ss
>>
sID
;
54
for
(
int
d=0;d<dim;++d)
55
{
56
ss
>>
B
(d);
57
}
58
for
(
int
d=0;d<dim;++d)
59
{
60
ss
>>
N
(d);
61
}
62
for
(
int
d=0;d<dim;++d)
63
{
64
ss
>>
P
(d);
65
}
66
ss
>>
grainID
;
67
ss
>>
loopType
;
68
double
l1,l2,l3,
A
;
69
ss
>>l1>>l2>>l3>>
A
;
70
loopLength
=std::make_tuple(l1,l2,l3,
A
);
71
ss
>>
slippedArea
;
72
}
73
74
template
<
short
unsigned
int
dim>
75
std::ostream&
DislocationLoopIO<dim>::write
(std::ostream& os)
const
76
{
77
const
auto
& ds=*
this
;
78
os << ds.sID<<
"\t"
79
/**/
<< std::setprecision(15)<<std::scientific<<ds.B.transpose()<<
"\t"
80
/**/
<< std::setprecision(15)<<std::scientific<<ds.N.transpose()<<
"\t"
81
/**/
<< std::setprecision(15)<<std::scientific<<ds.P.transpose()<<
"\t"
82
/**/
<< ds.grainID<<
"\t"
83
/**/
<< ds.loopType<<
"\t"
84
/**/
<< std::get<0>(ds.loopLength)<<
"\t"
<< std::get<1>(ds.loopLength)<<
"\t"
<< std::get<2>(ds.loopLength)<<
"\t"
<< std::get<3>(ds.loopLength)<<
"\t"
85
/**/
<< ds.slippedArea;
86
return
os;
87
88
}
89
90
template
struct
DislocationLoopIO<3>
;
91
}
DislocationLoopIO.h
A
function infiniteDisplacement syms Ax Ay Az Bx By Bz qx qy qz u L x y z real A
Definition
infiniteDisplacement.m:4
model
Definition
DD_converter.dox:2
model::DislocationLoopIO
Definition
DislocationLoopIO.h:24
model::DislocationLoopIO::DislocationLoopIO
DislocationLoopIO()
Definition
DislocationLoopIO.cpp:29
model::DislocationLoopIO::grainID
size_t grainID
Definition
DislocationLoopIO.h:35
model::DislocationLoopIO::slippedArea
double slippedArea
Definition
DislocationLoopIO.h:38
model::DislocationLoopIO::sID
size_t sID
Definition
DislocationLoopIO.h:31
model::DislocationLoopIO::VectorDim
Eigen::Matrix< double, dim, 1 > VectorDim
Definition
DislocationLoopIO.h:29
model::DislocationLoopIO::B
VectorDim B
Definition
DislocationLoopIO.h:32
model::DislocationLoopIO::loopType
int loopType
Definition
DislocationLoopIO.h:36
model::DislocationLoopIO::P
VectorDim P
Definition
DislocationLoopIO.h:34
model::DislocationLoopIO::loopLength
std::tuple< double, double, double, double > loopLength
Definition
DislocationLoopIO.h:37
model::DislocationLoopIO::write
std::ostream & write(std::ostream &os) const
Definition
DislocationLoopIO.cpp:75
model::DislocationLoopIO::N
VectorDim N
Definition
DislocationLoopIO.h:33
ss
newsubseg ss[0]
Definition
triangle.cpp:4716
Generated by
1.15.0