ENH: waveModels - moved to main source tree and simplified

This commit is contained in:
Andrew Heather 2016-12-15 12:45:14 +00:00
parent 2790d64c4f
commit 95f3adb1fb
110 changed files with 97 additions and 447 deletions

View File

@ -1,4 +0,0 @@
waveInletVelocity/waveInletVelocityFvPatchVectorField.C
waveInletAlpha/waveInletAlphaFvPatchScalarField.C
LIB = $(FOAM_USER_LIBBIN)/libwaveBCs

View File

@ -1,10 +0,0 @@
DEV_PATH = ..
EXE_INC = \
-I$(DEV_PATH)/waveModel/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude
LIB_LIBS = \
-L$(FOAM_USER_LIBBIN) \
-lwaveModels \
-lfiniteVolume

View File

@ -1,150 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / 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 "waveAbsorptionOutletVelocityFvPatchVectorField.H"
#include "addToRunTimeSelectionTable.H"
#include "fvPatchFieldMapper.H"
#include "waveModel.H"
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::waveAbsorptionOutletVelocityFvPatchVectorField::
waveAbsorptionOutletVelocityFvPatchVectorField
(
const fvPatch& p,
const DimensionedField<vector, volMesh>& iF
)
:
fixedValueFvPatchField<vector>(p, iF),
waveDictName_(waveModel::dictName)
{}
Foam::waveAbsorptionOutletVelocityFvPatchVectorField::
waveAbsorptionOutletVelocityFvPatchVectorField
(
const waveAbsorptionOutletVelocityFvPatchVectorField& ptf,
const fvPatch& p,
const DimensionedField<vector, volMesh>& iF,
const fvPatchFieldMapper& mapper
)
:
fixedValueFvPatchField<vector>(ptf, p, iF, mapper),
waveDictName_(ptf.waveDictName_)
{}
Foam::waveAbsorptionOutletVelocityFvPatchVectorField::
waveAbsorptionOutletVelocityFvPatchVectorField
(
const fvPatch& p,
const DimensionedField<vector, volMesh>& iF,
const dictionary& dict
)
:
fixedValueFvPatchField<vector>(p, iF, dict),
waveDictName_(dict.lookupOrDefault<word>("waveDict", waveModel::dictName))
{}
Foam::waveAbsorptionOutletVelocityFvPatchVectorField::
waveAbsorptionOutletVelocityFvPatchVectorField
(
const waveAbsorptionOutletVelocityFvPatchVectorField& ptf
)
:
fixedValueFvPatchField<vector>(ptf),
waveDictName_(ptf.waveDictName_)
{}
Foam::waveAbsorptionOutletVelocityFvPatchVectorField::
waveAbsorptionOutletVelocityFvPatchVectorField
(
const waveAbsorptionOutletVelocityFvPatchVectorField& ptf,
const DimensionedField<vector, volMesh>& iF
)
:
fixedValueFvPatchField<vector>(ptf, iF),
waveDictName_(ptf.waveDictName_)
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
void Foam::waveAbsorptionOutletVelocityFvPatchVectorField::updateCoeffs()
{
if (updated())
{
return;
}
tmp<waveModel> tmodel
(
waveModel::lookupOrCreate
(
patch().patch(),
internalField().mesh(),
waveDictName_
)
);
waveModel& model = const_cast<waveModel&>(tmodel());
model.correct(db().time().value());
operator == (model.U());
fixedValueFvPatchField<vector>::updateCoeffs();
}
void Foam::waveAbsorptionOutletVelocityFvPatchVectorField::write
(
Ostream& os
) const
{
fvPatchField<vector>::write(os);
os.writeKeyword("waveDictName") << waveDictName_
<< token::END_STATEMENT << nl;
writeEntry("value", os);
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
makePatchTypeField
(
fvPatchVectorField,
waveAbsorptionOutletVelocityFvPatchVectorField
);
}
// ************************************************************************* //

View File

@ -1,165 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2016 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 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::waveAbsorptionOutletVelocityFvPatchVectorField
Description
Example of the boundary condition specification:
\verbatim
inlet
{
type waveAbsorptionOutletVelocity;
waveDict wavesDict;
value uniform (0 0 0);
}
\endverbatim
Usage
\table
Property | Description | Required | Default value
type | type: waveAbsorptionOutletVelocity | yes |
waveDict | Dictionary specifying wave variables | no | waveProperties
\endtable
Note
- The value is positive inwards
- May not work correctly for transonic inlets
- Strange behaviour with potentialFoam since the U equation is not solved
SourceFiles
waveAbsorptionOutletVelocityFvPatchVectorField.C
\*---------------------------------------------------------------------------*/
#ifndef waveAbsorptionOutletVelocityFvPatchVectorField_H
#define waveAbsorptionOutletVelocityFvPatchVectorField_H
#include "fixedValueFvPatchFields.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
/*---------------------------------------------------------------------------*\
Class waveAbsorptionOutletVelocityFvPatchVectorField Declaration
\*---------------------------------------------------------------------------*/
class waveAbsorptionOutletVelocityFvPatchVectorField
:
public fixedValueFvPatchVectorField
{
// Private data
//- Dictionary name
word waveDictName_;
public:
//- Runtime type information
TypeName("waveAbsorptionOutletVelocity");
// Constructors
//- Construct from patch and internal field
waveAbsorptionOutletVelocityFvPatchVectorField
(
const fvPatch&,
const DimensionedField<vector, volMesh>&
);
//- Construct from patch, internal field and dictionary
waveAbsorptionOutletVelocityFvPatchVectorField
(
const fvPatch&,
const DimensionedField<vector, volMesh>&,
const dictionary&
);
//- Construct by mapping given
// waveAbsorptionOutletVelocityFvPatchVectorField
// onto a new patch
waveAbsorptionOutletVelocityFvPatchVectorField
(
const waveAbsorptionOutletVelocityFvPatchVectorField&,
const fvPatch&,
const DimensionedField<vector, volMesh>&,
const fvPatchFieldMapper&
);
//- Construct as copy
waveAbsorptionOutletVelocityFvPatchVectorField
(
const waveAbsorptionOutletVelocityFvPatchVectorField&
);
//- Construct and return a clone
virtual tmp<fvPatchVectorField> clone() const
{
return tmp<fvPatchVectorField>
(
new waveAbsorptionOutletVelocityFvPatchVectorField(*this)
);
}
//- Construct as copy setting internal field reference
waveAbsorptionOutletVelocityFvPatchVectorField
(
const waveAbsorptionOutletVelocityFvPatchVectorField&,
const DimensionedField<vector, volMesh>&
);
//- Construct and return a clone setting internal field reference
virtual tmp<fvPatchVectorField> clone
(
const DimensionedField<vector, volMesh>& iF
) const
{
return tmp<fvPatchVectorField>
(
new waveAbsorptionOutletVelocityFvPatchVectorField(*this, iF)
);
}
// Member functions
//- Update the coefficients associated with the patch field
virtual void updateCoeffs();
//- Write
virtual void write(Ostream&) const;
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View File

@ -72,6 +72,7 @@ lagrangian/Allwmake $targetType $*
mesh/Allwmake $targetType $*
renumber/Allwmake $targetType $*
fvAgglomerationMethods/Allwmake $targetType $*
wmake $targetType waveModels
wmake $targetType engine
wmake $targetType fvOptions

View File

@ -14,5 +14,7 @@ waveGenerationModels/derived/StokesV/StokesVWaveModel.C
waveAbsorptionModels/base/waveAbsorptionModel/waveAbsorptionModel.C
waveAbsorptionModels/derived/shallowWaterAbsorption/shallowWaterAbsorption.C
derivedFvPatchFields/waveVelocity/waveVelocityFvPatchVectorField.C
derivedFvPatchFields/waveAlpha/waveAlphaFvPatchScalarField.C
LIB = $(FOAM_USER_LIBBIN)/libwaveModels
LIB = $(FOAM_LIBBIN)/libwaveModels

View File

@ -23,14 +23,14 @@ License
\*---------------------------------------------------------------------------*/
#include "waveInletAlphaFvPatchScalarField.H"
#include "waveAlphaFvPatchScalarField.H"
#include "addToRunTimeSelectionTable.H"
#include "fvPatchFieldMapper.H"
#include "waveModel.H"
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::waveInletAlphaFvPatchScalarField::waveInletAlphaFvPatchScalarField
Foam::waveAlphaFvPatchScalarField::waveAlphaFvPatchScalarField
(
const fvPatch& p,
const DimensionedField<scalar, volMesh>& iF
@ -41,9 +41,9 @@ Foam::waveInletAlphaFvPatchScalarField::waveInletAlphaFvPatchScalarField
{}
Foam::waveInletAlphaFvPatchScalarField::waveInletAlphaFvPatchScalarField
Foam::waveAlphaFvPatchScalarField::waveAlphaFvPatchScalarField
(
const waveInletAlphaFvPatchScalarField& ptf,
const waveAlphaFvPatchScalarField& ptf,
const fvPatch& p,
const DimensionedField<scalar, volMesh>& iF,
const fvPatchFieldMapper& mapper
@ -54,7 +54,7 @@ Foam::waveInletAlphaFvPatchScalarField::waveInletAlphaFvPatchScalarField
{}
Foam::waveInletAlphaFvPatchScalarField::waveInletAlphaFvPatchScalarField
Foam::waveAlphaFvPatchScalarField::waveAlphaFvPatchScalarField
(
const fvPatch& p,
const DimensionedField<scalar, volMesh>& iF,
@ -66,9 +66,9 @@ Foam::waveInletAlphaFvPatchScalarField::waveInletAlphaFvPatchScalarField
{}
Foam::waveInletAlphaFvPatchScalarField::waveInletAlphaFvPatchScalarField
Foam::waveAlphaFvPatchScalarField::waveAlphaFvPatchScalarField
(
const waveInletAlphaFvPatchScalarField& ptf
const waveAlphaFvPatchScalarField& ptf
)
:
fixedValueFvPatchField<scalar>(ptf),
@ -76,9 +76,9 @@ Foam::waveInletAlphaFvPatchScalarField::waveInletAlphaFvPatchScalarField
{}
Foam::waveInletAlphaFvPatchScalarField::waveInletAlphaFvPatchScalarField
Foam::waveAlphaFvPatchScalarField::waveAlphaFvPatchScalarField
(
const waveInletAlphaFvPatchScalarField& ptf,
const waveAlphaFvPatchScalarField& ptf,
const DimensionedField<scalar, volMesh>& iF
)
:
@ -89,7 +89,7 @@ Foam::waveInletAlphaFvPatchScalarField::waveInletAlphaFvPatchScalarField
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
void Foam::waveInletAlphaFvPatchScalarField::updateCoeffs()
void Foam::waveAlphaFvPatchScalarField::updateCoeffs()
{
if (updated())
{
@ -116,7 +116,7 @@ void Foam::waveInletAlphaFvPatchScalarField::updateCoeffs()
}
void Foam::waveInletAlphaFvPatchScalarField::write(Ostream& os) const
void Foam::waveAlphaFvPatchScalarField::write(Ostream& os) const
{
fvPatchField<scalar>::write(os);
@ -134,7 +134,7 @@ namespace Foam
makePatchTypeField
(
fvPatchScalarField,
waveInletAlphaFvPatchScalarField
waveAlphaFvPatchScalarField
);
}

View File

@ -22,7 +22,7 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::waveInletAlphaFvPatchScalarField
Foam::waveAlphaFvPatchScalarField
Description
@ -30,7 +30,7 @@ Description
\verbatim
inlet
{
type waveInletAlpha;
type waveAlpha;
value uniform (0 0 0);
}
\endverbatim
@ -38,7 +38,7 @@ Description
Usage
\table
Property | Description | Required | Default value
type | type: waveInletAlpha | yes |
type | type: waveAlpha | yes |
waveDict | Dictionary specifying wave variables | no | waveProperties
\endtable
@ -48,12 +48,12 @@ Note
- Strange behaviour with potentialFoam since the U equation is not solved
SourceFiles
waveInletAlphaFvPatchScalarField.C
waveAlphaFvPatchScalarField.C
\*---------------------------------------------------------------------------*/
#ifndef waveInletAlphaFvPatchScalarField_H
#define waveInletAlphaFvPatchScalarField_H
#ifndef waveAlphaFvPatchScalarField_H
#define waveAlphaFvPatchScalarField_H
#include "fixedValueFvPatchFields.H"
@ -62,10 +62,10 @@ SourceFiles
namespace Foam
{
/*---------------------------------------------------------------------------*\
class waveInletAlphaFvPatchScalarField Declaration
class waveAlphaFvPatchScalarField Declaration
\*---------------------------------------------------------------------------*/
class waveInletAlphaFvPatchScalarField
class waveAlphaFvPatchScalarField
:
public fixedValueFvPatchScalarField
{
@ -78,20 +78,20 @@ class waveInletAlphaFvPatchScalarField
public:
//- Runtime type information
TypeName("waveInletAlpha");
TypeName("waveAlpha");
// Constructors
//- Construct from patch and internal field
waveInletAlphaFvPatchScalarField
waveAlphaFvPatchScalarField
(
const fvPatch&,
const DimensionedField<scalar, volMesh>&
);
//- Construct from patch, internal field and dictionary
waveInletAlphaFvPatchScalarField
waveAlphaFvPatchScalarField
(
const fvPatch&,
const DimensionedField<scalar, volMesh>&,
@ -99,20 +99,20 @@ public:
);
//- Construct by mapping given
// waveInletAlphaFvPatchScalarField
// waveAlphaFvPatchScalarField
// onto a new patch
waveInletAlphaFvPatchScalarField
waveAlphaFvPatchScalarField
(
const waveInletAlphaFvPatchScalarField&,
const waveAlphaFvPatchScalarField&,
const fvPatch&,
const DimensionedField<scalar, volMesh>&,
const fvPatchFieldMapper&
);
//- Construct as copy
waveInletAlphaFvPatchScalarField
waveAlphaFvPatchScalarField
(
const waveInletAlphaFvPatchScalarField&
const waveAlphaFvPatchScalarField&
);
//- Construct and return a clone
@ -120,14 +120,14 @@ public:
{
return tmp<fvPatchScalarField>
(
new waveInletAlphaFvPatchScalarField(*this)
new waveAlphaFvPatchScalarField(*this)
);
}
//- Construct as copy setting internal field reference
waveInletAlphaFvPatchScalarField
waveAlphaFvPatchScalarField
(
const waveInletAlphaFvPatchScalarField&,
const waveAlphaFvPatchScalarField&,
const DimensionedField<scalar, volMesh>&
);
@ -139,7 +139,7 @@ public:
{
return tmp<fvPatchScalarField>
(
new waveInletAlphaFvPatchScalarField(*this, iF)
new waveAlphaFvPatchScalarField(*this, iF)
);
}

View File

@ -23,14 +23,14 @@ License
\*---------------------------------------------------------------------------*/
#include "waveInletVelocityFvPatchVectorField.H"
#include "waveVelocityFvPatchVectorField.H"
#include "addToRunTimeSelectionTable.H"
#include "fvPatchFieldMapper.H"
#include "waveModel.H"
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::waveInletVelocityFvPatchVectorField::waveInletVelocityFvPatchVectorField
Foam::waveVelocityFvPatchVectorField::waveVelocityFvPatchVectorField
(
const fvPatch& p,
const DimensionedField<vector, volMesh>& iF
@ -41,9 +41,9 @@ Foam::waveInletVelocityFvPatchVectorField::waveInletVelocityFvPatchVectorField
{}
Foam::waveInletVelocityFvPatchVectorField::waveInletVelocityFvPatchVectorField
Foam::waveVelocityFvPatchVectorField::waveVelocityFvPatchVectorField
(
const waveInletVelocityFvPatchVectorField& ptf,
const waveVelocityFvPatchVectorField& ptf,
const fvPatch& p,
const DimensionedField<vector, volMesh>& iF,
const fvPatchFieldMapper& mapper
@ -54,7 +54,7 @@ Foam::waveInletVelocityFvPatchVectorField::waveInletVelocityFvPatchVectorField
{}
Foam::waveInletVelocityFvPatchVectorField::waveInletVelocityFvPatchVectorField
Foam::waveVelocityFvPatchVectorField::waveVelocityFvPatchVectorField
(
const fvPatch& p,
const DimensionedField<vector, volMesh>& iF,
@ -66,9 +66,9 @@ Foam::waveInletVelocityFvPatchVectorField::waveInletVelocityFvPatchVectorField
{}
Foam::waveInletVelocityFvPatchVectorField::waveInletVelocityFvPatchVectorField
Foam::waveVelocityFvPatchVectorField::waveVelocityFvPatchVectorField
(
const waveInletVelocityFvPatchVectorField& ptf
const waveVelocityFvPatchVectorField& ptf
)
:
fixedValueFvPatchField<vector>(ptf),
@ -76,9 +76,9 @@ Foam::waveInletVelocityFvPatchVectorField::waveInletVelocityFvPatchVectorField
{}
Foam::waveInletVelocityFvPatchVectorField::waveInletVelocityFvPatchVectorField
Foam::waveVelocityFvPatchVectorField::waveVelocityFvPatchVectorField
(
const waveInletVelocityFvPatchVectorField& ptf,
const waveVelocityFvPatchVectorField& ptf,
const DimensionedField<vector, volMesh>& iF
)
:
@ -89,7 +89,7 @@ Foam::waveInletVelocityFvPatchVectorField::waveInletVelocityFvPatchVectorField
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
void Foam::waveInletVelocityFvPatchVectorField::updateCoeffs()
void Foam::waveVelocityFvPatchVectorField::updateCoeffs()
{
if (updated())
{
@ -116,7 +116,7 @@ void Foam::waveInletVelocityFvPatchVectorField::updateCoeffs()
}
void Foam::waveInletVelocityFvPatchVectorField::write(Ostream& os) const
void Foam::waveVelocityFvPatchVectorField::write(Ostream& os) const
{
fvPatchField<vector>::write(os);
@ -134,7 +134,7 @@ namespace Foam
makePatchTypeField
(
fvPatchVectorField,
waveInletVelocityFvPatchVectorField
waveVelocityFvPatchVectorField
);
}

View File

@ -22,22 +22,22 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::waveInletVelocityFvPatchVectorField
Foam::waveVelocityFvPatchVectorField
Description
Example of the boundary condition specification:
\verbatim
inlet
{
type waveInletVelocity;
type waveVelocity;
value uniform (0 0 0);
}
\endverbatim
Usage
\table
Property | Description | Required | Default value
type | type: waveInletVelocity | yes |
Property | Description | Required | Default value
type | type: waveVelocity | yes |
waveDict | Dictionary specifying wave variables | no | waveProperties
\endtable
@ -47,12 +47,12 @@ Note
- Strange behaviour with potentialFoam since the U equation is not solved
SourceFiles
waveInletVelocityFvPatchVectorField.C
waveVelocityFvPatchVectorField.C
\*---------------------------------------------------------------------------*/
#ifndef waveInletVelocityFvPatchVectorField_H
#define waveInletVelocityFvPatchVectorField_H
#ifndef waveVelocityFvPatchVectorField_H
#define waveVelocityFvPatchVectorField_H
#include "fixedValueFvPatchFields.H"
@ -60,11 +60,12 @@ SourceFiles
namespace Foam
{
/*---------------------------------------------------------------------------*\
Class waveInletVelocityFvPatchVectorField Declaration
Class waveVelocityFvPatchVectorField Declaration
\*---------------------------------------------------------------------------*/
class waveInletVelocityFvPatchVectorField
class waveVelocityFvPatchVectorField
:
public fixedValueFvPatchVectorField
{
@ -77,20 +78,20 @@ class waveInletVelocityFvPatchVectorField
public:
//- Runtime type information
TypeName("waveInletVelocity");
TypeName("waveVelocity");
// Constructors
//- Construct from patch and internal field
waveInletVelocityFvPatchVectorField
waveVelocityFvPatchVectorField
(
const fvPatch&,
const DimensionedField<vector, volMesh>&
);
//- Construct from patch, internal field and dictionary
waveInletVelocityFvPatchVectorField
waveVelocityFvPatchVectorField
(
const fvPatch&,
const DimensionedField<vector, volMesh>&,
@ -98,20 +99,20 @@ public:
);
//- Construct by mapping given
// waveInletVelocityFvPatchVectorField
// waveVelocityFvPatchVectorField
// onto a new patch
waveInletVelocityFvPatchVectorField
waveVelocityFvPatchVectorField
(
const waveInletVelocityFvPatchVectorField&,
const waveVelocityFvPatchVectorField&,
const fvPatch&,
const DimensionedField<vector, volMesh>&,
const fvPatchFieldMapper&
);
//- Construct as copy
waveInletVelocityFvPatchVectorField
waveVelocityFvPatchVectorField
(
const waveInletVelocityFvPatchVectorField&
const waveVelocityFvPatchVectorField&
);
//- Construct and return a clone
@ -119,14 +120,14 @@ public:
{
return tmp<fvPatchVectorField>
(
new waveInletVelocityFvPatchVectorField(*this)
new waveVelocityFvPatchVectorField(*this)
);
}
//- Construct as copy setting internal field reference
waveInletVelocityFvPatchVectorField
waveVelocityFvPatchVectorField
(
const waveInletVelocityFvPatchVectorField&,
const waveVelocityFvPatchVectorField&,
const DimensionedField<vector, volMesh>&
);
@ -138,7 +139,7 @@ public:
{
return tmp<fvPatchVectorField>
(
new waveInletVelocityFvPatchVectorField(*this, iF)
new waveVelocityFvPatchVectorField(*this, iF)
);
}

View File

@ -388,7 +388,7 @@ Foam::scalar Foam::waveModels::StokesV::B55k
- 8*7280*pow(c, 7)*ck
+ 6*7160*pow(c, 5)*ck
- 4*1800*pow(c, 3)*ck
- 2*1050*pow(c,1)*ck
- 2*1050*pow(c, 1)*ck
)
/(12288*pow(s, 10)*(6*sqr(c) - 1)*(8*pow(c, 4) - 11*sqr(c) + 3))
- (
@ -552,7 +552,7 @@ Foam::scalar Foam::waveModels::StokesV::C4
const scalar c = cosh(k*h);
return
(12*pow(c, 8) + 36*pow(c, 6) - 162*pow(c, 4) + 141*sqr(c) -27)
(12*pow(c, 8) + 36*pow(c, 6) - 162*pow(c, 4) + 141*sqr(c) - 27)
/(192*c*pow(s, 9));
}
@ -577,8 +577,8 @@ void Foam::waveModels::StokesV::initialise
label n = 0;
const scalar tolerance = 1e-12;
const label iterMax = 10000;
static const scalar tolerance = 1e-12;
static const label iterMax = 10000;
while ((mag(f1) > tolerance || mag(f2) > tolerance) && (n < iterMax))
{

View File

@ -147,7 +147,8 @@ Foam::tmp<Foam::scalarField> Foam::waveModel::waterLevel() const
reduce(paddleMagSf[paddlei], sumOp<scalar>());
reduce(paddleWettedMagSf[paddlei], sumOp<scalar>());
level[paddlei] +=
paddleWettedMagSf[paddlei]/paddleMagSf[paddlei]*zSpan_;
paddleWettedMagSf[paddlei]
/(paddleMagSf[paddlei]*zSpan_ + ROOTVSMALL);
}
return tlevel;
@ -333,6 +334,9 @@ bool Foam::waveModel::read(const dictionary& overrideDict)
}
}
// Avoid potential zero...
waterDepthRef_ += SMALL;
// Insert the reference water depth into [this] to enable restart
add("waterDepthRef", waterDepthRef_);
}

View File

@ -25,6 +25,7 @@ Class
Foam::waveModel
Description
Base class for waveModels
\*---------------------------------------------------------------------------*/

View File

@ -23,19 +23,19 @@ boundaryField
{
inlet
{
type waveInletVelocity;
type waveVelocity;
value uniform (0 0 0);
}
outlet
{
type waveInletVelocity;
type waveVelocity;
value uniform (0 0 0);
}
sides
{
type empty;
type empty;
}
ground

View File

@ -22,7 +22,7 @@ boundaryField
{
inlet
{
type waveInletAlpha;
type waveAlpha;
value uniform 0;
}

View File

@ -15,12 +15,6 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
libs
(
"libwaveBCs.so"
"libwaveModels.so"
);
application interFoam;
startFrom latestTime;

View File

@ -23,13 +23,13 @@ boundaryField
{
inlet
{
type waveInletVelocity;
type waveVelocity;
value uniform (0 0 0);
}
outlet
{
type waveInletVelocity;
type waveVelocity;
value uniform (0 0 0);
}

View File

@ -22,7 +22,7 @@ boundaryField
{
inlet
{
type waveInletAlpha;
type waveAlpha;
value uniform 0;
}

View File

@ -15,12 +15,6 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
libs
(
"libwaveBCs.so"
"libwaveModels.so"
);
application interFoam;
startFrom latestTime;

View File

@ -23,13 +23,13 @@ boundaryField
{
inlet
{
type waveInletVelocity;
type waveVelocity;
value uniform (0 0 0);
}
outlet
{
type waveInletVelocity;
type waveVelocity;
value uniform (0 0 0);
}

View File

@ -22,7 +22,7 @@ boundaryField
{
inlet
{
type waveInletAlpha;
type waveAlpha;
value uniform 0;
}

View File

@ -15,12 +15,6 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
libs
(
"libwaveBCs.so"
"libwaveModels.so"
);
application interFoam;
startFrom latestTime;

View File

@ -23,13 +23,13 @@ boundaryField
{
inlet
{
type waveInletVelocity;
type waveVelocity;
value uniform (0 0 0);
}
outlet
{
type waveInletVelocity;
type waveVelocity;
value uniform (0 0 0);
}

View File

@ -22,7 +22,7 @@ boundaryField
{
inlet
{
type waveInletAlpha;
type waveAlpha;
value uniform 0;
}

View File

@ -15,12 +15,6 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
libs
(
"libwaveBCs.so"
"libwaveModels.so"
);
application interFoam;
startFrom latestTime;

View File

@ -23,13 +23,13 @@ boundaryField
{
inlet
{
type waveInletVelocity;
type waveVelocity;
value uniform (0 0 0);
}
outlet
{
type waveInletVelocity;
type waveVelocity;
value uniform (0 0 0);
}

View File

@ -22,7 +22,7 @@ boundaryField
{
inlet
{
type waveInletAlpha;
type waveAlpha;
value uniform 0;
}
@ -38,7 +38,7 @@ boundaryField
sides
{
type empty;
type empty;
}
top

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