Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Development
openfoam
Commits
1636c475
Commit
1636c475
authored
Jun 27, 2008
by
graham
Browse files
Merge branch 'master' of
ssh://noisy/home/noisy2/OpenFOAM/OpenFOAM-dev
parents
bb35786d
14407bb2
Changes
17
Expand all
Hide whitespace changes
Inline
Side-by-side
.gitignore
View file @
1636c475
...
...
@@ -16,6 +16,7 @@
*.la
*.so
*.jar
lex.yy.c
# Corefiles
core
...
...
@@ -27,10 +28,13 @@ core
lnInclude
# linux build folder(s) - anywhere
linux*Gcc*
[SD]POpt*
linux*Gcc*
# reinstate wmake/rules that look like build folders
!wmake/rules/linux*
# but do ignore the derived files in there
wmake/rules/linux*/dirToString
wmake/rules/linux*/wmkdep
# doxygen generated documentation
doc/[Dd]oxygen/html
...
...
bin/tools/buildParaViewFunctions
View file @
1636c475
...
...
@@ -140,6 +140,7 @@ buildParaView ()
{
# set general options
addCMakeVariable
"BUILD_SHARED_LIBS:BOOL=ON"
addCMakeVariable
"CMAKE_BUILD_TYPE:STRING=Release"
# set paraview environment
unset
PARAVIEW_SRC_DIR
...
...
src/meshTools/octree/treeBoundBox.C
View file @
1636c475
...
...
@@ -27,8 +27,6 @@ License
#include "treeBoundBox.H"
#include "ListOps.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
const
Foam
::
treeBoundBox
Foam
::
treeBoundBox
::
greatBox
...
...
@@ -50,6 +48,7 @@ const Foam::label facesArray[6][4] =
};
//! @endcond
const
Foam
::
faceList
Foam
::
treeBoundBox
::
faces
(
initListList
<
face
,
label
,
6
,
4
>
(
facesArray
)
...
...
@@ -74,12 +73,28 @@ const Foam::label edgesArray[12][2] =
};
//! @endcond
const
Foam
::
edgeList
Foam
::
treeBoundBox
::
edges
const
Foam
::
FixedList
<
Foam
::
vector
,
6
>
Foam
::
treeBoundBox
::
faceNormals
(
initListList
<
edge
,
label
,
12
,
2
>
(
edgesArray
)
calcFaceNormals
(
)
);
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
Foam
::
FixedList
<
Foam
::
vector
,
6
>
Foam
::
treeBoundBox
::
calcFaceNormals
()
{
FixedList
<
vector
,
6
>
normals
;
normals
[
LEFT
]
=
vector
(
-
1
,
0
,
0
);
normals
[
RIGHT
]
=
vector
(
1
,
0
,
0
);
normals
[
BOTTOM
]
=
vector
(
0
,
-
1
,
0
);
normals
[
TOP
]
=
vector
(
0
,
1
,
0
);
normals
[
BACK
]
=
vector
(
0
,
0
,
-
1
);
normals
[
FRONT
]
=
vector
(
0
,
0
,
1
);
return
normals
;
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
// Construct as the bounding box of the given pointField
...
...
src/meshTools/octree/treeBoundBox.H
View file @
1636c475
...
...
@@ -78,6 +78,11 @@ class treeBoundBox
public
boundBox
{
private:
//- To initialise faceNormals.
static
FixedList
<
vector
,
6
>
calcFaceNormals
();
public:
// Static data members
...
...
@@ -142,6 +147,9 @@ public:
//- Edge to point addressing
static
const
edgeList
edges
;
//- Per face the unit normal
static
const
FixedList
<
vector
,
6
>
faceNormals
;
//- Face on which neighbour is
static
direction
neighbourFaceBits
(
const
label
&
);
...
...
src/postProcessing/fieldAverage/fieldAverage/fieldAverage.C
View file @
1636c475
...
...
@@ -85,23 +85,23 @@ void Foam::fieldAverage::initialise()
const
word
fieldName
=
faItems_
[
i
].
fieldName
();
if
(
obr_
.
foundObject
<
volScalarField
>
(
fieldName
))
{
addMeanField
s
<
scalar
>
(
i
,
meanScalarFields_
);
addMeanField
<
scalar
>
(
i
,
meanScalarFields_
);
}
else
if
(
obr_
.
foundObject
<
volVectorField
>
(
fieldName
))
{
addMeanField
s
<
vector
>
(
i
,
meanVectorFields_
);
addMeanField
<
vector
>
(
i
,
meanVectorFields_
);
}
else
if
(
obr_
.
foundObject
<
volSphericalTensorField
>
(
fieldName
))
{
addMeanField
s
<
sphericalTensor
>
(
i
,
meanSphericalTensorFields_
);
addMeanField
<
sphericalTensor
>
(
i
,
meanSphericalTensorFields_
);
}
else
if
(
obr_
.
foundObject
<
volSymmTensorField
>
(
fieldName
))
{
addMeanField
s
<
symmTensor
>
(
i
,
meanSymmTensorFields_
);
addMeanField
<
symmTensor
>
(
i
,
meanSymmTensorFields_
);
}
else
if
(
obr_
.
foundObject
<
volTensorField
>
(
fieldName
))
{
addMeanField
s
<
tensor
>
(
i
,
meanTensorFields_
);
addMeanField
<
tensor
>
(
i
,
meanTensorFields_
);
}
else
{
...
...
@@ -118,29 +118,29 @@ void Foam::fieldAverage::initialise()
if
(
faItems_
[
i
].
prime2Mean
())
{
const
word
fieldName
=
faItems_
[
i
].
fieldName
();
if
(
!
faItems_
[
i
].
mean
())
{
FatalErrorIn
(
"Foam::fieldAverage::initialise()"
)
<<
"To calculate the prime-squared average, the "
<<
"mean average must also be selected for field "
<<
fieldName
<<
nl
<<
exit
(
FatalError
);
}
if
(
obr_
.
foundObject
<
volScalarField
>
(
fieldName
))
{
if
(
!
faItems_
[
i
].
mean
())
{
FatalErrorIn
(
"Foam::fieldAverage::initialise()"
)
<<
"To calculate the prime-squared average, the "
<<
"mean average must also be selected for field "
<<
fieldName
<<
nl
<<
exit
(
FatalError
);
}
addPrime2MeanFields
<
scalar
>
(
i
,
prime2MeanScalarFields_
);
addPrime2MeanField
<
scalar
>
(
i
,
meanScalarFields_
,
prime2MeanScalarFields_
);
}
else
if
(
obr_
.
foundObject
<
volVectorField
>
(
fieldName
))
{
if
(
!
faItems_
[
i
].
mean
())
{
FatalErrorIn
(
"Foam::fieldAverage::initialise()"
)
<<
"To calculate the prime-squared average, the "
<<
"mean average must also be selected for field "
<<
fieldName
<<
nl
<<
exit
(
FatalError
);
}
addPrime2MeanFields
<
vector
>
addPrime2MeanField
<
vector
>
(
i
,
meanVectorFields_
,
prime2MeanSymmTensorFields_
);
}
...
...
@@ -251,8 +251,16 @@ void Foam::fieldAverage::calcAverages()
totalTime_
[
i
]
+=
obr_
.
time
().
deltaT
().
value
();
}
addMeanSqrToPrime2Mean
<
scalar
>
(
prime2MeanScalarFields_
);
addMeanSqrToPrime2Mean
<
vector
>
(
prime2MeanSymmTensorFields_
);
addMeanSqrToPrime2Mean
<
scalar
>
(
meanScalarFields_
,
prime2MeanScalarFields_
);
addMeanSqrToPrime2Mean
<
vector
>
(
meanVectorFields_
,
prime2MeanSymmTensorFields_
);
calculateMeanFields
<
scalar
>
(
meanScalarFields_
);
calculateMeanFields
<
vector
>
(
meanVectorFields_
);
...
...
@@ -260,8 +268,16 @@ void Foam::fieldAverage::calcAverages()
calculateMeanFields
<
symmTensor
>
(
meanSymmTensorFields_
);
calculateMeanFields
<
tensor
>
(
meanTensorFields_
);
calculatePrime2MeanFields
<
scalar
>
(
prime2MeanScalarFields_
);
calculatePrime2MeanFields
<
vector
>
(
prime2MeanSymmTensorFields_
);
calculatePrime2MeanFields
<
scalar
>
(
meanScalarFields_
,
prime2MeanScalarFields_
);
calculatePrime2MeanFields
<
vector
>
(
meanVectorFields_
,
prime2MeanSymmTensorFields_
);
}
...
...
src/postProcessing/fieldAverage/fieldAverage/fieldAverage.H
View file @
1636c475
...
...
@@ -161,22 +161,21 @@ protected:
// valid, and populate field lists
void
initialise
();
//- Add mean average field
s
to PtrList
s
//- Add mean average field to PtrList
template
<
class
Type
>
void
addMeanField
s
void
addMeanField
(
const
label
fieldi
,
const
label
,
PtrList
<
GeometricField
<
Type
,
fvPatchField
,
volMesh
>
>&
fieldList
);
//- Add prime-squared average field
s
to PtrList
s
//- Add prime-squared average field to PtrList
template
<
class
Type1
,
class
Type2
>
void
addPrime2MeanField
s
void
addPrime2MeanField
(
const
label
fieldi
,
const
label
,
PtrList
<
GeometricField
<
Type1
,
fvPatchField
,
volMesh
>
>&
,
PtrList
<
GeometricField
<
Type2
,
fvPatchField
,
volMesh
>
>&
fieldList
);
...
...
@@ -190,23 +189,22 @@ protected:
void
calculateMeanFields
(
PtrList
<
GeometricField
<
Type
,
fvPatchField
,
volMesh
>
>&
fieldList
);
//- Add mean-squared field value to prime-squared mean field
template
<
class
Type1
,
class
Type2
>
void
addMeanSqrToPrime2Mean
(
PtrList
<
GeometricField
<
Type1
,
fvPatchField
,
volMesh
>
>&
,
PtrList
<
GeometricField
<
Type2
,
fvPatchField
,
volMesh
>
>&
fieldList
);
//- Calculate prime-squared average fields
template
<
class
Type1
,
class
Type2
>
void
calculatePrime2MeanFields
(
PtrList
<
GeometricField
<
Type1
,
fvPatchField
,
volMesh
>
>&
,
PtrList
<
GeometricField
<
Type2
,
fvPatchField
,
volMesh
>
>&
fieldList
);
...
...
src/postProcessing/fieldAverage/fieldAverage/fieldAverageTemplates.C
View file @
1636c475
...
...
@@ -31,23 +31,22 @@ License
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
template
<
class
Type
>
void
Foam
::
fieldAverage
::
addMeanField
s
void
Foam
::
fieldAverage
::
addMeanField
(
const
label
fieldi
,
PtrList
<
GeometricField
<
Type
,
fvPatchField
,
volMesh
>
>&
f
ieldList
PtrList
<
GeometricField
<
Type
,
fvPatchField
,
volMesh
>
>&
meanF
ieldList
)
{
if
(
faItems_
[
fieldi
].
mean
())
{
typedef
GeometricField
<
Type
,
fvPatchField
,
volMesh
>
fieldType
;
const
fvMesh
&
mesh
=
refCast
<
const
fvMesh
>
(
obr_
);
const
word
&
fieldName
=
faItems_
[
fieldi
].
fieldName
();
const
fieldType
&
baseField
=
mesh
.
lookupObject
<
fieldType
>
(
fieldName
);
const
word
meanFieldName
=
fieldName
+
EXT_MEAN
;
const
fieldType
&
baseField
=
obr_
.
lookupObject
<
fieldType
>
(
fieldName
);
const
word
meanFieldName
=
fieldName
+
EXT_MEAN
;
Info
<<
"Reading/calculating field "
<<
meanFieldName
<<
nl
<<
endl
;
f
ieldList
.
set
meanF
ieldList
.
set
(
fieldi
,
new
fieldType
...
...
@@ -55,8 +54,8 @@ void Foam::fieldAverage::addMeanFields
IOobject
(
meanFieldName
,
mesh
.
time
().
timeName
(),
mesh
,
obr_
.
time
().
timeName
(),
obr_
,
IOobject
::
READ_IF_PRESENT
,
IOobject
::
NO_WRITE
),
...
...
@@ -68,26 +67,25 @@ void Foam::fieldAverage::addMeanFields
template
<
class
Type1
,
class
Type2
>
void
Foam
::
fieldAverage
::
addPrime2MeanField
s
void
Foam
::
fieldAverage
::
addPrime2MeanField
(
const
label
fieldi
,
PtrList
<
GeometricField
<
Type2
,
fvPatchField
,
volMesh
>
>&
fieldList
PtrList
<
GeometricField
<
Type1
,
fvPatchField
,
volMesh
>
>&
meanFieldList
,
PtrList
<
GeometricField
<
Type2
,
fvPatchField
,
volMesh
>
>&
prime2MeanFieldList
)
{
if
(
faItems_
[
fieldi
].
mean
())
if
(
faItems_
[
fieldi
].
mean
()
&&
meanFieldList
.
set
(
fieldi
)
)
{
typedef
GeometricField
<
Type1
,
fvPatchField
,
volMesh
>
fieldType1
;
typedef
GeometricField
<
Type2
,
fvPatchField
,
volMesh
>
fieldType2
;
const
fvMesh
&
mesh
=
refCast
<
const
fvMesh
>
(
obr_
);
const
word
&
fieldName
=
faItems_
[
fieldi
].
fieldName
();
const
fieldType1
&
baseField
=
mesh
.
lookupObject
<
fieldType1
>
(
fieldName
);
const
fieldType1
&
meanField
=
mesh
.
lookupObject
<
fieldType1
>
(
fieldName
+
EXT_MEAN
);
const
word
meanFieldName
=
fieldName
+
EXT_PRIME2MEAN
;
const
fieldType1
&
baseField
=
obr_
.
lookupObject
<
fieldType1
>
(
fieldName
);
const
fieldType1
&
meanField
=
meanFieldList
[
fieldi
];
const
word
meanFieldName
=
fieldName
+
EXT_PRIME2MEAN
;
Info
<<
"Reading/calculating field "
<<
meanFieldName
<<
nl
<<
endl
;
f
ieldList
.
set
prime2MeanF
ieldList
.
set
(
fieldi
,
new
fieldType2
...
...
@@ -95,8 +93,8 @@ void Foam::fieldAverage::addPrime2MeanFields
IOobject
(
meanFieldName
,
mesh
.
time
().
timeName
(),
mesh
,
obr_
.
time
().
timeName
(),
obr_
,
IOobject
::
READ_IF_PRESENT
,
IOobject
::
NO_WRITE
),
...
...
@@ -110,7 +108,7 @@ void Foam::fieldAverage::addPrime2MeanFields
template
<
class
Type
>
void
Foam
::
fieldAverage
::
calculateMeanFields
(
PtrList
<
GeometricField
<
Type
,
fvPatchField
,
volMesh
>
>&
f
ieldList
PtrList
<
GeometricField
<
Type
,
fvPatchField
,
volMesh
>
>&
meanF
ieldList
)
{
typedef
GeometricField
<
Type
,
fvPatchField
,
volMesh
>
fieldType
;
...
...
@@ -119,31 +117,27 @@ void Foam::fieldAverage::calculateMeanFields
forAll
(
faItems_
,
i
)
{
if
(
fieldList
.
set
(
i
))
if
(
f
aItems_
[
i
].
mean
()
&&
meanF
ieldList
.
set
(
i
))
{
if
(
faItems_
[
i
].
mean
())
const
word
&
fieldName
=
faItems_
[
i
].
fieldName
();
const
fieldType
&
baseField
=
obr_
.
lookupObject
<
fieldType
>
(
fieldName
);
fieldType
&
meanField
=
meanFieldList
[
i
];
scalar
alpha
=
0
.
0
;
scalar
beta
=
0
.
0
;
if
(
faItems_
[
i
].
timeBase
())
{
alpha
=
(
totalTime_
[
i
]
-
dt
)
/
totalTime_
[
i
];
beta
=
dt
/
totalTime_
[
i
];
}
else
{
const
fvMesh
&
mesh
=
refCast
<
const
fvMesh
>
(
obr_
);
const
word
&
fieldName
=
faItems_
[
i
].
fieldName
();
const
fieldType
&
baseField
=
mesh
.
lookupObject
<
fieldType
>
(
fieldName
);
fieldType
&
meanField
=
fieldList
[
i
];
scalar
alpha
=
0
.
0
;
scalar
beta
=
0
.
0
;
if
(
faItems_
[
i
].
timeBase
())
{
alpha
=
(
totalTime_
[
i
]
-
dt
)
/
totalTime_
[
i
];
beta
=
dt
/
totalTime_
[
i
];
}
else
{
alpha
=
scalar
(
totalIter_
[
i
]
-
1
)
/
scalar
(
totalIter_
[
i
]);
beta
=
1
.
0
/
scalar
(
totalIter_
[
i
]);
}
meanField
=
alpha
*
meanField
+
beta
*
baseField
;
alpha
=
scalar
(
totalIter_
[
i
]
-
1
)
/
scalar
(
totalIter_
[
i
]);
beta
=
1
.
0
/
scalar
(
totalIter_
[
i
]);
}
meanField
=
alpha
*
meanField
+
beta
*
baseField
;
}
}
}
...
...
@@ -152,7 +146,8 @@ void Foam::fieldAverage::calculateMeanFields
template
<
class
Type1
,
class
Type2
>
void
Foam
::
fieldAverage
::
calculatePrime2MeanFields
(
PtrList
<
GeometricField
<
Type2
,
fvPatchField
,
volMesh
>
>&
fieldList
PtrList
<
GeometricField
<
Type1
,
fvPatchField
,
volMesh
>
>&
meanFieldList
,
PtrList
<
GeometricField
<
Type2
,
fvPatchField
,
volMesh
>
>&
prime2MeanFieldList
)
{
typedef
GeometricField
<
Type1
,
fvPatchField
,
volMesh
>
fieldType1
;
...
...
@@ -162,36 +157,36 @@ void Foam::fieldAverage::calculatePrime2MeanFields
forAll
(
faItems_
,
i
)
{
if
(
fieldList
.
set
(
i
))
if
(
faItems_
[
i
].
prime2Mean
()
&&
meanFieldList
.
set
(
i
)
&&
prime2MeanFieldList
.
set
(
i
)
)
{
if
(
faItems_
[
i
].
prime2Mean
())
const
word
&
fieldName
=
faItems_
[
i
].
fieldName
();
const
fieldType1
&
baseField
=
obr_
.
lookupObject
<
fieldType1
>
(
fieldName
);
const
fieldType1
&
meanField
=
meanFieldList
[
i
];
fieldType2
&
prime2MeanField
=
prime2MeanFieldList
[
i
];
scalar
alpha
=
0
.
0
;
scalar
beta
=
0
.
0
;
if
(
faItems_
[
i
].
timeBase
())
{
const
fvMesh
&
mesh
=
refCast
<
const
fvMesh
>
(
obr_
);
const
word
&
fieldName
=
faItems_
[
i
].
fieldName
();
const
fieldType1
&
baseField
=
mesh
.
lookupObject
<
fieldType1
>
(
fieldName
);
const
fieldType1
&
meanField
=
mesh
.
lookupObject
<
fieldType1
>
(
fieldName
+
EXT_MEAN
);
fieldType2
&
prime2MeanField
=
fieldList
[
i
];
scalar
alpha
=
0
.
0
;
scalar
beta
=
0
.
0
;
if
(
faItems_
[
i
].
timeBase
())
{
alpha
=
(
totalTime_
[
i
]
-
dt
)
/
totalTime_
[
i
];
beta
=
dt
/
totalTime_
[
i
];
}
else
{
alpha
=
scalar
(
totalIter_
[
i
]
-
1
)
/
scalar
(
totalIter_
[
i
]);
beta
=
1
.
0
/
scalar
(
totalIter_
[
i
]);
}
prime2MeanField
=
alpha
*
prime2MeanField
+
beta
*
sqr
(
baseField
)
-
sqr
(
meanField
);
alpha
=
(
totalTime_
[
i
]
-
dt
)
/
totalTime_
[
i
];
beta
=
dt
/
totalTime_
[
i
];
}
else
{
alpha
=
scalar
(
totalIter_
[
i
]
-
1
)
/
scalar
(
totalIter_
[
i
]);
beta
=
1
.
0
/
scalar
(
totalIter_
[
i
]);
}
prime2MeanField
=
alpha
*
prime2MeanField
+
beta
*
sqr
(
baseField
)
-
sqr
(
meanField
);
}
}
}
...
...
@@ -200,7 +195,8 @@ void Foam::fieldAverage::calculatePrime2MeanFields
template
<
class
Type1
,
class
Type2
>
void
Foam
::
fieldAverage
::
addMeanSqrToPrime2Mean
(
PtrList
<
GeometricField
<
Type2
,
fvPatchField
,
volMesh
>
>&
fieldList
PtrList
<
GeometricField
<
Type1
,
fvPatchField
,
volMesh
>
>&
meanFieldList
,
PtrList
<
GeometricField
<
Type2
,
fvPatchField
,
volMesh
>
>&
prime2MeanFieldList
)
{
typedef
GeometricField
<
Type1
,
fvPatchField
,
volMesh
>
fieldType1
;
...
...
@@ -208,18 +204,17 @@ void Foam::fieldAverage::addMeanSqrToPrime2Mean
forAll
(
faItems_
,
i
)
{
if
(
fieldList
.
set
(
i
))
if
(
faItems_
[
i
].
prime2Mean
()
&&
meanFieldList
.
set
(
i
)
&&
prime2MeanFieldList
.
set
(
i
)
)
{
if
(
faItems_
[
i
].
prime2Mean
())
{
const
fvMesh
&
mesh
=
refCast
<
const
fvMesh
>
(
obr_
);
const
word
&
fieldName
=
faItems_
[
i
].
fieldName
();
const
fieldType1
&
meanField
=
mesh
.
lookupObject
<
fieldType1
>
(
fieldName
+
EXT_MEAN
);
fieldType2
&
prime2MeanField
=
fieldList
[
i
];
const
fieldType1
&
meanField
=
meanFieldList
[
i
];
fieldType2
&
prime2MeanField
=
prime2MeanFieldList
[
i
];
prime2MeanField
+=
sqr
(
meanField
);
}
prime2MeanField
+=
sqr
(
meanField
);
}
}
}
...
...
tutorials/lesCavitatingFoam/throttle3D/0.orig/U
0 → 100644
View file @
1636c475
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0];
internalField uniform (0 0 0);
boundaryField
{
inlet
{
type zeroGradient;
value uniform (0 0 0);
}
outlet
{
type zeroGradient;
value uniform (0 0 0);
}
walls
{
type fixedValue;
value uniform (0 0 0);
}
frontBack
{
type fixedValue;
value uniform (0 0 0);
}
}
// ************************************************************************* //
tutorials/lesCavitatingFoam/throttle3D/0.orig/gamma
0 → 100644
View file @
1636c475
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object gamma;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0];
internalField uniform 0;
boundaryField
{
inlet
{
type calculated;
value uniform 0;