本文整理汇总了C++中loca::ParameterVector::getIndex方法的典型用法代码示例。如果您正苦于以下问题:C++ ParameterVector::getIndex方法的具体用法?C++ ParameterVector::getIndex怎么用?C++ ParameterVector::getIndex使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类loca::ParameterVector
的用法示例。
在下文中一共展示了ParameterVector::getIndex方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, char *argv[])
{
int nConstraints = 10;
int nRHS = 7;
int n = 100;
double alpha = 1.0;
double beta = 0.0;
double gamma = 2.0;
double scale = 1.0;
int ierr = 0;
double reltol = 1.0e-9;
double abstol = 1.0e-9;
alpha = alpha / scale;
try {
bool verbose = false;
// Check for verbose output
if (argc>1)
if (argv[1][0]=='-' && argv[1][1]=='v')
verbose = true;
// Create parameter list
Teuchos::RCP<Teuchos::ParameterList> paramList =
Teuchos::rcp(new Teuchos::ParameterList);
// Create LOCA sublist
Teuchos::ParameterList& locaParamsList = paramList->sublist("LOCA");
// Create the constraints list
Teuchos::ParameterList& constraintsList =
locaParamsList.sublist("Constraints");
constraintsList.set("Bordered Solver Method", "Bordering");
// Create the "Solver" parameters sublist to be used with NOX Solvers
Teuchos::ParameterList& nlParams = paramList->sublist("NOX");
Teuchos::ParameterList& nlPrintParams = nlParams.sublist("Printing");
if (verbose)
nlPrintParams.set("Output Information",
NOX::Utils::Error +
NOX::Utils::Details +
NOX::Utils::OuterIteration +
NOX::Utils::InnerIteration +
NOX::Utils::Warning +
NOX::Utils::TestDetails +
NOX::Utils::StepperIteration +
NOX::Utils::StepperDetails);
else
nlPrintParams.set("Output Information", NOX::Utils::Error);
// Create LAPACK factory
Teuchos::RCP<LOCA::Abstract::Factory> lapackFactory =
Teuchos::rcp(new LOCA::LAPACK::Factory);
// Create global data object
globalData = LOCA::createGlobalData(paramList, lapackFactory);
// Create parsed parameter list
parsedParams =
Teuchos::rcp(new LOCA::Parameter::SublistParser(globalData));
parsedParams->parseSublists(paramList);
// Set up the problem interface
ChanProblemInterface chan(globalData, n, alpha, beta, scale);
LOCA::ParameterVector p;
p.addParameter("alpha",alpha);
p.addParameter("beta",beta);
p.addParameter("gamma",gamma);
p.addParameter("scale",scale);
// Create a group which uses that problem interface. The group will
// be initialized to contain the default initial guess for the
// specified problem.
grp = Teuchos::rcp(new LOCA::LAPACK::Group(globalData, chan));
grp->setParams(p);
// Create Jacobian operator
op = Teuchos::rcp(new LOCA::BorderedSolver::JacobianOperator(grp));
// Change initial guess to a random vector
Teuchos::RCP<NOX::Abstract::Vector> xnew = grp->getX().clone();
xnew->random();
grp->setX(*xnew);
// Create the constraints object & constraint param IDs list
constraints = Teuchos::rcp(new LinearConstraint(nConstraints, p, *xnew));
Teuchos::RCP< std::vector<int> > constraintParamIDs =
Teuchos::rcp(new std::vector<int>(1));
(*constraintParamIDs)[0] = p.getIndex("alpha");
// Create bordering solver
bordering
= globalData->locaFactory->createBorderedSolverStrategy(
parsedParams,
parsedParams->getSublist("Constraints"));
// Change strategy to LAPACK Direct Solve
//.........这里部分代码省略.........