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