17 using namespace model;
18 static_assert(std::is_constructible_v<DislocationNodeIO<3>,
const DislocationNode<3>&>);
19 static_assert(std::is_constructible_v<DislocationLoopIO<3>,
const DislocationLoop<3>&>);
23 static_assert(!std::is_constructible_v<DislocationNodeIO<3>,
const Unrelated&>);
24 static_assert(!std::is_constructible_v<DislocationLoopIO<3>,
const Unrelated&>);
25 static_assert(!std::is_constructible_v<DislocationLoopNodeIO<3>,
const Unrelated&>);
26 static_assert(!std::is_constructible_v<DislocationLoopLinkIO<3>,
const Unrelated&>);
27 static_assert(!std::is_constructible_v<DislocationQuadraturePointIO<3>,
const Unrelated&>);
31 static_assert(std::is_same_v<
decltype(std::declval<DislocationNetwork<3>>().crossSlipMaker),
DislocationCrossSlip<3>>);
32 template<
class Record>
33 void roundTrip(
const Record& record)
35 std::ostringstream written;
37 std::stringstream input(written.str());
38 Record restored(input);
39 std::ostringstream repeated;
41 if(written.str()!=repeated.str())
43 throw std::runtime_error(
"DD IO text round trip changed serialized fields");
50 if(aux.getBinFilename(7)!=
"config/ddAux_7.bin")
52 throw std::runtime_error(
"Default auxiliary folder is wrong");
56 node.
P=Eigen::Vector3d(1.25,-2.5,3.75);
57 node.
V=Eigen::Vector3d(-4,5,-6);
62 loop.B=Eigen::Vector3d(1,2,3);
72 const Eigen::Vector3d
a(0,0,0),
b(1,0,0),
c(0,1,0),d(1,1,0);
75 throw std::runtime_error(
"Separated coplanar segments have nonzero linking number");
Class template that handles the nodal remesh of the DislocationNetwork.
static double segmentPairLN(const VectorDim &R1, const VectorDim &R2, const VectorDim &R3, const VectorDim &R4)