$extrastylesheet
00001 // The libMesh Finite Element Library. 00002 // Copyright (C) 2002-2014 Benjamin S. Kirk, John W. Peterson, Roy H. Stogner 00003 00004 // This library is free software; you can redistribute it and/or 00005 // modify it under the terms of the GNU Lesser General Public 00006 // License as published by the Free Software Foundation; either 00007 // version 2.1 of the License, or (at your option) any later version. 00008 00009 // This library is distributed in the hope that it will be useful, 00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 // Lesser General Public License for more details. 00013 00014 // You should have received a copy of the GNU Lesser General Public 00015 // License along with this library; if not, write to the Free Software 00016 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00017 00018 00019 00020 #ifndef LIBMESH_STEADY_SOLVER_H 00021 #define LIBMESH_STEADY_SOLVER_H 00022 00023 // Local includes 00024 #include "libmesh/time_solver.h" 00025 00026 // C++ includes 00027 00028 namespace libMesh 00029 { 00030 00031 // Forward Declarations 00032 class DiffContext; 00033 class DifferentiableSystem; 00034 class TimeSolver; 00035 00047 // ------------------------------------------------------------ 00048 // Solver class definition 00049 class SteadySolver : public TimeSolver 00050 { 00051 public: 00055 typedef DifferentiableSystem sys_type; 00056 00060 typedef TimeSolver Parent; 00061 00066 explicit 00067 SteadySolver (sys_type& s) : Parent(s) {} 00068 00072 virtual ~SteadySolver (); 00073 00078 virtual Real error_order() const { return 0.; } 00079 00085 virtual bool element_residual (bool request_jacobian, 00086 DiffContext &); 00087 00093 virtual bool side_residual (bool request_jacobian, 00094 DiffContext &); 00095 00101 virtual bool nonlocal_residual (bool request_jacobian, 00102 DiffContext &); 00103 00109 virtual Real du(const SystemNorm&) const { return 0; } 00110 00114 virtual bool is_steady() const { return true; } 00115 00116 protected: 00117 00122 virtual bool _general_residual (bool request_jacobian, 00123 DiffContext&, 00124 ResFuncType time_deriv, 00125 ResFuncType constraint); 00126 }; 00127 00128 00129 } // namespace libMesh 00130 00131 00132 #endif // LIBMESH_STEADY_SOLVER_H