$$$$ NLIN NOTICE GOUNAND 21/06/02 21:17:18 11022 DATE 21/06/02 $X NLIN (Construction de matrices elementaires) Section : Multi-physique Multi-physique FRAN=================================================================== Voir aussi : ANGL=================================================================== See also : =================================================================== NAVI ININLIN FRAN=================================================================== Operateur NLIN ______________ ANGL=================================================================== NLIN operator _____________ ========================================================== RIG1 = 'NLIN' MOT1 MAIL1 (MAIL2) TAB1 TAB2 ... ... |('EREF')| ('ERRJ') ('MATK') ('MREG') ... |('ERF1')| ... |('CHPO')| MOT2 ; |('CHAM')| FRAN========================================================== Objet : _______ L'operateur NLIN (Noyau LINeaire) cree une matrice correspondant a la discretisation d'une forme bilineaire par une methode d'elements finis scalaires. On aura : --- / \ | dN_s dM_r RIG1 = / | ------ d_qsl c_qrk ----- dOmega --- | dx_l dx_k q,s,r,k,l | / Omega ou : - Omega est le domaine d'integration de dimension n<=m, inclus dans R^m, et {x_1,...,x_m} une base orthogonale de R^m ; - k, l sont des indices muets variant de 0 a m (ou n si un des mots-cles 'EREF' ou 'ERF1' est specifie) avec la convention que d/dx_0 est l'identite ; - q varie de 1 a n_op, nombre d'operateurs a discretiser ; - r varie de 1 a n_vp, nombre de variables primales ; - s varie de 1 a n_vd, nombre de variables duales ; - \M^r (resp. \N^r) sont les fonctions d'interpolation de l'espace d'elements finis de la variable r (resp. s) ; - c_qkr (resp. d_qsl) sont des multiplicateurs. Ils sont obtenus par la multiplication de coefficients. Un coefficient est obtenu par une loi de comportement dependant de donnees connues. MOT1 : objet de type MOT, nom d'une famille d'elements finis utilisee pour l'interpolation geometrique. MAIL1 : objet de type MAILLAGE constitue d'elements de type QUAF, support de l'ensemble des espaces d'elements finis utilises. Si MAIL2 n'est pas donne, MAIL1 sert egalement de domaine d'integration Omega. MAIL2 : objet optionnel de type MAILLAGE constitue d'elements surfaciques de type QUAF. Ce maillage surfacique doit s'appuyer sur MAIL1 et sert de domaine d'integration Omega. TAB1 : objet de type TABLE contenant les informations liees aux variables primales. TAB2 : objet de type TABLE contenant les informations liees aux variables duales. EREF : mot-cles indiquant que les integrations sont ERF1 effectuees sur les elements de reference ou sur les elements de reference dont le volume a ete normalise a 1. ERRJ : mot-cle indiquant que, si le signe du jacobien change sur un element, l'operateur n'emet pas une erreur mais renvoie un entier (code d'erreur). MREG : mot-cle indiquant que MAIL1 est constitue d'elements identiques (orientation comprise). CHAM : mot-cle indiquant que NLIN renvoie des objets de type MCHAML (forces non assemblees) au lieu de CHPOINT le cas echeant (cf. note 1). MOT2 : Famille de methode d'integration a utiliser. RIG1 : objet de type RIGIDITE (ou MATRIK si le mot-cle MATK est utilise) contenant la matrice de l'operateur discretise. (ou objet de type ENTIER si mot-cle ERRJ) Commentaires : ______________ Un espace de discretisation est un regroupement coherent d'elements finis (une "famille"). Les familles disponibles, qui ne comprennent pas forcement toutes les formes geometriques d'elements, sont : * 'CSTE' : constant par element (L2 degre 0) ; * 'LINM' : lineaire par morceaux (L2 degre 1) ; * 'LINE' : lineaire (H1 degre 1) ; * 'LINC' : lineaire non conforme (degre 1) ; * 'LINB' : lineaire + bulle (H1 degre 1) ; * 'QUAI' : quadratique incomplet (H1 degre 2) ; * 'QUAD' : quadratique (H1 degre 2) ; * 'QUAF' : quadratique + bulle (H1 degre 2) ; * 'CUBI' : cubique (H1 degre 3) ; * 'BULL' : bulle (H10 degre 0). Une famille de methodes d'integration est un regroupement coherent de methodes d'integration. Les familles disponibles, qui ne comprennent pas forcement toutes les formes geometriques d'elements, sont : * 'GAUi' : methodes d'integration type gauss d'ordre au moins i (i compris entre 1 et 7) ; * 'GAPi' : methodes d'integration type gauss produit d'ordre au moins i (i valant 3, 5 ou 7). * 'NC1 ' : methodes d'integration type Newton-Cotes d'ordre au moins 1 (points d'integration : sommet des elements) * 'GAMi' : points de Gauss pour la masse (interpolation d'ordre i) (i compris entre 1 et 2) * 'GARi' : points de Gauss pour la rigidite (interpolation d'ordre i) (i compris entre 1 et 2) Une table contenant les informations liees aux variables de l'espace primal (ou dual) est organisee de la façon suivante : A . 'NUMOP' = n_op ; nombre d'operateurs (indice q) A . 'NUMVAR' = n_vp ; nombre de variables (indice r) A . 'NUMDAT' = n_dp ; nombre de donnees (indice v) A . 'NUMCOF' = n_cp ; nombre de coefficients (indice w) A . 'NUMDER' = m ; dimension de l'espace d'integration (indices k variant de 0 a m) * Variable r : A . 'VAR' . r . 'NOMDDL' = MOT ou LISTMOTS ; nom(s) des ddls A . 'VAR' . r . 'DISC' = MOT ; espace de discretisation * Donnee v : A . 'DAT' . v . 'NOMDDL' = MOT ou LISTMOTS ; nom(s) des ddls A . 'DAT' . v . 'DISC' = MOT ; espace de discretisation A . 'DAT' . v . 'VALEUR' = CHPOINT ou MCHAML aux noeuds de MAIL1 ou FLOTTANT ou ENTIER valeurs des ddl * Coefficient w A . 'COF' . w . 'COMPOR' = MOT ; nom de la loi de comportement A . 'COF' . w . 'LDAT' = ENTIER ou LISTENTI ; numero(s) v des donnees dont depend la loi de comportement * Multiplicateur c_qrk : A . q . r . k = ENTIER ou LISTENTI ; numero(s) w des coefficients dont la multiplication donne c_qrk (un LISTENTI vide ou un ENTI egal a 0 implique c_qrk = 1 ; un w negatif indique une division par le coefficient de numero |w|) Une telle table peut etre initialisee par la procedure ININLIN. Les noms des lois de comportement actuellement implementees sont les suivants : * 'RIEN' : fonction de 0 donnee valant 1 ; * 'IDEN' : fonction de 1 donnee x valant x ; * 'RAYS' : fonction de 3 donnees epsi, sigma, T valant epsi * sigma * T^3 ; * 'MUR ' : fonction de 4 donnees T1, T2, V1, V2 valant V1 si T1 > T2 et V2 sinon ; * 'SUTH' : fonction de 3 donnees T, Tref, S valant (T/Tref)^3/2 ((Tref+S)/(T+S)) (loi de Sutherland) ; * 'D/DXi' : fonction de 1 donnee T valant dT/dx_i (fonction composante i du gradient) ; * 'DIV' : fonction de m donnees (u_1,...u_m) valant \som_{i=1,m} du_i/dx_i (fonction divergence) ; * 'TAILDIRE' : fonction de m donnees (u_1,...u_m) donnant la taille de l'element courant dans la direction definie par (u_1,...u_m). * 'MUSTABij' : fonction de m+3 donnees \rho, \mu, (u_1,...u_m), Pe_c donnant les composantes d'un vecteur v_j (j variant de 1 a m) permettant de construire un tenseur de viscosite numerique T_jk=v_j v_k afin de stabiliser une equation de transport- diffusion. Si j=0, on obtient une valeur scalaire correspondant a une viscosite numerique. \rho est le coefficient du terme de transport. \mu est le coefficient du terme de diffusion. (u_1,...u_m) est la vitesse de transport. Pe_c est le Peclet critique (valeur courante : 2). i varie de 1 a 3 et designe la methode de decentrement : * i = 1 : decentrement amont * i = 2 : decentrement SUPG (critical approx) * i = 3 : decentrement SUPG (doubly asymptotic) * 'VNORi' : fonction de 0 donnee donnant la ieme composante d'un vecteur unitaire normal a une surface. * 'X1' : fonction de 0 donnee donnant la valeur de la premiere coordonnee x_1 (uniquement disponible en mode axisymétrique). Notes : _______ 1) Il est possible de preciser la valeur des variables primales et/ou duales avec la meme syntaxe que pour les donnees : A . 'VAR' . r . 'VALEUR' = CHPOINT ou MCHAML aux noeuds de MAIL1 ou FLOTTANT ou ENTIER valeurs des ddl Si on donne la valeur des variables primales (resp. duales), RIG1 est alors un objet de type CHPOINT dual (resp. primal). Si le mot-cle 'CHAM' est donne et que l'espace dual (resp. primal) est de type 'LINE', 'QUAI' ou 'QUAF' alors RIG1 est un objet de type MCHAML defini aux noeuds, representant une force non assemblee. Si on donne les valeurs des variables primales et duales, RIG1 est un objet de type CHPOINT de composante 'SCAL', donnant la valeur de l'integrale par element. Si le mot-cle 'CHAM' est donne alors RIG1 est un objet de type MCHAML defini aux noeuds de MAIL1, constant par element. 2) Si une donnee ou a une variable a une valeur constante : A . | 'VAR' . r | . 'VALEUR' = FLOTTANT ou ENTIER | 'DAT' . v | il n'est pas necessaire de donner de donner les indices 'NOMDDL' et 'DISC' associes. 3) Pour un coefficient w, la loi de comportement est 'IDEN' par defaut, on peut donc omettre la ligne : A . 'COF' . w . 'COMPOR' = 'IDEN' ; 4) Pour un coefficient w avec une loi de comportement a 0 donnee, on peut omettre la ligne : A . 'COF' . w . 'LDAT' = 'LECT' ; 5) MAIL1 peut etre un maillage standard (lineaire ou quadratique non QUAF) sous les conditions suivantes : - MAIL2 ne doit pas etre donne ; - tous les espaces de discretisation utilises doivent pouvoir s'appuyer uniquement sur les noeuds de MAIL1. ANGL=================================================================== Purpose : _________ The NLIN (LINear kerNel) operator creates a matrix corresponding to the discretization of a bilinear form with a scalar finite element method : --- / \ | dN_s dM_r RIG1 = / | ------ d_qsl c_qrk ----- dOmega --- | dx_l dx_k q,s,r,k,l | / Omega with - Omega is the integration domain (dimension n<=m), embedded in R^m, and {x_1,...,x_m} an orthogonal basis of R^m ; - k, l indices ranges between 0 and m (or n if one of the keywords 'EREF' or 'ERF1' is specified) ; d/dx_0 means identity ; - q ranges between 1 and n_op, number of operators ; - r ranges between 1 and n_vp, number of primal variables ; - s ranges between 1 and n_vd, number of dual variables ; - \M^r (resp. \N^r) are interpolation functions of the finite element space for variable r (resp. s) ; - c_qkr (resp. d_qsl) are multipliers. They are computed by a product of coefficients. A coefficient is computed with a behavior law depending on known datas MOT1 : MOT type object, finite element family used for geometric interpolation. MAIL1 : MAILLAGE type object of QUAF type elements, support of the finite element spaces. If MAIL2 is not given, MAIL1 is also the integration domain Omega. MAIL2 : MAILLAGE type object of surfacic QUAF type elements. This surfacic mesh must lay on MAIL1 and corresponds to the integration domain Omega. TAB1 : TABLE type object describing information concerning the primal variables. TAB2 : TABLE type object describing information concerning the dual variables. EREF : keywords meaning that integration will be carried on ERF1 the reference element (resp. on the reference element of unit volume). ERRJ : keyword meaning that if the jacobian of the geometric transformation changes sign on an element, the operator will return an integer (error code) instead of outputting an error message. MREG : keyword meaning that MAIL1 is made of identical elements (also orientationwise). CHAM : keyword meaning that NLIN returns objects of type MCHAML (unassembled forces) instead of CHPOINT (cf. note 1). MOT2 : Family of quadrature method to be used. RIG1 : RIGIDITE (or MATRIK if the keyword MATK is used) type object of the discretised operator. (or ENTIER type object with keyword ERRJ). Remarks : _________ A discretization space is a family of compatible finite elements. Available families are : * 'CSTE' : constant element-wise (L2 degree 0) ; * 'LINM' : linear element-wise (L2 degree 1) ; * 'LINE' : linear (H1 degree 1) ; * 'LINC' : non-conforming linear (degree 1) ; * 'LINB' : linear + bubble (H1 degree 1) ; * 'QUAI' : quadratic serendip (H1 degree 2) ; * 'QUAD' : quadratic (H1 degree 2) ; * 'QUAF' : quadratic + bubble (H1 degree 2) ; * 'CUBI' : cubic (H1 degree 3) ; * 'BULL' : bubble (H10 degree 0). Quadrature rules family are : * 'GAUi' : Gauss type of order at least i (i ranges from 1 to 7). * 'GAPi' : Gauss product type of order at least i (i = 3, 5 or 7). * 'NC1 ' : Newton-Cotes type of order at least 1 (vertices of the elements) * 'GAMi' : Gauss for mass matrices (interpolation of order i) (i = 1 or 2) * 'GARi' : Gauss for rigidity matrices (interpolation of order i) (i = 1 or 2) The table enclosing information related to the primal (or dual) variable is structured as follows : A . 'NUMOP' = n_op ; number of operators (index q) A . 'NUMVAR' = n_vp ; number of variables (index r) A . 'NUMDAT' = n_dp ; number of data (index v) A . 'NUMCOF' = n_cp ; number of coefficients (index w) A . 'NUMDER' = m ; Integration space dimension (index k ranging from 0 to m) * Variable r : A . 'VAR' . r . 'NOMDDL' = MOT or LISTMOTS ; dof name(s) A . 'VAR' . r . 'DISC' = MOT ; discretization space * Datum v : A . 'DAT' . v . 'NOMDDL' = MOT or LISTMOTS ; dof name(s) A . 'DAT' . v . 'DISC' = MOT ; discretization space A . 'DAT' . v . 'VALEUR' = CHPOINT or MCHAML defined on MAIL1's vertices or FLOTTANT or ENTIER dof values * Coefficient w A . 'COF' . w . 'COMPOR' = MOT ; behavior law name A . 'COF' . w . 'LDAT' = ENTIER or LISTENTI ; list of v-values (data) for the behavior law * Multiplier c_qrk : A . q . r . k = ENTIER or LISTENTI ; list of w-values (coefficients) the product of which is c_qrk (an empty LISTENTI or an ENTIER equal to 0 implies c_qrk = 1; a negative w implies a division by the coefficient number |w|) Such a table can be initialised with procedure ININLIN. Available behavior laws are : * 'RIEN' : function of 0 datum equal to 1 ; * 'IDEN' : function of 1 datum x equal to x ; * 'RAYS' : function of 3 data epsi, sigma, T equal to epsi * sigma * T^3 ; * 'MUR ' : function of 4 data T1, T2, V1, V2 equal to V1 if T1 > T2 else V2 ; * 'SUTH' : function of 3 data T, Tref, S equal to (T/Tref)^3/2 ((Tref+S)/(T+S)) (Sutherland law) ; * 'D/DXi' : function of 1 datum T equal to dT/dx_i (i-th component of the gradient) ; * 'DIV' : function of m data (u_1,...u_m) equal to \sum_{i=1,m} du_i/dx_i (divergence) ; (fonction divergence) ; * 'TAILDIRE' : function of m data (u_1,...u_m) equal to the size of the current element in the direction defined by (u_1,...u_m). * 'MUSTABij' : function of m+3 data \rho, \mu, (u_1,...u_m), Pe_c giving the components of a vector v_j (j ranging from 1 to m) from which a numerical viscosity tensor can be built T_jk=v_j v_k for stabilizing a convection-diffusion equation. Setting j=0 returns a scalar value corresponding to a numerical viscosity. \rho is the coefficient for the convection term \mu is the coefficient for the diffusion term. (u_1,...u_m) is the convection speed. Pe_c is a critical value of the Peclet number (usually set to 2). i ranges from 1 to 3. It is the upwinding method : * i = 1 : upwind * i = 2 : SUPG (critical approximation) * i = 3 : SUPG (doubly asymptotic) * 'VNORi' : function of 0 datum : ith component of a unit normal vector to a surface * 'X1' : function of 0 datum giving the value of the first coordinate x_1. Only available in axisymetric mode. Notes : _______ 1) It is possible to give the dof values of a primal or/and dual variables using the same syntax as for a datum : A . 'VAR' . r . 'VALEUR' = CHPOINT or MCHAML defined on MAIL1's vertices or FLOTTANT or ENTIER dof values If the values of the primal (resp. dual) variables are given, RIG1 is a dual (resp. primal) CHPOINT type object. If keyword 'CHAM' is given and if the dual (resp. primal) space is of type 'LINE', 'QUAI' or 'QUAF' then RIG1 is an MCHAML type object defined at the vertices (unassembled force). If the values of the primal and dual variables are given, RIG1 is a CHPOINT type object with a 'SCAL' component, given the value of the integral element-wise. If keyword 'CHAM' is given then RIG1 is an MCHAML type object defined at the vertices of MAIL1 and elementwise constant. 2) If a datum or a variable is constant : A . | 'VAR' . r | . 'VALEUR' = FLOTTANT ou ENTIER | 'DAT' . v | it is unnecessary to fill in the corresponding 'NOMDDL' et 'DISC' indices. 3) For a coefficient w, the default behavior law is 'IDEN'. The following declaration is thus unnecessary: A . 'COF' . w . 'COMPOR' = 'IDEN' ; 4) For a coefficient w with a behavior law depending on 0 datum, one can omit the following declaration: A . 'COF' . w . 'LDAT' = 'LECT' ; 5) MAIL1 can be a standard mesh (i.e. linear or quadratic but non QUAF) under the following conditions: - MAIL2 mustn't be used ; - all the discretization spaces under use must rely on the nodes of MAIL1 only.