Download nlin.notice

Back to the list

Display this manual page in
$$$$ 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