4 % Demo of SCM (infsup constant)
7 % David Kreplin 05.01.2015
13 % model.gen_model_data=@lin_stat_gen_model_data;
14 % model_data = model.gen_model_data(model);
15 % params.dirichlet_gids = model_data.df_info.dirichlet_gids;
19 params.mesh_number = 1;
21 model.has_nonlinearity = 0;
22 model_data = model.gen_model_data(model);
23 params.dirichlet_gids = model_data.bc_info.dirichlet_gids;
28 operator=@ (model) model.operators(model,model_data);
29 innerproduct_matrix = model.get_inner_product_matrix(model_data);
31 params.dirichlet_gids = model_data.bc_info.dirichlet_gids;
34 params.NumberOfParameters = 500;
36 params.max_iterations=10;
41 SCM_data = SCM(model, params, operator,innerproduct_matrix);
42 %alternative (see documentation): SCM_data = SCM(model, params, model_data);
46 innerproduct_matrix = remove_dirichlet(innerproduct_matrix,0,params.dirichlet_gids);
47 fprintf('Results:\ninfsup constant upper bound lower bound (scm infsup constant)\n');
49 mu = rand_uniform(1,model.mu_ranges);
50 model = set_mu(model,mu);
52 [A,~] = model.operators(model,model_data);
53 A=remove_dirichlet(A,0,params.dirichlet_gids );
54 [v,d] = fast_eigs(A'*(innerproduct_matrix'\A),innerproduct_matrix,'sm');
56 alpha_UB = SCMonline(mu,model,operator,SCM_data,'ub');
57 alpha_LB = SCMonline(mu,model,operator,SCM_data,'lb');
59 fprintf('%f %f %f\n',infsup,alpha_UB,alpha_LB);
61 rmserror = rmserror+(infsup-alpha_LB)^2;
62 maderror = maderror + abs(infsup-alpha_LB);
64 rmserror = sqrt(rmserror/20)
65 maderror = maderror/20
74 function A=remove_dirichlet(A,mode,I)
function descr = thermalblock_model_hp(params)
Thermal Block example similar as described in the book of A.T. patera and G. Rozza (just one paramete...
function model = laminar_flow_model(params)
Model of laminar flow (steady Navier-Stokes) around cylinder in a pipe.
function scm_infsup_demo()
scm_infsup_demo()