include/meltpooldg/linear_algebra/linear_solver_data.hpp Source File

Developer Documentation: include/meltpooldg/linear_algebra/linear_solver_data.hpp Source File
Developer Documentation
linear_solver_data.hpp
Go to the documentation of this file.
1#pragma once
2
4
5namespace MeltPoolDG
6{
7 BETTER_ENUM(PreconditionerType,
8 char,
9 // No preconditioner.
10 Identity,
11 // Algebraic multigrid preconditioner from the Trilinos package ...
12 AMG,
13 // Incomplete LU factorization preconditioner from the Trilinos package ...
14 ILU,
15 // Use the inverse diagonal of the system matrix as preconditioner ...
16 Diagonal)
17
18 BETTER_ENUM(LinearSolverType,
19 char,
20 // conjugate-gradient
22 // generalized minimal residual
23 GMRES)
24
25 BETTER_ENUM(LinearSolverMonitorType,
26 char,
27 // do not monitor history (production run)
28 none,
29 // print first and last residual
30 reduced,
31 // print full history
32 all)
33
37 template <typename number = double>
38 struct LinearSolverData
39 {
40 bool do_matrix_free = true;
41 PreconditionerType preconditioner_type = PreconditionerType::Identity;
42 LinearSolverType solver_type = LinearSolverType::GMRES;
43 unsigned int max_iterations = 10000;
44 number rel_tolerance = 1e-12;
45 number abs_tolerance = 1e-20;
46
47 LinearSolverMonitorType monitor_type = LinearSolverMonitorType::none;
48
49 void
50 add_parameters(dealii::ParameterHandler &prm);
51 };
52
53} // namespace MeltPoolDG
Interface for a general preconditioner.
Definition boundary_condition_functions.hpp:17
CG
Definition linear_solver_data.hpp:21
BETTER_ENUM(MaterialTemplate, char, none, stainless_steel, Ti64, Ti64Benchmark) BETTER_ENUM(SolidLiquidPropertiesTransitionType