Commit 9c147506 authored by Spencer Sherwin's avatar Spencer Sherwin
Browse files

Merge branch 'master' into fix/TetGeomRead

parents 51ed3af4 dafdaaa4
......@@ -331,8 +331,8 @@ namespace Nektar
UnsteadySystem::v_DoInitialise();
// Set up Field Meta Data for output files
m_fieldMetaDataMap["Kinvis"] = m_kinvis;
m_fieldMetaDataMap["TimeStep"] = m_timestep;
m_fieldMetaDataMap["Kinvis"] = boost::lexical_cast<std::string>(m_kinvis);
m_fieldMetaDataMap["TimeStep"] = boost::lexical_cast<std::string>(m_timestep);
for(int i = 0; i < m_nConvectiveFields; ++i)
{
......
......@@ -43,7 +43,7 @@ int main(int argc, char *argv[])
Array<OneD, MultiRegions::ExpListSharedPtr> fields = IncNav->UpdateFields();
int i,n,nquad,cnt;
int nfields = fields.num_elements();
int nexp = fields[n]->GetExpSize();
int nexp = fields[0]->GetExpSize();
int elmtid = Vmath::Imax(nexp,cfl,1);
......
#include <cstdio>
#include <cstdlib>
#include <SolverUtils/Driver.h>
#include <LibUtilities/BasicUtils/SessionReader.h>
#include <IncNavierStokesSolver/EquationSystems/IncNavierStokes.h>
using namespace Nektar;
using namespace Nektar::SolverUtils;
int main(int argc, char *argv[])
{
if(argc != 2)
{
fprintf(stderr,"Usage: ./CflStep file.xml \n");
fprintf(stderr,"\t Method will read intiial conditions section of .xml file for input \n");
exit(1);
}
LibUtilities::SessionReaderSharedPtr session;
string vDriverModule;
DriverSharedPtr drv;
try
{
// Create session reader.
session = LibUtilities::SessionReader::CreateInstance(argc, argv);
// Create driver
session->LoadSolverInfo("Driver", vDriverModule, "Standard");
drv = GetDriverFactory().CreateInstance(vDriverModule, session);
EquationSystemSharedPtr EqSys = drv->GetEqu()[0];
IncNavierStokesSharedPtr IncNav = boost::dynamic_pointer_cast
<IncNavierStokes>(EqSys);
IncNav->SetInitialConditions(0.0,false);
Array<OneD, NekDouble> cfl = IncNav->GetElmtCFLVals();
// Reset Pressure field with CFL values
Array<OneD, MultiRegions::ExpListSharedPtr> fields = IncNav->UpdateFields();
int i,n,nquad,cnt;
int nfields = fields.num_elements();
int nexp = fields[0]->GetExpSize();
int elmtid = Vmath::Imax(nexp,cfl,1);
cout << "Max CFL: "<< cfl[elmtid] << " In element " << elmtid << endl;
for(n = 0; n < nfields; ++n)
{
if(session->GetVariable(n) == "p")
{
break;
}
}
ASSERTL0(n != nfields, "Could not find field named p in m_fields");
Array<OneD, NekDouble> phys = fields[n]->UpdatePhys();
cnt = 0;
for(i = 0; i < fields[n]->GetExpSize(); ++i)
{
nquad = fields[n]->GetExp(i)->GetTotPoints();
Vmath::Fill(nquad,cfl[i],&phys[cnt],1);
cnt += nquad;
}
fields[n]->FwdTrans_IterPerExp(fields[n]->GetPhys(),fields[n]->UpdateCoeffs());
// Need to reset varibale name for output
session->SetVariable(n,"CFL");
// Reset session name for output file
std::string outname = IncNav->GetSessionName();
outname += "_CFLStep";
IncNav->ResetSessionName(outname);
IncNav->Output();
}
catch (const std::runtime_error&)
{
return 1;
}
catch (const std::string& eStr)
{
cout << "Error: " << eStr << endl;
}
return 0;
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment