Herezh_dev/TypeBase/PtTabRel.h
2023-05-03 17:23:49 +02:00

556 lines
17 KiB
C++

// 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/>.
/***********************************************************************
* DATE: 23/01/97 *
* $ *
* AUTEUR: G RIO (mailto:gerardrio56@free.fr) *
* $ *
* PROJET: Herezh++ *
* $ *
************************************************************************
* BUT: Listes de petits tableaux de réels
* la definition exacte des listes globales est faite dans le
* fichier PtTabRel_Prin.h qui n'est inclus qu'une seule fois
* dans le fichier du programme principal
* $ *
* '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *
************************************************************************/
#ifndef PTTABREL_H
#define PTTABREL_H
//#include <boost/pool/poolfwd.hpp>
//#include </opt/local/include/boost/pool/poolfwd.hpp>
#include <list>
/** @defgroup Les_listes_de_petits_tableaux_de_reels
*
* BUT: Listes de petits tableaux de réels
* la definition exacte des listes globales est faite dans le
* fichier PtTabRel_Prin.h qui n'est inclus qu'une seule fois
* dans le fichier du programme principal
*
*
* \author Gérard Rio
* \version 1.0
* \date 23/01/97
* \brief Listes de petits tableaux de réels
*
*/
/** @defgroup Les_pointeurs_dans_listes_de_petits_tableaux
*
* BUT: def de pointeur qui donne la position d'un élément dans une liste
*
* \author Gérard Rio
* \version 1.0
* \date 23/01/97
* \brief def de pointeur qui donne la position d'un élément dans une liste
*
*/
/// @addtogroup Les_pointeurs_dans_listes_de_petits_tableaux
/// @{
///
//------------------------------------------------------------------
//! ReelsPointe classe virtuelle de laquelle dérive les classe contenant un pointeur de réel
//------------------------------------------------------------------
/// \author Gérard Rio
/// \version 1.0
/// \date 23/01/97
// ===== tout d'abord une classe virtuelle de laquelle dérive les classe contenant
// un pointeur de réel
class ReelsPointe
{ public :
};
/// @} // end of group
//=================================================
/// @addtogroup Les_listes_de_petits_tableaux_de_reels
/// @{
///
/// cas des tableaux de 1 réel
class Reels1
{ public :
// Données :
double donnees ;
};
/// @} // end of group
extern std::list < Reels1 > listdouble1;
typedef std::list < Reels1 >::iterator listdouble1Iter ;
/// @addtogroup Les_pointeurs_dans_listes_de_petits_tableaux
/// @{
///
class Reel1Pointe : public ReelsPointe
{ public :
// constructeur
Reel1Pointe () : ipointe()
{ listdouble1.push_front(Reels1()); // allocation d'un maillon
ipointe = listdouble1.begin(); // mémorisation du maillon
}
// destructeur
~ Reel1Pointe ()
{ listdouble1.erase(ipointe);} ; // suppression de l'élément de la liste
// data
listdouble1Iter ipointe; // donne la position dans la liste du maillon
};
/// @} // end of group
//=================================================
/// @addtogroup Les_listes_de_petits_tableaux_de_reels
/// @{
///
/// cas des tableaux de 2 réels
class Reels2
{ public :
// Données :
double donnees [2];
};
/// @} // end of group
extern std::list <Reels2> listdouble2;
typedef std::list < Reels2 >::iterator listdouble2Iter ;
/// @addtogroup Les_pointeurs_dans_listes_de_petits_tableaux
/// @{
///
/// cas des tableaux de 2 réels
class Reel2Pointe : public ReelsPointe
{ public :
// constructeur
Reel2Pointe () : ipointe()
{ listdouble2.push_front(Reels2()); // allocation d'un maillon
ipointe = listdouble2.begin(); // mémorisation du maillon
}
// destructeur
~ Reel2Pointe ()
{ listdouble2.erase(ipointe);} ; // suppression de l'élément de la liste
// data
listdouble2Iter ipointe; // donne la position dans la liste du maillon
};
/// @} // end of group
//=================================================
/// @addtogroup Les_listes_de_petits_tableaux_de_reels
/// @{
///
/// cas des tableaux de trois réels
class Reels3
{ public :
// Données :
double donnees [3];
};
/// @} // end of group
extern std::list <Reels3> listdouble3;
typedef std::list < Reels3 >::iterator listdouble3Iter ;
/// @addtogroup Les_pointeurs_dans_listes_de_petits_tableaux
/// @{
///
/// cas des tableaux de trois réels
class Reel3Pointe : public ReelsPointe
{ public :
// constructeur
Reel3Pointe () : ipointe()
{ listdouble3.push_front(Reels3()); // allocation d'un maillon
ipointe = listdouble3.begin(); // mémorisation du maillon
}
// destructeur
~ Reel3Pointe ()
{ listdouble3.erase(ipointe);} ; // suppression de l'élément de la liste
// data
listdouble3Iter ipointe; // donne la position dans la liste du maillon
};
/// @} // end of group
//=================================================
/// @addtogroup Les_listes_de_petits_tableaux_de_reels
/// @{
///
/// cas des tableaux de quatre réels
class Reels4
{ public :
/* Reels4 () { donnees [0] = 11;donnees [1] = 12; donnees [2] = 13; donnees [3] = 14;// initialisation
};*/
// Données :
double donnees [4];
};
/// @} // end of group
typedef std::list < Reels4 >::iterator listdouble4Iter ;
extern std::list <Reels4> listdouble4;
/// @addtogroup Les_pointeurs_dans_listes_de_petits_tableaux
/// @{
///
/// cas des tableaux de quatre réels
class Reel4Pointe : public ReelsPointe
{ public :
// constructeur
Reel4Pointe () : ipointe()
{ listdouble4.push_front(Reels4()); // allocation d'un maillon
ipointe = (listdouble4.begin()); // mémorisation du maillon
}
// destructeur
~ Reel4Pointe ()
{ listdouble4.erase( ipointe);} ; // suppression de l'élément de la liste
// data
listdouble4Iter ipointe; // donne la position dans la liste du maillon
};
/// @} // end of group
//=================================================
/// @addtogroup Les_listes_de_petits_tableaux_de_reels
/// @{
///
/// cas des tableaux de 5 réels
class Reels5
{ public :
// Données :
double donnees [5];
};
/// @} // end of group
typedef std::list < Reels5 >::iterator listdouble5Iter ;
extern std::list <Reels5> listdouble5;
/// @addtogroup Les_pointeurs_dans_listes_de_petits_tableaux
/// @{
///
/// cas des tableaux de 5 réels
class Reel5Pointe : public ReelsPointe
{ public :
// constructeur
Reel5Pointe () : ipointe()
{ listdouble5.push_front(Reels5()); // allocation d'un maillon
ipointe = listdouble5.begin(); // mémorisation du maillon
}
// destructeur
~ Reel5Pointe ()
{ listdouble5.erase(ipointe);} ; // suppression de l'élément de la liste
// data
listdouble5Iter ipointe; // donne la position dans la liste du maillon
};
/// @} // end of group
//=================================================
/// @addtogroup Les_listes_de_petits_tableaux_de_reels
/// @{
///
/// cas des tableaux de 6 réels
class Reels6
{ public :
// Données :
double donnees [6];
};
/// @} // end of group
extern std::list <Reels6> listdouble6;
typedef std::list < Reels6 >::iterator listdouble6Iter ;
/// @addtogroup Les_pointeurs_dans_listes_de_petits_tableaux
/// @{
///
/// cas des tableaux de 6 réels
class Reel6Pointe : public ReelsPointe
{ public :
// constructeur
Reel6Pointe () : ipointe()
{ listdouble6.push_front(Reels6()); // allocation d'un maillon
ipointe = listdouble6.begin(); // mémorisation du maillon
}
// destructeur
~ Reel6Pointe ()
{ listdouble6.erase(ipointe);} ; // suppression de l'élément de la liste
// data
listdouble6Iter ipointe; // donne la position dans la liste du maillon
};
/// @} // end of group
//=================================================
/// @addtogroup Les_listes_de_petits_tableaux_de_reels
/// @{
///
/// cas des tableaux de sept réels
class Reels7
{ public :
// Données :
double donnees [7];
};
/// @} // end of group
typedef std::list < Reels7 >::iterator listdouble7Iter ;
extern std::list <Reels7> listdouble7;
/// @addtogroup Les_pointeurs_dans_listes_de_petits_tableaux
/// @{
///
/// cas des tableaux de sept réels
class Reel7Pointe : public ReelsPointe
{ public :
// constructeur
Reel7Pointe () : ipointe()
{ listdouble7.push_front(Reels7()); // allocation d'un maillon
ipointe = listdouble7.begin(); // mémorisation du maillon
}
// destructeur
~ Reel7Pointe ()
{ listdouble7.erase(ipointe);} ; // suppression de l'élément de la liste
// data
listdouble7Iter ipointe; // donne la position dans la liste du maillon
};
/// @} // end of group
//=================================================
/// @addtogroup Les_listes_de_petits_tableaux_de_reels
/// @{
///
/// cas des tableaux de 8 réels
class Reels8
{ public :
// Données :
double donnees [8];
};
/// @} // end of group
typedef std::list < Reels8 >::iterator listdouble8Iter ;
extern std::list < Reels8 > listdouble8;
/// @addtogroup Les_pointeurs_dans_listes_de_petits_tableaux
/// @{
///
/// cas des tableaux de 8 réels
class Reel8Pointe : public ReelsPointe
{ public :
// constructeur
Reel8Pointe () : ipointe()
{ listdouble8.push_front(Reels8()); // allocation d'un maillon
ipointe = listdouble8.begin(); // mémorisation du maillon
}
// destructeur
~ Reel8Pointe ()
{ listdouble8.erase(ipointe);} ; // suppression de l'élément de la liste
// data
listdouble8Iter ipointe; // donne la position dans la liste du maillon
};
/// @} // end of group
//=================================================
/// @addtogroup Les_listes_de_petits_tableaux_de_reels
/// @{
///
/// cas des tableaux de 9 réels
class Reels9
{ public :
// Données :
double donnees [9];
};
/// @} // end of group
/*class Mat_3x3 // une vision explicite des identifiants d'une matrice 3x3
{ public :
// Données :
double M11, M12, M13, M21, M22, M23, M31, M32, M33;
};
// une union permettant d'avoir deux mêmes visions des tableaux à 9 réels
union Reels9_Mat_3x3 { Reels9* s9; Mat_3x3* M; }; */
extern std::list < Reels9 > listdouble9;
typedef std::list < Reels9 >::iterator listdouble9Iter ;
/// @addtogroup Les_pointeurs_dans_listes_de_petits_tableaux
/// @{
///
/// cas des tableaux de 9 réels
class Reel9Pointe : public ReelsPointe
{ public :
// constructeur
Reel9Pointe () : ipointe()
{ listdouble9.push_front(Reels9()); // allocation d'un maillon
ipointe = listdouble9.begin(); // mémorisation du maillon
}
// destructeur
~ Reel9Pointe ()
{ listdouble9.erase(ipointe);} ; // suppression de l'élément de la liste
// data
listdouble9Iter ipointe; // donne la position dans la liste du maillon
};
/// @} // end of group
//=================================================
/// @addtogroup Les_listes_de_petits_tableaux_de_reels
/// @{
///
/// cas des tableaux de 16 réels
class Reels16
{ public :
// Données :
double donnees [16];
};
/// @} // end of group
extern std::list < Reels16 > listdouble16;
typedef std::list < Reels16 >::iterator listdouble16Iter ;
/// @addtogroup Les_pointeurs_dans_listes_de_petits_tableaux
/// @{
///
/// cas des tableaux de 16 réels
class Reel16Pointe : public ReelsPointe
{ public :
// constructeur
Reel16Pointe () : ipointe()
{ listdouble16.push_front(Reels16()); // allocation d'un maillon
ipointe = listdouble16.begin(); // mémorisation du maillon
}
// destructeur
~ Reel16Pointe ()
{ listdouble16.erase(ipointe);} ; // suppression de l'élément de la liste
// data
listdouble16Iter ipointe; // donne la position dans la liste du maillon
};
/// @} // end of group
//=================================================
/// @addtogroup Les_listes_de_petits_tableaux_de_reels
/// @{
///
/// cas des tableaux de 21 réels
class Reels21
{ public :
// Données :
double donnees [21];
};
/// @} // end of group
extern std::list < Reels21 > listdouble21;
typedef std::list < Reels21 >::iterator listdouble21Iter ;
/// @addtogroup Les_pointeurs_dans_listes_de_petits_tableaux
/// @{
///
/// cas des tableaux de 21 réels
class Reel21Pointe : public ReelsPointe
{ public :
// constructeur
Reel21Pointe () : ipointe()
{ listdouble21.push_front(Reels21()); // allocation d'un maillon
ipointe = listdouble21.begin(); // mémorisation du maillon
}
// destructeur
~ Reel21Pointe ()
{ listdouble21.erase(ipointe);} ; // suppression de l'élément de la liste
// data
listdouble21Iter ipointe; // donne la position dans la liste du maillon
};
/// @} // end of group
//=================================================
/// @addtogroup Les_listes_de_petits_tableaux_de_reels
/// @{
///
/// cas des tableaux de 36 réels
class Reels36
{ public :
// Données :
double donnees [36];
};
/// @} // end of group
extern std::list < Reels36 > listdouble36;
typedef std::list < Reels36 >::iterator listdouble36Iter ;
/// @addtogroup Les_pointeurs_dans_listes_de_petits_tableaux
/// @{
///
/// cas des tableaux de 36 réels
class Reel36Pointe : public ReelsPointe
{ public :
// constructeur
Reel36Pointe () : ipointe()
{ listdouble36.push_front(Reels36()); // allocation d'un maillon
ipointe = listdouble36.begin(); // mémorisation du maillon
}
// destructeur
~ Reel36Pointe ()
{ listdouble36.erase(ipointe);} ; // suppression de l'élément de la liste
// data
listdouble36Iter ipointe; // donne la position dans la liste du maillon
};
/// @} // end of group
//=================================================
/// @addtogroup Les_listes_de_petits_tableaux_de_reels
/// @{
///
/// cas des tableaux de 81 réels
class Reels81
{ public :
// Données :
double donnees [81];
};
/// @} // end of group
extern std::list < Reels81 > listdouble81;
typedef std::list < Reels81 >::iterator listdouble81Iter ;
/// @addtogroup Les_pointeurs_dans_listes_de_petits_tableaux
/// @{
///
/// cas des tableaux de 81 réels
class Reel81Pointe : public ReelsPointe
{ public :
// constructeur
Reel81Pointe () : ipointe()
{ listdouble81.push_front(Reels81()); // allocation d'un maillon
ipointe = listdouble81.begin(); // mémorisation du maillon
}
// destructeur
~ Reel81Pointe ()
{ listdouble81.erase(ipointe);} ; // suppression de l'élément de la liste
// data
listdouble81Iter ipointe; // donne la position dans la liste du maillon
};
/// @} // end of group
//=================================================
#endif