annotate +scheme/Scheme.m @ 1198:2924b3a9b921 feature/d2_compatible

Add OpSet for fully compatible D2Variable, created from regular D2Variable by replacing d1 by first row of D1. Formal reduction by one order of accuracy at the boundary point.
author Martin Almquist <malmquist@stanford.edu>
date Fri, 16 Aug 2019 14:30:28 -0700
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