annotate +multiblock/evalOn.m @ 805:1caeb4dffdf9 feature/poroelastic

Fix formatting of multiblock.evalOn
author Jonatan Werpers <jonatan@werpers.com>
date Thu, 26 Jul 2018 18:34:38 -0700
parents 1f1d2a271d61
children f779b5aca5eb
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
736
d991f8a0b61c Add grid.blockEvalOn for functions with different functional expressions for different grid blocks
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
1 % Useful for evaulating forcing functions with different functional expressions for each block
d991f8a0b61c Add grid.blockEvalOn for functions with different functional expressions for different grid blocks
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
2 % f: cell array of function handles fi
d991f8a0b61c Add grid.blockEvalOn for functions with different functional expressions for different grid blocks
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
3 % f_i = f_i(x1,y,...,t)
d991f8a0b61c Add grid.blockEvalOn for functions with different functional expressions for different grid blocks
Martin Almquist <malmquist@stanford.edu>
parents:
diff changeset
4 % t: 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
5 function gf = evalOn(g, f, t)
805
1caeb4dffdf9 Fix formatting of multiblock.evalOn
Jonatan Werpers <jonatan@werpers.com>
parents: 804
diff changeset
6 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
7
805
1caeb4dffdf9 Fix formatting of multiblock.evalOn
Jonatan Werpers <jonatan@werpers.com>
parents: 804
diff changeset
8 grids = g.grids;
1caeb4dffdf9 Fix formatting of multiblock.evalOn
Jonatan Werpers <jonatan@werpers.com>
parents: 804
diff changeset
9 nBlocks = length(grids);
1caeb4dffdf9 Fix formatting of multiblock.evalOn
Jonatan Werpers <jonatan@werpers.com>
parents: 804
diff changeset
10 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
11
805
1caeb4dffdf9 Fix formatting of multiblock.evalOn
Jonatan Werpers <jonatan@werpers.com>
parents: 804
diff changeset
12 if isempty(t)
1caeb4dffdf9 Fix formatting of multiblock.evalOn
Jonatan Werpers <jonatan@werpers.com>
parents: 804
diff changeset
13 for i = 1:nBlocks
1caeb4dffdf9 Fix formatting of multiblock.evalOn
Jonatan Werpers <jonatan@werpers.com>
parents: 804
diff changeset
14 grid.evalOn(grids{i}, f{i} );
1caeb4dffdf9 Fix formatting of multiblock.evalOn
Jonatan Werpers <jonatan@werpers.com>
parents: 804
diff changeset
15 end
1caeb4dffdf9 Fix formatting of multiblock.evalOn
Jonatan Werpers <jonatan@werpers.com>
parents: 804
diff changeset
16 else
1caeb4dffdf9 Fix formatting of multiblock.evalOn
Jonatan Werpers <jonatan@werpers.com>
parents: 804
diff changeset
17 dim = nargin(f{1}) - 1;
1caeb4dffdf9 Fix formatting of multiblock.evalOn
Jonatan Werpers <jonatan@werpers.com>
parents: 804
diff changeset
18 for i = 1:nBlocks
1caeb4dffdf9 Fix formatting of multiblock.evalOn
Jonatan Werpers <jonatan@werpers.com>
parents: 804
diff changeset
19 switch dim
1caeb4dffdf9 Fix formatting of multiblock.evalOn
Jonatan Werpers <jonatan@werpers.com>
parents: 804
diff changeset
20 case 1
1caeb4dffdf9 Fix formatting of multiblock.evalOn
Jonatan Werpers <jonatan@werpers.com>
parents: 804
diff changeset
21 gf{i} = grid.evalOn(grids{i}, @(x)f{i}(x,t) );
1caeb4dffdf9 Fix formatting of multiblock.evalOn
Jonatan Werpers <jonatan@werpers.com>
parents: 804
diff changeset
22 case 2
1caeb4dffdf9 Fix formatting of multiblock.evalOn
Jonatan Werpers <jonatan@werpers.com>
parents: 804
diff changeset
23 gf{i} = grid.evalOn(grids{i}, @(x,y)f{i}(x,y,t) );
1caeb4dffdf9 Fix formatting of multiblock.evalOn
Jonatan Werpers <jonatan@werpers.com>
parents: 804
diff changeset
24 case 3
1caeb4dffdf9 Fix formatting of multiblock.evalOn
Jonatan Werpers <jonatan@werpers.com>
parents: 804
diff changeset
25 gf{i} = grid.evalOn(grids{i}, @(x,y,z)f{i}(x,y,z,t) );
1caeb4dffdf9 Fix formatting of multiblock.evalOn
Jonatan Werpers <jonatan@werpers.com>
parents: 804
diff changeset
26 end
1caeb4dffdf9 Fix formatting of multiblock.evalOn
Jonatan Werpers <jonatan@werpers.com>
parents: 804
diff changeset
27 end
1caeb4dffdf9 Fix formatting of multiblock.evalOn
Jonatan Werpers <jonatan@werpers.com>
parents: 804
diff changeset
28 end
1caeb4dffdf9 Fix formatting of multiblock.evalOn
Jonatan Werpers <jonatan@werpers.com>
parents: 804
diff changeset
29
1caeb4dffdf9 Fix formatting of multiblock.evalOn
Jonatan Werpers <jonatan@werpers.com>
parents: 804
diff changeset
30 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
31 end