49{
50 if (argc != 2)
51 {
52 fprintf(stderr, "Usage: ./CflStep file.xml \n");
53 fprintf(stderr, "\t Method will read initial conditions section of "
54 ".xml file for input \n");
55 exit(1);
56 }
57
60
61 string vDriverModule;
63 try
64 {
65
67
68
70
71
72 session->LoadSolverInfo("Driver", vDriverModule, "Standard");
74
77
80
81
83 IncNav->UpdateFields();
84 int i, n, nquad, cnt;
85 int nfields = fields.size();
86 int nexp = fields[0]->GetExpSize();
87
89
90 cout << "Max CFL: " << cfl[elmtid] << " In element " << elmtid << endl;
91
92 for (n = 0; n < nfields; ++n)
93 {
94 if (session->GetVariable(n) == "p")
95 {
96 break;
97 }
98 }
99
100 ASSERTL0(n != nfields,
"Could not find field named p in m_fields");
101
103
104 cnt = 0;
105 for (i = 0; i < fields[n]->GetExpSize(); ++i)
106 {
107 nquad = fields[n]->GetExp(i)->GetTotPoints();
109 cnt += nquad;
110 }
111
112 fields[n]->FwdTransLocalElmt(fields[n]->GetPhys(),
113 fields[n]->UpdateCoeffs());
114
115
116 session->SetVariable(n, "CFL");
117
118
119 std::string outname = IncNav->GetSessionName();
120
121 outname += "_CFLStep";
122 IncNav->ResetSessionName(outname);
123 IncNav->Output();
124 }
125 catch (const std::runtime_error &)
126 {
127 return 1;
128 }
129 catch (const std::string &eStr)
130 {
131 cout << "Error: " << eStr << endl;
132 }
133
134 return 0;
135}
#define ASSERTL0(condition, msg)
This class is the base class for Navier Stokes problems.
tBaseSharedPtr CreateInstance(tKey idKey, tParam... args)
Create an instance of the class referred to by idKey.
static SessionReaderSharedPtr CreateInstance(int argc, char *argv[])
Creates an instance of the SessionReader class.
SOLVER_UTILS_EXPORT void SetInitialConditions(NekDouble initialtime=0.0, bool dumpInitialConditions=true, const int domain=0)
Initialise the data in the dependent fields.
static MeshGraphSharedPtr Read(const LibUtilities::SessionReaderSharedPtr pSession, LibUtilities::DomainRangeShPtr rng=LibUtilities::NullDomainRangeShPtr, bool fillGraph=true, SpatialDomains::MeshGraphSharedPtr partitionedGraph=nullptr)
std::shared_ptr< SessionReader > SessionReaderSharedPtr
std::shared_ptr< Driver > DriverSharedPtr
A shared pointer to a Driver object.
DriverFactory & GetDriverFactory()
std::shared_ptr< EquationSystem > EquationSystemSharedPtr
A shared pointer to an EquationSystem object.
std::shared_ptr< MeshGraph > MeshGraphSharedPtr
std::shared_ptr< IncNavierStokes > IncNavierStokesSharedPtr
int Imax(int n, const T *x, const int incx)
Return the index of the maximum element in x.
void Fill(int n, const T alpha, T *x, const int incx)
Fill a vector with a constant value.