Loading...
Searching...
No Matches
ROMExecutionConfig.H
1#pragma once
2#ifndef ROMExecutionConfig_H
3#define ROMExecutionConfig_H
4
5#include <Eigen/Eigen>
6#include <volFieldsFwd.H>
7#include "dimensionedScalarFwd.H"
8
9
16enum class PressureResolutionKind {
17 FullOrder,
18 ReducedOrder,
19 Neglected,
20 Undefined
21};
22
23class ROMExecutionConfig
24{
25public:
26 ROMExecutionConfig():
27 m_nu(nullptr), m_meanU(nullptr) { }
28
29 // Temporal scheme
30 const Foam::word& ROMTemporalScheme() const { return m_ROMTemporalScheme; }
31 void setROMTemporalScheme(const Foam::word& scheme);
32
33 // Pressure handling
34 const PressureResolutionKind& pressureResolutionKind() const { return m_pressureResolutionKind; }
35 void setPressureResolutionKind(PressureResolutionKind kind);
36
37 // Physical properties
38 const Foam::dimensionedScalar& nu() const { return *m_nu; }
39 void setNu(Foam::dimensionedScalar* nu) { m_nu = nu; }
40
41 // Mean field
42 const Foam::volVectorField* meanU() const { return m_meanU; }
43 void setMeanU(const Foam::volVectorField& mean);
44
45 // SOTA method
46 const Foam::word& useSOTA() const { return m_useSOTA; }
47 void setUseSOTA(const Foam::word& sota) { m_useSOTA = sota; }
48
49
50private:
51 Foam::word m_ROMTemporalScheme;
52 PressureResolutionKind m_pressureResolutionKind;
53
54 Foam::dimensionedScalar* m_nu;
55 Foam::volVectorField* m_meanU;
56
57 Foam::word m_useSOTA;
58
59};
60
61#endif // ROMExecutionConfig_H