190 #ifndef DMDModels_STDMD_H 191 #define DMDModels_STDMD_H 212 typedef SquareMatrix<scalar> SMatrix;
213 typedef RectangularMatrix<scalar> RMatrix;
214 typedef RectangularMatrix<complex> RCMatrix;
220 enum modeSorterType :
char 228 static const Enum<modeSorterType> modeSorterTypeNames;
234 enum modeSorterType modeSorter_;
257 List<complex> evals_;
267 DynamicList<label> freqsi_;
279 const wordRes patches_;
282 const word fieldName_;
327 label nAgglomerationProcs_;
338 scalar L2norm(
const RMatrix& z)
const;
347 void expand(
const RMatrix& ez,
const scalar ezNorm);
350 void updateG(
const RMatrix& z);
359 SMatrix reducedKoopmanOperator();
364 bool eigendecomposition(
SMatrix& Atilde);
386 const scalar modeNorm
390 virtual bool dynamics();
393 virtual bool modes();
400 template<
class GeoFieldType>
404 template<
class GeoFieldType>
405 typename std::enable_if
407 std::is_same<scalar, typename GeoFieldType::value_type>::value,
411 GeoFieldType& modeRe,
412 GeoFieldType& modeIm,
419 template<
class GeoFieldType>
420 typename std::enable_if
422 !std::is_same<scalar, typename GeoFieldType::value_type>::value,
426 GeoFieldType& modeRe,
427 GeoFieldType& modeIm,
457 template<
class MatrixType>
489 virtual ~STDMD() =
default;
A class for handling file names.
virtual ~STDMD()=default
Destructor.
virtual bool update(const RMatrix &z)
Incremental orthonormal basis update (K:Fig. 15)
A list of keyword definitions, which are a keyword followed by a number of values (eg...
Streaming Total Dynamic Mode Decomposition (i.e. STDMD) is a variant of dynamic mode decomposition...
virtual bool fit()
Compute and write modes and mode dynamics of model data members.
void operator=(const STDMD &)=delete
No copy assignment.
virtual bool initialise(const RMatrix &z)
Initialise 'Q' and 'G' (both require the first two snapshots)
virtual bool read(const dictionary &dict)
Read STDMD settings.
STDMD(const fvMesh &mesh, const word &name, const dictionary &dict)
Construct from components.
fileName::Type type(const fileName &name, const bool followLink=true)
Return the file type: DIRECTORY or FILE, normally following symbolic links.
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for expressions::valueTypeCode::INVALID.
A class for handling words, derived from Foam::string.
TypeName("STDMD")
Runtime type information.
virtual bool writeToFile() const
Flag to allow writing to file.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
OBJstream os(runTime.globalPath()/outputName)
Mesh data needed to do the Finite Volume discretisation.
A complex number, similar to the C++ complex type.