Mechanics of Defect Evolution Library
Loading...
Searching...
No Matches
EllipsoidalInclusionIO.cpp
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 */
7
8namespace model
9{
10 template <int dim>
16
17 template <int dim> void EllipsoidalInclusionIO<dim>::write(std::ostream &os) const
18 {
19 os << inclusionID << "\t" << std::setprecision(15) << std::scientific << C.transpose() << "\t";
20 for (int d = 0; d < dim; ++d)
21 {
22 os << axes.row(d) << "\t";
23 }
24 for (int d = 0; d < dim; ++d)
25 {
26 os << eT.row(d) << "\t";
27 }
28 os << mobilityReduction << "\t" << phaseID;
29 }
30
31 template <int dim>
32 EllipsoidalInclusionIO<dim>::EllipsoidalInclusionIO(const std::size_t &inclusionID_in, const VectorDim &C_in,
33 const MatrixDim &axes_in, const MatrixDim &eT_in,
34 const double &mobilityReduction_in, const int &phaseID_in)
35 : inclusionID(inclusionID_in), C(C_in), axes(axes_in), eT(eT_in), mobilityReduction(mobilityReduction_in),
36 phaseID(phaseID_in)
37 {
38 }
39
40 template <int dim>
46
47 template <int dim>
49 {
50 // Preserve stream failure flags for the caller, matching the other IO records.
51 ss >> inclusionID;
52 for (int d = 0; d < dim; ++d)
53 {
54 ss >> C(d);
55 }
56 for (int i = 0; i < dim; ++i)
57 {
58 for (int j = 0; j < dim; ++j)
59 {
60 ss >> axes(i, j);
61 }
62 }
63 for (int i = 0; i < dim; ++i)
64 {
65 for (int j = 0; j < dim; ++j)
66 {
67 ss >> eT(i, j);
68 }
69 }
71 }
72
73 template struct EllipsoidalInclusionIO<3>;
74} // namespace model
Eigen::Matrix< double, dim, dim > MatrixDim
EllipsoidalInclusionIO(const EllipsoidalInclusion< dim > &ei)
Eigen::Matrix< double, dim, 1 > VectorDim
void write(std::ostream &os) const
int j
newsubseg ss[0]
int i