Mercurial > repos > public > sbplib
annotate +multiblock/evalOn.m @ 1031:2ef20d00b386 feature/advectionRV
For easier comparison, return both the first order and residual viscosity when evaluating the residual. Add the first order and residual viscosity to the state of the RungekuttaRV time steppers
author | Vidar Stiernström <vidar.stiernstrom@it.uu.se> |
---|---|
date | Thu, 17 Jan 2019 10:25:06 +0100 |
parents | 442ec6c77c3f |
children | 92dc0a3b5d5d |
rev | line source |
---|---|
806
f779b5aca5eb
Add type assertions, fix bug, edit documentation and formatting
Jonatan Werpers <jonatan@werpers.com>
parents:
805
diff
changeset
|
1 % Evaluate different function handle for each block in a multiblock.Grid |
f779b5aca5eb
Add type assertions, fix bug, edit documentation and formatting
Jonatan Werpers <jonatan@werpers.com>
parents:
805
diff
changeset
|
2 % Function handles may optionaly take a time argument |
f779b5aca5eb
Add type assertions, fix bug, edit documentation and formatting
Jonatan Werpers <jonatan@werpers.com>
parents:
805
diff
changeset
|
3 % f -- cell array of function handles |
807
cee0b381d714
Change order of function arguments
Jonatan Werpers <jonatan@werpers.com>
parents:
806
diff
changeset
|
4 % f{i} = f_i(t,x,y,...) |
806
f779b5aca5eb
Add type assertions, fix bug, edit documentation and formatting
Jonatan Werpers <jonatan@werpers.com>
parents:
805
diff
changeset
|
5 % t -- optional time point. If not specified, it is assumed that the functions take only spatial arguments. |
804
1f1d2a271d61
Move blockEvalOn to multiblock package
Jonatan Werpers <jonatan@werpers.com>
parents:
736
diff
changeset
|
6 function gf = evalOn(g, f, t) |
806
f779b5aca5eb
Add type assertions, fix bug, edit documentation and formatting
Jonatan Werpers <jonatan@werpers.com>
parents:
805
diff
changeset
|
7 assertType(g, 'multiblock.Grid'); |
f779b5aca5eb
Add type assertions, fix bug, edit documentation and formatting
Jonatan Werpers <jonatan@werpers.com>
parents:
805
diff
changeset
|
8 assertType(f, 'cell'); |
f779b5aca5eb
Add type assertions, fix bug, edit documentation and formatting
Jonatan Werpers <jonatan@werpers.com>
parents:
805
diff
changeset
|
9 |
f779b5aca5eb
Add type assertions, fix bug, edit documentation and formatting
Jonatan Werpers <jonatan@werpers.com>
parents:
805
diff
changeset
|
10 default_arg('t', []); |
736
d991f8a0b61c
Add grid.blockEvalOn for functions with different functional expressions for different grid blocks
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
11 |
805
1caeb4dffdf9
Fix formatting of multiblock.evalOn
Jonatan Werpers <jonatan@werpers.com>
parents:
804
diff
changeset
|
12 grids = g.grids; |
1caeb4dffdf9
Fix formatting of multiblock.evalOn
Jonatan Werpers <jonatan@werpers.com>
parents:
804
diff
changeset
|
13 nBlocks = length(grids); |
806
f779b5aca5eb
Add type assertions, fix bug, edit documentation and formatting
Jonatan Werpers <jonatan@werpers.com>
parents:
805
diff
changeset
|
14 gf = cell(nBlocks, 1); |
736
d991f8a0b61c
Add grid.blockEvalOn for functions with different functional expressions for different grid blocks
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
15 |
805
1caeb4dffdf9
Fix formatting of multiblock.evalOn
Jonatan Werpers <jonatan@werpers.com>
parents:
804
diff
changeset
|
16 if isempty(t) |
1caeb4dffdf9
Fix formatting of multiblock.evalOn
Jonatan Werpers <jonatan@werpers.com>
parents:
804
diff
changeset
|
17 for i = 1:nBlocks |
806
f779b5aca5eb
Add type assertions, fix bug, edit documentation and formatting
Jonatan Werpers <jonatan@werpers.com>
parents:
805
diff
changeset
|
18 gf{i} = grid.evalOn(grids{i}, f{i}); |
805
1caeb4dffdf9
Fix formatting of multiblock.evalOn
Jonatan Werpers <jonatan@werpers.com>
parents:
804
diff
changeset
|
19 end |
1caeb4dffdf9
Fix formatting of multiblock.evalOn
Jonatan Werpers <jonatan@werpers.com>
parents:
804
diff
changeset
|
20 else |
1caeb4dffdf9
Fix formatting of multiblock.evalOn
Jonatan Werpers <jonatan@werpers.com>
parents:
804
diff
changeset
|
21 for i = 1:nBlocks |
808
442ec6c77c3f
Make multiblock.evalOn work for any dimension
Jonatan Werpers <jonatan@werpers.com>
parents:
807
diff
changeset
|
22 gf{i} = grid.evalOn(grids{i}, @(varargin)f{i}(t,varargin{:})); |
805
1caeb4dffdf9
Fix formatting of multiblock.evalOn
Jonatan Werpers <jonatan@werpers.com>
parents:
804
diff
changeset
|
23 end |
1caeb4dffdf9
Fix formatting of multiblock.evalOn
Jonatan Werpers <jonatan@werpers.com>
parents:
804
diff
changeset
|
24 end |
1caeb4dffdf9
Fix formatting of multiblock.evalOn
Jonatan Werpers <jonatan@werpers.com>
parents:
804
diff
changeset
|
25 |
1caeb4dffdf9
Fix formatting of multiblock.evalOn
Jonatan Werpers <jonatan@werpers.com>
parents:
804
diff
changeset
|
26 gf = blockmatrix.toMatrix(gf); |
736
d991f8a0b61c
Add grid.blockEvalOn for functions with different functional expressions for different grid blocks
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
27 end |