mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: Added optional offset to timeVaryingMapped BC
This commit is contained in:
@ -52,7 +52,8 @@ timeVaryingMappedFixedValueFvPatchField
|
|||||||
startAverage_(pTraits<Type>::zero),
|
startAverage_(pTraits<Type>::zero),
|
||||||
endSampleTime_(-1),
|
endSampleTime_(-1),
|
||||||
endSampledValues_(0),
|
endSampledValues_(0),
|
||||||
endAverage_(pTraits<Type>::zero)
|
endAverage_(pTraits<Type>::zero),
|
||||||
|
offSet_()
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -77,7 +78,8 @@ timeVaryingMappedFixedValueFvPatchField
|
|||||||
startAverage_(pTraits<Type>::zero),
|
startAverage_(pTraits<Type>::zero),
|
||||||
endSampleTime_(-1),
|
endSampleTime_(-1),
|
||||||
endSampledValues_(0),
|
endSampledValues_(0),
|
||||||
endAverage_(pTraits<Type>::zero)
|
endAverage_(pTraits<Type>::zero),
|
||||||
|
offSet_()
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -101,7 +103,8 @@ timeVaryingMappedFixedValueFvPatchField
|
|||||||
startAverage_(pTraits<Type>::zero),
|
startAverage_(pTraits<Type>::zero),
|
||||||
endSampleTime_(-1),
|
endSampleTime_(-1),
|
||||||
endSampledValues_(0),
|
endSampledValues_(0),
|
||||||
endAverage_(pTraits<Type>::zero)
|
endAverage_(pTraits<Type>::zero),
|
||||||
|
offSet_(DataEntry<Type>::New("offSet", dict))
|
||||||
{
|
{
|
||||||
dict.readIfPresent("fieldTableName", fieldTableName_);
|
dict.readIfPresent("fieldTableName", fieldTableName_);
|
||||||
|
|
||||||
@ -134,7 +137,8 @@ timeVaryingMappedFixedValueFvPatchField
|
|||||||
startAverage_(ptf.startAverage_),
|
startAverage_(ptf.startAverage_),
|
||||||
endSampleTime_(ptf.endSampleTime_),
|
endSampleTime_(ptf.endSampleTime_),
|
||||||
endSampledValues_(ptf.endSampledValues_),
|
endSampledValues_(ptf.endSampledValues_),
|
||||||
endAverage_(ptf.endAverage_)
|
endAverage_(ptf.endAverage_),
|
||||||
|
offSet_(ptf.offSet_().clone().ptr())
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -158,7 +162,8 @@ timeVaryingMappedFixedValueFvPatchField
|
|||||||
startAverage_(ptf.startAverage_),
|
startAverage_(ptf.startAverage_),
|
||||||
endSampleTime_(ptf.endSampleTime_),
|
endSampleTime_(ptf.endSampleTime_),
|
||||||
endSampledValues_(ptf.endSampledValues_),
|
endSampledValues_(ptf.endSampledValues_),
|
||||||
endAverage_(ptf.endAverage_)
|
endAverage_(ptf.endAverage_),
|
||||||
|
offSet_(ptf.offSet_().clone().ptr())
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -276,7 +281,7 @@ void timeVaryingMappedFixedValueFvPatchField<Type>::checkTable()
|
|||||||
{
|
{
|
||||||
FatalErrorIn
|
FatalErrorIn
|
||||||
(
|
(
|
||||||
"timeVaryingMappedFixedValueFvPatchField<Type>::checkTable"
|
"timeVaryingMappedFixedValueFvPatchField<Type>::checkTable()"
|
||||||
) << "Cannot find starting sampling values for current time "
|
) << "Cannot find starting sampling values for current time "
|
||||||
<< this->db().time().value() << nl
|
<< this->db().time().value() << nl
|
||||||
<< "Have sampling values for times "
|
<< "Have sampling values for times "
|
||||||
@ -366,6 +371,7 @@ void timeVaryingMappedFixedValueFvPatchField<Type>::checkTable()
|
|||||||
/sampleTimes_[endSampleTime_].name()
|
/sampleTimes_[endSampleTime_].name()
|
||||||
<< endl;
|
<< endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reread values and interpolate
|
// Reread values and interpolate
|
||||||
AverageIOField<Type> vals
|
AverageIOField<Type> vals
|
||||||
(
|
(
|
||||||
@ -392,7 +398,6 @@ void timeVaryingMappedFixedValueFvPatchField<Type>::checkTable()
|
|||||||
template<class Type>
|
template<class Type>
|
||||||
void timeVaryingMappedFixedValueFvPatchField<Type>::updateCoeffs()
|
void timeVaryingMappedFixedValueFvPatchField<Type>::updateCoeffs()
|
||||||
{
|
{
|
||||||
|
|
||||||
if (this->updated())
|
if (this->updated())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
@ -423,7 +428,7 @@ void timeVaryingMappedFixedValueFvPatchField<Type>::updateCoeffs()
|
|||||||
scalar start = sampleTimes_[startSampleTime_].value();
|
scalar start = sampleTimes_[startSampleTime_].value();
|
||||||
scalar end = sampleTimes_[endSampleTime_].value();
|
scalar end = sampleTimes_[endSampleTime_].value();
|
||||||
|
|
||||||
scalar s = (this->db().time().value()-start)/(end-start);
|
scalar s = (this->db().time().value() - start)/(end - start);
|
||||||
|
|
||||||
if (debug)
|
if (debug)
|
||||||
{
|
{
|
||||||
@ -434,8 +439,8 @@ void timeVaryingMappedFixedValueFvPatchField<Type>::updateCoeffs()
|
|||||||
<< " with weight:" << s << endl;
|
<< " with weight:" << s << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
this->operator==((1-s)*startSampledValues_ + s*endSampledValues_);
|
this->operator==((1 - s)*startSampledValues_ + s*endSampledValues_);
|
||||||
wantedAverage = (1-s)*startAverage_ + s*endAverage_;
|
wantedAverage = (1 - s)*startAverage_ + s*endAverage_;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Enforce average. Either by scaling (if scaling factor > 0.5) or by
|
// Enforce average. Either by scaling (if scaling factor > 0.5) or by
|
||||||
@ -465,7 +470,7 @@ void timeVaryingMappedFixedValueFvPatchField<Type>::updateCoeffs()
|
|||||||
Pout<< "updateCoeffs :"
|
Pout<< "updateCoeffs :"
|
||||||
<< " offsetting with:" << offset << endl;
|
<< " offsetting with:" << offset << endl;
|
||||||
}
|
}
|
||||||
this->operator==(fld+offset);
|
this->operator==(fld + offset);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -480,6 +485,10 @@ void timeVaryingMappedFixedValueFvPatchField<Type>::updateCoeffs()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// apply offset to mapped values
|
||||||
|
const scalar t = this->db().time().timeOutputValue();
|
||||||
|
this->operator==(*this + offSet_->value(t));
|
||||||
|
|
||||||
if (debug)
|
if (debug)
|
||||||
{
|
{
|
||||||
Pout<< "updateCoeffs : set fixedValue to min:" << gMin(*this)
|
Pout<< "updateCoeffs : set fixedValue to min:" << gMin(*this)
|
||||||
@ -503,6 +512,8 @@ void timeVaryingMappedFixedValueFvPatchField<Type>::write(Ostream& os) const
|
|||||||
<< token::END_STATEMENT << nl;
|
<< token::END_STATEMENT << nl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
offSet_->writeData(os);
|
||||||
|
|
||||||
this->writeEntry("value", os);
|
this->writeEntry("value", os);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -80,6 +80,7 @@ SourceFiles
|
|||||||
#include "FixedList.H"
|
#include "FixedList.H"
|
||||||
#include "instantList.H"
|
#include "instantList.H"
|
||||||
#include "pointToPointPlanarInterpolation.H"
|
#include "pointToPointPlanarInterpolation.H"
|
||||||
|
#include "DataEntry.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -130,6 +131,9 @@ class timeVaryingMappedFixedValueFvPatchField
|
|||||||
//- If setAverage: end average value
|
//- If setAverage: end average value
|
||||||
Type endAverage_;
|
Type endAverage_;
|
||||||
|
|
||||||
|
//- Time varying offset values to interpolated data
|
||||||
|
autoPtr<DataEntry<Type> > offSet_;
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user