37 #include "libmesh/getpot.h"
38 #include "libmesh/fem_system.h"
39 #include "libmesh/diff_solver.h"
45 : _max_nonlinear_iterations( input(
"linear-nonlinear-solver/max_nonlinear_iterations", 10 ) ),
46 _relative_step_tolerance( input(
"linear-nonlinear-solver/relative_step_tolerance", 1.e-6 ) ),
47 _absolute_step_tolerance( input(
"linear-nonlinear-solver/absolute_step_tolerance", 0.0 ) ),
48 _relative_residual_tolerance( input(
"linear-nonlinear-solver/relative_residual_tolerance", 1.e-15 ) ),
49 _absolute_residual_tolerance( input(
"linear-nonlinear-solver/absolute_residual_tolerance", 0.0 ) ),
50 _initial_linear_tolerance( input(
"linear-nonlinear-solver/initial_linear_tolerance", 1.e-3 ) ),
51 _minimum_linear_tolerance( input(
"linear-nonlinear-solver/minimum_linear_tolerance", 1.e-3 ) ),
52 _max_linear_iterations( input(
"linear-nonlinear-solver/max_linear_iterations", 500 ) ),
53 _continue_after_backtrack_failure( input(
"linear-nonlinear-solver/continue_after_backtrack_failure", false ) ),
54 _continue_after_max_iterations( input(
"linear-nonlinear-solver/continue_after_max_iterations", false ) ),
55 _solver_quiet( input(
"screen-options/solver_quiet", false ) ),
56 _solver_verbose( input(
"screen-options/solver_verbose", false ) )
68 std::tr1::shared_ptr<libMesh::EquationSystems> equation_system,
76 equation_system->init();
79 libMesh::DiffSolver &solver = *(system->time_solver->diff_solver().get());
107 libMesh::out <<
"==========================================================" << std::endl
108 <<
"Solving adjoint problem." << std::endl
109 <<
"==========================================================" << std::endl;
111 context.
system->adjoint_solve();
112 context.
system->set_adjoint_already_solved(
true);
double _absolute_residual_tolerance
virtual void init_time_solver(GRINS::MultiphysicsSystem *system)=0
double _relative_residual_tolerance
Solver(const GetPot &input)
unsigned int _max_linear_iterations
void set_solver_options(libMesh::DiffSolver &solver)
double _relative_step_tolerance
void steady_adjoint_solve(SolverContext &context)
Do steady version of adjoint solve.
bool _continue_after_backtrack_failure
double _minimum_linear_tolerance
double _absolute_step_tolerance
GRINS::MultiphysicsSystem * system
Interface with libMesh for solving Multiphysics problems.
bool _continue_after_max_iterations
virtual void initialize(const GetPot &input, std::tr1::shared_ptr< libMesh::EquationSystems > equation_system, GRINS::MultiphysicsSystem *system)
Simple class to hold objects passed to Solver::solve.
unsigned int _max_nonlinear_iterations
double _initial_linear_tolerance