view gridDerivatives.m @ 1012:1e437c9e5132 feature/advectionRV

Create residual viscosity package +rv and generalize the ResidualViscosity class - Generalize residual viscosity, by passing user-defined flux and calculating the time derivative outside of the update. - Create separate RungekuttaRV specifically using interior RV updates - Separate the artifical dissipation operator from the scheme AdvectionRV1D so that the same scheme can be reused for creating the diff op used by the ResidualViscosity class
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Wed, 05 Dec 2018 13:44:10 +0100
parents 48b6fb693025
children
line wrap: on
line source

% Calculates derivatives in all directions of function.
% Uses multi-dim vector form.
%   gridDerivatives(F,Dx,Dy)
%   gridDerivatives(F,Dx,Dy,Dz)
function varargout = gridDerivatives(F, varargin)
    assert(length(varargin) == ndims(F));

    switch ndims(F)
        case 2
            varargout{1} = (varargin{1}*F')';
            varargout{2} = varargin{2}*F;
        otherwise
            error('Not implemented for ndims(F) = %d',ndims(F));
    end
end