KerMor  0.9
Model order reduction for nonlinear dynamical systems and nonlinear approximation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
KerMor Class Reference

Global configuration class for all KerMor run-time settings. More...

Detailed Description

Global configuration class for all KerMor run-time settings.

Software documentation can be found at http://www.morepas.org/software/kermor/index.html

Any KerMor developers should check out the pages KerMor Development for coding guidelines and conventions.

Author
Daniel Wirtz
Date
2011-03-04
New in 0.9:
(Daniel Wirtz, 2015-08-11) Published the implementations for native support of second order systems and their reduction.
New in 0.8:
(Daniel Wirtz, 2014-04-09) Started KerMor 0.8 and introduced a new file structure and git submodules. Most importantly, the core files are now separated from the already existing models in KerMor.
Change in 0.7:
(Daniel Wirtz, 2014-01-17) Removed the Flag "UseMatlabParallelComputing" as this should/must be set up separately on each machine. Instead, manually opening the matlabpool is required. Moreover, the flags models.BaseFullModel.ComputeParallel are used to determine the way of execution.
Change in 0.7:
(Daniel Wirtz, 2013-07-09) Removed the TempDirectory as customizable property and simply using "DataDirectory/tmp" now.
Change in 0.7:
(Daniel Wirtz, 2013-01-23) Done some restructuring in KerMor
  • Removed thee QP-Solver packages and extern/ folders as they are effectively no longer used
  • Removed associated tests
  • Moved the ODE solvers from solvers.ode to solvers
  • Moved the IClassConfig interface to +general
  • Adopted the KerMor install script to the changes
  • Removed two no longer used approx.algorithms classes (MinMax and VectorialOMP2Step)
Change in 0.7:
(Daniel Wirtz, 2012-11-16)
  • Moved some tools from the extern folder into a new separate git repo "MatlabTools", including the previous general.collections package
  • Changed the warning for missing mosek quadprog
  • Adjusted the directories that are being added to PATH at startup
New in 0.7:
(Daniel Wirtz, 2012-11-07) Started KerMor 0.7 to congratulate President Obama for his re-election :-)
New in 0.6:
(Daniel Wirtz, 2012-05-3) Added a getGitBranch function to easily access the current branch. This is intended to be helpful on figuring out under which commit a certain simulation was run (and saved)
Change in 0.6:
(Christoph Strohmeyer, 2011-12-05) Removed external folders from PATH (supervised by dw)
Change in 0.6:
(Daniel Wirtz, 2011-11-21) Implemented fake loadobj and saveobj methods so that accidential storing of KerMor instances inside save files does not corrupt the KerMor app singleton.
New in 0.6:
(Daniel Wirtz, 2011-11-14) Included dbstop if error in the KerMor start script. No more lost data! :-)
New in 0.6:
(Daniel Wirtz, 2011-11-09) Started KerMor Version 0.6
Change in 0.5:
(Daniel Wirtz, 2011-11-08)
  • Renamed "install" to "setup".
  • Removed the initDirectories method and moved them to the setup.
  • Upon subsequent calls to setup, KerMor asks if to keep previously set values for rbmatlab of JKerMor paths.
Change in 0.5:
(Daniel Wirtz, 2011-11-08) Changed the name of the install method to setup and refactored the setup routine. Now using the new mtoc++ MatlabDocMaker and running setup again does propose previously set values as first guess.
Change in 0.5:
(Daniel Wirtz, 2011-10-13) Moved all documentation related stuff to an own class "MatlabDocMaker" (now hidden from docs as in extern folder).
New in 0.5:
(Daniel Wirtz, 2011-08-04) Added flag UseDPCM to switch the default property changed system on/off.
Change in 0.5:
(Daniel Wirtz, 2011-07-28) Setting the DefaultFigurePosition at runtime now directly changes the root setting (so far only upon restart of KerMor/Matlab)
Change in 0.5:
(Daniel Wirtz, 2011-07-07) New property DefaultFigurePosition.
Change in 0.5:
(Daniel Wirtz, 2011-06-20) Started KerMor version 0.5
Change in 0.4:
(Daniel Wirtz, 2011-05-03)
  • Committed KerMor version 0.3 to GIT.
  • Different documentation creation subroutines for unix and windows now, windows not supported yet
  • Version Number now gets passed to the documentation creation script
New in 0.3:
(Daniel Wirtz, 2011-04-26) Added a new property DocumentationLocation.
Change in 0.3:
(Syed Ammar, 2011-04-14) Implemented UseMatlabParallelComputing functionality
Change in 0.3:
(Daniel Wirtz, 2011-04-12)
  • Included the setup script for Devel in the installation procedure.
  • Added new properties MainVersion and SubVersion to this class for global versioning.
New in 0.3:
(Daniel Wirtz, 2011-04-05) Added a new property KerMor.DesktopLayout. As with KDE4 matlab seems to start with a pretty random layout this property enables the developer to specify a (previously saved) desktop layout to be associated with KerMor.
Change in 0.3:
(Daniel Wirtz, 2011-03-22) Modified the GIT repository so that branches now reflect the KerMor versions.
Change in 0.2:
(Daniel Wirtz, 2011-03-21) Nicer color output for the KerMor.createDocs command and the log file is printed directly in MatLab.
New in 0.2:
(Daniel Wirtz, 2011-03-17) Added the fields KerMor.Hasrbmatlab and KerMor.rbmatlabDirectory. This allows to register a copy of rbmatlab located at the rbmatlabDirectory with KerMor. Without having setup this directory any models.rbmatlab classes will not work correctly.
Change in 0.2:
(Daniel Wirtz, 2011-03-09) Included a developer key parameter into the '@new' and '@change{0' tags to create a link to the author of the new features or changes.
New in 0.2:
(Daniel Wirtz, 2011-03-09)
  • Added installation routines for unix systems. Now one can download the sources from a git repository and simply call KerMor.install to prepare the environment & compile any included mex files.
  • Added a KerMor.createDocs static method to create the documentation from within the matlab environment.
New in 0.2:
(Daniel Wirtz, 2011-03-08) Created a new Doxygen keyword '@new' for new feature versioning lists
Change in 0.2:
(Daniel Wirtz, 2011-03-04) Moved startup and shutdown functions into this class
Change in 0.1:
(Daniel Wirtz, undated) Initial version.
New in 0.1:
(Daniel Wirtz, undated) Initial version.

Definition at line 17 of file KerMor.m.

Static Public Member Functions

static function KerMor
theinstance = 
App ()
 The singleton KerMor instance. More...
 
static function  setup ()
 Performs installation of KerMor on a system. More...
 
static function KerMor
app = 
start ()
 Starts the KerMor application. More...
 
static function  stop ()
 Ends the KerMor application. More...
 
static function host = getHost ()
 Returns the hostname of the current machine. More...
 
static function b = getGitBranch (dir)
 Returns the current git commit in a descriptive string. More...
 
static function char d = DocumentationLocation ()
 Returns the location of the kermor documentation. More...
 
static function  createLogo ()
 Creates the KerMor logo. More...
 
static function tag = getPrefTag ()
 Returns the tag used to store the KerMor preferences and settings. More...
 
static function d = getDir ()
 Returns a folder selected by a uigetdir command. Remembers the last selected folder (if successful & existing) More...
 

Public Attributes

char DataDirectory
 The directory to use for simulation data storage. More...
 
logical UseDPCM
 Switch to determine if the Default Property Changed System shall be used or not. More...
 
double BlockSize
 The default block size (in MB) for FileMatrix instances. More...
 
char DesktopLayout = ""
 The preferred desktop layout to work with. More...
 
char rbmatlabDirectory = ""
 The source directory for a copy of rbmatlab. More...
 
char JKerMorSourceDirectory = ""
 The source directory for JKerMor, if available. More...
 
integer Verbose = "[]"
 Verbose output level. More...
 
rowvec DefaultFigurePosition = "[]"
 The default figure position to use. More...
 
logical UseDiary = "[]"
 Flag that determines if KerMor also enables the diary function upon startup. More...
 
char Workspace
 The base directory where KerMor stores and looks for data from models etc. More...
 
 HomeDirectory
 The KerMor home directory. More...
 
 Hasrbmatlab = false
 Flag if rbmatlab wrapping functionalities are enabled. More...
 
char TempDirectory = ""
 The directory to use for temporary simulation data. More...
 
- Public Attributes inherited from handle
 addlistener
 Creates a listener for the specified event and assigns a callback function to execute when the event occurs. More...
 
 notify
 Broadcast a notice that a specific event is occurring on a specified handle object or array of handle objects. More...
 
 delete
 Handle object destructor method that is called when the object's lifecycle ends. More...
 
 disp
 Handle object disp method which is called by the display method. See the MATLAB disp function. More...
 
 display
 Handle object display method called when MATLAB software interprets an expression returning a handle object that is not terminated by a semicolon. See the MATLAB display function. More...
 
 findobj
 Finds objects matching the specified conditions from the input array of handle objects. More...
 
 findprop
 Returns a meta.property objects associated with the specified property name. More...
 
 fields
 Returns a cell array of string containing the names of public properties. More...
 
 fieldnames
 Returns a cell array of string containing the names of public properties. See the MATLAB fieldnames function. More...
 
 isvalid
 Returns a logical array in which elements are true if the corresponding elements in the input array are valid handles. This method is Sealed so you cannot override it in a handle subclass. More...
 
 eq
 Relational functions example. See details for more information. More...
 
 transpose
 Transposes the elements of the handle object array. More...
 
 permute
 Rearranges the dimensions of the handle object array. See the MATLAB permute function. More...
 
 reshape
 hanges the dimensions of the handle object array to the specified dimensions. See the MATLAB reshape function. More...
 
 sort
 ort the handle objects in any array in ascending or descending order. More...
 

Static Public Attributes

static const ::char MainVersion = "0"
 The current KerMor main version number. More...
 
static const ::char SubVersion = "7"
 The current KerMor sub version number. More...
 
static const ::char PrefTagPrefix = "KerMor_at_"
 The prefix for the host-dependent preference tags. More...
 

Member Function Documentation

function KerMor theinstance = KerMor.App ( )
static

The singleton KerMor instance.

Access to the main programs instance via KerMor.App!

Return values
theinstanceThe singleton instance

Definition at line 910 of file KerMor.m.

Referenced by dscomponents.AffLinCoreFun.addMatrix(), testing.Speed.BinaryvsMatSave(), approx.algorithms.AAdaptiveBase.checkStop(), data.ApproxTrainData.computeFrom(), general.POD.computePOD(), models.rbmatlab.RBMatlabModel.computeTrajectory(), models.BaseFullModel.computeTrajectory(), models.ReducedModel.createImage(), models.mathmod2012.MathMODExperiment.CreatePlots(), models.wh10.WH10Experiment.Experiment1(), JaRMoSExport.exportModel(), data.FileDataCollection.FileDataCollection(), data.FileMatrix.FileMatrix(), data.FileTrajectoryData.FileTrajectoryData(), spacereduction.PODGreedy.generateReducedSpaceImpl(), spacereduction.BaseSpaceReducer.getInitialSpace(), general.DEIM.getInterpolationPoints(), models.burgers.Tests.getMoRePasDir(), data.ABlockedData.getSVD(), BinTree.Insert(), Utils.logNorm(), data.ApproxTrainData.makeUniqueXi(), models.muscle.Model.Model(), data.ModelData.ModelData(), models.BaseFullModel.off2_genTrainingData(), models.BaseFullModel.off5_computeApproximation(), models.BaseFullModel.off6_prepareErrorEstimator(), error.DEIMEstimator.offlineComputations(), error.lipfun.ImprovedLocalSecantLipschitz.precompMaxSecants(), models.rbmatlab.RBMatlabModel.RBMatlabModel(), DPCMObject.registerProps(), data.ModelData.relocate(), MUnit.RunClassTests(), kernels.GaussKernel.setGammaForDistance(), models.rbmatlab.RBMatlabModel.simulate(), general.regression.BaseQPSVR.solve(), approx.algorithms.VKOGA.startAdaptiveExtension(), approx.algorithms.Componentwise.templateComputeApproximation(), data.FileDataCollection.test_FileDataCollection(), dscomponents.ACoreFun.test_Jacobian(), models.pcd.Tests.tests_PCD_DEIM_1D(), models.pcd.Tests.tests_PCD_DEIM_2D(), models.pcd.Tests.tests_PCD_DEIM_2D_500s(), and general.DEIM.updateOrderData().

Here is the caller graph for this function:

function KerMor.createLogo ( )
static

Creates the KerMor logo.

Definition at line 1083 of file KerMor.m.

References X, and Y.

function char d = KerMor.DocumentationLocation ( )
static

Returns the location of the kermor documentation.

Looks up the MatlabDocMaker.getOutputDirectory value and returns the default online documentation URL if no value is set.

Return values
dThe docs directory

Definition at line 1064 of file KerMor.m.

function d = KerMor.getDir ( )
static

Returns a folder selected by a uigetdir command. Remembers the last selected folder (if successful & existing)

Definition at line 1114 of file KerMor.m.

References t.

Referenced by data.FileMatrix.recoverFrom().

Here is the caller graph for this function:

function b = KerMor.getGitBranch (   dir)
static

Returns the current git commit in a descriptive string.

Definition at line 1039 of file KerMor.m.

Referenced by models.BaseModel.saveobj(), models.pcd.Tests.tests_PCD_DEIM_1D(), models.pcd.Tests.tests_PCD_DEIM_2D(), and models.pcd.Tests.tests_PCD_DEIM_2D_500s().

Here is the caller graph for this function:

function host = KerMor.getHost ( )
static

Returns the hostname of the current machine.

Definition at line 1023 of file KerMor.m.

Referenced by data.FileData.FileData(), data.FileData.getfile(), data.FileData.loadobj(), and data.FileData.relocate().

Here is the caller graph for this function:

function tag = KerMor.getPrefTag ( )
static

Returns the tag used to store the KerMor preferences and settings.

Note that the tag is machine/host-dependent. The initialization routine checks for the existence, and if none is found possible configurations from other hosts are suggested if found.

Return values
tagThe host-dependent tag used for KerMor preferences

Definition at line 1098 of file KerMor.m.

Referenced by Utils.saveFigure().

Here is the caller graph for this function:

function KerMor.setup ( )
static

Performs installation of KerMor on a system.

Adds variables to the users environment, so far only needed for the documentation creation. Custom paths for data storage are checked and set by the start script.

If no rbmatlab directory is already presently set by a previous install, the installation program asks if an rbmatlab-installation should be registered with KerMor.

See Also
installUnix installWindows

Definition at line 928 of file KerMor.m.

References handle.disp, and Devel.setup().

Here is the call graph for this function:

function KerMor app = KerMor.start ( )
static

Starts the KerMor application.

This static method initializes the environment and performs initial availability checks for e.g. 3rd party programs and matlab toolboxes.

Additionally, some path variables are tried to be read from environment variables if set. If no settings are made yet the user is prompted to select them!

Return values
appThe KerMor instance

Definition at line 988 of file KerMor.m.

function KerMor.stop ( )
static

Ends the KerMor application.

Stores some global property values in environment variables (paths) or text files (misc settings) Closes the matlab-pool for parallel computing is closed if in use.

Definition at line 1009 of file KerMor.m.

Member Data Documentation

KerMor.BlockSize

The default block size (in MB) for FileMatrix instances.

File matrices are used to store matrices that would otherwise not fit into memory entirely. Hence, they are subdivided into blocks, which are stored in the file system.

This is a machine-dependent property and should be used according to the local total memory availability.

Default: data.FileMatrix.BLOCK_SIZE

Note
This property has the MATLAB attribute Dependent set to true.
Matlab documentation of property attributes.

Definition at line 232 of file KerMor.m.

KerMor.DataDirectory

The directory to use for simulation data storage.

In this folder large simulation and model data will be stored and read by KerMor. Can be set anytime during runtime. If no value is given the KerMor.start script will ask for it.

Default: ./data

Note
This property has the MATLAB attribute Dependent set to true.
Matlab documentation of property attributes.

Definition at line 202 of file KerMor.m.

KerMor.DefaultFigurePosition = "[]"

The default figure position to use.

If none is set, KerMor does not modify the root workspace property DefaultFigurePosition upon startup.

Default: []

Note
This property has the MATLAB attribute Dependent set to true.
Matlab documentation of property attributes.

Definition at line 309 of file KerMor.m.

KerMor.DesktopLayout = ""

The preferred desktop layout to work with.

If you work with different desktop layouts or the KDE JUST DOES NOT GET IT you can save your custom desktop layout and set this property to its name. Upon start, KerMor will restore the layout for you automatically. Set to ' to disable.

Default: '

Note
This property has the MATLAB attribute Dependent set to true.
Matlab documentation of property attributes.

Definition at line 252 of file KerMor.m.

KerMor.Hasrbmatlab = false

Flag if rbmatlab wrapping functionalities are enabled.

Indicates if rbmatlab is available and initialized.

Default: false

Note
This property has the MATLAB attribute Dependent set to true.
This property has non-standard access specifiers: SetAccess = Private, GetAccess = Public
Matlab documentation of property attributes.

This function checks for a set rbmatlabDirectory and if the rbmatlab script rbmatlabhome is within the current path (=substitute for the rbmatlab startup-script being executed)

Note
[readonly]

Definition at line 370 of file KerMor.m.

KerMor.HomeDirectory

The KerMor home directory.

Note
This property has non-standard access specifiers: SetAccess = Private, GetAccess = Public
Matlab documentation of property attributes.
This property has custom functionality when its value is retrieved.

Definition at line 357 of file KerMor.m.

KerMor.JKerMorSourceDirectory = ""

The source directory for JKerMor, if available.

Sets the JKerMor source directory.

Default: '

Note
This property has the MATLAB attribute Dependent set to true.
Matlab documentation of property attributes.

Throws an exception if the path is invalid or does not contain a selected JKerMor class.

Definition at line 283 of file KerMor.m.

KerMor.MainVersion = "0"
static

The current KerMor main version number.

Change only AFTER committing the final last version's state. Used in Devel to fill the new class templates etc.

See Also
SubVersion


Default: "0"

Definition at line 155 of file KerMor.m.

KerMor.PrefTagPrefix = "KerMor_at_"
static

The prefix for the host-dependent preference tags.

See Also
getPrefTag


Default: "KerMor_at_"

Definition at line 187 of file KerMor.m.

KerMor.rbmatlabDirectory = ""

The source directory for a copy of rbmatlab.

Sets the rbmatlab source directory.

Default: []

Note
This property has the MATLAB attribute Dependent set to true.
Matlab documentation of property attributes.

Throws an exception if the path is invalid or does not contain the rbmatlab startup script.

Definition at line 270 of file KerMor.m.

KerMor.SubVersion = "7"
static

The current KerMor sub version number.

Change only AFTER committing the final last version's state. Used in Devel to fill the new class templates etc.

See Also
MainVersion


Default: "7"

Definition at line 171 of file KerMor.m.

KerMor.TempDirectory = ""

The directory to use for temporary simulation data.

Returns the directory for temporary files.

It is located in a "tmp" subfolder of the DataDirectory path. Default: DataDirectory/tmp

Note
This property has the MATLAB attribute Dependent set to true.
This property has non-standard access specifiers: SetAccess = Private, GetAccess = Public
Matlab documentation of property attributes.

It is located in a "tmp" subfolder of the DataDirectory path.

Note
[readonly]

Definition at line 384 of file KerMor.m.

KerMor.UseDiary = "[]"

Flag that determines if KerMor also enables the diary function upon startup.

For each day, a diary named [Date]_KerMor[Version]Log.txt is created inside the KerMor.TempDirectory.

Default: true

Note
This property has the MATLAB attribute Dependent set to true.
Matlab documentation of property attributes.

Definition at line 325 of file KerMor.m.

KerMor.UseDPCM

Switch to determine if the Default Property Changed System shall be used or not.

Default: false

Note
This property has the MATLAB attribute Dependent set to true.
Matlab documentation of property attributes.

Definition at line 219 of file KerMor.m.

KerMor.Verbose = "[]"

Verbose output level.

Default: 1

Note
This property has the MATLAB attribute Dependent set to true.
Matlab documentation of property attributes.

Definition at line 296 of file KerMor.m.

KerMor.Workspace

The base directory where KerMor stores and looks for data from models etc.

Default: KerMor.DataDirectory

Note
This property has the MATLAB attribute Dependent set to true.
Matlab documentation of property attributes.

Definition at line 341 of file KerMor.m.


The documentation for this class was generated from the following file: