1 function [A, r] = comsol_ThermalBlock3D_operators(model,model_data)
2 %
function [A, r] = comsol_ThermalBlock3D_operators(model,model_data)
4 %
function returns the operators of the comsol thermal block model with
5 % affine decomposition!
7 % Oliver Zeeb, 25.08.2012
10 switch model.decomp_mode
12 case 0 % full matrices!
13 warning(
'decomp_mode 0 NOCH TESTEN!!!');
16 cmodel = model_data.comsol_model;
17 cmodel.sol(
'sol1').feature(
'v1').set(
'scalemethod',
'none');
18 cmodel.sol(
'sol1').feature(
's1').active(
false);
20 str = mphmatrix(cmodel,
'sol1',
'Out',{
'K',
'L'});
23 cmodel.sol(
'sol1').feature(
'v1').set(
'scalemethod',
'auto');
24 cmodel.sol(
'sol1').feature(
's1').active(
true);
25 if model.comsol_get_eliminated_data
26 A = A(model_data.ind_vectors.com_DOF_ind,model_data.ind_vectors.com_DOF_ind);
27 r = r(model_data.ind_vectors.com_DOF_ind);
32 mu_old = get_mu(model);
33 cmodel = model_data.comsol_model;
34 cmodel.sol(
'sol1').feature(
'v1').set(
'scalemethod',
'none');
35 cmodel.sol(
'sol1').feature(
's1').active(
false);
36 A=cell(1,length(mu_old));
37 for k = 1:length(mu_old)
38 mu = zeros(length(mu_old),1);
40 model = set_mu(model,mu);
41 cmodel = comsol_set_mu_from_rbmatlab_model(model,cmodel);
42 cmodel.sol('sol1').feature('s1').active(false);
43 str = mphmatrix(cmodel,'sol1','Out',{
'K',
'L'},
'initmethod',
'init',
'initsol',
'zero');
49 if model.comsol_get_eliminated_data %cut the matrices -->
return eliminated matrices!
51 A{k} = A{k}(model_data.ind_vectors.com_DOF_ind,model_data.ind_vectors.com_DOF_ind);
54 r{k} = r{k}(model_data.ind_vectors.com_DOF_ind);
58 model=set_mu(model,mu_old);
59 cmodel = comsol_set_mu_from_rbmatlab_model(model,cmodel);
60 cmodel.sol(
'sol1').feature(
'v1').set(
'scalemethod',
'auto');
61 cmodel.sol(
'sol1').feature(
's1').active(
true);
68 error(
'unknown decomp_mode')
71 else % use only matlab, i.e. saved matrices!
72 switch model.decomp_mode
74 warning('decomp_mode 0 not yet implemented (because unneeded!!!)')
77 if model.comsol_get_eliminated_data %return eliminated data
78 A = model_data.operators.A_comp_eliminated;
79 r = model_data.operators.f_comp_eliminated;
80 else %return full data
81 A = model_data.operators.A_comp_full;
82 r = model_data.operators.f_comp_full;
88 error('unknown decomp_mode')