rbmatlab  1.13.10
 All Classes Namespaces Files Functions Variables Groups Pages
RBmatlab presentation 10.10.2011

Outline

  1. (New) object-oriented RBmatlab order of commands
  2. (Repetition of) high-dimensional problem implementation
  3. New object-oriented Greedy algorithms:
  4. Further improvements

Examples

Order of commands

dmodel = gen_detailed_model(descr);
model_data = gen_model_data(dmodel);
sim_data = dmodel.detailed_simulation(model_data);
plot_sim_data(dmodel, model_data, sim_data);
rmodel = gen_reduced_model(dmodel);
detailed_data = gen_detailed_data(rmodel, model_data);
reduced_data = gen_reduced_data(rmodel, detailed_data);
rb_sim_data = rb_simulation(rmodel, reduced_data);
rb_sim_data = rb_reconstruction(rmodel, detailed_data, rb_sim_data);
plot_sim_data(rmodel, model_data, rb_sim_data);

Snapshot generators

params.model_size = 'small';
descr = newton_oo_model(params);
descr.verbose = 10;
dmodel = gen_detailed_model(descr);
sg = SnapshotsGenerator.Trajectories(dmodel, 'rb');
model_data = gen_model_data(dmodel);
U = sg.generate(dmodel, model_data);
U = sg.generate(dmodel, model_data);
descr.xnumintervals = 80;
dmodel = gen_detailed_model(descr);
sg = SnapshotsGenerator.Trajectories(dmodel, 'rb');
model_data = gen_model_data(dmodel);
U = sg.generate(dmodel, model_data);
op_gen = SnapshotsGenerator.SpaceOpEvals(dmodel, 'implicit', sg, descr.L_I_local_ptr);
LU = op_gen.generate(dmodel, model_data);

Greedy algorithms

Abstract greedy algorithm:
x-greedy.png
X-greedy
POD-greedy algorithm:
pod-greedy.png
POD-greedy
EI-greedy algorithm:
ei-greedy.png
PODEI-greedy algorithm:
podei-greedy.png

EI greedy plugin

descr = minimal_ei_model
bg_descr.rb_problem_type = 'Test';
bg_descr.detailed_data_constructor = @Test.DetailedData;
bg_descr.reduced_data_constructor = @Test.ReducedData;
dmodel = LinEvol.DetailedModel(descr);
M_train = ParameterSampling.Random(5);
rb_generator = SnapshotsGenerator.Random(dmodel);
ei_gen1 = SnapshotsGenerator.SpaceOpEvals(dmodel, 'implicit', rb_generator, descr.L_I_local_ptr);
ei_plugin = Greedy.Plugin.EI(ei_gen1);
ei_plugin.stop_Mmax = 200;
ei_greedy = Greedy.Algorithm(ei_plugin, M_train);
bg_descr.bg_algorithm = ei_greedy;
rmodel = Test.ReducedModel(dmodel, bg_descr);
model_data = gen_model_data(dmodel);
detailed_data = gen_detailed_data(rmodel, model_data);
ei_gen2 = SnapshotsGenerator.SpaceOpEvals(dmodel, 'explicit', rb_generator, descr.L_I_local_ptr);
ei_gen_sum = ei_gen1 + ei_gen2;
ei_plugin_sum = Greedy.Plugin.EI(ei_gen_sum);
ei_plugin_sum.stop_Mmax = 200;
ei_greedy2 = Greedy.Algorithm(ei_extension2, M_train);
bg_descr.bg_algorithm = ei_greedy2;
rmodel2 = Test.ReducedModel(dmodel, bg_descr);
detailed_data2 = gen_detailed_data(rmodel2, model_data);