view assertStructFields.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 c596122374df
children
line wrap: on
line source

% Assert that the struct s has the all the field names in the cell array fns.
function assertStructFields(s, fns)
    assertType(s, 'struct');
    assertType(fns, 'cell');

    ok = ismember(fns, fieldnames(s));
    if ~all(ok)
        str1 = sprintf("'%s' must have the fields %s\n", inputname(1), toString(fns));
        str2 = sprintf("The following fields are missing: %s", toString(fns(~ok)));
        error(str1 + str2);
    end
end