VertexCFD  0.0-dev
VertexCFD_NOXObserver_IterationOutput.hpp
1 #ifndef VERTEXCFD_NOXOBSERVER_ITERATIONOUTPUT_HPP
2 #define VERTEXCFD_NOXOBSERVER_ITERATIONOUTPUT_HPP
3 
4 #include <NOX.H>
5 #include <NOX_Observer.hpp>
6 #include <NOX_Thyra_Group.H>
7 
8 #include <Teuchos_FancyOStream.hpp>
9 #include <Teuchos_ParameterList.hpp>
10 #include <Teuchos_RCP.hpp>
11 
12 namespace VertexCFD
13 {
14 namespace NOXObserver
15 {
16 //---------------------------------------------------------------------------//
17 class IterationOutput : public NOX::Observer
18 {
19  public:
21 
24  void runPreIterate(const NOX::Solver::Generic& solver) override;
25 
28  void runPostIterate(const NOX::Solver::Generic& solver) override;
29 
32  void runPreSolve(const NOX::Solver::Generic& solver) override;
33 
36  void runPostSolve(const NOX::Solver::Generic& solver) override;
37 
38  private:
39  Teuchos::FancyOStream _ostream;
40 };
41 
42 //---------------------------------------------------------------------------//
43 // This class is a workaround for the unused lineaer solver status in
44 // NOX::SolverStats::LinearSolveStats::LogLinearSolve()
45 class SolveDataExtractor : public NOX::Thyra::Group
46 {
47  public:
48  SolveDataExtractor(const NOX::Thyra::Group& group);
49  int lastLinearSolveNumIters() const;
50  double lastLinearSolveAchievedTol() const;
51 };
52 
53 //---------------------------------------------------------------------------//
54 
55 } // end namespace NOXObserver
56 } // end namespace VertexCFD
57 
58 #endif // end VERTEXCFD_NOXOBSERVER_ITERATIONOUTPUT_HPP
VertexCFD
Definition: tstMethodManufacturedSolutionBC.cpp:23
VertexCFD::NOXObserver::IterationOutput::runPreIterate
void runPreIterate(const NOX::Solver::Generic &solver) override
Definition: VertexCFD_NOXObserver_IterationOutput.cpp:20
VertexCFD::NOXObserver::IterationOutput::runPostSolve
void runPostSolve(const NOX::Solver::Generic &solver) override
Definition: VertexCFD_NOXObserver_IterationOutput.cpp:63
VertexCFD::NOXObserver::IterationOutput::runPostIterate
void runPostIterate(const NOX::Solver::Generic &solver) override
Definition: VertexCFD_NOXObserver_IterationOutput.cpp:23
VertexCFD::NOXObserver::IterationOutput::runPreSolve
void runPreSolve(const NOX::Solver::Generic &solver) override
Definition: VertexCFD_NOXObserver_IterationOutput.cpp:42
VertexCFD::NOXObserver::SolveDataExtractor
Definition: VertexCFD_NOXObserver_IterationOutput.hpp:46
VertexCFD::NOXObserver::IterationOutput
Definition: VertexCFD_NOXObserver_IterationOutput.hpp:18