mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: Added new Grimshaw and McCowan wave models - initial commit for
integration
This commit is contained in:
committed by
Andrew Heather
parent
361398a64a
commit
0f230ba35b
@ -6,6 +6,8 @@ waveGenerationModels/base/regularWaveModel/regularWaveModel.C
|
|||||||
waveGenerationModels/base/solitaryWaveModel/solitaryWaveModel.C
|
waveGenerationModels/base/solitaryWaveModel/solitaryWaveModel.C
|
||||||
waveGenerationModels/derived/Boussinesq/BoussinesqWaveModel.C
|
waveGenerationModels/derived/Boussinesq/BoussinesqWaveModel.C
|
||||||
waveGenerationModels/derived/cnoidal/cnoidalWaveModel.C
|
waveGenerationModels/derived/cnoidal/cnoidalWaveModel.C
|
||||||
|
waveGenerationModels/derived/Grimshaw/GrimshawWaveModel.C
|
||||||
|
waveGenerationModels/derived/McCowan/McCowanWaveModel.C
|
||||||
waveGenerationModels/derived/StokesII/StokesIIWaveModel.C
|
waveGenerationModels/derived/StokesII/StokesIIWaveModel.C
|
||||||
waveGenerationModels/derived/StokesI/StokesIWaveModel.C
|
waveGenerationModels/derived/StokesI/StokesIWaveModel.C
|
||||||
waveGenerationModels/derived/StokesV/StokesVWaveModel.C
|
waveGenerationModels/derived/StokesV/StokesVWaveModel.C
|
||||||
|
|||||||
@ -0,0 +1,282 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration |
|
||||||
|
\\ / A nd | Copyright (C) 2016 OpenCFD Ltd.
|
||||||
|
\\/ M anipulation | Copyright (C) 2015 IH-Cantabria
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
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 3 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, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include "GrimshawWaveModel.H"
|
||||||
|
#include "addToRunTimeSelectionTable.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
namespace Foam
|
||||||
|
{
|
||||||
|
namespace waveModels
|
||||||
|
{
|
||||||
|
defineTypeNameAndDebug(Grimshaw, 0);
|
||||||
|
addToRunTimeSelectionTable
|
||||||
|
(
|
||||||
|
waveModel,
|
||||||
|
Grimshaw,
|
||||||
|
patch
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
Foam::scalar Foam::waveModels::Grimshaw::alfa
|
||||||
|
(
|
||||||
|
const scalar H,
|
||||||
|
const scalar h
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
scalar eps = H/h;
|
||||||
|
scalar alfa = sqrt(0.75*eps)*(1.0 - (5.0/8.0)*eps + (71.0/128.0)*eps*eps);
|
||||||
|
|
||||||
|
return alfa;
|
||||||
|
}
|
||||||
|
|
||||||
|
//- Wave height
|
||||||
|
Foam::scalar Foam::waveModels::Grimshaw::eta
|
||||||
|
(
|
||||||
|
const scalar H,
|
||||||
|
const scalar h,
|
||||||
|
const scalar x,
|
||||||
|
const scalar y,
|
||||||
|
const scalar theta,
|
||||||
|
const scalar t,
|
||||||
|
const scalar X0
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
scalar eps = H/h;
|
||||||
|
scalar C = sqrt(mag(g_)*h)*sqrt(1.0+eps-(1.0/20.0)*eps*eps-(3.0/70.0)*eps*eps*eps);
|
||||||
|
|
||||||
|
scalar ts = 3.5*h/sqrt(H/h);
|
||||||
|
scalar xa = -C*t + ts - X0 + x*cos(theta) + y*sin(theta);
|
||||||
|
|
||||||
|
scalar alfa = this->alfa(H, h);
|
||||||
|
|
||||||
|
scalar s = (1.0)/(cosh(alfa*(xa/h)));
|
||||||
|
scalar q = tanh(alfa*(xa/h));
|
||||||
|
|
||||||
|
return h*(eps*s*s - 0.75*eps*eps*s*s*q*q + eps*eps*eps*((5.0/8.0)*s*s*q*q - (101.0/80.0)*s*s*s*s*q*q));
|
||||||
|
}
|
||||||
|
|
||||||
|
//- Wave velocity
|
||||||
|
Foam::vector Foam::waveModels::Grimshaw::U
|
||||||
|
(
|
||||||
|
const scalar H,
|
||||||
|
const scalar h,
|
||||||
|
const scalar x,
|
||||||
|
const scalar y,
|
||||||
|
const scalar theta,
|
||||||
|
const scalar t,
|
||||||
|
const scalar X0,
|
||||||
|
const scalar z
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
scalar eps = H/h;
|
||||||
|
scalar C = sqrt(mag(g_)*h)*sqrt(1.0+eps-(1.0/20.0)*eps*eps-(3.0/70.0)*eps*eps*eps);
|
||||||
|
scalar ts = 3.5*h/sqrt(H/h);
|
||||||
|
scalar xa = -C*t + ts - X0 + x*cos(theta) + y*sin(theta);
|
||||||
|
scalar alfa = this->alfa(H, h);
|
||||||
|
|
||||||
|
scalar s = (1.0)/(cosh(alfa*(xa/h)));
|
||||||
|
|
||||||
|
scalar outa = eps*s*s - eps*eps*(-(1.0/4.0)*s*s + s*s*s*s + ((z/h)*(z/h))*((3.0/2.0)*s*s - (9.0/4.0)*s*s*s*s));
|
||||||
|
scalar outb = (19.0/40.0)*s*s + (1.0/5.0)*s*s*s*s - (6.0/5.0)*s*s*s*s*s*s;
|
||||||
|
scalar outc = ((z/h)*(z/h)) * ( -(3.0/2.0)*s*s - (15.0/4.0)*s*s*s*s + (15.0/2.0)*s*s*s*s*s*s);
|
||||||
|
scalar outd = ((z/h)*(z/h)*(z/h)*(z/h)) * ((-3.0/8.0)*s*s + (45.0/16.0)*s*s*s*s - (45.0/16.0)*s*s*s*s*s*s);
|
||||||
|
|
||||||
|
scalar u = sqrt(mag(g_)*h)*(outa - eps*eps*eps*(outb+outc+outd));
|
||||||
|
|
||||||
|
outa = eps*s*s - eps*eps*((3.0/8.0)*s*s + 2.0*s*s*s*s + ((z/h)*(z/h))*(0.5*s*s - (3.0/2.0)*s*s*s*s));
|
||||||
|
outb = (49.0/640.0)*s*s - (17.0/20.0)*s*s*s*s - (18.0/5.0)*s*s*s*s*s*s;
|
||||||
|
outc = ((z/h)*(z/h)) * ((-13.0/16.0)*s*s -(25.0/16.0)*s*s*s*s + (15.0/2.0)*s*s*s*s*s*s);
|
||||||
|
outd = ((z/h)*(z/h)*(z/h)*(z/h)) * ((-3.0/40.0)*s*s -(9.0/8.0)*s*s*s*s - (27.0/16.0)*s*s*s*s*s*s);
|
||||||
|
|
||||||
|
scalar w = sqrt(mag(g_)*h)*(outa - eps*eps*eps*(outb+outc+outd));
|
||||||
|
|
||||||
|
scalar v = u*sin(waveAngle_);
|
||||||
|
u *= cos(waveAngle_);
|
||||||
|
|
||||||
|
return vector(u, v, w);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Foam::waveModels::Grimshaw::setLevel
|
||||||
|
(
|
||||||
|
const scalar t,
|
||||||
|
const scalar tCoeff,
|
||||||
|
scalarField& level
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
forAll(level, paddlei)
|
||||||
|
{
|
||||||
|
const scalar eta =
|
||||||
|
this->eta
|
||||||
|
(
|
||||||
|
waveHeight_,
|
||||||
|
waterDepthRef_,
|
||||||
|
xPaddle_[paddlei],
|
||||||
|
yPaddle_[paddlei],
|
||||||
|
waveAngle_,
|
||||||
|
t,
|
||||||
|
x0_
|
||||||
|
);
|
||||||
|
|
||||||
|
level[paddlei] = waterDepthRef_ + tCoeff*eta;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
Foam::waveModels::Grimshaw::Grimshaw
|
||||||
|
(
|
||||||
|
const dictionary& dict,
|
||||||
|
const fvMesh& mesh,
|
||||||
|
const polyPatch& patch,
|
||||||
|
const bool readFields
|
||||||
|
)
|
||||||
|
:
|
||||||
|
solitaryWaveModel(dict, mesh, patch, false)
|
||||||
|
{
|
||||||
|
if (readFields)
|
||||||
|
{
|
||||||
|
read(dict);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
Foam::waveModels::Grimshaw::~Grimshaw()
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
bool Foam::waveModels::Grimshaw::read(const dictionary& overrideDict)
|
||||||
|
{
|
||||||
|
if (solitaryWaveModel::read(overrideDict))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Foam::waveModels::Grimshaw::setVelocity
|
||||||
|
(
|
||||||
|
const scalar t,
|
||||||
|
const scalar tCoeff,
|
||||||
|
const scalarField& level,
|
||||||
|
const scalar tg
|
||||||
|
)
|
||||||
|
{
|
||||||
|
forAll(U_, facei)
|
||||||
|
{
|
||||||
|
// Fraction of geometry represented by paddle - to be set
|
||||||
|
scalar fraction = 1;
|
||||||
|
|
||||||
|
// Height - to be set
|
||||||
|
scalar z = 0;
|
||||||
|
|
||||||
|
setPaddlePropeties(level, facei, fraction, z);
|
||||||
|
|
||||||
|
if (fraction > 0)
|
||||||
|
{
|
||||||
|
|
||||||
|
if ( (tg<0) || (t >= tg) )
|
||||||
|
{
|
||||||
|
const label paddlei = faceToPaddle_[facei];
|
||||||
|
|
||||||
|
const vector Uf = U
|
||||||
|
(
|
||||||
|
waveHeight_,
|
||||||
|
waterDepthRef_,
|
||||||
|
xPaddle_[paddlei],
|
||||||
|
yPaddle_[paddlei],
|
||||||
|
waveAngle_,
|
||||||
|
t,
|
||||||
|
x0_,
|
||||||
|
z
|
||||||
|
);
|
||||||
|
|
||||||
|
U_[facei] = fraction*Uf*tCoeff + fraction*UCurrent_;
|
||||||
|
|
||||||
|
}
|
||||||
|
else if ( tg>=t )
|
||||||
|
{
|
||||||
|
U_[facei] = fraction*UCurrent_;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Foam::waveModels::Grimshaw::setVelocityAbsorption
|
||||||
|
(
|
||||||
|
const scalarField& calculatedLevel,
|
||||||
|
const scalarField& activeLevel
|
||||||
|
)
|
||||||
|
{
|
||||||
|
|
||||||
|
forAll(U_, facei)
|
||||||
|
{
|
||||||
|
const label paddlei = faceToPaddle_[facei];
|
||||||
|
|
||||||
|
scalar activeLevelMBL=activeLevel[paddlei];
|
||||||
|
|
||||||
|
scalar zMin = zMin_[facei];
|
||||||
|
|
||||||
|
//------ not needed anymore in new release
|
||||||
|
if (fabs(zMinGb_)>1.0e-3)
|
||||||
|
{
|
||||||
|
zMin = zMin - zMinGb_;
|
||||||
|
}
|
||||||
|
//------
|
||||||
|
|
||||||
|
if (zMin < activeLevelMBL)
|
||||||
|
|
||||||
|
{
|
||||||
|
scalar UCorr =
|
||||||
|
(calculatedLevel[paddlei] - activeLevel[paddlei])
|
||||||
|
*sqrt(mag(g_)/activeLevel[paddlei]);
|
||||||
|
|
||||||
|
U_[facei].x() += UCorr;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
U_[facei].x() = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Foam::waveModels::Grimshaw::info(Ostream& os) const
|
||||||
|
{
|
||||||
|
solitaryWaveModel::info(os);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,154 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration |
|
||||||
|
\\ / A nd | Copyright (C) 2016 OpenCFD Ltd.
|
||||||
|
\\/ M anipulation | Copyright (C) 2015 IH-Cantabria
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
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 3 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, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
Class
|
||||||
|
Foam::waveModels::Grimshaw
|
||||||
|
|
||||||
|
Description
|
||||||
|
Grimshaw wave model
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#ifndef waveModels_Grimshaw_H
|
||||||
|
#define waveModels_Grimshaw_H
|
||||||
|
|
||||||
|
#include "solitaryWaveModel.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
namespace Foam
|
||||||
|
{
|
||||||
|
namespace waveModels
|
||||||
|
{
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
Class Grimshaw Declaration
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
class Grimshaw
|
||||||
|
:
|
||||||
|
public solitaryWaveModel
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
|
||||||
|
// Protected Member Functions
|
||||||
|
|
||||||
|
//- Wave height
|
||||||
|
virtual scalar eta
|
||||||
|
(
|
||||||
|
const scalar H,
|
||||||
|
const scalar h,
|
||||||
|
const scalar x,
|
||||||
|
const scalar y,
|
||||||
|
const scalar theta,
|
||||||
|
const scalar t,
|
||||||
|
const scalar X0
|
||||||
|
) const;
|
||||||
|
|
||||||
|
//-
|
||||||
|
virtual scalar alfa
|
||||||
|
(
|
||||||
|
const scalar H,
|
||||||
|
const scalar h
|
||||||
|
) const;
|
||||||
|
|
||||||
|
//- Wave velocity
|
||||||
|
virtual vector U
|
||||||
|
(
|
||||||
|
const scalar H,
|
||||||
|
const scalar h,
|
||||||
|
const scalar x,
|
||||||
|
const scalar y,
|
||||||
|
const scalar theta,
|
||||||
|
const scalar t,
|
||||||
|
const scalar X0,
|
||||||
|
const scalar z
|
||||||
|
) const;
|
||||||
|
|
||||||
|
//- Set the water level
|
||||||
|
virtual void setLevel
|
||||||
|
(
|
||||||
|
const scalar t,
|
||||||
|
const scalar tCoeff,
|
||||||
|
scalarField& level
|
||||||
|
) const;
|
||||||
|
|
||||||
|
//- Calculate the wave model velocity
|
||||||
|
virtual void setVelocity
|
||||||
|
(
|
||||||
|
const scalar t,
|
||||||
|
const scalar tCoeff,
|
||||||
|
const scalarField& level,
|
||||||
|
const scalar tg
|
||||||
|
);
|
||||||
|
|
||||||
|
// Add current absorption to velocity
|
||||||
|
virtual void setCurrent
|
||||||
|
(
|
||||||
|
const scalarField& levelMBO
|
||||||
|
);
|
||||||
|
|
||||||
|
//- Calculate the wave model velocity absorption
|
||||||
|
virtual void setVelocityAbsorption
|
||||||
|
(
|
||||||
|
const scalarField& calculatedLevel,
|
||||||
|
const scalarField& activeLevel
|
||||||
|
);
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
//- Runtime type information
|
||||||
|
TypeName("Grimshaw");
|
||||||
|
|
||||||
|
//- Constructor
|
||||||
|
Grimshaw
|
||||||
|
(
|
||||||
|
const dictionary& dict,
|
||||||
|
const fvMesh& mesh,
|
||||||
|
const polyPatch& patch,
|
||||||
|
const bool readFields = true
|
||||||
|
);
|
||||||
|
|
||||||
|
//- Destructor
|
||||||
|
virtual ~Grimshaw();
|
||||||
|
|
||||||
|
|
||||||
|
// Public Member Functions
|
||||||
|
|
||||||
|
//- Read from dictionary
|
||||||
|
virtual bool read(const dictionary& overrideDict);
|
||||||
|
|
||||||
|
//- Info
|
||||||
|
virtual void info(Ostream& os) const;
|
||||||
|
};
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
} // End namespace waveModels
|
||||||
|
} // End namespace Foam
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,408 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration |
|
||||||
|
\\ / A nd | Copyright (C) 2016 OpenCFD Ltd.
|
||||||
|
\\/ M anipulation | Copyright (C) 2015 IH-Cantabria
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
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 3 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, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include "McCowanWaveModel.H"
|
||||||
|
#include "addToRunTimeSelectionTable.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
namespace Foam
|
||||||
|
{
|
||||||
|
namespace waveModels
|
||||||
|
{
|
||||||
|
defineTypeNameAndDebug(McCowan, 0);
|
||||||
|
addToRunTimeSelectionTable
|
||||||
|
(
|
||||||
|
waveModel,
|
||||||
|
McCowan,
|
||||||
|
patch
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
Foam::scalar Foam::waveModels::McCowan::eta
|
||||||
|
(
|
||||||
|
const scalar H,
|
||||||
|
const scalar h,
|
||||||
|
const scalar x,
|
||||||
|
const scalar y,
|
||||||
|
const scalar theta,
|
||||||
|
const scalar t,
|
||||||
|
const scalar X0
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
vector vec = this->mn(H,h);
|
||||||
|
scalar mm = vec[0];
|
||||||
|
scalar nn = vec[1];
|
||||||
|
|
||||||
|
scalar C = sqrt(((mag(g_)*h)/mm)*tan(mm));
|
||||||
|
scalar ts = 3.5*h/sqrt(H/h);
|
||||||
|
scalar Xa = -C*t + ts - X0 + x*cos(theta) + y*sin(theta);
|
||||||
|
|
||||||
|
scalar xin = 0.5*H;
|
||||||
|
scalar etas = newtonRapsonF2(xin,H,h,Xa,mm,nn);
|
||||||
|
return etas;
|
||||||
|
}
|
||||||
|
|
||||||
|
Foam::vector Foam::waveModels::McCowan::mn
|
||||||
|
(
|
||||||
|
const scalar H,
|
||||||
|
const scalar h
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
//m
|
||||||
|
scalar xin = 1.0;
|
||||||
|
scalar m = newtonRapsonF1(xin,H,h);
|
||||||
|
|
||||||
|
//n
|
||||||
|
scalar c1=sin(m+(1.0+((2.0*H)/(3.0*h))));
|
||||||
|
scalar n = (2.0/3.0)*pow(c1,2);
|
||||||
|
|
||||||
|
scalar aux=n;
|
||||||
|
|
||||||
|
return vector(m, n, aux);
|
||||||
|
}
|
||||||
|
|
||||||
|
Foam::scalar Foam::waveModels::McCowan::newtonRapsonF1
|
||||||
|
(
|
||||||
|
const scalar x0,
|
||||||
|
const scalar H,
|
||||||
|
const scalar h
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
scalar N=10000;
|
||||||
|
scalar eps=1.e-5;
|
||||||
|
scalar maxval = 10000.0;
|
||||||
|
|
||||||
|
scalar xn=0;
|
||||||
|
scalar x=0;
|
||||||
|
scalar c1=0;
|
||||||
|
scalar c2=0;
|
||||||
|
scalar c3=0;
|
||||||
|
scalar fx=0;
|
||||||
|
scalar fprime=0;
|
||||||
|
scalar fxn=0;
|
||||||
|
scalar fxx=0;
|
||||||
|
|
||||||
|
//define value for divergence
|
||||||
|
scalar xx=x0;
|
||||||
|
while (N>0)
|
||||||
|
{
|
||||||
|
//f
|
||||||
|
c1=sin(xx+(1.0+((2.0*H)/(3.0*h))));
|
||||||
|
fx = (2.0/3.0)*pow(c1,2) - (xx*H)/(h*tan(0.5*xx*(1.0+(H/h))));
|
||||||
|
|
||||||
|
//fprime
|
||||||
|
c2=1/tan(0.5*xx*(h/H + 1.0));
|
||||||
|
c3=1/sin(0.5*xx*(H/h + 1.0));
|
||||||
|
fprime=(4.0/3.0)*sin((2.0*H)/(3.0*h) + xx + 1.0)*cos((2.0*H)/(3.0*h) + xx + 1.0)-(h*c2)/H - (0.5*h*xx*(H/h + 1.0)*pow(c3,2))/h;
|
||||||
|
xn = xx-fx/fprime;
|
||||||
|
|
||||||
|
c1=sin(xn+(1.0+((2.0*H)/(3.0*h))));
|
||||||
|
fxn = (2.0/3.0)*pow(c1,2) - (xn*H)/(h*tan(0.5*xn*(1.0+(H/h))));
|
||||||
|
if (fabs(fxn)<eps)
|
||||||
|
{
|
||||||
|
x=xn;
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
|
||||||
|
c1=sin(xx+(1.0+((2.0*H)/(3.0*h))));
|
||||||
|
fxx = (2.0/3.0)*pow(c1,2) - (xx*H)/(h*tan(0.5*xx*(1.0+(H/h))));
|
||||||
|
if (fabs(fxx)>maxval)
|
||||||
|
{
|
||||||
|
FatalIOErrorInFunction(*this)
|
||||||
|
<< "fxx > maxval !!!"
|
||||||
|
<< exit(FatalIOError);
|
||||||
|
}
|
||||||
|
|
||||||
|
N = N - 1;
|
||||||
|
xx = xn;
|
||||||
|
}
|
||||||
|
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
|
||||||
|
Foam::scalar Foam::waveModels::McCowan::newtonRapsonF2
|
||||||
|
(
|
||||||
|
const scalar x0,
|
||||||
|
const scalar H,
|
||||||
|
const scalar h,
|
||||||
|
const scalar xa,
|
||||||
|
const scalar m,
|
||||||
|
const scalar n
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
scalar N=10000;
|
||||||
|
scalar eps=1.e-5;
|
||||||
|
scalar maxval = 10000.0;
|
||||||
|
|
||||||
|
scalar xn=0;
|
||||||
|
scalar x=0;
|
||||||
|
scalar c2=0;
|
||||||
|
scalar c3=0;
|
||||||
|
scalar fx=0;
|
||||||
|
scalar fprime=0;
|
||||||
|
scalar fxn=0;
|
||||||
|
scalar fxx=0;
|
||||||
|
|
||||||
|
//define value for divergence
|
||||||
|
scalar xx=x0;
|
||||||
|
while (N>0)
|
||||||
|
{
|
||||||
|
//f
|
||||||
|
fx = xx-(h*(n/m)*((sin(m*(1.0+(xx/h))))/(cos(m*(1.0+(xx/h)))+cosh(m*(xa/h)))));
|
||||||
|
|
||||||
|
//fprime
|
||||||
|
c2=sin((m*(h + x))/h);
|
||||||
|
c3=cosh((xa*m)/h) + cos((m*(h + x))/h);
|
||||||
|
fprime = 1 - (n*cos((m*(h + x))/h))/(cosh((xa*m)/h) + cos((m*(h + x))/h)) - (n*pow(c2,2))/(pow(c3,2));
|
||||||
|
|
||||||
|
xn = xx-fx/fprime;
|
||||||
|
|
||||||
|
fxn = xn-(h*(n/m)*((sin(m*(1.0+(xn/h))))/(cos(m*(1.0+(xn/h)))+cosh(m*(xa/h)))));
|
||||||
|
if (fabs(fxn)<eps)
|
||||||
|
{
|
||||||
|
x=xn;
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
|
||||||
|
fxx = xx-(h*(n/m)*((sin(m*(1.0+(xx/h))))/(cos(m*(1.0+(xx/h)))+cosh(m*(xa/h)))));
|
||||||
|
if (fabs(fxx)>maxval)
|
||||||
|
{
|
||||||
|
FatalIOErrorInFunction(*this)
|
||||||
|
<< "fxx > maxval !!!"
|
||||||
|
<< exit(FatalIOError);
|
||||||
|
}
|
||||||
|
|
||||||
|
N = N - 1;
|
||||||
|
xx = xn;
|
||||||
|
}
|
||||||
|
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
|
||||||
|
Foam::vector Foam::waveModels::McCowan::U
|
||||||
|
(
|
||||||
|
const scalar H,
|
||||||
|
const scalar h,
|
||||||
|
const scalar x,
|
||||||
|
const scalar y,
|
||||||
|
const scalar theta,
|
||||||
|
const scalar t,
|
||||||
|
const scalar X0,
|
||||||
|
const scalar z
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
vector vec = this->mn(H,h);
|
||||||
|
scalar mm = vec[0];
|
||||||
|
scalar nn = vec[1];
|
||||||
|
|
||||||
|
scalar C = sqrt(((mag(g_)*h)/mm)*tan(mm));
|
||||||
|
scalar ts = 3.5*h/sqrt(H/h);
|
||||||
|
scalar Xa = -C*t + ts - X0 + x*cos(theta) + y*sin(theta);
|
||||||
|
|
||||||
|
scalar outa = C*nn*(1.0+cos(mm*(z/h))*cosh(mm*(Xa/h)));
|
||||||
|
scalar outb = (cos(mm*(z/h))+cosh(mm*(Xa/h))) * (cos(mm*(z/h))+cosh(mm*(Xa/h)));
|
||||||
|
|
||||||
|
scalar u = outa/outb;
|
||||||
|
|
||||||
|
outa = C*nn*(sin(mm*(z/h))*sinh(mm*(Xa/h)));
|
||||||
|
outb = (cos(mm*(z/h))+cosh(mm*(Xa/h))) * (cos(mm*(z/h))+cosh(mm*(Xa/h)));
|
||||||
|
|
||||||
|
scalar w = outa/outb;
|
||||||
|
|
||||||
|
scalar v = u*sin(waveAngle_);
|
||||||
|
u *= cos(waveAngle_);
|
||||||
|
|
||||||
|
return vector(u, v, w);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Foam::waveModels::McCowan::setLevel
|
||||||
|
(
|
||||||
|
const scalar t,
|
||||||
|
const scalar tCoeff,
|
||||||
|
scalarField& level
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
forAll(level, paddlei)
|
||||||
|
{
|
||||||
|
const scalar eta =
|
||||||
|
this->eta
|
||||||
|
(
|
||||||
|
waveHeight_,
|
||||||
|
waterDepthRef_,
|
||||||
|
xPaddle_[paddlei],
|
||||||
|
yPaddle_[paddlei],
|
||||||
|
waveAngle_,
|
||||||
|
t,
|
||||||
|
x0_
|
||||||
|
);
|
||||||
|
|
||||||
|
level[paddlei] = waterDepthRef_ + tCoeff*eta;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
Foam::waveModels::McCowan::McCowan
|
||||||
|
(
|
||||||
|
const dictionary& dict,
|
||||||
|
const fvMesh& mesh,
|
||||||
|
const polyPatch& patch,
|
||||||
|
const bool readFields
|
||||||
|
)
|
||||||
|
:
|
||||||
|
solitaryWaveModel(dict, mesh, patch, false)
|
||||||
|
{
|
||||||
|
if (readFields)
|
||||||
|
{
|
||||||
|
read(dict);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
Foam::waveModels::McCowan::~McCowan()
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
bool Foam::waveModels::McCowan::read(const dictionary& overrideDict)
|
||||||
|
{
|
||||||
|
if (solitaryWaveModel::read(overrideDict))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Foam::waveModels::McCowan::setVelocity
|
||||||
|
(
|
||||||
|
const scalar t,
|
||||||
|
const scalar tCoeff,
|
||||||
|
const scalarField& level,
|
||||||
|
const scalar tg
|
||||||
|
)
|
||||||
|
{
|
||||||
|
forAll(U_, facei)
|
||||||
|
{
|
||||||
|
// Fraction of geometry represented by paddle - to be set
|
||||||
|
scalar fraction = 1;
|
||||||
|
|
||||||
|
// Height - to be set
|
||||||
|
scalar z = 0;
|
||||||
|
|
||||||
|
setPaddlePropeties(level, facei, fraction, z);
|
||||||
|
|
||||||
|
if (fraction > 0)
|
||||||
|
{
|
||||||
|
|
||||||
|
if ( (tg<0) || (t >= tg) )
|
||||||
|
{
|
||||||
|
const label paddlei = faceToPaddle_[facei];
|
||||||
|
|
||||||
|
const vector Uf = U
|
||||||
|
(
|
||||||
|
waveHeight_,
|
||||||
|
waterDepthRef_,
|
||||||
|
xPaddle_[paddlei],
|
||||||
|
yPaddle_[paddlei],
|
||||||
|
waveAngle_,
|
||||||
|
t,
|
||||||
|
x0_,
|
||||||
|
z
|
||||||
|
);
|
||||||
|
|
||||||
|
U_[facei] = fraction*Uf*tCoeff + fraction*UCurrent_;
|
||||||
|
|
||||||
|
}
|
||||||
|
else if ( tg>=t )
|
||||||
|
{
|
||||||
|
U_[facei] = fraction*UCurrent_;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Foam::waveModels::McCowan::setVelocityAbsorption
|
||||||
|
(
|
||||||
|
const scalarField& calculatedLevel,
|
||||||
|
const scalarField& activeLevel
|
||||||
|
)
|
||||||
|
{
|
||||||
|
|
||||||
|
forAll(U_, facei)
|
||||||
|
{
|
||||||
|
const label paddlei = faceToPaddle_[facei];
|
||||||
|
|
||||||
|
scalar activeLevelMBL=activeLevel[paddlei];
|
||||||
|
|
||||||
|
scalar zMin = zMin_[facei];
|
||||||
|
|
||||||
|
//------ not needed anymore in new release
|
||||||
|
if (fabs(zMinGb_)>1.0e-3)
|
||||||
|
{
|
||||||
|
zMin = zMin - zMinGb_;
|
||||||
|
}
|
||||||
|
//------
|
||||||
|
|
||||||
|
if (zMin < activeLevelMBL)
|
||||||
|
{
|
||||||
|
scalar UCorr =
|
||||||
|
(calculatedLevel[paddlei] - activeLevel[paddlei])
|
||||||
|
*sqrt(mag(g_)/activeLevel[paddlei]);
|
||||||
|
|
||||||
|
U_[facei].x() += UCorr;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
U_[facei].x() = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Foam::waveModels::McCowan::setCurrent
|
||||||
|
(
|
||||||
|
const scalarField& levelMBO
|
||||||
|
)
|
||||||
|
{
|
||||||
|
//No needed for generation
|
||||||
|
}
|
||||||
|
|
||||||
|
void Foam::waveModels::McCowan::info(Ostream& os) const
|
||||||
|
{
|
||||||
|
solitaryWaveModel::info(os);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,170 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration |
|
||||||
|
\\ / A nd | Copyright (C) 2016 OpenCFD Ltd.
|
||||||
|
\\/ M anipulation | Copyright (C) 2015 IH-Cantabria
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
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 3 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, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
Class
|
||||||
|
Foam::waveModels::McCowan
|
||||||
|
|
||||||
|
Description
|
||||||
|
McCowan wave model
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#ifndef waveModels_McCowan_H
|
||||||
|
#define waveModels_McCowan_H
|
||||||
|
|
||||||
|
#include "solitaryWaveModel.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
namespace Foam
|
||||||
|
{
|
||||||
|
namespace waveModels
|
||||||
|
{
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
Class McCowan Declaration
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
class McCowan
|
||||||
|
:
|
||||||
|
public solitaryWaveModel
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
|
||||||
|
// Protected Member Functions
|
||||||
|
|
||||||
|
//- Wave height
|
||||||
|
virtual scalar eta
|
||||||
|
(
|
||||||
|
const scalar H,
|
||||||
|
const scalar h,
|
||||||
|
const scalar x,
|
||||||
|
const scalar y,
|
||||||
|
const scalar theta,
|
||||||
|
const scalar t,
|
||||||
|
const scalar X0
|
||||||
|
) const;
|
||||||
|
|
||||||
|
virtual vector mn
|
||||||
|
(
|
||||||
|
const scalar H,
|
||||||
|
const scalar h
|
||||||
|
) const;
|
||||||
|
|
||||||
|
virtual scalar newtonRapsonF1
|
||||||
|
(
|
||||||
|
const scalar x0,
|
||||||
|
const scalar H,
|
||||||
|
const scalar h
|
||||||
|
) const;
|
||||||
|
|
||||||
|
virtual scalar newtonRapsonF2
|
||||||
|
(
|
||||||
|
const scalar x0,
|
||||||
|
const scalar H,
|
||||||
|
const scalar h,
|
||||||
|
const scalar xa,
|
||||||
|
const scalar m,
|
||||||
|
const scalar n
|
||||||
|
) const;
|
||||||
|
|
||||||
|
//- Wave velocity
|
||||||
|
virtual vector U
|
||||||
|
(
|
||||||
|
const scalar H,
|
||||||
|
const scalar h,
|
||||||
|
const scalar x,
|
||||||
|
const scalar y,
|
||||||
|
const scalar theta,
|
||||||
|
const scalar t,
|
||||||
|
const scalar X0,
|
||||||
|
const scalar z
|
||||||
|
) const;
|
||||||
|
|
||||||
|
//- Set the water level
|
||||||
|
virtual void setLevel
|
||||||
|
(
|
||||||
|
const scalar t,
|
||||||
|
const scalar tCoeff,
|
||||||
|
scalarField& level
|
||||||
|
) const;
|
||||||
|
|
||||||
|
//- Calculate the wave model velocity
|
||||||
|
virtual void setVelocity
|
||||||
|
(
|
||||||
|
const scalar t,
|
||||||
|
const scalar tCoeff,
|
||||||
|
const scalarField& level,
|
||||||
|
const scalar tg
|
||||||
|
);
|
||||||
|
|
||||||
|
// Add current absorption to velocity
|
||||||
|
virtual void setCurrent
|
||||||
|
(
|
||||||
|
const scalarField& levelMBO
|
||||||
|
);
|
||||||
|
|
||||||
|
//- Calculate the wave model velocity absorption
|
||||||
|
virtual void setVelocityAbsorption
|
||||||
|
(
|
||||||
|
const scalarField& calculatedLevel,
|
||||||
|
const scalarField& activeLevel
|
||||||
|
);
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
//- Runtime type information
|
||||||
|
TypeName("McCowan");
|
||||||
|
|
||||||
|
//- Constructor
|
||||||
|
McCowan
|
||||||
|
(
|
||||||
|
const dictionary& dict,
|
||||||
|
const fvMesh& mesh,
|
||||||
|
const polyPatch& patch,
|
||||||
|
const bool readFields = true
|
||||||
|
);
|
||||||
|
|
||||||
|
//- Destructor
|
||||||
|
virtual ~McCowan();
|
||||||
|
|
||||||
|
|
||||||
|
// Public Member Functions
|
||||||
|
|
||||||
|
//- Read from dictionary
|
||||||
|
virtual bool read(const dictionary& overrideDict);
|
||||||
|
|
||||||
|
//- Info
|
||||||
|
virtual void info(Ostream& os) const;
|
||||||
|
};
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
} // End namespace waveModels
|
||||||
|
} // End namespace Foam
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,53 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.7.x |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volVectorField;
|
||||||
|
location "0";
|
||||||
|
object U;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 1 -1 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform (0 0 0);
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
left
|
||||||
|
{
|
||||||
|
type waveVelocity;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
right
|
||||||
|
{
|
||||||
|
type waveVelocity;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type slip;
|
||||||
|
}
|
||||||
|
|
||||||
|
ground
|
||||||
|
{
|
||||||
|
type noSlip;
|
||||||
|
}
|
||||||
|
|
||||||
|
top
|
||||||
|
{
|
||||||
|
type pressureInletOutletVelocity;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,52 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.5-dev |
|
||||||
|
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
object alpha.water;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 0 0 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
left
|
||||||
|
{
|
||||||
|
type waveAlpha;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
right
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
ground
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
top
|
||||||
|
{
|
||||||
|
type inletOutlet;
|
||||||
|
inletValue uniform 0;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,60 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.5-dev |
|
||||||
|
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
object p_rgh;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [1 -1 -2 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
left
|
||||||
|
{
|
||||||
|
type fixedFluxPressure;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
right
|
||||||
|
{
|
||||||
|
type fixedFluxPressure;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ground
|
||||||
|
{
|
||||||
|
type fixedFluxPressure;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type slip;
|
||||||
|
}
|
||||||
|
|
||||||
|
top
|
||||||
|
{
|
||||||
|
type totalPressure;
|
||||||
|
U U;
|
||||||
|
phi rhoPhi;
|
||||||
|
rho rho;
|
||||||
|
psi none;
|
||||||
|
gamma 1;
|
||||||
|
p0 uniform 0;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
10
tutorials/multiphase/interFoam/laminar/waveExampleSolitaryGrimshaw/Allclean
Executable file
10
tutorials/multiphase/interFoam/laminar/waveExampleSolitaryGrimshaw/Allclean
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
cd ${0%/*} || exit 1 # run from this directory
|
||||||
|
|
||||||
|
# Source tutorial run functions
|
||||||
|
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
|
||||||
|
|
||||||
|
rm -rf 0
|
||||||
|
|
||||||
|
cleanCase
|
||||||
|
|
||||||
15
tutorials/multiphase/interFoam/laminar/waveExampleSolitaryGrimshaw/Allrun
Executable file
15
tutorials/multiphase/interFoam/laminar/waveExampleSolitaryGrimshaw/Allrun
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
cd ${0%/*} || exit 1 # run from this directory
|
||||||
|
|
||||||
|
# Source tutorial run functions
|
||||||
|
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
||||||
|
|
||||||
|
restore0Dir
|
||||||
|
|
||||||
|
runApplication blockMesh
|
||||||
|
|
||||||
|
runApplication decomposePar
|
||||||
|
|
||||||
|
runParallel setFields
|
||||||
|
|
||||||
|
runParallel $(getApplication)
|
||||||
@ -0,0 +1,22 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.6 |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class uniformDimensionedVectorField;
|
||||||
|
location "constant";
|
||||||
|
object g;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 1 -2 0 0 0 0];
|
||||||
|
value ( 0 0 -9.81 );
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,37 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.3 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object transportProperties;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
phases (water air);
|
||||||
|
|
||||||
|
water
|
||||||
|
{
|
||||||
|
transportModel Newtonian;
|
||||||
|
nu [0 2 -1 0 0 0 0] 1e-06;
|
||||||
|
rho [1 -3 0 0 0 0 0] 1000;
|
||||||
|
}
|
||||||
|
|
||||||
|
air
|
||||||
|
{
|
||||||
|
transportModel Newtonian;
|
||||||
|
nu [0 2 -1 0 0 0 0] 1.48e-05;
|
||||||
|
rho [1 -3 0 0 0 0 0] 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
sigma [1 0 -2 0 0 0 0] 0.07;
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.6 |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object turbulenceProperties;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
simulationType laminar;
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,43 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: plus |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object wavesProperties;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
left
|
||||||
|
{
|
||||||
|
alpha alpha.water;
|
||||||
|
|
||||||
|
waveModel Grimshaw;
|
||||||
|
|
||||||
|
nPaddle 1;
|
||||||
|
|
||||||
|
waveHeight 0.05;
|
||||||
|
|
||||||
|
waveAngle 0.0;
|
||||||
|
|
||||||
|
activeAbsorption no;
|
||||||
|
}
|
||||||
|
|
||||||
|
right
|
||||||
|
{
|
||||||
|
alpha alpha.water;
|
||||||
|
|
||||||
|
waveModel shallowWaterAbsorption;
|
||||||
|
|
||||||
|
nPaddle 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
|
|
||||||
@ -0,0 +1,89 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 2.1.0 |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
object blockMeshDict;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
convertToMeters 1;
|
||||||
|
|
||||||
|
vertices
|
||||||
|
(
|
||||||
|
( 0.0 0.0 0.0)
|
||||||
|
( 7.0 0.0 0.0)
|
||||||
|
( 7.0 0.55 0.0)
|
||||||
|
( 0.0 0.55 0.0)
|
||||||
|
( 0.0 0.0 0.5)
|
||||||
|
( 7.0 0.0 0.5)
|
||||||
|
( 7.0 0.55 0.5)
|
||||||
|
( 0.0 0.55 0.5)
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
blocks
|
||||||
|
(
|
||||||
|
hex (0 1 2 3 4 5 6 7) (350 28 42) simpleGrading (1 1 1)
|
||||||
|
);
|
||||||
|
edges
|
||||||
|
(
|
||||||
|
);
|
||||||
|
|
||||||
|
boundary
|
||||||
|
(
|
||||||
|
left
|
||||||
|
{
|
||||||
|
type patch;
|
||||||
|
faces
|
||||||
|
(
|
||||||
|
(0 4 7 3)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
right
|
||||||
|
{
|
||||||
|
type patch;
|
||||||
|
faces
|
||||||
|
(
|
||||||
|
(1 5 6 2)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
ground
|
||||||
|
{
|
||||||
|
type wall;
|
||||||
|
faces
|
||||||
|
(
|
||||||
|
(0 1 2 3)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
top
|
||||||
|
{
|
||||||
|
type patch;
|
||||||
|
faces
|
||||||
|
(
|
||||||
|
(4 5 6 7)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type patch;
|
||||||
|
faces
|
||||||
|
(
|
||||||
|
(0 1 5 4)
|
||||||
|
(3 2 6 7)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
mergePatchPairs
|
||||||
|
(
|
||||||
|
);
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,143 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 2.1.0 |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "system";
|
||||||
|
object controlDict;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
application interFoam;
|
||||||
|
|
||||||
|
startFrom latestTime;
|
||||||
|
|
||||||
|
startTime 0;
|
||||||
|
|
||||||
|
stopAt endTime;
|
||||||
|
|
||||||
|
endTime 7.0;
|
||||||
|
|
||||||
|
deltaT 0.1;
|
||||||
|
|
||||||
|
writeControl adjustableRunTime;
|
||||||
|
|
||||||
|
writeInterval 0.1;
|
||||||
|
|
||||||
|
purgeWrite 0;
|
||||||
|
|
||||||
|
writeFormat ascii;
|
||||||
|
|
||||||
|
writePrecision 6;
|
||||||
|
|
||||||
|
writeCompression uncompressed;
|
||||||
|
|
||||||
|
timeFormat general;
|
||||||
|
|
||||||
|
timePrecision 6;
|
||||||
|
|
||||||
|
runTimeModifiable yes;
|
||||||
|
|
||||||
|
adjustTimeStep on;
|
||||||
|
|
||||||
|
maxCo 0.4;
|
||||||
|
maxAlphaCo 0.4;
|
||||||
|
|
||||||
|
maxDeltaT 0.01;
|
||||||
|
|
||||||
|
functions
|
||||||
|
{
|
||||||
|
//Sensores VOF
|
||||||
|
line
|
||||||
|
{
|
||||||
|
type sets;
|
||||||
|
functionObjectLibs ("libsampling.so");
|
||||||
|
enabled true;
|
||||||
|
outputControl writeTime;
|
||||||
|
outputInterval 1;
|
||||||
|
|
||||||
|
interpolationScheme cellPoint;
|
||||||
|
setFormat raw;
|
||||||
|
sets
|
||||||
|
(
|
||||||
|
s1
|
||||||
|
{
|
||||||
|
|
||||||
|
type uniform;
|
||||||
|
axis distance;
|
||||||
|
start ( 0.865 0.275 0.0 );
|
||||||
|
end ( 0.865 0.275 0.5 );
|
||||||
|
nPoints 101;
|
||||||
|
}
|
||||||
|
s2
|
||||||
|
{
|
||||||
|
|
||||||
|
type uniform;
|
||||||
|
axis distance;
|
||||||
|
start ( 1.065 0.275 0.0 );
|
||||||
|
end ( 1.065 0.275 0.5 );
|
||||||
|
nPoints 101;
|
||||||
|
}
|
||||||
|
s3
|
||||||
|
{
|
||||||
|
|
||||||
|
type uniform;
|
||||||
|
axis distance;
|
||||||
|
start ( 4.1 0.275 0.0 );
|
||||||
|
end ( 4.1 0.275 0.5 );
|
||||||
|
nPoints 101;
|
||||||
|
}
|
||||||
|
s4
|
||||||
|
{
|
||||||
|
|
||||||
|
type uniform;
|
||||||
|
axis distance;
|
||||||
|
start ( 4.645 0.275 0.0 );
|
||||||
|
end ( 4.645 0.275 0.5 );
|
||||||
|
nPoints 101;
|
||||||
|
}
|
||||||
|
s5
|
||||||
|
{
|
||||||
|
|
||||||
|
type uniform;
|
||||||
|
axis distance;
|
||||||
|
start ( 5.2 0.275 0.0 );
|
||||||
|
end ( 5.2 0.275 0.5 );
|
||||||
|
nPoints 101;
|
||||||
|
}
|
||||||
|
s6
|
||||||
|
{
|
||||||
|
|
||||||
|
type uniform;
|
||||||
|
axis distance;
|
||||||
|
start ( 5.85 0.275 0.0 );
|
||||||
|
end ( 5.85 0.275 0.5 );
|
||||||
|
nPoints 101;
|
||||||
|
}
|
||||||
|
s7
|
||||||
|
{
|
||||||
|
|
||||||
|
type uniform;
|
||||||
|
axis distance;
|
||||||
|
start ( 6.15 0.275 0.0 );
|
||||||
|
end ( 6.15 0.275 0.5 );
|
||||||
|
nPoints 101;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
fixedLocations false;
|
||||||
|
fields
|
||||||
|
(
|
||||||
|
alpha.water
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,29 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 2.1.0 |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
object decomposeParDict;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
numberOfSubdomains 2;
|
||||||
|
|
||||||
|
method hierarchical;
|
||||||
|
|
||||||
|
hierarchicalCoeffs
|
||||||
|
{
|
||||||
|
n (2 1 1);
|
||||||
|
delta 0.001;
|
||||||
|
order xyz;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,54 @@
|
|||||||
|
|
||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: plus |
|
||||||
|
| \\ / 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
|
|
||||||
@ -0,0 +1,78 @@
|
|||||||
|
|
||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: plus |
|
||||||
|
| \\ / 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
|
|
||||||
@ -0,0 +1,37 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 2.1.0 |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "system";
|
||||||
|
object setFieldsDict;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
defaultFieldValues
|
||||||
|
(
|
||||||
|
volScalarFieldValue alpha.water 0
|
||||||
|
volVectorFieldValue U (0 0 0)
|
||||||
|
);
|
||||||
|
|
||||||
|
regions
|
||||||
|
(
|
||||||
|
boxToCell
|
||||||
|
{
|
||||||
|
box (-10 -10 -10) (100 100 0.15);
|
||||||
|
fieldValues
|
||||||
|
(
|
||||||
|
volScalarFieldValue alpha.water 1
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,53 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.7.x |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volVectorField;
|
||||||
|
location "0";
|
||||||
|
object U;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 1 -1 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform (0 0 0);
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
left
|
||||||
|
{
|
||||||
|
type waveVelocity;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
right
|
||||||
|
{
|
||||||
|
type waveVelocity;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type slip;
|
||||||
|
}
|
||||||
|
|
||||||
|
ground
|
||||||
|
{
|
||||||
|
type noSlip;
|
||||||
|
}
|
||||||
|
|
||||||
|
top
|
||||||
|
{
|
||||||
|
type pressureInletOutletVelocity;
|
||||||
|
value uniform (0 0 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,52 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.5-dev |
|
||||||
|
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
object alpha.water;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 0 0 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
left
|
||||||
|
{
|
||||||
|
type waveAlpha;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
right
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
ground
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type zeroGradient;
|
||||||
|
}
|
||||||
|
|
||||||
|
top
|
||||||
|
{
|
||||||
|
type inletOutlet;
|
||||||
|
inletValue uniform 0;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,60 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.5-dev |
|
||||||
|
| \\ / A nd | Web: http://www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class volScalarField;
|
||||||
|
object p_rgh;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [1 -1 -2 0 0 0 0];
|
||||||
|
|
||||||
|
internalField uniform 0;
|
||||||
|
|
||||||
|
boundaryField
|
||||||
|
{
|
||||||
|
left
|
||||||
|
{
|
||||||
|
type fixedFluxPressure;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
right
|
||||||
|
{
|
||||||
|
type fixedFluxPressure;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ground
|
||||||
|
{
|
||||||
|
type fixedFluxPressure;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type slip;
|
||||||
|
}
|
||||||
|
|
||||||
|
top
|
||||||
|
{
|
||||||
|
type totalPressure;
|
||||||
|
U U;
|
||||||
|
phi rhoPhi;
|
||||||
|
rho rho;
|
||||||
|
psi none;
|
||||||
|
gamma 1;
|
||||||
|
p0 uniform 0;
|
||||||
|
value uniform 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
10
tutorials/multiphase/interFoam/laminar/waveExampleSolitaryMcCowan/Allclean
Executable file
10
tutorials/multiphase/interFoam/laminar/waveExampleSolitaryMcCowan/Allclean
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
cd ${0%/*} || exit 1 # run from this directory
|
||||||
|
|
||||||
|
# Source tutorial run functions
|
||||||
|
. $WM_PROJECT_DIR/bin/tools/CleanFunctions
|
||||||
|
|
||||||
|
rm -rf 0
|
||||||
|
|
||||||
|
cleanCase
|
||||||
|
|
||||||
15
tutorials/multiphase/interFoam/laminar/waveExampleSolitaryMcCowan/Allrun
Executable file
15
tutorials/multiphase/interFoam/laminar/waveExampleSolitaryMcCowan/Allrun
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
cd ${0%/*} || exit 1 # run from this directory
|
||||||
|
|
||||||
|
# Source tutorial run functions
|
||||||
|
. $WM_PROJECT_DIR/bin/tools/RunFunctions
|
||||||
|
|
||||||
|
restore0Dir
|
||||||
|
|
||||||
|
runApplication blockMesh
|
||||||
|
|
||||||
|
runApplication decomposePar
|
||||||
|
|
||||||
|
runParallel setFields
|
||||||
|
|
||||||
|
runParallel $(getApplication)
|
||||||
@ -0,0 +1,22 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.6 |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class uniformDimensionedVectorField;
|
||||||
|
location "constant";
|
||||||
|
object g;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
dimensions [0 1 -2 0 0 0 0];
|
||||||
|
value ( 0 0 -9.81 );
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,37 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.3 |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object transportProperties;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
phases (water air);
|
||||||
|
|
||||||
|
water
|
||||||
|
{
|
||||||
|
transportModel Newtonian;
|
||||||
|
nu [0 2 -1 0 0 0 0] 1e-06;
|
||||||
|
rho [1 -3 0 0 0 0 0] 1000;
|
||||||
|
}
|
||||||
|
|
||||||
|
air
|
||||||
|
{
|
||||||
|
transportModel Newtonian;
|
||||||
|
nu [0 2 -1 0 0 0 0] 1.48e-05;
|
||||||
|
rho [1 -3 0 0 0 0 0] 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
sigma [1 0 -2 0 0 0 0] 0.07;
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 1.6 |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object turbulenceProperties;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
simulationType laminar;
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,43 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: plus |
|
||||||
|
| \\ / A nd | Web: http://www.openfoam.com |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "constant";
|
||||||
|
object wavesProperties;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
left
|
||||||
|
{
|
||||||
|
alpha alpha.water;
|
||||||
|
|
||||||
|
waveModel McCowan;
|
||||||
|
|
||||||
|
nPaddle 1;
|
||||||
|
|
||||||
|
waveHeight 0.05;
|
||||||
|
|
||||||
|
waveAngle 0.0;
|
||||||
|
|
||||||
|
activeAbsorption yes;
|
||||||
|
}
|
||||||
|
|
||||||
|
right
|
||||||
|
{
|
||||||
|
alpha alpha.water;
|
||||||
|
|
||||||
|
waveModel shallowWaterAbsorption;
|
||||||
|
|
||||||
|
nPaddle 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
|
|
||||||
@ -0,0 +1,89 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 2.1.0 |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
object blockMeshDict;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
convertToMeters 1;
|
||||||
|
|
||||||
|
vertices
|
||||||
|
(
|
||||||
|
( 0.0 0.0 0.0)
|
||||||
|
( 7.0 0.0 0.0)
|
||||||
|
( 7.0 0.55 0.0)
|
||||||
|
( 0.0 0.55 0.0)
|
||||||
|
( 0.0 0.0 0.5)
|
||||||
|
( 7.0 0.0 0.5)
|
||||||
|
( 7.0 0.55 0.5)
|
||||||
|
( 0.0 0.55 0.5)
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
blocks
|
||||||
|
(
|
||||||
|
hex (0 1 2 3 4 5 6 7) (350 28 42) simpleGrading (1 1 1)
|
||||||
|
);
|
||||||
|
edges
|
||||||
|
(
|
||||||
|
);
|
||||||
|
|
||||||
|
boundary
|
||||||
|
(
|
||||||
|
left
|
||||||
|
{
|
||||||
|
type patch;
|
||||||
|
faces
|
||||||
|
(
|
||||||
|
(0 4 7 3)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
right
|
||||||
|
{
|
||||||
|
type patch;
|
||||||
|
faces
|
||||||
|
(
|
||||||
|
(1 5 6 2)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
ground
|
||||||
|
{
|
||||||
|
type wall;
|
||||||
|
faces
|
||||||
|
(
|
||||||
|
(0 1 2 3)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
top
|
||||||
|
{
|
||||||
|
type patch;
|
||||||
|
faces
|
||||||
|
(
|
||||||
|
(4 5 6 7)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
sides
|
||||||
|
{
|
||||||
|
type patch;
|
||||||
|
faces
|
||||||
|
(
|
||||||
|
(0 1 5 4)
|
||||||
|
(3 2 6 7)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
mergePatchPairs
|
||||||
|
(
|
||||||
|
);
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,143 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 2.1.0 |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "system";
|
||||||
|
object controlDict;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
application interFoam;
|
||||||
|
|
||||||
|
startFrom latestTime;
|
||||||
|
|
||||||
|
startTime 0;
|
||||||
|
|
||||||
|
stopAt endTime;
|
||||||
|
|
||||||
|
endTime 7.0;
|
||||||
|
|
||||||
|
deltaT 0.1;
|
||||||
|
|
||||||
|
writeControl adjustableRunTime;
|
||||||
|
|
||||||
|
writeInterval 0.1;
|
||||||
|
|
||||||
|
purgeWrite 0;
|
||||||
|
|
||||||
|
writeFormat ascii;
|
||||||
|
|
||||||
|
writePrecision 6;
|
||||||
|
|
||||||
|
writeCompression uncompressed;
|
||||||
|
|
||||||
|
timeFormat general;
|
||||||
|
|
||||||
|
timePrecision 6;
|
||||||
|
|
||||||
|
runTimeModifiable yes;
|
||||||
|
|
||||||
|
adjustTimeStep on;
|
||||||
|
|
||||||
|
maxCo 0.4;
|
||||||
|
maxAlphaCo 0.4;
|
||||||
|
|
||||||
|
maxDeltaT 0.01;
|
||||||
|
|
||||||
|
functions
|
||||||
|
{
|
||||||
|
//Sensores VOF
|
||||||
|
line
|
||||||
|
{
|
||||||
|
type sets;
|
||||||
|
functionObjectLibs ("libsampling.so");
|
||||||
|
enabled true;
|
||||||
|
outputControl writeTime;
|
||||||
|
outputInterval 1;
|
||||||
|
|
||||||
|
interpolationScheme cellPoint;
|
||||||
|
setFormat raw;
|
||||||
|
sets
|
||||||
|
(
|
||||||
|
s1
|
||||||
|
{
|
||||||
|
|
||||||
|
type uniform;
|
||||||
|
axis distance;
|
||||||
|
start ( 0.865 0.275 0.0 );
|
||||||
|
end ( 0.865 0.275 0.5 );
|
||||||
|
nPoints 101;
|
||||||
|
}
|
||||||
|
s2
|
||||||
|
{
|
||||||
|
|
||||||
|
type uniform;
|
||||||
|
axis distance;
|
||||||
|
start ( 1.065 0.275 0.0 );
|
||||||
|
end ( 1.065 0.275 0.5 );
|
||||||
|
nPoints 101;
|
||||||
|
}
|
||||||
|
s3
|
||||||
|
{
|
||||||
|
|
||||||
|
type uniform;
|
||||||
|
axis distance;
|
||||||
|
start ( 4.1 0.275 0.0 );
|
||||||
|
end ( 4.1 0.275 0.5 );
|
||||||
|
nPoints 101;
|
||||||
|
}
|
||||||
|
s4
|
||||||
|
{
|
||||||
|
|
||||||
|
type uniform;
|
||||||
|
axis distance;
|
||||||
|
start ( 4.645 0.275 0.0 );
|
||||||
|
end ( 4.645 0.275 0.5 );
|
||||||
|
nPoints 101;
|
||||||
|
}
|
||||||
|
s5
|
||||||
|
{
|
||||||
|
|
||||||
|
type uniform;
|
||||||
|
axis distance;
|
||||||
|
start ( 5.2 0.275 0.0 );
|
||||||
|
end ( 5.2 0.275 0.5 );
|
||||||
|
nPoints 101;
|
||||||
|
}
|
||||||
|
s6
|
||||||
|
{
|
||||||
|
|
||||||
|
type uniform;
|
||||||
|
axis distance;
|
||||||
|
start ( 5.85 0.275 0.0 );
|
||||||
|
end ( 5.85 0.275 0.5 );
|
||||||
|
nPoints 101;
|
||||||
|
}
|
||||||
|
s7
|
||||||
|
{
|
||||||
|
|
||||||
|
type uniform;
|
||||||
|
axis distance;
|
||||||
|
start ( 6.15 0.275 0.0 );
|
||||||
|
end ( 6.15 0.275 0.5 );
|
||||||
|
nPoints 101;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
fixedLocations false;
|
||||||
|
fields
|
||||||
|
(
|
||||||
|
alpha.water
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,29 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 2.1.0 |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
object decomposeParDict;
|
||||||
|
}
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
numberOfSubdomains 2;
|
||||||
|
|
||||||
|
method hierarchical;
|
||||||
|
|
||||||
|
hierarchicalCoeffs
|
||||||
|
{
|
||||||
|
n (2 1 1);
|
||||||
|
delta 0.001;
|
||||||
|
order xyz;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,54 @@
|
|||||||
|
|
||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: plus |
|
||||||
|
| \\ / 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
|
|
||||||
@ -0,0 +1,78 @@
|
|||||||
|
|
||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: plus |
|
||||||
|
| \\ / 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
|
|
||||||
@ -0,0 +1,37 @@
|
|||||||
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
|
| ========= | |
|
||||||
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
|
| \\ / O peration | Version: 2.1.0 |
|
||||||
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
|
| \\/ M anipulation | |
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
FoamFile
|
||||||
|
{
|
||||||
|
version 2.0;
|
||||||
|
format ascii;
|
||||||
|
class dictionary;
|
||||||
|
location "system";
|
||||||
|
object setFieldsDict;
|
||||||
|
}
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
defaultFieldValues
|
||||||
|
(
|
||||||
|
volScalarFieldValue alpha.water 0
|
||||||
|
volVectorFieldValue U (0 0 0)
|
||||||
|
);
|
||||||
|
|
||||||
|
regions
|
||||||
|
(
|
||||||
|
boxToCell
|
||||||
|
{
|
||||||
|
box (-10 -10 -10) (100 100 0.15);
|
||||||
|
fieldValues
|
||||||
|
(
|
||||||
|
volScalarFieldValue alpha.water 1
|
||||||
|
);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
Reference in New Issue
Block a user