]> Creatis software - CreaPhase.git/blob - octave_packages/secs1d-0.0.8/Utilities/Ucomplap.m
Add a useful package (from Source forge) for octave
[CreaPhase.git] / octave_packages / secs1d-0.0.8 / Utilities / Ucomplap.m
1 function L = Ucomplap (nodes,Nnodes,elements,Nelements,coeff)
2
3 % L = Ucomplap (nodes,Nnode,elements,Nelements,coeff)
4 %    Computes the P1 finite element approximation of the 
5 %    differential operator - d ( coeff d (.)\dx)\dx
6
7  ## This file is part of 
8   ##
9   ## SECS1D - A 1-D Drift--Diffusion Semiconductor Device Simulator
10   ## -------------------------------------------------------------------
11   ## Copyright (C) 2004-2007  Carlo de Falco
12   ##
13   ##
14   ##
15   ##  SECS1D is free software; you can redistribute it and/or modify
16   ##  it under the terms of the GNU General Public License as published by
17   ##  the Free Software Foundation; either version 2 of the License, or
18   ##  (at your option) any later version.
19   ##
20   ##  SECS1D is distributed in the hope that it will be useful,
21   ##  but WITHOUT ANY WARRANTY; without even the implied warranty of
22   ##  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23   ##  GNU General Public License for more details.
24   ##
25   ##  You should have received a copy of the GNU General Public License
26   ##  along with SECS1D; If not, see <http://www.gnu.org/licenses/>.
27   
28   h     = nodes(2:end)-nodes(1:end-1);
29   
30   d0    = [ coeff(1)./h(1); 
31             (coeff(1:end-1)./h(1:end-1))+(coeff(2:end)./h(2:end));
32             coeff(end)./h(end)];
33   
34   d1    = [1000; -coeff./h];
35   dm1   = [ -coeff./h;1000];
36   
37   L     = spdiags([dm1, d0, d1],-1:1,Nnodes,Nnodes);
38   
39   
40   % Last Revision:
41   % $Author: adb014 $
42   % $Date: 2008-02-04 16:26:27 +0100 (man, 04 feb 2008) $
43