Nektar++
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | List of all members
Nektar::FieldUtils::ProcessLocalStabilityAnalysis Class Reference

#include <ProcessLocalStabilityAnalysis.h>

Inheritance diagram for Nektar::FieldUtils::ProcessLocalStabilityAnalysis:
[legend]

Public Member Functions

 ProcessLocalStabilityAnalysis (FieldSharedPtr f)
 
 ~ProcessLocalStabilityAnalysis () override
 
void v_Process (po::variables_map &vm) override
 Write mesh to output file. More...
 
std::string v_GetModuleName () override
 
std::string v_GetModuleDescription () override
 
void call_hello ()
 
void call_lst (const long int &option, const NekDouble *finalValue1, const long int &numStep1, const NekDouble *finalValue2, const long int &numStep2)
 
- Public Member Functions inherited from Nektar::FieldUtils::ProcessBoundaryExtract
 ProcessBoundaryExtract (FieldSharedPtr f)
 
 ~ProcessBoundaryExtract () override
 
- Public Member Functions inherited from Nektar::FieldUtils::ProcessModule
 ProcessModule ()
 
 ProcessModule (FieldSharedPtr p_f)
 
- Public Member Functions inherited from Nektar::FieldUtils::Module
FIELD_UTILS_EXPORT Module (FieldSharedPtr p_f)
 
virtual ~Module ()=default
 
void Process (po::variables_map &vm)
 
std::string GetModuleName ()
 
std::string GetModuleDescription ()
 
const ConfigOptionGetConfigOption (const std::string &key) const
 
ModulePriority GetModulePriority ()
 
std::vector< ModuleKeyGetModulePrerequisites ()
 
FIELD_UTILS_EXPORT void RegisterConfig (std::string key, std::string value="")
 Register a configuration option with a module. More...
 
FIELD_UTILS_EXPORT void PrintConfig ()
 Print out all configuration options for a module. More...
 
FIELD_UTILS_EXPORT void SetDefaults ()
 Sets default configuration options for those which have not been set. More...
 
FIELD_UTILS_EXPORT void AddFile (std::string fileType, std::string fileName)
 
FIELD_UTILS_EXPORT void EvaluateTriFieldAtEquiSpacedPts (LocalRegions::ExpansionSharedPtr &exp, const Array< OneD, const NekDouble > &infield, Array< OneD, NekDouble > &outfield)
 

Static Public Member Functions

static std::shared_ptr< Modulecreate (FieldSharedPtr f)
 Creates an instance of this class. More...
 
- Static Public Member Functions inherited from Nektar::FieldUtils::ProcessBoundaryExtract
static std::shared_ptr< Modulecreate (FieldSharedPtr f)
 Creates an instance of this class. More...
 

Static Public Attributes

static ModuleKey className
 
- Static Public Attributes inherited from Nektar::FieldUtils::ProcessBoundaryExtract
static ModuleKey className
 

Private Member Functions

void GenerateInputFiles ()
 

Private Attributes

int m_NSTART = 1
 
int m_ITSE = 0
 
int m_INEUTRL = 0
 
NekDouble m_BETALIN = 0
 
NekDouble m_FREQLIN = 2000
 
int m_NGLOBAL = 25
 
int m_NLOCAL = 121
 
int m_ITOLRAY = 5
 
std::string m_LABEL = "\'localStabilityAnalysis\'"
 
int m_ITSPRES = 0
 
int m_IEIGL = 1
 
NekDouble m_RGAS = 287.0
 
NekDouble m_GAMMA = 1.4
 
NekDouble m_PRANDTL = 0.72
 

Additional Inherited Members

- Public Attributes inherited from Nektar::FieldUtils::Module
FieldSharedPtr m_f
 Field object. More...
 
- Protected Member Functions inherited from Nektar::FieldUtils::ProcessBoundaryExtract
void v_Process (po::variables_map &vm) override
 
std::string v_GetModuleName () override
 
std::string v_GetModuleDescription () override
 
ModulePriority v_GetModulePriority () override
 
- Protected Member Functions inherited from Nektar::FieldUtils::Module
 Module ()
 
virtual void v_Process (po::variables_map &vm)
 
virtual std::string v_GetModuleName ()
 
virtual std::string v_GetModuleDescription ()
 
virtual ModulePriority v_GetModulePriority ()
 
virtual std::vector< ModuleKeyv_GetModulePrerequisites ()
 
- Protected Attributes inherited from Nektar::FieldUtils::Module
std::map< std::string, ConfigOptionm_config
 List of configuration values. More...
 
std::set< std::string > m_allowedFiles
 List of allowed file formats. More...
 

Detailed Description

Definition at line 61 of file ProcessLocalStabilityAnalysis.h.

Constructor & Destructor Documentation

◆ ProcessLocalStabilityAnalysis()

Nektar::FieldUtils::ProcessLocalStabilityAnalysis::ProcessLocalStabilityAnalysis ( FieldSharedPtr  f)

Definition at line 57 of file ProcessLocalStabilityAnalysis.cpp.

59{
60 f->m_writeBndFld = false; // turned on in upstream ProcessBoundaryExtract
61
62 m_config["opt"] =
63 ConfigOption(false, "6", "Option for quantity to compute.\n \
64 6 - scan frequency\n \
65 7 - scan spanwise wavenumber\n \
66 8 - scan both frequency and spanwise wavenumber");
67 m_config["finVal1"] =
68 ConfigOption(false, "0.1", "Final value for the 1st quantity.");
69 m_config["numStep1"] =
70 ConfigOption(false, "10", "Number of steps to scan the 1st range.");
71 m_config["finVal2"] = ConfigOption(
72 false, "0.1", "Final value for the 2nd quantity (optional).");
73 m_config["numStep2"] = ConfigOption(
74 false, "10", "Number of steps to scan the 2nd range (optional).");
75}
std::map< std::string, ConfigOption > m_config
List of configuration values.
Definition: Module.h:272

References Nektar::FieldUtils::Module::m_config.

◆ ~ProcessLocalStabilityAnalysis()

Nektar::FieldUtils::ProcessLocalStabilityAnalysis::~ProcessLocalStabilityAnalysis ( )
override

Definition at line 77 of file ProcessLocalStabilityAnalysis.cpp.

78{
79}

Member Function Documentation

◆ call_hello()

void Nektar::FieldUtils::ProcessLocalStabilityAnalysis::call_hello ( )
inline

Definition at line 89 of file ProcessLocalStabilityAnalysis.h.

90 {
92 }
#define F77NAME(x)
Fortran routines need an underscore.
Definition: TransF77.hpp:46
void F77NAME() helloworld()
This processing module calculates the wall shear stress and adds it as an extra-field to the output f...

References F77NAME, and Nektar::FieldUtils::helloworld().

◆ call_lst()

void Nektar::FieldUtils::ProcessLocalStabilityAnalysis::call_lst ( const long int &  option,
const NekDouble finalValue1,
const long int &  numStep1,
const NekDouble finalValue2,
const long int &  numStep2 
)
inline

Definition at line 94 of file ProcessLocalStabilityAnalysis.h.

97 {
98 F77NAME(copse3d)(option, finalValue1, numStep1, finalValue2, numStep2);
99 }
void F77NAME() copse3d(const long int &option, const NekDouble *finalValue1, const long int &numStep1, const NekDouble *finalValue2, const long int &numStep2)

References Nektar::FieldUtils::copse3d(), and F77NAME.

Referenced by v_Process().

◆ create()

static std::shared_ptr< Module > Nektar::FieldUtils::ProcessLocalStabilityAnalysis::create ( FieldSharedPtr  f)
inlinestatic

Creates an instance of this class.

Definition at line 65 of file ProcessLocalStabilityAnalysis.h.

66 {
68 f);
69 }
static std::shared_ptr< DataType > AllocateSharedPtr(const Args &...args)
Allocate a shared pointer from the memory pool.

References Nektar::MemoryManager< DataType >::AllocateSharedPtr().

◆ GenerateInputFiles()

void Nektar::FieldUtils::ProcessLocalStabilityAnalysis::GenerateInputFiles ( )
private

Definition at line 81 of file ProcessLocalStabilityAnalysis.cpp.

82{
83 // Update settins from the session file
84 if (m_f->m_session->DefinesParameter("Pr"))
85 {
86 m_PRANDTL = m_f->m_session->GetParameter("Pr");
87 }
88
89 if (m_f->m_session->DefinesParameter("Gamma"))
90 {
91 m_GAMMA = m_f->m_session->GetParameter("Gamma");
92 }
93
94 if (m_f->m_session->DefinesParameter("RGAS"))
95 {
96 m_RGAS = m_f->m_session->GetParameter("RGAS");
97 }
98
99 if (m_f->m_session->DefinesParameter("ITOLRAY"))
100 {
101 m_ITOLRAY = m_f->m_session->GetParameter("ITOLRAY");
102 }
103
104 if (m_f->m_session->DefinesParameter("NGLOBAL"))
105 {
106 m_NGLOBAL = m_f->m_session->GetParameter("NGLOBAL");
107 }
108
109 if (m_f->m_session->DefinesParameter("NLOCAL"))
110 {
111 m_NLOCAL = m_f->m_session->GetParameter("NLOCAL");
112 }
113
114 if (m_f->m_session->DefinesParameter("BETALIN"))
115 {
116 m_BETALIN = m_f->m_session->GetParameter("BETALIN");
117 }
118
119 ASSERTL0(m_f->m_session->DefinesParameter("FREQLIN"),
120 "The disturbance frequency for local linear stability analysis "
121 "must be defined.");
122 m_FREQLIN = m_f->m_session->GetParameter("FREQLIN");
123
124 if (m_f->m_session->DefinesParameter("ITSE"))
125 {
126 m_ITSE = m_f->m_session->GetParameter("ITSE");
127 }
128
129 if (m_f->m_session->DefinesParameter("INEUTRL"))
130 {
131 m_INEUTRL = m_f->m_session->GetParameter("INEUTRL");
132 }
133
134 ofstream ofs;
135 ofs.open("PSEREAD.NAM", ios::out);
136
137 // Write $PSEUSER tag
138 ofs << "$PSEUSER\n"
139 << "NSTART=" << m_NSTART << "\n"
140 << "ITSE=" << m_ITSE << "\n"
141 << "INEUTRL=" << m_INEUTRL << "\n"
142 << "BETALIN=" << m_BETALIN << "\n"
143 << "FREQLIN=" << m_FREQLIN << "\n"
144 << "$END\n"
145 << endl;
146 // Write $PSEUSER tag
147 ofs << "$PSENONL\n$END\n" << endl;
148
149 // Weite $PSECNTL tag
150 ofs << "$PSECNTL\n"
151 << "NGLOBAL=" << m_NGLOBAL << "\n"
152 << "NLOCAL=" << m_NLOCAL << "\n"
153 << "ITOLRAY=" << m_ITOLRAY << "\n"
154 << "$END\n"
155 << endl;
156
157 // Write $PSEOUT tag
158 ofs << "$PSEOUT\n"
159 << "LABEL=" << m_LABEL << "\n"
160 << "ITSPRES=" << m_ITSPRES << "\n"
161 << "IEIGL=" << m_IEIGL << "\n"
162 << "$END\n"
163 << endl;
164
165 // Write $PSEGAS tag
166 ofs << "$PSEGAS\n"
167 << "RGAS=" << m_RGAS << "\n"
168 << "GAMMA=" << m_GAMMA << "\n"
169 << "PRANDTL=" << m_PRANDTL << "\n"
170 << "$END\n"
171 << endl;
172
173 ofs.close();
174}
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:208
FieldSharedPtr m_f
Field object.
Definition: Module.h:239

References ASSERTL0, m_BETALIN, Nektar::FieldUtils::Module::m_f, m_FREQLIN, m_GAMMA, m_IEIGL, m_INEUTRL, m_ITOLRAY, m_ITSE, m_ITSPRES, m_LABEL, m_NGLOBAL, m_NLOCAL, m_NSTART, m_PRANDTL, and m_RGAS.

Referenced by v_Process().

◆ v_GetModuleDescription()

std::string Nektar::FieldUtils::ProcessLocalStabilityAnalysis::v_GetModuleDescription ( )
inlineoverridevirtual

Reimplemented from Nektar::FieldUtils::ProcessBoundaryExtract.

Definition at line 83 of file ProcessLocalStabilityAnalysis.h.

84 {
85 return "Performing local (linear) stability analysis (LST)";
86 }

◆ v_GetModuleName()

std::string Nektar::FieldUtils::ProcessLocalStabilityAnalysis::v_GetModuleName ( )
inlineoverridevirtual

Reimplemented from Nektar::FieldUtils::ProcessBoundaryExtract.

Definition at line 78 of file ProcessLocalStabilityAnalysis.h.

79 {
80 return "ProcessLocalStabilityAnalysis";
81 }

◆ v_Process()

void Nektar::FieldUtils::ProcessLocalStabilityAnalysis::v_Process ( po::variables_map &  vm)
overridevirtual

Write mesh to output file.

Reimplemented from Nektar::FieldUtils::ProcessBoundaryExtract.

Definition at line 176 of file ProcessLocalStabilityAnalysis.cpp.

177{
179
180 // Initialize sampling parameters
181 const long int option = m_config["opt"].as<long int>(); // 6,7,8
182 const NekDouble finalValue1 = m_config["finVal1"].as<NekDouble>();
183 const long int numStep1 = m_config["numStep1"].as<long int>();
184 const NekDouble finalValue2 = m_config["finVal2"].as<NekDouble>();
185 const long int numStep2 = m_config["numStep2"].as<long int>();
186
187 // Create PSEREAD.NAMgit d
189
190 // call_hello(); // test calling
191 call_lst(option, &finalValue1, numStep1, &finalValue2, numStep2);
192}
void v_Process(po::variables_map &vm) override
void call_lst(const long int &option, const NekDouble *finalValue1, const long int &numStep1, const NekDouble *finalValue2, const long int &numStep2)
double NekDouble

References call_lst(), GenerateInputFiles(), Nektar::FieldUtils::Module::m_config, and Nektar::FieldUtils::ProcessBoundaryExtract::v_Process().

Member Data Documentation

◆ className

ModuleKey Nektar::FieldUtils::ProcessLocalStabilityAnalysis::className
static
Initial value:
=
ModuleKey(eProcessModule, "localStabilityAnalysis"),
"Perform local (linear) stability analysis (LST).")
static std::shared_ptr< Module > create(FieldSharedPtr f)
Creates an instance of this class.
tKey RegisterCreatorFunction(tKey idKey, CreatorFunction classCreator, std::string pDesc="")
Register a class with the factory.
std::pair< ModuleType, std::string > ModuleKey
Definition: Module.h:180
ModuleFactory & GetModuleFactory()
Definition: Module.cpp:47

Definition at line 70 of file ProcessLocalStabilityAnalysis.h.

◆ m_BETALIN

NekDouble Nektar::FieldUtils::ProcessLocalStabilityAnalysis::m_BETALIN = 0
private

Definition at line 109 of file ProcessLocalStabilityAnalysis.h.

Referenced by GenerateInputFiles().

◆ m_FREQLIN

NekDouble Nektar::FieldUtils::ProcessLocalStabilityAnalysis::m_FREQLIN = 2000
private

Definition at line 110 of file ProcessLocalStabilityAnalysis.h.

Referenced by GenerateInputFiles().

◆ m_GAMMA

NekDouble Nektar::FieldUtils::ProcessLocalStabilityAnalysis::m_GAMMA = 1.4
private

Definition at line 118 of file ProcessLocalStabilityAnalysis.h.

Referenced by GenerateInputFiles().

◆ m_IEIGL

int Nektar::FieldUtils::ProcessLocalStabilityAnalysis::m_IEIGL = 1
private

Definition at line 116 of file ProcessLocalStabilityAnalysis.h.

Referenced by GenerateInputFiles().

◆ m_INEUTRL

int Nektar::FieldUtils::ProcessLocalStabilityAnalysis::m_INEUTRL = 0
private

Definition at line 108 of file ProcessLocalStabilityAnalysis.h.

Referenced by GenerateInputFiles().

◆ m_ITOLRAY

int Nektar::FieldUtils::ProcessLocalStabilityAnalysis::m_ITOLRAY = 5
private

Definition at line 113 of file ProcessLocalStabilityAnalysis.h.

Referenced by GenerateInputFiles().

◆ m_ITSE

int Nektar::FieldUtils::ProcessLocalStabilityAnalysis::m_ITSE = 0
private

Definition at line 107 of file ProcessLocalStabilityAnalysis.h.

Referenced by GenerateInputFiles().

◆ m_ITSPRES

int Nektar::FieldUtils::ProcessLocalStabilityAnalysis::m_ITSPRES = 0
private

Definition at line 115 of file ProcessLocalStabilityAnalysis.h.

Referenced by GenerateInputFiles().

◆ m_LABEL

std::string Nektar::FieldUtils::ProcessLocalStabilityAnalysis::m_LABEL = "\'localStabilityAnalysis\'"
private

Definition at line 114 of file ProcessLocalStabilityAnalysis.h.

Referenced by GenerateInputFiles().

◆ m_NGLOBAL

int Nektar::FieldUtils::ProcessLocalStabilityAnalysis::m_NGLOBAL = 25
private

Definition at line 111 of file ProcessLocalStabilityAnalysis.h.

Referenced by GenerateInputFiles().

◆ m_NLOCAL

int Nektar::FieldUtils::ProcessLocalStabilityAnalysis::m_NLOCAL = 121
private

Definition at line 112 of file ProcessLocalStabilityAnalysis.h.

Referenced by GenerateInputFiles().

◆ m_NSTART

int Nektar::FieldUtils::ProcessLocalStabilityAnalysis::m_NSTART = 1
private

Definition at line 106 of file ProcessLocalStabilityAnalysis.h.

Referenced by GenerateInputFiles().

◆ m_PRANDTL

NekDouble Nektar::FieldUtils::ProcessLocalStabilityAnalysis::m_PRANDTL = 0.72
private

Definition at line 119 of file ProcessLocalStabilityAnalysis.h.

Referenced by GenerateInputFiles().

◆ m_RGAS

NekDouble Nektar::FieldUtils::ProcessLocalStabilityAnalysis::m_RGAS = 287.0
private

Definition at line 117 of file ProcessLocalStabilityAnalysis.h.

Referenced by GenerateInputFiles().