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
228456ca
Commit
228456ca
authored
Dec 17, 2010
by
Andrew Heather
Browse files
COMP: resolve conflict
parents
e9ba4655
3f60b19d
Changes
81
Hide whitespace changes
Inline
Side-by-side
ReleaseNotes-dev
View file @
228456ca
...
...
@@ -184,6 +184,8 @@
+ =setSet=: allows time range (e.g. 0:100) in combination with -batch argument
to execute the commands for multiple times.
* Post-processing
+ =paraFoam=, =foamToVTK=: full support for polyhedral cell type in recent
Paraview versions.
+ =foamToEnsight=: parallel continuous data. new =-nodeValues= option to generate and output nodal
field data.
+ =singleCellMesh=: new utility to convert mesh and fields to a single cell
...
...
applications/solvers/multiphase/twoPhaseEulerFoam/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C
View file @
228456ca
...
...
@@ -218,7 +218,7 @@ void Foam::kineticTheoryModel::solve(const volTensorField& gradUat)
// The solution is higly unstable close to the packing limit.
gs0_
=
radialModel_
->
g0
(
min
(
max
(
alpha_
,
1e-6
),
alphaMax_
-
0
.
01
),
min
(
max
(
alpha_
,
scalar
(
1e-6
)
)
,
alphaMax_
-
0
.
01
),
alphaMax_
);
...
...
@@ -255,7 +255,7 @@ void Foam::kineticTheoryModel::solve(const volTensorField& gradUat)
volScalarField
J1
=
3
.
0
*
betaPrim
;
volScalarField
J2
=
0
.
25
*
sqr
(
betaPrim
)
*
da_
*
sqr
(
Ur
)
/
(
max
(
alpha_
,
1e-6
)
*
rhoa_
*
sqrtPi
*
(
ThetaSqrt
+
TsmallSqrt
));
/
(
max
(
alpha_
,
scalar
(
1e-6
)
)
*
rhoa_
*
sqrtPi
*
(
ThetaSqrt
+
TsmallSqrt
));
// bulk viscosity p. 45 (Lun et al. 1984).
lambda_
=
(
4
.
0
/
3
.
0
)
*
sqr
(
alpha_
)
*
rhoa_
*
da_
*
gs0_
*
(
1
.
0
+
e_
)
*
ThetaSqrt
/
sqrtPi
;
...
...
@@ -309,7 +309,11 @@ void Foam::kineticTheoryModel::solve(const volTensorField& gradUat)
volScalarField
t1
=
K1
*
alpha_
+
rhoa_
;
volScalarField
l1
=
-
t1
*
trD
;
volScalarField
l2
=
sqr
(
t1
)
*
tr2D
;
volScalarField
l3
=
4
.
0
*
K4
*
max
(
alpha_
,
1e-6
)
*
(
2
.
0
*
K3
*
trD2
+
K2
*
tr2D
);
volScalarField
l3
=
4
.
0
*
K4
*
max
(
alpha_
,
scalar
(
1e-6
))
*
(
2
.
0
*
K3
*
trD2
+
K2
*
tr2D
);
Theta_
=
sqr
((
l1
+
sqrt
(
l2
+
l3
))
/
(
2
.
0
*
(
alpha_
+
1.0e-4
)
*
K4
));
}
...
...
applications/test/momentOfInertia/Make/options
View file @
228456ca
EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/triSurface/lnInclude
EXE_LIBS = \
-lmeshTools
applications/test/momentOfInertia/Test-momentOfInertia.C
View file @
228456ca
...
...
@@ -26,180 +26,38 @@ Application
Description
Calculates the inertia tensor and principal axes and moments of a
test face
and
tetrahedron.
test face
,
tetrahedron
and mesh
.
\*---------------------------------------------------------------------------*/
#include
"argList.H"
#include
"Time.H"
#include
"polyMesh.H"
#include
"ListOps.H"
#include
"face.H"
#include
"tetPointRef.H"
#include
"triFaceList.H"
#include
"OFstream.H"
#include
"meshTools.H"
#include
"momentOfInertia.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
using
namespace
Foam
;
void
massPropertiesSolid
(
const
pointField
&
pts
,
const
triFaceList
triFaces
,
scalar
density
,
scalar
&
mass
,
vector
&
cM
,
tensor
&
J
)
int
main
(
int
argc
,
char
*
argv
[])
{
// Reimplemented from: Wm4PolyhedralMassProperties.cpp
// File Version: 4.10.0 (2009/11/18)
// Geometric Tools, LC
// Copyright (c) 1998-2010
// Distributed under the Boost Software License, Version 1.0.
// http://www.boost.org/LICENSE_1_0.txt
// http://www.geometrictools.com/License/Boost/LICENSE_1_0.txt
// Boost Software License - Version 1.0 - August 17th, 2003
// Permission is hereby granted, free of charge, to any person or
// organization obtaining a copy of the software and accompanying
// documentation covered by this license (the "Software") to use,
// reproduce, display, distribute, execute, and transmit the
// Software, and to prepare derivative works of the Software, and
// to permit third-parties to whom the Software is furnished to do
// so, all subject to the following:
// The copyright notices in the Software and this entire
// statement, including the above license grant, this restriction
// and the following disclaimer, must be included in all copies of
// the Software, in whole or in part, and all derivative works of
// the Software, unless such copies or derivative works are solely
// in the form of machine-executable object code generated by a
// source language processor.
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND
// NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
// ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR
// OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
const
scalar
r6
=
1
.
0
/
6
.
0
;
const
scalar
r24
=
1
.
0
/
24
.
0
;
const
scalar
r60
=
1
.
0
/
60
.
0
;
const
scalar
r120
=
1
.
0
/
120
.
0
;
// order: 1, x, y, z, x^2, y^2, z^2, xy, yz, zx
scalarField
integrals
(
10
,
0
.
0
);
forAll
(
triFaces
,
i
)
{
const
triFace
&
tri
(
triFaces
[
i
]);
// vertices of triangle i
vector
v0
=
pts
[
tri
[
0
]];
vector
v1
=
pts
[
tri
[
1
]];
vector
v2
=
pts
[
tri
[
2
]];
// cross product of edges
vector
eA
=
v1
-
v0
;
vector
eB
=
v2
-
v0
;
vector
n
=
eA
^
eB
;
// compute integral terms
scalar
tmp0
,
tmp1
,
tmp2
;
scalar
f1x
,
f2x
,
f3x
,
g0x
,
g1x
,
g2x
;
tmp0
=
v0
.
x
()
+
v1
.
x
();
f1x
=
tmp0
+
v2
.
x
();
tmp1
=
v0
.
x
()
*
v0
.
x
();
tmp2
=
tmp1
+
v1
.
x
()
*
tmp0
;
f2x
=
tmp2
+
v2
.
x
()
*
f1x
;
f3x
=
v0
.
x
()
*
tmp1
+
v1
.
x
()
*
tmp2
+
v2
.
x
()
*
f2x
;
g0x
=
f2x
+
v0
.
x
()
*
(
f1x
+
v0
.
x
());
g1x
=
f2x
+
v1
.
x
()
*
(
f1x
+
v1
.
x
());
g2x
=
f2x
+
v2
.
x
()
*
(
f1x
+
v2
.
x
());
scalar
f1y
,
f2y
,
f3y
,
g0y
,
g1y
,
g2y
;
tmp0
=
v0
.
y
()
+
v1
.
y
();
f1y
=
tmp0
+
v2
.
y
();
tmp1
=
v0
.
y
()
*
v0
.
y
();
tmp2
=
tmp1
+
v1
.
y
()
*
tmp0
;
f2y
=
tmp2
+
v2
.
y
()
*
f1y
;
f3y
=
v0
.
y
()
*
tmp1
+
v1
.
y
()
*
tmp2
+
v2
.
y
()
*
f2y
;
g0y
=
f2y
+
v0
.
y
()
*
(
f1y
+
v0
.
y
());
g1y
=
f2y
+
v1
.
y
()
*
(
f1y
+
v1
.
y
());
g2y
=
f2y
+
v2
.
y
()
*
(
f1y
+
v2
.
y
());
scalar
f1z
,
f2z
,
f3z
,
g0z
,
g1z
,
g2z
;
tmp0
=
v0
.
z
()
+
v1
.
z
();
f1z
=
tmp0
+
v2
.
z
();
tmp1
=
v0
.
z
()
*
v0
.
z
();
tmp2
=
tmp1
+
v1
.
z
()
*
tmp0
;
f2z
=
tmp2
+
v2
.
z
()
*
f1z
;
f3z
=
v0
.
z
()
*
tmp1
+
v1
.
z
()
*
tmp2
+
v2
.
z
()
*
f2z
;
g0z
=
f2z
+
v0
.
z
()
*
(
f1z
+
v0
.
z
());
g1z
=
f2z
+
v1
.
z
()
*
(
f1z
+
v1
.
z
());
g2z
=
f2z
+
v2
.
z
()
*
(
f1z
+
v2
.
z
());
// update integrals
integrals
[
0
]
+=
n
.
x
()
*
f1x
;
integrals
[
1
]
+=
n
.
x
()
*
f2x
;
integrals
[
2
]
+=
n
.
y
()
*
f2y
;
integrals
[
3
]
+=
n
.
z
()
*
f2z
;
integrals
[
4
]
+=
n
.
x
()
*
f3x
;
integrals
[
5
]
+=
n
.
y
()
*
f3y
;
integrals
[
6
]
+=
n
.
z
()
*
f3z
;
integrals
[
7
]
+=
n
.
x
()
*
(
v0
.
y
()
*
g0x
+
v1
.
y
()
*
g1x
+
v2
.
y
()
*
g2x
);
integrals
[
8
]
+=
n
.
y
()
*
(
v0
.
z
()
*
g0y
+
v1
.
z
()
*
g1y
+
v2
.
z
()
*
g2y
);
integrals
[
9
]
+=
n
.
z
()
*
(
v0
.
x
()
*
g0z
+
v1
.
x
()
*
g1z
+
v2
.
x
()
*
g2z
);
}
integrals
[
0
]
*=
r6
;
integrals
[
1
]
*=
r24
;
integrals
[
2
]
*=
r24
;
integrals
[
3
]
*=
r24
;
integrals
[
4
]
*=
r60
;
integrals
[
5
]
*=
r60
;
integrals
[
6
]
*=
r60
;
integrals
[
7
]
*=
r120
;
integrals
[
8
]
*=
r120
;
integrals
[
9
]
*=
r120
;
// mass
mass
=
integrals
[
0
];
// center of mass
cM
=
vector
(
integrals
[
1
],
integrals
[
2
],
integrals
[
3
])
/
mass
;
// inertia relative to origin
J
.
xx
()
=
integrals
[
5
]
+
integrals
[
6
];
J
.
xy
()
=
-
integrals
[
7
];
J
.
xz
()
=
-
integrals
[
9
];
J
.
yx
()
=
J
.
xy
();
J
.
yy
()
=
integrals
[
4
]
+
integrals
[
6
];
J
.
yz
()
=
-
integrals
[
8
];
J
.
zx
()
=
J
.
xz
();
J
.
zy
()
=
J
.
yz
();
J
.
zz
()
=
integrals
[
4
]
+
integrals
[
5
];
// inertia relative to center of mass
J
-=
mass
*
((
cM
&
cM
)
*
I
-
cM
*
cM
);
// Apply density
mass
*=
density
;
J
*=
density
;
}
argList
::
addOption
(
"cell"
,
"label"
,
"cell to use for inertia calculation, defaults to 0"
);
#include
"setRootCase.H"
#include
"createTime.H"
#include
"createPolyMesh.H"
int
main
(
int
argc
,
char
*
argv
[])
{
scalar
density
=
1
.
0
;
{
...
...
@@ -286,16 +144,7 @@ int main(int argc, char *argv[])
vector
cM
=
vector
::
zero
;
tensor
J
=
tensor
::
zero
;
massPropertiesSolid
(
pts
,
tetFaces
,
density
,
m
,
cM
,
J
);
momentOfInertia
::
massPropertiesSolid
(
pts
,
tetFaces
,
density
,
m
,
cM
,
J
);
vector
eVal
=
eigenValues
(
J
);
...
...
@@ -344,7 +193,50 @@ int main(int argc, char *argv[])
{
str
<<
"l "
<<
nPts
+
1
<<
' '
<<
i
+
1
<<
endl
;
}
}
{
const
label
cellI
=
args
.
optionLookupOrDefault
(
"cell"
,
0
);
tensorField
mI
=
momentOfInertia
::
meshInertia
(
mesh
);
tensor
&
J
=
mI
[
cellI
];
vector
eVal
=
eigenValues
(
J
);
Info
<<
nl
<<
"Inertia tensor of cell "
<<
cellI
<<
" "
<<
J
<<
nl
<<
"eigenValues (principal moments) "
<<
eVal
<<
endl
;
J
/=
cmptMax
(
eVal
);
tensor
eVec
=
eigenVectors
(
J
);
Info
<<
"eigenVectors (principal axes, from normalised inertia) "
<<
eVec
<<
endl
;
OFstream
str
(
"cell_"
+
name
(
cellI
)
+
"_inertia.obj"
);
Info
<<
nl
<<
"Writing scaled principal axes of cell "
<<
cellI
<<
" to "
<<
str
.
name
()
<<
endl
;
const
point
&
cC
=
mesh
.
cellCentres
()[
cellI
];
scalar
scale
=
mag
(
(
cC
-
mesh
.
faceCentres
()[
mesh
.
cells
()[
cellI
][
0
]])
/
eVal
.
component
(
findMin
(
eVal
))
);
meshTools
::
writeOBJ
(
str
,
cC
);
meshTools
::
writeOBJ
(
str
,
cC
+
scale
*
eVal
.
x
()
*
eVec
.
x
());
meshTools
::
writeOBJ
(
str
,
cC
+
scale
*
eVal
.
y
()
*
eVec
.
y
());
meshTools
::
writeOBJ
(
str
,
cC
+
scale
*
eVal
.
z
()
*
eVec
.
z
());
for
(
label
i
=
1
;
i
<
4
;
i
++
)
{
str
<<
"l "
<<
1
<<
' '
<<
i
+
1
<<
endl
;
}
}
Info
<<
nl
<<
"End"
<<
nl
<<
endl
;
...
...
applications/utilities/mesh/generation/extrude
Mesh
/Allwclean
→
applications/utilities/mesh/generation/extrude/Allwclean
View file @
228456ca
...
...
@@ -3,6 +3,7 @@ cd ${0%/*} || exit 1 # run from this directory
set
-x
wclean libso extrudeModel
wclean
wclean extrudeMesh
wclean extrudeToRegionMesh
# ----------------------------------------------------------------- end-of-file
applications/utilities/mesh/generation/extrude
Mesh
/Allwmake
→
applications/utilities/mesh/generation/extrude/Allwmake
View file @
228456ca
...
...
@@ -3,6 +3,8 @@ cd ${0%/*} || exit 1 # run from this directory
set
-x
wmake libso extrudeModel
wmake
wmake extrudeMesh
wmake extrudeToRegionMesh
# ----------------------------------------------------------------- end-of-file
applications/utilities/mesh/generation/extrudeMesh/Make/files
→
applications/utilities/mesh/generation/
extrude/
extrudeMesh/Make/files
View file @
228456ca
File moved
applications/utilities/mesh/generation/extrudeMesh/Make/options
→
applications/utilities/mesh/generation/
extrude/
extrudeMesh/Make/options
View file @
228456ca
EXE_INC = \
-IextrudedMesh \
-IextrudeModel/lnInclude \
-I
../
extrudeModel/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/surfMesh/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
...
...
applications/utilities/mesh/generation/extrudeMesh/createTimeExtruded.H
→
applications/utilities/mesh/generation/
extrude/
extrudeMesh/createTimeExtruded.H
View file @
228456ca
File moved
applications/utilities/mesh/generation/extrudeMesh/extrudeMesh.C
→
applications/utilities/mesh/generation/
extrude/
extrudeMesh/extrudeMesh.C
View file @
228456ca
...
...
@@ -214,9 +214,8 @@ int main(int argc, char *argv[])
(
IOobject
(
"extrudeProperties"
,
runTimeExtruded
.
constant
(),
regionDir
,
"extrudeMeshDict"
,
runTimeExtruded
.
system
(),
runTimeExtruded
,
IOobject
::
MUST_READ_IF_MODIFIED
)
...
...
applications/utilities/mesh/generation/extrudeMesh/extrude
Properties
→
applications/utilities/mesh/generation/
extrude/
extrudeMesh/extrude
MeshDict
View file @
228456ca
...
...
@@ -10,7 +10,7 @@ FoamFile
version 2.0;
format ascii;
class dictionary;
object extrude
Properties
;
object extrude
MeshDict
;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
...
...
applications/utilities/mesh/generation/extrudeMesh/extrudedMesh/extrudedMesh.C
→
applications/utilities/mesh/generation/
extrude/
extrudeMesh/extrudedMesh/extrudedMesh.C
View file @
228456ca
File moved
applications/utilities/mesh/generation/extrudeMesh/extrudedMesh/extrudedMesh.H
→
applications/utilities/mesh/generation/
extrude/
extrudeMesh/extrudedMesh/extrudedMesh.H
View file @
228456ca
File moved
applications/utilities/mesh/generation/extrude
Mesh
/extrudeModel/Make/files
→
applications/utilities/mesh/generation/extrude/extrudeModel/Make/files
View file @
228456ca
File moved
applications/utilities/mesh/generation/extrude
Mesh
/extrudeModel/Make/options
→
applications/utilities/mesh/generation/extrude/extrudeModel/Make/options
View file @
228456ca
File moved
applications/utilities/mesh/generation/extrude
Mesh
/extrudeModel/extrudeModel/extrudeModel.C
→
applications/utilities/mesh/generation/extrude/extrudeModel/extrudeModel/extrudeModel.C
View file @
228456ca
File moved
applications/utilities/mesh/generation/extrude
Mesh
/extrudeModel/extrudeModel/extrudeModel.H
→
applications/utilities/mesh/generation/extrude/extrudeModel/extrudeModel/extrudeModel.H
View file @
228456ca
File moved
applications/utilities/mesh/generation/extrude
Mesh
/extrudeModel/extrudeModel/extrudeModelNew.C
→
applications/utilities/mesh/generation/extrude/extrudeModel/extrudeModel/extrudeModelNew.C
View file @
228456ca
File moved
applications/utilities/mesh/generation/extrude
Mesh
/extrudeModel/linearDirection/linearDirection.C
→
applications/utilities/mesh/generation/extrude/extrudeModel/linearDirection/linearDirection.C
View file @
228456ca
File moved
applications/utilities/mesh/generation/extrude
Mesh
/extrudeModel/linearDirection/linearDirection.H
→
applications/utilities/mesh/generation/extrude/extrudeModel/linearDirection/linearDirection.H
View file @
228456ca
File moved
Prev
1
2
3
4
5
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment