mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
INT: streamFunction wave model updates
This commit is contained in:
@ -66,7 +66,8 @@ Foam::scalar Foam::waveModels::streamFunction::eta
|
|||||||
scalar strfnAux = 0.0;
|
scalar strfnAux = 0.0;
|
||||||
forAll(Ejs_, iterSF)
|
forAll(Ejs_, iterSF)
|
||||||
{
|
{
|
||||||
strfnAux += Ejs_[iterSF]*cos((iterSF + 1)
|
strfnAux +=
|
||||||
|
Ejs_[iterSF]*cos((iterSF + 1)
|
||||||
*(kx*x + ky*y - omega*t + phase));
|
*(kx*x + ky*y - omega*t + phase));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -95,14 +96,16 @@ Foam::vector Foam::waveModels::streamFunction::Uf
|
|||||||
|
|
||||||
forAll(Bjs_, iterSF2)
|
forAll(Bjs_, iterSF2)
|
||||||
{
|
{
|
||||||
u += (iterSF2 + 1)*Bjs_[iterSF2] *cosh((iterSF2 + 1)*k*z)
|
u +=
|
||||||
|
(iterSF2 + 1)*Bjs_[iterSF2]*cosh((iterSF2 + 1)*k*z)
|
||||||
/cosh((iterSF2 + 1)*k*h)*cos((iterSF2 + 1)*phaseTot);
|
/cosh((iterSF2 + 1)*k*h)*cos((iterSF2 + 1)*phaseTot);
|
||||||
|
|
||||||
w += (iterSF2 + 1)*Bjs_[iterSF2]*sinh((iterSF2 + 1)*k*z)
|
w +=
|
||||||
|
(iterSF2 + 1)*Bjs_[iterSF2]*sinh((iterSF2 + 1)*k*z)
|
||||||
/cosh((iterSF2 + 1)*k*h)*sin((iterSF2 + 1)*phaseTot);
|
/cosh((iterSF2 + 1)*k*h)*sin((iterSF2 + 1)*phaseTot);
|
||||||
}
|
}
|
||||||
|
|
||||||
u = waveLengthSF_/T - uMean_ + sqrt(mag(g_)/k)*u;
|
u = waveLength_/T - uMean_ + sqrt(mag(g_)/k)*u;
|
||||||
w = sqrt(mag(g_)/k)*w;
|
w = sqrt(mag(g_)/k)*w;
|
||||||
|
|
||||||
scalar v = u*sin(waveAngle_);
|
scalar v = u*sin(waveAngle_);
|
||||||
@ -122,7 +125,7 @@ void Foam::waveModels::streamFunction::setLevel
|
|||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
const scalar waveOmega = mathematical::twoPi/wavePeriod_;
|
const scalar waveOmega = mathematical::twoPi/wavePeriod_;
|
||||||
const scalar waveK = mathematical::twoPi/waveLengthSF_;
|
const scalar waveK = mathematical::twoPi/waveLength_;
|
||||||
const scalar waveKx = waveK*cos(waveAngle_);
|
const scalar waveKx = waveK*cos(waveAngle_);
|
||||||
const scalar waveKy = waveK*sin(waveAngle_);
|
const scalar waveKy = waveK*sin(waveAngle_);
|
||||||
|
|
||||||
@ -155,7 +158,7 @@ void Foam::waveModels::streamFunction::setVelocity
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
const scalar waveOmega = mathematical::twoPi/wavePeriod_;
|
const scalar waveOmega = mathematical::twoPi/wavePeriod_;
|
||||||
const scalar waveK = mathematical::twoPi/waveLengthSF_;
|
const scalar waveK = mathematical::twoPi/waveLength_;
|
||||||
const scalar waveKx = waveK*cos(waveAngle_);
|
const scalar waveKx = waveK*cos(waveAngle_);
|
||||||
const scalar waveKy = waveK*sin(waveAngle_);
|
const scalar waveKy = waveK*sin(waveAngle_);
|
||||||
|
|
||||||
@ -205,9 +208,8 @@ Foam::waveModels::streamFunction::streamFunction
|
|||||||
:
|
:
|
||||||
regularWaveModel(dict, mesh, patch, false),
|
regularWaveModel(dict, mesh, patch, false),
|
||||||
uMean_(0),
|
uMean_(0),
|
||||||
waveLengthSF_(0),
|
Bjs_(),
|
||||||
Bjs_( List<scalar> (1, -1.0) ),
|
Ejs_()
|
||||||
Ejs_( List<scalar> (1, -1.0) )
|
|
||||||
{
|
{
|
||||||
if (readFields)
|
if (readFields)
|
||||||
{
|
{
|
||||||
@ -228,10 +230,10 @@ bool Foam::waveModels::streamFunction::readDict(const dictionary& overrideDict)
|
|||||||
{
|
{
|
||||||
if (regularWaveModel::readDict(overrideDict))
|
if (regularWaveModel::readDict(overrideDict))
|
||||||
{
|
{
|
||||||
lookup("uMean") >> uMean_;
|
overrideDict.lookup("uMean") >> uMean_;
|
||||||
lookup("waveLengthSF") >> waveLengthSF_;
|
overrideDict.lookup("waveLength") >> waveLength_;
|
||||||
lookup("Bjs") >> Bjs_;
|
overrideDict.lookup("Bjs") >> Bjs_;
|
||||||
lookup("Ejs") >> Ejs_;
|
overrideDict.lookup("Ejs") >> Ejs_;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -245,9 +247,10 @@ void Foam::waveModels::streamFunction::info(Ostream& os) const
|
|||||||
regularWaveModel::info(os);
|
regularWaveModel::info(os);
|
||||||
|
|
||||||
os << " uMean : " << uMean_ << nl
|
os << " uMean : " << uMean_ << nl
|
||||||
<< " wave Length streamFunction : " << waveLengthSF_ << nl
|
<< " Stream function wavelength : " << waveLength_ << nl
|
||||||
<< " Bj coefficients : " << Bjs_ << nl
|
<< " Bj coefficients : " << Bjs_ << nl
|
||||||
<< " Ej coefficients : " << Ejs_ << nl;
|
<< " Ej coefficients : " << Ejs_ << nl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -51,8 +51,6 @@ class streamFunction
|
|||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Private Member Functions
|
// Private Member Functions
|
||||||
|
|
||||||
//- Wave height
|
//- Wave height
|
||||||
@ -92,9 +90,6 @@ protected:
|
|||||||
//- Mean fluid speed in frame of reference (stream function)
|
//- Mean fluid speed in frame of reference (stream function)
|
||||||
scalar uMean_;
|
scalar uMean_;
|
||||||
|
|
||||||
//-Stream waveLength
|
|
||||||
scalar waveLengthSF_;
|
|
||||||
|
|
||||||
//- Stream Function Bj coefficients
|
//- Stream Function Bj coefficients
|
||||||
scalarList Bjs_;
|
scalarList Bjs_;
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
/*---------------------------------------------------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: plus |
|
| \\ / O peration | Version: plus |
|
||||||
@ -35,10 +35,9 @@ inlet
|
|||||||
|
|
||||||
uMean 2.0825;
|
uMean 2.0825;
|
||||||
|
|
||||||
waveLengthSF 6.2832;
|
waveLength 6.2832;
|
||||||
|
|
||||||
Bjs
|
Bjs
|
||||||
10
|
|
||||||
(
|
(
|
||||||
8.6669014e-002
|
8.6669014e-002
|
||||||
2.4849799e-002
|
2.4849799e-002
|
||||||
@ -53,7 +52,6 @@ inlet
|
|||||||
);
|
);
|
||||||
|
|
||||||
Ejs
|
Ejs
|
||||||
10
|
|
||||||
(
|
(
|
||||||
5.6009609e-002
|
5.6009609e-002
|
||||||
3.1638171e-002
|
3.1638171e-002
|
||||||
@ -80,5 +78,3 @@ outlet
|
|||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user