Mercurial > repos > public > sbplib
annotate +scheme/Scheme.m @ 577:e45c9b56d50d feature/grids
Add an Empty grid class
The need turned up for the flexural code when we may or may not have a grid for the open water and want to plot that solution.
In case there is no open water we need an empty grid to plot the empty gridfunction against to avoid errors.
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Thu, 07 Sep 2017 09:16:12 +0200 |
parents | 12ee11893453 |
children | 459eeb99130f |
rev | line source |
---|---|
185
fad5e81389c1
Updated comments and definition to use introduced grid types.
Jonatan Werpers <jonatan@werpers.com>
parents:
178
diff
changeset
|
1 % Start with all matrix returns. When that works see how we should generalize |
fad5e81389c1
Updated comments and definition to use introduced grid types.
Jonatan Werpers <jonatan@werpers.com>
parents:
178
diff
changeset
|
2 % to non-matrix stuff/nonlinear |
0 | 3 classdef Scheme < handle |
4 properties (Abstract) | |
5 order % Order accuracy for the approximation | |
6 | |
185
fad5e81389c1
Updated comments and definition to use introduced grid types.
Jonatan Werpers <jonatan@werpers.com>
parents:
178
diff
changeset
|
7 grid |
0 | 8 |
9 D % non-stabalized scheme operator | |
10 H % Discrete norm | |
11 end | |
12 | |
13 methods (Abstract) | |
185
fad5e81389c1
Updated comments and definition to use introduced grid types.
Jonatan Werpers <jonatan@werpers.com>
parents:
178
diff
changeset
|
14 % Closure functions return the opertors applied to the own doamin to |
fad5e81389c1
Updated comments and definition to use introduced grid types.
Jonatan Werpers <jonatan@werpers.com>
parents:
178
diff
changeset
|
15 % close the boundary Penalty functions return the opertors to force |
fad5e81389c1
Updated comments and definition to use introduced grid types.
Jonatan Werpers <jonatan@werpers.com>
parents:
178
diff
changeset
|
16 % the solution. In the case of an interface it returns the operator |
fad5e81389c1
Updated comments and definition to use introduced grid types.
Jonatan Werpers <jonatan@werpers.com>
parents:
178
diff
changeset
|
17 % applied to the other doamin. In some cases the penalty return value |
fad5e81389c1
Updated comments and definition to use introduced grid types.
Jonatan Werpers <jonatan@werpers.com>
parents:
178
diff
changeset
|
18 % can be ommited and the closure function take care of both parts. |
fad5e81389c1
Updated comments and definition to use introduced grid types.
Jonatan Werpers <jonatan@werpers.com>
parents:
178
diff
changeset
|
19 % boundary is a string specifying the boundary e.g. |
fad5e81389c1
Updated comments and definition to use introduced grid types.
Jonatan Werpers <jonatan@werpers.com>
parents:
178
diff
changeset
|
20 % 'l','r' or 'e','w','n','s'. |
fad5e81389c1
Updated comments and definition to use introduced grid types.
Jonatan Werpers <jonatan@werpers.com>
parents:
178
diff
changeset
|
21 % type is a string specifying the type of |
fad5e81389c1
Updated comments and definition to use introduced grid types.
Jonatan Werpers <jonatan@werpers.com>
parents:
178
diff
changeset
|
22 % boundary condition if there are several. |
fad5e81389c1
Updated comments and definition to use introduced grid types.
Jonatan Werpers <jonatan@werpers.com>
parents:
178
diff
changeset
|
23 % neighbour_scheme is an instance of Scheme that should be |
fad5e81389c1
Updated comments and definition to use introduced grid types.
Jonatan Werpers <jonatan@werpers.com>
parents:
178
diff
changeset
|
24 % interfaced to. |
fad5e81389c1
Updated comments and definition to use introduced grid types.
Jonatan Werpers <jonatan@werpers.com>
parents:
178
diff
changeset
|
25 % neighbour_boundary is a string specifying which boundary to |
fad5e81389c1
Updated comments and definition to use introduced grid types.
Jonatan Werpers <jonatan@werpers.com>
parents:
178
diff
changeset
|
26 % interface to. |
220
5df8d20281fe
Made scheme boundary_condition return a cell array of penalties if there are several of them.
Jonatan Werpers <jonatan@werpers.com>
parents:
213
diff
changeset
|
27 % penalty may be a cell array if there are several penalties with different weights |
568
12ee11893453
Add todo about method name change
Jonatan Werpers <jonatan@werpers.com>
parents:
539
diff
changeset
|
28 [closure, penalty] = boundary_condition(obj,boundary,type) % TODO: Change name to boundaryCondition |
185
fad5e81389c1
Updated comments and definition to use introduced grid types.
Jonatan Werpers <jonatan@werpers.com>
parents:
178
diff
changeset
|
29 [closure, penalty] = interface(obj,boundary,neighbour_scheme,neighbour_boundary) |
0 | 30 |
539 | 31 % TODO: op = getBoundaryOperator()?? |
32 % makes sense to have it available through a method instead of random properties | |
537
a70d5387d2ca
Add note about a possible getBoundaryOperator method
Jonatan Werpers <jonatan@werpers.com>
parents:
220
diff
changeset
|
33 |
185
fad5e81389c1
Updated comments and definition to use introduced grid types.
Jonatan Werpers <jonatan@werpers.com>
parents:
178
diff
changeset
|
34 % Returns the number of degrees of freedom. |
fad5e81389c1
Updated comments and definition to use introduced grid types.
Jonatan Werpers <jonatan@werpers.com>
parents:
178
diff
changeset
|
35 N = size(obj) |
0 | 36 end |
37 | |
38 methods(Static) | |
185
fad5e81389c1
Updated comments and definition to use introduced grid types.
Jonatan Werpers <jonatan@werpers.com>
parents:
178
diff
changeset
|
39 % Calculates the matrcis need for the inteface coupling between |
fad5e81389c1
Updated comments and definition to use introduced grid types.
Jonatan Werpers <jonatan@werpers.com>
parents:
178
diff
changeset
|
40 % boundary bound_u of scheme schm_u and bound_v of scheme schm_v. |
fad5e81389c1
Updated comments and definition to use introduced grid types.
Jonatan Werpers <jonatan@werpers.com>
parents:
178
diff
changeset
|
41 % [uu, uv, vv, vu] = inteface_coupling(A,'r',B,'l') |
0 | 42 function [uu, uv, vv, vu] = interface_coupling(schm_u,bound_u,schm_v,bound_v) |
43 [uu,uv] = schm_u.interface(bound_u,schm_v,bound_v); | |
44 [vv,vu] = schm_v.interface(bound_v,schm_u,bound_u); | |
45 end | |
46 end | |
200
ef41fde95ac4
Merged feature/grids into feature/beams.
Jonatan Werpers <jonatan@werpers.com>
diff
changeset
|
47 end |