Rev 662 | Rev 671 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 662 | Rev 664 | ||
---|---|---|---|
Line 83... | Line 83... | ||
83 | if (mSoil && Model::settings().useDynamicAvailableNitrogen && Model::settings().carbonCycleEnabled) { |
83 | if (mSoil && Model::settings().useDynamicAvailableNitrogen && Model::settings().carbonCycleEnabled) { |
84 | mSoil->setClimateFactor(1.); |
84 | mSoil->setClimateFactor(1.); |
85 | mSoil->calculateYear(); |
85 | mSoil->calculateYear(); |
86 | mUnitVariables.nitrogenAvailable = mSoil->availableNitrogen(); |
86 | mUnitVariables.nitrogenAvailable = mSoil->availableNitrogen(); |
87 | }
|
87 | }
|
- | 88 | mHasDeadTrees = false; |
|
88 | mAverageAging = 0.; |
89 | mAverageAging = 0.; |
89 | 90 | ||
90 | }
|
91 | }
|
91 | void ResourceUnit::setBoundingBox(const QRectF &bb) |
92 | void ResourceUnit::setBoundingBox(const QRectF &bb) |
92 | {
|
93 | {
|
Line 143... | Line 144... | ||
143 | /// tests showed that this way of cleanup is very fast,
|
144 | /// tests showed that this way of cleanup is very fast,
|
144 | /// because no memory allocations are performed (simple memmove())
|
145 | /// because no memory allocations are performed (simple memmove())
|
145 | /// when trees are moved.
|
146 | /// when trees are moved.
|
146 | void ResourceUnit::cleanTreeList() |
147 | void ResourceUnit::cleanTreeList() |
147 | {
|
148 | {
|
- | 149 | if (!mHasDeadTrees) |
|
- | 150 | return; |
|
- | 151 | ||
148 | QVector<Tree>::iterator last=mTrees.end()-1; |
152 | QVector<Tree>::iterator last=mTrees.end()-1; |
149 | QVector<Tree>::iterator current = mTrees.begin(); |
153 | QVector<Tree>::iterator current = mTrees.begin(); |
150 | while (last>=current && (*last).isDead()) |
154 | while (last>=current && (*last).isDead()) |
151 | --last; |
155 | --last; |
152 | 156 | ||
Line 167... | Line 171... | ||
167 | if (mTrees.capacity()>100) { |
171 | if (mTrees.capacity()>100) { |
168 | if (mTrees.count() / double(mTrees.capacity()) < 0.2) { |
172 | if (mTrees.count() / double(mTrees.capacity()) < 0.2) { |
169 | //int target_size = mTrees.count()*2;
|
173 | //int target_size = mTrees.count()*2;
|
170 | //qDebug() << "reduce size from "<<mTrees.capacity() << "to" << target_size;
|
174 | //qDebug() << "reduce size from "<<mTrees.capacity() << "to" << target_size;
|
171 | //mTrees.reserve(qMax(target_size, 100));
|
175 | //mTrees.reserve(qMax(target_size, 100));
|
172 | qDebug() << "reduce tree storage of RU" << index() << " from " << mTrees.capacity() << "to" << mTrees.count(); |
- | |
- | 176 | if (logLevelDebug()) |
|
- | 177 | qDebug() << "reduce tree storage of RU" << index() << " from " << mTrees.capacity() << "to" << mTrees.count(); |
|
173 | mTrees.squeeze(); |
178 | mTrees.squeeze(); |
174 | }
|
179 | }
|
175 | }
|
180 | }
|
176 | }
|
181 | }
|
- | 182 | mHasDeadTrees = false; // reset flag |
|
177 | }
|
183 | }
|
178 | 184 | ||
179 | void ResourceUnit::newYear() |
185 | void ResourceUnit::newYear() |
180 | {
|
186 | {
|
181 | mAggregatedWLA = 0.; |
187 | mAggregatedWLA = 0.; |