INT: Clean-up and integration of wave BC updates

This commit is contained in:
Andrew Heather
2019-06-11 15:29:15 +01:00
parent 7d9f3c8a0d
commit dd437aa667
218 changed files with 701 additions and 761 deletions

View File

@ -2,8 +2,10 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2018 OpenCFD Ltd. \\ / A nd | Copyright (C) 2018-2019 OpenCFD Ltd.
\\/ M anipulation | Copyright (C) 2018 IH-Cantabria \\/ M anipulation |
-------------------------------------------------------------------------------
| Copyright (C) 2018-2019 IH-Cantabria
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -116,7 +118,7 @@ Foam::waveMakerPointPatchVectorField::waveMakerPointPatchVectorField
) )
: :
fixedValuePointPatchField<vector>(p, iF, dict, false), fixedValuePointPatchField<vector>(p, iF, dict, false),
motionType_(motionTypeNames.lookup("motionType", dict)), motionType_(motionTypeNames.get("motionType", dict)),
n_(dict.get<vector>("n")), n_(dict.get<vector>("n")),
gHat_(Zero), gHat_(Zero),
initialDepth_(dict.get<scalar>("initialDepth")), initialDepth_(dict.get<scalar>("initialDepth")),
@ -251,47 +253,34 @@ void Foam::waveMakerPointPatchVectorField::updateCoeffs()
} }
case motionTypes::solitary: case motionTypes::solitary:
{ {
const scalar kappa_ = sqrt(3.0/4.0*waveHeight_/(pow(initialDepth_,3))); const scalar kappa = sqrt(0.75*waveHeight_/(pow3(initialDepth_)));
const scalar waveCelerity_ = sqrt(mag(g())*(initialDepth_+waveHeight_)); const scalar waveCelerity =
const scalar stroke_ = sqrt(16.0*waveHeight_*initialDepth_/3.0); sqrt(mag(g())*(initialDepth_ + waveHeight_));
wavePeriod_ = (2.0 / ( kappa_*waveCelerity_ ))*(3.8 + waveHeight_/ const scalar stroke = sqrt(16.0*waveHeight_*initialDepth_/3.0);
initialDepth_); const scalar hr = waveHeight_/initialDepth_;
wavePeriod_ = (2.0/(kappa*waveCelerity))*(3.8 + hr);
scalar motionX = 0; const scalar tSolitary =
const scalar error=0.001; -0.5*wavePeriod_ + t - db().time().startTime().value();
if (onlyFirst==0) // Newton-Rapshon
{ scalar theta1 = 0;
tAux = -wavePeriod_/2.0 + (t-tOld); scalar theta2 = 0;
} scalar er = 10000;
else const scalar error = 0.001;
{ while (er > error)
tAux = tAuxOld + (t-tOld);
}
//Newton-Rapshon
scalar theta1OF=0;
scalar theta2OF=0;
scalar er=10000;
while (er>error)
{
theta2OF = theta1OF - (theta1OF - kappa_*waveCelerity_*tAux
+ (waveHeight_/initialDepth_)*tanh(theta1OF) )
/ ( 1.0 + (waveHeight_/initialDepth_)*(1.0/cosh(theta1OF))*(1.0/cosh(theta1OF)));
er=fabs(theta1OF-theta2OF);
theta1OF=theta2OF;
}
motionX = waveHeight_ / (kappa_*initialDepth_)*tanh(theta1OF) + stroke_/2.0;
if (tAux != 0)
{ {
onlyFirst = 1; theta2 =
theta1
- (theta1 - kappa*waveCelerity*tSolitary + hr*tanh(theta1))
/(1.0 + hr*(1.0/cosh(theta1))*(1.0/cosh(theta1)));
er = mag(theta1 - theta2);
theta1 = theta2;
} }
tOld = t; scalar motionX =
tAuxOld = tAux; waveHeight_/(kappa*initialDepth_)*tanh(theta1) + 0.5*stroke;
Field<vector>::operator=(n_*motionX); Field<vector>::operator=(n_*motionX);

View File

@ -3,7 +3,9 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2018 OpenCFD Ltd. \\ / A nd | Copyright (C) 2018 OpenCFD Ltd.
\\/ M anipulation | Copyright (C) 2018 IH-Cantabria \\/ M anipulation |
-------------------------------------------------------------------------------
| Copyright (C) 2018-2019 IH-Cantabria
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -68,6 +70,7 @@ Usage
Available motion types include: Available motion types include:
- piston - piston
- flap - flap
- solitary
SourceFiles SourceFiles
waveMakerPointPatchVectorField.C waveMakerPointPatchVectorField.C
@ -99,7 +102,7 @@ class waveMakerPointPatchVectorField
{ {
piston, piston,
flap, flap,
solitary solitary
}; };
//- Names for motion types //- Names for motion types
@ -140,13 +143,6 @@ class waveMakerPointPatchVectorField
//- On/off second order calculation switch //- On/off second order calculation switch
scalar secondOrder_; scalar secondOrder_;
//- Solitary time [-T/2, T/2]
scalar tOld = 0;
scalar tAux = 0;
scalar tAuxOld = 0;
scalar onlyFirst = 0;
// Protected Member Functions // Protected Member Functions

View File

@ -1,54 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1812 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
}
gradSchemes
{
default Gauss linear;
}
divSchemes
{
div(rhoPhi,U) Gauss linearUpwind grad(U);
div(phi,alpha) Gauss vanLeer;
div(phirb,alpha) Gauss linear;
div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
}
laplacianSchemes
{
default Gauss linear orthogonal;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default orthogonal;
}
// ************************************************************************* //

View File

@ -1,54 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1812 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
}
gradSchemes
{
default Gauss linear;
}
divSchemes
{
div(rhoPhi,U) Gauss linearUpwind grad(U);
div(phi,alpha) Gauss vanLeer;
div(phirb,alpha) Gauss linear;
div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
}
laplacianSchemes
{
default Gauss linear orthogonal;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default orthogonal;
}
// ************************************************************************* //

View File

@ -1,78 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1812 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
"alpha.water.*"
{
nAlphaCorr 1;
nAlphaSubCycles 3;
cAlpha 1;
}
"pcorr.*"
{
solver PCG;
preconditioner DIC;
tolerance 1e-6;
relTol 0;
}
p_rgh
{
solver PCG;
preconditioner DIC;
tolerance 1e-6;
relTol 0.1;
}
p_rghFinal
{
solver GAMG;
smoother DIC;
tolerance 1e-7;
relTol 0;
}
U
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-6;
relTol 0.1;
}
UFinal
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-6;
relTol 0;
}
}
PIMPLE
{
momentumPredictor no;
nCorrectors 2;
nNonOrthogonalCorrectors 0;
}
// ************************************************************************* //

View File

@ -1,54 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1812 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
}
gradSchemes
{
default Gauss linear;
}
divSchemes
{
div(rhoPhi,U) Gauss linearUpwind grad(U);
div(phi,alpha) Gauss vanLeer;
div(phirb,alpha) Gauss linear;
div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
}
laplacianSchemes
{
default Gauss linear orthogonal;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default orthogonal;
}
// ************************************************************************* //

View File

@ -1,78 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1812 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
"alpha.water.*"
{
nAlphaCorr 1;
nAlphaSubCycles 3;
cAlpha 1;
}
"pcorr.*"
{
solver PCG;
preconditioner DIC;
tolerance 1e-6;
relTol 0;
}
p_rgh
{
solver PCG;
preconditioner DIC;
tolerance 1e-6;
relTol 0.1;
}
p_rghFinal
{
solver GAMG;
smoother DIC;
tolerance 1e-7;
relTol 0;
}
U
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-6;
relTol 0.1;
}
UFinal
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-6;
relTol 0;
}
}
PIMPLE
{
momentumPredictor no;
nCorrectors 2;
nNonOrthogonalCorrectors 0;
}
// ************************************************************************* //

View File

@ -1,54 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1812 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
}
gradSchemes
{
default Gauss linear;
}
divSchemes
{
div(rhoPhi,U) Gauss linearUpwind grad(U);
div(phi,alpha) Gauss vanLeer;
div(phirb,alpha) Gauss linear;
div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
}
laplacianSchemes
{
default Gauss linear orthogonal;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default orthogonal;
}
// ************************************************************************* //

View File

@ -1,78 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1812 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
"alpha.water.*"
{
nAlphaCorr 1;
nAlphaSubCycles 3;
cAlpha 1;
}
"pcorr.*"
{
solver PCG;
preconditioner DIC;
tolerance 1e-6;
relTol 0;
}
p_rgh
{
solver PCG;
preconditioner DIC;
tolerance 1e-6;
relTol 0.1;
}
p_rghFinal
{
solver GAMG;
smoother DIC;
tolerance 1e-7;
relTol 0;
}
U
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-6;
relTol 0.1;
}
UFinal
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-6;
relTol 0;
}
}
PIMPLE
{
momentumPredictor no;
nCorrectors 2;
nNonOrthogonalCorrectors 0;
}
// ************************************************************************* //

View File

@ -1,54 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1812 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
}
gradSchemes
{
default Gauss linear;
}
divSchemes
{
div(rhoPhi,U) Gauss linearUpwind grad(U);
div(phi,alpha) Gauss vanLeer;
div(phirb,alpha) Gauss linear;
div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
}
laplacianSchemes
{
default Gauss linear orthogonal;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default orthogonal;
}
// ************************************************************************* //

View File

@ -1,78 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v1812 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
"alpha.water.*"
{
nAlphaCorr 1;
nAlphaSubCycles 3;
cAlpha 1;
}
"pcorr.*"
{
solver PCG;
preconditioner DIC;
tolerance 1e-6;
relTol 0;
}
p_rgh
{
solver PCG;
preconditioner DIC;
tolerance 1e-6;
relTol 0.1;
}
p_rghFinal
{
solver GAMG;
smoother DIC;
tolerance 1e-7;
relTol 0;
}
U
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-6;
relTol 0.1;
}
UFinal
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-6;
relTol 0;
}
}
PIMPLE
{
momentumPredictor no;
nCorrectors 2;
nNonOrthogonalCorrectors 0;
}
// ************************************************************************* //

View File

@ -87,4 +87,3 @@ mergePatchPairs
); );
// ************************************************************************* // // ************************************************************************* //

View File

@ -51,4 +51,3 @@ snGradSchemes
// ************************************************************************* // // ************************************************************************* //

View File

@ -75,4 +75,3 @@ PIMPLE
// ************************************************************************* // // ************************************************************************* //

View File

@ -94,4 +94,3 @@ mergePatchPairs
); );
// ************************************************************************* // // ************************************************************************* //

View File

@ -51,4 +51,3 @@ snGradSchemes
// ************************************************************************* // // ************************************************************************* //

View File

@ -75,4 +75,3 @@ PIMPLE
// ************************************************************************* // // ************************************************************************* //

View File

@ -35,7 +35,7 @@ boundaryField
{ {
type zeroGradient; type zeroGradient;
} }
sides sides
{ {
type zeroGradient; type zeroGradient;

View File

@ -20,7 +20,7 @@ internalField uniform 0;
boundaryField boundaryField
{ {
left left
{ {
type fixedFluxPressure; type fixedFluxPressure;
value uniform 0; value uniform 0;

View File

@ -1,4 +1,3 @@
solid C
facet normal 0.0 1.0 0.0 facet normal 0.0 1.0 0.0
outer loop outer loop
vertex 4.065 0.5475 0.25 vertex 4.065 0.5475 0.25

View File

@ -40,4 +40,3 @@ right
} }
// ************************************************************************* // // ************************************************************************* //

View File

@ -53,4 +53,3 @@ snGradSchemes
// ************************************************************************* // // ************************************************************************* //

View File

@ -75,4 +75,3 @@ PIMPLE
// ************************************************************************* // // ************************************************************************* //

View File

@ -87,4 +87,3 @@ mergePatchPairs
); );
// ************************************************************************* // // ************************************************************************* //

View File

@ -51,4 +51,3 @@ snGradSchemes
// ************************************************************************* // // ************************************************************************* //

View File

@ -75,4 +75,3 @@ PIMPLE
// ************************************************************************* // // ************************************************************************* //

View File

@ -35,7 +35,7 @@ boundaryField
{ {
type zeroGradient; type zeroGradient;
} }
sides sides
{ {
type zeroGradient; type zeroGradient;

View File

@ -20,7 +20,7 @@ internalField uniform 0;
boundaryField boundaryField
{ {
left left
{ {
type fixedFluxPressure; type fixedFluxPressure;
value uniform 0; value uniform 0;

View File

@ -40,4 +40,3 @@ right
} }
// ************************************************************************* // // ************************************************************************* //

View File

@ -51,4 +51,3 @@ snGradSchemes
// ************************************************************************* // // ************************************************************************* //

View File

@ -75,4 +75,3 @@ PIMPLE
// ************************************************************************* // // ************************************************************************* //

View File

@ -35,7 +35,7 @@ boundaryField
{ {
type zeroGradient; type zeroGradient;
} }
sides sides
{ {
type zeroGradient; type zeroGradient;

View File

@ -20,7 +20,7 @@ internalField uniform 0;
boundaryField boundaryField
{ {
left left
{ {
type fixedFluxPressure; type fixedFluxPressure;
value uniform 0; value uniform 0;

Some files were not shown because too many files have changed in this diff Show More