Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
AlephParams.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* AlephParams.h (C) 2010 */
9/* */
10/*---------------------------------------------------------------------------*/
11#ifndef ALEPH_PARAMS_H
12#define ALEPH_PARAMS_H
13/*---------------------------------------------------------------------------*/
14/*---------------------------------------------------------------------------*/
15
16#include "arcane/aleph/AlephGlobal.h"
17
18/*---------------------------------------------------------------------------*/
19/*---------------------------------------------------------------------------*/
20
21ARCANE_BEGIN_NAMESPACE
22
23/*---------------------------------------------------------------------------*/
24/*---------------------------------------------------------------------------*/
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28
32class ARCANE_ALEPH_EXPORT AlephParams
33: public TraceAccessor
34{
35 public:
37 AlephParams(ITraceMng*, Real, Integer,
38 Integer,
39 Integer,
40 Integer, Real, bool, bool, bool, bool, Real, bool, bool, bool,
41 String, bool, Real, bool, Integer, Integer, Integer, Integer, Integer,
42 TypesSolver::eAmgSmootherOption,
43 TypesSolver::eAmgCoarseningOption,
44 TypesSolver::eAmgCoarseSolverOption,
45 bool, bool,
46 TypesSolver::eCriteriaStop);
47 AlephParams(ITraceMng*, Real, Integer,
48 TypesSolver::ePreconditionerMethod,
49 TypesSolver::eSolverMethod,
50 Integer, Real, bool, bool, bool, bool, Real, bool, bool, bool,
51 String, bool, Real, bool, Integer, Integer, Integer, Integer, Integer,
52 TypesSolver::eAmgSmootherOption,
53 TypesSolver::eAmgCoarseningOption,
54 TypesSolver::eAmgCoarseSolverOption,
55 bool, bool,
56 TypesSolver::eCriteriaStop);
58
59 // set
60 void setEpsilon(const Real epsilon);
61 void setMaxIter(const Integer max_iteration);
62 void setPrecond(const TypesSolver::ePreconditionerMethod preconditioner_method);
63 void setMethod(const TypesSolver::eSolverMethod solver_method);
64 void setAlpha(const Real alpha);
65 void setGamma(const Integer gamma);
66 void setXoUser(const bool xo_user);
67 void setCheckRealResidue(const bool check_real_residue);
68 void setPrintRealResidue(const bool print_real_residue);
69 void setDebugInfo(const bool debug_info);
70 void setMinRHSNorm(const Real min_rhs_norm);
71 void setConvergenceAnalyse(const bool convergence_analyse);
72 void setStopErrorStrategy(const bool stop_error_strategy);
73 void setWriteMatrixToFileErrorStrategy(const bool write_matrix_to_file_error_strategy);
74 void setWriteMatrixNameErrorStrategy(const String& write_matrix_name_error_strategy);
75 void setDDMCParameterListingOutput(const bool listing_output);
76 void setDDMCParameterAmgDiagonalThreshold(const Real threshold);
77 void setPrintCpuTimeResolution(const bool print_cpu_time_resolution);
78 void setAmgCoarseningMethod(const TypesSolver::eAmgCoarseningMethod method);
79 void setOutputLevel(const Integer output_level);
80 void setAmgCycle(const Integer amg_cycle);
81 void setAmgSolverIter(const Integer amg_solver_iterations);
82 void setAmgSmootherIter(const Integer amg_smoother_iterations);
83 void setAmgSmootherOption(const TypesSolver::eAmgSmootherOption amg_smootherOption);
84 void setAmgCoarseningOption(const TypesSolver::eAmgCoarseningOption amg_coarseningOption);
85 void setAmgCoarseSolverOption(const TypesSolver::eAmgCoarseSolverOption amg_coarseSolverOption);
86 void setKeepSolverStructure(const bool keep_solver_structure);
87 void setSequentialSolver(const bool sequential_solver);
88 void setCriteriaStop(const TypesSolver::eCriteriaStop criteria_stop);
89
90 // get
91 Real epsilon() const;
92 int maxIter() const;
93 Real alpha() const;
94 int gamma() const;
95 TypesSolver::ePreconditionerMethod precond();
96 TypesSolver::eSolverMethod method();
97 bool xoUser() const;
98 bool checkRealResidue() const;
99 bool printRealResidue() const;
100 bool debugInfo();
101 Real minRHSNorm();
102 bool convergenceAnalyse();
103 bool stopErrorStrategy();
104 bool writeMatrixToFileErrorStrategy();
105 String writeMatrixNameErrorStrategy();
106 bool DDMCParameterListingOutput() const;
107 Real DDMCParameterAmgDiagonalThreshold() const;
108 bool printCpuTimeResolution() const;
109 int amgCoarseningMethod() const;
110 int getOutputLevel() const;
111 int getAmgCycle() const;
112 int getAmgSolverIter() const;
113 int getAmgSmootherIter() const;
114 TypesSolver::eAmgSmootherOption getAmgSmootherOption() const;
115 TypesSolver::eAmgCoarseningOption getAmgCoarseningOption() const;
116 TypesSolver::eAmgCoarseSolverOption getAmgCoarseSolverOption() const;
117 bool getKeepSolverStructure() const;
118 bool getSequentialSolver() const;
119 TypesSolver::eCriteriaStop getCriteriaStop() const;
120
121 private:
122 Real m_param_epsilon; // epsilon de convergence
123 Integer m_param_max_iteration; // nb max iterations
124 TypesSolver::ePreconditionerMethod m_param_preconditioner_method; // préconditionnement utilisé (defaut DIAG)
125 TypesSolver::eSolverMethod m_param_solver_method; // méthode de résolution par defaut PCG
126 Integer m_param_gamma; // destine au parametrage des préconditionnements
127 Real m_param_alpha; // destine au parametrage des préconditionnements
128 bool m_param_xo_user; // permet a l'utilisateur d'initialiser le PGC avec un Xo different de zero
129 bool m_param_check_real_residue;
130 bool m_param_print_real_residue;
131 bool m_param_debug_info;
132 Real m_param_min_rhs_norm;
133 bool m_param_convergence_analyse;
134 bool m_param_stop_error_strategy;
135 bool m_param_write_matrix_to_file_error_strategy;
136 String m_param_write_matrix_name_error_strategy;
137 bool m_param_listing_output;
138 Real m_param_threshold;
139 bool m_param_print_cpu_time_resolution;
140 Integer m_param_amg_coarsening_method;
141 Integer m_param_output_level;
142 Integer m_param_amg_cycle;
143 Integer m_param_amg_solver_iterations;
144 Integer m_param_amg_smoother_iterations;
145 TypesSolver::eAmgSmootherOption m_param_amg_smootherOption;
146 TypesSolver::eAmgCoarseningOption m_param_amg_coarseningOption;
147 TypesSolver::eAmgCoarseSolverOption m_param_amg_coarseSolverOption;
148 bool m_param_keep_solver_structure;
149 bool m_param_sequential_solver;
150 TypesSolver::eCriteriaStop m_param_criteria_stop;
151};
152
153/*---------------------------------------------------------------------------*/
154/*---------------------------------------------------------------------------*/
155
156ARCANE_END_NAMESPACE
157
158/*---------------------------------------------------------------------------*/
159/*---------------------------------------------------------------------------*/
160
161#endif
Paramètres d'un système linéraire.
Definition AlephParams.h:34
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Interface du gestionnaire de traces.
Chaîne de caractères unicode.