⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 two_point_upwind_d1.m

📁 有关the method of line即MOL算法的matlab代码
💻 M
字号:
      function [D]=two_point_upwind_D1(z,v)
%...
%...  A. Vande Wouwer, P. Saucez and W.E. Schiesser (2002)
%...
%...  function two_point_upwind_D1 returns the differentiation matrix  
%...  for computing the first derivative, xz, of a variable x over a nonuniform 
%...  grid z from upwind two-point, first-order finite difference approximations
%...
%...  the following parameters are used in the code:
%...
%...       z               spatial grid
%...
%...       v               fluid velocity (positive from left to right - only the sign is used)
%...
%...       n               number of grid points
%...
%...       zs(ns)          stencil of the finite difference scheme
%...
%...       ns              number of points in the stencil
%...
%...       zd              location where the derivative is to be computed
%...
%...       m               highest derivative for which weights are sought
%...
      m=1;      
      ns=2;
%...
%...  sparse discretization matrix      
      n = length(z);
      D = sparse(n,n);
%...
%...     (1)  finite difference approximation for positive v     
              if v > 0
%...
%...             boundary point     
                 zs=z(1:ns);
                 zd=z(1);
                 [w]=weights(zd,zs,ns,m);
                 D(1,1:2)=w(1:ns,m+1)';
%...
%...             interior points      
                 for i=2:n,
                   zs=z(i-1:i);
                   zd=z(i);
                   [w]=weights(zd,zs,ns,m);
                   D(i,i-1:i)=w(1:ns,m+1)';
                 end;
              end;
%...
%...     (2)  finite difference approximation for negative v
              if v < 0
%...
%...             interior points      
                 for i=1:n-1,
                   zs=z(i:i+1);
                   zd=z(i);
                   [w]=weights(zd,zs,ns,m);
                   D(i,i:i+1)=w(1:ns,m+1)';
                 end;
%...
%...            boundary point      
                zs=z(n-1:n);
                zd=z(n);
                [w]=weights(zd,zs,ns,m);
                D(n,n-1:n)=w(1:ns,m+1)';
              end;                

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -