fvModels, fvConstraints: Update as a result of mesh motion
This commit is contained in:
@ -191,6 +191,13 @@ void Foam::fv::VoFSolidificationMeltingSource::updateMesh
|
||||
}
|
||||
|
||||
|
||||
bool Foam::fv::VoFSolidificationMeltingSource::movePoints()
|
||||
{
|
||||
set_.movePoints();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void Foam::fv::VoFSolidificationMeltingSource::correct()
|
||||
{
|
||||
if (debug)
|
||||
|
||||
@ -193,6 +193,9 @@ public:
|
||||
//- Update for mesh changes
|
||||
virtual void updateMesh(const mapPolyMesh&);
|
||||
|
||||
//- Update for mesh motion
|
||||
virtual bool movePoints();
|
||||
|
||||
|
||||
//- Correct the model
|
||||
virtual void correct();
|
||||
|
||||
@ -179,6 +179,18 @@ void ${typeName}FvModel${SourceType}::addSup
|
||||
}
|
||||
|
||||
|
||||
void ${typeName}FvModel${SourceType}::updateMesh(const mapPolyMesh& mpm)
|
||||
{
|
||||
set_.updateMesh(mpm);
|
||||
}
|
||||
|
||||
|
||||
bool ${typeName}FvModel${SourceType}::movePoints()
|
||||
{
|
||||
set_.movePoints();
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
} // End namespace Foam
|
||||
|
||||
@ -110,6 +110,15 @@ public:
|
||||
fvMatrix<${TemplateType}>& eqn,
|
||||
const word& fieldName
|
||||
) const;
|
||||
|
||||
|
||||
// Mesh motion
|
||||
|
||||
//- Update for mesh changes
|
||||
virtual void updateMesh(const mapPolyMesh&);
|
||||
|
||||
//- Update for mesh motion
|
||||
virtual bool movePoints();
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -49,7 +49,7 @@ namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
|
||||
|
||||
void Foam::fvCellSet::setCellSet()
|
||||
void Foam::fvCellSet::setCells()
|
||||
{
|
||||
Info<< incrIndent;
|
||||
|
||||
@ -119,7 +119,14 @@ void Foam::fvCellSet::setCellSet()
|
||||
}
|
||||
}
|
||||
|
||||
// Set volume information
|
||||
Info<< decrIndent;
|
||||
}
|
||||
|
||||
|
||||
void Foam::fvCellSet::setV()
|
||||
{
|
||||
Info<< incrIndent;
|
||||
|
||||
V_ = 0;
|
||||
forAll(cells_, i)
|
||||
{
|
||||
@ -162,7 +169,18 @@ Foam::fvCellSet::~fvCellSet()
|
||||
|
||||
void Foam::fvCellSet::updateMesh(const mapPolyMesh&)
|
||||
{
|
||||
setCellSet();
|
||||
setCells();
|
||||
setV();
|
||||
}
|
||||
|
||||
|
||||
void Foam::fvCellSet::movePoints()
|
||||
{
|
||||
if (selectionMode_ == selectionModeType::points)
|
||||
{
|
||||
setCells();
|
||||
}
|
||||
setV();
|
||||
}
|
||||
|
||||
|
||||
@ -202,7 +220,8 @@ bool Foam::fvCellSet::read(const dictionary& dict)
|
||||
}
|
||||
}
|
||||
|
||||
setCellSet();
|
||||
setCells();
|
||||
setV();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -122,8 +122,11 @@ private:
|
||||
//- Read the coefficients from the given dictionary
|
||||
void readCoeffs(const dictionary& dict);
|
||||
|
||||
//- Set the cell set based on the user input selection mode
|
||||
void setCellSet();
|
||||
//- Set the cells
|
||||
void setCells();
|
||||
|
||||
//- Set the sum of scalar volumes
|
||||
void setV();
|
||||
|
||||
|
||||
public:
|
||||
@ -165,6 +168,9 @@ public:
|
||||
//- Update for mesh changes
|
||||
void updateMesh(const mapPolyMesh&);
|
||||
|
||||
//- Update for mesh motion
|
||||
void movePoints();
|
||||
|
||||
|
||||
// IO
|
||||
|
||||
|
||||
@ -162,6 +162,13 @@ void Foam::fv::fixedTemperatureConstraint::updateMesh(const mapPolyMesh& mpm)
|
||||
}
|
||||
|
||||
|
||||
bool Foam::fv::fixedTemperatureConstraint::movePoints()
|
||||
{
|
||||
set_.movePoints();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool Foam::fv::fixedTemperatureConstraint::read(const dictionary& dict)
|
||||
{
|
||||
if (fvConstraint::read(dict))
|
||||
|
||||
@ -158,6 +158,9 @@ public:
|
||||
//- Update for mesh changes
|
||||
virtual void updateMesh(const mapPolyMesh&);
|
||||
|
||||
//- Update for mesh motion
|
||||
virtual bool movePoints();
|
||||
|
||||
//- Read dictionary
|
||||
virtual bool read(const dictionary& dict);
|
||||
|
||||
|
||||
@ -126,6 +126,13 @@ void Foam::fv::fixedValueConstraint::updateMesh(const mapPolyMesh& mpm)
|
||||
}
|
||||
|
||||
|
||||
bool Foam::fv::fixedValueConstraint::movePoints()
|
||||
{
|
||||
set_.movePoints();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool Foam::fv::fixedValueConstraint::read(const dictionary& dict)
|
||||
{
|
||||
if (fvConstraint::read(dict))
|
||||
|
||||
@ -121,6 +121,9 @@ public:
|
||||
//- Update for mesh changes
|
||||
virtual void updateMesh(const mapPolyMesh&);
|
||||
|
||||
//- Update for mesh motion
|
||||
virtual bool movePoints();
|
||||
|
||||
//- Read source dictionary
|
||||
virtual bool read(const dictionary& dict);
|
||||
};
|
||||
|
||||
@ -148,6 +148,13 @@ void Foam::fv::limitTemperature::updateMesh(const mapPolyMesh& mpm)
|
||||
}
|
||||
|
||||
|
||||
bool Foam::fv::limitTemperature::movePoints()
|
||||
{
|
||||
set_.movePoints();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool Foam::fv::limitTemperature::read(const dictionary& dict)
|
||||
{
|
||||
if (fvConstraint::read(dict))
|
||||
|
||||
@ -127,6 +127,9 @@ public:
|
||||
//- Update for mesh changes
|
||||
virtual void updateMesh(const mapPolyMesh&);
|
||||
|
||||
//- Update for mesh motion
|
||||
virtual bool movePoints();
|
||||
|
||||
//- Read dictionary
|
||||
virtual bool read(const dictionary& dict);
|
||||
|
||||
|
||||
@ -134,6 +134,13 @@ void Foam::fv::limitVelocity::updateMesh(const mapPolyMesh& mpm)
|
||||
}
|
||||
|
||||
|
||||
bool Foam::fv::limitVelocity::movePoints()
|
||||
{
|
||||
set_.movePoints();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool Foam::fv::limitVelocity::read(const dictionary& dict)
|
||||
{
|
||||
if (fvConstraint::read(dict))
|
||||
|
||||
@ -121,6 +121,9 @@ public:
|
||||
//- Update for mesh changes
|
||||
virtual void updateMesh(const mapPolyMesh&);
|
||||
|
||||
//- Update for mesh motion
|
||||
virtual bool movePoints();
|
||||
|
||||
//- Read dictionary
|
||||
virtual bool read(const dictionary& dict);
|
||||
|
||||
|
||||
@ -254,6 +254,13 @@ void Foam::fv::meanVelocityForce::updateMesh(const mapPolyMesh& mpm)
|
||||
}
|
||||
|
||||
|
||||
bool Foam::fv::meanVelocityForce::movePoints()
|
||||
{
|
||||
set_.movePoints();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool Foam::fv::meanVelocityForce::read(const dictionary& dict)
|
||||
{
|
||||
if (fvConstraint::read(dict))
|
||||
|
||||
@ -158,6 +158,9 @@ public:
|
||||
//- Update for mesh changes
|
||||
virtual void updateMesh(const mapPolyMesh&);
|
||||
|
||||
//- Update for mesh motion
|
||||
virtual bool movePoints();
|
||||
|
||||
//- Read source dictionary
|
||||
virtual bool read(const dictionary& dict);
|
||||
|
||||
|
||||
@ -117,6 +117,13 @@ void Foam::fv::accelerationSource::updateMesh(const mapPolyMesh& mpm)
|
||||
}
|
||||
|
||||
|
||||
bool Foam::fv::accelerationSource::movePoints()
|
||||
{
|
||||
set_.movePoints();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool Foam::fv::accelerationSource::read(const dictionary& dict)
|
||||
{
|
||||
if (fvModel::read(dict))
|
||||
|
||||
@ -168,6 +168,9 @@ public:
|
||||
//- Update for mesh changes
|
||||
virtual void updateMesh(const mapPolyMesh&);
|
||||
|
||||
//- Update for mesh motion
|
||||
virtual bool movePoints();
|
||||
|
||||
|
||||
// IO
|
||||
|
||||
|
||||
@ -175,6 +175,13 @@ void Foam::fv::actuationDiskSource::updateMesh(const mapPolyMesh& mpm)
|
||||
}
|
||||
|
||||
|
||||
bool Foam::fv::actuationDiskSource::movePoints()
|
||||
{
|
||||
set_.movePoints();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool Foam::fv::actuationDiskSource::read(const dictionary& dict)
|
||||
{
|
||||
if (fvModel::read(dict))
|
||||
|
||||
@ -198,6 +198,9 @@ public:
|
||||
//- Update for mesh changes
|
||||
virtual void updateMesh(const mapPolyMesh&);
|
||||
|
||||
//- Update for mesh motion
|
||||
virtual bool movePoints();
|
||||
|
||||
|
||||
// IO
|
||||
|
||||
|
||||
@ -320,6 +320,13 @@ void Foam::fv::effectivenessHeatExchangerSource::updateMesh
|
||||
}
|
||||
|
||||
|
||||
bool Foam::fv::effectivenessHeatExchangerSource::movePoints()
|
||||
{
|
||||
set_.movePoints();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool Foam::fv::effectivenessHeatExchangerSource::read(const dictionary& dict)
|
||||
{
|
||||
if (fvModel::read(dict))
|
||||
|
||||
@ -220,6 +220,9 @@ public:
|
||||
//- Update for mesh changes
|
||||
virtual void updateMesh(const mapPolyMesh&);
|
||||
|
||||
//- Update for mesh motion
|
||||
virtual bool movePoints();
|
||||
|
||||
//- Read dictionary
|
||||
virtual bool read(const dictionary& dict);
|
||||
|
||||
|
||||
@ -145,6 +145,13 @@ void Foam::fv::explicitPorositySource::updateMesh(const mapPolyMesh& mpm)
|
||||
}
|
||||
|
||||
|
||||
bool Foam::fv::explicitPorositySource::movePoints()
|
||||
{
|
||||
set_.movePoints();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool Foam::fv::explicitPorositySource::read(const dictionary& dict)
|
||||
{
|
||||
if (fvModel::read(dict))
|
||||
|
||||
@ -181,6 +181,9 @@ public:
|
||||
//- Update for mesh changes
|
||||
virtual void updateMesh(const mapPolyMesh&);
|
||||
|
||||
//- Update for mesh motion
|
||||
virtual bool movePoints();
|
||||
|
||||
|
||||
// IO
|
||||
|
||||
|
||||
@ -150,6 +150,19 @@ void Foam::fv::heatSource::addSup
|
||||
}
|
||||
|
||||
|
||||
void Foam::fv::heatSource::updateMesh(const mapPolyMesh& mpm)
|
||||
{
|
||||
set_.updateMesh(mpm);
|
||||
}
|
||||
|
||||
|
||||
bool Foam::fv::heatSource::movePoints()
|
||||
{
|
||||
set_.movePoints();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool Foam::fv::heatSource::read(const dictionary& dict)
|
||||
{
|
||||
if (fvModel::read(dict))
|
||||
|
||||
@ -130,6 +130,15 @@ public:
|
||||
) const;
|
||||
|
||||
|
||||
// Mesh motion
|
||||
|
||||
//- Update for mesh changes
|
||||
virtual void updateMesh(const mapPolyMesh&);
|
||||
|
||||
//- Update for mesh motion
|
||||
virtual bool movePoints();
|
||||
|
||||
|
||||
// IO
|
||||
|
||||
//- Read dictionary
|
||||
|
||||
@ -159,6 +159,19 @@ void Foam::fv::heatTransfer::correct()
|
||||
}
|
||||
|
||||
|
||||
void Foam::fv::heatTransfer::updateMesh(const mapPolyMesh& mpm)
|
||||
{
|
||||
set_.updateMesh(mpm);
|
||||
}
|
||||
|
||||
|
||||
bool Foam::fv::heatTransfer::movePoints()
|
||||
{
|
||||
set_.movePoints();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool Foam::fv::heatTransfer::read(const dictionary& dict)
|
||||
{
|
||||
if (fvModel::read(dict))
|
||||
|
||||
@ -173,6 +173,15 @@ public:
|
||||
virtual void correct();
|
||||
|
||||
|
||||
// Mesh motion
|
||||
|
||||
//- Update for mesh changes
|
||||
virtual void updateMesh(const mapPolyMesh&);
|
||||
|
||||
//- Update for mesh motion
|
||||
virtual bool movePoints();
|
||||
|
||||
|
||||
// IO
|
||||
|
||||
//- Read dictionary
|
||||
|
||||
@ -300,6 +300,13 @@ void Foam::fv::massSource::updateMesh(const mapPolyMesh& mpm)
|
||||
}
|
||||
|
||||
|
||||
bool Foam::fv::massSource::movePoints()
|
||||
{
|
||||
set_.movePoints();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool Foam::fv::massSource::read(const dictionary& dict)
|
||||
{
|
||||
if (fvModel::read(dict))
|
||||
|
||||
@ -214,6 +214,9 @@ public:
|
||||
//- Update for mesh changes
|
||||
virtual void updateMesh(const mapPolyMesh&);
|
||||
|
||||
//- Update for mesh motion
|
||||
virtual bool movePoints();
|
||||
|
||||
|
||||
// IO
|
||||
|
||||
|
||||
@ -636,6 +636,13 @@ void Foam::fv::rotorDiskSource::updateMesh(const mapPolyMesh& mpm)
|
||||
}
|
||||
|
||||
|
||||
bool Foam::fv::rotorDiskSource::movePoints()
|
||||
{
|
||||
set_.movePoints();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool Foam::fv::rotorDiskSource::read(const dictionary& dict)
|
||||
{
|
||||
if (fvModel::read(dict))
|
||||
|
||||
@ -341,6 +341,9 @@ public:
|
||||
//- Update for mesh changes
|
||||
virtual void updateMesh(const mapPolyMesh&);
|
||||
|
||||
//- Update for mesh motion
|
||||
virtual bool movePoints();
|
||||
|
||||
|
||||
// IO
|
||||
|
||||
|
||||
@ -362,6 +362,13 @@ void Foam::fv::solidificationMeltingSource::updateMesh(const mapPolyMesh& mpm)
|
||||
}
|
||||
|
||||
|
||||
bool Foam::fv::solidificationMeltingSource::movePoints()
|
||||
{
|
||||
set_.movePoints();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool Foam::fv::solidificationMeltingSource::read(const dictionary& dict)
|
||||
{
|
||||
if (fvModel::read(dict))
|
||||
|
||||
@ -307,6 +307,9 @@ public:
|
||||
//- Update for mesh changes
|
||||
virtual void updateMesh(const mapPolyMesh&);
|
||||
|
||||
//- Update for mesh motion
|
||||
virtual bool movePoints();
|
||||
|
||||
|
||||
// IO
|
||||
|
||||
|
||||
@ -233,7 +233,6 @@ Foam::fv::codedFvModel::codedFvModel
|
||||
)
|
||||
:
|
||||
fvModel(name, modelType, dict, mesh),
|
||||
set_(coeffs(), mesh),
|
||||
fieldName_(word::null)
|
||||
{
|
||||
readCoeffs();
|
||||
@ -259,7 +258,13 @@ FOR_ALL_FIELD_TYPES(IMPLEMENT_FV_MODEL_ADD_ALPHA_RHO_SUP, fv::codedFvModel);
|
||||
|
||||
void Foam::fv::codedFvModel::updateMesh(const mapPolyMesh& mpm)
|
||||
{
|
||||
set_.updateMesh(mpm);
|
||||
redirectFvModel().updateMesh(mpm);
|
||||
}
|
||||
|
||||
|
||||
bool Foam::fv::codedFvModel::movePoints()
|
||||
{
|
||||
return redirectFvModel().movePoints();
|
||||
}
|
||||
|
||||
|
||||
@ -267,7 +272,6 @@ bool Foam::fv::codedFvModel::read(const dictionary& dict)
|
||||
{
|
||||
if (fvModel::read(dict))
|
||||
{
|
||||
set_.read(coeffs());
|
||||
readCoeffs();
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -94,9 +94,6 @@ class codedFvModel
|
||||
{
|
||||
// Private data
|
||||
|
||||
//- The set of cells the fvConstraint applies to
|
||||
fvCellSet set_;
|
||||
|
||||
//- The name of the field that this fvModel applies to
|
||||
word fieldName_;
|
||||
|
||||
@ -208,6 +205,9 @@ public:
|
||||
//- Update for mesh changes
|
||||
virtual void updateMesh(const mapPolyMesh&);
|
||||
|
||||
//- Update for mesh motion
|
||||
virtual bool movePoints();
|
||||
|
||||
|
||||
// IO
|
||||
|
||||
|
||||
@ -64,17 +64,6 @@ void Foam::fv::semiImplicitSource::readCoeffs()
|
||||
// Get the volume mode
|
||||
volumeMode_ = volumeModeNames_.read(coeffs().lookup("volumeMode"));
|
||||
|
||||
// Set volume normalisation
|
||||
switch (volumeMode_)
|
||||
{
|
||||
case volumeMode::absolute:
|
||||
VDash_ = set_.V();
|
||||
break;
|
||||
case volumeMode::specific:
|
||||
VDash_ = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
// Set field source terms
|
||||
fieldSp_.clear();
|
||||
fieldSu_.clear();
|
||||
@ -142,9 +131,21 @@ void Foam::fv::semiImplicitSource::addSupType
|
||||
false
|
||||
);
|
||||
|
||||
// Set volume normalisation
|
||||
scalar VDash = NaN;
|
||||
switch (volumeMode_)
|
||||
{
|
||||
case volumeMode::absolute:
|
||||
VDash = set_.V();
|
||||
break;
|
||||
case volumeMode::specific:
|
||||
VDash = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
// Explicit source function for the field
|
||||
UIndirectList<Type>(Su, set_.cells()) =
|
||||
fieldSu_[fieldName]->value<Type>(t)/VDash_;
|
||||
fieldSu_[fieldName]->value<Type>(t)/VDash;
|
||||
|
||||
volScalarField::Internal Sp
|
||||
(
|
||||
@ -168,7 +169,7 @@ void Foam::fv::semiImplicitSource::addSupType
|
||||
|
||||
// Implicit source function for the field
|
||||
UIndirectList<scalar>(Sp, set_.cells()) =
|
||||
fieldSp_[fieldName]->value(t)/VDash_;
|
||||
fieldSp_[fieldName]->value(t)/VDash;
|
||||
|
||||
eqn += Su + fvm::SuSp(Sp, psi);
|
||||
}
|
||||
@ -211,8 +212,7 @@ Foam::fv::semiImplicitSource::semiImplicitSource
|
||||
:
|
||||
fvModel(name, modelType, dict, mesh),
|
||||
set_(coeffs(), mesh),
|
||||
volumeMode_(volumeMode::absolute),
|
||||
VDash_(1)
|
||||
volumeMode_(volumeMode::absolute)
|
||||
{
|
||||
readCoeffs();
|
||||
}
|
||||
@ -251,6 +251,13 @@ void Foam::fv::semiImplicitSource::updateMesh(const mapPolyMesh& mpm)
|
||||
}
|
||||
|
||||
|
||||
bool Foam::fv::semiImplicitSource::movePoints()
|
||||
{
|
||||
set_.movePoints();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
bool Foam::fv::semiImplicitSource::read(const dictionary& dict)
|
||||
{
|
||||
if (fvModel::read(dict))
|
||||
|
||||
@ -137,9 +137,6 @@ private:
|
||||
//- Volume mode
|
||||
volumeMode volumeMode_;
|
||||
|
||||
//- Volume normalisation
|
||||
scalar VDash_;
|
||||
|
||||
//- Explicit parts of the sources
|
||||
HashPtrTable<objectFunction1> fieldSu_;
|
||||
|
||||
@ -226,6 +223,9 @@ public:
|
||||
//- Update for mesh changes
|
||||
virtual void updateMesh(const mapPolyMesh&);
|
||||
|
||||
//- Update for mesh motion
|
||||
virtual bool movePoints();
|
||||
|
||||
|
||||
// IO
|
||||
|
||||
|
||||
Reference in New Issue
Block a user