annotate +scheme/bcSetup.m @ 869:d356f1a22d4f bcSetupExperiment

Start organizing the code
author Jonatan Werpers <jonatan@werpers.com>
date Fri, 07 Sep 2018 09:19:03 +0200
parents 57760d7088ad
children fb91d12093f8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
619
9dd49d622a4c Add a function for easily applying many boundary conditions at the same time
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1 % function [closure, S] = bcSetup(diffOp, bc)
9dd49d622a4c Add a function for easily applying many boundary conditions at the same time
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
2 % Takes a diffOp and a cell array of boundary condition definitions.
9dd49d622a4c Add a function for easily applying many boundary conditions at the same time
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
3 % Each bc is a struct with the fields
9dd49d622a4c Add a function for easily applying many boundary conditions at the same time
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
4 % * type -- Type of boundary condition
9dd49d622a4c Add a function for easily applying many boundary conditions at the same time
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
5 % * boundary -- Boundary identifier
749
1de60c4d462d Allow gird functions as data in bcSetup
Jonatan Werpers <jonatan@werpers.com>
parents: 723
diff changeset
6 % * data -- A function_handle for a function which provides boundary data.(see below)
619
9dd49d622a4c Add a function for easily applying many boundary conditions at the same time
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7 % Also takes S_sign which modifies the sign of S, [-1,1]
749
1de60c4d462d Allow gird functions as data in bcSetup
Jonatan Werpers <jonatan@werpers.com>
parents: 723
diff changeset
8 % Returns a closure matrix and a forcing function S.
1de60c4d462d Allow gird functions as data in bcSetup
Jonatan Werpers <jonatan@werpers.com>
parents: 723
diff changeset
9 %
1de60c4d462d Allow gird functions as data in bcSetup
Jonatan Werpers <jonatan@werpers.com>
parents: 723
diff changeset
10 % The boundary data function can either be a function of time or a function of time and space coordinates.
1de60c4d462d Allow gird functions as data in bcSetup
Jonatan Werpers <jonatan@werpers.com>
parents: 723
diff changeset
11 % In the case where it only depends on time it should return the data as grid function for the boundary.
1de60c4d462d Allow gird functions as data in bcSetup
Jonatan Werpers <jonatan@werpers.com>
parents: 723
diff changeset
12 % In the case where it also takes space coordinates the number of space coordinates should match the number of dimensions of the problem domain.
1de60c4d462d Allow gird functions as data in bcSetup
Jonatan Werpers <jonatan@werpers.com>
parents: 723
diff changeset
13 % For example in the 2D case: f(t,x,y).
785
c02b6d03c77c Change name from bc to bcs
Jonatan Werpers <jonatan@werpers.com>
parents: 777
diff changeset
14 function [closure, S] = bcSetup(diffOp, bcs, S_sign)
619
9dd49d622a4c Add a function for easily applying many boundary conditions at the same time
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
15 default_arg('S_sign', 1);
785
c02b6d03c77c Change name from bc to bcs
Jonatan Werpers <jonatan@werpers.com>
parents: 777
diff changeset
16 assertType(bcs, 'cell');
619
9dd49d622a4c Add a function for easily applying many boundary conditions at the same time
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
17 assert(S_sign == 1 || S_sign == -1, 'S_sign must be either 1 or -1');
9dd49d622a4c Add a function for easily applying many boundary conditions at the same time
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
18
869
d356f1a22d4f Start organizing the code
Jonatan Werpers <jonatan@werpers.com>
parents: 868
diff changeset
19 [closure, penalties] = bcClosureSetup(diffOp, bcs);
d356f1a22d4f Start organizing the code
Jonatan Werpers <jonatan@werpers.com>
parents: 868
diff changeset
20 S = bcForcingSetup(diffOp, penalties, bcs, S_sign);
619
9dd49d622a4c Add a function for easily applying many boundary conditions at the same time
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
21 end
785
c02b6d03c77c Change name from bc to bcs
Jonatan Werpers <jonatan@werpers.com>
parents: 777
diff changeset
22
869
d356f1a22d4f Start organizing the code
Jonatan Werpers <jonatan@werpers.com>
parents: 868
diff changeset
23 %%% NOTES
792
8e4b9a5d7c50 Add some notes
Jonatan Werpers <jonatan@werpers.com>
parents: 790
diff changeset
24 % Borde man använda eval on här??
8e4b9a5d7c50 Add some notes
Jonatan Werpers <jonatan@werpers.com>
parents: 790
diff changeset
25 % Borde man dela upp bcSetup i bcSetupSymbolic(name?) och bcSetupGridData
8e4b9a5d7c50 Add some notes
Jonatan Werpers <jonatan@werpers.com>
parents: 790
diff changeset
26 % och sen skriva en wrapper som sorterar och wrappar de två andra??
8e4b9a5d7c50 Add some notes
Jonatan Werpers <jonatan@werpers.com>
parents: 790
diff changeset
27
867
d634d4deb263 More notes
Jonatan Werpers <jonatan@werpers.com>
parents: 792
diff changeset
28 % Borde man ha en separat funktion för closure penalty generering
d634d4deb263 More notes
Jonatan Werpers <jonatan@werpers.com>
parents: 792
diff changeset
29 % och en separat för att bygga ihop penaltyn med data?
d634d4deb263 More notes
Jonatan Werpers <jonatan@werpers.com>
parents: 792
diff changeset
30
792
8e4b9a5d7c50 Add some notes
Jonatan Werpers <jonatan@werpers.com>
parents: 790
diff changeset
31 % Erbjuda en separat function for att validera en bc specifikation?
8e4b9a5d7c50 Add some notes
Jonatan Werpers <jonatan@werpers.com>
parents: 790
diff changeset
32 % alltid kräva alla fields?
8e4b9a5d7c50 Add some notes
Jonatan Werpers <jonatan@werpers.com>
parents: 790
diff changeset
33 % literal struct improvement?