Mercurial > repos > public > sbplib
annotate +grid/lebedev2dCurvilinear.m @ 1344:b4e5e45bd239 feature/D2_boundary_opt
Remove round off zeros from D2Nonequidistant operators
author | Vidar Stiernström <vidar.stiernstrom@it.uu.se> |
---|---|
date | Sat, 15 Oct 2022 15:48:20 +0200 |
parents | 8aa0909125a4 |
children |
rev | line source |
---|---|
1274
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
1 % Creates a curvilinear 2d lebedev2d grid |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
2 % over the logical domain xi_lim, eta_lim, ... |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
3 % If all limits are ommited they are set to {0,1}. |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
4 % Examples: |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
5 % g = grid.lebedev2dCurvilinear(mapping, [m_xi, m_eta]) |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
6 % g = grid.lebedev2dCurvilinear(mapping, [m_xi, m_eta], xi_lim, eta_lim) |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
7 % g = grid.lebedev2dCurvilinear(mapping, [10, 15], {0,1}, {0,1}) |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
8 function g = lebedev2dCurvilinear(mapping, m, varargin) |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
9 if isempty(varargin) |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
10 varargin = repmat({{0,1}}, [1 length(m)]); |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
11 end |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
12 |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
13 if length(m) ~= length(varargin) |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
14 error('grid:lebedev2d:NonMatchingParameters','The number of provided dimensions do not match.') |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
15 end |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
16 |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
17 for i = 1:length(m) |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
18 if ~iscell(varargin{i}) || numel(varargin{i}) ~= 2 |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
19 error('grid:lebedev2d:InvalidLimits','The limits should be cell arrays with 2 elements.'); |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
20 end |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
21 |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
22 if varargin{i}{1} > varargin{i}{2} |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
23 error('grid:lebedev2d:InvalidLimits','The elements of the limit must be increasing.'); |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
24 end |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
25 end |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
26 |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
27 g_logic = grid.lebedev2d(m, varargin{:}); |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
28 |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
29 gu1_logic = g_logic.gridGroups{1}{1}; |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
30 gu2_logic = g_logic.gridGroups{1}{2}; |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
31 gs1_logic = g_logic.gridGroups{2}{1}; |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
32 gs2_logic = g_logic.gridGroups{2}{2}; |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
33 |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
34 gu1 = grid.Curvilinear(mapping, gu1_logic.x{1}, gu1_logic.x{2}); |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
35 gu2 = grid.Curvilinear(mapping, gu2_logic.x{1}, gu2_logic.x{2}); |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
36 gs1 = grid.Curvilinear(mapping, gs1_logic.x{1}, gs1_logic.x{2}); |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
37 gs2 = grid.Curvilinear(mapping, gs2_logic.x{1}, gs2_logic.x{2}); |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
38 |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
39 gu = {gu1, gu2}; |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
40 gs = {gs1, gs2}; |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
41 |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
42 dim = 2; |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
43 g = grid.Staggered(dim, gu, gs); |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
44 |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
45 g.logic = g_logic; |
8aa0909125a4
Add support for plotting and evaluating on curvilinear multiblock staggered grids
Martin Almquist <malmquist@stanford.edu>
parents:
diff
changeset
|
46 end |