1 function init_values = comsol_get_init_values(model,detailed_data)
2 %
function init_values = comsol_get_init_values(model,detailed_data)
4 %
function extracting the init_values from a comsol model. After an
5 % time-dependend simulation, these values have to be added to the solution.
6 % This is due to the way COMSOL assembles the matrices!
10 %disp(
'comsol_get_init_values --> my_init_values!!! decomp_mode sauber implementieren!!!');
12 switch model.decomp_mode
14 init_values = mphgetu(detailed_data.comsol_model,
'solnum',1);
15 init_values = init_values(detailed_data.ind_vectors.com_DOF_ind);
17 init_values = mphgetu(detailed_data.comsol_model,
'solnum',1);
18 init_values = {init_values(detailed_data.ind_vectors.com_DOF_ind)};
19 %cut off the DBC_DOFs and put everything in a cell
23 else %~model.use_comsol
24 switch model.decomp_mode
26 disp(
'decomp_mode 0 not yet implemented');
29 model.decomp_mode = 1;
30 [L_I_comp, ~, b_comp] = model.operators_ptr(model,detailed_data);
31 model.decomp_mode = 2;
32 [L_I_coeff, ~, b_coeff] = model.operators_ptr(model,detailed_data);
33 L_I = lincomb_sequence(L_I_comp, L_I_coeff);
34 b = lincomb_sequence(b_comp, b_coeff);
35 init_values = detailed_data.ind_vectors.Null*(L_I \ b) ;
36 if model.comsol_get_eliminated_data
37 init_values = init_values(detailed_data.ind_vectors.com_DOF_ind);
39 init_values = {init_values};