本文整理汇总了C++中Orientation::isAlignedToReference方法的典型用法代码示例。如果您正苦于以下问题:C++ Orientation::isAlignedToReference方法的具体用法?C++ Orientation::isAlignedToReference怎么用?C++ Orientation::isAlignedToReference使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Orientation
的用法示例。
在下文中一共展示了Orientation::isAlignedToReference方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: logic_error
int Orientation_Test01(const bool verbose) {
Teuchos::RCP<std::ostream> outStream;
Teuchos::oblackholestream bhs; // outputs nothing
if (verbose)
outStream = Teuchos::rcp(&std::cout, false);
else
outStream = Teuchos::rcp(&bhs, false);
Teuchos::oblackholestream oldFormatState;
oldFormatState.copyfmt(std::cout);
typedef typename
Kokkos::Impl::is_space<DeviceSpaceType>::host_mirror_space::execution_space HostSpaceType ;
*outStream << "DeviceSpace:: "; DeviceSpaceType::print_configuration(*outStream, false);
*outStream << "HostSpace:: "; HostSpaceType::print_configuration(*outStream, false);
*outStream << "\n";
*outStream
<< "===============================================================================\n"
<< "| |\n"
<< "| Unit Test (Orientation) |\n"
<< "| |\n"
<< "===============================================================================\n";
int errorFlag = 0;
try {
ordinal_type nthrow = 0, ncatch = 0;
{
Orientation ort;
INTREPID2_TEST_ERROR_EXPECTED( if (ort.isAlignedToReference()) \
throw std::logic_error("Default Orientation is not zero"); );
}
if (nthrow != ncatch) {
errorFlag++;
*outStream << std::setw(70) << "^^^^----FAILURE!" << "\n";
*outStream << "# of catch ("<< ncatch << ") is different from # of throw (" << nthrow << ")\n";
}
{
*outStream << "\n -- Testing Triangle \n\n";
const auto cellTopo = shards::CellTopology(shards::getCellTopologyData<shards::Triangle<3> >() );
const ordinal_type elemNodes[6][3] = { { 1, 2, 3 },
{ 1, 3, 2 },
{ 2, 1, 3 },
{ 2, 3, 1 },
{ 3, 1, 2 },
{ 3, 2, 1 } };
const ordinal_type refEdgeOrts[6][3] = { { 0, 0, 1 },
{ 0, 1, 1 },
{ 1, 0, 1 },
{ 0, 1, 0 },
{ 1, 0, 0 },
{ 1, 1, 0 } };
for (auto i=0;i<6;++i) {
// find orientation
const auto nodes = Kokkos::View<const ordinal_type[3],HostSpaceType>(elemNodes[i]);
const auto ort = Orientation::getOrientation(cellTopo, nodes);
// decode orientation
ordinal_type edgeOrt[3] = {};
for (auto edgeId=0;edgeId<3;++edgeId)
ort.getEdgeOrientation(edgeOrt, 3);
*outStream << " elemNodes = "
<< elemNodes[i][0] << " "
<< elemNodes[i][1] << " "
<< elemNodes[i][2] << " :: "
<< " computed edgeOrts = "
<< edgeOrt[0] << " "
<< edgeOrt[1] << " "
<< edgeOrt[2] << " :: "
<< " reference edgeOrts = "
<< refEdgeOrts[i][0] << " "
<< refEdgeOrts[i][1] << " "
<< refEdgeOrts[i][2] << " ::\n";
if (edgeOrt[0] != refEdgeOrts[i][0] ||
edgeOrt[1] != refEdgeOrts[i][1] ||
edgeOrt[2] != refEdgeOrts[i][2]) {
*outStream << " ^^^^^^^^^^^^^^^^ FAILURE\n";
++errorFlag;
}
}
}
{
*outStream << "\n -- Testing Quadrilateral \n\n";
const auto cellTopo = shards::CellTopology(shards::getCellTopologyData<shards::Quadrilateral<4> >() );
const ordinal_type elemNodes[24][4] = { { 1 , 2 , 3 , 4 },
{ 2 , 1 , 3 , 4 },
//.........这里部分代码省略.........