BUG: waveModels - corrected reference water levels - thanks to Gabi Barajas
This commit is contained in:
parent
3d05295abd
commit
970da5aa75
@ -111,6 +111,9 @@ void Foam::waveModel::initialiseGeometry()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Set minimum z reference level
|
||||||
|
zMin0_ = gMin(zMin_);
|
||||||
|
|
||||||
// Local paddle-to-face addressing
|
// Local paddle-to-face addressing
|
||||||
faceToPaddle_.setSize(patch_.size(), -1);
|
faceToPaddle_.setSize(patch_.size(), -1);
|
||||||
forAll(faceToPaddle_, facei)
|
forAll(faceToPaddle_, facei)
|
||||||
@ -162,18 +165,21 @@ void Foam::waveModel::setAlpha(const scalarField& level)
|
|||||||
const label paddlei = faceToPaddle_[facei];
|
const label paddlei = faceToPaddle_[facei];
|
||||||
const scalar paddleCalc = level[paddlei];
|
const scalar paddleCalc = level[paddlei];
|
||||||
|
|
||||||
if (zMax_[facei] < paddleCalc)
|
const scalar zMin0 = zMin_[facei] - zMin0_;
|
||||||
|
const scalar zMax0 = zMax_[facei] - zMin0_;
|
||||||
|
|
||||||
|
if (zMax0 < paddleCalc)
|
||||||
{
|
{
|
||||||
alpha_[facei] = 1.0;
|
alpha_[facei] = 1.0;
|
||||||
}
|
}
|
||||||
else if (zMin_[facei] > paddleCalc)
|
else if (zMin0 > paddleCalc)
|
||||||
{
|
{
|
||||||
alpha_[facei] = 0.0;
|
alpha_[facei] = 0.0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
scalar dz = paddleCalc - zMin_[facei];
|
scalar dz = paddleCalc - zMin0;
|
||||||
alpha_[facei] = dz/zSpan_;
|
alpha_[facei] = dz/(zMax0 - zMin0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -190,15 +196,15 @@ void Foam::waveModel::setPaddlePropeties
|
|||||||
const label paddlei = faceToPaddle_[facei];
|
const label paddlei = faceToPaddle_[facei];
|
||||||
const scalar paddleCalc = level[paddlei];
|
const scalar paddleCalc = level[paddlei];
|
||||||
const scalar paddleHeight = min(paddleCalc, waterDepthRef_);
|
const scalar paddleHeight = min(paddleCalc, waterDepthRef_);
|
||||||
const scalar zMin = zMin_[facei];
|
const scalar zMin = zMin_[facei] - zMin0_;
|
||||||
const scalar zMax = zMax_[facei];
|
const scalar zMax = zMax_[facei] - zMin0_;
|
||||||
|
|
||||||
fraction = 1;
|
fraction = 1;
|
||||||
z = 0;
|
z = 0;
|
||||||
|
|
||||||
if (zMax < paddleHeight)
|
if (zMax < paddleHeight)
|
||||||
{
|
{
|
||||||
z = z_[facei];
|
z = z_[facei] - zMin0_;
|
||||||
}
|
}
|
||||||
else if (zMin > paddleCalc)
|
else if (zMin > paddleCalc)
|
||||||
{
|
{
|
||||||
@ -211,8 +217,8 @@ void Foam::waveModel::setPaddlePropeties
|
|||||||
if ((zMax > paddleCalc) && (zMin < paddleCalc))
|
if ((zMax > paddleCalc) && (zMin < paddleCalc))
|
||||||
{
|
{
|
||||||
scalar dz = paddleCalc - zMin;
|
scalar dz = paddleCalc - zMin;
|
||||||
fraction = dz/zSpan_;
|
fraction = dz/(zMax - zMin);
|
||||||
z = z_[facei];
|
z = z_[facei] - zMin0_;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -224,7 +230,7 @@ void Foam::waveModel::setPaddlePropeties
|
|||||||
else if ((zMax > paddleCalc) && (zMin < paddleCalc))
|
else if ((zMax > paddleCalc) && (zMin < paddleCalc))
|
||||||
{
|
{
|
||||||
scalar dz = paddleCalc - zMin;
|
scalar dz = paddleCalc - zMin;
|
||||||
fraction = dz/zSpan_;
|
fraction = dz/(zMax - zMin);
|
||||||
z = waterDepthRef_;
|
z = waterDepthRef_;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -382,7 +388,7 @@ void Foam::waveModel::correct(const scalar t)
|
|||||||
{
|
{
|
||||||
const label paddlei = faceToPaddle_[facei];
|
const label paddlei = faceToPaddle_[facei];
|
||||||
|
|
||||||
if (zMin_[facei] < activeLevel[paddlei])
|
if (zMin_[facei] - zMin0_ < activeLevel[paddlei])
|
||||||
{
|
{
|
||||||
scalar UCorr =
|
scalar UCorr =
|
||||||
(calculatedLevel[paddlei] - activeLevel[paddlei])
|
(calculatedLevel[paddlei] - activeLevel[paddlei])
|
||||||
|
@ -106,6 +106,9 @@ protected:
|
|||||||
//- Maximum z (point) height per patch face / [m]
|
//- Maximum z (point) height per patch face / [m]
|
||||||
scalarField zMax_;
|
scalarField zMax_;
|
||||||
|
|
||||||
|
//- Minimum z reference level / [m]
|
||||||
|
scalar zMin0_;
|
||||||
|
|
||||||
//- Reference water depth / [m]
|
//- Reference water depth / [m]
|
||||||
scalar waterDepthRef_;
|
scalar waterDepthRef_;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user