File: AnalyseMesh.m

package info (click to toggle)
openems 0.0.35%2Bgit20190103.6a75e98%2Bdfsg.1-3.2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 8,544 kB
  • sloc: cpp: 40,417; python: 2,028; yacc: 580; makefile: 459; lex: 350; sh: 176; ruby: 19
file content (42 lines) | stat: -rw-r--r-- 1,090 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
function results = AnalyseMesh(lines)
% function results = AnalyseMesh(lines)
%
%   Analyse a given mesh line vector
%
% output structure:
%   results.numLines:       number of lines
%   results.max_res:        max. resolution found
%   results.min_res:        min. resolution found
%   results.max_ratio:      max. grading ratio found
%   results.homogeneous:    true/false for homogeneous mesh
%   results.symmetric:      true/false for symmetric mesh
%
% CSXCAD matlab interface
% -----------------------
% author: Thorsten Liebig (C) 2012

results = [];

lines = sort(unique(lines));

if (numel(lines)<=1)
    warning('CSXCAD:AnalyseMesh', 'more than one line needed to analyse mesh');
end

diff_lines = diff(lines);

results.numLines = numel(lines);

results.max_res = max(diff_lines);
results.min_res = min(diff_lines);
if (results.max_res==results.min_res)
    results.homogeneous = 1;
else
    results.homogeneous = 0;
end

results.symmetric = CheckSymmtricLines(lines);

ratio_lines = diff_lines(1:end-1)./diff_lines(2:end);

results.max_ratio = max([ratio_lines 1./ratio_lines]);