Computes a dynamic mode decomposition model on a specified field. More...


Public Member Functions | |
| TypeName ("DMD") | |
| Runtime type information. More... | |
| DMD (const word &name, const Time &runTime, const dictionary &dict) | |
| Construct from Time and dictionary. More... | |
| DMD (const DMD &)=delete | |
| No copy construct. More... | |
| void | operator= (const DMD &)=delete |
| No copy assignment. More... | |
| virtual | ~DMD ()=default |
| Destructor. More... | |
| virtual bool | read (const dictionary &dict) |
| Read DMD settings. More... | |
| virtual bool | execute () |
| Execute DMD. More... | |
| virtual bool | write () |
| Write DMD results. More... | |
| virtual bool | end () |
| Write DMD results. More... | |
Public Member Functions inherited from fvMeshFunctionObject | |
| TypeName ("fvMeshFunctionObject") | |
| Runtime type information. More... | |
| fvMeshFunctionObject (const word &name, const Time &runTime, const dictionary &dict) | |
| Construct from Time and dictionary. More... | |
| fvMeshFunctionObject (const word &name, const objectRegistry &obr, const dictionary &dict) | |
| Construct from the region objectRegistry and dictionary. More... | |
| virtual | ~fvMeshFunctionObject ()=default |
| Destructor. More... | |
Public Member Functions inherited from regionFunctionObject | |
| TypeName ("regionFunctionObject") | |
| Runtime type information. More... | |
| regionFunctionObject (const word &name, const Time &runTime, const dictionary &dict) | |
| Construct from Time and dictionary. More... | |
| regionFunctionObject (const word &name, const objectRegistry &obr, const dictionary &dict) | |
| Construct from the region objectRegistry and dictionary. More... | |
| virtual | ~regionFunctionObject ()=default |
| Destructor. More... | |
| template<class ObjectType > | |
| const ObjectType * | lookupObjectPtr (const word &fieldName) const |
| Deprecated(2018-10) More... | |
| template<class ObjectType > | |
| ObjectType * | lookupObjectRefPtr (const word &fieldName) const |
| Deprecated(2018-10) More... | |
Public Member Functions inherited from stateFunctionObject | |
| stateFunctionObject (const word &name, const Time &runTime) | |
| Construct from components. More... | |
| virtual | ~stateFunctionObject ()=default |
| Destructor. More... | |
| dictionary & | propertyDict () |
| Return access to the property dictionary. More... | |
| bool | foundProperty (const word &entryName) const |
| Return true if the property exists. More... | |
| void | clearTrigger () |
| Remove the trigger index from the properties. More... | |
| label | getTrigger () const |
| Get the current trigger index. More... | |
| bool | setTrigger (const label triggeri) |
| Set new trigger index. More... | |
| bool | getDict (const word &entryName, dictionary &dict) const |
| Set dictionary, return true if set. More... | |
| bool | getObjectDict (const word &objectName, const word &entryName, dictionary &dict) const |
| Set dictionary from named object, return true if set. More... | |
| template<class Type > | |
| Type | getProperty (const word &entryName, const Type &defaultValue=Type(Zero)) const |
| Retrieve generic property. More... | |
| template<class Type > | |
| bool | getProperty (const word &entryName, Type &value) const |
| Set generic property, return true if set. More... | |
| template<class Type > | |
| void | setProperty (const word &entryName, const Type &value) |
| Add generic property. More... | |
| template<class Type > | |
| Type | getObjectProperty (const word &objectName, const word &entryName, const Type &defaultValue=Type(Zero)) const |
| Retrieve generic property from named object. More... | |
| template<class Type > | |
| bool | getObjectProperty (const word &objectName, const word &entryName, Type &value) const |
| Set generic property from named object, return true if set. More... | |
| template<class Type > | |
| void | setObjectProperty (const word &objectName, const word &entryName, const Type &value) |
| Add generic property from named object. More... | |
| bool | getObjectResultDict (const word &objectName, dictionary &dict) const |
| template<class Type > | |
| void | setResult (const word &entryName, const Type &value) |
| Add result. More... | |
| template<class Type > | |
| void | setObjectResult (const word &objectName, const word &entryName, const Type &value) |
| Add result from named object. More... | |
| template<class Type > | |
| Type | getResult (const word &entryName, const Type &defaultValue=Type(Zero)) const |
| Retrieve result. More... | |
| template<class Type > | |
| Type | getObjectResult (const word &objectName, const word &entryName, const Type &defaultValue=Type(Zero)) const |
| Retrieve result from named object. More... | |
| template<class Type > | |
| bool | getObjectResult (const word &objectName, const word &entryName, Type &value) const |
| Set result from named object, return true if set. More... | |
| word | resultType (const word &entryName) const |
| Retrieve the result type. More... | |
| word | objectResultType (const word &objectName, const word &entryName) const |
| Return the type of result. More... | |
| wordList | objectResultEntries () const |
| Retrieve the result entries. More... | |
| wordList | objectResultEntries (const word &objectName) const |
| Return result entries for named object. More... | |
| void | writeResultEntries (Ostream &os) const |
| Write the results entries for all objects to stream. More... | |
| void | writeResultEntries (const word &objectName, Ostream &os) const |
| Write the results entries for named object to stream. More... | |
| void | writeAllResultEntries (Ostream &os) const |
| Write the results entries for all objects to stream. More... | |
Public Member Functions inherited from timeFunctionObject | |
| timeFunctionObject (const word &name, const Time &runTime) | |
| Construct from Time. More... | |
| virtual | ~timeFunctionObject ()=default |
| Destructor. More... | |
| const Time & | time () const |
| Return time database. More... | |
| objectRegistry & | storedObjects () |
| Write access to the output objects ("functionObjectObjects") registered on Time. More... | |
| const objectRegistry & | storedObjects () const |
| Const access to the output objects ("functionObjectObjects") registered on Time. More... | |
Public Member Functions inherited from functionObject | |
| declareRunTimeSelectionTable (autoPtr, functionObject, dictionary,(const word &name, const Time &runTime, const dictionary &dict),(name, runTime, dict)) | |
| functionObject (const word &name, const bool withNamePrefix=defaultUseNamePrefix) | |
| Construct from components. More... | |
| autoPtr< functionObject > | clone () const |
| Return clone. More... | |
| virtual | ~functionObject ()=default |
| Destructor. More... | |
| virtual const word & | type () const =0 |
| Runtime type information. More... | |
| const word & | name () const noexcept |
| Return the name of this functionObject. More... | |
| bool | useNamePrefix () const noexcept |
| Return the flag for adding a scoping name prefix. More... | |
| bool | useNamePrefix (bool on) noexcept |
| Modify the flag for adding a scoping name prefix. More... | |
| virtual bool | execute (const label subIndex) |
| Execute using the specified subIndex. More... | |
| virtual bool | adjustTimeStep () |
| Called at the end of Time::adjustDeltaT() if adjustTime is true. More... | |
| virtual bool | filesModified () const |
| Did any file get changed during execution? More... | |
| virtual void | updateMesh (const mapPolyMesh &mpm) |
| Update for changes of mesh. More... | |
| virtual void | movePoints (const polyMesh &mesh) |
| Update for changes of mesh. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from functionObject | |
| static autoPtr< functionObject > | New (const word &name, const Time &runTime, const dictionary &dict) |
| Select from dictionary, based on its "type" entry. More... | |
Public Attributes inherited from functionObject | |
| bool | log |
| Flag to write log into Info. More... | |
Static Public Attributes inherited from functionObject | |
| static int | debug |
| Flag to execute debug content. More... | |
| static bool | postProcess |
| Global post-processing mode switch. More... | |
| static bool | defaultUseNamePrefix |
| Global default for useNamePrefix. More... | |
| static word | outputPrefix |
| Directory prefix. More... | |
Protected Member Functions inherited from fvMeshFunctionObject | |
| fvMeshFunctionObject (const fvMeshFunctionObject &)=delete | |
| No copy construct. More... | |
| void | operator= (const fvMeshFunctionObject &)=delete |
| No copy assignment. More... | |
Protected Member Functions inherited from regionFunctionObject | |
| virtual const objectRegistry & | obr () const |
| The region or sub-region registry being used. More... | |
| template<class ObjectType > | |
| bool | foundObject (const word &fieldName) const |
| Find object (eg, a field) in the (sub) objectRegistry. More... | |
| template<class ObjectType > | |
| const ObjectType * | cfindObject (const word &fieldName) const |
| Return const pointer to the object (eg, a field) in the (sub) objectRegistry. More... | |
| template<class ObjectType > | |
| const ObjectType * | findObject (const word &fieldName) const |
| Return const pointer to the object (eg, a field) in the (sub) objectRegistry. More... | |
| template<class ObjectType > | |
| ObjectType * | findObject (const word &fieldName) |
| Return non-const pointer to the object of the given Type, (sub) objectRegistry. More... | |
| template<class ObjectType > | |
| ObjectType * | getObjectPtr (const word &fieldName) const |
| Return non-const pointer to the object of the given Type, using a const-cast to have it behave like a mutable. More... | |
| template<class ObjectType > | |
| const ObjectType & | lookupObject (const word &fieldName) const |
| Lookup and return object (eg, a field) from the (sub) objectRegistry. More... | |
| template<class ObjectType > | |
| ObjectType & | lookupObjectRef (const word &fieldName) const |
| Lookup and return object (eg, a field) from the (sub) objectRegistry. More... | |
| template<class ObjectType > | |
| bool | store (word &fieldName, const tmp< ObjectType > &tfield, bool cacheable=false) |
| Store the field in the (sub) objectRegistry under the given name. More... | |
| template<class ObjectType > | |
| bool | storeInDb (const word &fieldName, const tmp< ObjectType > &tfield, const objectRegistry &obr) |
| Store the field in an optional objectRegistry under the given name. More... | |
| bool | writeObject (const word &fieldName) |
| Write field if present in the (sub) objectRegistry. More... | |
| bool | clearObject (const word &fieldName) |
| Clear field from the (sub) objectRegistry if present. More... | |
| void | clearObjects (const wordList &objNames) |
| Clear fields from the (sub) objectRegistry if present. More... | |
| regionFunctionObject (const regionFunctionObject &)=delete | |
| No copy construct. More... | |
| void | operator= (const regionFunctionObject &)=delete |
| No copy assignment. More... | |
Protected Member Functions inherited from stateFunctionObject | |
| const functionObjects::properties & | stateDict () const |
| Return a const reference to the state dictionary. More... | |
| functionObjects::properties & | stateDict () |
| Return non-const access to the state dictionary. More... | |
| stateFunctionObject (const stateFunctionObject &)=delete | |
| No copy construct. More... | |
| void | operator= (const stateFunctionObject &)=delete |
| No copy assignment. More... | |
Protected Member Functions inherited from timeFunctionObject | |
| void | clearOutputObjects (const wordList &objNames) |
| Remove specified items from "functionObjectObjects". More... | |
| timeFunctionObject (const timeFunctionObject &)=delete | |
| No copy construct. More... | |
| void | operator= (const timeFunctionObject &)=delete |
| No copy assignment. More... | |
Protected Member Functions inherited from functionObject | |
| word | scopedName (const word &name) const |
| Return a scoped (prefixed) name. More... | |
Protected Attributes inherited from fvMeshFunctionObject | |
| const fvMesh & | mesh_ |
| Reference to the fvMesh. More... | |
Protected Attributes inherited from regionFunctionObject | |
| word | subRegistryName_ |
| Name for alternative object registry. More... | |
| const objectRegistry & | obr_ |
| Reference to the region objectRegistry. More... | |
| const objectRegistry * | obrPtr_ |
| Pointer to alternative (eg, sub-region) objectRegistry. More... | |
Protected Attributes inherited from timeFunctionObject | |
| const Time & | time_ |
| Reference to the time database. More... | |
Computes a dynamic mode decomposition model on a specified field.
Dynamic mode decomposition (i.e. DMD) is a data-driven dimensionality reduction method. DMD is being used as a mathematical processing tool to reveal dominant modes out of a given field (or dataset) each of which is associated with a constant frequency and decay rate, so that dynamic features of a given flow may become interpretable, tractable, and even reproducible without computing simulations. DMD only relies on input data, therefore it is an equation-free approach.
References:
DMD characteristics:
Brunton S. L. (2018).
Dynamic mode decomposition overview.
Seattle, Washington: University of Washington.
youtu.be/sQvrK8AGCAo (Retrieved:24-04-20)
Operands:
| Operand | Type | Location |
|---|---|---|
input | {vol,surface}<Type>Field(s) | <time>/<inputField>(s) |
output file | dat | postProcessing/<FO>/<time>/<file>(s) |
output field | volVectorField(s) | <time>/<outputField>(s) |
where <Type>=Scalar/Vector/SphericalTensor/SymmTensor/Tensor.
Output fields:
modeRe_<modeIndex>_<field>_<FO> | Real part of a mode field
modeIm_<modeIndex>_<field>_<FO> | Imaginary part of a mode fieldOutput files:
dynamics_<field>.dat | Dynamics data for each mode
filtered_dynamics_<field>.dat | Filtered dynamics data for each modewherein for each mode, the following quantities are output into files:
| = | Frequency |
| = | Magnitude |
| = | Amplitude coefficients (real part) |
| = | Amplitude coefficients (imaginary part) |
| = | Eigenvalue (real part) |
| = | Eigenvalue (imaginary part) |
system/controlDict.functions: DMD1
{
// Mandatory entries
type DMD;
libs (fieldFunctionObjects);
DMDModel <DMDModel>;
field <word>;
// Optional entries
// Option-1
patch <word>;
// Option-2
patches (<wordRes>);
// Inherited entries
...
}
where the entries mean:
| Property | Description | Type | Reqd | Deflt |
|---|---|---|---|---|
type | Type name: DMD | word | yes | - |
libs | Library name: fieldFunctionObjects | word | yes | - |
DMDModel | Name of specified DMD model | word | yes | - |
field | Name of operand field | word | yes | - |
patch | Name of operand patch | word | no | null |
patches | Names of operand patches | wordRes | no | null |
Options for the DMDModel entry:
STDMD | Streaming total dynamic mode decomposition
The inherited entries are elaborated in:
Minimal example by using the postProcess utility:
<solver> -postProcess -fields '(U p)' -time '10:'
| DMD | ( | const word & | name, |
| const Time & | runTime, | ||
| const dictionary & | dict | ||
| ) |
Construct from Time and dictionary.
Definition at line 127 of file DMD.C.
References dict, Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, Foam::read(), runTime, and WarningInFunction.

|
virtualdefault |
Destructor.
| TypeName | ( | "DMD" | ) |
Runtime type information.
|
delete |
No copy assignment.
|
virtual |
Read DMD settings.
Reimplemented from regionFunctionObject.
Definition at line 170 of file DMD.C.
References dict, Foam::endl(), Foam::Info, Foam::name(), regionFunctionObject::read(), and Foam::type().

|
virtual |
Execute DMD.
Implements functionObject.
Definition at line 183 of file DMD.C.
References Foam::endl(), Log, Foam::name(), Foam::tab, and Foam::type().

|
virtual |
Write DMD results.
Implements functionObject.
Definition at line 208 of file DMD.C.
References Foam::SVG::end.
|
virtual |
Write DMD results.
Reimplemented from functionObject.
Definition at line 219 of file DMD.C.
References Foam::endl(), Foam::Info, Log, Foam::name(), Foam::nl, Foam::type(), and WarningInFunction.
