diff --git a/src/finiteVolume/Make/files b/src/finiteVolume/Make/files index 331f1439f5d565611cac98df40972dc1e49fe557..92e61cecc016a12717d766bc19de58fc998c8c04 100644 --- a/src/finiteVolume/Make/files +++ b/src/finiteVolume/Make/files @@ -157,7 +157,6 @@ $(derivedFvPatchFields)/mappedFixedValue/mappedFixedValueFvPatchFields.C $(derivedFvPatchFields)/mappedFlowRate/mappedFlowRateFvPatchVectorField.C $(derivedFvPatchFields)/mappedVelocityFluxFixedValue/mappedVelocityFluxFixedValueFvPatchField.C $(derivedFvPatchFields)/movingWallVelocity/movingWallVelocityFvPatchVectorField.C -$(derivedFvPatchFields)/oscillatingFixedValue/oscillatingFixedValueFvPatchFields.C $(derivedFvPatchFields)/outletInlet/outletInletFvPatchFields.C $(derivedFvPatchFields)/outletMappedUniformInlet/outletMappedUniformInletFvPatchFields.C $(derivedFvPatchFields)/partialSlip/partialSlipFvPatchFields.C diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fixedNormalInletOutletVelocity/fixedNormalInletOutletVelocityFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/fixedNormalInletOutletVelocity/fixedNormalInletOutletVelocityFvPatchVectorField.H index 6d6bb2e7368f4a5c4add5aeea261697b754bdb91..a578e09948b7859f905b378e37f79d320dbdf2aa 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/fixedNormalInletOutletVelocity/fixedNormalInletOutletVelocityFvPatchVectorField.H +++ b/src/finiteVolume/fields/fvPatchFields/derived/fixedNormalInletOutletVelocity/fixedNormalInletOutletVelocityFvPatchVectorField.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2014-2016 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -59,16 +59,20 @@ Description fixTangentialInflow false; normalVelocity { - type oscillatingFixedValue; - refValue uniform (0 1 0); - offset (0 -1 0); - amplitude table - ( - ( 0 0) - ( 2 0.088) - ( 8 0.088) - ); - frequency constant 1; + type uniformFixedValue; + uniformValue sine; + uniformValueCoeffs + { + frequency 1; + amplitude table + ( + (0 0) + (2 0.088) + (8 0.088) + ); + scale (0 1 0); + level (0 0 0); + } } value uniform (0 0 0); diff --git a/src/finiteVolume/fields/fvPatchFields/derived/oscillatingFixedValue/oscillatingFixedValueFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/oscillatingFixedValue/oscillatingFixedValueFvPatchField.C deleted file mode 100644 index 87d567747d5af1fd3c571871ffba712244c1bbf1..0000000000000000000000000000000000000000 --- a/src/finiteVolume/fields/fvPatchFields/derived/oscillatingFixedValue/oscillatingFixedValueFvPatchField.C +++ /dev/null @@ -1,205 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation - \\/ 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/>. - -\*---------------------------------------------------------------------------*/ - -#include "oscillatingFixedValueFvPatchField.H" -#include "mathematicalConstants.H" - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -template<class Type> -Foam::scalar Foam::oscillatingFixedValueFvPatchField<Type>::currentScale() const -{ - const scalar t = this->db().time().timeOutputValue(); - const scalar a = amplitude_->value(t); - const scalar f = frequency_->value(t); - - return 1.0 + a*sin(constant::mathematical::twoPi*f*t); -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -template<class Type> -Foam::oscillatingFixedValueFvPatchField<Type>::oscillatingFixedValueFvPatchField -( - const fvPatch& p, - const DimensionedField<Type, volMesh>& iF -) -: - fixedValueFvPatchField<Type>(p, iF), - refValue_(p.size()), - offset_(pTraits<Type>::zero), - amplitude_(), - frequency_(), - curTimeIndex_(-1) -{} - - -template<class Type> -Foam::oscillatingFixedValueFvPatchField<Type>::oscillatingFixedValueFvPatchField -( - const fvPatch& p, - const DimensionedField<Type, volMesh>& iF, - const dictionary& dict -) -: - fixedValueFvPatchField<Type>(p, iF), - refValue_("refValue", dict, p.size()), - offset_(dict.lookupOrDefault<Type>("offset", pTraits<Type>::zero)), - amplitude_(Function1<scalar>::New("amplitude", dict)), - frequency_(Function1<scalar>::New("frequency", dict)), - curTimeIndex_(-1) -{ - if (dict.found("value")) - { - fixedValueFvPatchField<Type>::operator== - ( - Field<Type>("value", dict, p.size()) - ); - } - else - { - fixedValueFvPatchField<Type>::operator== - ( - refValue_*currentScale() - + offset_ - ); - } -} - - -template<class Type> -Foam::oscillatingFixedValueFvPatchField<Type>::oscillatingFixedValueFvPatchField -( - const oscillatingFixedValueFvPatchField<Type>& ptf, - const fvPatch& p, - const DimensionedField<Type, volMesh>& iF, - const fvPatchFieldMapper& mapper -) -: - fixedValueFvPatchField<Type>(ptf, p, iF, mapper), - refValue_(ptf.refValue_, mapper), - offset_(ptf.offset_), - amplitude_(ptf.amplitude_, false), - frequency_(ptf.frequency_, false), - curTimeIndex_(-1) -{} - - -template<class Type> -Foam::oscillatingFixedValueFvPatchField<Type>::oscillatingFixedValueFvPatchField -( - const oscillatingFixedValueFvPatchField<Type>& ptf -) -: - fixedValueFvPatchField<Type>(ptf), - refValue_(ptf.refValue_), - offset_(ptf.offset_), - amplitude_(ptf.amplitude_, false), - frequency_(ptf.frequency_, false), - curTimeIndex_(-1) -{} - - -template<class Type> -Foam::oscillatingFixedValueFvPatchField<Type>::oscillatingFixedValueFvPatchField -( - const oscillatingFixedValueFvPatchField<Type>& ptf, - const DimensionedField<Type, volMesh>& iF -) -: - fixedValueFvPatchField<Type>(ptf, iF), - refValue_(ptf.refValue_), - offset_(ptf.offset_), - amplitude_(ptf.amplitude_, false), - frequency_(ptf.frequency_, false), - curTimeIndex_(-1) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -template<class Type> -void Foam::oscillatingFixedValueFvPatchField<Type>::autoMap -( - const fvPatchFieldMapper& m -) -{ - fixedValueFvPatchField<Type>::autoMap(m); - refValue_.autoMap(m); -} - - -template<class Type> -void Foam::oscillatingFixedValueFvPatchField<Type>::rmap -( - const fvPatchField<Type>& ptf, - const labelList& addr -) -{ - fixedValueFvPatchField<Type>::rmap(ptf, addr); - - const oscillatingFixedValueFvPatchField<Type>& tiptf = - refCast<const oscillatingFixedValueFvPatchField<Type>>(ptf); - - refValue_.rmap(tiptf.refValue_, addr); -} - - -template<class Type> -void Foam::oscillatingFixedValueFvPatchField<Type>::updateCoeffs() -{ - if (this->updated()) - { - return; - } - - if (curTimeIndex_ != this->db().time().timeIndex()) - { - fixedValueFvPatchField<Type>::operator== - ( - refValue_*currentScale() - + offset_ - ); - - curTimeIndex_ = this->db().time().timeIndex(); - } - - fixedValueFvPatchField<Type>::updateCoeffs(); -} - - -template<class Type> -void Foam::oscillatingFixedValueFvPatchField<Type>::write(Ostream& os) const -{ - fixedValueFvPatchField<Type>::write(os); - refValue_.writeEntry("refValue", os); - os.writeKeyword("offset") << offset_ << token::END_STATEMENT << nl; - amplitude_->writeData(os); - frequency_->writeData(os); -} - - -// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/derived/oscillatingFixedValue/oscillatingFixedValueFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/oscillatingFixedValue/oscillatingFixedValueFvPatchField.H deleted file mode 100644 index bfc323d70e5200a0be64147db783d1cddaa70a5e..0000000000000000000000000000000000000000 --- a/src/finiteVolume/fields/fvPatchFields/derived/oscillatingFixedValue/oscillatingFixedValueFvPatchField.H +++ /dev/null @@ -1,277 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation - \\/ 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::oscillatingFixedValueFvPatchField - -Group - grpGenericBoundaryConditions - -Description - This boundary condition provides an oscillating condition in terms of - amplitude and frequency. - - \f[ - x_p = (1 + a sin(2 \pi f t))x_{ref} + x_o - \f] - - where - - \vartable - x_p | patch values - x_{ref} | patch reference values - x_o | patch offset values - a | amplitude - f | frequency [1/s] - t | time [s] - \endvartable - - \heading Patch usage - - \table - Property | Description | Required | Default value - refValue | reference value | yes | - offset | offset value | no | 0.0 - amplitude | oscillation amplitude | yes | - frequency | oscillation frequency | yes | - \endtable - - Example of the boundary condition specification: - \verbatim - myPatch - { - type oscillatingFixedValue; - refValue uniform 5.0; - offset 0.0; - amplitude constant 0.5; - frequency constant 10; - } - \endverbatim - -Note - The amplitude and frequency entries are Function1 types, able to describe - time varying functions. The example above gives the usage for supplying - constant values. - -SeeAlso - Foam::Function1 - -SourceFiles - oscillatingFixedValueFvPatchField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef oscillatingFixedValueFvPatchField_H -#define oscillatingFixedValueFvPatchField_H - -#include "Random.H" -#include "fixedValueFvPatchFields.H" -#include "Function1.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -/*---------------------------------------------------------------------------*\ - Class oscillatingFixedValueFvPatchField Declaration -\*---------------------------------------------------------------------------*/ - -template<class Type> -class oscillatingFixedValueFvPatchField -: - public fixedValueFvPatchField<Type> -{ - // Private data - - //- Reference value - Field<Type> refValue_; - - //- Offset - Type offset_; - - //- Amplitude - autoPtr<Function1<scalar>> amplitude_; - - //- Frequency - autoPtr<Function1<scalar>> frequency_; - - //- Current time index - label curTimeIndex_; - - - // Private Member Functions - - //- Return current scale - scalar currentScale() const; - - -public: - - //- Runtime type information - TypeName("oscillatingFixedValue"); - - - // Constructors - - //- Construct from patch and internal field - oscillatingFixedValueFvPatchField - ( - const fvPatch&, - const DimensionedField<Type, volMesh>& - ); - - //- Construct from patch, internal field and dictionary - oscillatingFixedValueFvPatchField - ( - const fvPatch&, - const DimensionedField<Type, volMesh>&, - const dictionary& - ); - - //- Construct by mapping given oscillatingFixedValueFvPatchField - // onto a new patch - oscillatingFixedValueFvPatchField - ( - const oscillatingFixedValueFvPatchField<Type>&, - const fvPatch&, - const DimensionedField<Type, volMesh>&, - const fvPatchFieldMapper& - ); - - //- Construct as copy - oscillatingFixedValueFvPatchField - ( - const oscillatingFixedValueFvPatchField<Type>& - ); - - //- Construct and return a clone - virtual tmp<fvPatchField<Type>> clone() const - { - return tmp<fvPatchField<Type>> - ( - new oscillatingFixedValueFvPatchField<Type>(*this) - ); - } - - //- Construct as copy setting internal field reference - oscillatingFixedValueFvPatchField - ( - const oscillatingFixedValueFvPatchField<Type>&, - const DimensionedField<Type, volMesh>& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp<fvPatchField<Type>> clone - ( - const DimensionedField<Type, volMesh>& iF - ) const - { - return tmp<fvPatchField<Type>> - ( - new oscillatingFixedValueFvPatchField<Type>(*this, iF) - ); - } - - - // Member functions - - // Access - - //- Return the ref value - const Field<Type>& refValue() const - { - return refValue_; - } - - //- Return reference to the ref value to allow adjustment - Field<Type>& refValue() - { - return refValue_; - } - - //- Return amplitude - scalar amplitude() const - { - return amplitude_; - } - - scalar& amplitude() - { - return amplitude_; - } - - //- Return frequency - scalar frequency() const - { - return frequency_; - } - - scalar& frequency() - { - return frequency_; - } - - - // Mapping functions - - //- Map (and resize as needed) from self given a mapping object - virtual void autoMap - ( - const fvPatchFieldMapper& - ); - - //- Reverse map the given fvPatchField onto this fvPatchField - virtual void rmap - ( - const fvPatchField<Type>&, - const labelList& - ); - - - // Evaluation functions - - //- Update the coefficients associated with the patch field - virtual void updateCoeffs(); - - - //- Write - virtual void write(Ostream&) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#ifdef NoRepository -# include "oscillatingFixedValueFvPatchField.C" -#endif - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/derived/oscillatingFixedValue/oscillatingFixedValueFvPatchFields.C b/src/finiteVolume/fields/fvPatchFields/derived/oscillatingFixedValue/oscillatingFixedValueFvPatchFields.C deleted file mode 100644 index a75aa80c341ee24cae37ef6015aef2e09d178b5b..0000000000000000000000000000000000000000 --- a/src/finiteVolume/fields/fvPatchFields/derived/oscillatingFixedValue/oscillatingFixedValueFvPatchFields.C +++ /dev/null @@ -1,43 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation - \\/ 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/>. - -\*---------------------------------------------------------------------------*/ - -#include "oscillatingFixedValueFvPatchFields.H" -#include "addToRunTimeSelectionTable.H" -#include "volFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -makePatchFields(oscillatingFixedValue); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/derived/oscillatingFixedValue/oscillatingFixedValueFvPatchFields.H b/src/finiteVolume/fields/fvPatchFields/derived/oscillatingFixedValue/oscillatingFixedValueFvPatchFields.H deleted file mode 100644 index 557d4973e771cdb8f6312f6c8036dd3637b4c542..0000000000000000000000000000000000000000 --- a/src/finiteVolume/fields/fvPatchFields/derived/oscillatingFixedValue/oscillatingFixedValueFvPatchFields.H +++ /dev/null @@ -1,49 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation - \\/ 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/>. - -\*---------------------------------------------------------------------------*/ - -#ifndef oscillatingFixedValueFvPatchFields_H -#define oscillatingFixedValueFvPatchFields_H - -#include "oscillatingFixedValueFvPatchField.H" -#include "fieldTypes.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makePatchTypeFieldTypedefs(oscillatingFixedValue); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/derived/oscillatingFixedValue/oscillatingFixedValueFvPatchFieldsFwd.H b/src/finiteVolume/fields/fvPatchFields/derived/oscillatingFixedValue/oscillatingFixedValueFvPatchFieldsFwd.H deleted file mode 100644 index f46b9216b9d7f19b67a3a2188751c011431d68a6..0000000000000000000000000000000000000000 --- a/src/finiteVolume/fields/fvPatchFields/derived/oscillatingFixedValue/oscillatingFixedValueFvPatchFieldsFwd.H +++ /dev/null @@ -1,50 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation - \\/ 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/>. - -\*---------------------------------------------------------------------------*/ - -#ifndef oscillatingFixedValueFvPatchFieldsFwd_H -#define oscillatingFixedValueFvPatchFieldsFwd_H - -#include "fieldTypes.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -template<class Type> class oscillatingFixedValueFvPatchField; - -makePatchTypeFieldTypedefs(oscillatingFixedValue); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/tutorials/multiphase/potentialFreeSurfaceFoam/oscillatingBox/0.org/U b/tutorials/multiphase/potentialFreeSurfaceFoam/oscillatingBox/0.org/U index 4be67ee3641a16c761144ce7fa5c43c23b1b997e..32e07b004416865cb5d2c6902ab45048528a0061 100644 --- a/tutorials/multiphase/potentialFreeSurfaceFoam/oscillatingBox/0.org/U +++ b/tutorials/multiphase/potentialFreeSurfaceFoam/oscillatingBox/0.org/U @@ -26,11 +26,13 @@ boundaryField type pressureInletOutletParSlipVelocity; value uniform (0 0 0); } + walls { type fixedValue; value uniform (0 0 0); } + floatingObject { type fixedNormalInletOutletVelocity; @@ -39,21 +41,25 @@ boundaryField normalVelocity { - type oscillatingFixedValue; - refValue uniform (0 1 0); - offset (0 -1 0); - amplitude table - ( - ( 0 0) - ( 10 0.025) - (1000 0.025) - ); - frequency constant 1; - value uniform (0 0 0); + type uniformFixedValue; + uniformValue sine; + uniformValueCoeffs + { + frequency 1; + amplitude table + ( + ( 0 0) + ( 10 0.025) + (1000 0.025) + ); + scale (0 1 0); + level (0 0 0); + } } value uniform (0 0 0); } + frontAndBack { type empty;