Interface for the storage and generation of detailed data that can be used to build reduced basis functions.
Via the generate() method, detailed data for exactly one parameter can vector be generated and is returned. Usually, this data needs to be postprocessed afterwards. E.g. in case of reduced basis generation for evolution equations, a Cached instance could produce a detailed solution trajectory for the specified parameter and by applying a POD algorithm on this trajectory a single basis vector is extracted for basis extension.
The generate method uses caching facilities to prevent data generation twice.
Furthermore, the class provides methods to prepare and store solutions before-hand. This can be used in to compare reduced and detailed approximations for the entire training or validation set M
.
Public Member Functions | |
Cached (IDetailedModel dmodel, id, force_delete, enable_caching) | |
constructor for the detailed generator | |
function | clear_cachedirectory () |
clears the directory containing the cached mat-files | |
function | assert_model_is_consistent (IDetailedModel dmodel, comparemodel) |
throws an inconsistency error if the the current IDetailedModel object and the one stored on the harddrive differ. | |
function [
detailed_sample , tictoc , opt_fields ] = | generate (IDetailedModel dmodel,IDetailedData detailed_data, fields) |
generates a detailed data sample for a specific parameter using caching facilities | |
function | prepare (IDetailedModel dmodel,IDetailedData detailed_data, M) |
precompute detailed data for all parameters given by M. | |
function IDetailedModel dmodel = | get_underlying_model () |
returns the detailed model stored on the harddrive with which the snaphshots were generated. | |
Public Attributes | |
idname | |
unique name created from the IDs as given to the constructor. | |
id | |
string identifier for this generator | |
enable_caching = true | |
boolean flag indicating whether caching is enabled. | |
model_name = "default" | |
name id of DetailedModel | |
force_delete = true | |
boolean value indicating whether the cached data shall be automatically deleted if its inconsistent with the given dmodel . | |
countdown = 5 | |
seconds to wait before cached data is deleted automatically in case of inconsistent models. | |
is_valid | |
checks whether the basis generator points to a valid directory | |
Protected Member Functions | |
virtual function [ U , opt_fields ] = | generate_impl (IDetailedModel dmodel,IDetailedData detailed_data, fields) |
generates a sample trajectory or detailed simulation item from which a new basis function can be generated. | |
Static Protected Member Functions | |
static function
hashcode = | hashcode (IDetailedModel dmodel) |
this is a very simple hash code, generating an md5 hash out of the current parameter vector. | |
SnapshotsGenerator.Cached.Cached | ( | IDetailedModel | dmodel, |
id, | |||
force_delete, | |||
enable_caching | |||
) |
constructor for the detailed generator
dmodel | object specifying how the high dimensional data can be computed. |
id | an identifier string or a cell array of identifier strings. |
force_delete | boolean value indicating whether the cached data shall be automatically deleted if its inconsistent with the given dmodel . (Default = true ) |
enable_caching | boolean value indicating whether the generated data shall be stored in a cache. (Default = true ) |
descr.name —
descr.name debug —
debug function SnapshotsGenerator.Cached.assert_model_is_consistent | ( | IDetailedModel | dmodel, |
comparemodel | |||
) |
throws an inconsistency error if the the current IDetailedModel object and the one stored on the harddrive differ.
dmodel | object specifying how the high dimensional data can be computed. |
comparemodel | comparemodel |
function [ detailed_sample , tictoc , opt_fields ] = SnapshotsGenerator.Cached.generate | ( | IDetailedModel | dmodel, |
IDetailedData | detailed_data, | ||
fields | |||
) |
generates a detailed data sample for a specific parameter using caching facilities
Internally this method calls the engine method generate_impl() if the result cannot be read from the harddrive cache.
dmodel | object specifying how the high dimensional data can be computed. |
detailed_data | object defining the basis generation algorithm and storage for storing high dimensional data, i.e. dependent on dimension \(H\). This data is necessary for detailed simulations, construction of online matrices, reduced_data and reconstruction of reduced simulations. |
fields | cell array of structure field names which shall also be stored in the cache in the opt_fields structure. If not given only the detailed_sample is generated. |
detailed_sample | This is usually a matrix with DOF vector columns holding the generated snapshots. |
tictoc | time needed to compute the snapshots. |
opt_fields | optional fields to be cached. |
debug —
debug
|
protectedpure virtual |
generates a sample trajectory or detailed simulation item from which a new basis function can be generated.
fields | cell array of structure field names which shall also be stored in the cache in the opt_fields structure. If not given only the U is generated. |
dmodel | object specifying how the high dimensional data can be computed. |
detailed_data | object defining the basis generation algorithm and storage for storing high dimensional data, i.e. dependent on dimension \(H\). This data is necessary for detailed simulations, construction of online matrices, reduced_data and reconstruction of reduced simulations. |
U | a matrix with DOF vector columns holding the generated snapshots. |
opt_fields | optional fields to be cached. |
Implemented in SnapshotsGenerator.SpaceOpEvals, SnapshotsGenerator.Random, and SnapshotsGenerator.Trajectories.
function IDetailedModel dmodel = SnapshotsGenerator.Cached.get_underlying_model | ( | ) |
|
staticprotected |
this is a very simple hash code, generating an md5 hash out of the current parameter vector.
The default implementation of this function simply computes an MD5 hash out of the parameter vector;
dmodel | object specifying how the high dimensional data can be computed. |
hashcode | hashcode |
function SnapshotsGenerator.Cached.prepare | ( | IDetailedModel | dmodel, |
IDetailedData | detailed_data, | ||
M | |||
) |
precompute detailed data for all parameters given by M.
dmodel | object specifying how the high dimensional data can be computed. |
detailed_data | object defining the basis generation algorithm and storage for storing high dimensional data, i.e. dependent on dimension \(H\). This data is necessary for detailed simulations, construction of online matrices, reduced_data and reconstruction of reduced simulations. |
M | M |
num_cpus —
num cpus SnapshotsGenerator.Cached.countdown = 5 |
SnapshotsGenerator.Cached.enable_caching = true |
boolean flag indicating whether caching is enabled.
SetAccess = Private, GetAccess = Public
SnapshotsGenerator.Cached.force_delete = true |
SnapshotsGenerator.Cached.id |
string identifier for this generator
SetAccess = Private, GetAccess = Public
SnapshotsGenerator.Cached.idname |
unique name created from the IDs as given to the constructor.
Dependent
set to true. SnapshotsGenerator.Cached.is_valid |
checks whether the basis generator points to a valid directory
Dependent
set to true. SnapshotsGenerator.Cached.model_name = "default" |
name id of DetailedModel
SetAccess = Private, GetAccess = Public