rbmatlab  1.16.09
 All Classes Namespaces Files Functions Variables Modules Pages
Namespaces | Classes
Greedy Namespace Reference

Detailed Description

Customizable implementation of an abstract greedy algorithm.

Implementations

The default implementation of a greedy basis generation algorithm is implemented by GreedyBasisGeneration. Depending on the extension object used to initialize a GreedyBasisGeneration object, it can produce

See Greedy.Plugin for a detailed description of the possible extension classes.

The default greedy basis generation algorithm can be extended in a modular way by (Meta-) basis generation classes.

(Meta-) basis generation classes

(Meta-) basis generation can be used to refine the generation of the reduced bases or combine several generation algorithms in a generic way.

At the moment the following Meta classes are implemented:

Detailed data container

Greedy.Interface implementations usually store their generated reduced bases in a tree-like data structure fulfilling the Greedy.DataTree.Detailed.INode interface. All nodes have information properties which can be changed by the methods defined in Greedy.DataTree.Info.

Example usage (Quickstart)

In order to create a reduced basis one first needs to obtain a model structure and a suitable ReducedModel, e.g. for a linear evolution model

model_descr = convdiff_model();
[dmodel,rmodel] = gen_models(model_descr);

Afterwards, one needs to specify the extension algorithm, in this case it is a standard rb extension algorithm

rb_plugin = Greedy.Plugin.POD(rb_gen);

The first line of the previous code block instantiates a SnapshotsGenerator.Trajectories object which is used to initiate the detailed simulations and cache their results on the harddrive. See SnapshotsGenerator for more details on this topic.

Now, we can instantiate the reduced basis generation algorithm after specifying the training parameter set, an optional validation parameter set, and adjusting the termination condition for the maximum error indicator.

M_train = ParameterSampling.Uniform(5); % 5 grid cells in each dimension
M_val = ParameterSampling.Random(10, 12345); % 10 randomly chosen parameters with random seed '12345'
pod_greedy = Greedy.Algorithm(rb_ext, M_train, M_val);
pod_greedy.stop_epsilon = 1e-4;

In the end, the basis generation can then be started by

detailed_data = gen_detailed_data(pod_greedy);

Of course the above code is executed automatically by the LinEvol.DetailedData class. Some parts of the created basis generation object can be controlled by options defined by a BasisGenDescr structure as a second argument to gen_default_models().

Namespaces

 DataTree
 DataTree implementation for generated detailed and reduced data
 
 Info
 Information objects generated throught Greedy execution.
 
 Plugin
 Specialization plugins for the greedy algorithm.
 
 User
 Interface classes to be implemented by the Greedy.Algorithm user.
 

Classes

class  Algorithm
 default greedy basis generation class More...
 
class  Checkpoint
 Helper class used to store and restore data tree objects at specified checkpoints. More...
 
class  Combined
 combines two or more instances of a Greedy.Interface class by executing them subsequently. More...
 
class  EiTpart
 
class  Interface
 Interface class for all kind of reduced basis generation algorithms More...
 
class  MetaInterface
 
class  TrainingSetAdaptation
 greedy basis generation extension which adaptively refines the trainings parameter set. More...