42 static std::string
npts = LibUtilities::SessionReader::RegisterCmdLineArgument(
43 "NumberOfPoints",
"n",
"Define number of points to dump output");
90 cout <<
"Processing input xml file" << endl;
95 bool fldfilegiven =
true;
98 if(
m_f->m_inputfiles.count(
"fld") != 0)
102 else if(
m_f->m_inputfiles.count(
"chk") != 0)
106 else if (
m_f->m_inputfiles.count(
"rst") != 0)
112 fldfilegiven =
false;
115 string xml_ending =
"xml";
116 string xml_gz_ending =
"xml.gz";
119 std::vector<std::string> files;
121 for (
int i = 0; i <
m_f->m_inputfiles[xml_ending].size(); ++i)
123 files.push_back(
m_f->m_inputfiles[xml_ending][i]);
127 for (
int j =0; j <
m_f->m_inputfiles[xml_gz_ending].size(); ++j)
129 files.push_back(
m_f->m_inputfiles[xml_gz_ending][j]);
137 if(vm.count(
"range"))
139 vector<NekDouble> values;
141 vm[
"range"].as<string>().c_str(), values),
142 "Failed to interpret range string");
145 "Do not have minimum values of xmin,xmax");
147 "Do not have an even number of range values");
149 int nvalues = values.size()/2;
153 rng->m_doZrange =
false;
154 rng->m_doYrange =
false;
155 rng->m_checkShape =
false;
160 rng->m_doZrange =
true;
161 rng->m_zmin = values[4];
162 rng->m_zmax = values[5];
164 rng->m_doYrange =
true;
165 rng->m_ymin = values[2];
166 rng->m_ymax = values[3];
168 rng->m_doXrange =
true;
169 rng->m_xmin = values[0];
170 rng->m_xmax = values[1];
173 ASSERTL0(
false,
"too many values specfied in range");
178 if(vm.count(
"onlyshape"))
184 rng->m_doXrange =
false;
185 rng->m_doYrange =
false;
186 rng->m_doZrange =
false;
189 rng->m_checkShape =
true;
192 boost::to_upper_copy(vm[
"onlyshape"].as<string>());
197 boost::to_upper(shapeval);
198 if(shapematch.compare(shapeval) == 0)
204 ASSERTL0(i != LibUtilities::SIZE_ShapeType,
205 "Failed to find shape type in -onlyshape command line "
212 string firstarg =
"FieldConvert";
213 string verbose =
"-v";
215 argv = (
char**)malloc(2*
sizeof(
char*));
216 argv[0] = (
char *)malloc(firstarg.size()*
sizeof(char));
217 argv[1] = (
char *)malloc(verbose.size()*
sizeof(char));
219 sprintf(argv[0],
"%s",firstarg.c_str());
220 sprintf(argv[1],
"%s",verbose.c_str());
242 if(!expansions.size())
247 m_f->m_exp.resize(1);
251 int NumHomogeneousDir = 0;
254 m_f->m_fld->Import(
m_f->m_inputfiles[fldending][0],
m_f->m_fielddef);
255 NumHomogeneousDir =
m_f->m_fielddef[0]->m_numHomogeneousDir;
259 m_f->m_graph->SetExpansions(
m_f->m_fielddef);
263 if(
m_f->m_session->DefinesSolverInfo(
"HOMOGENEOUS"))
265 std::string HomoStr =
m_f->m_session->GetSolverInfo(
"HOMOGENEOUS");
267 if((HomoStr ==
"HOMOGENEOUS1D") || (HomoStr ==
"Homogeneous1D")
268 || (HomoStr ==
"1D") || (HomoStr ==
"Homo1D"))
270 NumHomogeneousDir = 1;
272 if((HomoStr ==
"HOMOGENEOUS2D") || (HomoStr ==
"Homogeneous2D")
273 || (HomoStr ==
"2D") || (HomoStr ==
"Homo2D"))
275 NumHomogeneousDir = 2;
285 if(vm.count(
"output-points"))
287 nPointsNew = vm[
"output-points"].as<
int>();
291 m_f->m_graph->SetExpansionsToEvenlySpacedPoints(nPointsNew);
294 m_f->m_exp[0] =
m_f->SetUpFirstExpList(NumHomogeneousDir,fldfilegiven);
#define ASSERTL0(condition, msg)
pair< ModuleType, string > ModuleKey
static boost::shared_ptr< MeshGraph > Read(const LibUtilities::SessionReaderSharedPtr &pSession, DomainRangeShPtr &rng=NullDomainRangeShPtr)
static boost::shared_ptr< DataType > AllocateSharedPtr()
Allocate a shared pointer from the memory pool.
FieldSharedPtr m_f
Field object.
const char *const ShapeTypeMap[]
static SessionReaderSharedPtr CreateInstance(int argc, char *argv[])
Creates an instance of the SessionReader class.
boost::shared_ptr< DomainRange > DomainRangeShPtr
boost::shared_ptr< Field > FieldSharedPtr
static DomainRangeShPtr NullDomainRangeShPtr
static bool GenerateUnOrderedVector(const char *const str, std::vector< NekDouble > &vec)
std::map< int, ExpansionShPtr > ExpansionMap
ModuleFactory & GetModuleFactory()
tKey RegisterCreatorFunction(tKey idKey, CreatorFunction classCreator, tDescription pDesc="")
Register a class with the factory.