GRINS-0.6.0
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
GRINS::Solver Class Referenceabstract

#include <grins_solver.h>

Inheritance diagram for GRINS::Solver:
Inheritance graph
[legend]

Public Member Functions

 Solver (const GetPot &input)
 
virtual ~Solver ()
 
virtual void initialize (const GetPot &input, std::tr1::shared_ptr< libMesh::EquationSystems > equation_system, GRINS::MultiphysicsSystem *system)
 
virtual void solve (SolverContext &context)=0
 
virtual void adjoint_qoi_parameter_sensitivity (SolverContext &, const libMesh::QoISet &, const libMesh::ParameterVector &, libMesh::SensitivityData &) const
 
virtual void forward_qoi_parameter_sensitivity (SolverContext &, const libMesh::QoISet &, const libMesh::ParameterVector &, libMesh::SensitivityData &) const
 
void steady_adjoint_solve (SolverContext &context)
 Do steady version of adjoint solve. More...
 

Protected Member Functions

void set_solver_options (libMesh::DiffSolver &solver)
 
virtual void init_time_solver (GRINS::MultiphysicsSystem *system)=0
 

Protected Attributes

unsigned int _max_nonlinear_iterations
 
double _relative_step_tolerance
 
double _absolute_step_tolerance
 
double _relative_residual_tolerance
 
double _absolute_residual_tolerance
 
double _initial_linear_tolerance
 
double _minimum_linear_tolerance
 
unsigned int _max_linear_iterations
 
bool _continue_after_backtrack_failure
 
bool _continue_after_max_iterations
 
bool _solver_quiet
 
bool _solver_verbose
 
std::map< std::string, GRINS::NBCContainer_neumann_bc_funcs
 

Detailed Description

Definition at line 58 of file grins_solver.h.

Constructor & Destructor Documentation

GRINS::Solver::Solver ( const GetPot &  input)

Definition at line 44 of file grins_solver.C.

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 ) )
57  {
58  return;
59  }
double _absolute_residual_tolerance
Definition: grins_solver.h:103
bool _solver_verbose
Definition: grins_solver.h:112
double _relative_residual_tolerance
Definition: grins_solver.h:101
unsigned int _max_linear_iterations
Definition: grins_solver.h:106
double _relative_step_tolerance
Definition: grins_solver.h:95
bool _continue_after_backtrack_failure
Definition: grins_solver.h:107
double _minimum_linear_tolerance
Definition: grins_solver.h:105
double _absolute_step_tolerance
Definition: grins_solver.h:96
bool _continue_after_max_iterations
Definition: grins_solver.h:108
unsigned int _max_nonlinear_iterations
Definition: grins_solver.h:94
double _initial_linear_tolerance
Definition: grins_solver.h:104
GRINS::Solver::~Solver ( )
virtual

Definition at line 62 of file grins_solver.C.

63  {
64  return;
65  }

Member Function Documentation

virtual void GRINS::Solver::adjoint_qoi_parameter_sensitivity ( SolverContext ,
const libMesh::QoISet &  ,
const libMesh::ParameterVector &  ,
libMesh::SensitivityData &   
) const
inlinevirtual

Reimplemented in GRINS::SteadyMeshAdaptiveSolver, and GRINS::SteadySolver.

Definition at line 71 of file grins_solver.h.

76  { libmesh_not_implemented(); }
virtual void GRINS::Solver::forward_qoi_parameter_sensitivity ( SolverContext ,
const libMesh::QoISet &  ,
const libMesh::ParameterVector &  ,
libMesh::SensitivityData &   
) const
inlinevirtual

Reimplemented in GRINS::SteadyMeshAdaptiveSolver, and GRINS::SteadySolver.

Definition at line 79 of file grins_solver.h.

84  { libmesh_not_implemented(); }
virtual void GRINS::Solver::init_time_solver ( GRINS::MultiphysicsSystem system)
protectedpure virtual
void GRINS::Solver::initialize ( const GetPot &  input,
std::tr1::shared_ptr< libMesh::EquationSystems >  equation_system,
GRINS::MultiphysicsSystem system 
)
virtual

Reimplemented in GRINS::DisplacementContinuationSolver.

Definition at line 67 of file grins_solver.C.

References init_time_solver(), and set_solver_options().

Referenced by GRINS::DisplacementContinuationSolver::initialize().

70  {
71 
72  // Defined in subclasses depending on the solver used.
73  this->init_time_solver(system);
74 
75  // Initialize the system
76  equation_system->init();
77 
78  // Get diff solver to set options
79  libMesh::DiffSolver &solver = *(system->time_solver->diff_solver().get());
80 
81  // Set linear/nonlinear solver options
82  this->set_solver_options( solver );
83 
84  return;
85  }
virtual void init_time_solver(GRINS::MultiphysicsSystem *system)=0
void set_solver_options(libMesh::DiffSolver &solver)
Definition: grins_solver.C:87
void GRINS::Solver::set_solver_options ( libMesh::DiffSolver &  solver)
protected

Definition at line 87 of file grins_solver.C.

References _absolute_residual_tolerance, _absolute_step_tolerance, _continue_after_backtrack_failure, _continue_after_max_iterations, _initial_linear_tolerance, _max_linear_iterations, _max_nonlinear_iterations, _minimum_linear_tolerance, _relative_residual_tolerance, _relative_step_tolerance, _solver_quiet, and _solver_verbose.

Referenced by initialize().

88  {
89  solver.quiet = this->_solver_quiet;
90  solver.verbose = this->_solver_verbose;
91  solver.max_nonlinear_iterations = this->_max_nonlinear_iterations;
92  solver.relative_step_tolerance = this->_relative_step_tolerance;
93  solver.absolute_step_tolerance = this->_absolute_step_tolerance;
94  solver.relative_residual_tolerance = this->_relative_residual_tolerance;
95  solver.absolute_residual_tolerance = this->_absolute_residual_tolerance;
96  solver.max_linear_iterations = this->_max_linear_iterations;
97  solver.continue_after_backtrack_failure = this->_continue_after_backtrack_failure;
98  solver.initial_linear_tolerance = this->_initial_linear_tolerance;
99  solver.minimum_linear_tolerance = this->_minimum_linear_tolerance;
100  solver.continue_after_max_iterations = this->_continue_after_max_iterations;
101 
102  return;
103  }
double _absolute_residual_tolerance
Definition: grins_solver.h:103
bool _solver_verbose
Definition: grins_solver.h:112
double _relative_residual_tolerance
Definition: grins_solver.h:101
unsigned int _max_linear_iterations
Definition: grins_solver.h:106
double _relative_step_tolerance
Definition: grins_solver.h:95
bool _continue_after_backtrack_failure
Definition: grins_solver.h:107
double _minimum_linear_tolerance
Definition: grins_solver.h:105
double _absolute_step_tolerance
Definition: grins_solver.h:96
bool _continue_after_max_iterations
Definition: grins_solver.h:108
unsigned int _max_nonlinear_iterations
Definition: grins_solver.h:94
double _initial_linear_tolerance
Definition: grins_solver.h:104
virtual void GRINS::Solver::solve ( SolverContext context)
pure virtual
void GRINS::Solver::steady_adjoint_solve ( SolverContext context)

Do steady version of adjoint solve.

We put this here since we may want to reuse this in multiple different steady solves.

Definition at line 105 of file grins_solver.C.

References GRINS::SolverContext::system.

Referenced by GRINS::SteadySolver::solve(), and GRINS::SteadyMeshAdaptiveSolver::solve().

106  {
107  libMesh::out << "==========================================================" << std::endl
108  << "Solving adjoint problem." << std::endl
109  << "==========================================================" << std::endl;
110 
111  context.system->adjoint_solve();
112  context.system->set_adjoint_already_solved(true);
113  }

Member Data Documentation

double GRINS::Solver::_absolute_residual_tolerance
protected

Definition at line 103 of file grins_solver.h.

Referenced by set_solver_options().

double GRINS::Solver::_absolute_step_tolerance
protected

Definition at line 96 of file grins_solver.h.

Referenced by set_solver_options().

bool GRINS::Solver::_continue_after_backtrack_failure
protected

Definition at line 107 of file grins_solver.h.

Referenced by set_solver_options().

bool GRINS::Solver::_continue_after_max_iterations
protected

Definition at line 108 of file grins_solver.h.

Referenced by set_solver_options().

double GRINS::Solver::_initial_linear_tolerance
protected

Definition at line 104 of file grins_solver.h.

Referenced by set_solver_options().

unsigned int GRINS::Solver::_max_linear_iterations
protected

Definition at line 106 of file grins_solver.h.

Referenced by set_solver_options().

unsigned int GRINS::Solver::_max_nonlinear_iterations
protected

Definition at line 94 of file grins_solver.h.

Referenced by set_solver_options().

double GRINS::Solver::_minimum_linear_tolerance
protected

Definition at line 105 of file grins_solver.h.

Referenced by set_solver_options().

std::map< std::string, GRINS::NBCContainer > GRINS::Solver::_neumann_bc_funcs
protected

Definition at line 117 of file grins_solver.h.

double GRINS::Solver::_relative_residual_tolerance
protected

Definition at line 101 of file grins_solver.h.

Referenced by set_solver_options().

double GRINS::Solver::_relative_step_tolerance
protected

Definition at line 95 of file grins_solver.h.

Referenced by set_solver_options().

bool GRINS::Solver::_solver_quiet
protected

Definition at line 111 of file grins_solver.h.

Referenced by set_solver_options().

bool GRINS::Solver::_solver_verbose
protected

Definition at line 112 of file grins_solver.h.

Referenced by set_solver_options().


The documentation for this class was generated from the following files:

Generated on Mon Jun 22 2015 21:32:24 for GRINS-0.6.0 by  doxygen 1.8.9.1