$$$$ NLIN NOTICE CHAT 11/09/12 21:17:22 7124 DATE 11/09/12 $X NLIN (Construction de matrices elementaires) See also : NAVI ININLIN NLIN operator _____________ RIG1 = 'NLIN' MOT1 MAIL1 (MAIL2) TAB1 TAB2 ... ... |('EREF')| ('ERRJ') ('MATK') ('MREG') MOT2 ; |('ERF1')| 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). 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' = LISTMOTS ; dof names A . 'VAR' . r . 'DISC' = MOT ; discretization space * Data v : A . 'DAT' . v . 'NOMDDL' = LISTMOTS ; dof names A . 'DAT' . v . 'DISC' = MOT ; discretization space A . 'DAT' . v . 'VALEUR' = CHPOINT ou FLOTTANT ou ENTIER dof values * Coefficient w A . 'COF' . w . 'COMPOR' = MOT ; behavior law name A . 'COF' . w . 'LDAT' = LISTENTI ; list of v-values (variables) for the behavior law * Multiplier c_qrk : A . q . r . k = LISTENTI ; list of w-values (coefficients) the product of which is c_qrk (an empty LISTENTI 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 variable equal to 1 ; * 'IDEN' : function of 1 variable x equal to x ; * 'RAYS' : function of 3 variables epsi, sigma, T equal to epsi * sigma * T^3 ; * 'MUR ' : function of 4 variables T1, T2, V1, V2 equal to V1 if T1 > T2 else V2 ; * 'SUTH' : function of 3 variables T, Tref, S equal to (T/Tref)^3/2 ((Tref+S)/(T+S)) (Sutherland law) ; * 'D/DXi' : function of 1 variable T equal to dT/dx_i (i-th component of the gradient) ; * 'DIV' : function of m variables (u_1,...u_m) equal to \sum_{i=1,m} du_i/dx_i (divergence) ; (fonction divergence) ; * 'TAILDIRE' : function of m variables (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 variables \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 variable : ith of a unit normal vector to a surface Notes : _______ It is possible to give the dof values of the primal or/and dual variables using the same syntax as for the data : A . 'VAR' . v . 'VALEUR' = CHPOINT 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 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.
© Cast3M 2003 - All rights reserved.
Disclaimer