Télécharger kops.notice

Retour à la liste thématique

Afficher cette notice en

Numérotation des lignes :
$$$$ KOPS     NOTICE  MAGN      17/02/24    21:15:18     9323           
                                             DATE     17/02/24

   Operateur KOPS                          Voir aussi :
     --------------  

     RES = KOPS CHP1 'MOTCLE' CHP2 ;

     ou

     RES = KOPS CHP1 'MOTCLE' TABD ;



     Objet :

     Effectue des operations arithmetiques entre deux CHPOINTs
     ou un CHPOINT et un flottant.
     Calcule le gradient ou le rotationnel d'un CHPOINT
     Calcule le produit matrice vecteur entre un objet MATRIK et un
     CHPOINT
     Calcule le produit entre un objet MATRIK et un FLOTTANT

     RES , CHP1 CHP2  CHPOINT et/ou FLOTTANT
     TABD  objet MODEL 'NAVIER_STOKES'
     'MOTCLE' a choisir dans la liste suivante :

               '*'     multiplication  de deux CHPOINT
                       de type SCALAIRE ou VECTEUR composante par
                       composante
                       le resultat est un CHPOINT SCALAIRE ou
                       VECTEUR

               '/'  idem precedent pour la division

               '+'  idem precedent pour l'addition

               '-'  idem precedent pour la soustraction

               '|<' Borne inferieurement un CHPOINT par un flottant.
                    OBJ1 = KOPS OBJ2 '|<' OBJ3;
                         OBJ1,OBJ2 CHPOINT  OBJ3 FLOTTANT

               '>|' Borne superieurement un CHPOINT par un flottant.
                    OBJ1 = KOPS OBJ2 '>|' OBJ3;
                         OBJ1,OBJ2 CHPOINT  OBJ3 FLOTTANT

               'GRAD'  calcule le Gradient d'un CHPOINT scal sommet.
                       Le resultat est un CHPOINT vect centre.
                       Ne marche que pour les discretisations LINE,MACRO

               'GRADS' calcule le Gradient d'un CHPOINT scal sommet.
                       Le resultat est un CHPOINT vect sommet.
                       Marche pour toutes les discretisations LINE,MACRO
                       et QUAF.

               'ROT '  calcule le Rotationel d'un CHPOINT vect sommet
                       le deuxieme argument doit etre une table domaine
                       ex : rt2d= kops un 'ROT' $mt ;
                       Cf exemple 1 ci-dessous

               'CLIM' N (N is an INTEGER)
                       surcharge dans CHP1 les valeurs de CHP2
                       N=0 les noeuds correspondants sont mis a 0.
                       N=1  "     "         "         "   a 1.e30
                       N=2  "     "         "         "   a (CHP2*1.e30)
                       N=3  "     "         "         "   a  CHP2
                       Si l'entier N est precede du signe -, les composantes
                       de CHP2 doivent etre identiques a celles de CHP1
                       sinon CHP1 n'est pas surcharge.
                       Si l'entier N est positif, on teste sur les composantes
                       UX UY UZ

               'MULT'  realise le produit matrice vecteur entre un objet
                       MATRIK et un CHPOINT ou un FLOTTANT
                       ex : p1=kops ma1 'MULT' un ;
                       Cf exemple 2 ci-dessous : calcul de la pression
                       par une methode de penalisation.

               'RIMA'  permet le passage d'un objet matrik a un objet
                       rigidite et vice-versa

                        Example
                        -----------
                        rig1    = KOPS RIMA matrik1 ;
                        matrik2 = KOPS RIMA rig2 ;
                        rig1, rig2 objet de type rigidite
                        matrik2, matrik1 objet de type matrik

                        Si on veut forcer la création d'un objet RIGIDITE non
                        symétrique, on indique le mot-clé 'NSYM'
                        Example
                        -----------
                        rig1    = KOPS RIMA matrik1 'NSYM' ;

               'MATIDE' permet de creer un objet RIGIDITE ou MATRIK identite
                       mat1 = kops lmot1 geo1 ('MATRIK') ;
                       ou
                       lmot1 = liste de noms des inconnues (LISTMOTS)
                       geo1 = support geometrique des inconnues
                              (MAILLAGE)
                       mat1 = RIGIDITE ou MATRIK identite

               'MATDIAGO' permet de creer un objet RIGIDITE (ou MATRIK)
                          diagonal
                       mat1 = kops 'MATDIAGO' chpo1 ('MATRIK') ;
                       ou
                       chpo1 = valeurs des termes diagonaux (CHPOINT)
                       mat1 = RIGIDITE (ou MATRIK) diagonal
                       Pour les objets RIGIDITE, utilisez plutot
                       l'operateur 'MANU' 'RIGI'.

               'CHANINCO' mot clef obsolete. Voir l'operateur CHAN
                          mot clef 'INCO'.

               'NINCDUPR' change les noms d'inconnues duales d'une
                          matrice (ou d'un chpoint dual) afin qu'ils
                          soient identiques aux noms d'inconnues
                          primales
                          |mat2 | = 'KOPS' 'NINCDUPR' |mat1 | ;
                          |chpo2|                     |chpo1|
                          mati sont de type RIGIDITE ou MATRIK

               'NINCPRDU' change les noms d'inconnues duales d'une
                          matrice (ou d'un chpoint dual) afin qu'ils
                          correspondent aux noms d'inconnues primales
                          suivant la correspondance conventionnelle
                          de Castem
                          (ex: 'UX' <-> 'FX', 'T' <-> 'Q', etc...)
                          |mat2 | = 'KOPS' 'NINCPRDU' |mat1 | ;
                          |chpo2|                     |chpo1|
                          mati sont de type RIGIDITE ou MATRIK

               'TRANSPOS' transpose une matrice (type MATRIK ou RIGIDITE)
                          mat2 = 'KOPS' 'TRANSPOS' mat1 ;

               'EXTRNINC' mot clef obsolete. Voir l'operateur EXTR
                          mot clef 'COMP' et 'COMP' 'DUAL'

               'EXTRINCO' mot clef obsolete. Voir l'operateur EXTR

               'EXTRDIAG' mot clef obsolete. Voir l'operateur EXTR
                          mot clef 'DIAG'

               'SPAIDIAG' Renvoie un inverse approche diagonal (SPAI-D)
                          (type CHPOINT) d'une matrice (type MATRIK ou
                          RIGIDITE).
                          chp1 = 'KOPS' 'SPAIDIAG' mat1 ;

               'EXTRCOUP' cree une table contenant la partition des
                          blocs diagonaux que l'on peut faire a partir
                          de la matrice ma1. Chaque entree de la table
                          contient la liste des inconnues duales
                          constituant un bloc.
                          tab = 'KOPS' 'EXTRCOUP' ma1;

               'POINTEUR' renvoie le pointeur d'un objet (type ENTIER)
                          (voir aussi l'operateur 'MANU' 'OBJE')
                          enti = 'KOPS' 'POINTEUR' obj1 ;

               'MATRIK'   renvoie un champoint et une matrice
                          (type MATRIK) vide
                          chvid matvid = 'KOPS' 'MATRIK' ;

               'CMCT'     calcule un produit de matrices du type
                          complement de Schur C D Bt.
                          D est diagonale stockee dans un chpoint.
                          mat3 = 'KOPS' 'CMCT' mat1 mat2 (chpo) ;
                          mat1 : matrice C (type RIGIDITE ou MATRIK)
                          mat2 : matrice B (type RIGIDITE ou MATRIK)
                          chpo : matrice D optionnelle (type CHPOINT)
                          mat3 : matrice CDBt ou CBt
                                         (type RIGIDITE ou MATRIK)

               'RELA'     Transforme une matrice (type RIGIDITE) en
                          matrice de relations (contraintes type
                          RIGIDITE). On peut préciser un second membre
                          (type CHPOINT) afin de donner une valeur non
                          nulle à la relation.
                          mat2 (chp2) = 'KOPS' 'RELA' mat1 (chp1) ;

               'CONDENSE' A partir d'un systeme lineaire (A, b)
                          (type RIGIDITE, CHPOINT), on construit un
                          systeme reduit obtenu par elimination des
                          contraintes.
                          Ar br br1 = 'KOPS' 'CONDENSE' A b ;

               'EVAPORE'  A partir de la solution d'un systeme reduit
                          xr (type CHPOINT), on reconstruit la solution
                          du systeme avant reduction
                          x = 'KOPS' 'EVAPORE' xr A b br1 ;


    EXEMPLE DIVERS
    --------------



    Exemple 1 :
    -----------

    Calcul et trace de la fonction de courant d'un champ de vitesse
    (par resolution de l'equation laplacien(psi) + rot(un) = 0)
    un  : champ de vitesse
    $mt : table domaine


    sw = kops un 'ROT' $mt ;
    rk = EQEX $MT 'OPTI' 'EF' 'IMPL'
    ZONE  $mt OPER LAPN 1.    INCO 'PSI'
    ZONE  $mt OPER FIMP sw    INCO 'PSI'
    'CLIM' 'PSI' 'TIMP' (parois) 0.
    ;

    rk.'INCO'.'PSI'=kcht $mt scal sommet 0. ;
    exic rk ;
    psi=rk.'INCO'.'PSI' ;
    trace psi mt ;


    Exemple 2 :
    -----------

    Calcul de la pression par une methode de penalisation.

    KPRESS='CENTREP1' ;   en accord avec l'approximation de pression
    EPSS=1.e10;           et le EPSS dans le calcul de la vitesse

    r1=eqex $mt 'OPTI' EF IMPL KPRESS
    kmac (r1.'1KMAC') ;
    un= nomc (mots UX UY ) (mots 1UN 2UN ) un ;

    p1=kops (r1.'1KMAC'.'MATELM') 'MULT' un ;

    p11= kcht $mt SCAL KPRESS (nomc p1 'SCAL') ;
    pn=elno $mt p11 KPRESS ;
    trace pn $mt.maillage ;

© Cast3M 2003 - Tous droits réservés.
Mentions légales