X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=octave_packages%2Fsecs1d-0.0.8%2FUtilities%2FUcomplap.m;fp=octave_packages%2Fsecs1d-0.0.8%2FUtilities%2FUcomplap.m;h=50fa28657904d37e425d5b37e65b747b06eba242;hb=c880e8788dfc484bf23ce13fa2787f2c6bca4863;hp=0000000000000000000000000000000000000000;hpb=1705066eceaaea976f010f669ce8e972f3734b05;p=CreaPhase.git diff --git a/octave_packages/secs1d-0.0.8/Utilities/Ucomplap.m b/octave_packages/secs1d-0.0.8/Utilities/Ucomplap.m new file mode 100644 index 0000000..50fa286 --- /dev/null +++ b/octave_packages/secs1d-0.0.8/Utilities/Ucomplap.m @@ -0,0 +1,43 @@ +function L = Ucomplap (nodes,Nnodes,elements,Nelements,coeff) + +% L = Ucomplap (nodes,Nnode,elements,Nelements,coeff) +% Computes the P1 finite element approximation of the +% differential operator - d ( coeff d (.)\dx)\dx + + ## This file is part of + ## + ## SECS1D - A 1-D Drift--Diffusion Semiconductor Device Simulator + ## ------------------------------------------------------------------- + ## Copyright (C) 2004-2007 Carlo de Falco + ## + ## + ## + ## SECS1D is free software; you can redistribute it and/or modify + ## it under the terms of the GNU General Public License as published by + ## the Free Software Foundation; either version 2 of the License, or + ## (at your option) any later version. + ## + ## SECS1D is distributed in the hope that it will be useful, + ## but WITHOUT ANY WARRANTY; without even the implied warranty of + ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + ## GNU General Public License for more details. + ## + ## You should have received a copy of the GNU General Public License + ## along with SECS1D; If not, see . + + h = nodes(2:end)-nodes(1:end-1); + + d0 = [ coeff(1)./h(1); + (coeff(1:end-1)./h(1:end-1))+(coeff(2:end)./h(2:end)); + coeff(end)./h(end)]; + + d1 = [1000; -coeff./h]; + dm1 = [ -coeff./h;1000]; + + L = spdiags([dm1, d0, d1],-1:1,Nnodes,Nnodes); + + + % Last Revision: + % $Author: adb014 $ + % $Date: 2008-02-04 16:26:27 +0100 (man, 04 feb 2008) $ +