Rev |
Age |
Author |
Path |
Log message |
Diff |
720 |
4540d 18h |
werner |
/trunk/src/ |
fixed a problem when trees died in disturbance and the (unupdated) statistics were used (e.g. the LAI for calculating the water cycle). Now for affected resource units, not only the treelists but also the RU-statistics are updated.
implemented a "radiating" mechanism of border cells. If stand-grid-cells (i.e. 10m height grid resolution) are marked as "outside and forest", then the cells "radiate" some influence on the LIF into the project area. Thus, trees on the edge of the project do *not* have properties of trees standing on a stand edge. Currently, the form/amount of this edge-effect is hard coded. |
|
718 |
4546d 01h |
werner |
/trunk/src/ |
implemented effect of out-of-project area lif to border regions; however the result is not as expected... (Tree::readLIF() function). |
|
714 |
4554d 19h |
werner |
/trunk/src/ |
continued to work on the wind module. Moreover, we now have two types of "not in project area" pixels;
There were some tries regarding the performance of the wind module. At first for each 10m pixel all trees were selected within the pixel; this proved to be quite time consuming. In the end, these calculations (i.e. select the tallest tree per 10m pixel, and the species of this tree) are done in the beginning (per resource unit). This is about 10 times faster... |
|
713 |
4555d 05h |
werner |
/trunk/src/ |
implemented a way to split the biomass of a dead tree into several pathways (i.e. to soil, to snags, to atmosphere/removal). |
|
707 |
4593d 02h |
werner |
/trunk/src/ |
rework of the random numbers in iland.
Now, many (200000) random numbers are precalculated using a given algorithm (there are three or four choices), then the drandom() etc functions read from this array. After some rotations, the numbers are renewed. The point is: this is now reentrant, so the per-thread storage of MTRand objects is obsolete. |
|
706 |
4593d 19h |
werner |
/trunk/src/ |
some performance tests with random number generators. Results so far are not too indicative. |
|
705 |
4593d 21h |
werner |
/trunk/src/ |
series of performance tests / modifications.
Using "valgrind" on the linux virtual machine, some performance
measurements were made.
Some candidates for optimization were tested. (1) the applyLIP()
function (about 30% of total run time in runYear()): here several
inlining options were tested; testing the value of the stamp before
using it (in order to omit the other steps) prooved to be slower than
unsing all stamp values.
(2) the random number generator; here the random number generation is
about 5% of the total run time; the commit contains two/three other
variants. |
|
697 |
4601d 21h |
werner |
/trunk/ |
Doxygen documentation revisited.
After re-establishing doxygen documentation (last update: 2009) a lot of smaller/medium documentation fixes.
Documentation is something that could definitely be always improved ;) |
|
671 |
4645d 01h |
werner |
/trunk/src/ |
Necessary changes for GPL licence (i.e. headers in all source files) |
|
668 |
4680d 05h |
werner |
/trunk/src/ |
added additional settings for carbon balance of burned trees.
close to version 0.7.0 |
|
667 |
4680d 09h |
werner |
/trunk/src/ |
finetuning of fire module (new species parameters, xml file parameters, ...) |
|
664 |
4687d 00h |
werner |
/trunk/src/ |
fixes in the fire module |
|
639 |
4805d 22h |
werner |
/ |
move current content to the "trunk" |
|
615 |
4865d 02h |
werner |
/src/ |
removed windows specific _isnan() calls |
|
608 |
4871d 07h |
werner |
/src/ |
adding carbon cycle output (and some necessary book keeping code) |
|
595 |
4889d 07h |
werner |
/src/core/ |
changed behavior of coarse roots: if biomass exceeds value from allometric relation, the excell biomass is pushed to the soil (avoid piling up of coarse root carbon in the soil)
inlined some biomass functions in species.h. |
|
588 |
4903d 05h |
werner |
/src/core/ |
added carbon-bookkeeping in the regeneration layer. |
|
579 |
4905d 20h |
werner |
/src/core/ |
plenty of new/modified functions in the javascript interface of the management class. e.g. randomize(), mean(), sum(), new kill() and manage() functions. |
|
564 |
4916d 22h |
werner |
/src/ |
Improvements of the Management API and functionality.
new functionality:
* killSaplings() -> use a "MapGrid" and remove small trees specifically
* properties defining biomass remove fractions during management
Now the tree list of the management object is cleaned up after a management, i.e. successive managements without reloading the tree list are possible. |
|
521 |
4966d 03h |
werner |
/src/ |
moved snag dynamics from rus-level to ru-level |
|
513 |
4987d 01h |
werner |
/src/core/ |
fixed a nasty bug: if one tree species succeeded to establish on a formerly empty RU, the saplings of other species were killed (well, not directly, but the environment was not recalculated leading to a f_env value of 0). |
|
505 |
4995d 20h |
werner |
/src/core/ |
fix crash small stamps for Acma. |
|
497 |
5013d 02h |
werner |
/src/ |
tried some possibilities to eliminate "strange" crashes when simulating very for a long time. Ended up with adding additional "pause" between every 50 year or so (see modelcontroller.cpp); this helps at least a little.
also updated the expression-linearization |
|
488 |
5015d 18h |
werner |
/ |
new version including several bug fixes and improvements for the regeneration / sapling growth submodule, as well as some performance optimizations. |
|
486 |
5015d 23h |
werner |
/src/ |
Expression: extended linearization range to the upper limit (it is a
typical use to linearize e.g. from 0..1 -> 1 should be included)
removed some warnings that came up when compiling in linux
added a setlocale()-function in main(). This was because otherwise the
"atof"-call when parsing Expressions cut off the fraction part (i.e.
converted "0.285" to "0") (used in Linux german locale) |
|
482 |
5016d 04h |
werner |
/src/core/ |
fixed bug that recruited trees modified the average aging calculation; added some diagnostic code here and there. |
|
476 |
5017d 03h |
werner |
/src/ |
added snag debug output to the gui
corrected calculation of branch biomass in Tree |
|
470 |
5021d 07h |
werner |
/src/core/ |
add light response function to sapling growth (rest: constness of lightresponse function calls) |
|
468 |
5022d 01h |
werner |
/src/ |
starting the implementation of the snag dynamics submodule.
New class: Snag
added Snag to ResourceUnitSpecies
added links to Snag in Tree |
|
465 |
5022d 08h |
werner |
/src/core/ |
fixed bug in TACA model calculating fEnvYr. |
|
463 |
5022d 19h |
werner |
/src/core/ |
To handle errors in diameter estimation for small trees, an iterative algorithm is used if the "final residual" (between NPP based stem biomass increment and realized stem increment) is > 1kg. |
|
460 |
5022d 22h |
werner |
/src/ |
changed label in regeneration debug output,
added minimum height of 4m as requirement for seed production. |
|
445 |
5122d 07h |
werner |
/src/core/ |
added database species parameters for seed dispersal, fixed a bug with random generator in StandLoader, change maturity criterion for seed production to age instead of height. |
|
444 |
5124d 02h |
werner |
/src/core/ |
added a "randomGenerator" - function to the resource unit -> this should be used when fetching random numbers from within functions that are executed in a multi-threaded way. You could also use GlobalSettings::instance()->randomGenerator(). |
|
428 |
5153d 04h |
werner |
/src/ |
added linearization for some expressions (e.g. light response), and a global switch to enabled/disable the linerization using one static boolean (triggered by a iland setting) |
|
426 |
5154d 04h |
werner |
/src/core/ |
added the LRImodifier key, which is used to scale down the LRI of small trees that are below very high trees. |
|
410 |
5155d 19h |
werner |
/ |
height grid: removed 5m from neighboring height grid pixels
new version of fonstudio (log output again to log window) |
|
407 |
5156d 04h |
werner |
/src/ |
modified the painting of trees (use now the crown radius)
tried to fix the database lock error when reloading the model (not solved: but: no problem when model was executed for at least one year...) |
|
406 |
5156d 08h |
werner |
/src/core/ |
set ground height of height grid to 4m (model.cpp)
modified height-grid-apply (non-torus) so that height-grid pixels get max()-ed if the reader stamp reaches into the neighbor pixels (i.e. the crown reaches the neighbor 10m pixel) |
|
403 |
5159d 00h |
werner |
/src/ |
Tree::applyLIP(): fixed bug with the indices
applyLIP/readLIF: changed way of applying/reading LIPs. Version where hdom is only set at the focal height pixel.
model.h/model.cpp: tried a version with a init-value for height of height grid |
|