Mercurial > repos > public > sbplib
comparison +multiblock/DefCurvilinear.m @ 1336:0666629aa183 feature/D2_boundary_opt
Add methods for creating grids with different grid point distributions for each coordinate direction, and also supports constructing periodic grids
author | Vidar Stiernström <vidar.stiernstrom@it.uu.se> |
---|---|
date | Fri, 13 May 2022 13:26:16 +0200 |
parents | 60c875c18de3 |
children |
comparison
equal
deleted
inserted
replaced
1335:8d9fc7981796 | 1336:0666629aa183 |
---|---|
50 % Additional arguments: order, stencil option | 50 % Additional arguments: order, stencil option |
51 function g = getGrid(obj, ms, varargin) | 51 function g = getGrid(obj, ms, varargin) |
52 % If a scalar is passed, defer to getGridSizes implemented by subclass | 52 % If a scalar is passed, defer to getGridSizes implemented by subclass |
53 % TODO: This forces the interface of subclasses. | 53 % TODO: This forces the interface of subclasses. |
54 % Should ms be included in varargin? Figure out bow to do it properly | 54 % Should ms be included in varargin? Figure out bow to do it properly |
55 if length(ms) == 1 | 55 if ~iscell(ms) && length(ms) == 1 |
56 ms = obj.getGridSizes(ms); | 56 ms = obj.getGridSizes(ms); |
57 end | 57 end |
58 | |
59 if isempty(varargin) || strcmp(varargin{1},'equidist') | 58 if isempty(varargin) || strcmp(varargin{1},'equidist') |
60 gridgenerator = @(blockMap,m) grid.equidistantCurvilinear(blockMap, m); | 59 gridgenerator = @(blockMap,m) grid.equidistantCurvilinear(blockMap, m); |
61 elseif strcmp(varargin{1},'boundaryopt') | 60 elseif strcmp(varargin{1},'boundaryopt') |
62 order = varargin{2}; | 61 order = varargin{2}; |
63 stenciloption = varargin{3}; | 62 stenciloption = varargin{3}; |
64 gridgenerator = @(blockMap,m) grid.boundaryOptimizedCurvilinear(blockMap,m,{0,1},{0,1},... | 63 gridgenerator = @(blockMap,m) grid.boundaryOptimizedCurvilinear(blockMap,m,{0,1},{0,1},... |
65 order,stenciloption); | 64 order,stenciloption); |
66 else | 65 elseif strcmp(varargin{1},'general') |
67 error('No grid type supplied!'); | 66 gridgenerator = @(blockMap,m) grid.generalCurvilinear(blockMap,m,{0,1},{0,1},varargin{2:end}); |
68 end | 67 else |
69 grids = cell(1, obj.nBlocks); | 68 error('No grid type supplied!'); |
70 for i = 1:obj.nBlocks | 69 end |
70 grids = cell(1, obj.nBlocks); | |
71 for i = 1:obj.nBlocks | |
71 grids{i} = gridgenerator(obj.blockMaps{i}.S, ms{i}); | 72 grids{i} = gridgenerator(obj.blockMaps{i}.S, ms{i}); |
72 end | 73 end |
73 | 74 |
74 g = multiblock.Grid(grids, obj.connections, obj.boundaryGroups); | 75 g = multiblock.Grid(grids, obj.connections, obj.boundaryGroups); |
75 end | 76 end |
76 | 77 |
77 function g = getLebedevGrid(obj, varargin) | 78 function g = getLebedevGrid(obj, varargin) |