本文整理汇总了C++中Teuchos::inoutArg方法的典型用法代码示例。如果您正苦于以下问题:C++ Teuchos::inoutArg方法的具体用法?C++ Teuchos::inoutArg怎么用?C++ Teuchos::inoutArg使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Teuchos
的用法示例。
在下文中一共展示了Teuchos::inoutArg方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: tab
bool VectorTester<Scalar>::check(
const VectorBase<Scalar> &v
,Teuchos::FancyOStream *out_arg
) const
{
using std::endl;
using Teuchos::describe;
using Teuchos::FancyOStream;
using Teuchos::OSTab;
typedef Teuchos::ScalarTraits<Scalar> ST;
//typedef typename ST::magnitudeType ScalarMag;
Teuchos::RCP<FancyOStream> out = Teuchos::rcp(out_arg,false);
const Teuchos::EVerbosityLevel verbLevel = (dump_all()?Teuchos::VERB_EXTREME:Teuchos::VERB_MEDIUM);
OSTab tab(out,1,"THYRA");
bool result, success = true;
if(out.get()) *out <<endl<< "*** Entering Thyra::VectorTester<"<<ST::name()<<">::check(v,...) ...\n";
if(out.get()) *out <<endl<< "Testing a VectorBase object described as:\n" << describe(v,verbLevel);
if(out.get()) *out <<endl<< "A) Creating temporary vector t1, t2, t3, and t4 from v.space() ...\n";
Teuchos::RCP<const Thyra::VectorSpaceBase<Scalar> >
vs = v.space();
Teuchos::RCP<Thyra::VectorBase<Scalar> >
t1 = createMember(vs), t2 = createMember(vs), t3 = createMember(vs), t4 = createMember(vs);
if(out.get()) *out <<endl<< "B) Testing VectorBase::applyOp(...) by calling a few standard RTOp operations ... ";
const Scalar
one = ST::one(),
two = Scalar(2)*one,
three = Scalar(3)*one;
{
using Teuchos::inoutArg;
TestResultsPrinter testResultsPrinter(out, show_all_tests());
const RCP<FancyOStream> testOut = testResultsPrinter.getTestOStream();
bool these_results = true;
*testOut <<endl<< "assign(t1.ptr(),2.0) ...\n";
Thyra::assign( t1.ptr(), two );
if(dump_all()) *testOut <<endl<< "\nt1 =\n" << describe(*t1,verbLevel);
result = Teuchos::testRelErr<Scalar>(
"sum(t1)", sum(*t1), "2*vs->dim()", two*Scalar(vs->dim()),
"error_tol()", error_tol(), "warning_tol()", warning_tol(),
inoutArg(*testOut)
);
if(!result) these_results = false;
*testOut <<endl<< "assign(t2.ptr(),3.0) ...\n";
Thyra::assign( t2.ptr(), three );
if(dump_all()) *testOut <<endl<< "t2 =\n" << *t1;
result = Teuchos::testRelErr<Scalar>(
"sum(t2)",sum(*t2),"3*vs->dim()",three*Scalar(vs->dim()),
"error_tol()",error_tol(),"warning_tol()",warning_tol(),
inoutArg(*testOut)
);
if(!result) these_results = false;
result = Teuchos::testRelErr<Scalar>(
"vs->scalarProd(*t1,*t2)",vs->scalarProd(*t1,*t2),"2*3*vs->dim()",two*three*Scalar(vs->dim()),
"error_tol()",error_tol(),"warning_tol()",warning_tol(),
inoutArg(*testOut)
);
if(!result) these_results = false;
testResultsPrinter.printTestResults(these_results, inoutArg(success));
}
// ToDo: Test the rest of the specific VectorBase interface on v1
if(out.get()) *out <<endl<< "C) Checking the MultiVectorBase interface of v ...\n";
result = multiVectorTester_.check(v, out.ptr());
if(!result) success = false;
if(out.get()) *out <<endl<< "*** Leaving Thyra::VectorTester<"<<ST::name()<<">::check(v,...) ...\n";
return success;
}
示例2: main
int main( int argc, char* argv[] )
{
using Teuchos::inoutArg;
Teuchos::GlobalMPISession mpiSession(&argc,&argv);
std::cout << std::endl << Teuchos::Teuchos_Version() << std::endl;
bool success = true;
try {
std::string xmlInFileName = "";
std::string extraXmlFile = "";
std::string xmlOutFileName = "paramList.out";
Teuchos::CommandLineProcessor clp(false); // Don't throw exceptions
clp.setOption("xml-in-file",&xmlInFileName,"The XML file to read into a parameter list");
clp.setOption("extra-xml-file",&extraXmlFile,"File with extra XML text that will modify the initial XML read in");
clp.setOption("xml-out-file",&xmlOutFileName,"The XML file to write the final parameter list to");
clp.setDocString(
"This example program shows how to read in a parameter list from an"
" XML file (given by --xml-in-file=xmlInFileName) and then modify it"
" given some XML specified on the command-line (given by --extra-xml=extrXmlStr)."
" The final parameter list is then written back to an XML file."
" (given by --xml-out-file=xmlOutFileName)."
);
Teuchos::CommandLineProcessor::EParseCommandLineReturn
parse_return = clp.parse(argc,argv);
if( parse_return != Teuchos::CommandLineProcessor::PARSE_SUCCESSFUL ) {
std::cout << "\nEnd Result: TEST FAILED" << std::endl;
return parse_return;
}
Teuchos::ParameterList paramList;
if(xmlInFileName.length()) {
std::cout << "\nReading a parameter list from the XML file \""<<xmlInFileName<<"\" ...\n";
Teuchos::updateParametersFromXmlFile(xmlInFileName, inoutArg(paramList));
std::cout << "\nParameter list read from the XML file \""<<xmlInFileName<<"\":\n\n";
paramList.print(std::cout,2,true,true);
}
std::string line("");
if(extraXmlFile.length()) {
std::ifstream myfile(extraXmlFile.c_str());
if (myfile.is_open())
{
getline (myfile,line);
std::cout << line << "\n";
myfile.close();
}
std::cout << "\nUpdating the parameter list given the extra XML std::string:\n\n"<<line<<"\n";
Teuchos::updateParametersFromXmlString(line, inoutArg(paramList));
std::cout << "\nParameter list after ammending extra XML std::string:\n\n";
paramList.print(std::cout,2,true,true);
}
std::cout << "\nWriting the final parameter list back to the XML file \""<<xmlOutFileName<<"\" ... \n";
Teuchos::writeParameterListToXmlFile(paramList,xmlOutFileName);
}
TEUCHOS_STANDARD_CATCH_STATEMENTS(true,std::cerr,success);
if(success)
std::cout << "\nEnd Result: TEST PASSED" << std::endl;
else
std::cout << "\nEnd Result: TEST FAILED" << std::endl;
return ( success ? 0 : 1 );
}