annotate +scheme/Scheme.m @ 1334:df8c71b80c33 feature/D2_boundary_opt

Use the logic grid associated with a CurvilinearGrid instead of creating a new one
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Sat, 07 May 2022 10:40:47 +0200
parents 5afc774fb7c4
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
3 classdef Scheme < handle
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
4 properties (Abstract)
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
5 order % Order accuracy for the approximation
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
6
185
fad5e81389c1 Updated comments and definition to use introduced grid types.
Jonatan Werpers <jonatan@werpers.com>
parents: 178
diff changeset
7 grid
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
8
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
9 D % non-stabalized scheme operator
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
10 H % Discrete norm
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
11 end
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
12
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
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
905
459eeb99130f Include type as (optional) input parameter in the interface method of all schemes.
Martin Almquist <malmquist@stanford.edu>
parents: 568
diff changeset
29
945
af397cc35239 Update abstract scheme class
Jonatan Werpers <jonatan@werpers.com>
parents: 910
diff changeset
30 % type -- sets the type of interface, could be a string or a struct or something else
af397cc35239 Update abstract scheme class
Jonatan Werpers <jonatan@werpers.com>
parents: 910
diff changeset
31 % depending on the particular scheme implementation
af397cc35239 Update abstract scheme class
Jonatan Werpers <jonatan@werpers.com>
parents: 910
diff changeset
32 [closure, penalty] = interface(obj,boundary,neighbour_scheme,neighbour_boundary,type)
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
33
1001
514a98f9f90d Add getBoundaryOperator and getBoundaryQuadrature as abstract methods in scheme.Scheme
Jonatan Werpers <jonatan@werpers.com>
parents: 945
diff changeset
34 op = getBoundaryOperator(obj, opName, boundary)
514a98f9f90d Add getBoundaryOperator and getBoundaryQuadrature as abstract methods in scheme.Scheme
Jonatan Werpers <jonatan@werpers.com>
parents: 945
diff changeset
35 H_b= getBoundaryQuadrature(obj, boundary)
537
a70d5387d2ca Add note about a possible getBoundaryOperator method
Jonatan Werpers <jonatan@werpers.com>
parents: 220
diff changeset
36
185
fad5e81389c1 Updated comments and definition to use introduced grid types.
Jonatan Werpers <jonatan@werpers.com>
parents: 178
diff changeset
37 % 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
38 N = size(obj)
0
48b6fb693025 Initial commit.
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
39 end
200
ef41fde95ac4 Merged feature/grids into feature/beams.
Jonatan Werpers <jonatan@werpers.com>
parents: 180 185
diff changeset
40 end