sloshingTank: Removed blockMeshDict.m4 and replaced by sloshingTank2D and sloshingTank3D dictionary.
Vertices are generated using run time compilation functionality. File duplication avoided by placement in: tutorials/resources/blockMesh/sloshingTank2D tutorials/resources/blockMesh/sloshingTank3D
This commit is contained in:
@ -4,8 +4,7 @@ cd ${0%/*} || exit 1 # Run from this directory
|
|||||||
# Source tutorial run functions
|
# Source tutorial run functions
|
||||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
||||||
|
|
||||||
m4 system/blockMeshDict.m4 > system/blockMeshDict
|
runApplication blockMesh -dict $FOAM_TUTORIALS/resources/blockMesh/sloshingTank2D
|
||||||
runApplication blockMesh
|
|
||||||
runApplication setFields
|
runApplication setFields
|
||||||
runApplication $(getApplication)
|
runApplication $(getApplication)
|
||||||
|
|
||||||
|
|||||||
@ -1,145 +0,0 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
|
||||||
========= |
|
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
||||||
\\ / O peration | Website: https://openfoam.org
|
|
||||||
\\ / A nd | Version: dev
|
|
||||||
\\/ M anipulation |
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
FoamFile
|
|
||||||
{
|
|
||||||
version 2.0;
|
|
||||||
`format' ascii;
|
|
||||||
class dictionary;
|
|
||||||
object blockMeshDict;
|
|
||||||
}
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
// General m4 macros
|
|
||||||
|
|
||||||
changecom(//)changequote([,]) dnl>
|
|
||||||
define(calc, [esyscmd(perl -e 'use Math::Trig; print ($1)')]) dnl>
|
|
||||||
define(VCOUNT, 0)
|
|
||||||
define(vlabel, [[// ]Vertex $1 = VCOUNT define($1, VCOUNT)define([VCOUNT], incr(VCOUNT))])
|
|
||||||
|
|
||||||
define(hex2D, hex (b$1 b$2 b$3 b$4 f$1 f$2 f$3 f$4))
|
|
||||||
define(quad2D, (b$1 b$2 f$2 f$1))
|
|
||||||
define(frontQuad, (f$1 f$2 f$3 f$4))
|
|
||||||
define(backQuad, (b$1 b$4 b$3 b$2))
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
// User-defined parameters
|
|
||||||
|
|
||||||
convertToMeters 1;
|
|
||||||
|
|
||||||
define(l, 1.0) // Length of tank (x-direction)
|
|
||||||
define(b, 40) // Breadth of tank (y-direction)
|
|
||||||
define(h, 30) // Depth of tank (z-direction)
|
|
||||||
|
|
||||||
define(hlc, 5) // Depth to the top (height) of lower chamfer
|
|
||||||
define(huc, 10) // Height of upper chamfer
|
|
||||||
|
|
||||||
define(thetalc, 45) // Angle of lower chamfer to the horizontal
|
|
||||||
define(thetauc, 45) // Angle of upper chamfer to the horizontal
|
|
||||||
|
|
||||||
define(CofGy, calc(b/2.0)) // Centre of gravity in y-direction
|
|
||||||
define(CofGz, 10.0) // Centre of gravity in z-direction
|
|
||||||
|
|
||||||
define(Nl, 1) // Number of cells in the length (1 for 2D)
|
|
||||||
define(Nb, 40) // Number of cells in the breadth
|
|
||||||
define(Nhlc, 6) // Number of cells in the height of the lower champfer
|
|
||||||
define(Nh, 16) // Number of cells in the height between the chamfers
|
|
||||||
define(Nhuc, 12) // Number of cells in the height of the upper champfer
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
// Derived parameters
|
|
||||||
|
|
||||||
define(blc, calc(hlc/tan(deg2rad(thetalc)))) // Breadth to the top (height) of lower chamfer
|
|
||||||
define(buc, calc(huc/tan(deg2rad(thetauc)))) // Breadth of upper chamfer
|
|
||||||
|
|
||||||
define(Yl, -CofGy)
|
|
||||||
define(Yllc, calc(Yl + blc))
|
|
||||||
define(Yluc, calc(Yl + buc))
|
|
||||||
|
|
||||||
define(Yr, calc(Yl + b))
|
|
||||||
define(Yrlc, calc(Yr - blc))
|
|
||||||
define(Yruc, calc(Yr - buc))
|
|
||||||
|
|
||||||
define(Zb, -CofGz)
|
|
||||||
define(Zlc, calc(Zb + hlc))
|
|
||||||
define(Zt, calc(Zb + h))
|
|
||||||
define(Zuc, calc(Zt - huc))
|
|
||||||
|
|
||||||
define(Xf, calc(l/2.0))
|
|
||||||
define(Xb, calc(Xf - l))
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
// Parametric description
|
|
||||||
|
|
||||||
vertices
|
|
||||||
(
|
|
||||||
(Xb Yllc Zb) vlabel(bllcb)
|
|
||||||
(Xb Yl Zlc) vlabel(bllc)
|
|
||||||
(Xb Yl Zuc) vlabel(bluc)
|
|
||||||
(Xb Yluc Zt) vlabel(bluct)
|
|
||||||
(Xb Yrlc Zb) vlabel(brlcb)
|
|
||||||
(Xb Yr Zlc) vlabel(brlc)
|
|
||||||
(Xb Yr Zuc) vlabel(bruc)
|
|
||||||
(Xb Yruc Zt) vlabel(bruct)
|
|
||||||
|
|
||||||
(Xf Yllc Zb) vlabel(fllcb)
|
|
||||||
(Xf Yl Zlc) vlabel(fllc)
|
|
||||||
(Xf Yl Zuc) vlabel(fluc)
|
|
||||||
(Xf Yluc Zt) vlabel(fluct)
|
|
||||||
(Xf Yrlc Zb) vlabel(frlcb)
|
|
||||||
(Xf Yr Zlc) vlabel(frlc)
|
|
||||||
(Xf Yr Zuc) vlabel(fruc)
|
|
||||||
(Xf Yruc Zt) vlabel(fruct)
|
|
||||||
);
|
|
||||||
|
|
||||||
blocks
|
|
||||||
(
|
|
||||||
// block0
|
|
||||||
hex2D(llcb, rlcb, rlc, llc)
|
|
||||||
(Nb Nhlc Nl)
|
|
||||||
simpleGrading (1 1 1)
|
|
||||||
|
|
||||||
// block1
|
|
||||||
hex2D(llc, rlc, ruc, luc)
|
|
||||||
(Nb Nh Nl)
|
|
||||||
simpleGrading (1 1 1)
|
|
||||||
|
|
||||||
// block2
|
|
||||||
hex2D(luc, ruc, ruct, luct)
|
|
||||||
(Nb Nhuc Nl)
|
|
||||||
simpleGrading (1 1 1)
|
|
||||||
);
|
|
||||||
|
|
||||||
patches
|
|
||||||
(
|
|
||||||
patch walls
|
|
||||||
(
|
|
||||||
quad2D(llcb, rlcb)
|
|
||||||
quad2D(rlcb, rlc)
|
|
||||||
quad2D(rlc, ruc)
|
|
||||||
quad2D(ruc, ruct)
|
|
||||||
quad2D(ruct, luct)
|
|
||||||
quad2D(luct, luc)
|
|
||||||
quad2D(luc, llc)
|
|
||||||
quad2D(llc, llcb)
|
|
||||||
)
|
|
||||||
|
|
||||||
empty front
|
|
||||||
(
|
|
||||||
frontQuad(llcb, rlcb, rlc, llc)
|
|
||||||
frontQuad(llc, rlc, ruc, luc)
|
|
||||||
frontQuad(luc, ruc, ruct, luct)
|
|
||||||
)
|
|
||||||
|
|
||||||
empty back
|
|
||||||
(
|
|
||||||
backQuad(llcb, rlcb, rlc, llc)
|
|
||||||
backQuad(llc, rlc, ruc, luc)
|
|
||||||
backQuad(luc, ruc, ruct, luct)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
||||||
@ -4,8 +4,8 @@ cd ${0%/*} || exit 1 # Run from this directory
|
|||||||
# Source tutorial run functions
|
# Source tutorial run functions
|
||||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
||||||
|
|
||||||
m4 system/blockMeshDict.m4 > system/blockMeshDict
|
runApplication blockMesh -dict $FOAM_TUTORIALS/resources/blockMesh/sloshingTank2D
|
||||||
runApplication blockMesh
|
|
||||||
runApplication setFields
|
runApplication setFields
|
||||||
runApplication $(getApplication)
|
runApplication $(getApplication)
|
||||||
|
|
||||||
|
|||||||
@ -1,145 +0,0 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
|
||||||
========= |
|
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
||||||
\\ / O peration | Website: https://openfoam.org
|
|
||||||
\\ / A nd | Version: dev
|
|
||||||
\\/ M anipulation |
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
FoamFile
|
|
||||||
{
|
|
||||||
version 2.0;
|
|
||||||
`format' ascii;
|
|
||||||
class dictionary;
|
|
||||||
object blockMeshDict;
|
|
||||||
}
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
// General m4 macros
|
|
||||||
|
|
||||||
changecom(//)changequote([,]) dnl>
|
|
||||||
define(calc, [esyscmd(perl -e 'use Math::Trig; print ($1)')]) dnl>
|
|
||||||
define(VCOUNT, 0)
|
|
||||||
define(vlabel, [[// ]Vertex $1 = VCOUNT define($1, VCOUNT)define([VCOUNT], incr(VCOUNT))])
|
|
||||||
|
|
||||||
define(hex2D, hex (b$1 b$2 b$3 b$4 f$1 f$2 f$3 f$4))
|
|
||||||
define(quad2D, (b$1 b$2 f$2 f$1))
|
|
||||||
define(frontQuad, (f$1 f$2 f$3 f$4))
|
|
||||||
define(backQuad, (b$1 b$4 b$3 b$2))
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
// User-defined parameters
|
|
||||||
|
|
||||||
convertToMeters 1;
|
|
||||||
|
|
||||||
define(l, 1.0) // Length of tank (x-direction)
|
|
||||||
define(b, 40) // Breadth of tank (y-direction)
|
|
||||||
define(h, 30) // Depth of tank (z-direction)
|
|
||||||
|
|
||||||
define(hlc, 5) // Depth to the top (height) of lower chamfer
|
|
||||||
define(huc, 10) // Height of upper chamfer
|
|
||||||
|
|
||||||
define(thetalc, 45) // Angle of lower chamfer to the horizontal
|
|
||||||
define(thetauc, 45) // Angle of upper chamfer to the horizontal
|
|
||||||
|
|
||||||
define(CofGy, calc(b/2.0)) // Centre of gravity in y-direction
|
|
||||||
define(CofGz, 10.0) // Centre of gravity in z-direction
|
|
||||||
|
|
||||||
define(Nl, 1) // Number of cells in the length (1 for 2D)
|
|
||||||
define(Nb, 40) // Number of cells in the breadth
|
|
||||||
define(Nhlc, 6) // Number of cells in the height of the lower champfer
|
|
||||||
define(Nh, 16) // Number of cells in the height between the chamfers
|
|
||||||
define(Nhuc, 12) // Number of cells in the height of the upper champfer
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
// Derived parameters
|
|
||||||
|
|
||||||
define(blc, calc(hlc/tan(deg2rad(thetalc)))) // Breadth to the top (height) of lower chamfer
|
|
||||||
define(buc, calc(huc/tan(deg2rad(thetauc)))) // Breadth of upper chamfer
|
|
||||||
|
|
||||||
define(Yl, -CofGy)
|
|
||||||
define(Yllc, calc(Yl + blc))
|
|
||||||
define(Yluc, calc(Yl + buc))
|
|
||||||
|
|
||||||
define(Yr, calc(Yl + b))
|
|
||||||
define(Yrlc, calc(Yr - blc))
|
|
||||||
define(Yruc, calc(Yr - buc))
|
|
||||||
|
|
||||||
define(Zb, -CofGz)
|
|
||||||
define(Zlc, calc(Zb + hlc))
|
|
||||||
define(Zt, calc(Zb + h))
|
|
||||||
define(Zuc, calc(Zt - huc))
|
|
||||||
|
|
||||||
define(Xf, calc(l/2.0))
|
|
||||||
define(Xb, calc(Xf - l))
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
// Parametric description
|
|
||||||
|
|
||||||
vertices
|
|
||||||
(
|
|
||||||
(Xb Yllc Zb) vlabel(bllcb)
|
|
||||||
(Xb Yl Zlc) vlabel(bllc)
|
|
||||||
(Xb Yl Zuc) vlabel(bluc)
|
|
||||||
(Xb Yluc Zt) vlabel(bluct)
|
|
||||||
(Xb Yrlc Zb) vlabel(brlcb)
|
|
||||||
(Xb Yr Zlc) vlabel(brlc)
|
|
||||||
(Xb Yr Zuc) vlabel(bruc)
|
|
||||||
(Xb Yruc Zt) vlabel(bruct)
|
|
||||||
|
|
||||||
(Xf Yllc Zb) vlabel(fllcb)
|
|
||||||
(Xf Yl Zlc) vlabel(fllc)
|
|
||||||
(Xf Yl Zuc) vlabel(fluc)
|
|
||||||
(Xf Yluc Zt) vlabel(fluct)
|
|
||||||
(Xf Yrlc Zb) vlabel(frlcb)
|
|
||||||
(Xf Yr Zlc) vlabel(frlc)
|
|
||||||
(Xf Yr Zuc) vlabel(fruc)
|
|
||||||
(Xf Yruc Zt) vlabel(fruct)
|
|
||||||
);
|
|
||||||
|
|
||||||
blocks
|
|
||||||
(
|
|
||||||
// block0
|
|
||||||
hex2D(llcb, rlcb, rlc, llc)
|
|
||||||
(Nb Nhlc Nl)
|
|
||||||
simpleGrading (1 1 1)
|
|
||||||
|
|
||||||
// block1
|
|
||||||
hex2D(llc, rlc, ruc, luc)
|
|
||||||
(Nb Nh Nl)
|
|
||||||
simpleGrading (1 1 1)
|
|
||||||
|
|
||||||
// block2
|
|
||||||
hex2D(luc, ruc, ruct, luct)
|
|
||||||
(Nb Nhuc Nl)
|
|
||||||
simpleGrading (1 1 1)
|
|
||||||
);
|
|
||||||
|
|
||||||
patches
|
|
||||||
(
|
|
||||||
patch walls
|
|
||||||
(
|
|
||||||
quad2D(llcb, rlcb)
|
|
||||||
quad2D(rlcb, rlc)
|
|
||||||
quad2D(rlc, ruc)
|
|
||||||
quad2D(ruc, ruct)
|
|
||||||
quad2D(ruct, luct)
|
|
||||||
quad2D(luct, luc)
|
|
||||||
quad2D(luc, llc)
|
|
||||||
quad2D(llc, llcb)
|
|
||||||
)
|
|
||||||
|
|
||||||
empty front
|
|
||||||
(
|
|
||||||
frontQuad(llcb, rlcb, rlc, llc)
|
|
||||||
frontQuad(llc, rlc, ruc, luc)
|
|
||||||
frontQuad(luc, ruc, ruct, luct)
|
|
||||||
)
|
|
||||||
|
|
||||||
empty back
|
|
||||||
(
|
|
||||||
backQuad(llcb, rlcb, rlc, llc)
|
|
||||||
backQuad(llc, rlc, ruc, luc)
|
|
||||||
backQuad(luc, ruc, ruct, luct)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
||||||
@ -4,8 +4,7 @@ cd ${0%/*} || exit 1 # Run from this directory
|
|||||||
# Source tutorial run functions
|
# Source tutorial run functions
|
||||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
||||||
|
|
||||||
m4 system/blockMeshDict.m4 > system/blockMeshDict
|
runApplication blockMesh -dict $FOAM_TUTORIALS/resources/blockMesh/sloshingTank2D
|
||||||
runApplication blockMesh
|
|
||||||
runApplication setFields
|
runApplication setFields
|
||||||
runApplication $(getApplication)
|
runApplication $(getApplication)
|
||||||
|
|
||||||
|
|||||||
@ -1,145 +0,0 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
|
||||||
========= |
|
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
||||||
\\ / O peration | Website: https://openfoam.org
|
|
||||||
\\ / A nd | Version: dev
|
|
||||||
\\/ M anipulation |
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
FoamFile
|
|
||||||
{
|
|
||||||
version 2.0;
|
|
||||||
`format' ascii;
|
|
||||||
class dictionary;
|
|
||||||
object blockMeshDict;
|
|
||||||
}
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
// General m4 macros
|
|
||||||
|
|
||||||
changecom(//)changequote([,]) dnl>
|
|
||||||
define(calc, [esyscmd(perl -e 'use Math::Trig; print ($1)')]) dnl>
|
|
||||||
define(VCOUNT, 0)
|
|
||||||
define(vlabel, [[// ]Vertex $1 = VCOUNT define($1, VCOUNT)define([VCOUNT], incr(VCOUNT))])
|
|
||||||
|
|
||||||
define(hex2D, hex (b$1 b$2 b$3 b$4 f$1 f$2 f$3 f$4))
|
|
||||||
define(quad2D, (b$1 b$2 f$2 f$1))
|
|
||||||
define(frontQuad, (f$1 f$2 f$3 f$4))
|
|
||||||
define(backQuad, (b$1 b$4 b$3 b$2))
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
// User-defined parameters
|
|
||||||
|
|
||||||
convertToMeters 1;
|
|
||||||
|
|
||||||
define(l, 1.0) // Length of tank (x-direction)
|
|
||||||
define(b, 40) // Breadth of tank (y-direction)
|
|
||||||
define(h, 30) // Depth of tank (z-direction)
|
|
||||||
|
|
||||||
define(hlc, 5) // Depth to the top (height) of lower chamfer
|
|
||||||
define(huc, 10) // Height of upper chamfer
|
|
||||||
|
|
||||||
define(thetalc, 45) // Angle of lower chamfer to the horizontal
|
|
||||||
define(thetauc, 45) // Angle of upper chamfer to the horizontal
|
|
||||||
|
|
||||||
define(CofGy, calc(b/2.0)) // Centre of gravity in y-direction
|
|
||||||
define(CofGz, 10.0) // Centre of gravity in z-direction
|
|
||||||
|
|
||||||
define(Nl, 1) // Number of cells in the length (1 for 2D)
|
|
||||||
define(Nb, 40) // Number of cells in the breadth
|
|
||||||
define(Nhlc, 6) // Number of cells in the height of the lower champfer
|
|
||||||
define(Nh, 16) // Number of cells in the height between the chamfers
|
|
||||||
define(Nhuc, 12) // Number of cells in the height of the upper champfer
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
// Derived parameters
|
|
||||||
|
|
||||||
define(blc, calc(hlc/tan(deg2rad(thetalc)))) // Breadth to the top (height) of lower chamfer
|
|
||||||
define(buc, calc(huc/tan(deg2rad(thetauc)))) // Breadth of upper chamfer
|
|
||||||
|
|
||||||
define(Yl, -CofGy)
|
|
||||||
define(Yllc, calc(Yl + blc))
|
|
||||||
define(Yluc, calc(Yl + buc))
|
|
||||||
|
|
||||||
define(Yr, calc(Yl + b))
|
|
||||||
define(Yrlc, calc(Yr - blc))
|
|
||||||
define(Yruc, calc(Yr - buc))
|
|
||||||
|
|
||||||
define(Zb, -CofGz)
|
|
||||||
define(Zlc, calc(Zb + hlc))
|
|
||||||
define(Zt, calc(Zb + h))
|
|
||||||
define(Zuc, calc(Zt - huc))
|
|
||||||
|
|
||||||
define(Xf, calc(l/2.0))
|
|
||||||
define(Xb, calc(Xf - l))
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
// Parametric description
|
|
||||||
|
|
||||||
vertices
|
|
||||||
(
|
|
||||||
(Xb Yllc Zb) vlabel(bllcb)
|
|
||||||
(Xb Yl Zlc) vlabel(bllc)
|
|
||||||
(Xb Yl Zuc) vlabel(bluc)
|
|
||||||
(Xb Yluc Zt) vlabel(bluct)
|
|
||||||
(Xb Yrlc Zb) vlabel(brlcb)
|
|
||||||
(Xb Yr Zlc) vlabel(brlc)
|
|
||||||
(Xb Yr Zuc) vlabel(bruc)
|
|
||||||
(Xb Yruc Zt) vlabel(bruct)
|
|
||||||
|
|
||||||
(Xf Yllc Zb) vlabel(fllcb)
|
|
||||||
(Xf Yl Zlc) vlabel(fllc)
|
|
||||||
(Xf Yl Zuc) vlabel(fluc)
|
|
||||||
(Xf Yluc Zt) vlabel(fluct)
|
|
||||||
(Xf Yrlc Zb) vlabel(frlcb)
|
|
||||||
(Xf Yr Zlc) vlabel(frlc)
|
|
||||||
(Xf Yr Zuc) vlabel(fruc)
|
|
||||||
(Xf Yruc Zt) vlabel(fruct)
|
|
||||||
);
|
|
||||||
|
|
||||||
blocks
|
|
||||||
(
|
|
||||||
// block0
|
|
||||||
hex2D(llcb, rlcb, rlc, llc)
|
|
||||||
(Nb Nhlc Nl)
|
|
||||||
simpleGrading (1 1 1)
|
|
||||||
|
|
||||||
// block1
|
|
||||||
hex2D(llc, rlc, ruc, luc)
|
|
||||||
(Nb Nh Nl)
|
|
||||||
simpleGrading (1 1 1)
|
|
||||||
|
|
||||||
// block2
|
|
||||||
hex2D(luc, ruc, ruct, luct)
|
|
||||||
(Nb Nhuc Nl)
|
|
||||||
simpleGrading (1 1 1)
|
|
||||||
);
|
|
||||||
|
|
||||||
patches
|
|
||||||
(
|
|
||||||
patch walls
|
|
||||||
(
|
|
||||||
quad2D(llcb, rlcb)
|
|
||||||
quad2D(rlcb, rlc)
|
|
||||||
quad2D(rlc, ruc)
|
|
||||||
quad2D(ruc, ruct)
|
|
||||||
quad2D(ruct, luct)
|
|
||||||
quad2D(luct, luc)
|
|
||||||
quad2D(luc, llc)
|
|
||||||
quad2D(llc, llcb)
|
|
||||||
)
|
|
||||||
|
|
||||||
empty front
|
|
||||||
(
|
|
||||||
frontQuad(llcb, rlcb, rlc, llc)
|
|
||||||
frontQuad(llc, rlc, ruc, luc)
|
|
||||||
frontQuad(luc, ruc, ruct, luct)
|
|
||||||
)
|
|
||||||
|
|
||||||
empty back
|
|
||||||
(
|
|
||||||
backQuad(llcb, rlcb, rlc, llc)
|
|
||||||
backQuad(llc, rlc, ruc, luc)
|
|
||||||
backQuad(luc, ruc, ruct, luct)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
||||||
@ -4,8 +4,7 @@ cd ${0%/*} || exit 1 # Run from this directory
|
|||||||
# Source tutorial run functions
|
# Source tutorial run functions
|
||||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
||||||
|
|
||||||
m4 system/blockMeshDict.m4 > system/blockMeshDict
|
runApplication blockMesh -dict $FOAM_TUTORIALS/resources/blockMesh/sloshingTank3D
|
||||||
runApplication blockMesh
|
|
||||||
runApplication setFields
|
runApplication setFields
|
||||||
runApplication $(getApplication)
|
runApplication $(getApplication)
|
||||||
|
|
||||||
|
|||||||
@ -1,137 +0,0 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
|
||||||
========= |
|
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
||||||
\\ / O peration | Website: https://openfoam.org
|
|
||||||
\\ / A nd | Version: dev
|
|
||||||
\\/ M anipulation |
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
FoamFile
|
|
||||||
{
|
|
||||||
version 2.0;
|
|
||||||
`format' ascii;
|
|
||||||
class dictionary;
|
|
||||||
object blockMeshDict;
|
|
||||||
}
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
// General m4 macros
|
|
||||||
|
|
||||||
changecom(//)changequote([,]) dnl>
|
|
||||||
define(calc, [esyscmd(perl -e 'use Math::Trig; print ($1)')]) dnl>
|
|
||||||
define(VCOUNT, 0)
|
|
||||||
define(vlabel, [[// ]Vertex $1 = VCOUNT define($1, VCOUNT)define([VCOUNT], incr(VCOUNT))])
|
|
||||||
|
|
||||||
define(hex2D, hex (b$1 b$2 b$3 b$4 f$1 f$2 f$3 f$4))
|
|
||||||
define(quad2D, (b$1 b$2 f$2 f$1))
|
|
||||||
define(frontQuad, (f$1 f$2 f$3 f$4))
|
|
||||||
define(backQuad, (b$1 b$4 b$3 b$2))
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
// User-defined parameters
|
|
||||||
|
|
||||||
convertToMeters 1;
|
|
||||||
|
|
||||||
define(l, 20) // Length of tank (x-direction)
|
|
||||||
define(b, 40) // Breadth of tank (y-direction)
|
|
||||||
define(h, 30) // Depth of tank (z-direction)
|
|
||||||
|
|
||||||
define(hlc, 5) // Depth to the top (height) of lower chamfer
|
|
||||||
define(huc, 10) // Height of upper chamfer
|
|
||||||
|
|
||||||
define(thetalc, 45) // Angle of lower chamfer to the horizontal
|
|
||||||
define(thetauc, 45) // Angle of upper chamfer to the horizontal
|
|
||||||
|
|
||||||
define(CofGy, calc(b/2.0)) // Centre of gravity in y-direction
|
|
||||||
define(CofGz, 10.0) // Centre of gravity in z-direction
|
|
||||||
|
|
||||||
define(Nl, 19) // Number of cells in the length (1 for 2D)
|
|
||||||
define(Nb, 40) // Number of cells in the breadth
|
|
||||||
define(Nhlc, 6) // Number of cells in the height of the lower champfer
|
|
||||||
define(Nh, 16) // Number of cells in the height between the chamfers
|
|
||||||
define(Nhuc, 12) // Number of cells in the height of the upper champfer
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
// Derived parameters
|
|
||||||
|
|
||||||
define(blc, calc(hlc/tan(deg2rad(thetalc)))) // Breadth to the top (height) of lower chamfer
|
|
||||||
define(buc, calc(huc/tan(deg2rad(thetauc)))) // Breadth of upper chamfer
|
|
||||||
|
|
||||||
define(Yl, -CofGy)
|
|
||||||
define(Yllc, calc(Yl + blc))
|
|
||||||
define(Yluc, calc(Yl + buc))
|
|
||||||
|
|
||||||
define(Yr, calc(Yl + b))
|
|
||||||
define(Yrlc, calc(Yr - blc))
|
|
||||||
define(Yruc, calc(Yr - buc))
|
|
||||||
|
|
||||||
define(Zb, -CofGz)
|
|
||||||
define(Zlc, calc(Zb + hlc))
|
|
||||||
define(Zt, calc(Zb + h))
|
|
||||||
define(Zuc, calc(Zt - huc))
|
|
||||||
|
|
||||||
define(Xf, calc(l/2.0))
|
|
||||||
define(Xb, calc(Xf - l))
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
// Parametric description
|
|
||||||
|
|
||||||
vertices
|
|
||||||
(
|
|
||||||
(Xb Yllc Zb) vlabel(bllcb)
|
|
||||||
(Xb Yl Zlc) vlabel(bllc)
|
|
||||||
(Xb Yl Zuc) vlabel(bluc)
|
|
||||||
(Xb Yluc Zt) vlabel(bluct)
|
|
||||||
(Xb Yrlc Zb) vlabel(brlcb)
|
|
||||||
(Xb Yr Zlc) vlabel(brlc)
|
|
||||||
(Xb Yr Zuc) vlabel(bruc)
|
|
||||||
(Xb Yruc Zt) vlabel(bruct)
|
|
||||||
|
|
||||||
(Xf Yllc Zb) vlabel(fllcb)
|
|
||||||
(Xf Yl Zlc) vlabel(fllc)
|
|
||||||
(Xf Yl Zuc) vlabel(fluc)
|
|
||||||
(Xf Yluc Zt) vlabel(fluct)
|
|
||||||
(Xf Yrlc Zb) vlabel(frlcb)
|
|
||||||
(Xf Yr Zlc) vlabel(frlc)
|
|
||||||
(Xf Yr Zuc) vlabel(fruc)
|
|
||||||
(Xf Yruc Zt) vlabel(fruct)
|
|
||||||
);
|
|
||||||
|
|
||||||
blocks
|
|
||||||
(
|
|
||||||
// block0
|
|
||||||
hex2D(llcb, rlcb, rlc, llc)
|
|
||||||
(Nb Nhlc Nl)
|
|
||||||
simpleGrading (1 1 1)
|
|
||||||
|
|
||||||
// block1
|
|
||||||
hex2D(llc, rlc, ruc, luc)
|
|
||||||
(Nb Nh Nl)
|
|
||||||
simpleGrading (1 1 1)
|
|
||||||
|
|
||||||
// block2
|
|
||||||
hex2D(luc, ruc, ruct, luct)
|
|
||||||
(Nb Nhuc Nl)
|
|
||||||
simpleGrading (1 1 1)
|
|
||||||
);
|
|
||||||
|
|
||||||
patches
|
|
||||||
(
|
|
||||||
patch walls
|
|
||||||
(
|
|
||||||
quad2D(llcb, rlcb)
|
|
||||||
quad2D(rlcb, rlc)
|
|
||||||
quad2D(rlc, ruc)
|
|
||||||
quad2D(ruc, ruct)
|
|
||||||
quad2D(ruct, luct)
|
|
||||||
quad2D(luct, luc)
|
|
||||||
quad2D(luc, llc)
|
|
||||||
quad2D(llc, llcb)
|
|
||||||
frontQuad(llcb, rlcb, rlc, llc)
|
|
||||||
frontQuad(llc, rlc, ruc, luc)
|
|
||||||
frontQuad(luc, ruc, ruct, luct)
|
|
||||||
backQuad(llcb, rlcb, rlc, llc)
|
|
||||||
backQuad(llc, rlc, ruc, luc)
|
|
||||||
backQuad(luc, ruc, ruct, luct)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
||||||
@ -4,8 +4,7 @@ cd ${0%/*} || exit 1 # Run from this directory
|
|||||||
# Source tutorial run functions
|
# Source tutorial run functions
|
||||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
||||||
|
|
||||||
m4 system/blockMeshDict.m4 > system/blockMeshDict
|
runApplication blockMesh -dict $FOAM_TUTORIALS/resources/blockMesh/sloshingTank3D
|
||||||
runApplication blockMesh
|
|
||||||
runApplication setFields
|
runApplication setFields
|
||||||
runApplication $(getApplication)
|
runApplication $(getApplication)
|
||||||
|
|
||||||
|
|||||||
@ -1,137 +0,0 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
|
||||||
========= |
|
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
||||||
\\ / O peration | Website: https://openfoam.org
|
|
||||||
\\ / A nd | Version: dev
|
|
||||||
\\/ M anipulation |
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
FoamFile
|
|
||||||
{
|
|
||||||
version 2.0;
|
|
||||||
`format' ascii;
|
|
||||||
class dictionary;
|
|
||||||
object blockMeshDict;
|
|
||||||
}
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
// General m4 macros
|
|
||||||
|
|
||||||
changecom(//)changequote([,]) dnl>
|
|
||||||
define(calc, [esyscmd(perl -e 'use Math::Trig; print ($1)')]) dnl>
|
|
||||||
define(VCOUNT, 0)
|
|
||||||
define(vlabel, [[// ]Vertex $1 = VCOUNT define($1, VCOUNT)define([VCOUNT], incr(VCOUNT))])
|
|
||||||
|
|
||||||
define(hex2D, hex (b$1 b$2 b$3 b$4 f$1 f$2 f$3 f$4))
|
|
||||||
define(quad2D, (b$1 b$2 f$2 f$1))
|
|
||||||
define(frontQuad, (f$1 f$2 f$3 f$4))
|
|
||||||
define(backQuad, (b$1 b$4 b$3 b$2))
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
// User-defined parameters
|
|
||||||
|
|
||||||
convertToMeters 1;
|
|
||||||
|
|
||||||
define(l, 20) // Length of tank (x-direction)
|
|
||||||
define(b, 40) // Breadth of tank (y-direction)
|
|
||||||
define(h, 30) // Depth of tank (z-direction)
|
|
||||||
|
|
||||||
define(hlc, 5) // Depth to the top (height) of lower chamfer
|
|
||||||
define(huc, 10) // Height of upper chamfer
|
|
||||||
|
|
||||||
define(thetalc, 45) // Angle of lower chamfer to the horizontal
|
|
||||||
define(thetauc, 45) // Angle of upper chamfer to the horizontal
|
|
||||||
|
|
||||||
define(CofGy, calc(b/2.0)) // Centre of gravity in y-direction
|
|
||||||
define(CofGz, 10.0) // Centre of gravity in z-direction
|
|
||||||
|
|
||||||
define(Nl, 19) // Number of cells in the length (1 for 2D)
|
|
||||||
define(Nb, 40) // Number of cells in the breadth
|
|
||||||
define(Nhlc, 6) // Number of cells in the height of the lower champfer
|
|
||||||
define(Nh, 16) // Number of cells in the height between the chamfers
|
|
||||||
define(Nhuc, 12) // Number of cells in the height of the upper champfer
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
// Derived parameters
|
|
||||||
|
|
||||||
define(blc, calc(hlc/tan(deg2rad(thetalc)))) // Breadth to the top (height) of lower chamfer
|
|
||||||
define(buc, calc(huc/tan(deg2rad(thetauc)))) // Breadth of upper chamfer
|
|
||||||
|
|
||||||
define(Yl, -CofGy)
|
|
||||||
define(Yllc, calc(Yl + blc))
|
|
||||||
define(Yluc, calc(Yl + buc))
|
|
||||||
|
|
||||||
define(Yr, calc(Yl + b))
|
|
||||||
define(Yrlc, calc(Yr - blc))
|
|
||||||
define(Yruc, calc(Yr - buc))
|
|
||||||
|
|
||||||
define(Zb, -CofGz)
|
|
||||||
define(Zlc, calc(Zb + hlc))
|
|
||||||
define(Zt, calc(Zb + h))
|
|
||||||
define(Zuc, calc(Zt - huc))
|
|
||||||
|
|
||||||
define(Xf, calc(l/2.0))
|
|
||||||
define(Xb, calc(Xf - l))
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
// Parametric description
|
|
||||||
|
|
||||||
vertices
|
|
||||||
(
|
|
||||||
(Xb Yllc Zb) vlabel(bllcb)
|
|
||||||
(Xb Yl Zlc) vlabel(bllc)
|
|
||||||
(Xb Yl Zuc) vlabel(bluc)
|
|
||||||
(Xb Yluc Zt) vlabel(bluct)
|
|
||||||
(Xb Yrlc Zb) vlabel(brlcb)
|
|
||||||
(Xb Yr Zlc) vlabel(brlc)
|
|
||||||
(Xb Yr Zuc) vlabel(bruc)
|
|
||||||
(Xb Yruc Zt) vlabel(bruct)
|
|
||||||
|
|
||||||
(Xf Yllc Zb) vlabel(fllcb)
|
|
||||||
(Xf Yl Zlc) vlabel(fllc)
|
|
||||||
(Xf Yl Zuc) vlabel(fluc)
|
|
||||||
(Xf Yluc Zt) vlabel(fluct)
|
|
||||||
(Xf Yrlc Zb) vlabel(frlcb)
|
|
||||||
(Xf Yr Zlc) vlabel(frlc)
|
|
||||||
(Xf Yr Zuc) vlabel(fruc)
|
|
||||||
(Xf Yruc Zt) vlabel(fruct)
|
|
||||||
);
|
|
||||||
|
|
||||||
blocks
|
|
||||||
(
|
|
||||||
// block0
|
|
||||||
hex2D(llcb, rlcb, rlc, llc)
|
|
||||||
(Nb Nhlc Nl)
|
|
||||||
simpleGrading (1 1 1)
|
|
||||||
|
|
||||||
// block1
|
|
||||||
hex2D(llc, rlc, ruc, luc)
|
|
||||||
(Nb Nh Nl)
|
|
||||||
simpleGrading (1 1 1)
|
|
||||||
|
|
||||||
// block2
|
|
||||||
hex2D(luc, ruc, ruct, luct)
|
|
||||||
(Nb Nhuc Nl)
|
|
||||||
simpleGrading (1 1 1)
|
|
||||||
);
|
|
||||||
|
|
||||||
patches
|
|
||||||
(
|
|
||||||
patch walls
|
|
||||||
(
|
|
||||||
quad2D(llcb, rlcb)
|
|
||||||
quad2D(rlcb, rlc)
|
|
||||||
quad2D(rlc, ruc)
|
|
||||||
quad2D(ruc, ruct)
|
|
||||||
quad2D(ruct, luct)
|
|
||||||
quad2D(luct, luc)
|
|
||||||
quad2D(luc, llc)
|
|
||||||
quad2D(llc, llcb)
|
|
||||||
frontQuad(llcb, rlcb, rlc, llc)
|
|
||||||
frontQuad(llc, rlc, ruc, luc)
|
|
||||||
frontQuad(luc, ruc, ruct, luct)
|
|
||||||
backQuad(llcb, rlcb, rlc, llc)
|
|
||||||
backQuad(llc, rlc, ruc, luc)
|
|
||||||
backQuad(luc, ruc, ruct, luct)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
||||||
@ -4,8 +4,7 @@ cd ${0%/*} || exit 1 # Run from this directory
|
|||||||
# Source tutorial run functions
|
# Source tutorial run functions
|
||||||
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
||||||
|
|
||||||
m4 system/blockMeshDict.m4 > system/blockMeshDict
|
runApplication blockMesh -dict $FOAM_TUTORIALS/resources/blockMesh/sloshingTank3D
|
||||||
runApplication blockMesh
|
|
||||||
runApplication setFields
|
runApplication setFields
|
||||||
runApplication $(getApplication)
|
runApplication $(getApplication)
|
||||||
|
|
||||||
|
|||||||
@ -1,137 +0,0 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
|
||||||
========= |
|
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
||||||
\\ / O peration | Website: https://openfoam.org
|
|
||||||
\\ / A nd | Version: dev
|
|
||||||
\\/ M anipulation |
|
|
||||||
\*---------------------------------------------------------------------------*/
|
|
||||||
FoamFile
|
|
||||||
{
|
|
||||||
version 2.0;
|
|
||||||
`format' ascii;
|
|
||||||
class dictionary;
|
|
||||||
object blockMeshDict;
|
|
||||||
}
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
// General m4 macros
|
|
||||||
|
|
||||||
changecom(//)changequote([,]) dnl>
|
|
||||||
define(calc, [esyscmd(perl -e 'use Math::Trig; print ($1)')]) dnl>
|
|
||||||
define(VCOUNT, 0)
|
|
||||||
define(vlabel, [[// ]Vertex $1 = VCOUNT define($1, VCOUNT)define([VCOUNT], incr(VCOUNT))])
|
|
||||||
|
|
||||||
define(hex2D, hex (b$1 b$2 b$3 b$4 f$1 f$2 f$3 f$4))
|
|
||||||
define(quad2D, (b$1 b$2 f$2 f$1))
|
|
||||||
define(frontQuad, (f$1 f$2 f$3 f$4))
|
|
||||||
define(backQuad, (b$1 b$4 b$3 b$2))
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
// User-defined parameters
|
|
||||||
|
|
||||||
convertToMeters 1;
|
|
||||||
|
|
||||||
define(l, 20) // Length of tank (x-direction)
|
|
||||||
define(b, 40) // Breadth of tank (y-direction)
|
|
||||||
define(h, 30) // Depth of tank (z-direction)
|
|
||||||
|
|
||||||
define(hlc, 5) // Depth to the top (height) of lower chamfer
|
|
||||||
define(huc, 10) // Height of upper chamfer
|
|
||||||
|
|
||||||
define(thetalc, 45) // Angle of lower chamfer to the horizontal
|
|
||||||
define(thetauc, 45) // Angle of upper chamfer to the horizontal
|
|
||||||
|
|
||||||
define(CofGy, calc(b/2.0)) // Centre of gravity in y-direction
|
|
||||||
define(CofGz, 10.0) // Centre of gravity in z-direction
|
|
||||||
|
|
||||||
define(Nl, 19) // Number of cells in the length (1 for 2D)
|
|
||||||
define(Nb, 40) // Number of cells in the breadth
|
|
||||||
define(Nhlc, 6) // Number of cells in the height of the lower champfer
|
|
||||||
define(Nh, 16) // Number of cells in the height between the chamfers
|
|
||||||
define(Nhuc, 12) // Number of cells in the height of the upper champfer
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
// Derived parameters
|
|
||||||
|
|
||||||
define(blc, calc(hlc/tan(deg2rad(thetalc)))) // Breadth to the top (height) of lower chamfer
|
|
||||||
define(buc, calc(huc/tan(deg2rad(thetauc)))) // Breadth of upper chamfer
|
|
||||||
|
|
||||||
define(Yl, -CofGy)
|
|
||||||
define(Yllc, calc(Yl + blc))
|
|
||||||
define(Yluc, calc(Yl + buc))
|
|
||||||
|
|
||||||
define(Yr, calc(Yl + b))
|
|
||||||
define(Yrlc, calc(Yr - blc))
|
|
||||||
define(Yruc, calc(Yr - buc))
|
|
||||||
|
|
||||||
define(Zb, -CofGz)
|
|
||||||
define(Zlc, calc(Zb + hlc))
|
|
||||||
define(Zt, calc(Zb + h))
|
|
||||||
define(Zuc, calc(Zt - huc))
|
|
||||||
|
|
||||||
define(Xf, calc(l/2.0))
|
|
||||||
define(Xb, calc(Xf - l))
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
||||||
// Parametric description
|
|
||||||
|
|
||||||
vertices
|
|
||||||
(
|
|
||||||
(Xb Yllc Zb) vlabel(bllcb)
|
|
||||||
(Xb Yl Zlc) vlabel(bllc)
|
|
||||||
(Xb Yl Zuc) vlabel(bluc)
|
|
||||||
(Xb Yluc Zt) vlabel(bluct)
|
|
||||||
(Xb Yrlc Zb) vlabel(brlcb)
|
|
||||||
(Xb Yr Zlc) vlabel(brlc)
|
|
||||||
(Xb Yr Zuc) vlabel(bruc)
|
|
||||||
(Xb Yruc Zt) vlabel(bruct)
|
|
||||||
|
|
||||||
(Xf Yllc Zb) vlabel(fllcb)
|
|
||||||
(Xf Yl Zlc) vlabel(fllc)
|
|
||||||
(Xf Yl Zuc) vlabel(fluc)
|
|
||||||
(Xf Yluc Zt) vlabel(fluct)
|
|
||||||
(Xf Yrlc Zb) vlabel(frlcb)
|
|
||||||
(Xf Yr Zlc) vlabel(frlc)
|
|
||||||
(Xf Yr Zuc) vlabel(fruc)
|
|
||||||
(Xf Yruc Zt) vlabel(fruct)
|
|
||||||
);
|
|
||||||
|
|
||||||
blocks
|
|
||||||
(
|
|
||||||
// block0
|
|
||||||
hex2D(llcb, rlcb, rlc, llc)
|
|
||||||
(Nb Nhlc Nl)
|
|
||||||
simpleGrading (1 1 1)
|
|
||||||
|
|
||||||
// block1
|
|
||||||
hex2D(llc, rlc, ruc, luc)
|
|
||||||
(Nb Nh Nl)
|
|
||||||
simpleGrading (1 1 1)
|
|
||||||
|
|
||||||
// block2
|
|
||||||
hex2D(luc, ruc, ruct, luct)
|
|
||||||
(Nb Nhuc Nl)
|
|
||||||
simpleGrading (1 1 1)
|
|
||||||
);
|
|
||||||
|
|
||||||
patches
|
|
||||||
(
|
|
||||||
patch walls
|
|
||||||
(
|
|
||||||
quad2D(llcb, rlcb)
|
|
||||||
quad2D(rlcb, rlc)
|
|
||||||
quad2D(rlc, ruc)
|
|
||||||
quad2D(ruc, ruct)
|
|
||||||
quad2D(ruct, luct)
|
|
||||||
quad2D(luct, luc)
|
|
||||||
quad2D(luc, llc)
|
|
||||||
quad2D(llc, llcb)
|
|
||||||
frontQuad(llcb, rlcb, rlc, llc)
|
|
||||||
frontQuad(llc, rlc, ruc, luc)
|
|
||||||
frontQuad(luc, ruc, ruct, luct)
|
|
||||||
backQuad(llcb, rlcb, rlc, llc)
|
|
||||||
backQuad(llc, rlc, ruc, luc)
|
|
||||||
backQuad(luc, ruc, ruct, luct)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
||||||
125
tutorials/resources/blockMesh/sloshingTank2D
Normal file
125
tutorials/resources/blockMesh/sloshingTank2D
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration | Website: https://openfoam.org
|
||||||
|
\\ / A nd | Version: dev
|
||||||
|
\\/ M anipulation |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
object blockMeshDict;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
convertToMeters 1;
|
||||||
|
|
||||||
|
depth 1; // Depth of tank (x-direction)
|
||||||
|
width 40; // Width of tank (y-direction)
|
||||||
|
height 30; // Depth of tank (z-direction)
|
||||||
|
|
||||||
|
lowerHeight 5; // Height to the top of lower chamfer
|
||||||
|
upperHeight 10; // Height of upper chamfer
|
||||||
|
|
||||||
|
angleLower 45; // Angle of lower chamfer to the horizontal
|
||||||
|
angleUpper 45; // Angle of upper chamfer to the horizontal
|
||||||
|
moveZ -10; // Moving tank in z direction
|
||||||
|
|
||||||
|
xCells 1; // Number of cells in the depth
|
||||||
|
yCells 40; // Number of cells in the width
|
||||||
|
zLowCells 6; // Number of cells in the height of the lower champfer
|
||||||
|
zMidCells 16; // Number of cells in the height between the chamfers
|
||||||
|
zUpCells 12; // Number of cells in the height of the upper champfer
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
vertices #codeStream
|
||||||
|
{
|
||||||
|
codeInclude
|
||||||
|
#{
|
||||||
|
#include "pointField.H"
|
||||||
|
#};
|
||||||
|
|
||||||
|
code
|
||||||
|
#{
|
||||||
|
const scalar halfDepth = ($depth)/2.0;
|
||||||
|
const scalar halfWidth = ($width)/2.0;
|
||||||
|
|
||||||
|
const scalar yBottom =
|
||||||
|
halfWidth - ($lowerHeight)/tan(degToRad($angleLower));
|
||||||
|
const scalar yTop =
|
||||||
|
halfWidth - ($upperHeight)/tan(degToRad($angleUpper));
|
||||||
|
|
||||||
|
const scalar zMid = $height - $upperHeight;
|
||||||
|
|
||||||
|
pointField points
|
||||||
|
({
|
||||||
|
point(-halfDepth, -yBottom, 0), // pt 0
|
||||||
|
point(-halfDepth, -halfWidth, $lowerHeight), // pt 1
|
||||||
|
point(-halfDepth, -halfWidth, zMid), // pt 2
|
||||||
|
point(-halfDepth, -yTop, $height), // pt 3
|
||||||
|
});
|
||||||
|
|
||||||
|
// Move points in z direction
|
||||||
|
points += vector(0, 0, $moveZ);
|
||||||
|
|
||||||
|
// Duplicate y points
|
||||||
|
points.append(cmptMultiply(points, vector(1, -1, 1)));
|
||||||
|
|
||||||
|
// Duplicate x points
|
||||||
|
points.append(cmptMultiply(points, vector(-1, 1, 1)));
|
||||||
|
|
||||||
|
os << points;
|
||||||
|
#};
|
||||||
|
};
|
||||||
|
|
||||||
|
blocks
|
||||||
|
(
|
||||||
|
hex (0 8 12 4 1 9 13 5) ($xCells $yCells $zLowCells) simpleGrading (1 1 1)
|
||||||
|
hex (1 9 13 5 2 10 14 6) ($xCells $yCells $zMidCells) simpleGrading (1 1 1)
|
||||||
|
hex (2 10 14 6 3 11 15 7) ($xCells $yCells $zUpCells) simpleGrading (1 1 1)
|
||||||
|
);
|
||||||
|
|
||||||
|
boundary
|
||||||
|
(
|
||||||
|
walls
|
||||||
|
{
|
||||||
|
type wall;
|
||||||
|
faces
|
||||||
|
(
|
||||||
|
(0 4 12 8)
|
||||||
|
(4 5 13 12)
|
||||||
|
(5 6 14 13)
|
||||||
|
(6 7 15 14)
|
||||||
|
(7 3 11 15)
|
||||||
|
(3 2 10 11)
|
||||||
|
(2 1 9 10)
|
||||||
|
(1 0 8 9)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
front
|
||||||
|
{
|
||||||
|
type empty;
|
||||||
|
faces
|
||||||
|
(
|
||||||
|
(8 12 13 9)
|
||||||
|
(9 13 14 10)
|
||||||
|
(10 14 15 11)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
back
|
||||||
|
{
|
||||||
|
type empty;
|
||||||
|
faces
|
||||||
|
(
|
||||||
|
(0 1 5 4)
|
||||||
|
(1 2 6 5)
|
||||||
|
(2 3 7 6)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
109
tutorials/resources/blockMesh/sloshingTank3D
Normal file
109
tutorials/resources/blockMesh/sloshingTank3D
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration | Website: https://openfoam.org
|
||||||
|
\\ / A nd | Version: dev
|
||||||
|
\\/ M anipulation |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
object blockMeshDict;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
convertToMeters 1;
|
||||||
|
|
||||||
|
depth 20; // Depth of tank (x-direction)
|
||||||
|
width 40; // Width of tank (y-direction)
|
||||||
|
height 30; // Depth of tank (z-direction)
|
||||||
|
|
||||||
|
lowerHeight 5; // Height to the top of lower chamfer
|
||||||
|
upperHeight 10; // Height of upper chamfer
|
||||||
|
|
||||||
|
angleLower 45; // Angle of lower chamfer to the horizontal
|
||||||
|
angleUpper 45; // Angle of upper chamfer to the horizontal
|
||||||
|
moveZ -10; // Moving tank in z direction
|
||||||
|
|
||||||
|
xCells 19; // Number of cells in the depth
|
||||||
|
yCells 40; // Number of cells in the width
|
||||||
|
zLowCells 6; // Number of cells in the height of the lower champfer
|
||||||
|
zMidCells 16; // Number of cells in the height between the chamfers
|
||||||
|
zUpCells 12; // Number of cells in the height of the upper champfer
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
vertices #codeStream
|
||||||
|
{
|
||||||
|
codeInclude
|
||||||
|
#{
|
||||||
|
#include "pointField.H"
|
||||||
|
#};
|
||||||
|
|
||||||
|
code
|
||||||
|
#{
|
||||||
|
const scalar halfDepth = ($depth)/2.0;
|
||||||
|
const scalar halfWidth = ($width)/2.0;
|
||||||
|
|
||||||
|
const scalar yBottom =
|
||||||
|
halfWidth - ($lowerHeight)/tan(degToRad($angleLower));
|
||||||
|
const scalar yTop =
|
||||||
|
halfWidth - ($upperHeight)/tan(degToRad($angleUpper));
|
||||||
|
|
||||||
|
const scalar zMid = $height - $upperHeight;
|
||||||
|
|
||||||
|
pointField points
|
||||||
|
({
|
||||||
|
point(-halfDepth, -yBottom, 0), // pt 0
|
||||||
|
point(-halfDepth, -halfWidth, $lowerHeight), // pt 1
|
||||||
|
point(-halfDepth, -halfWidth, zMid), // pt 2
|
||||||
|
point(-halfDepth, -yTop, $height), // pt 3
|
||||||
|
});
|
||||||
|
|
||||||
|
// Move points in z direction
|
||||||
|
points += vector(0, 0, $moveZ);
|
||||||
|
|
||||||
|
// Duplicate y points
|
||||||
|
points.append(cmptMultiply(points, vector(1, -1, 1)));
|
||||||
|
|
||||||
|
// Duplicate x points
|
||||||
|
points.append(cmptMultiply(points, vector(-1, 1, 1)));
|
||||||
|
|
||||||
|
os << points;
|
||||||
|
#};
|
||||||
|
};
|
||||||
|
|
||||||
|
blocks
|
||||||
|
(
|
||||||
|
hex (0 8 12 4 1 9 13 5) ($xCells $yCells $zLowCells) simpleGrading (1 1 1)
|
||||||
|
hex (1 9 13 5 2 10 14 6) ($xCells $yCells $zMidCells) simpleGrading (1 1 1)
|
||||||
|
hex (2 10 14 6 3 11 15 7) ($xCells $yCells $zUpCells) simpleGrading (1 1 1)
|
||||||
|
);
|
||||||
|
|
||||||
|
boundary
|
||||||
|
(
|
||||||
|
walls
|
||||||
|
{
|
||||||
|
type wall;
|
||||||
|
faces
|
||||||
|
(
|
||||||
|
(0 4 12 8)
|
||||||
|
(4 5 13 12)
|
||||||
|
(5 6 14 13)
|
||||||
|
(6 7 15 14)
|
||||||
|
(7 3 11 15)
|
||||||
|
(3 2 10 11)
|
||||||
|
(2 1 9 10)
|
||||||
|
(1 0 8 9)
|
||||||
|
(8 12 13 9)
|
||||||
|
(9 13 14 10)
|
||||||
|
(10 14 15 11)
|
||||||
|
(0 1 5 4)
|
||||||
|
(1 2 6 5)
|
||||||
|
(2 3 7 6)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
Reference in New Issue
Block a user