rbmatlab  1.16.09
 All Classes Namespaces Files Functions Variables Modules Pages
fv_search_max_lxf_lambda.m
1 function max_lambda = fv_search_max_lxf_lambda(grid,params)
2 %function max_lambda = fv_search_max_lxf_lambda([grid],params)
3 %
4 % function trying various values for mu and determining the lambdas
5 % of the corresponding flux. This value needs to be set for
6 % params.lxf_lambda in simulations.
7 %
8 % if grid is empty, it is generated by grid_geometry
9 %
10 % 100 random mu are generated
11 %
12 % required fields of params:
13 % mu_names : cell array of names of the parameter components
14 % mu_ranges : cell array of [min max] ranges for the mu-components
15 
16 % Bernard Haasdonk 23.7.2006
17 
18 max_lambda = -1;
19 
20 if isempty(grid)
21  grid = construct_grid(params);
22 end;
23 
24 for loops = 1:100
25 
26  % choose random mu in allowed interval
27  mu = rand(length(params.mu_names),1);
28  for i = 1:length(params.mu_names)
29  mu(i) = mu(i)*params.mu_ranges{i}(1) + ...
30  (1-mu(i))*params.mu_ranges{i}(2);
31  end;
32  params = set_mu(mu,params);
33 
34  params.affine_decomp_mode = 'complete';
35  f = fv_conv_flux_matrix(ones(size(grid.CX)),grid,params);
36 
37  if params.verbose >= 9
38  disp(['mu = [',num2str(mu(:)'),'] => lambda = ',num2str(f.lambda)]);
39  end;
40 
41  if f.lambda> max_lambda
42  max_lambda = f.lambda;
43  if params.verbose>=9
44  disp(['current maximum lambda = ',num2str(max_lambda)]);
45  end;
46  end;
47 
48 end;
49 
50 
51 % TO BE ADJUSTED TO NEW SYNTAX
52 %| \docupdate
function [ flux_mat , lambda ] = fv_conv_flux_matrix(model, model_data, U, conv_flux_ptr)
function computing the flux matrix of a convection problem. simply reformatting the grid data suitabl...