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 $* mesh/Allwmake $targetType $*
renumber/Allwmake $targetType $* renumber/Allwmake $targetType $*
fvAgglomerationMethods/Allwmake $targetType $* fvAgglomerationMethods/Allwmake $targetType $*
wmake $targetType waveModels
wmake $targetType engine wmake $targetType engine
wmake $targetType fvOptions wmake $targetType fvOptions

View File

@ -14,5 +14,7 @@ waveGenerationModels/derived/StokesV/StokesVWaveModel.C
waveAbsorptionModels/base/waveAbsorptionModel/waveAbsorptionModel.C waveAbsorptionModels/base/waveAbsorptionModel/waveAbsorptionModel.C
waveAbsorptionModels/derived/shallowWaterAbsorption/shallowWaterAbsorption.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 "addToRunTimeSelectionTable.H"
#include "fvPatchFieldMapper.H" #include "fvPatchFieldMapper.H"
#include "waveModel.H" #include "waveModel.H"
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::waveInletAlphaFvPatchScalarField::waveInletAlphaFvPatchScalarField Foam::waveAlphaFvPatchScalarField::waveAlphaFvPatchScalarField
( (
const fvPatch& p, const fvPatch& p,
const DimensionedField<scalar, volMesh>& iF 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 fvPatch& p,
const DimensionedField<scalar, volMesh>& iF, const DimensionedField<scalar, volMesh>& iF,
const fvPatchFieldMapper& mapper const fvPatchFieldMapper& mapper
@ -54,7 +54,7 @@ Foam::waveInletAlphaFvPatchScalarField::waveInletAlphaFvPatchScalarField
{} {}
Foam::waveInletAlphaFvPatchScalarField::waveInletAlphaFvPatchScalarField Foam::waveAlphaFvPatchScalarField::waveAlphaFvPatchScalarField
( (
const fvPatch& p, const fvPatch& p,
const DimensionedField<scalar, volMesh>& iF, 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), 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 const DimensionedField<scalar, volMesh>& iF
) )
: :
@ -89,7 +89,7 @@ Foam::waveInletAlphaFvPatchScalarField::waveInletAlphaFvPatchScalarField
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
void Foam::waveInletAlphaFvPatchScalarField::updateCoeffs() void Foam::waveAlphaFvPatchScalarField::updateCoeffs()
{ {
if (updated()) 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); fvPatchField<scalar>::write(os);
@ -134,7 +134,7 @@ namespace Foam
makePatchTypeField makePatchTypeField
( (
fvPatchScalarField, fvPatchScalarField,
waveInletAlphaFvPatchScalarField waveAlphaFvPatchScalarField
); );
} }

View File

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

View File

@ -22,22 +22,22 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class Class
Foam::waveInletVelocityFvPatchVectorField Foam::waveVelocityFvPatchVectorField
Description Description
Example of the boundary condition specification: Example of the boundary condition specification:
\verbatim \verbatim
inlet inlet
{ {
type waveInletVelocity; type waveVelocity;
value uniform (0 0 0); value uniform (0 0 0);
} }
\endverbatim \endverbatim
Usage Usage
\table \table
Property | Description | Required | Default value Property | Description | Required | Default value
type | type: waveInletVelocity | yes | type | type: waveVelocity | yes |
waveDict | Dictionary specifying wave variables | no | waveProperties waveDict | Dictionary specifying wave variables | no | waveProperties
\endtable \endtable
@ -47,12 +47,12 @@ Note
- Strange behaviour with potentialFoam since the U equation is not solved - Strange behaviour with potentialFoam since the U equation is not solved
SourceFiles SourceFiles
waveInletVelocityFvPatchVectorField.C waveVelocityFvPatchVectorField.C
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#ifndef waveInletVelocityFvPatchVectorField_H #ifndef waveVelocityFvPatchVectorField_H
#define waveInletVelocityFvPatchVectorField_H #define waveVelocityFvPatchVectorField_H
#include "fixedValueFvPatchFields.H" #include "fixedValueFvPatchFields.H"
@ -60,11 +60,12 @@ SourceFiles
namespace Foam namespace Foam
{ {
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class waveInletVelocityFvPatchVectorField Declaration Class waveVelocityFvPatchVectorField Declaration
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
class waveInletVelocityFvPatchVectorField class waveVelocityFvPatchVectorField
: :
public fixedValueFvPatchVectorField public fixedValueFvPatchVectorField
{ {
@ -77,20 +78,20 @@ class waveInletVelocityFvPatchVectorField
public: public:
//- Runtime type information //- Runtime type information
TypeName("waveInletVelocity"); TypeName("waveVelocity");
// Constructors // Constructors
//- Construct from patch and internal field //- Construct from patch and internal field
waveInletVelocityFvPatchVectorField waveVelocityFvPatchVectorField
( (
const fvPatch&, const fvPatch&,
const DimensionedField<vector, volMesh>& const DimensionedField<vector, volMesh>&
); );
//- Construct from patch, internal field and dictionary //- Construct from patch, internal field and dictionary
waveInletVelocityFvPatchVectorField waveVelocityFvPatchVectorField
( (
const fvPatch&, const fvPatch&,
const DimensionedField<vector, volMesh>&, const DimensionedField<vector, volMesh>&,
@ -98,20 +99,20 @@ public:
); );
//- Construct by mapping given //- Construct by mapping given
// waveInletVelocityFvPatchVectorField // waveVelocityFvPatchVectorField
// onto a new patch // onto a new patch
waveInletVelocityFvPatchVectorField waveVelocityFvPatchVectorField
( (
const waveInletVelocityFvPatchVectorField&, const waveVelocityFvPatchVectorField&,
const fvPatch&, const fvPatch&,
const DimensionedField<vector, volMesh>&, const DimensionedField<vector, volMesh>&,
const fvPatchFieldMapper& const fvPatchFieldMapper&
); );
//- Construct as copy //- Construct as copy
waveInletVelocityFvPatchVectorField waveVelocityFvPatchVectorField
( (
const waveInletVelocityFvPatchVectorField& const waveVelocityFvPatchVectorField&
); );
//- Construct and return a clone //- Construct and return a clone
@ -119,14 +120,14 @@ public:
{ {
return tmp<fvPatchVectorField> return tmp<fvPatchVectorField>
( (
new waveInletVelocityFvPatchVectorField(*this) new waveVelocityFvPatchVectorField(*this)
); );
} }
//- Construct as copy setting internal field reference //- Construct as copy setting internal field reference
waveInletVelocityFvPatchVectorField waveVelocityFvPatchVectorField
( (
const waveInletVelocityFvPatchVectorField&, const waveVelocityFvPatchVectorField&,
const DimensionedField<vector, volMesh>& const DimensionedField<vector, volMesh>&
); );
@ -138,7 +139,7 @@ public:
{ {
return tmp<fvPatchVectorField> 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 - 8*7280*pow(c, 7)*ck
+ 6*7160*pow(c, 5)*ck + 6*7160*pow(c, 5)*ck
- 4*1800*pow(c, 3)*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)) /(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); const scalar c = cosh(k*h);
return 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)); /(192*c*pow(s, 9));
} }
@ -577,8 +577,8 @@ void Foam::waveModels::StokesV::initialise
label n = 0; label n = 0;
const scalar tolerance = 1e-12; static const scalar tolerance = 1e-12;
const label iterMax = 10000; static const label iterMax = 10000;
while ((mag(f1) > tolerance || mag(f2) > tolerance) && (n < iterMax)) 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(paddleMagSf[paddlei], sumOp<scalar>());
reduce(paddleWettedMagSf[paddlei], sumOp<scalar>()); reduce(paddleWettedMagSf[paddlei], sumOp<scalar>());
level[paddlei] += level[paddlei] +=
paddleWettedMagSf[paddlei]/paddleMagSf[paddlei]*zSpan_; paddleWettedMagSf[paddlei]
/(paddleMagSf[paddlei]*zSpan_ + ROOTVSMALL);
} }
return tlevel; 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 // Insert the reference water depth into [this] to enable restart
add("waterDepthRef", waterDepthRef_); add("waterDepthRef", waterDepthRef_);
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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