本文整理汇总了C++中thyra::LinearOpTester::num_random_vectors方法的典型用法代码示例。如果您正苦于以下问题:C++ LinearOpTester::num_random_vectors方法的具体用法?C++ LinearOpTester::num_random_vectors怎么用?C++ LinearOpTester::num_random_vectors使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类thyra::LinearOpTester
的用法示例。
在下文中一共展示了LinearOpTester::num_random_vectors方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
TEUCHOS_UNIT_TEST(assembly_engine, z_basic_epetra_vtpetra)
{
TEUCHOS_ASSERT(tLinearOp!=Teuchos::null);
TEUCHOS_ASSERT(eLinearOp!=Teuchos::null);
TEUCHOS_ASSERT(tVector!=Teuchos::null);
TEUCHOS_ASSERT(eVector!=Teuchos::null);
Thyra::LinearOpTester<double> tester;
tester.set_all_error_tol(1e-14);
tester.show_all_tests(true);
tester.dump_all(true);
tester.num_random_vectors(200);
{
const bool result = tester.compare( *tLinearOp, *eLinearOp, Teuchos::ptrFromRef(out) );
TEST_ASSERT(result);
}
{
const bool result = Thyra::testRelNormDiffErr(
"Tpetra",*tVector,
"Epetra",*eVector,
"linear_properties_error_tol()", 1e-14,
"linear_properties_warning_tol()", 1e-14,
&out);
TEST_ASSERT(result);
}
}
示例2:
TEUCHOS_UNIT_TEST(assembly_engine, z_basic_epetra_vtpetra)
{
PHX::InitializeKokkosDevice();
TEUCHOS_ASSERT(tLinearOp!=Teuchos::null);
TEUCHOS_ASSERT(eLinearOp!=Teuchos::null);
TEUCHOS_ASSERT(tVector!=Teuchos::null);
TEUCHOS_ASSERT(eVector!=Teuchos::null);
Thyra::LinearOpTester<double> tester;
tester.set_all_error_tol(1e-14);
tester.show_all_tests(true);
tester.dump_all(true);
tester.num_random_vectors(200);
{
const bool result = tester.compare( *tLinearOp, *eLinearOp, Teuchos::ptrFromRef(out) );
TEST_ASSERT(result);
}
{
const bool result = Thyra::testRelNormDiffErr(
"Tpetra",*tVector,
"Epetra",*eVector,
"linear_properties_error_tol()", 1e-14,
"linear_properties_warning_tol()", 1e-14,
&out);
TEST_ASSERT(result);
}
// Need to kill global objects so that memory leaks on kokkos ref
// count pointing doesn't trigger test failure.
eLinearOp = Teuchos::null;
tLinearOp = Teuchos::null;
eVector = Teuchos::null;
tVector = Teuchos::null;
PHX::FinalizeKokkosDevice();
}
示例3: fout
// Testing Parameter Support
TEUCHOS_UNIT_TEST(model_evaluator_blocked_hessians, d2f_dp2)
{
typedef panzer::Traits::RealType RealType;
typedef Thyra::VectorBase<RealType> VectorType;
typedef Thyra::SpmdVectorBase<RealType> SpmdVectorType;
typedef Thyra::LinearOpBase<RealType> OperatorType;
using Teuchos::RCP;
using Teuchos::rcp_dynamic_cast;
typedef Thyra::ModelEvaluatorBase::InArgs<double> InArgs;
typedef Thyra::ModelEvaluatorBase::OutArgs<double> OutArgs;
typedef panzer::ModelEvaluator<double> PME;
bool distr_param_on = true;
AssemblyPieces ap;
buildAssemblyPieces(distr_param_on,ap);
int pIndex = -1;
std::vector<Teuchos::RCP<Teuchos::Array<std::string> > > p_names;
std::vector<Teuchos::RCP<Teuchos::Array<double> > > p_values;
bool build_transient_support = true;
RCP<PME> me
= Teuchos::rcp(new PME(ap.fmb,ap.rLibrary,ap.lof,p_names,p_values,Teuchos::null,ap.gd,build_transient_support,0.0));
const double DENSITY_VALUE = 3.7;
const double TEMPERATURE_VALUE = 2.0;
const double PERTURB_VALUE = 0.1;
// add distributed parameter
{
RCP<ThyraObjFactory<double> > th_param_lof = rcp_dynamic_cast<ThyraObjFactory<double> >(ap.param_lof);
RCP<VectorType> param_density = Thyra::createMember(th_param_lof->getThyraDomainSpace());
Thyra::assign(param_density.ptr(),DENSITY_VALUE);
pIndex = me->addDistributedParameter("DENSITY_P",th_param_lof->getThyraDomainSpace(),
ap.param_ged,param_density,ap.param_dofManager);
}
me->setupModel(ap.wkstContainer,ap.physicsBlocks,ap.bcs,
*ap.eqset_factory,
*ap.bc_factory,
ap.cm_factory,
ap.cm_factory,
ap.closure_models,
ap.user_data,false,"");
// panzer::printMeshTopology(out,*ap.dofManager);
RCP<OperatorType> D2fDp2 = me->create_DfDp_op(pIndex);
// test hessian
{
RCP<VectorType> x = Thyra::createMember(*me->get_x_space());
Thyra::assign(x.ptr(),TEMPERATURE_VALUE);
RCP<VectorType> dx = Thyra::createMember(*me->get_x_space());
Thyra::assign(dx.ptr(),PERTURB_VALUE);
InArgs in_args = me->createInArgs();
in_args.set_x(x);
in_args.set_alpha(1.0/0.1);
in_args.set_beta(1.0);
me->evalModel_D2fDp2(pIndex,in_args,dx,D2fDp2);
out << "D2fDp2 = \n" << Teuchos::describe(*D2fDp2,Teuchos::VERB_EXTREME) << std::endl;
}
RCP<OperatorType> W = me->create_DfDp_op(pIndex);
{
RCP<VectorType> x = Thyra::createMember(*me->get_x_space());
Thyra::assign(x.ptr(),TEMPERATURE_VALUE);
InArgs in_args = me->createInArgs();
in_args.set_x(x);
in_args.set_alpha(1.0);
in_args.set_beta(0.0);
OutArgs out_args = me->createOutArgs();
out_args.set_DfDp(pIndex,W);
me->evalModel(in_args,out_args);
out << "W = \n" << Teuchos::describe(*W,Teuchos::VERB_EXTREME) << std::endl;
}
Thyra::LinearOpTester<double> tester;
tester.show_all_tests(true);
tester.set_all_error_tol(1e-15);
tester.num_random_vectors(20);
double scaling_of_dfdp = PERTURB_VALUE/DENSITY_VALUE;
Teuchos::FancyOStream fout(Teuchos::rcpFromRef(std::cout));
//.........这里部分代码省略.........