Download kops.notice

Back to the list

Display this manual page in
$$$$ KOPS     NOTICE  GOUNAND   12/12/05    21:15:04     7591           
                                             DATE     12/12/05

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

     RES = KOPS CHP1 'MOTCLE' CHP2 ;

     ou

     RES = KOPS CHP1 'MOTCLE' TABD ;




     Object:

     Realizes arithmetical operations between two CHPOINT
     or a CHPOINT and a real.
     Computes the gradient or the curl of a CHPOINT
     Realizes the product matrix vector between a MATRIK object and a
     CHPOINT
     The operations are done term by term.

     Comments:


     RES , CHP1 CHP2  CHPOINT et/ou FLOTTANT
     TABD  object MODEL 'NAVIER_STOKES'
     'MOTCLE' choosen among the folowing list  :

               '*'     multiplication by two CHPOINT
                       type SCAL or VECT composante by
                       composante
                       the result is a CHPOINT SCAL or VECT

               '/'  same as before for the division

               '+'  same as before for addition

               '-'  same as before for substraction

               '|<' Bound a CHPOINT at a lower limit (FLOTTANT).
                    OBJ1 = KOPS OBJ2 '|<' OBJ3;
                         OBJ1,OBJ2 CHPOINT  OBJ3 FLOTTANT

               '>|' Bound a CHPOINT at a upper limit (FLOTTANT).
                    OBJ1 = KOPS OBJ2 '>|' OBJ3;
                         OBJ1,OBJ2 CHPOINT  OBJ3 FLOTTANT

                                       2     3
               'PSCA'  dot product in R  or R   the result is
                       a CHPOINT SCAL
                                       n
               'PSRN'  dot product in R  the result is a FLOTTANT

               'GRAD'  computes the Gradient of a CHPOINT scal sommet.
                       The result is a CHPOINT vect centre.
                       Works only with LINE or MACRO discretization.

               'GRADS' computes the Gradient of a CHPOINT scal sommet.
                       The result is a CHPOINT vect sommet.
                       Works with all discretizations LINE,MACRO and
                       QUAF.

               'ROT '  computes the CURL of a CHPOINT vect sommet
                       the second argument must be a domain table
                       ex : rt2d= kops un 'ROT' $mt ;

                       Cf example 1

               'CLIM' N (N is an INTEGER)
                       changes in CHP1 the values by those of CHP2
                       N=0 the coresponding nodes are set to 0.
                       N=1  "       "         "    "   "  to 1.e30
                       N=2  "       "         "    "   "  to (CHP2*1.e30)
                       N=3  "       "         "    "   "  to  CHP2
                       If the integer N is preceeded with the '-' sign, 
                       the componants of CHP2 must be identical to those
                       of CHP1 otherwise CHP1 remains unmodified. 
                       If N is positive, we test on the componants names
                       UX UY UZ

               'MULT'  makes the matrix vector product between an object
                       MATRIK and a CHPOINT or a FLOTTANT
                       ex : p1=kops ma1 'MULT' un ;
                       Cf example 2  : computation of the pressure
                       by a penalisation method.

               'RIMA'  transforms a object matrik to a object rigidite
                       or
                       transforms a object rigidite to a object matrik
                        Exemple 
                        -----------
                        rig1    = KOPS RIMA matrik1 ;
                        matrik2 = KOPS RIMA rig2 ;
                        rig1, rig2 object rigidite
                        matrik2, matrik1 object  matrik

               'MATIDE' it creates an identity RIGIDITE (or MATRIK) :
                       mat1 = kops lmot1 geo1 ('MATRIK') ;
                       where 
                       lmot1 = the unknowns names (LISTMOTS)
                       geo1 = the unknowns geometrical support 
                              (MAILLAGE)
                       mat1 = identity RIGIDITE (or MATRIK)

               'MATDIAGO' creates a diagonal RIGIDITE (or MATRIK)
                       mat1 = kops 'MATDIAGO' chpo1 ('MATRIK') ;
                       where
                       chpo1 = values of diagonal terms (CHPOINT)
                       mat1 = diagonal RIGIDITE (or MATRIK)
                       For RIGIDITE type object, please use the
                       MANU RIGI operator.

               'CHANINCO' obsolete keyword. See the CHAN operator
                          with keyword 'INCO'

               'NINCDUPR' changes a matrix dual (or chpoint dual) 
                          unknowns' names 
                          to be the same as the primal unknowns' names
                          |mat2 | = 'KOPS' 'NINCDUPR' |mat1 | ;
                          |chpo2|                     |chpo1|
                          mati are RIGIDITE or MATRIK type objects.

               'NINCPRDU' changes a matrix dual (or chpoint dual) 
                          unknowns' names to correspond to
                          the primal unknowns' names following
                          Castem's convention 
                          (ex: 'UX' <-> 'FX', 'T' <-> 'Q',etc...)

                          |mat2 | = 'KOPS' 'NINCPRDU' |mat1 | ;
                          |chpo2|                     |chpo1|
                          mati are RIGIDITE or MATRIK type objects.

               'TRANSPOS' transposes a RIGIDITE (or MATRIK) object
                          mat2 = 'KOPS' 'TRANSPOS' mat1 ;

               'EXTRNINC' obsolete keyword. See the EXTR operator
                          with keywords 'COMP' and 'COMP' 'DUAL'.

               'EXTRINCO' obsolete keyword. See the EXTR operator.

               'EXTRDIAG' obsolete keyword. See the EXTR operator
                          with 'DIAG' keyword.

               'SPAIDIAG' Returns a diagonal approximate inverse (SPAI-D)
                          (CHPOINT type) of a matrix (MATRIK or RIGIDITE
                          type).
                          chp1 = 'KOPS' 'SPAIDIAG' mat1 ;

               'EXTRCOUP' Creates a table which contains the partition
                          in blok diagonal parts of the matrix ma1.
                          Each entry of the table contains the list
                          of the dual components which constitutes
                          a blok.
                          tab = 'KOPS' 'EXTRCOUP' ma1;

               'POINTEUR' returns the pointer to an object (ENTIER type)
                          (see also the operator 'MANU' 'OBJE')
                          enti = 'KOPS' 'POINTEUR' obj1 ;

               'MATRIK'   gives back a null CHPOINT and a null 
                          MATRIK object
                          chvid matvid = 'KOPS' 'MATRIK' ;

               'CMCT'     computes a Schur complement-like matrix 
                          product C D Bt. D is a diagonal matrix
                          store in a CHPOINT object.
                          mat3 = 'KOPS' 'CMCT' mat1 mat2 (chpo) ;
                          mat1 : C matrix (RIGIDITE or MATRIK type)
                          mat2 : B matrix (RIGIDITE or MATRIK type)
                          chpo : optional D matrix (CHPOINT type)
                          mat3 : CDBt or CBt matrix 
                                      (RIGIDITE or MATRIK type)

               'RELA'     Transform a matrix (RIGIDITE type) into 
                          a constraint matrix (RIGIDITE type). An optional
                          non nil value (CHPOINT type) can be given to
                          the constraint.
                          mat2 = 'KOPS' 'RELA' mat1 ;
                
               'CONDENSE' Given the linear system (A, b) 
                          (RIGIDITE, CHPOINT type), builds a reduced
                          linear system (Ar, br) by constraint 
                          elimination.
                          Ar br br1 = 'KOPS' 'CONDENSE' A b ;

               'EVAPORE'  Given the solution of a reduced linear system
                          xr (CHPOINT type), builds the solution of the
                          system before reduction
                          x = 'KOPS' 'EVAPORE' xr A b br1 ;
                

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

    Computes and plots the stream function of a velocity field
    (we have to solve the problem laplacien(psi) + rot(un) = 0)
    un  : velocity field
    $mt : domain table



    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 :
    -----------

    Computes the pressure by penalisation method.

    KPRESS='CENTREP1' ;   according to the pressure approximation
    EPSS=1.e10;           and EPSS choosen.

    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 ;



    Exemple 3 :
    -----------
      rig1    = KOPS RIMA matrik1 ;
      or
      matrik2 = KOPS RIMA rig2 geo2  ;

      rig1, rig2 objects of rigidite type
      matrik2, matrik1 object of matrik type
      geo2 maillage( type poi1) support de l'inconnue primale
      lmots liste des noms de l'inconnue primale
 
 
 
 
 
 
 
 
 
 
 

© Cast3M 2003 - All rights reserved.
Disclaimer