PlasCom2  1.0
XPACC Multi-physics simluation application
NavierStokesDictionary.C
Go to the documentation of this file.
2 
3 namespace navierstokes {
4 
5  void CreateDictionaryConfiguration(int numDim,int gridType,int numScalars,bool withDV,bool withAuxData,
6  bool withLegacyData,bool withGridMetrics,const std::string &configPrefix,
8  {
9  std::ostringstream advanceFieldsStream;
10  advanceFieldsStream << "rho rhoV rhoE";
11  if(numScalars > 0)
12  advanceFieldsStream << " scalarVars";
13  std::string advancerFields(advanceFieldsStream.str());
14 
15 
16  std::ostringstream allFields;
17  std::string myConfigPrefix;
18  if(!configPrefix.empty()){
19  myConfigPrefix = configPrefix+std::string(":");
20  }
21  inConfig.SetParameter(myConfigPrefix+std::string("Advancer:Fields"),advancerFields);
22  allFields << paramNames << " ";
23  inConfig.SetParameter(myConfigPrefix+std::string("Param:Fields"),paramNames);
24  std::ostringstream fieldListStream;
25  fieldListStream << cvNames << " ";
26  if(withLegacyData){
27  for(int iDim = 0;iDim < numDim+2;iDim++){
28  fieldListStream << "cv0" << iDim+1 << " ";
29  }
30  }
31 
32 
33 
34  std::list<std::string> legacyAuxVars;
35  if(numScalars > 0){
36  fieldListStream << scalarNames << " ";
37  if(withLegacyData){
38  for(int iScalar = 0;iScalar < numScalars;iScalar++){
39  std::ostringstream scalarStream;
40  scalarStream << "aux" << (iScalar < 9 ? "0" : "")
41  << iScalar+1;
42  fieldListStream << scalarStream.str() << " ";
43  legacyAuxVars.push_back(scalarStream.str());
44  }
45  }
46  }
47  fieldListStream << timeFieldNames << " ";
48  if(withDV)
49  fieldListStream << dvNames << " ";
50  if(withAuxData) {
51  fieldListStream << auxDataNames << " ";
52  }
53  if(withGridMetrics)
54  fieldListStream << "gridMetrics ";
55  std::string stateFields(fieldListStream.str());
56  allFields << stateFields << " ";
57  pcpp::io::RenewStream(fieldListStream);
58  inConfig.SetParameter(myConfigPrefix+std::string("State:Fields"),stateFields);
59 
60 
61  inConfig.SetParameter(myConfigPrefix+std::string("Field:simTime:Meta"),"1 d 8 time");
62  inConfig.SetParameter(myConfigPrefix+std::string("Field:inputCFL:Meta"),"1 d 8 stabilityno");
63  inConfig.SetParameter(myConfigPrefix+std::string("Field:simCFL:Meta"),"1 d 8 stabilityno");
64  inConfig.SetParameter(myConfigPrefix+std::string("Field:inputDT:Meta"),"1 d 8 time");
65  inConfig.SetParameter(myConfigPrefix+std::string("Field:simDT:Meta"),"1 d 8 time");
66  inConfig.SetParameter(myConfigPrefix+std::string("Field:gridTime:Meta"),"1 m 8 time");
67  inConfig.SetParameter(myConfigPrefix+std::string("Field:gridDT:Meta"),"1 m 8 time");
68  inConfig.SetParameter(myConfigPrefix+std::string("Field:gridCFL:Meta"),"1 m 8 stabilityno");
69  inConfig.SetParameter(myConfigPrefix+std::string("Field:gamma:Meta"),"1 s 8 shratio");
70  inConfig.SetParameter(myConfigPrefix+std::string("Field:power:Meta"),"1 s 8 powerLawTransport");
71  inConfig.SetParameter(myConfigPrefix+std::string("Field:beta:Meta"),"1 s 8 powerLawTransport");
72  inConfig.SetParameter(myConfigPrefix+std::string("Field:bulkViscFac:Meta"),"1 s 8 powerLawTransport");
73  inConfig.SetParameter(myConfigPrefix+std::string("Field:sigmaDissipation:Meta"),"1 s 8 artDissParam");
74  inConfig.SetParameter(myConfigPrefix+std::string("Field:sigmaDilatation:Meta"),"1 s 8 artDissParam");
75  inConfig.SetParameter(myConfigPrefix+std::string("Field:dilatationCutoff:Meta"),"1 s 8 artDissParam");
76  inConfig.SetParameter(myConfigPrefix+std::string("Field:refRe:Meta"),"1 s 8 ReynoldsNo");
77  inConfig.SetParameter(myConfigPrefix+std::string("Field:refPr:Meta"),"1 s 8 PrandtlNo");
78  inConfig.SetParameter(myConfigPrefix+std::string("Field:Flag:Meta"),"2 s 4 fluidOptions");
79  inConfig.SetParameter(myConfigPrefix+std::string("Field:nonDimensional:Meta"),"1 s 4 non-dimensional");
80  inConfig.SetParameter(myConfigPrefix+std::string("Field:refRho:Meta"),"1 m 8 density");
81  inConfig.SetParameter(myConfigPrefix+std::string("Field:refLength:Meta"),"1 m 8 length");
82  inConfig.SetParameter(myConfigPrefix+std::string("Field:refPressure:Meta"),"1 m 8 pressure");
83  inConfig.SetParameter(myConfigPrefix+std::string("Field:refTemperature:Meta"),"1 m 8 temperature");
84  inConfig.SetParameter(myConfigPrefix+std::string("Field:imask:Meta"),"1 n 4 imask");
85  inConfig.SetParameter(myConfigPrefix+std::string("Field:rho:Meta"),"1 n 8 density");
86  inConfig.SetParameter(myConfigPrefix+std::string("Field:rhoE:Meta"),"1 n 8 energy");
87  inConfig.SetParameter(myConfigPrefix+std::string("Field:pressure:Meta"),"1 n 8 pressure");
88  inConfig.SetParameter(myConfigPrefix+std::string("Field:temperature:Meta"),"1 n 8 temperature");
89  inConfig.SetParameter(myConfigPrefix+std::string("Field:rhom1:Meta"),"1 n 8 specificVolume");
90  inConfig.SetParameter(myConfigPrefix+std::string("Field:cv01:Meta"),"1 n 8 density");
91  inConfig.SetParameter(myConfigPrefix+std::string("Field:cv02:Meta"),"1 n 8 x-momentum");
92  inConfig.SetParameter(myConfigPrefix+std::string("Field:cv03:Meta"),"1 n 8 y-momentum");
93  if(numDim > 2){
94  inConfig.SetParameter(myConfigPrefix+std::string("Field:cv04:Meta"),"1 n 8 z-momentum");
95  inConfig.SetParameter(myConfigPrefix+std::string("Field:cv05:Meta"),"1 n 8 energy");
96  } else {
97  inConfig.SetParameter(myConfigPrefix+std::string("Field:cv04:Meta"),"1 n 8 energy");
98  }
99  if(!legacyAuxVars.empty()){
100  std::list<std::string>::iterator auxVarIt = legacyAuxVars.begin();
101  while(auxVarIt != legacyAuxVars.end()){
102  inConfig.SetParameter(myConfigPrefix+std::string("Field:"+*auxVarIt+":Meta"),"1 n 8 massfrac");
103  auxVarIt++;
104  }
105  }
106  if(withGridMetrics){
107  std::ostringstream metricMetaStream;
108  if(gridType == 0){
109  metricMetaStream << numDim << " g 8 gridMetric";
110  } else if(gridType == 1){
111  metricMetaStream << numDim << " n 8 gridMetric";
112  } else {
113  metricMetaStream << numDim*numDim << " n 8 gridMetric";
114  }
115  inConfig.SetParameter(myConfigPrefix+std::string("Field:gridMetrics:Meta"),metricMetaStream.str());
116  }
117 
118 
119  std::ostringstream Ostr;
120  Ostr << numDim << " n 4 sconn";
121  inConfig.SetParameter(myConfigPrefix+std::string("Field:sconn:Meta"),Ostr.str());
122  pcpp::io::RenewStream(Ostr);
123  Ostr << numDim << " n 8 momentum";
124  inConfig.SetParameter(myConfigPrefix+std::string("Field:rhoV:Meta"),Ostr.str());
125  pcpp::io::RenewStream(Ostr);
126  Ostr << numDim << " n 8 velocity";
127  inConfig.SetParameter(myConfigPrefix+std::string("Field:velocity:Meta"),Ostr.str());
128  pcpp::io::RenewStream(Ostr);
129  }
130 }
void CreateDictionaryConfiguration(int numDim, int gridType, int numScalars, bool withDV, bool withAuxData, bool withLegacyData, bool withGridMetrics, const std::string &configPrefix, fixtures::ConfigurationType &inConfig)
static const std::string auxDataNames("velocity sconn imask")
virtual void SetParameter(const std::string &key, const std::string &value)
Definition: Parameters.H:77
void RenewStream(std::ostringstream &outStream)
void const size_t const size_t const size_t const int const int * gridType
Definition: EulerKernels.H:10
static const std::string cvNames("rho rhoV rhoE")
static const std::string timeFieldNames("simTime simDT simCFL gridTime gridDT gridCFL")
static const std::string scalarNames("scalarVars")
void const size_t const size_t const size_t const int * numScalars
Definition: EulerKernels.H:17
static const std::string dvNames("pressure temperature rhom1")
static const std::string paramNames(std::string("gamma sigmaDissipation sigmaDilatation inputDT inputCFL refRe refPr ")+std::string("dilatationCutoff refLength refRho refPressure refTemperature ")+std::string("power beta bulkViscFac Flags nonDimensional"))