Opérateur *
                                             DATE     99/22/01

   Opérateur *                               Voir aussi :+ 
   -----------                                           - 
                                                         ** 
   RESU1 = ( MODL1) OBJET1 * OBJET2 ;                    / 

   Objet :
   _______

   L'opérateur * calcule le produit des objets OBJET1 et OBJET2.

   Opérations possibles :
   ______________________

---------------------------------------------------------------------
|     OBJET1        |      OBJET2           |       RESU1           |
---------------------------------------------------------------------
|     ENTIER        |      ENTIER           |      ENTIER           |
|    FLOTTANT       |      ENTIER           |     FLOTTANT          |
|    FLOTTANT       |     FLOTTANT          |     FLOTTANT          |
|     POINT         |     FLOTTANT          |      POINT            |
|    LISTREEL       |      ENTIER           |     LISTREEL          |
|    LISTREEL       |     FLOTTANT          |     LISTREEL          |
|    LISTREEL       |     LISTREEL          |     LISTREEL          |
|    LISTENTI       |     LISTENTI          |     LISTENTI          |
|    MCHAML         |      ENTIER           |     MCHAML            |
|    MCHAML         |     FLOTTANT          |     MCHAML            |
|    CHPOINT        |      ENTIER           |     CHPOINT           |
|    CHPOINT        |     FLOTTANT          |     CHPOINT           |
|    RIGIDITE       |     CHPOINT           |     CHPOINT           |
|    RIGIDITE       |      ENTIER           |     RIGIDITE          |
|    RIGIDITE       |     FLOTTANT          |     RIGIDITE          |
| CHPOINT (LISTMOT1)|  CHPOINT  (LISTMOT2)  |  CHPOINT  (LISTMOT3)  |   
| (MODL1) MCHAML    |     MCHAML            |     MCHAML            |
| MCHAML (LISTMOT1) |MCHAML (LISTMOT2)(LREE1)|   MCHAML (LISTMOT3)  |
|    EVOLUTION      |      ENTIER           |     EVOLUTION         |
|    EVOLUTION      |     FLOTTANT          |     EVOLUTION         |
|    EVOLUTION      |     EVOLUTION         |     EVOLUTION         |
|    CHPOINT        |     EVOLUTION         |     CHPOINT           |
|    MCHAML         |     EVOLUTION         |     MCHAML            |
|  TABLE 'VECTEUR'  |        ENTIER         |   TABLE 'VECTEUR'     |
|  TABLE 'VECTEUR'  |       FLOTTANT        |   TABLE 'VECTEUR'     |
---------------------------------------------------------------------


    Remarque 1 :
    ____________

  Lorsque l'opérateur * calcule le produit de deux CHPOINT, on
utilise par défaut la règle de multiplication suivante : tout point 
ayant dans un des CHPOINT une composante unique de nom "SCAL",
voit toutes les valeurs des composantes de l'autre CHPOINT
multipliées par la valeur du scalaire. Le CHPOINT RESU1 ne porte
que sur de tels points.

   Lorsque l'opérateur * calcule le produit de deux CHPOINT, on peut       
aussi utiliser la règle de multiplication suivante à condition de 
fournir trois listes mot de longueur égale  qui constituent 
la clé de l'opération : 
La ième composante du chpoint résultat aura pour nom le ième mot
de la troisième liste de mots et sera égale au produit 
de la composante du 1er champoint repérée par le ième mot de la 
1ere liste de mots par la composante du 2nd champoint repérée par 
le ième mot de la 2nde liste de mots. 
 
Ex :
      chp3          chp1           chp2  
   composante    composante     composante
    résultat      argument1      argument2
      'FX'          'KX'           'UX'
      'FY'          'KYX'          'UX'

      lmot1 = 'MOTS' 'KX'  'KYX' ;
      lmot2 = 'MOTS' 'UX'  'UX' ;
      lmot3 = 'MOTS' 'FX'  'FY' ;
      chp3  =  chp1  '*'  chp2   lmot1 lmot2 lmot3 ; 
     
Dans le cadre de cette option on peut spécifier la nature du champ
résultat avec le mot clé 'NATURE'. Celui ci est alors suivi d'un des
trois mots suivant 'DIFFUS' 'DISCRET' 'INDETERMINE'.
On rappelle qu'un champ par point vaut zero là où il n'est pas défini.
   

    Remarque 2 :
    ____________

    L'opérateur * calcule le produit d'un objet de type TABLE
de sous-type 'VECTEUR' par un nombre (FLOTTANT ou ENTIER) VAL1.
Le résultat est de type TABLE et de sous-type 'VECTEUR'.

    Remarque 3 :
    ____________

    Lorsque l'opérateur * calcule le produit de deux objets de type
EVOLUTION, les deux objets donnés, doivent avoir le Même nombre de
courbes N1, et doivent être de Même type, c'est-à-dire soit réels,
soit complexes :

    a) Objets EVOLUTION réels:

    On effectue le produit terme à terme des deux courbes de Même indice
pour les deux objets; les abscisses de ces courbes doivent être des
progressions identiques; elles deviennent les abscisses des courbes du
nouvel objet EVOLUTION créé par l'opérateur.

    b) Objets EVOLUTION complexes :

    Les abscisses doivent être identiques; elles deviennent les
abscisses du nouvel objet EVOLUTION créé par l'opérateur.
Chacun des deux objets peut être, soit "PREE PIMA", soit "MODU PHAS".

L'objet EVOL3 a le même type que EVOL1. On peut lui attribuer une
couleur COUL1 :

                    EVOL3 = EVOL1 * EVOL2  ( COUL1 ) ;

    Remarque 4 :
    ____________

    Lorsque l'opérateur * calcule le produit de deux objets, l'un de
type MCHAML (ou CHPOINT ) et l'autre, de type EVOLUTION, il
transforme toutes les valeurs du MCHAML (ou du CHPOINT )
OBJET1 à l'aide de la fonction représentée par l'objet EVOLUTION, OBJET2

    Remarque 5 :
    ____________

    Lorsque l'opérateur * calcule le produit de deux objets de
type MCHAML, ils doivent avoir les même sous zones élémentaires
Il y a cinq sortes de multiplications :

    - Un MCHAML quelconque par un MCHAML scalaire de sous zones
      identiques.

    - Un MCHAML par un autre MCHAML pour peu qu'ils aient les mêmes
      noms de composantes et le Même sous zones.
      La multiplication s'effectue composante par composante.
      Les composantes peuvent avoir un type FLOTTANT ou LISTREEL.

    - Un MCHAML par un autre MCHAML pour peu qu'ils aient les mêmes
      sous zones. L'utilisateur doit alors fournir trois listmots
      de longueur égale, et la regle de multiplication est identique 
      au cas du CHPOINT (voir ci-dessus). De plus on peut fournir une
      progression de meme longueur que les listmots, donc les 
      coefficients multiplient respectivement les composantes du 
      champ resultat.
      Les composantes peuvent avoir un type FLOTTANT ou LISTREEL.

    - Un MCHAML de matrices de Hooke par un MCHAML de contraintes ou
      de déformations. Il faut dans ce cas donner aussi l'objet modèle
      MODL1 (type MMODEL).

    - Un MCHAML de gradient par un MCHAML de gradient ou de gradient
      en flexion. Il faut dans ce cas donner aussi l'objet modèle
      MODL1 (type MMODEL).