

// 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-2021 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/>.


// dans le fichier principal
// constantes dont la dimensions est connu

// ---- tenseurs d'ordre 2 ----
  Tenseur1HH  IdHH1(1.),ZeroHH1(0.); // def du tenseur identite et du tenseur nul
  Tenseur1BB  IdBB1(1.),ZeroBB1(0.); // def du tenseur identite et du tenseur nul
  Tenseur1HB  IdHB1(1.),ZeroHB1(0.); // def du tenseur identite et du tenseur nul
  Tenseur1BH  IdBH1(1.),ZeroBH1(0.); // def du tenseur identite et du tenseur nul

  Tenseur2HH  IdHH2(1.,1.,0.)   ,ZeroHH2(0.); // def du tenseur identite et du tenseur nul
  Tenseur2BB  IdBB2(1.,1.,0.)   ,ZeroBB2(0.); // def du tenseur identite et du tenseur nul
  Tenseur2HB  IdHB2(1.,1.,0.,0.),ZeroHB2(0.); // def du tenseur identite et du tenseur nul
  Tenseur2BH  IdBH2(1.,1.,0.,0.),ZeroBH2(0.); // def du tenseur identite et du tenseur nul

  Tenseur3HH  IdHH3(1.,1.,1.,0.,0.,0.)        ,ZeroHH3(0.); // def du tenseur identite et du tenseur nul
  Tenseur3BB  IdBB3(1.,1.,1.,0.,0.,0.)        ,ZeroBB3(0.); // def du tenseur identite et du tenseur nul
  Tenseur3HB  IdHB3(1.,0.,0.,0.,1.,0.,0.,0.,1.),ZeroHB3(0.); // def du tenseur identite et du tenseur nul
  Tenseur3BH  IdBH3(1.,0.,0.,0.,1.,0.,0.,0.,1.),ZeroBH3(0.); // def du tenseur identite et du tenseur nul

// ---- tenseurs d'ordre 4 (36 coeff) ----
  Tenseur3HHHH  IdHHHH3(true,IdHH3,IdHH3); // def du tenseur identite (delta^{ij} delta^{kl})
  Tenseur3BBBB  IdBBBB3(true,IdBB3,IdBB3); // def du tenseur identite (delta_{ij} delta_{kl})
  Tenseur3HHBB  IdHHBB3(IdHH3,IdBB3); // def du tenseur identite (delta^{ij} delta_{kl})
  Tenseur3BBHH  IdBBHH3(IdBB3,IdHH3); // def du tenseur identite (delta_{ij} delta^{kl})

  Tenseur3HHHH  PIdHHHH3(false,IdHH3,IdHH3); // def du tenseur identite (delta^{ik} delta^{jl})
  Tenseur3BBBB  PIdBBBB3(false,IdBB3,IdBB3); // def du tenseur identite (delta_{ik} delta_{jl})

// ---- tenseurs d'ordre 4 (9 coeff) ----
  Tenseur2HHHH  IdHHHH2(true,IdHH2,IdHH2); // def du tenseur identite (delta^{ij} delta^{kl})
  Tenseur2BBBB  IdBBBB2(true,IdBB2,IdBB2); // def du tenseur identite (delta_{ij} delta_{kl})
  Tenseur2HHBB  IdHHBB2(IdHH2,IdBB2); // def du tenseur identite (delta^{ij} delta_{kl})
  Tenseur2BBHH  IdBBHH2(IdBB2,IdHH2); // def du tenseur identite (delta_{ij} delta^{kl})

  Tenseur2HHHH  PIdHHHH2(false,IdHH2,IdHH2); // def du tenseur identite (delta^{ik} delta^{jl})
  Tenseur2BBBB  PIdBBBB2(false,IdBB2,IdBB2); // def du tenseur identite (delta_{ik} delta_{jl})

// ----- tenseurs d'ordre 4 (1 coeff) ----
  Tenseur1HHHH  IdHHHH1(true,IdHH1,IdHH1); // def du tenseur identite (delta^{ij} delta^{kl})
  Tenseur1BBBB  IdBBBB1(true,IdBB1,IdBB1); // def du tenseur identite (delta_{ij} delta_{kl})
  Tenseur1HHBB  IdHHBB1(IdHH1,IdBB1); // def du tenseur identite (delta^{ij} delta_{kl})
  Tenseur1BBHH  IdBBHH1(IdBB1,IdHH1); // def du tenseur identite (delta_{ij} delta^{kl})

  Tenseur1HHHH  PIdHHHH1(false,IdHH1,IdHH1); // def du tenseur identite (delta^{ik} delta^{jl})
  Tenseur1BBBB  PIdBBBB1(false,IdBB1,IdBB1); // def du tenseur identite (delta_{ik} delta_{jl})


// constantes dont la dimensions est celle du pb
// defini au debut du pb avec la fonction : ConstantesTenseur(int dim)

  TenseurHH * IdHH,* ZeroHH; // def du tenseur identite
  TenseurBB * IdBB,* ZeroBB; // def du tenseur identite
  TenseurHB * IdHB,* ZeroHB; // def du tenseur identite
  TenseurBH * IdBH,* ZeroBH; // def du tenseur identite
  Tableau <TenseurHB *> Id_dim_HB(3); // tenseur identité fonction de la dimension:
                                       //   Id_dim_HB(1) = (TenseurHB*) &IdHB1;
                                       //   Id_dim_HB(2) = (TenseurHB*) &IdHB2;
                                       //   Id_dim_HB(3) = (TenseurHB*) &IdHB3;
