mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: porosity model updates for moving meshes
This commit is contained in:
@ -52,19 +52,31 @@ Foam::porosityModels::DarcyForchheimer::DarcyForchheimer
|
|||||||
)
|
)
|
||||||
:
|
:
|
||||||
porosityModel(name, modelType, mesh, dict, cellZoneName),
|
porosityModel(name, modelType, mesh, dict, cellZoneName),
|
||||||
|
dXYZ_(coeffs_.lookup("d")),
|
||||||
|
fXYZ_(coeffs_.lookup("f")),
|
||||||
D_(cellZoneIDs_.size()),
|
D_(cellZoneIDs_.size()),
|
||||||
F_(cellZoneIDs_.size()),
|
F_(cellZoneIDs_.size()),
|
||||||
rhoName_(coeffs_.lookupOrDefault<word>("rho", "rho")),
|
rhoName_(coeffs_.lookupOrDefault<word>("rho", "rho")),
|
||||||
muName_(coeffs_.lookupOrDefault<word>("mu", "thermo:mu")),
|
muName_(coeffs_.lookupOrDefault<word>("mu", "thermo:mu")),
|
||||||
nuName_(coeffs_.lookupOrDefault<word>("nu", "nu"))
|
nuName_(coeffs_.lookupOrDefault<word>("nu", "nu"))
|
||||||
{
|
{
|
||||||
|
adjustNegativeResistance(dXYZ_);
|
||||||
|
adjustNegativeResistance(fXYZ_);
|
||||||
|
|
||||||
dimensionedVector d(coeffs_.lookup("d"));
|
calcTranformModelData();
|
||||||
dimensionedVector f(coeffs_.lookup("f"));
|
}
|
||||||
|
|
||||||
adjustNegativeResistance(d);
|
|
||||||
adjustNegativeResistance(f);
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
Foam::porosityModels::DarcyForchheimer::~DarcyForchheimer()
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
void Foam::porosityModels::DarcyForchheimer::calcTranformModelData()
|
||||||
|
{
|
||||||
if (coordSys_.R().uniform())
|
if (coordSys_.R().uniform())
|
||||||
{
|
{
|
||||||
forAll (cellZoneIDs_, zoneI)
|
forAll (cellZoneIDs_, zoneI)
|
||||||
@ -72,20 +84,19 @@ Foam::porosityModels::DarcyForchheimer::DarcyForchheimer
|
|||||||
D_[zoneI].setSize(1, tensor::zero);
|
D_[zoneI].setSize(1, tensor::zero);
|
||||||
F_[zoneI].setSize(1, tensor::zero);
|
F_[zoneI].setSize(1, tensor::zero);
|
||||||
|
|
||||||
D_[zoneI][0].xx() = d.value().x();
|
D_[zoneI][0].xx() = dXYZ_.value().x();
|
||||||
D_[zoneI][0].yy() = d.value().y();
|
D_[zoneI][0].yy() = dXYZ_.value().y();
|
||||||
D_[zoneI][0].zz() = d.value().z();
|
D_[zoneI][0].zz() = dXYZ_.value().z();
|
||||||
|
|
||||||
D_[zoneI][0] = coordSys_.R().transformTensor(D_[zoneI][0]);
|
D_[zoneI][0] = coordSys_.R().transformTensor(D_[zoneI][0]);
|
||||||
|
|
||||||
// leading 0.5 is from 1/2*rho
|
// leading 0.5 is from 1/2*rho
|
||||||
F_[zoneI][0].xx() = 0.5*f.value().x();
|
F_[zoneI][0].xx() = 0.5*fXYZ_.value().x();
|
||||||
F_[zoneI][0].yy() = 0.5*f.value().y();
|
F_[zoneI][0].yy() = 0.5*fXYZ_.value().y();
|
||||||
F_[zoneI][0].zz() = 0.5*f.value().z();
|
F_[zoneI][0].zz() = 0.5*fXYZ_.value().z();
|
||||||
|
|
||||||
F_[zoneI][0] = coordSys_.R().transformTensor(F_[zoneI][0]);
|
F_[zoneI][0] = coordSys_.R().transformTensor(F_[zoneI][0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -98,14 +109,14 @@ Foam::porosityModels::DarcyForchheimer::DarcyForchheimer
|
|||||||
|
|
||||||
forAll(cells, i)
|
forAll(cells, i)
|
||||||
{
|
{
|
||||||
D_[zoneI][i].xx() = d.value().x();
|
D_[zoneI][i].xx() = dXYZ_.value().x();
|
||||||
D_[zoneI][i].yy() = d.value().y();
|
D_[zoneI][i].yy() = dXYZ_.value().y();
|
||||||
D_[zoneI][i].zz() = d.value().z();
|
D_[zoneI][i].zz() = dXYZ_.value().z();
|
||||||
|
|
||||||
// leading 0.5 is from 1/2*rho
|
// leading 0.5 is from 1/2*rho
|
||||||
F_[zoneI][i].xx() = 0.5*f.value().x();
|
F_[zoneI][i].xx() = 0.5*fXYZ_.value().x();
|
||||||
F_[zoneI][i].yy() = 0.5*f.value().y();
|
F_[zoneI][i].yy() = 0.5*fXYZ_.value().y();
|
||||||
F_[zoneI][i].zz() = 0.5*f.value().z();
|
F_[zoneI][i].zz() = 0.5*fXYZ_.value().z();
|
||||||
}
|
}
|
||||||
|
|
||||||
D_[zoneI] = coordSys_.R().transformTensor(D_[zoneI], cells);
|
D_[zoneI] = coordSys_.R().transformTensor(D_[zoneI], cells);
|
||||||
@ -115,14 +126,6 @@ Foam::porosityModels::DarcyForchheimer::DarcyForchheimer
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
Foam::porosityModels::DarcyForchheimer::~DarcyForchheimer()
|
|
||||||
{}
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
void Foam::porosityModels::DarcyForchheimer::calcForce
|
void Foam::porosityModels::DarcyForchheimer::calcForce
|
||||||
(
|
(
|
||||||
const volVectorField& U,
|
const volVectorField& U,
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2012-2013 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2012-2014 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -74,11 +74,16 @@ private:
|
|||||||
|
|
||||||
// Private data
|
// Private data
|
||||||
|
|
||||||
|
//- Darcy coeffient XYZ components (user-supplied) [1/m2]
|
||||||
|
dimensionedVector dXYZ_;
|
||||||
|
|
||||||
//- Darcy coefficient [1/m2]
|
//- Forchheimer coeffient XYZ components (user-supplied) [1/m]
|
||||||
|
dimensionedVector fXYZ_;
|
||||||
|
|
||||||
|
//- Darcy coefficient - converted from dXYZ [1/m2]
|
||||||
List<tensorField> D_;
|
List<tensorField> D_;
|
||||||
|
|
||||||
//- Forchheimer coefficient [1/m]
|
//- Forchheimer coefficient - converted from fXYZ [1/m]
|
||||||
List<tensorField> F_;
|
List<tensorField> F_;
|
||||||
|
|
||||||
//- Name of density field
|
//- Name of density field
|
||||||
@ -143,6 +148,9 @@ public:
|
|||||||
|
|
||||||
// Member Functions
|
// Member Functions
|
||||||
|
|
||||||
|
//- Transform the model data wrt mesh changes
|
||||||
|
virtual void calcTranformModelData();
|
||||||
|
|
||||||
//- Calculate the porosity force
|
//- Calculate the porosity force
|
||||||
virtual void calcForce
|
virtual void calcForce
|
||||||
(
|
(
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2012-2013 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2012-2014 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -111,15 +111,28 @@ Foam::porosityModels::fixedCoeff::fixedCoeff
|
|||||||
)
|
)
|
||||||
:
|
:
|
||||||
porosityModel(name, modelType, mesh, dict, cellZoneName),
|
porosityModel(name, modelType, mesh, dict, cellZoneName),
|
||||||
|
alphaXYZ_(coeffs_.lookup("alpha")),
|
||||||
|
betaXYZ_(coeffs_.lookup("beta")),
|
||||||
alpha_(cellZoneIDs_.size()),
|
alpha_(cellZoneIDs_.size()),
|
||||||
beta_(cellZoneIDs_.size())
|
beta_(cellZoneIDs_.size())
|
||||||
{
|
{
|
||||||
dimensionedVector alpha(coeffs_.lookup("alpha"));
|
adjustNegativeResistance(alphaXYZ_);
|
||||||
dimensionedVector beta(coeffs_.lookup("beta"));
|
adjustNegativeResistance(betaXYZ_);
|
||||||
|
|
||||||
adjustNegativeResistance(alpha);
|
calcTranformModelData();
|
||||||
adjustNegativeResistance(beta);
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
Foam::porosityModels::fixedCoeff::~fixedCoeff()
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
void Foam::porosityModels::fixedCoeff::calcTranformModelData()
|
||||||
|
{
|
||||||
if (coordSys_.R().uniform())
|
if (coordSys_.R().uniform())
|
||||||
{
|
{
|
||||||
forAll (cellZoneIDs_, zoneI)
|
forAll (cellZoneIDs_, zoneI)
|
||||||
@ -127,14 +140,14 @@ Foam::porosityModels::fixedCoeff::fixedCoeff
|
|||||||
alpha_[zoneI].setSize(1, tensor::zero);
|
alpha_[zoneI].setSize(1, tensor::zero);
|
||||||
beta_[zoneI].setSize(1, tensor::zero);
|
beta_[zoneI].setSize(1, tensor::zero);
|
||||||
|
|
||||||
alpha_[zoneI][0].xx() = alpha.value().x();
|
alpha_[zoneI][0].xx() = alphaXYZ_.value().x();
|
||||||
alpha_[zoneI][0].yy() = alpha.value().y();
|
alpha_[zoneI][0].yy() = alphaXYZ_.value().y();
|
||||||
alpha_[zoneI][0].zz() = alpha.value().z();
|
alpha_[zoneI][0].zz() = alphaXYZ_.value().z();
|
||||||
alpha_[zoneI][0] = coordSys_.R().transformTensor(alpha_[zoneI][0]);
|
alpha_[zoneI][0] = coordSys_.R().transformTensor(alpha_[zoneI][0]);
|
||||||
|
|
||||||
beta_[zoneI][0].xx() = beta.value().x();
|
beta_[zoneI][0].xx() = betaXYZ_.value().x();
|
||||||
beta_[zoneI][0].yy() = beta.value().y();
|
beta_[zoneI][0].yy() = betaXYZ_.value().y();
|
||||||
beta_[zoneI][0].zz() = beta.value().z();
|
beta_[zoneI][0].zz() = betaXYZ_.value().z();
|
||||||
beta_[zoneI][0] = coordSys_.R().transformTensor(beta_[zoneI][0]);
|
beta_[zoneI][0] = coordSys_.R().transformTensor(beta_[zoneI][0]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -149,13 +162,13 @@ Foam::porosityModels::fixedCoeff::fixedCoeff
|
|||||||
|
|
||||||
forAll(cells, i)
|
forAll(cells, i)
|
||||||
{
|
{
|
||||||
alpha_[zoneI][i].xx() = alpha.value().x();
|
alpha_[zoneI][i].xx() = alphaXYZ_.value().x();
|
||||||
alpha_[zoneI][i].yy() = alpha.value().y();
|
alpha_[zoneI][i].yy() = alphaXYZ_.value().y();
|
||||||
alpha_[zoneI][i].zz() = alpha.value().z();
|
alpha_[zoneI][i].zz() = alphaXYZ_.value().z();
|
||||||
|
|
||||||
beta_[zoneI][i].xx() = beta.value().x();
|
beta_[zoneI][i].xx() = betaXYZ_.value().x();
|
||||||
beta_[zoneI][i].yy() = beta.value().y();
|
beta_[zoneI][i].yy() = betaXYZ_.value().y();
|
||||||
beta_[zoneI][i].zz() = beta.value().z();
|
beta_[zoneI][i].zz() = betaXYZ_.value().z();
|
||||||
}
|
}
|
||||||
|
|
||||||
alpha_[zoneI] =
|
alpha_[zoneI] =
|
||||||
@ -167,14 +180,6 @@ Foam::porosityModels::fixedCoeff::fixedCoeff
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
Foam::porosityModels::fixedCoeff::~fixedCoeff()
|
|
||||||
{}
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
|
||||||
|
|
||||||
void Foam::porosityModels::fixedCoeff::calcForce
|
void Foam::porosityModels::fixedCoeff::calcForce
|
||||||
(
|
(
|
||||||
const volVectorField& U,
|
const volVectorField& U,
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2012-2013 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2012-2014 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -64,10 +64,16 @@ private:
|
|||||||
|
|
||||||
// Private data
|
// Private data
|
||||||
|
|
||||||
//- Model alpha coefficient [1/s]
|
//- alpha coefficient XYZ components (user-supplied) [1/s]
|
||||||
|
dimensionedVector alphaXYZ_;
|
||||||
|
|
||||||
|
//- beta coefficient XYZ components (user-supplied) [1/m]
|
||||||
|
dimensionedVector betaXYZ_;
|
||||||
|
|
||||||
|
//- Model alpha coefficient - converted from alphaXYZ [1/s]
|
||||||
List<tensorField> alpha_;
|
List<tensorField> alpha_;
|
||||||
|
|
||||||
//- Model beta coefficient [1/m]
|
//- Model beta coefficient - converted from betaXYZ [1/m]
|
||||||
List<tensorField> beta_;
|
List<tensorField> beta_;
|
||||||
|
|
||||||
|
|
||||||
@ -119,6 +125,9 @@ public:
|
|||||||
|
|
||||||
// Member Functions
|
// Member Functions
|
||||||
|
|
||||||
|
//- Transform the model data wrt mesh changes
|
||||||
|
virtual void calcTranformModelData();
|
||||||
|
|
||||||
//- Calculate the porosity force
|
//- Calculate the porosity force
|
||||||
virtual void calcForce
|
virtual void calcForce
|
||||||
(
|
(
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2012-2013 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2012-2014 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -147,13 +147,27 @@ Foam::porosityModel::~porosityModel()
|
|||||||
|
|
||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
void Foam::porosityModel::transformModelData()
|
||||||
|
{
|
||||||
|
if (!mesh_.upToDatePoints(*this))
|
||||||
|
{
|
||||||
|
calcTranformModelData();
|
||||||
|
|
||||||
|
// set model up-to-date wrt points
|
||||||
|
mesh_.setUpToDatePoints(*this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Foam::tmp<Foam::vectorField> Foam::porosityModel::porosityModel::force
|
Foam::tmp<Foam::vectorField> Foam::porosityModel::porosityModel::force
|
||||||
(
|
(
|
||||||
const volVectorField& U,
|
const volVectorField& U,
|
||||||
const volScalarField& rho,
|
const volScalarField& rho,
|
||||||
const volScalarField& mu
|
const volScalarField& mu
|
||||||
) const
|
)
|
||||||
{
|
{
|
||||||
|
transformModelData();
|
||||||
|
|
||||||
tmp<vectorField> tforce(new vectorField(U.size(), vector::zero));
|
tmp<vectorField> tforce(new vectorField(U.size(), vector::zero));
|
||||||
|
|
||||||
if (!cellZoneIDs_.empty())
|
if (!cellZoneIDs_.empty())
|
||||||
@ -165,16 +179,14 @@ Foam::tmp<Foam::vectorField> Foam::porosityModel::porosityModel::force
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Foam::porosityModel::addResistance
|
void Foam::porosityModel::addResistance(fvVectorMatrix& UEqn)
|
||||||
(
|
|
||||||
fvVectorMatrix& UEqn
|
|
||||||
) const
|
|
||||||
{
|
{
|
||||||
if (cellZoneIDs_.empty())
|
if (cellZoneIDs_.empty())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
transformModelData();
|
||||||
this->correct(UEqn);
|
this->correct(UEqn);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -184,13 +196,14 @@ void Foam::porosityModel::addResistance
|
|||||||
fvVectorMatrix& UEqn,
|
fvVectorMatrix& UEqn,
|
||||||
const volScalarField& rho,
|
const volScalarField& rho,
|
||||||
const volScalarField& mu
|
const volScalarField& mu
|
||||||
) const
|
)
|
||||||
{
|
{
|
||||||
if (cellZoneIDs_.empty())
|
if (cellZoneIDs_.empty())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
transformModelData();
|
||||||
this->correct(UEqn, rho, mu);
|
this->correct(UEqn, rho, mu);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -200,13 +213,14 @@ void Foam::porosityModel::addResistance
|
|||||||
const fvVectorMatrix& UEqn,
|
const fvVectorMatrix& UEqn,
|
||||||
volTensorField& AU,
|
volTensorField& AU,
|
||||||
bool correctAUprocBC
|
bool correctAUprocBC
|
||||||
) const
|
)
|
||||||
{
|
{
|
||||||
if (cellZoneIDs_.empty())
|
if (cellZoneIDs_.empty())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
transformModelData();
|
||||||
this->correct(UEqn, AU);
|
this->correct(UEqn, AU);
|
||||||
|
|
||||||
if (correctAUprocBC)
|
if (correctAUprocBC)
|
||||||
@ -219,24 +233,12 @@ void Foam::porosityModel::addResistance
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool Foam::porosityModel::movePoints()
|
|
||||||
{
|
|
||||||
// no updates necessary; all member data independent of mesh
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void Foam::porosityModel::updateMesh(const mapPolyMesh& mpm)
|
|
||||||
{
|
|
||||||
// no updates necessary; all member data independent of mesh
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool Foam::porosityModel::writeData(Ostream& os) const
|
bool Foam::porosityModel::writeData(Ostream& os) const
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool Foam::porosityModel::read(const dictionary& dict)
|
bool Foam::porosityModel::read(const dictionary& dict)
|
||||||
{
|
{
|
||||||
active_ = readBool(dict.lookup("active"));
|
active_ = readBool(dict.lookup("active"));
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2012-2013 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2012-2014 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -99,6 +99,10 @@ protected:
|
|||||||
|
|
||||||
// Protected Member Functions
|
// Protected Member Functions
|
||||||
|
|
||||||
|
|
||||||
|
//- Transform the model data wrt mesh changes
|
||||||
|
virtual void calcTranformModelData() = 0;
|
||||||
|
|
||||||
//- Adjust negative resistance values to be multiplier of max value
|
//- Adjust negative resistance values to be multiplier of max value
|
||||||
void adjustNegativeResistance(dimensionedVector& resist);
|
void adjustNegativeResistance(dimensionedVector& resist);
|
||||||
|
|
||||||
@ -221,16 +225,19 @@ public:
|
|||||||
//- Return const access to the cell zone IDs
|
//- Return const access to the cell zone IDs
|
||||||
inline const labelList& cellZoneIDs() const;
|
inline const labelList& cellZoneIDs() const;
|
||||||
|
|
||||||
|
//- Transform the model data wrt mesh changes
|
||||||
|
virtual void transformModelData();
|
||||||
|
|
||||||
//- Return the force over the cell zone(s)
|
//- Return the force over the cell zone(s)
|
||||||
virtual tmp<vectorField> force
|
virtual tmp<vectorField> force
|
||||||
(
|
(
|
||||||
const volVectorField& U,
|
const volVectorField& U,
|
||||||
const volScalarField& rho,
|
const volScalarField& rho,
|
||||||
const volScalarField& mu
|
const volScalarField& mu
|
||||||
) const;
|
);
|
||||||
|
|
||||||
//- Add resistance
|
//- Add resistance
|
||||||
virtual void addResistance(fvVectorMatrix& UEqn) const;
|
virtual void addResistance(fvVectorMatrix& UEqn);
|
||||||
|
|
||||||
//- Add resistance
|
//- Add resistance
|
||||||
virtual void addResistance
|
virtual void addResistance
|
||||||
@ -238,7 +245,7 @@ public:
|
|||||||
fvVectorMatrix& UEqn,
|
fvVectorMatrix& UEqn,
|
||||||
const volScalarField& rho,
|
const volScalarField& rho,
|
||||||
const volScalarField& mu
|
const volScalarField& mu
|
||||||
) const;
|
);
|
||||||
|
|
||||||
//- Add resistance
|
//- Add resistance
|
||||||
virtual void addResistance
|
virtual void addResistance
|
||||||
@ -246,16 +253,7 @@ public:
|
|||||||
const fvVectorMatrix& UEqn,
|
const fvVectorMatrix& UEqn,
|
||||||
volTensorField& AU,
|
volTensorField& AU,
|
||||||
bool correctAUprocBC
|
bool correctAUprocBC
|
||||||
) const;
|
);
|
||||||
|
|
||||||
|
|
||||||
// Topology change
|
|
||||||
|
|
||||||
//- Move points
|
|
||||||
virtual bool movePoints();
|
|
||||||
|
|
||||||
//- Update on meshUpdate
|
|
||||||
virtual void updateMesh(const mapPolyMesh& mpm);
|
|
||||||
|
|
||||||
|
|
||||||
// I-O
|
// I-O
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2012 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2012-2014 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -126,7 +126,7 @@ bool Foam::porosityModelList::writeData(Ostream& os) const
|
|||||||
void Foam::porosityModelList::addResistance
|
void Foam::porosityModelList::addResistance
|
||||||
(
|
(
|
||||||
fvVectorMatrix& UEqn
|
fvVectorMatrix& UEqn
|
||||||
) const
|
)
|
||||||
{
|
{
|
||||||
forAll(*this, i)
|
forAll(*this, i)
|
||||||
{
|
{
|
||||||
@ -140,7 +140,7 @@ void Foam::porosityModelList::addResistance
|
|||||||
fvVectorMatrix& UEqn,
|
fvVectorMatrix& UEqn,
|
||||||
const volScalarField& rho,
|
const volScalarField& rho,
|
||||||
const volScalarField& mu
|
const volScalarField& mu
|
||||||
) const
|
)
|
||||||
{
|
{
|
||||||
forAll(*this, i)
|
forAll(*this, i)
|
||||||
{
|
{
|
||||||
@ -154,7 +154,7 @@ void Foam::porosityModelList::addResistance
|
|||||||
const fvVectorMatrix& UEqn,
|
const fvVectorMatrix& UEqn,
|
||||||
volTensorField& AU,
|
volTensorField& AU,
|
||||||
bool correctAUprocBC
|
bool correctAUprocBC
|
||||||
) const
|
)
|
||||||
{
|
{
|
||||||
forAll(*this, i)
|
forAll(*this, i)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -94,7 +94,7 @@ public:
|
|||||||
void reset(const dictionary& dict);
|
void reset(const dictionary& dict);
|
||||||
|
|
||||||
//- Add resistance
|
//- Add resistance
|
||||||
void addResistance(fvVectorMatrix& UEqn) const;
|
void addResistance(fvVectorMatrix& UEqn);
|
||||||
|
|
||||||
//- Add resistance
|
//- Add resistance
|
||||||
void addResistance
|
void addResistance
|
||||||
@ -102,7 +102,7 @@ public:
|
|||||||
fvVectorMatrix& UEqn,
|
fvVectorMatrix& UEqn,
|
||||||
const volScalarField& rho,
|
const volScalarField& rho,
|
||||||
const volScalarField& mu
|
const volScalarField& mu
|
||||||
) const;
|
);
|
||||||
|
|
||||||
//- Add resistance
|
//- Add resistance
|
||||||
void addResistance
|
void addResistance
|
||||||
@ -110,7 +110,7 @@ public:
|
|||||||
const fvVectorMatrix& UEqn,
|
const fvVectorMatrix& UEqn,
|
||||||
volTensorField& AU,
|
volTensorField& AU,
|
||||||
bool correctAUprocBC = true
|
bool correctAUprocBC = true
|
||||||
) const;
|
);
|
||||||
|
|
||||||
|
|
||||||
// I-O
|
// I-O
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2012-2013 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2012-2014 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -66,6 +66,12 @@ Foam::porosityModels::powerLaw::~powerLaw()
|
|||||||
|
|
||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
void Foam::porosityModels::powerLaw::calcTranformModelData()
|
||||||
|
{
|
||||||
|
// nothing to be transformed
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void Foam::porosityModels::powerLaw::calcForce
|
void Foam::porosityModels::powerLaw::calcForce
|
||||||
(
|
(
|
||||||
const volVectorField& U,
|
const volVectorField& U,
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2012-2013 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2012-2014 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -127,6 +127,9 @@ public:
|
|||||||
|
|
||||||
// Member Functions
|
// Member Functions
|
||||||
|
|
||||||
|
//- Transform the model data wrt mesh changes
|
||||||
|
virtual void calcTranformModelData();
|
||||||
|
|
||||||
//- Calculate the porosity force
|
//- Calculate the porosity force
|
||||||
virtual void calcForce
|
virtual void calcForce
|
||||||
(
|
(
|
||||||
|
|||||||
Reference in New Issue
Block a user