/*! \file Constante.h
    \brief def de grandeurs statiques globales.
*/

// This file is part of the Herezh++ application.
//
// The finite element software Herezh++ is dedicated to the field
// of mechanics for large transformations of solid structures.
// It is developed by Gérard Rio (APP: IDDN.FR.010.0106078.000.R.P.2006.035.20600)
// INSTITUT DE RECHERCHE DUPUY DE LÔME (IRDL) <https://www.irdl.fr/>.
//
// Herezh++ is distributed under GPL 3 license ou ultérieure.
//
// Copyright (C) 1997-2022 Université Bretagne Sud (France)
// AUTHOR : Gérard Rio
// E-MAIL  : gerardrio56@free.fr
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License,
// or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty
// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.
//
// For more information, please consult: <https://herezh.irdl.fr/>.

#include "ParaGlob.h"

//=======================================================================
// entete pour les parametres globaux : declaration des membres statics
//=======================================================================

    ParaGlob * ParaGlob::param = NULL;  // pointeur sur le seul membre ouvert
    int ParaGlob::dimensionPb = 1; // dimension du probleme = 1 unidimensionnel par defaut
	   EnumLangue ParaGlob::langueHZ = FRANCAIS; // langue utilisée pour les entrées sorties
    int ParaGlob::nbComposantesTenseur = 1; // nombre de composantes par defaut a 1
    int ParaGlob::nivImpression = 2; // niveau d'impression
    string ParaGlob::nbVersion = "7.010" ;  // numéro de version du logiciel
    string ParaGlob::NbVersionsurfichier = ""; // numéro de version lue en entrée fichier
    int ParaGlob::nb_diggit_double_calcul= 17; // nombre de chiffre significatifs utilisé pour 
                                        // l'affichage des double précision pour l'archivage
    int ParaGlob::nb_diggit_double_graphique= 12; // nombre de chiffre significatifs utilisé pour 
                                        // l'affichage des double précision pour l'affichage du graphique
    int ParaGlob::nb_diggit_double_ecran= 8; // nombre de chiffre significatifs utilisé pour
                                        // l'affichage des double précision sur l'écran
    VariablesTemps* ParaGlob::tempo=NULL; // pour les grandeurs liés au temps
    bool ParaGlob::geometrie_axisymetrique = false; // par défaut espace non axisymétrique
    // un tableau de grandeurs globales quelconques pour être accessibles de partout
    std::vector <double> ParaGlob::grandeurs_globales(taille_Enum_GrandeurGlobale);
    
    #ifdef UTILISATION_MPI
    // -- pour le calcul parallèle
    boost::mpi::environment * ParaGlob::env=NULL; // environnement global
    boost::mpi::communicator * ParaGlob::world=NULL; // le communicateur global
    #endif

