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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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