rbmatlab  1.16.09
 All Classes Namespaces Files Functions Variables Modules Pages
neumann_values_zero.m
1 function FNneu = neumann_values_zero(glob,U,normals,params)
2 %function FNneu = neumann_values_zero(glob,U,normals,params)
3 %
4 % function computing neuman-values by pointwise evaluation.
5 %
6 % glob: columnwise coordinate vectors of global points to be evaluated
7 % Uneu: columnwise U values in points in case of a u-dependent flux
8 % normals: Columnwise corresponding unit normal vectors
9 %
10 % FNneu = 0, arguments except glob may be ignored
11 %
12 % Function supports affine decomposition, i.e. different operation modes
13 % guided by optional field decomp_mode in params. See also the
14 % contents.txt for general explanation
15 
16 % Bernard Haasdonk 3.9.2009
17 
18 % determine affine_decomposition_mode as integer
19 % glob column check
20 % normals column check
21 if params.debug
22  if ~isempty(normals) && size(glob,1) < size(glob,2)
23  warning('coordinates in variable normals are given row-wise, but expected them to be column-wise');
24  if params.debug > 2
25  keyboard;
26  end
27  end
28 end
29 if params.debug
30  if ~isempty(glob) && size(glob,1) < size(glob,2)
31  warning('coordinates in variable glob are given row-wise, but expected them to be column-wise');
32  if params.debug > 2
33  keyboard;
34  end
35  end
36 end
37 decomp_mode = params.decomp_mode;
38 
39 if decomp_mode == 2
40  % cannot detect, whether any points will be available later,
41  % so at least one component must be available.
42  FNneu = 0;
43 elseif decomp_mode == 1
44  % cannot detect in mode 2, whether any points will be available later,
45  % so at least one component must be available.
46  FNneu = {[]};
47 elseif decomp_mode == 0
48  FNneu = zeros(size(glob,1),1);
49 else
50  error('unknown decomposition mode');
51 end;
52 %| \docupdate