Procedures for writing multiple equations and for specifying equation and function ordering are identical with those for linear problems.
Upon creation, a pointer to your NonlinearProblem should be given to a TSF NonlinearOperator object. For example,
// create a nonlinear problem, wrapping it in a NonlinearOperator object NonlinearOperator<double> F = new NonlinearProblem(mesh, eqn, bc, List(vPsi, vOmega), List(psi, omega), u0, vecType); // Read parameters for NOX solver from an XML file ParameterXMLFileReader reader("../../examples-tutorial/nox.xml"); ParameterList noxParams = reader.getParameters(); // create the NOX solver NOXSolver solver(noxParams, F); // do the solve! NOX::StatusTest::StatusType status = solver.solve();
Note that no solution object is returned. Where, then, is the solution? It is written into the expression
u0 that you passed in as an initial guess. Because
u0 is an expression, it can be reused in other contexts, visualized, and so on.