Mechanics of Defect Evolution Library
Loading...
Searching...
No Matches
include
InclusionMicrostructure
EllipsoidalInclusionIO.h
Go to the documentation of this file.
1
/* This file is part of MoDELib, the Mechanics Of Defects Evolution Library.
2
* MoDELib is distributed without any warranty under the
3
* GNU General Public License (GPL) v2 <http://www.gnu.org/licenses/>.
4
*/
5
#ifndef model_EllipsoidalInclusionIO_H_
6
#define model_EllipsoidalInclusionIO_H_
7
8
#include <cstddef>
9
#include <iomanip>
10
#include <sstream>
11
#include <Eigen/Dense>
12
13
namespace
model
14
{
15
template
<
int
dim>
class
EllipsoidalInclusion
;
16
template
<
int
dim>
struct
EllipsoidalInclusionIO
17
{
18
static_assert
(dim == 3,
"EllipsoidalInclusionIO requires dim=3"
);
19
typedef
Eigen::Matrix<double, dim, dim>
MatrixDim
;
20
typedef
Eigen::Matrix<double, dim, 1>
VectorDim
;
21
22
std::size_t
inclusionID
;
23
VectorDim
C
;
24
MatrixDim
axes
;
// Columns are mutually orthogonal semiaxis vectors.
25
MatrixDim
eT
;
26
double
mobilityReduction
;
27
int
phaseID
;
28
29
EllipsoidalInclusionIO
(
const
EllipsoidalInclusion<dim>
&ei);
30
31
EllipsoidalInclusionIO
(
const
std::size_t &inclusionID_in,
const
VectorDim
&C_in,
const
MatrixDim
&axes_in,
32
const
MatrixDim
&eT_in,
const
double
&mobilityReduction_in,
const
int
&phaseID_in);
33
EllipsoidalInclusionIO
();
34
EllipsoidalInclusionIO
(std::stringstream &
ss
);
35
36
// One record: ID, C, axes (row-major), eT (row-major), mobility, phase.
37
// Material constants and numerical settings are supplied when reconstructing
38
// the inclusion, as material constants are for SphericalInclusionIO.
39
void
write
(std::ostream &os)
const
;
40
template
<
class
T>
friend
T &
operator<<
(T &os,
const
EllipsoidalInclusionIO<dim>
&ei)
41
{
42
ei.
write
(os);
43
return
os;
44
}
45
};
46
}
// namespace model
47
#endif
model::EllipsoidalInclusion
Definition
EllipsoidalInclusion.h:15
model
Definition
DD_converter.dox:2
model::EllipsoidalInclusionIO::MatrixDim
Eigen::Matrix< double, dim, dim > MatrixDim
Definition
EllipsoidalInclusionIO.h:19
model::EllipsoidalInclusionIO::EllipsoidalInclusionIO
EllipsoidalInclusionIO(const EllipsoidalInclusion< dim > &ei)
Definition
EllipsoidalInclusionIO.cpp:11
model::EllipsoidalInclusionIO::EllipsoidalInclusionIO
EllipsoidalInclusionIO()
Definition
EllipsoidalInclusionIO.cpp:41
model::EllipsoidalInclusionIO::VectorDim
Eigen::Matrix< double, dim, 1 > VectorDim
Definition
EllipsoidalInclusionIO.h:20
model::EllipsoidalInclusionIO::inclusionID
std::size_t inclusionID
Definition
EllipsoidalInclusionIO.h:22
model::EllipsoidalInclusionIO::mobilityReduction
double mobilityReduction
Definition
EllipsoidalInclusionIO.h:26
model::EllipsoidalInclusionIO::phaseID
int phaseID
Definition
EllipsoidalInclusionIO.h:27
model::EllipsoidalInclusionIO::write
void write(std::ostream &os) const
Definition
EllipsoidalInclusionIO.cpp:17
model::EllipsoidalInclusionIO::operator<<
friend T & operator<<(T &os, const EllipsoidalInclusionIO< dim > &ei)
Definition
EllipsoidalInclusionIO.h:40
model::EllipsoidalInclusionIO::C
VectorDim C
Definition
EllipsoidalInclusionIO.h:23
model::EllipsoidalInclusionIO::eT
MatrixDim eT
Definition
EllipsoidalInclusionIO.h:25
model::EllipsoidalInclusionIO::axes
MatrixDim axes
Definition
EllipsoidalInclusionIO.h:24
ss
newsubseg ss[0]
Definition
triangle.cpp:4716
Generated by
1.15.0