/usr/include/trilinos/Thyra_NonlinearSolver_NOX.hpp is in libtrilinos-dev 10.4.0.dfsg-1ubuntu2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | // @HEADER
// @HEADER
#ifndef THYRA_NONLINEARSOLVER_NOX
#define THYRA_NONLINEARSOLVER_NOX
#include "Teuchos_RCP.hpp"
#include "Thyra_NonlinearSolverBase.hpp"
namespace NOX {
class SolverManager;
namespace Thyra {
class Group;
}
namespace StatusTest {
class Generic;
}
namespace Solver {
class Generic;
}
}
namespace Thyra {
/** \brief Concrete nonlinear solver for NOX.
*
* This class implemets a NOX nonlinear solver of type <double>.
*/
class NOXNonlinearSolver : public NonlinearSolverBase<double> {
public:
NOXNonlinearSolver();
~NOXNonlinearSolver();
/** @name Overridden from ParameterListAcceptor */
//@{
/** \brief . */
void setParameterList(RCP<Teuchos::ParameterList> const& paramList);
/** \brief . */
RCP<Teuchos::ParameterList> getNonconstParameterList();
/** \brief . */
RCP<Teuchos::ParameterList> unsetParameterList();
/** \brief . */
RCP<const Teuchos::ParameterList> getParameterList() const;
/** \brief . */
RCP<const Teuchos::ParameterList> getValidParameters() const;
//@}
/** @name Overridden from NonlinearSolverBase */
//@{
/** \brief . */
void setModel(const RCP< const ModelEvaluator<double> > &model);
/** \brief . */
RCP< const ModelEvaluator<double> > getModel() const;
/** \brief . */
SolveStatus<double> solve(
VectorBase<double> *x,
const SolveCriteria<double> *solveCriteria,
VectorBase<double> *delta
);
/** \brief . */
RCP<const VectorBase<double> > get_current_x() const;
/** \brief . */
bool is_W_current() const;
/** \brief . */
RCP< LinearOpWithSolveBase<double> >
get_nonconst_W(const bool forceUpToDate);
/** \brief . */
RCP< const LinearOpWithSolveBase<double> > get_W() const;
//@}
private:
//! Called to rebuild the solver if a new parameter list is set.
void resetSolver();
//! Builds status tests - first looks for parameter list to use, otherwise builds a default set of status tests.
RCP<NOX::StatusTest::Generic>
buildStatusTests(Teuchos::ParameterList& p);
private:
RCP<Teuchos::ParameterList> param_list_;
RCP<Teuchos::ParameterList> valid_param_list_;
RCP<const ModelEvaluator<double> > model_;
RCP<NOX::Thyra::Group> nox_group_;
RCP<NOX::StatusTest::Generic> status_test_;
RCP<NOX::Solver::Generic> solver_;
};
} // namespace Thyra
#endif // THYRA_NONLINEARSOLVER_NOX
|