diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/0/U b/tutorials/interDyMFoam/sloshingTank2D3DoF/0/U new file mode 100644 index 0000000000000000000000000000000000000000..ae062bdf0d1fa6458df95c93f8ffeb9d7df188be --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/0/U @@ -0,0 +1,38 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / 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 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + front + { + type empty; + } + back + { + type empty; + } + walls + { + type movingWallVelocity; + value uniform (0 0 0); + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/0/gamma.org b/tutorials/interDyMFoam/sloshingTank2D3DoF/0/gamma.org new file mode 100644 index 0000000000000000000000000000000000000000..2711563003114c5f54dc987dbeca328598f590e8 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/0/gamma.org @@ -0,0 +1,37 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / 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 0 0]; + +internalField uniform 0; + +boundaryField +{ + front + { + type empty; + } + back + { + type empty; + } + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/0/pd b/tutorials/interDyMFoam/sloshingTank2D3DoF/0/pd new file mode 100644 index 0000000000000000000000000000000000000000..cefcbb7d442aad8e22f25fbaedbfbb0e68eed4b7 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/0/pd @@ -0,0 +1,37 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object pd; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + front + { + type empty; + } + back + { + type empty; + } + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/Allclean b/tutorials/interDyMFoam/sloshingTank2D3DoF/Allclean new file mode 100755 index 0000000000000000000000000000000000000000..2ffbd01addc2d4c2c5326f0f401c575945c12b7d --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/Allclean @@ -0,0 +1,4 @@ +#!/bin/sh + +foamCleanTutorials cases +rm -rf 0/gamma.gz probes wallPressure pRefProbe diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/Allrun b/tutorials/interDyMFoam/sloshingTank2D3DoF/Allrun new file mode 100755 index 0000000000000000000000000000000000000000..748dcf65ba56b28289c079d37d4abde3e95f3257 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/Allrun @@ -0,0 +1,9 @@ +#!/bin/sh +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +m4 < constant/polyMesh/blockMeshDict.m4 > constant/polyMesh/blockMeshDict +runApplication blockMesh +cp 0/gamma.org 0/gamma +runApplication setFields +runApplication interDyMFoam diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/RASProperties b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/RASProperties new file mode 100644 index 0000000000000000000000000000000000000000..ac1efb34c5d460ae6483a045c147312455969903 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/RASProperties @@ -0,0 +1,173 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object RASProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +// RASModel kEpsilon; +RASModel laminar; + +turbulence off; + +laminarCoeffs +{ +} + +kEpsilonCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +RNGkEpsilonCoeffs +{ + Cmu 0.0845; + C1 1.42; + C2 1.68; + alphak 1.39; + alphaEps 1.39; + eta0 4.38; + beta 0.012; +} + +NonlinearKEShihCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76932; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; +} + +LienCubicKECoeffs +{ + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; +} + +QZetaCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaZeta 0.76923; + anisotropic no; +} + +LaunderSharmaKECoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +LamBremhorstKECoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +LienCubicKELowReCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; + Am 0.016; + Aepsilon 0.263; + Amu 0.00222; +} + +LienLeschzinerLowReCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + Am 0.016; + Aepsilon 0.263; + Amu 0.00222; +} + +LRRCoeffs +{ + Cmu 0.09; + Clrr1 1.8; + Clrr2 0.6; + C1 1.44; + C2 1.92; + Cs 0.25; + Ceps 0.15; + alphaEps 0.76923; +} + +LaunderGibsonRSTMCoeffs +{ + Cmu 0.09; + Clg1 1.8; + Clg2 0.6; + C1 1.44; + C2 1.92; + C1Ref 0.5; + C2Ref 0.3; + Cs 0.25; + Ceps 0.15; + alphaEps 0.76923; + alphaR 1.22; +} + +SpalartAllmarasCoeffs +{ + alphaNut 1.5; + Cb1 0.1355; + Cb2 0.622; + Cw2 0.3; + Cw3 2; + Cv1 7.1; + Cv2 5.0; +} + +wallFunctionCoeffs +{ + kappa 0.4187; + E 9; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/dynamicMeshDict b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/dynamicMeshDict new file mode 100644 index 0000000000000000000000000000000000000000..e7a0ec06d662ae2718dffc093a0605bbf62f732f --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/dynamicMeshDict @@ -0,0 +1,60 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object motionProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dynamicFvMesh solidBodyMotionFvMesh; + +solidBodyMotionFvMeshCoeffs +{ + solidBodyMotionFunction SDA; + + SDACoeffs + { + // Centre of gravity + CofG (0 0 0); + + // Model scale ratio + lamda 50; + + // Max roll amplitude [rad] + rollAmax 0.22654; + + // Min roll amplitude [rad] + rollAmin 0.10472; + + // Heave amplitude [m] + heaveA 3.79; + + // Sway amplitude [m] + swayA 2.34; + + // Damping Coefficient [-] + Q 2.00; + + // Time Period for liquid [sec] + Tp 13.93; + + // Natural Period of Ship [sec] + Tpn 11.93; + + // Reference time step [sec] + dTi 0.059; + + // Incr. in Tp/unit 'dTi'[-] + dTp -0.001; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/environmentalProperties b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/environmentalProperties new file mode 100644 index 0000000000000000000000000000000000000000..40232c0c406c02d21a4ae29a31f702bbf84c6214 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/environmentalProperties @@ -0,0 +1,19 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object environmentalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +g g [0 1 -2 0 0 0 0] (0 0 -9.81); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/blockMeshDict b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/blockMeshDict new file mode 100644 index 0000000000000000000000000000000000000000..3c52247aa29f0cb0eeb549c39a24a6e11a8f3391 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/blockMeshDict @@ -0,0 +1,145 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// General m4 macros + + + + + + + + + + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// User-defined parameters + +convertToMeters 1; + + // Length of tank (x-direction) + // Breadth of tank (y-direction) + // Depth of tank (z-direction) + + // Depth to the top (height) of lower chamfer + // Height of upper chamfer + + // Angle of lower chamfer to the horizontal + // Angle of upper chamfer to the horizontal + + // Centre of gravity in y-direction + // Centre of gravity in z-direction + + // Number of cells in the length (1 for 2D) + // Number of cells in the breadth + // Number of cells in the height of the lower champfer + // Number of cells in the height between the chamfers + // Number of cells in the height of the upper champfer + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Derived parameters + + // Breadth to the top (height) of lower chamfer + // Breadth of upper chamfer + + + + + + + + + + + + + + + + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Parametric description + +vertices +( + (-0.5 -15 -10.0) // Vertex bllcb = 0 + (-0.5 -20 -5) // Vertex bllc = 1 + (-0.5 -20 10) // Vertex bluc = 2 + (-0.5 -10 20) // Vertex bluct = 3 + (-0.5 15 -10.0) // Vertex brlcb = 4 + (-0.5 20 -5) // Vertex brlc = 5 + (-0.5 20 10) // Vertex bruc = 6 + (-0.5 10 20) // Vertex bruct = 7 + + (0.5 -15 -10.0) // Vertex fllcb = 8 + (0.5 -20 -5) // Vertex fllc = 9 + (0.5 -20 10) // Vertex fluc = 10 + (0.5 -10 20) // Vertex fluct = 11 + (0.5 15 -10.0) // Vertex frlcb = 12 + (0.5 20 -5) // Vertex frlc = 13 + (0.5 20 10) // Vertex fruc = 14 + (0.5 10 20) // Vertex fruct = 15 +); + +blocks +( + // block0 + hex (0 4 5 1 8 12 13 9) + (40 6 1) + simpleGrading (1 1 1) + + // block1 + hex (1 5 6 2 9 13 14 10) + (40 16 1) + simpleGrading (1 1 1) + + // block2 + hex (2 6 7 3 10 14 15 11) + (40 12 1) + simpleGrading (1 1 1) +); + +patches +( + patch walls + ( + (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) + ) + + empty front + ( + (8 12 13 9) + (9 13 14 10) + (10 14 15 11) + ) + + empty back + ( + (0 1 5 4) + (1 2 6 5) + (2 3 7 6) + ) +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/blockMeshDict.m4 b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/blockMeshDict.m4 new file mode 100644 index 0000000000000000000000000000000000000000..ced5dc533e3e9b795683e33517d450678eeab2be --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/blockMeshDict.m4 @@ -0,0 +1,145 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// General m4 macros + +changecom(//)changequote([,]) +define(calc, [esyscmd(perl -e 'use Math::Trig; use POSIX; printf ($1)')]) +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) + ) +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/boundary b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/boundary new file mode 100644 index 0000000000000000000000000000000000000000..57267e87f7e42310c06882be5d8864dc3c77adc2 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/polyMesh/boundary @@ -0,0 +1,40 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +3 +( + walls + { + type patch; + nFaces 148; + startFace 2646; + } + front + { + type empty; + nFaces 1360; + startFace 2794; + } + back + { + type empty; + nFaces 1360; + startFace 4154; + } +) + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/transportProperties b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/transportProperties new file mode 100644 index 0000000000000000000000000000000000000000..c20854a9031a956ad8bc154b0a4ae87375add730 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/constant/transportProperties @@ -0,0 +1,33 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +phase1 +{ + transportModel Newtonian; + nu nu [0 2 -1 0 0 0 0] 1e-6; + rho rho [1 -3 0 0 0 0 0] 998.2; +} + +phase2 +{ + transportModel Newtonian; + nu nu [0 2 -1 0 0 0 0] 1.48e-05; + rho rho [1 -3 0 0 0 0 0] 1; +} + +sigma sigma [1 0 -2 0 0 0 0] 0.0; + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/system/controlDict b/tutorials/interDyMFoam/sloshingTank2D3DoF/system/controlDict new file mode 100644 index 0000000000000000000000000000000000000000..8d7fb44aa4528c4ac117926edad2016b31258934 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/system/controlDict @@ -0,0 +1,107 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application sloshingFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 40; + +deltaT 0.01; + +writeControl adjustableRunTime; + +writeInterval 0.05; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 6; + +writeCompression compressed; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable yes; + +adjustTimeStep yes; + +maxCo 0.5; + +maxDeltaT 1; + +functions +( + probes + { + // Type of functionObject + type probes; + + // Name of the directory for the probe data + name probes; + + // Locations to be probed. runTime modifiable! + probeLocations + ( + (0 9.95 19.77) + (0 -9.95 19.77) + ); + + // Fields to be probed. runTime modifiable! + fields + ( + p + ); + } + + wallPressure + { + // Type of functionObject + type surfaces; + + // Where to load it from (if not already in solver) + functionObjectLibs ("libsampling.so"); + + // Output every 10th time step + interval 10; + + surfaceFormat raw; + + fields + ( + p + ); + + surfaces + ( + walls + { + type patch; + patchName walls; + triangulate false; + } + ); + } +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/system/decomposeParDict b/tutorials/interDyMFoam/sloshingTank2D3DoF/system/decomposeParDict new file mode 100644 index 0000000000000000000000000000000000000000..d4594e09475d920c6ca71413fa457c4ec15810ac --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/system/decomposeParDict @@ -0,0 +1,56 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 16; + +method hierarchical; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +hierarchicalCoeffs +{ + n (4 2 2); + delta 0.001; + order xyz; +} + +metisCoeffs +{ + processorWeights + ( + 1 + 1 + 1 + 1 + ); +} + +manualCoeffs +{ + dataFile ""; +} + +distributed no; + +roots +( +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/system/fvSchemes b/tutorials/interDyMFoam/sloshingTank2D3DoF/system/fvSchemes new file mode 100644 index 0000000000000000000000000000000000000000..f089e4e5e6a14300b65f1deeeda14777be255c0c --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/system/fvSchemes @@ -0,0 +1,59 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; + grad(U) Gauss linear; + grad(gamma) Gauss linear; +} + +divSchemes +{ + div(rho*phi,U) Gauss vanLeerV; + div(phi,gamma) Gauss vanLeer; + div(phirb,gamma) Gauss vanLeer; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + +fluxRequired +{ + default no; + pd; + pcorr; + gamma; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/system/fvSolution b/tutorials/interDyMFoam/sloshingTank2D3DoF/system/fvSolution new file mode 100644 index 0000000000000000000000000000000000000000..3aaca52375805f2de0bb55235af2d945db86e22c --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/system/fvSolution @@ -0,0 +1,123 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + pcorr PCG + { + preconditioner GAMG + { + tolerance 1e-5; + relTol 0; + + smoother DICGaussSeidel; + nPreSweeps 0; + nPostSweeps 2; + nBottomSweeps 2; + + cacheAgglomeration false; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + tolerance 1e-5; + relTol 0; + maxIter 100; + }; + + pd GAMG + { + tolerance 1e-8; + relTol 0.01; + + smoother DIC; + nPreSweeps 0; + nPostSweeps 2; + nFinestSweeps 2; + + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + pdFinal PCG + { + preconditioner GAMG + { + tolerance 2e-9; + relTol 0; + + nVcycles 2; + + smoother DICGaussSeidel; + nPreSweeps 2; + nPostSweeps 2; + nFinestSweeps 2; + + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + tolerance 2e-9; + relTol 0; + maxIter 20; + }; + + U smoothSolver + { + smoother GaussSeidel; + tolerance 1e-6; + relTol 0; + nSweeps 1; + }; +} + +PISO +{ + momentumPredictor no; + nCorrectors 2; + nNonOrthogonalCorrectors 0; + nGammaCorr 1; + nGammaSubCycles 3; + cGamma 1.5; + correctPhi no; + + pRefProbe + { + fields + ( + p + ); + + probeLocations + ( + (0 0 0.15) + ); + } + + pRefValue 1e5; +} + +relaxationFactors +{ + U 1.0; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank2D3DoF/system/setFieldsDict b/tutorials/interDyMFoam/sloshingTank2D3DoF/system/setFieldsDict new file mode 100644 index 0000000000000000000000000000000000000000..2c881a7ba48d03bc05de5c2d82ab02c90c1928ef --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank2D3DoF/system/setFieldsDict @@ -0,0 +1,35 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object setFieldsDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +defaultFieldValues +( + volScalarFieldValue gamma 0 +); + +regions +( + boxToCell + { + box (-100 -100 -100) (100 100 0); + + fieldValues + ( + volScalarFieldValue gamma 1 + ); + } +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/0/U b/tutorials/interDyMFoam/sloshingTank3D3DoF/0/U new file mode 100644 index 0000000000000000000000000000000000000000..df1f4c5a6cac4fec14e0fe27b4ce52192bbb8588 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/0/U @@ -0,0 +1,30 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / 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 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + walls + { + type movingWallVelocity; + value uniform (0 0 0); + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/0/gamma.org b/tutorials/interDyMFoam/sloshingTank3D3DoF/0/gamma.org new file mode 100644 index 0000000000000000000000000000000000000000..85902dcba56932d63c672f60079995cbf927b363 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/0/gamma.org @@ -0,0 +1,29 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / 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 0 0]; + +internalField uniform 0; + +boundaryField +{ + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/0/pd b/tutorials/interDyMFoam/sloshingTank3D3DoF/0/pd new file mode 100644 index 0000000000000000000000000000000000000000..25379b239c07f497fa0d81af72650ff736e464f2 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/0/pd @@ -0,0 +1,29 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object pd; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/Allclean b/tutorials/interDyMFoam/sloshingTank3D3DoF/Allclean new file mode 100755 index 0000000000000000000000000000000000000000..2ffbd01addc2d4c2c5326f0f401c575945c12b7d --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/Allclean @@ -0,0 +1,4 @@ +#!/bin/sh + +foamCleanTutorials cases +rm -rf 0/gamma.gz probes wallPressure pRefProbe diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/Allrun b/tutorials/interDyMFoam/sloshingTank3D3DoF/Allrun new file mode 100755 index 0000000000000000000000000000000000000000..748dcf65ba56b28289c079d37d4abde3e95f3257 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/Allrun @@ -0,0 +1,9 @@ +#!/bin/sh +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +m4 < constant/polyMesh/blockMeshDict.m4 > constant/polyMesh/blockMeshDict +runApplication blockMesh +cp 0/gamma.org 0/gamma +runApplication setFields +runApplication interDyMFoam diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/RASProperties b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/RASProperties new file mode 100644 index 0000000000000000000000000000000000000000..ac1efb34c5d460ae6483a045c147312455969903 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/RASProperties @@ -0,0 +1,173 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object RASProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +// RASModel kEpsilon; +RASModel laminar; + +turbulence off; + +laminarCoeffs +{ +} + +kEpsilonCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +RNGkEpsilonCoeffs +{ + Cmu 0.0845; + C1 1.42; + C2 1.68; + alphak 1.39; + alphaEps 1.39; + eta0 4.38; + beta 0.012; +} + +NonlinearKEShihCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76932; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; +} + +LienCubicKECoeffs +{ + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; +} + +QZetaCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaZeta 0.76923; + anisotropic no; +} + +LaunderSharmaKECoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +LamBremhorstKECoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +LienCubicKELowReCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; + Am 0.016; + Aepsilon 0.263; + Amu 0.00222; +} + +LienLeschzinerLowReCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + Am 0.016; + Aepsilon 0.263; + Amu 0.00222; +} + +LRRCoeffs +{ + Cmu 0.09; + Clrr1 1.8; + Clrr2 0.6; + C1 1.44; + C2 1.92; + Cs 0.25; + Ceps 0.15; + alphaEps 0.76923; +} + +LaunderGibsonRSTMCoeffs +{ + Cmu 0.09; + Clg1 1.8; + Clg2 0.6; + C1 1.44; + C2 1.92; + C1Ref 0.5; + C2Ref 0.3; + Cs 0.25; + Ceps 0.15; + alphaEps 0.76923; + alphaR 1.22; +} + +SpalartAllmarasCoeffs +{ + alphaNut 1.5; + Cb1 0.1355; + Cb2 0.622; + Cw2 0.3; + Cw3 2; + Cv1 7.1; + Cv2 5.0; +} + +wallFunctionCoeffs +{ + kappa 0.4187; + E 9; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/dynamicMeshDict b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/dynamicMeshDict new file mode 100644 index 0000000000000000000000000000000000000000..e7a0ec06d662ae2718dffc093a0605bbf62f732f --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/dynamicMeshDict @@ -0,0 +1,60 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object motionProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dynamicFvMesh solidBodyMotionFvMesh; + +solidBodyMotionFvMeshCoeffs +{ + solidBodyMotionFunction SDA; + + SDACoeffs + { + // Centre of gravity + CofG (0 0 0); + + // Model scale ratio + lamda 50; + + // Max roll amplitude [rad] + rollAmax 0.22654; + + // Min roll amplitude [rad] + rollAmin 0.10472; + + // Heave amplitude [m] + heaveA 3.79; + + // Sway amplitude [m] + swayA 2.34; + + // Damping Coefficient [-] + Q 2.00; + + // Time Period for liquid [sec] + Tp 13.93; + + // Natural Period of Ship [sec] + Tpn 11.93; + + // Reference time step [sec] + dTi 0.059; + + // Incr. in Tp/unit 'dTi'[-] + dTp -0.001; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/environmentalProperties b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/environmentalProperties new file mode 100644 index 0000000000000000000000000000000000000000..40232c0c406c02d21a4ae29a31f702bbf84c6214 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/environmentalProperties @@ -0,0 +1,19 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object environmentalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +g g [0 1 -2 0 0 0 0] (0 0 -9.81); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/blockMeshDict b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/blockMeshDict new file mode 100644 index 0000000000000000000000000000000000000000..0d21d111481f4479c9f59f540e7962d4a65e3e4c --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/blockMeshDict @@ -0,0 +1,137 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// General m4 macros + + + + + + + + + + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// User-defined parameters + +convertToMeters 1; + + // Length of tank (x-direction) + // Breadth of tank (y-direction) + // Depth of tank (z-direction) + + // Depth to the top (height) of lower chamfer + // Height of upper chamfer + + // Angle of lower chamfer to the horizontal + // Angle of upper chamfer to the horizontal + + // Centre of gravity in y-direction + // Centre of gravity in z-direction + + // Number of cells in the length (1 for 2D) + // Number of cells in the breadth + // Number of cells in the height of the lower champfer + // Number of cells in the height between the chamfers + // Number of cells in the height of the upper champfer + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Derived parameters + + // Breadth to the top (height) of lower chamfer + // Breadth of upper chamfer + + + + + + + + + + + + + + + + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Parametric description + +vertices +( + (-10 -15 -10.0) // Vertex bllcb = 0 + (-10 -20 -5) // Vertex bllc = 1 + (-10 -20 10) // Vertex bluc = 2 + (-10 -10 20) // Vertex bluct = 3 + (-10 15 -10.0) // Vertex brlcb = 4 + (-10 20 -5) // Vertex brlc = 5 + (-10 20 10) // Vertex bruc = 6 + (-10 10 20) // Vertex bruct = 7 + + (10 -15 -10.0) // Vertex fllcb = 8 + (10 -20 -5) // Vertex fllc = 9 + (10 -20 10) // Vertex fluc = 10 + (10 -10 20) // Vertex fluct = 11 + (10 15 -10.0) // Vertex frlcb = 12 + (10 20 -5) // Vertex frlc = 13 + (10 20 10) // Vertex fruc = 14 + (10 10 20) // Vertex fruct = 15 +); + +blocks +( + // block0 + hex (0 4 5 1 8 12 13 9) + (40 6 19) + simpleGrading (1 1 1) + + // block1 + hex (1 5 6 2 9 13 14 10) + (40 16 19) + simpleGrading (1 1 1) + + // block2 + hex (2 6 7 3 10 14 15 11) + (40 12 19) + simpleGrading (1 1 1) +); + +patches +( + patch walls + ( + (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) + ) +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/blockMeshDict.m4 b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/blockMeshDict.m4 new file mode 100644 index 0000000000000000000000000000000000000000..5e355fd7025a748a668cd3d55bfe9bd984c78869 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/blockMeshDict.m4 @@ -0,0 +1,137 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// General m4 macros + +changecom(//)changequote([,]) +define(calc, [esyscmd(perl -e 'use Math::Trig; use POSIX; printf ($1)')]) +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) + ) +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/boundary b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/boundary new file mode 100644 index 0000000000000000000000000000000000000000..28068f37d475c1adafedec2ee7c20e8de8d7df32 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/polyMesh/boundary @@ -0,0 +1,28 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +1 +( + walls + { + type patch; + nFaces 5532; + startFace 74754; + } +) + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/transportProperties b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/transportProperties new file mode 100644 index 0000000000000000000000000000000000000000..c20854a9031a956ad8bc154b0a4ae87375add730 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/constant/transportProperties @@ -0,0 +1,33 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +phase1 +{ + transportModel Newtonian; + nu nu [0 2 -1 0 0 0 0] 1e-6; + rho rho [1 -3 0 0 0 0 0] 998.2; +} + +phase2 +{ + transportModel Newtonian; + nu nu [0 2 -1 0 0 0 0] 1.48e-05; + rho rho [1 -3 0 0 0 0 0] 1; +} + +sigma sigma [1 0 -2 0 0 0 0] 0.0; + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/system/controlDict b/tutorials/interDyMFoam/sloshingTank3D3DoF/system/controlDict new file mode 100644 index 0000000000000000000000000000000000000000..b721c9c05888ff377853556eee6154363bc8e05f --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/system/controlDict @@ -0,0 +1,109 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application sloshingFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 40; + +deltaT 0.01; + +writeControl adjustableRunTime; + +writeInterval 0.05; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 6; + +writeCompression compressed; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable yes; + +adjustTimeStep yes; + +maxCo 0.5; + +maxDeltaT 1; + +functions +( + probes + { + // Type of functionObject + type probes; + + // Name of the directory for the probe data + name probes; + + // Locations to be probed. runTime modifiable! + probeLocations + ( + (0 9.95 19.77) + (0 -9.95 19.77) + ); + + // Fields to be probed. runTime modifiable! + fields + ( + p + ); + } + + /* + wallPressure + { + // Type of functionObject + type surfaces; + + // Where to load it from (if not already in solver) + functionObjectLibs ("libsampling.so"); + + // Output every 10th time step + interval 10; + + surfaceFormat raw; + + fields + ( + p + ); + + surfaces + ( + walls + { + type patch; + patchName walls; + triangulate false; + } + ); + } + */ +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/system/decomposeParDict b/tutorials/interDyMFoam/sloshingTank3D3DoF/system/decomposeParDict new file mode 100644 index 0000000000000000000000000000000000000000..d4594e09475d920c6ca71413fa457c4ec15810ac --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/system/decomposeParDict @@ -0,0 +1,56 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 16; + +method hierarchical; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +hierarchicalCoeffs +{ + n (4 2 2); + delta 0.001; + order xyz; +} + +metisCoeffs +{ + processorWeights + ( + 1 + 1 + 1 + 1 + ); +} + +manualCoeffs +{ + dataFile ""; +} + +distributed no; + +roots +( +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/system/fvSchemes b/tutorials/interDyMFoam/sloshingTank3D3DoF/system/fvSchemes new file mode 100644 index 0000000000000000000000000000000000000000..f089e4e5e6a14300b65f1deeeda14777be255c0c --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/system/fvSchemes @@ -0,0 +1,59 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; + grad(U) Gauss linear; + grad(gamma) Gauss linear; +} + +divSchemes +{ + div(rho*phi,U) Gauss vanLeerV; + div(phi,gamma) Gauss vanLeer; + div(phirb,gamma) Gauss vanLeer; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + +fluxRequired +{ + default no; + pd; + pcorr; + gamma; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/system/fvSolution b/tutorials/interDyMFoam/sloshingTank3D3DoF/system/fvSolution new file mode 100644 index 0000000000000000000000000000000000000000..3aaca52375805f2de0bb55235af2d945db86e22c --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/system/fvSolution @@ -0,0 +1,123 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + pcorr PCG + { + preconditioner GAMG + { + tolerance 1e-5; + relTol 0; + + smoother DICGaussSeidel; + nPreSweeps 0; + nPostSweeps 2; + nBottomSweeps 2; + + cacheAgglomeration false; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + tolerance 1e-5; + relTol 0; + maxIter 100; + }; + + pd GAMG + { + tolerance 1e-8; + relTol 0.01; + + smoother DIC; + nPreSweeps 0; + nPostSweeps 2; + nFinestSweeps 2; + + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + pdFinal PCG + { + preconditioner GAMG + { + tolerance 2e-9; + relTol 0; + + nVcycles 2; + + smoother DICGaussSeidel; + nPreSweeps 2; + nPostSweeps 2; + nFinestSweeps 2; + + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + tolerance 2e-9; + relTol 0; + maxIter 20; + }; + + U smoothSolver + { + smoother GaussSeidel; + tolerance 1e-6; + relTol 0; + nSweeps 1; + }; +} + +PISO +{ + momentumPredictor no; + nCorrectors 2; + nNonOrthogonalCorrectors 0; + nGammaCorr 1; + nGammaSubCycles 3; + cGamma 1.5; + correctPhi no; + + pRefProbe + { + fields + ( + p + ); + + probeLocations + ( + (0 0 0.15) + ); + } + + pRefValue 1e5; +} + +relaxationFactors +{ + U 1.0; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D3DoF/system/setFieldsDict b/tutorials/interDyMFoam/sloshingTank3D3DoF/system/setFieldsDict new file mode 100644 index 0000000000000000000000000000000000000000..2c881a7ba48d03bc05de5c2d82ab02c90c1928ef --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D3DoF/system/setFieldsDict @@ -0,0 +1,35 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object setFieldsDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +defaultFieldValues +( + volScalarFieldValue gamma 0 +); + +regions +( + boxToCell + { + box (-100 -100 -100) (100 100 0); + + fieldValues + ( + volScalarFieldValue gamma 1 + ); + } +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/0/U b/tutorials/interDyMFoam/sloshingTank3D6DoF/0/U new file mode 100644 index 0000000000000000000000000000000000000000..df1f4c5a6cac4fec14e0fe27b4ce52192bbb8588 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/0/U @@ -0,0 +1,30 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / 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 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + walls + { + type movingWallVelocity; + value uniform (0 0 0); + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/0/gamma.org b/tutorials/interDyMFoam/sloshingTank3D6DoF/0/gamma.org new file mode 100644 index 0000000000000000000000000000000000000000..85902dcba56932d63c672f60079995cbf927b363 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/0/gamma.org @@ -0,0 +1,29 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / 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 0 0]; + +internalField uniform 0; + +boundaryField +{ + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/0/pd b/tutorials/interDyMFoam/sloshingTank3D6DoF/0/pd new file mode 100644 index 0000000000000000000000000000000000000000..25379b239c07f497fa0d81af72650ff736e464f2 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/0/pd @@ -0,0 +1,29 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object pd; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [1 -1 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + walls + { + type zeroGradient; + } +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/Allclean b/tutorials/interDyMFoam/sloshingTank3D6DoF/Allclean new file mode 100755 index 0000000000000000000000000000000000000000..2ffbd01addc2d4c2c5326f0f401c575945c12b7d --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/Allclean @@ -0,0 +1,4 @@ +#!/bin/sh + +foamCleanTutorials cases +rm -rf 0/gamma.gz probes wallPressure pRefProbe diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/Allrun b/tutorials/interDyMFoam/sloshingTank3D6DoF/Allrun new file mode 100755 index 0000000000000000000000000000000000000000..748dcf65ba56b28289c079d37d4abde3e95f3257 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/Allrun @@ -0,0 +1,9 @@ +#!/bin/sh +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +m4 < constant/polyMesh/blockMeshDict.m4 > constant/polyMesh/blockMeshDict +runApplication blockMesh +cp 0/gamma.org 0/gamma +runApplication setFields +runApplication interDyMFoam diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/6DoF.dat b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/6DoF.dat new file mode 100644 index 0000000000000000000000000000000000000000..0cf1f34768ee1525858abbcdf63827513c28faa0 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/6DoF.dat @@ -0,0 +1,105 @@ + +100 +( +(0 ((0 0 0) (0 0 0))) +(0.40404 ((0.401298 0.952899 0.321827) (4.82741 2.79073 2.00649))) +(0.808081 ((0.786273 1.8071 0.635266) (9.52899 5.3597 3.93137))) +(1.21212 ((1.13927 2.47414 0.932149) (13.9822 7.5028 5.69634))) +(1.61616 ((1.44593 2.88493 1.20474) (18.071 9.04972 7.22963))) +(2.0202 ((1.69377 2.99691 1.44593) (21.6889 9.87755 8.46886))) +(2.42424 ((1.87273 2.7985 1.64943) (24.7414 9.92051 9.36363))) +(2.82828 ((1.97551 2.31024 1.80994) (27.1492 9.17518 9.87755))) +(3.23232 ((1.99794 1.5827 1.92329) (28.8493 7.7008 9.98971))) +(3.63636 ((1.93911 0.691238 1.9865) (29.7975 5.61451 9.69556))) +(4.0404 ((1.80141 -0.271818 1.99794) (29.9691 3.08209 9.00705))) +(4.44444 ((1.59044 -1.20672 1.95731) (29.3597 0.304768 7.9522))) +(4.84848 ((1.31478 -2.01664 1.86567) (27.985 -2.49677 6.5739))) +(5.25253 ((0.985644 -2.61769 1.7254) (25.881 -5.09992 4.92822))) +(5.65657 ((0.616418 -2.94762 1.54016) (23.1024 -7.29782 3.08209))) +(6.06061 ((0.22212 -2.97226 1.31478) (19.7217 -8.91584 1.1106))) +(6.46465 ((-0.181212 -2.68905 1.05513) (15.827 -9.82541 -0.906061))) +(6.86869 ((-0.577174 -2.12733 0.767988) (11.5198 -9.95425 -2.88587))) +(7.27273 ((-0.94966 -1.34528 0.460825) (6.91238 -9.29213 -4.7483))) +(7.67677 ((-1.28352 -0.42389 0.141652) (2.12479 -7.89165 -6.4176))) +(8.08081 ((-1.56518 0.541401 -0.181212) (-2.71818 -5.8641 -7.82588))) +(8.48485 ((-1.78317 1.45062 -0.499354) (-7.49031 -3.37059 -8.91584))) +(8.88889 ((-1.92863 2.20959 -0.804481) (-12.0672 -0.609253 -9.64317))) +(9.29293 ((-1.99566 2.73971 -1.08864) (-16.3296 2.20049 -9.97828))) +(9.69697 ((-1.98151 2.98607 -1.34443) (-20.1664 4.83539 -9.90753))) +(10.101 ((-1.88676 2.92315 -1.56518) (-23.4776 7.08607 -9.43381))) +(10.5051 ((-1.71528 2.55748 -1.74513) (-26.1769 8.77369 -8.57639))) +(10.9091 ((-1.47403 1.92692 -1.8796) (-28.194 9.76415 -7.37013))) +(11.3131 ((-1.17282 1.09679 -1.96508) (-29.4762 9.97875 -5.8641))) +(11.7172 ((-0.823912 0.153055 -1.99935) (-29.9902 9.40043 -4.11956))) +(12.1212 ((-0.441492 -0.806529 -1.98151) (-29.7226 8.07517 -2.20746))) +(12.5253 ((-0.0411152 -1.68258 -1.91202) (-28.6803 6.10824 -0.205576))) +(12.9293 ((0.360934 -2.38436 -1.7927) (-26.8905 3.65596 1.80467))) +(13.3333 ((0.748302 -2.83919 -1.62666) (-24.3999 0.913172 3.74151))) +(13.7374 ((1.10523 -2.99995 -1.41822) (-21.2733 -1.90217 5.52617))) +(14.1414 ((1.41721 -2.85 -1.17282) (-17.5923 -4.56637 7.08607))) +(14.5455 ((1.67155 -2.40487 -0.896852) (-13.4528 -6.86773 8.35775))) +(14.9495 ((1.8579 -1.71066 -0.597509) (-8.96264 -8.62338 9.28948))) +(15.3535 ((1.96868 -0.839275 -0.282593) (-4.2389 -9.69381 9.84339))) +(15.7576 ((1.99938 0.119039 0.0396874) (0.595311 -9.99397 9.99692))) +(16.1616 ((1.94877 1.06502 0.360934) (5.41401 -9.50001 9.74385))) +(16.5657 ((1.81889 1.9007 0.672773) (10.0916 -8.25118 9.09446))) +(16.9697 ((1.61503 2.53952 0.967078) (14.5062 -6.34671 8.07517))) +(17.3737 ((1.34549 2.91531 1.23618) (18.5427 -3.93793 6.72743))) +(17.7778 ((1.02121 2.98915 1.47306) (22.0959 -1.21624 5.10606))) +(18.1818 ((0.655401 2.75341 1.67155) (25.0732 1.60209 3.27701))) +(18.5859 ((0.262934 2.23248 1.82647) (27.3971 4.29312 1.31467))) +(18.9899 ((-0.140228 1.48033 1.93379) (29.0069 6.64301 -0.70114))) +(19.3939 ((-0.537686 0.574858 1.99071) (29.8607 8.46506 -2.68843))) +(19.798 ((-0.913275 -0.390153 1.99575) (29.9362 9.61447 -4.56637))) +(20.202 ((-1.25172 -1.31476 1.94877) (29.2315 9.99991 -6.25859))) +(20.6061 ((-1.53925 -2.10319 1.851) (27.765 9.59076 -7.69624))) +(21.0101 ((-1.76417 -2.67378 1.70499) (25.5748 8.41953 -8.82086))) +(21.4141 ((-1.91734 -2.96745 1.51454) (22.7181 6.57928 -9.58671))) +(21.8182 ((-1.99253 -2.95377 1.28462) (19.2692 4.21624 -9.96263))) +(22.2222 ((-1.98667 -2.63416 1.02121) (15.3182 1.51818 -9.93333))) +(22.6263 ((-1.9 -2.04172 0.731192) (10.9679 -1.30051 -9.50001))) +(23.0303 ((-1.73606 -1.23782 0.422115) (6.33173 -4.01587 -8.68029))) +(23.4343 ((-1.5015 -0.305712 0.102037) (1.53055 -6.41212 -7.50751))) +(23.8384 ((-1.20588 0.658059 -0.220701) (-3.31051 -8.29887 -6.02938))) +(24.2424 ((-0.861202 1.55367 -0.537686) (-8.06529 -9.52619 -4.30601))) +(24.6465 ((-0.4815 2.28837 -0.840658) (-12.6099 -9.99656 -2.4075))) +(25.0505 ((-0.082213 2.78605 -1.12172) (-16.8258 -9.6726 -0.411065))) +(25.4545 ((0.320417 2.99518 -1.37355) (-20.6032 -8.58006 1.60209))) +(25.8586 ((0.710015 2.89408 -1.58957) (-23.8436 -6.80574 3.55008))) +(26.2626 ((1.07073 2.49324 -1.76417) (-26.4626 -4.49064 5.35367))) +(26.6667 ((1.3879 1.83417 -1.89279) (-28.3919 -1.81871 6.93952))) +(27.0707 ((1.64862 0.985126 -1.97208) (-29.5812 0.997727 8.2431))) +(27.4747 ((1.84228 0.0340511 -1.99997) (-29.9995 3.73489 9.21142))) +(27.8788 ((1.96101 -0.92055 -1.97573) (-29.636 6.17528 9.80507))) +(28.2828 ((1.99998 -1.77981 -1.9) (-28.5 8.12498 9.99991))) +(28.6869 ((1.9576 -2.45473 -1.77475) (-26.6213 9.42907 9.78802))) +(29.0909 ((1.8356 -2.8754 -1.60325) (-24.0487 9.98392 9.17802))) +(29.4949 ((1.63894 -2.99826 -1.38996) (-20.8494 9.74545 8.19472))) +(29.899 ((1.37562 -2.81059 -1.14044) (-17.1066 8.73261 6.8781))) +(30.303 ((1.05635 -2.33181 -0.861202) (-12.918 7.02588 5.28174))) +(30.7071 ((0.694108 -1.61153 -0.559517) (-8.39275 4.76086 3.47054))) +(31.1111 ((0.303637 -0.724328 -0.243249) (-3.64873 2.11755 1.51818))) +(31.5152 ((-0.0991843 0.23789 0.0793591) (1.19039 -0.694017 -0.495921))) +(31.9192 ((-0.497971 1.17547 0.399899) (5.99848 -3.45044 -2.48986))) +(32.3232 ((-0.876504 1.9913 0.710015) (10.6502 -5.93269 -4.38252))) +(32.7273 ((-1.21939 2.60089 1.00163) (15.0244 -7.94353 -6.09693))) +(33.1313 ((-1.51267 2.9411 1.26713) (19.007 -9.32318 -7.56336))) +(33.5354 ((-1.74443 2.97669 1.49961) (22.4942 -9.96201 -8.72215))) +(33.9394 ((-1.90524 2.70397 1.69301) (25.3952 -9.80925 -9.52619))) +(34.3434 ((-1.98855 2.1512 1.84228) (27.6342 -8.87705 -9.94276))) +(34.7475 ((-1.99099 1.37563 1.94354) (29.1531 -7.23948 -9.95493))) +(35.1515 ((-1.91244 0.457572 1.99414) (29.9121 -5.02667 -9.56219))) +(35.5556 ((-1.75611 -0.507874 1.99277) (29.8915 -2.41443 -8.78053))) +(35.9596 ((-1.52835 -1.42072 1.93946) (29.0919 0.389661 -7.64173))) +(36.3636 ((-1.23842 -2.18642 1.8356) (27.5341 3.16279 -6.19211))) +(36.7677 ((-0.898128 -2.72566 1.68391) (25.2586 5.6846 -4.49064))) +(37.1717 ((-0.521304 -2.9826 1.48832) (22.3248 7.75471 -2.60652))) +(37.5758 ((-0.123276 -2.93062 1.25394) (18.8092 9.20863 -0.61638))) +(37.9798 ((0.279766 -2.57512 0.986886) (14.8033 9.93084 1.39883))) +(38.3838 ((0.671428 -1.9529 0.694108) (10.4116 9.86394 3.35714))) +(38.7879 ((1.03578 -1.12841 0.383239) (5.74858 9.01325 5.17891))) +(39.1919 ((1.35801 -0.187052 0.0623811) (0.935716 7.44637 6.79003))) +(39.596 ((1.625 0.77368 -0.260102) (-3.90153 5.2878 8.12498))) +(40 ((1.82589 1.65428 -0.575807) (-8.6371 2.70906 9.12945))) +) + diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/RASProperties b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/RASProperties new file mode 100644 index 0000000000000000000000000000000000000000..ac1efb34c5d460ae6483a045c147312455969903 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/RASProperties @@ -0,0 +1,173 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object RASProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +// RASModel kEpsilon; +RASModel laminar; + +turbulence off; + +laminarCoeffs +{ +} + +kEpsilonCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +RNGkEpsilonCoeffs +{ + Cmu 0.0845; + C1 1.42; + C2 1.68; + alphak 1.39; + alphaEps 1.39; + eta0 4.38; + beta 0.012; +} + +NonlinearKEShihCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76932; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; +} + +LienCubicKECoeffs +{ + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; +} + +QZetaCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaZeta 0.76923; + anisotropic no; +} + +LaunderSharmaKECoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +LamBremhorstKECoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphaEps 0.76923; +} + +LienCubicKELowReCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + A1 1.25; + A2 1000; + Ctau1 -4; + Ctau2 13; + Ctau3 -2; + alphaKsi 0.9; + Am 0.016; + Aepsilon 0.263; + Amu 0.00222; +} + +LienLeschzinerLowReCoeffs +{ + Cmu 0.09; + C1 1.44; + C2 1.92; + alphak 1; + alphaEps 0.76923; + Am 0.016; + Aepsilon 0.263; + Amu 0.00222; +} + +LRRCoeffs +{ + Cmu 0.09; + Clrr1 1.8; + Clrr2 0.6; + C1 1.44; + C2 1.92; + Cs 0.25; + Ceps 0.15; + alphaEps 0.76923; +} + +LaunderGibsonRSTMCoeffs +{ + Cmu 0.09; + Clg1 1.8; + Clg2 0.6; + C1 1.44; + C2 1.92; + C1Ref 0.5; + C2Ref 0.3; + Cs 0.25; + Ceps 0.15; + alphaEps 0.76923; + alphaR 1.22; +} + +SpalartAllmarasCoeffs +{ + alphaNut 1.5; + Cb1 0.1355; + Cb2 0.622; + Cw2 0.3; + Cw3 2; + Cv1 7.1; + Cv2 5.0; +} + +wallFunctionCoeffs +{ + kappa 0.4187; + E 9; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/dynamicMeshDict b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/dynamicMeshDict new file mode 100644 index 0000000000000000000000000000000000000000..56eb2294e88b288eff3d7f4f8668a2302f03b6ba --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/dynamicMeshDict @@ -0,0 +1,42 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: 1.4 | +| \\ / A nd | Web: http://www.openfoam.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ + +FoamFile +{ + version 2.0; + format ascii; + + root ""; + case ""; + instance ""; + local ""; + + class dictionary; + object motionProperties; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dynamicFvMesh solidBodyMotionFvMesh; + +solidBodyMotionFvMeshCoeffs +{ + solidBodyMotionFunction SKA; + + SKACoeffs + { + // Centre of gravity + CofG (0 0 0); + + // Time data file name + timeDataFileName "constant/6DoF.dat"; + } +} + + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/environmentalProperties b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/environmentalProperties new file mode 100644 index 0000000000000000000000000000000000000000..40232c0c406c02d21a4ae29a31f702bbf84c6214 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/environmentalProperties @@ -0,0 +1,19 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object environmentalProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +g g [0 1 -2 0 0 0 0] (0 0 -9.81); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/blockMeshDict b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/blockMeshDict new file mode 100644 index 0000000000000000000000000000000000000000..0d21d111481f4479c9f59f540e7962d4a65e3e4c --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/blockMeshDict @@ -0,0 +1,137 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// General m4 macros + + + + + + + + + + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// User-defined parameters + +convertToMeters 1; + + // Length of tank (x-direction) + // Breadth of tank (y-direction) + // Depth of tank (z-direction) + + // Depth to the top (height) of lower chamfer + // Height of upper chamfer + + // Angle of lower chamfer to the horizontal + // Angle of upper chamfer to the horizontal + + // Centre of gravity in y-direction + // Centre of gravity in z-direction + + // Number of cells in the length (1 for 2D) + // Number of cells in the breadth + // Number of cells in the height of the lower champfer + // Number of cells in the height between the chamfers + // Number of cells in the height of the upper champfer + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Derived parameters + + // Breadth to the top (height) of lower chamfer + // Breadth of upper chamfer + + + + + + + + + + + + + + + + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Parametric description + +vertices +( + (-10 -15 -10.0) // Vertex bllcb = 0 + (-10 -20 -5) // Vertex bllc = 1 + (-10 -20 10) // Vertex bluc = 2 + (-10 -10 20) // Vertex bluct = 3 + (-10 15 -10.0) // Vertex brlcb = 4 + (-10 20 -5) // Vertex brlc = 5 + (-10 20 10) // Vertex bruc = 6 + (-10 10 20) // Vertex bruct = 7 + + (10 -15 -10.0) // Vertex fllcb = 8 + (10 -20 -5) // Vertex fllc = 9 + (10 -20 10) // Vertex fluc = 10 + (10 -10 20) // Vertex fluct = 11 + (10 15 -10.0) // Vertex frlcb = 12 + (10 20 -5) // Vertex frlc = 13 + (10 20 10) // Vertex fruc = 14 + (10 10 20) // Vertex fruct = 15 +); + +blocks +( + // block0 + hex (0 4 5 1 8 12 13 9) + (40 6 19) + simpleGrading (1 1 1) + + // block1 + hex (1 5 6 2 9 13 14 10) + (40 16 19) + simpleGrading (1 1 1) + + // block2 + hex (2 6 7 3 10 14 15 11) + (40 12 19) + simpleGrading (1 1 1) +); + +patches +( + patch walls + ( + (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) + ) +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/blockMeshDict.m4 b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/blockMeshDict.m4 new file mode 100644 index 0000000000000000000000000000000000000000..5e355fd7025a748a668cd3d55bfe9bd984c78869 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/blockMeshDict.m4 @@ -0,0 +1,137 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// General m4 macros + +changecom(//)changequote([,]) +define(calc, [esyscmd(perl -e 'use Math::Trig; use POSIX; printf ($1)')]) +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) + ) +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/boundary b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/boundary new file mode 100644 index 0000000000000000000000000000000000000000..28068f37d475c1adafedec2ee7c20e8de8d7df32 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/polyMesh/boundary @@ -0,0 +1,28 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +1 +( + walls + { + type patch; + nFaces 5532; + startFace 74754; + } +) + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/transportProperties b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/transportProperties new file mode 100644 index 0000000000000000000000000000000000000000..c20854a9031a956ad8bc154b0a4ae87375add730 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/constant/transportProperties @@ -0,0 +1,33 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +phase1 +{ + transportModel Newtonian; + nu nu [0 2 -1 0 0 0 0] 1e-6; + rho rho [1 -3 0 0 0 0 0] 998.2; +} + +phase2 +{ + transportModel Newtonian; + nu nu [0 2 -1 0 0 0 0] 1.48e-05; + rho rho [1 -3 0 0 0 0 0] 1; +} + +sigma sigma [1 0 -2 0 0 0 0] 0.0; + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/gen6DoF/Make/files b/tutorials/interDyMFoam/sloshingTank3D6DoF/gen6DoF/Make/files new file mode 100644 index 0000000000000000000000000000000000000000..5d4b8d27128cb0d0772ff9555d68780c7006c203 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/gen6DoF/Make/files @@ -0,0 +1,3 @@ +gen6DoF.C + +EXE = $(FOAM_USER_APPBIN)/gen6DoF diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/gen6DoF/Make/options b/tutorials/interDyMFoam/sloshingTank3D6DoF/gen6DoF/Make/options new file mode 100644 index 0000000000000000000000000000000000000000..fa15f124528ebfcaf279a88a73a0d7954f2e9dc1 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/gen6DoF/Make/options @@ -0,0 +1,5 @@ +EXE_INC = \ + -I$(LIB_SRC)/finiteVolume/lnInclude + +EXE_LIBS = \ + -lfiniteVolume diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/gen6DoF/gen6DoF.C b/tutorials/interDyMFoam/sloshingTank3D6DoF/gen6DoF/gen6DoF.C new file mode 100644 index 0000000000000000000000000000000000000000..0d97918551c1b4218414e817c5e86e6f5fedd100 --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/gen6DoF/gen6DoF.C @@ -0,0 +1,97 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 1991-2008 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 + +Application + gen6DoF + +Description + Generate simple sinusoidal 6-DoF motion control-file. + +\*---------------------------------------------------------------------------*/ + +#include "List.H" +#include "vector.H" +#include "Vector2D.H" +#include "Tuple2.H" +#include "OFstream.H" + +using namespace Foam; + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Main program: + +int main(int argc, char *argv[]) +{ + // End-time of the table + const scalar endTime = 40; + + // Number of entries in the table + const label nTimes = 100; + + // Amplitude of the translation [m] + const vector transAmp(2, 3, 2); + + // Frequency of the translation [rad/s] + const vector transOmega(0.5, 0.8, 0.4); + + // Amplitude of the rotation [deg] + const vector rotAmp(30, 10, 10); + + // Frequency of the rotation [rad/s] + const vector rotOmega(0.4, 0.7, 0.5); + + List<Tuple2<scalar, Vector2D<vector> > > timeValues(nTimes); + + forAll(timeValues, i) + { + scalar t = (endTime*i)/(nTimes - 1); + timeValues[i].first() = t; + + timeValues[i].second()[0] = vector + ( + transAmp.x()*Foam::sin(transOmega.x()*t), + transAmp.y()*Foam::sin(transOmega.y()*t), + transAmp.z()*Foam::sin(transOmega.z()*t) + ); + + timeValues[i].second()[1] = vector + ( + rotAmp.x()*Foam::sin(rotOmega.x()*t), + rotAmp.y()*Foam::sin(rotOmega.y()*t), + rotAmp.z()*Foam::sin(rotOmega.z()*t) + ); + } + + { + OFstream dataFile("6DoF.dat"); + dataFile << timeValues << endl; + } + + Info << "End\n" << endl; + + return 0; +} + + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/system/controlDict b/tutorials/interDyMFoam/sloshingTank3D6DoF/system/controlDict new file mode 100644 index 0000000000000000000000000000000000000000..b721c9c05888ff377853556eee6154363bc8e05f --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/system/controlDict @@ -0,0 +1,109 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application sloshingFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 40; + +deltaT 0.01; + +writeControl adjustableRunTime; + +writeInterval 0.05; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 6; + +writeCompression compressed; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable yes; + +adjustTimeStep yes; + +maxCo 0.5; + +maxDeltaT 1; + +functions +( + probes + { + // Type of functionObject + type probes; + + // Name of the directory for the probe data + name probes; + + // Locations to be probed. runTime modifiable! + probeLocations + ( + (0 9.95 19.77) + (0 -9.95 19.77) + ); + + // Fields to be probed. runTime modifiable! + fields + ( + p + ); + } + + /* + wallPressure + { + // Type of functionObject + type surfaces; + + // Where to load it from (if not already in solver) + functionObjectLibs ("libsampling.so"); + + // Output every 10th time step + interval 10; + + surfaceFormat raw; + + fields + ( + p + ); + + surfaces + ( + walls + { + type patch; + patchName walls; + triangulate false; + } + ); + } + */ +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/system/decomposeParDict b/tutorials/interDyMFoam/sloshingTank3D6DoF/system/decomposeParDict new file mode 100644 index 0000000000000000000000000000000000000000..d4594e09475d920c6ca71413fa457c4ec15810ac --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/system/decomposeParDict @@ -0,0 +1,56 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 16; + +method hierarchical; + +simpleCoeffs +{ + n (2 2 1); + delta 0.001; +} + +hierarchicalCoeffs +{ + n (4 2 2); + delta 0.001; + order xyz; +} + +metisCoeffs +{ + processorWeights + ( + 1 + 1 + 1 + 1 + ); +} + +manualCoeffs +{ + dataFile ""; +} + +distributed no; + +roots +( +); + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/system/fvSchemes b/tutorials/interDyMFoam/sloshingTank3D6DoF/system/fvSchemes new file mode 100644 index 0000000000000000000000000000000000000000..f089e4e5e6a14300b65f1deeeda14777be255c0c --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/system/fvSchemes @@ -0,0 +1,59 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; + grad(U) Gauss linear; + grad(gamma) Gauss linear; +} + +divSchemes +{ + div(rho*phi,U) Gauss vanLeerV; + div(phi,gamma) Gauss vanLeer; + div(phirb,gamma) Gauss vanLeer; +} + +laplacianSchemes +{ + default Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default corrected; +} + +fluxRequired +{ + default no; + pd; + pcorr; + gamma; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/system/fvSolution b/tutorials/interDyMFoam/sloshingTank3D6DoF/system/fvSolution new file mode 100644 index 0000000000000000000000000000000000000000..3aaca52375805f2de0bb55235af2d945db86e22c --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/system/fvSolution @@ -0,0 +1,123 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + pcorr PCG + { + preconditioner GAMG + { + tolerance 1e-5; + relTol 0; + + smoother DICGaussSeidel; + nPreSweeps 0; + nPostSweeps 2; + nBottomSweeps 2; + + cacheAgglomeration false; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + tolerance 1e-5; + relTol 0; + maxIter 100; + }; + + pd GAMG + { + tolerance 1e-8; + relTol 0.01; + + smoother DIC; + nPreSweeps 0; + nPostSweeps 2; + nFinestSweeps 2; + + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + pdFinal PCG + { + preconditioner GAMG + { + tolerance 2e-9; + relTol 0; + + nVcycles 2; + + smoother DICGaussSeidel; + nPreSweeps 2; + nPostSweeps 2; + nFinestSweeps 2; + + cacheAgglomeration true; + nCellsInCoarsestLevel 10; + agglomerator faceAreaPair; + mergeLevels 1; + }; + + tolerance 2e-9; + relTol 0; + maxIter 20; + }; + + U smoothSolver + { + smoother GaussSeidel; + tolerance 1e-6; + relTol 0; + nSweeps 1; + }; +} + +PISO +{ + momentumPredictor no; + nCorrectors 2; + nNonOrthogonalCorrectors 0; + nGammaCorr 1; + nGammaSubCycles 3; + cGamma 1.5; + correctPhi no; + + pRefProbe + { + fields + ( + p + ); + + probeLocations + ( + (0 0 0.15) + ); + } + + pRefValue 1e5; +} + +relaxationFactors +{ + U 1.0; +} + +// ************************************************************************* // diff --git a/tutorials/interDyMFoam/sloshingTank3D6DoF/system/setFieldsDict b/tutorials/interDyMFoam/sloshingTank3D6DoF/system/setFieldsDict new file mode 100644 index 0000000000000000000000000000000000000000..2c881a7ba48d03bc05de5c2d82ab02c90c1928ef --- /dev/null +++ b/tutorials/interDyMFoam/sloshingTank3D6DoF/system/setFieldsDict @@ -0,0 +1,35 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: http://www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object setFieldsDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +defaultFieldValues +( + volScalarFieldValue gamma 0 +); + +regions +( + boxToCell + { + box (-100 -100 -100) (100 100 0); + + fieldValues + ( + volScalarFieldValue gamma 1 + ); + } +); + +// ************************************************************************* //