readInitialConditions.H
Go to the documentation of this file.
1  word constProp(initialConditions.get<word>("constantProperty"));
2  if (constProp != "pressure" && constProp != "volume")
3  {
4  FatalError << "in initialConditions, unknown constantProperty type "
5  << constProp << nl << " Valid types are: pressure volume."
6  << abort(FatalError);
7  }
8 
9  word fractionBasis(initialConditions.get<word>("fractionBasis"));
10  if (fractionBasis != "mass" && fractionBasis != "mole")
11  {
12  FatalError << "in initialConditions, unknown fractionBasis type " << nl
13  << "Valid types are: mass or mole."
15  }
16 
17  label nSpecie = Y.size();
18  PtrList<gasHThermoPhysics> specieData(Y.size());
20  {
21  specieData.set
22  (
23  i,
25  (
26  dynamic_cast<const reactingMixture<gasHThermoPhysics>&>
27  (thermo).speciesData()[i]
28  )
29  );
30  }
31 
34 
35  dictionary fractions(initialConditions.subDict("fractions"));
36  if (fractionBasis == "mole")
37  {
38  forAll(Y, i)
39  {
40  fractions.readIfPresent(Y[i].name(), X0[i]);
41  }
42 
43  scalar mw = 0.0;
44  const scalar mTot = sum(X0);
45  forAll(Y, i)
46  {
47  X0[i] /= mTot;
48  mw += specieData[i].W()*X0[i];
49  }
50 
51  forAll(Y, i)
52  {
53  Y0[i] = X0[i]*specieData[i].W()/mw;
54  }
55  }
56  else // mass fraction
57  {
58  forAll(Y, i)
59  {
60  fractions.readIfPresent(Y[i].name(), Y0[i]);
61  }
62 
63  scalar invW = 0.0;
64  const scalar mTot = sum(Y0);
65  forAll(Y, i)
66  {
67  Y0[i] /= mTot;
68  invW += Y0[i]/specieData[i].W();
69  }
70  const scalar mw = 1.0/invW;
71 
72  forAll(Y, i)
73  {
74  X0[i] = Y0[i]*mw/specieData[i].W();
75  }
76  }
77 
78  scalar h0 = 0.0;
79  forAll(Y, i)
80  {
81  Y[i] = Y0[i];
82  h0 += Y0[i]*specieData[i].Hs(p[0], T0);
83  }
84 
86  thermo.correct();
87 
88  rho = thermo.rho();
89  scalar rho0 = rho[0];
90  scalar u0 = h0 - p0/rho0;
91  scalar R0 = p0/(rho0*T0);
92  Rspecific[0] = R0;
93 
94  scalar integratedHeat = 0.0;
95 
96  Info << constProp << " will be held constant." << nl
97  << " p = " << p[0] << " [Pa]" << nl
98  << " T = " << thermo.T()[0] << " [K] " << nl
99  << " rho = " << rho[0] << " [kg/m3]" << nl
100  << endl;
Foam::scalarList
List< scalar > scalarList
A List of scalars.
Definition: scalarList.H:64
mw
const scalar mw
Definition: readInitialConditions.H:70
p
volScalarField & p
Definition: createFieldRefs.H:8
Rspecific
Rspecific[0]
Definition: readInitialConditions.H:92
Foam::Zero
static constexpr const zero Zero
Global zero (0)
Definition: zero.H:131
Foam::dimEnergy
const dimensionSet dimEnergy
X0
scalarList X0(nSpecie, Zero)
forAll
forAll(specieData, i)
Definition: readInitialConditions.H:19
h0
scalar h0
Definition: readInitialConditions.H:78
fractions
dictionary fractions(initialConditions.subDict("fractions"))
fractionBasis
word fractionBasis(initialConditions.get< word >("fractionBasis"))
nSpecie
label nSpecie
Definition: readInitialConditions.H:17
thermo
Basic thermodynamics type based on the use of fitting functions for cp, h, s obtained from the templa...
specieData
PtrList< gasHThermoPhysics > specieData(Y.size())
Foam::endl
Ostream & endl(Ostream &os)
Add newline and flush stream.
Definition: Ostream.H:350
rho
rho
Definition: readInitialConditions.H:88
Foam::Info
messageStream Info
Information stream (uses stdout - output is on the master only)
Foam::name
word name(const complex &c)
Return string representation of complex.
Definition: complex.C:76
Foam::dimensionedScalar
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
Definition: dimensionedScalarFwd.H:43
Foam::FatalError
error FatalError
Foam::dimMass
const dimensionSet dimMass(1, 0, 0, 0, 0, 0, 0)
Definition: dimensionSets.H:52
Foam::abort
errorManip< error > abort(error &err)
Definition: errorManip.H:144
Y
PtrList< volScalarField > & Y
Definition: createFieldRefs.H:7
Foam::gasHThermoPhysics
sutherlandTransport< species::thermo< janafThermo< perfectGas< specie > >, sensibleEnthalpy > > gasHThermoPhysics
Definition: thermoPhysicsTypes.H:88
rho0
scalar rho0
Definition: readInitialConditions.H:89
integratedHeat
scalar integratedHeat
Definition: readInitialConditions.H:94
Foam::nl
constexpr char nl
Definition: Ostream.H:385
u0
scalar u0
Definition: readInitialConditions.H:90
Foam::sum
dimensioned< Type > sum(const DimensionedField< Type, GeoMesh > &df)
Definition: DimensionedFieldFunctions.C:327
constProp
word constProp(initialConditions.get< word >("constantProperty"))
Y0
scalarList Y0(nSpecie, Zero)
p0
const volScalarField & p0
Definition: EEqn.H:36
mTot
const scalar mTot
Definition: readInitialConditions.H:64
T0
scalar T0
Definition: createFields.H:22
R0
scalar R0
Definition: readInitialConditions.H:91