Finite Element Analysis Toolbox
sflag1.m File Reference

Description

SFLAG1 Shape function driver (first order P1/Q1 Lagrange polynomials).

[ VBASE, NLDOF, XLDOF, SFUN ] = SFLAG1( I_EVAL, N_SDIM, N_VERT, I_DOF, XI, AINVJAC, VBASE ) Evaluates conforming linear P1 Lagrange shape functions with values defined in the nodes.

Input       Value/[Size]           Description
-----------------------------------------------------------------------------------
i_eval      scalar:  1             Evaluate function values
                    >1             Evaluate values of derivatives
n_sdim      scalar: 1-3            Number of space dimensions
n_vert      scalar: 2-8            Number of vertices per cell
i_dof       scalar: 1-n_ldof       Local basis function to evaluate
xi          [n_sdim(+1)]           Local coordinates of evaluation point
aInvJac     [n,n_sdim(+1)*n_sdim]  Inverse of transformation Jacobian
vBase       [n]                    Preallocated output vector
                                                                                  .
Output      Value/[Size]           Description
-----------------------------------------------------------------------------------
vBase       [n]                    Evaluated function values
nLDof       [4]                    Number of local degrees of freedom on
                                   vertices, edges, faces, and cell interiors
xLDof       [n_sdim,n_ldof]        Local coordinates of local dofs
sfun        string                 Function name of called shape function
See also
sf_simp_P1, sf_quad_Q3, sf_hex_Q3

Code listing

 if ( (n_vert==n_sdim+1) || (n_sdim==1) )   % Simplex cells (1D line, 2D triangle, 3D tetrahedron).

   [vBase,nLDof,xLDof,sfun] = sf_simp_P1(i_eval,n_sdim,n_vert,varargin{:});

 else   % Quadrilateral and hexahedral cells.

   switch n_sdim

     case 1

       error('sflag1: 1D only supports barycentric coordinates.')

     case 2   % 2D Quadrilateral cells.

       [vBase,nLDof,xLDof,sfun] = sf_quad_Q1(i_eval,n_sdim,n_vert,varargin{:});

     case 3   % 3D Hedahedral cells.

       [vBase,nLDof,xLDof,sfun] = sf_hex_Q1(i_eval,n_sdim,n_vert,varargin{:});

   end
 end