TrioCFD 1.9.8
TrioCFD documentation
Loading...
Searching...
No Matches
Schema_Implicite_base.cpp
1/****************************************************************************
2* Copyright (c) 2026, CEA
3* All rights reserved.
4*
5* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
6* 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
7* 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
8* 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
9*
10* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
11* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
12* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
13*
14*****************************************************************************/
15
16#include <Schema_Implicite_base.h>
17#include <Param.h>
18
19Implemente_base(Schema_Implicite_base,"Schema_Implicite_base",Schema_Temps_base);
20// XD schema_implicite_base schema_temps_base schema_implicite_base INHERITS_BRACE Basic class for implicite time
21// XD_CONT scheme.
22// XD attr max_iter_implicite entier max_iter_implicite OPT Maximum number of iterations allowed for the solver (by
23// XD_CONT default 200).
24
26{
28 return os << le_solveur << finl;
29}
30
32{
34}
35
37{
38 param.ajouter("solveur",&le_solveur,Param::REQUIRED); // XD attr solveur solveur_implicite_base solveur REQ This
39 // XD_CONT keyword is used to designate the solver selected in the situation where the time scheme is an implicit
40 // XD_CONT scheme. solver is the name of the solver that allows equation diffusion and convection operators to be set
41 // XD_CONT as implicit terms. Keywords corresponding to this functionality are Simple (SIMPLE type algorithm), Simpler
42 // XD_CONT (SIMPLER type algorithm) for incompressible systems, Piso (Pressure Implicit with Split Operator), and
43 // XD_CONT Implicite (similar to PISO, but as it looks like a simplified solver, it will use fewer timesteps, and ICE
44 // XD_CONT (for PB_multiphase). But it may run faster because the pressure matrix is not re-assembled and thus
45 // XD_CONT provides CPU gains. NL2 Advice: Since the 1.6.0 version, we recommend to use first the Implicite or Simple,
46 // XD_CONT then Piso, and at least Simpler. Because the two first give a fastest convergence (several times) than Piso
47 // XD_CONT and the Simpler has not been validated. It seems also than Implicite and Piso schemes give better results
48 // XD_CONT than the Simple scheme when the flow is not fully stationary. Thus, if the solution obtained with Simple is
49 // XD_CONT not stationary, it is recommended to switch to Piso or Implicite scheme.
51}
Class defining operators and methods for all reading operation in an input flow (file,...
Definition Entree.h:42
virtual Entree & readOn(Entree &)
Lecture d'un Objet_U sur un flot d'entree Methode a surcharger.
Definition Objet_U.cpp:293
virtual Sortie & printOn(Sortie &) const
Ecriture de l'objet sur un flot de sortie Methode a surcharger.
Definition Objet_U.cpp:282
Helper class to factorize the readOn method of Objet_U classes.
Definition Param.h:112
void ajouter(const char *keyword, const int *value, Param::Nature nat=Param::OPTIONAL)
Register an integer parameter.
Definition Param.cpp:364
@ REQUIRED
Definition Param.h:115
class Schema_Implicite_base Classe de base pour tous les schemas en temps implicite
void set_param(Param &param) const override
class Schema_Temps_base
virtual void set_param(Param &titi) const override
Classe de base des flux de sortie.
Definition Sortie.h:52