- for a non-default mesh region, corresponding files:
system/finite-area/faOptions.<name>
system/finite-area/<name>/faSchemes, etc
if the entries within the faOptions dictionary happen to contain an
"area" entry and it conflicts with what is expected, it will be
rejected when creating the list of options, which helps avoid
unexpected behaviour and simplifies overall handling.
106 lines
3.2 KiB
C
106 lines
3.2 KiB
C
/*---------------------------------------------------------------------------*\
|
|
========= |
|
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
\\ / O peration |
|
|
\\ / A nd | www.openfoam.com
|
|
\\/ M anipulation |
|
|
-------------------------------------------------------------------------------
|
|
Copyright (C) 2019-2025 OpenCFD Ltd.
|
|
-------------------------------------------------------------------------------
|
|
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 "vibrationShellModel.H"
|
|
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
|
|
namespace Foam
|
|
{
|
|
namespace regionModels
|
|
{
|
|
|
|
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
|
|
|
defineTypeNameAndDebug(vibrationShellModel, 0);
|
|
defineRunTimeSelectionTable(vibrationShellModel, dictionary);
|
|
|
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
|
|
|
vibrationShellModel::vibrationShellModel
|
|
(
|
|
const word& modelType,
|
|
const fvMesh& mesh,
|
|
const dictionary& dict
|
|
)
|
|
:
|
|
regionFaModel(mesh, "vibratingShell", modelType, dict, true),
|
|
w_
|
|
(
|
|
IOobject
|
|
(
|
|
"ws_" + regionName_,
|
|
regionMesh().time().timeName(),
|
|
regionMesh().thisDb(),
|
|
IOobject::MUST_READ,
|
|
IOobject::AUTO_WRITE
|
|
),
|
|
regionMesh()
|
|
),
|
|
a_
|
|
(
|
|
IOobject
|
|
(
|
|
"as_" + regionName_,
|
|
regionMesh().time().timeName(),
|
|
regionMesh().thisDb(),
|
|
IOobject::NO_READ,
|
|
IOobject::AUTO_WRITE
|
|
),
|
|
regionMesh(),
|
|
dimensionedScalar(dimAcceleration, Zero)
|
|
),
|
|
// Only need/want mechanical solid properties
|
|
solid_(dict.subDict("solid"), solidProperties::MECHANICAL),
|
|
pName_(dict.get<word>("p")),
|
|
pa_(mesh.lookupObject<volScalarField>(pName_)),
|
|
faOptions_
|
|
(
|
|
Foam::fa::options::New(mesh, regionFaModel::areaName())
|
|
)
|
|
{
|
|
if (faOptions_.optionList::empty())
|
|
{
|
|
Info<< "No finite area options present for area : "
|
|
<< polyMesh::regionName(regionFaModel::areaName()) << endl;
|
|
}
|
|
}
|
|
|
|
|
|
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
|
|
|
|
void vibrationShellModel::preEvolveRegion()
|
|
{}
|
|
|
|
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
|
|
} // End namespace regionModels
|
|
} // End namespace Foam
|
|
|
|
// ************************************************************************* //
|