Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Development
openfoam
Commits
80b6624d
Commit
80b6624d
authored
Feb 16, 2009
by
mattijs
Browse files
Merge branch 'master' of /home/noisy3/OpenFOAM/OpenFOAM-dev
parents
68f1ba6a
c64902ea
Changes
1000
Hide whitespace changes
Inline
Side-by-side
Too many changes to show.
To preserve performance only
20 of 1000+
files are displayed.
Plain diff
Email patch
src/OpenFOAM/db/Time/Time.C
View file @
80b6624d
...
...
@@ -610,20 +610,6 @@ Foam::Time& Foam::Time::operator+=(const dimensionedScalar& deltaT)
Foam
::
Time
&
Foam
::
Time
::
operator
+=
(
const
scalar
deltaT
)
{
readModifiedObjects
();
if
(
!
subCycling_
)
{
if
(
timeIndex_
==
startTimeIndex_
)
{
functionObjects_
.
start
();
}
else
{
functionObjects_
.
execute
();
}
}
setDeltaT
(
deltaT
);
operator
++
();
...
...
src/OpenFOAM/db/dictionary/dictionaryIO.C
View file @
80b6624d
...
...
@@ -79,12 +79,7 @@ bool Foam::dictionary::substituteKeyword(const word& keyword)
{
const
dictionary
&
addDict
=
ePtr
->
dict
();
for
(
IDLList
<
entry
>::
const_iterator
iter
=
addDict
.
begin
();
iter
!=
addDict
.
end
();
++
iter
)
forAllConstIter
(
IDLList
<
entry
>
,
addDict
,
iter
)
{
add
(
iter
());
}
...
...
@@ -152,15 +147,22 @@ void Foam::dictionary::write(Ostream& os, bool subDict) const
os
<<
nl
<<
indent
<<
token
::
BEGIN_BLOCK
<<
incrIndent
<<
nl
;
}
for
(
IDLList
<
entry
>::
const_iterator
iter
=
begin
();
iter
!=
end
();
++
iter
)
forAllConstIter
(
IDLList
<
entry
>
,
*
this
,
iter
)
{
// Write entry & follow with carriage return.
os
<<
*
iter
;
const
entry
&
e
=
*
iter
;
// Write entry
os
<<
e
;
// Add new line if applicable
if
(
(
e
.
isDict
()
||
(
!
e
.
isDict
()
&&
parent
()
==
dictionary
::
null
))
&&
e
!=
*
last
()
)
{
os
<<
nl
;
}
// Check stream before going to next entry.
if
(
!
os
.
good
())
...
...
src/finiteVolume/Make/files
View file @
80b6624d
...
...
@@ -97,6 +97,7 @@ $(derivedFvPatchFields)/fixedFluxBoussinesqBuoyantPressure/fixedFluxBoussinesqBu
$(derivedFvPatchFields)/fixedFluxPressure/fixedFluxPressureFvPatchScalarField.C
$(derivedFvPatchFields)/fixedInternalValueFvPatchField/fixedInternalValueFvPatchFields.C
$(derivedFvPatchFields)/fixedNormalSlip/fixedNormalSlipFvPatchFields.C
$(derivedFvPatchFields)/fixedPressureCompressibleDensity/fixedPressureCompressibleDensityFvPatchScalarField.C
$(derivedFvPatchFields)/fluxCorrectedVelocity/fluxCorrectedVelocityFvPatchVectorField.C
$(derivedFvPatchFields)/freestream/freestreamFvPatchFields.C
$(derivedFvPatchFields)/freestreamPressure/freestreamPressureFvPatchScalarField.C
...
...
src/finiteVolume/fields/fvPatchFields/derived/fixedPressureCompressibleDensity/fixedPressureCompressibleDensityFvPatchScalarField.C
0 → 100644
View file @
80b6624d
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
\*---------------------------------------------------------------------------*/
#include
"fixedPressureCompressibleDensityFvPatchScalarField.H"
#include
"addToRunTimeSelectionTable.H"
#include
"fvPatchFieldMapper.H"
#include
"surfaceFields.H"
#include
"volFields.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace
Foam
{
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
fixedPressureCompressibleDensityFvPatchScalarField
::
fixedPressureCompressibleDensityFvPatchScalarField
(
const
fvPatch
&
p
,
const
DimensionedField
<
scalar
,
volMesh
>&
iF
)
:
fixedValueFvPatchField
<
scalar
>
(
p
,
iF
),
pName_
(
"pNameIsUndefined"
)
{}
fixedPressureCompressibleDensityFvPatchScalarField
::
fixedPressureCompressibleDensityFvPatchScalarField
(
const
fixedPressureCompressibleDensityFvPatchScalarField
&
ptf
,
const
fvPatch
&
p
,
const
DimensionedField
<
scalar
,
volMesh
>&
iF
,
const
fvPatchFieldMapper
&
mapper
)
:
fixedValueFvPatchField
<
scalar
>
(
ptf
,
p
,
iF
,
mapper
),
pName_
(
ptf
.
pName_
)
{}
fixedPressureCompressibleDensityFvPatchScalarField
::
fixedPressureCompressibleDensityFvPatchScalarField
(
const
fvPatch
&
p
,
const
DimensionedField
<
scalar
,
volMesh
>&
iF
,
const
dictionary
&
dict
)
:
fixedValueFvPatchField
<
scalar
>
(
p
,
iF
,
dict
),
pName_
(
dict
.
lookup
(
"p"
))
{}
fixedPressureCompressibleDensityFvPatchScalarField
::
fixedPressureCompressibleDensityFvPatchScalarField
(
const
fixedPressureCompressibleDensityFvPatchScalarField
&
ptf
)
:
fixedValueFvPatchField
<
scalar
>
(
ptf
),
pName_
(
ptf
.
pName_
)
{}
fixedPressureCompressibleDensityFvPatchScalarField
::
fixedPressureCompressibleDensityFvPatchScalarField
(
const
fixedPressureCompressibleDensityFvPatchScalarField
&
ptf
,
const
DimensionedField
<
scalar
,
volMesh
>&
iF
)
:
fixedValueFvPatchField
<
scalar
>
(
ptf
,
iF
),
pName_
(
ptf
.
pName_
)
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
void
fixedPressureCompressibleDensityFvPatchScalarField
::
updateCoeffs
()
{
if
(
updated
())
{
return
;
}
const
fvPatchField
<
scalar
>&
pp
=
patch
().
lookupPatchField
<
volScalarField
,
scalar
>
(
pName_
);
const
dictionary
&
thermoProps
=
db
().
lookupObject
<
IOdictionary
>
(
"thermodynamicProperties"
);
const
scalar
rholSat
=
dimensionedScalar
(
thermoProps
.
lookup
(
"rholSat"
)).
value
();
const
scalar
pSat
=
dimensionedScalar
(
thermoProps
.
lookup
(
"pSat"
)).
value
();
const
scalar
psil
=
dimensionedScalar
(
thermoProps
.
lookup
(
"psil"
)).
value
();
operator
==
(
rholSat
+
psil
*
(
pp
-
pSat
));
fixedValueFvPatchField
<
scalar
>::
updateCoeffs
();
}
void
fixedPressureCompressibleDensityFvPatchScalarField
::
write
(
Ostream
&
os
)
const
{
fvPatchField
<
scalar
>::
write
(
os
);
os
.
writeKeyword
(
"p"
)
<<
pName_
<<
token
::
END_STATEMENT
<<
nl
;
writeEntry
(
"value"
,
os
);
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
makePatchTypeField
(
fvPatchScalarField
,
fixedPressureCompressibleDensityFvPatchScalarField
);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
}
// End namespace Foam
// ************************************************************************* //
src/finiteVolume/fields/fvPatchFields/derived/fixedPressureCompressibleDensity/fixedPressureCompressibleDensityFvPatchScalarField.H
0 → 100644
View file @
80b6624d
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Class
Foam::fixedPressureCompressibleDensityFvPatchScalarField
Description
Calculate compressible density as a function of pressure and fluid
properties.
Example of the boundary condition specification:
@verbatim
inlet
{
type fixedPressureCompressibleDensity;
p p; // Name of static pressure field
value uniform 1; // Initial value
}
@endverbatim
SourceFiles
fixedPressureCompressibleDensityFvPatchScalarField.C
\*---------------------------------------------------------------------------*/
#ifndef fixedPressureCompressibleDensityFvPatchScalarField_H
#define fixedPressureCompressibleDensityFvPatchScalarField_H
#include
"fixedValueFvPatchFields.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace
Foam
{
/*---------------------------------------------------------------------------*\
Class fixedPressureCompressibleDensityFvPatchScalarField Declaration
\*---------------------------------------------------------------------------*/
class
fixedPressureCompressibleDensityFvPatchScalarField
:
public
fixedValueFvPatchScalarField
{
// Private data
//- Name of static pressure field
word
pName_
;
public:
//- Runtime type information
TypeName
(
"fixedPressureCompressibleDensity"
);
// Constructors
//- Construct from patch and internal field
fixedPressureCompressibleDensityFvPatchScalarField
(
const
fvPatch
&
,
const
DimensionedField
<
scalar
,
volMesh
>&
);
//- Construct from patch, internal field and dictionary
fixedPressureCompressibleDensityFvPatchScalarField
(
const
fvPatch
&
,
const
DimensionedField
<
scalar
,
volMesh
>&
,
const
dictionary
&
);
//- Construct by mapping given
// fixedPressureCompressibleDensityFvPatchScalarField
// onto a new patch
fixedPressureCompressibleDensityFvPatchScalarField
(
const
fixedPressureCompressibleDensityFvPatchScalarField
&
,
const
fvPatch
&
,
const
DimensionedField
<
scalar
,
volMesh
>&
,
const
fvPatchFieldMapper
&
);
//- Construct as copy
fixedPressureCompressibleDensityFvPatchScalarField
(
const
fixedPressureCompressibleDensityFvPatchScalarField
&
);
//- Construct and return a clone
virtual
tmp
<
fvPatchScalarField
>
clone
()
const
{
return
tmp
<
fvPatchScalarField
>
(
new
fixedPressureCompressibleDensityFvPatchScalarField
(
*
this
)
);
}
//- Construct as copy setting internal field reference
fixedPressureCompressibleDensityFvPatchScalarField
(
const
fixedPressureCompressibleDensityFvPatchScalarField
&
,
const
DimensionedField
<
scalar
,
volMesh
>&
);
//- Construct and return a clone setting internal field reference
virtual
tmp
<
fvPatchScalarField
>
clone
(
const
DimensionedField
<
scalar
,
volMesh
>&
iF
)
const
{
return
tmp
<
fvPatchScalarField
>
(
new
fixedPressureCompressibleDensityFvPatchScalarField
(
*
this
,
iF
)
);
}
// Member functions
//- Update the coefficients associated with the patch field
virtual
void
updateCoeffs
();
//- Write
virtual
void
write
(
Ostream
&
)
const
;
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
}
// End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //
src/finiteVolume/fields/fvPatchFields/derived/pressureInletUniformVelocity/pressureInletUniformVelocityFvPatchVectorField.C
View file @
80b6624d
...
...
@@ -104,7 +104,7 @@ void pressureInletUniformVelocityFvPatchVectorField::updateCoeffs()
pressureInletVelocityFvPatchVectorField
::
updateCoeffs
();
operator
==
(
patch
().
nf
()
*
s
um
(
patch
().
Sf
()
&
*
this
)
/
s
um
(
patch
().
magSf
()));
operator
==
(
patch
().
nf
()
*
gS
um
(
patch
().
Sf
()
&
*
this
)
/
gS
um
(
patch
().
magSf
()));
}
...
...
@@ -115,7 +115,7 @@ void pressureInletUniformVelocityFvPatchVectorField::operator=
const
fvPatchField
<
vector
>&
pvf
)
{
operator
==
(
patch
().
nf
()
*
s
um
(
patch
().
Sf
()
&
pvf
)
/
s
um
(
patch
().
magSf
()));
operator
==
(
patch
().
nf
()
*
gS
um
(
patch
().
Sf
()
&
pvf
)
/
gS
um
(
patch
().
magSf
()));
}
...
...
src/lagrangian/dieselSpray/parcel/parcel.C
View file @
80b6624d
...
...
@@ -297,7 +297,7 @@ bool Foam::parcel::move(spray& sDB)
ms
()
-=
ms
()
*
(
oTotMass
-
m
())
/
oTotMass
;
// remove parcel if it is 'small'
if
(
m
()
<
1.0e-2
0
)
if
(
m
()
<
1.0e-
1
2
)
{
keepParcel
=
false
;
...
...
@@ -574,6 +574,56 @@ void Foam::parcel::updateParcelProperties
// Prevent droplet temperature to go too low
// Mainly a numerical stability issue
Tnew
=
max
(
200
.
0
,
Tnew
);
scalar
Td
=
Tnew
;
scalar
pAtSurface
=
fuels
.
pv
(
pg
,
Td
,
X
());
scalar
pCompare
=
0
.
999
*
pg
;
scalar
boiling
=
pAtSurface
>=
pCompare
;
if
(
boiling
)
{
// can not go above boiling temperature
scalar
Terr
=
1.0e-3
;
label
n
=
0
;
scalar
dT
=
1
.
0
;
scalar
pOld
=
pAtSurface
;
while
(
dT
>
Terr
)
{
n
++
;
pAtSurface
=
fuels
.
pv
(
pg
,
Td
,
X
());
if
((
pAtSurface
<
pCompare
)
&&
(
pOld
<
pCompare
))
{
Td
+=
dT
;
}
else
{
if
((
pAtSurface
>
pCompare
)
&&
(
pOld
>
pCompare
))
{
Td
-=
dT
;
}
else
{
dT
*=
0
.
5
;
if
((
pAtSurface
>
pCompare
)
&&
(
pOld
<
pCompare
))
{
Td
-=
dT
;
}
else
{
Td
+=
dT
;
}
}
}
pOld
=
pAtSurface
;
if
(
debug
)
{
if
(
n
>
100
)
{
Info
<<
"n = "
<<
n
<<
", T = "
<<
Td
<<
", pv = "
<<
pAtSurface
<<
endl
;
}
}
}
Tnew
=
Td
;
}
}
// Evaporate droplet!
...
...
src/thermophysicalModels/liquids/CH4N2O/CH4N2O.H
View file @
80b6624d
...
...
@@ -90,16 +90,10 @@ public:
:
liquid
(
60.056
,
705.0
,
9.050e+6
,
0.218
,
0.337
,
405.85
,
9.3131e+1
,
465.0
,
1.52e-29
,
0.3449
,
4.7813e+4
),
rho_
(
1230.006936
,
0
,
0
,
0
,
0
,
0
),
pv_
(
12.06
,
-
3992.0
,
0
,
0
,
0
),
// hl_(1463034.50113228, 0, 0, 0, 0, 0),
// NN. we cant use constant heat of vapourisation, the below value is linear (sqrt) interpolation to critical temp
pv_
(
3015.15611544
,
-
185497.059684
,
-
430.223621983
,
0.00017405122622
,
2.0
),
hl_
(
705.0
,
2534249.0
,
0.5
,
0.0
,
0.0
,
0.0
),
cp_
(
2006.46063673904
,
0
,
0
,
0
,
0
,
0
),
// NN: enthalpy, h_, is not used in the sprayModel.
// For consistency, the enthalpy is derived from hlat and hl.
// It is, however, convenient to have it available.
h_
(
-
6154107.41641135
,
2006.46063673904
,
0
,
0
,
0
,
0
),
cpg_
(
811.875582789397
,
2099.04089516451
,
1627.3
,
1603.63660583455
,
724.41
),
B_
(
-
0.000383641934194752
,
0.447249234048222
,
-
469062.208605302
,
5.5628080458239e+18
,
-
2.3040162514986e+21
),
mu_
(
-
51.964
,
3670.6
,
5.7331
,
-
5.3495e-29
,
10
),
...
...
@@ -107,7 +101,7 @@ public:
K_
(
-
0.4267
,
0.0056903
,
-
8.0065e-06
,
1.815e-09
,
0
,
0
),
Kg_
(
6.977e-05
,
1.1243
,
844.9
,
-
148850
),
sigma_
(
705.0
,
1.0
,
0.0
,
0.0
,
0.0
,
0
),
// set to constant
D_
(
147.18
,
20.1
,
60.056
,
28
)
//
NN:
Same as nHeptane
D_
(
147.18
,
20.1
,
60.056
,
28
)
// Same as nHeptane
{}
CH4N2O
(
...
...
src/turbulenceModels/compressible/RAS/LRR/LRR.C
View file @
80b6624d
...
...
@@ -337,7 +337,7 @@ void LRR::correct()
RASModel
::
correct
();
volSymmTensorField
P
=
-
twoSymm
(
R_
&
fvc
::
grad
(
U_
));
volScalarField
G
(
"G"
,
0
.
5
*
tr
(
P
));
volScalarField
G
(
"G"
,
0
.
5
*
mag
(
tr
(
P
))
)
;
// Update espsilon and G at the wall
epsilon_
.
boundaryField
().
updateCoeffs
();
...
...
@@ -376,7 +376,7 @@ void LRR::correct()
{
label
faceCelli
=
curPatch
.
faceCells
()[
facei
];
P
[
faceCelli
]
*=
min
(
G
[
faceCelli
]
/
(
0
.
5
*
tr
(
P
[
faceCelli
])
+
SMALL
),
100
.
0
);
*=
min
(
G
[
faceCelli
]
/
(
0
.
5
*
mag
(
tr
(
P
[
faceCelli
])
)
+
SMALL
),
100
.
0
);
}
}
}
...
...
src/turbulenceModels/compressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.C
View file @
80b6624d
...
...
@@ -367,7 +367,7 @@ void LaunderGibsonRSTM::correct()
}
volSymmTensorField
P
=
-
twoSymm
(
R_
&
fvc
::
grad
(
U_
));
volScalarField
G
(
"G"
,
0
.
5
*
tr
(
P
));
volScalarField
G
(
"G"
,
0
.
5
*
mag
(
tr
(
P
))
)
;
// Update espsilon and G at the wall
epsilon_
.
boundaryField
().
updateCoeffs
();
...
...
@@ -406,7 +406,7 @@ void LaunderGibsonRSTM::correct()
{
label
faceCelli
=
curPatch
.
faceCells
()[
facei
];
P
[
faceCelli
]
*=
min
(
G
[
faceCelli
]
/
(
0
.
5
*
tr
(
P
[
faceCelli
])
+
SMALL
),
100
.
0
);
min
(
G
[
faceCelli
]
/
(
0
.
5
*
mag
(
tr
(
P
[
faceCelli
])
)
+
SMALL
),
100
.
0
);
}
}
}
...
...
src/turbulenceModels/incompressible/RAS/LRR/LRR.C
View file @
80b6624d
...
...
@@ -297,7 +297,7 @@ void LRR::correct()
}
volSymmTensorField
P
=
-
twoSymm
(
R_
&
fvc
::
grad
(
U_
));
volScalarField
G
(
"G"
,
0
.
5
*
tr
(
P
));
volScalarField
G
(
"G"
,
0
.
5
*
mag
(
tr
(
P
))
)
;
// Update espsilon and G at the wall
epsilon_
.
boundaryField
().
updateCoeffs
();
...
...
@@ -307,6 +307,7 @@ void LRR::correct()
(
fvm
::
ddt
(
epsilon_
)
+
fvm
::
div
(
phi_
,
epsilon_
)
-
fvm
::
Sp
(
fvc
::
div
(
phi_
),
epsilon_
)
//- fvm::laplacian(Ceps*(K/epsilon_)*R, epsilon_)
-
fvm
::
laplacian
(
DepsilonEff
(),
epsilon_
)
==
...
...
@@ -336,7 +337,7 @@ void LRR::correct()
{
label
faceCelli
=
curPatch
.
faceCells
()[
facei
];
P
[
faceCelli
]
*=
min
(
G
[
faceCelli
]
/
(
0
.
5
*
tr
(
P
[
faceCelli
])
+
SMALL
),
1
.
0
);
*=
min
(
G
[
faceCelli
]
/
(
0
.
5
*
mag
(
tr
(
P
[
faceCelli
])
)
+
SMALL
),
1
.
0
);
}
}
}
...
...
@@ -346,6 +347,7 @@ void LRR::correct()
(
fvm
::
ddt
(
R_
)