View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002459 | OpenFOAM | Bug | public | 2017-02-13 18:09 | 2017-03-20 17:31 |
Reporter | michael2015 | Assigned To | henry | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Summary | 0002459: fieldAverage function object is wrongly initialized for variable time step sizes | ||||
Description | For a variable time step size the totalTime is initialized with the first time step size deltaT. I guess it happens in the function void Foam::functionObjects::fieldAverage::readAveragingProperties() { totalTime_.setSize(faItems_.size(), obr_.time().deltaTValue()); I set the timeStart in the controlDict to 87. For my case the deltaT value at timeStart was quite different from the initial time step size (a factor 10 heigher). So the averaged velocity computed at the first averaging step was not equal to the velocity at the time of the first averaging step. since the factors in fieldAverageTemplates.C scalar dt = obr_.time().deltaTValue(); scalar Dt = totalTime_[fieldi]; where not the same at the very first averaging step. When I initialized the totalTime_[fieldi] list with the deltaT value at the averaging start the very first mean velocity was equal to the current velocity. | ||||
Tags | No tags attached. | ||||
|
It is not clear from your description where you set totalTime_[fieldi], how does it interact with restart for which totalTime_ is read from dictionary? |
|
The inialize function looks like this: void Foam::fieldAverage::initialize() { resetFields(); Info<< type() << " " << name_ << ":" << nl; // Add mean fields to the field lists forAll(faItems_, fieldI) { addMeanField<scalar>(fieldI); addMeanField<vector>(fieldI); addMeanField<sphericalTensor>(fieldI); addMeanField<symmTensor>(fieldI); addMeanField<tensor>(fieldI); } // Add prime-squared mean fields to the field lists forAll(faItems_, fieldI) { addPrime2MeanField<scalar, scalar>(fieldI); addPrime2MeanField<vector, symmTensor>(fieldI); } forAll(faItems_, fieldI) { if (!faItems_[fieldI].active()) { WarningIn("void Foam::fieldAverage::initialize()") << "Field " << faItems_[fieldI].fieldName() << " not found in database for averaging"; } } // intialize also total time and set it the current deltaT forAll(faItems_, fieldI) { totalTime_[fieldI] = obr_.time().deltaTValue(); } // ensure first averaging works unconditionally prevTimeIndex_ = -1; Info<< endl; initialised_ = true; } |
|
the totalTime_[fieldI] should be initialized with the current obr_.time().deltaTValue() value. otherwise the averaging could be wrong |
|
Your proposal overrides the values set by readAveragingProperties() called by read(), setting the appropriate values when you restart the run. Have you tried restarting a case and checked that the averaging restarts? |
|
you're right. when the properties are read the totalTime is overwritten. What do you suggest? |
|
an option would be to initialize the toalTime only if the properties are not read. |
|
I am testing a possible solution to this problem at the moment, I will push into OpenFOAM-dev when the tests are complete. |
|
Resolved in OpenFOAM-dev by commit ed488cb83e3c869ea660c6f35809e6208339211d Could you test this fix and let me know if it is OK for cases. If all is well I will apply the same change to OpenFOAM-4.x. |
|
I tested the initialization and it worked fine. |
|
Resolved in OpenFOAM-4.x by commit 38af843e10baafffd239ac134b6fb38de293c1c3 Resolved in OpenFOAM-dev by commit ed488cb83e3c869ea660c6f35809e6208339211d |
Date Modified | Username | Field | Change |
---|---|---|---|
2017-02-13 18:09 | michael2015 | New Issue | |
2017-03-09 16:43 | henry | Note Added: 0007873 | |
2017-03-09 16:51 | michael2015 | Note Added: 0007874 | |
2017-03-09 16:53 | michael2015 | Note Added: 0007875 | |
2017-03-09 16:59 | henry | Note Added: 0007877 | |
2017-03-09 17:11 | michael2015 | Note Added: 0007881 | |
2017-03-09 17:20 | michael2015 | Note Added: 0007882 | |
2017-03-09 17:41 | henry | Note Added: 0007884 | |
2017-03-09 17:47 | henry | Note Added: 0007885 | |
2017-03-20 16:55 | michael2015 | Note Added: 0007950 | |
2017-03-20 17:31 | henry | Assigned To | => henry |
2017-03-20 17:31 | henry | Status | new => resolved |
2017-03-20 17:31 | henry | Resolution | open => fixed |
2017-03-20 17:31 | henry | Fixed in Version | => 4.x |
2017-03-20 17:31 | henry | Note Added: 0007951 |