Skip to content
GitLab
Menu
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
2ee25f42
Commit
2ee25f42
authored
Sep 30, 2008
by
Mark Olesen
Browse files
Merge commit 'OpenCFD/master' into olesenm
parents
4c159d30
f8aa06d1
Changes
72
Hide whitespace changes
Inline
Side-by-side
applications/utilities/parallelProcessing/reconstructPar/fvFieldReconstructor.H
View file @
2ee25f42
...
...
@@ -151,18 +151,20 @@ public:
const
IOobject
&
fieldIoObject
);
//- Reconstruct and write all volume fields
//- Reconstruct and write all
/selected
volume fields
template
<
class
Type
>
void
reconstructFvVolumeFields
(
const
IOobjectList
&
objects
const
IOobjectList
&
objects
,
const
HashSet
<
word
>&
selectedFields
);
//- Reconstruct and write all volume fields
//- Reconstruct and write all
/selected
volume fields
template
<
class
Type
>
void
reconstructFvSurfaceFields
(
const
IOobjectList
&
objects
const
IOobjectList
&
objects
,
const
HashSet
<
word
>&
selectedFields
);
};
...
...
applications/utilities/parallelProcessing/reconstructPar/fvFieldReconstructorReconstructFields.C
View file @
2ee25f42
...
...
@@ -131,7 +131,7 @@ Foam::fvFieldReconstructor::reconstructFvVolumeField
forAll
(
cp
,
faceI
)
{
// Subtract one to take into account offsets for
// face direction.
// face direction.
reverseAddressing
[
faceI
]
=
cp
[
faceI
]
-
1
-
curPatchStart
;
}
...
...
@@ -151,7 +151,7 @@ Foam::fvFieldReconstructor::reconstructFvVolumeField
forAll
(
cp
,
faceI
)
{
// Subtract one to take into account offsets for
// face direction.
// face direction.
label
curF
=
cp
[
faceI
]
-
1
;
// Is the face on the boundary?
...
...
@@ -282,7 +282,7 @@ Foam::fvFieldReconstructor::reconstructFvSurfaceField
// It is necessary to create a copy of the addressing array to
// take care of the face direction offset trick.
//
//
{
labelList
curAddr
(
faceProcAddressing_
[
procI
]);
...
...
@@ -342,7 +342,7 @@ Foam::fvFieldReconstructor::reconstructFvSurfaceField
forAll
(
cp
,
faceI
)
{
// Subtract one to take into account offsets for
// face direction.
// face direction.
reverseAddressing
[
faceI
]
=
cp
[
faceI
]
-
1
-
curPatchStart
;
}
...
...
@@ -452,11 +452,12 @@ Foam::fvFieldReconstructor::reconstructFvSurfaceField
}
// Reconstruct and write all volume fields
// Reconstruct and write all
/selected
volume fields
template
<
class
Type
>
void
Foam
::
fvFieldReconstructor
::
reconstructFvVolumeFields
(
const
IOobjectList
&
objects
const
IOobjectList
&
objects
,
const
HashSet
<
word
>&
selectedFields
)
{
const
word
&
fieldClassName
=
...
...
@@ -468,27 +469,29 @@ void Foam::fvFieldReconstructor::reconstructFvVolumeFields
{
Info
<<
" Reconstructing "
<<
fieldClassName
<<
"s
\n
"
<<
endl
;
for
(
IOobjectList
::
const_iterator
fieldIter
=
fields
.
begin
();
fieldIter
!=
fields
.
end
();
++
fieldIter
)
forAllConstIter
(
IOobjectList
,
fields
,
fieldIter
)
{
Info
<<
" "
<<
fieldIter
()
->
name
()
<<
endl
;
if
(
!
selectedFields
.
size
()
||
selectedFields
.
found
(
fieldIter
()
->
name
())
)
{
Info
<<
" "
<<
fieldIter
()
->
name
()
<<
endl
;
reconstructFvVolumeField
<
Type
>
(
*
fieldIter
())().
write
();
reconstructFvVolumeField
<
Type
>
(
*
fieldIter
())().
write
();
}
}
Info
<<
endl
;
}
}
// Reconstruct and write all surface fields
// Reconstruct and write all
/selected
surface fields
template
<
class
Type
>
void
Foam
::
fvFieldReconstructor
::
reconstructFvSurfaceFields
(
const
IOobjectList
&
objects
const
IOobjectList
&
objects
,
const
HashSet
<
word
>&
selectedFields
)
{
const
word
&
fieldClassName
=
...
...
@@ -500,18 +503,19 @@ void Foam::fvFieldReconstructor::reconstructFvSurfaceFields
{
Info
<<
" Reconstructing "
<<
fieldClassName
<<
"s
\n
"
<<
endl
;
for
(
IOobjectList
::
const_iterator
fieldIter
=
fields
.
begin
();
fieldIter
!=
fields
.
end
();
++
fieldIter
)
forAllConstIter
(
IOobjectList
,
fields
,
fieldIter
)
{
Info
<<
" "
<<
fieldIter
()
->
name
()
<<
endl
;
if
(
!
selectedFields
.
size
()
||
selectedFields
.
found
(
fieldIter
()
->
name
())
)
{
Info
<<
" "
<<
fieldIter
()
->
name
()
<<
endl
;
reconstructFvSurfaceField
<
Type
>
(
*
fieldIter
())().
write
();
reconstructFvSurfaceField
<
Type
>
(
*
fieldIter
())().
write
();
}
}
Info
<<
endl
;
}
}
...
...
applications/utilities/parallelProcessing/reconstructPar/reconstructPar.C
View file @
2ee25f42
...
...
@@ -48,9 +48,17 @@ int main(int argc, char *argv[])
argList
::
noParallel
();
timeSelector
::
addOptions
();
# include "addRegionOption.H"
argList
::
validOptions
.
insert
(
"fields"
,
"
\"
(list of fields)
\"
"
);
# include "setRootCase.H"
# include "createTime.H"
HashSet
<
word
>
selectedFields
;
if
(
args
.
options
().
found
(
"fields"
))
{
IStringStream
(
args
.
options
()[
"fields"
])()
>>
selectedFields
;
}
// determine the processor count directly
label
nProcs
=
0
;
while
(
dir
(
args
.
path
()
/
(
word
(
"processor"
)
+
name
(
nProcs
))))
...
...
@@ -184,13 +192,37 @@ int main(int argc, char *argv[])
procMeshes
.
boundaryProcAddressing
()
);
fvReconstructor
.
reconstructFvVolumeFields
<
scalar
>
(
objects
);
fvReconstructor
.
reconstructFvVolumeFields
<
vector
>
(
objects
);
fvReconstructor
.
reconstructFvVolumeFields
<
sphericalTensor
>
(
objects
);
fvReconstructor
.
reconstructFvVolumeFields
<
symmTensor
>
(
objects
);
fvReconstructor
.
reconstructFvVolumeFields
<
tensor
>
(
objects
);
fvReconstructor
.
reconstructFvVolumeFields
<
scalar
>
(
objects
,
selectedFields
);
fvReconstructor
.
reconstructFvVolumeFields
<
vector
>
(
objects
,
selectedFields
);
fvReconstructor
.
reconstructFvVolumeFields
<
sphericalTensor
>
(
objects
,
selectedFields
);
fvReconstructor
.
reconstructFvVolumeFields
<
symmTensor
>
(
objects
,
selectedFields
);
fvReconstructor
.
reconstructFvVolumeFields
<
tensor
>
(
objects
,
selectedFields
);
fvReconstructor
.
reconstructFvSurfaceFields
<
scalar
>
(
objects
);
fvReconstructor
.
reconstructFvSurfaceFields
<
scalar
>
(
objects
,
selectedFields
);
}
else
{
...
...
applications/utilities/postProcessing/miscellaneous/execFlowFunctionObjects/execFlowFunctionObjects.C
View file @
2ee25f42
...
...
@@ -139,7 +139,7 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
IOobject
LESPropertiesHeader
(
"
RA
SProperties"
,
"
LE
SProperties"
,
runTime
.
constant
(),
mesh
,
IOobject
::
MUST_READ
,
...
...
src/ODE/ODE/ODE.H
View file @
2ee25f42
...
...
@@ -34,7 +34,7 @@ Description
#define ODE_H
#include
"scalarField.H"
#include
"Matri
x
.H"
#include
"
scalar
Matri
ces
.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
...
...
@@ -80,7 +80,7 @@ public:
const
scalar
x
,
const
scalarField
&
y
,
scalarField
&
dfdx
,
Matrix
<
scalar
>
&
dfdy
scalarSquareMatrix
&
dfdy
)
const
=
0
;
};
...
...
src/ODE/ODESolvers/KRR4/KRR4.C
View file @
2ee25f42
...
...
@@ -25,7 +25,6 @@ License
\*---------------------------------------------------------------------------*/
#include
"KRR4.H"
#include
"simpleMatrix.H"
#include
"addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
...
...
@@ -36,11 +35,11 @@ namespace Foam
{
addToRunTimeSelectionTable
(
ODESolver
,
KRR4
,
ODE
);
const
scalar
const
scalar
KRR4
::
safety
=
0
.
9
,
KRR4
::
grow
=
1
.
5
,
KRR4
::
pgrow
=
-
0
.
25
,
KRR4
::
shrink
=
0
.
5
,
KRR4
::
pshrink
=
(
-
1
.
0
/
3
.
0
),
KRR4
::
errcon
=
0
.
1296
;
const
scalar
const
scalar
KRR4
::
gamma
=
1
.
0
/
2
.
0
,
KRR4
::
a21
=
2
.
0
,
KRR4
::
a31
=
48
.
0
/
25
.
0
,
KRR4
::
a32
=
6
.
0
/
25
.
0
,
KRR4
::
c21
=
-
8
.
0
,
KRR4
::
c31
=
372
.
0
/
25
.
0
,
KRR4
::
c32
=
12
.
0
/
5
.
0
,
...
...
@@ -81,8 +80,8 @@ void Foam::KRR4::solve
const
ODE
&
ode
,
scalar
&
x
,
scalarField
&
y
,
scalarField
&
dydx
,
const
scalar
eps
,
scalarField
&
dydx
,
const
scalar
eps
,
const
scalarField
&
yScale
,
const
scalar
hTry
,
scalar
&
hDid
,
...
...
@@ -109,14 +108,14 @@ void Foam::KRR4::solve
a_
[
i
][
i
]
+=
1
.
0
/
(
gamma
*
h
);
}
simpleMatrix
<
scalar
>::
LUDecompose
(
a_
,
pivotIndices_
);
LUDecompose
(
a_
,
pivotIndices_
);
for
(
register
label
i
=
0
;
i
<
n_
;
i
++
)
{
g1_
[
i
]
=
dydxTemp_
[
i
]
+
h
*
c1X
*
dfdx_
[
i
];
}
simpleMatrix
<
scalar
>::
LUBacksubstitute
(
a_
,
pivotIndices_
,
g1_
);
LUBacksubstitute
(
a_
,
pivotIndices_
,
g1_
);
for
(
register
label
i
=
0
;
i
<
n_
;
i
++
)
{
...
...
@@ -131,7 +130,7 @@ void Foam::KRR4::solve
g2_
[
i
]
=
dydx_
[
i
]
+
h
*
c2X
*
dfdx_
[
i
]
+
c21
*
g1_
[
i
]
/
h
;
}
simpleMatrix
<
scalar
>::
LUBacksubstitute
(
a_
,
pivotIndices_
,
g2_
);
LUBacksubstitute
(
a_
,
pivotIndices_
,
g2_
);
for
(
register
label
i
=
0
;
i
<
n_
;
i
++
)
{
...
...
@@ -146,7 +145,7 @@ void Foam::KRR4::solve
g3_
[
i
]
=
dydx
[
i
]
+
h
*
c3X
*
dfdx_
[
i
]
+
(
c31
*
g1_
[
i
]
+
c32
*
g2_
[
i
])
/
h
;
}
simpleMatrix
<
scalar
>::
LUBacksubstitute
(
a_
,
pivotIndices_
,
g3_
);
LUBacksubstitute
(
a_
,
pivotIndices_
,
g3_
);
for
(
register
label
i
=
0
;
i
<
n_
;
i
++
)
{
...
...
@@ -154,7 +153,7 @@ void Foam::KRR4::solve
+
(
c41
*
g1_
[
i
]
+
c42
*
g2_
[
i
]
+
c43
*
g3_
[
i
])
/
h
;
}
simpleMatrix
<
scalar
>::
LUBacksubstitute
(
a_
,
pivotIndices_
,
g4_
);
LUBacksubstitute
(
a_
,
pivotIndices_
,
g4_
);
for
(
register
label
i
=
0
;
i
<
n_
;
i
++
)
{
...
...
src/ODE/ODESolvers/KRR4/KRR4.H
View file @
2ee25f42
...
...
@@ -62,15 +62,15 @@ class KRR4
mutable
scalarField
g4_
;
mutable
scalarField
yErr_
;
mutable
scalarField
dfdx_
;
mutable
Matrix
<
scalar
>
dfdy_
;
mutable
Matrix
<
scalar
>
a_
;
mutable
scalarSquareMatrix
dfdy_
;
mutable
scalarSquareMatrix
a_
;
mutable
labelList
pivotIndices_
;
static
const
int
maxtry
=
40
;
static
const
scalar
safety
,
grow
,
pgrow
,
shrink
,
pshrink
,
errcon
;
static
const
scalar
static
const
scalar
gamma
,
a21
,
a31
,
a32
,
c21
,
c31
,
c32
,
c41
,
c42
,
c43
,
...
...
src/ODE/ODESolvers/SIBS/SIBS.H
View file @
2ee25f42
...
...
@@ -60,8 +60,8 @@ class SIBS
static
const
scalar
safe1
,
safe2
,
redMax
,
redMin
,
scaleMX
;
mutable
scalarField
a_
;
mutable
Matrix
<
scalar
>
alpha_
;
mutable
Matrix
<
scalar
>
d_p_
;
mutable
scalarSquareMatrix
alpha_
;
mutable
scalarSquareMatrix
d_p_
;
mutable
scalarField
x_p_
;
mutable
scalarField
err_
;
...
...
@@ -69,7 +69,7 @@ class SIBS
mutable
scalarField
ySeq_
;
mutable
scalarField
yErr_
;
mutable
scalarField
dfdx_
;
mutable
Matrix
<
scalar
>
dfdy_
;
mutable
scalarSquareMatrix
dfdy_
;
mutable
label
first_
,
kMax_
,
kOpt_
;
mutable
scalar
epsOld_
,
xNew_
;
...
...
@@ -82,7 +82,7 @@ void SIMPR
const
scalarField
&
y
,
const
scalarField
&
dydx
,
const
scalarField
&
dfdx
,
const
Matrix
<
scalar
>
&
dfdy
,
const
scalarSquareMatrix
&
dfdy
,
const
scalar
deltaX
,
const
label
nSteps
,
scalarField
&
yEnd
...
...
@@ -97,7 +97,7 @@ void polyExtrapolate
scalarField
&
yz
,
scalarField
&
dy
,
scalarField
&
x_p
,
Matrix
<
scalar
>
&
d_p
scalarSquareMatrix
&
d_p
)
const
;
...
...
src/ODE/ODESolvers/SIBS/SIMPR.C
View file @
2ee25f42
...
...
@@ -25,7 +25,6 @@ License
\*---------------------------------------------------------------------------*/
#include
"SIBS.H"
#include
"simpleMatrix.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
...
...
@@ -36,7 +35,7 @@ void Foam::SIBS::SIMPR
const
scalarField
&
y
,
const
scalarField
&
dydx
,
const
scalarField
&
dfdx
,
const
Matrix
<
scalar
>
&
dfdy
,
const
scalarSquareMatrix
&
dfdy
,
const
scalar
deltaX
,
const
label
nSteps
,
scalarField
&
yEnd
...
...
@@ -44,7 +43,7 @@ void Foam::SIBS::SIMPR
{
scalar
h
=
deltaX
/
nSteps
;
Matrix
<
scalar
>
a
(
n_
,
n_
);
scalarSquareMatrix
a
(
n_
);
for
(
register
label
i
=
0
;
i
<
n_
;
i
++
)
{
for
(
register
label
j
=
0
;
j
<
n_
;
j
++
)
...
...
@@ -55,14 +54,14 @@ void Foam::SIBS::SIMPR
}
labelList
pivotIndices
(
n_
);
simpleMatrix
<
scalar
>::
LUDecompose
(
a
,
pivotIndices
);
LUDecompose
(
a
,
pivotIndices
);
for
(
register
label
i
=
0
;
i
<
n_
;
i
++
)
{
yEnd
[
i
]
=
h
*
(
dydx
[
i
]
+
h
*
dfdx
[
i
]);
}
simpleMatrix
<
scalar
>::
LUBacksubstitute
(
a
,
pivotIndices
,
yEnd
);
LUBacksubstitute
(
a
,
pivotIndices
,
yEnd
);
scalarField
del
(
yEnd
);
scalarField
ytemp
(
n_
);
...
...
@@ -83,7 +82,7 @@ void Foam::SIBS::SIMPR
yEnd
[
i
]
=
h
*
yEnd
[
i
]
-
del
[
i
];
}
simpleMatrix
<
scalar
>::
LUBacksubstitute
(
a
,
pivotIndices
,
yEnd
);
LUBacksubstitute
(
a
,
pivotIndices
,
yEnd
);
for
(
register
label
i
=
0
;
i
<
n_
;
i
++
)
{
...
...
@@ -99,7 +98,7 @@ void Foam::SIBS::SIMPR
yEnd
[
i
]
=
h
*
yEnd
[
i
]
-
del
[
i
];
}
simpleMatrix
<
scalar
>::
LUBacksubstitute
(
a
,
pivotIndices
,
yEnd
);
LUBacksubstitute
(
a
,
pivotIndices
,
yEnd
);
for
(
register
label
i
=
0
;
i
<
n_
;
i
++
)
{
...
...
src/ODE/ODESolvers/SIBS/polyExtrapolate.C
View file @
2ee25f42
...
...
@@ -36,7 +36,7 @@ void Foam::SIBS::polyExtrapolate
scalarField
&
yz
,
scalarField
&
dy
,
scalarField
&
x
,
Matrix
<
scalar
>
&
d
scalarSquareMatrix
&
d
)
const
{
label
n
=
yz
.
size
();
...
...
src/OpenFOAM/Make/files
View file @
2ee25f42
...
...
@@ -177,8 +177,9 @@ dimensionedTypes/dimensionedTensor/dimensionedTensor.C
matrices/solution/solution.C
scalarMatrix = matrices/scalarMatrix
$(scalarMatrix)/scalarMatrix.C
scalarMatrices = matrices/scalarMatrices
$(scalarMatrices)/scalarMatrices.C
$(scalarMatrices)/SVD/SVD.C
LUscalarMatrix = matrices/LUscalarMatrix
$(LUscalarMatrix)/LUscalarMatrix.C
...
...
src/OpenFOAM/db/IOstreams/Pstreams/PstreamCommsStruct.C
View file @
2ee25f42
...
...
@@ -22,8 +22,6 @@ License
along with OpenFOAM; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Description
\*---------------------------------------------------------------------------*/
#include
"Pstream.H"
...
...
src/OpenFOAM/matrices/DiagonalMatrix/DiagonalMatrix.C
0 → 100644
View file @
2ee25f42
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 1991-2007 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
"DiagonalMatrix.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
template
<
class
Type
>
template
<
class
Form
>
Foam
::
DiagonalMatrix
<
Type
>::
DiagonalMatrix
(
const
Matrix
<
Form
,
Type
>&
a
)
:
List
<
Type
>
(
min
(
a
.
n
(),
a
.
m
()))
{
forAll
(
*
this
,
i
)
{
this
->
operator
[](
i
)
=
a
[
i
][
i
];
}
}
template
<
class
Type
>
Foam
::
DiagonalMatrix
<
Type
>::
DiagonalMatrix
(
const
label
size
)
:
List
<
Type
>
(
size
)
{}
template
<
class
Type
>
Foam
::
DiagonalMatrix
<
Type
>::
DiagonalMatrix
(
const
label
size
,
const
Type
&
val
)
:
List
<
Type
>
(
size
,
val
)
{}
template
<
class
Type
>
Foam
::
DiagonalMatrix
<
Type
>&
Foam
::
DiagonalMatrix
<
Type
>::
invert
()
{
forAll
(
*
this
,
i
)
{
Type
x
=
this
->
operator
[](
i
);
if
(
mag
(
x
)
<
VSMALL
)
{
this
->
operator
[](
i
)
=
Type
(
0
);
}
else
{
this
->
operator
[](
i
)
=
Type
(
1
)
/
x
;
}
}
return
this
;
}
template
<
class
Type
>
Foam
::
DiagonalMatrix
<
Type
>
Foam
::
inv
(
const
DiagonalMatrix
<
Type
>&
A
)
{
DiagonalMatrix
<
Type
>
Ainv
=
A
;
forAll
(
A
,
i
)
{
Type
x
=
A
[
i
];
if
(
mag
(
x
)
<
VSMALL
)
{
Ainv
[
i
]
=
Type
(
0
);
}
else
{
Ainv
[
i
]
=
Type
(
1
)
/
x
;
}
}
return
Ainv
;
}
// ************************************************************************* //
src/OpenFOAM/matrices/DiagonalMatrix/DiagonalMatrix.H
0 → 100644
View file @
2ee25f42
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 1991-2007 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::DiagonalMatrix<Type>
Description
DiagonalMatrix<Type> is a 2D diagonal matrix of objects
of type Type, size nxn
SourceFiles
DiagonalMatrix.C
\*---------------------------------------------------------------------------*/
#ifndef DiagonalMatrix_H
#define DiagonalMatrix_H
#include
"List.H"