Class BelowgroundAllocationFactor
- All Implemented Interfaces:
net.simplace.sim.util.FWSimFieldContainer
The module uses a straigthforward approach:
- Root Length Densities (RLD) and Root Restriction Factors (RRF) are scaled according to the area covered by each crop
- Common RLD and RRF are just the sum of the scaled RLDs and RRFs
- Below ground allocation factors are proportional to the scaled RRFs
Calculation
Root Length Densities per layer $rld_{1,i}, rld_{2,i}$ and are scaled to the coresponding area fractions $a_1, a_2$ occupied by the two crops and the sum of both is calculated.
\[ rld_i = rld_{1,i} \cdot a_1 + rld_{2,i} \cdot a_2 \]
Same holds for Root Restriction Factors per Layer $rrf_{1,i}, rrf_{2,i}$ \[ rrf_i = rrf_{1,i} \cdot a_1 + rrf_{2,i} \cdot a_2 \]
The maximum rooted layer is the biggest layer number, where Root Length Density is greater than 0. \[ n_{max} = max\{i | rld_i > 0\} \]
To calculate the allocations factors $f_1, f_2$, first the total sum of root restriction factors is calculated \[ s = \sum_i rrf_{1_i} + \sum_i rrf_{2,i} \]
then the factor per layer is the root restriction factor per layer divided by the sum
\[ f_{1,i} = \frac{rff_{1,i}}{s} \quad \quad f_{2,i} = \frac{rff_{2,i}}{s} \]
To get the total factors, the factor per per layers are summed up
\[ f_1 = \sum_i f_{1,i} \quad \quad f_2 = \sum_i f_{2,i} \]
References
- Author:
- G. Krauss
- See Also:
Component Variables
Content Type | Name | Description | Data Type | Unit | Min Value | Max Value | Default Value |
---|---|---|---|---|---|---|---|
constant | cAreaFraction1 | Area fraction covered by crop 1 | DOUBLE | 1 | 0.0 | 1.0 | 0.0 |
constant | cAreaFraction2 | Area fraction covered by crop 2 | DOUBLE | 1 | 0.0 | 1.0 | 0.0 |
input | iRootDepth1 | Root depth of crop 1 | DOUBLE | m | 0.0 | - | 0.0 |
input | iRootDepth2 | Root depth of crop 2 | DOUBLE | m | 0.0 | - | 0.0 |
input | iRootLength1 | Root length per layer of crop 1 | DOUBLEARRAY | m | 0.0 | - | - |
input | iRootLength2 | Root length per layer of crop 2 | DOUBLEARRAY | m | 0.0 | - | - |
input | iRootLengthDensity1 | Root length density per layer of crop 1 | DOUBLEARRAY | cm/cm3 | 0.0 | - | - |
input | iRootLengthDensity2 | Root length density per layer of crop 2 | DOUBLEARRAY | cm/cm3 | 0.0 | - | - |
input | iRootRestrictionFactor1 | root restriction factor per layer of crop 1 | DOUBLEARRAY | 1 | 0.0 | - | - |
input | iRootRestrictionFactor2 | root restriction factor per layer of crop 2 | DOUBLEARRAY | 1 | 0.0 | - | - |
out | Factor1 | Below ground allocation factor for crop 1 | DOUBLE | 1 | 0.0 | 1.0 | 0.0 |
out | Factor1PerLayer | Below ground allocation factor for crop 1 per layer | DOUBLEARRAY | 1 | 0.0 | 1.0 | - |
out | Factor2 | Below ground allocation factor for crop 2 | DOUBLE | 1 | 0.0 | 1.0 | 0.0 |
out | Factor2PerLayer | Below ground allocation factor for crop 2 per layer | DOUBLEARRAY | 1 | 0.0 | 1.0 | - |
out | MD95 | Highest layer number that contains roots (counting from 1) | INT | 0 | - | 0 | |
out | MaxRootedLayerNumber | Highest layer number that contains roots (counting from 0) | INT | 0 | - | 0 | |
out | RootDepth | Root depth | DOUBLE | m | 0.0 | - | 0.0 |
out | RootLength | Root length per layer of both crops | DOUBLEARRAY | m | 0.0 | - | - |
out | RootLengthDensity | Root length density per layer of both crops | DOUBLEARRAY | cm/cm3 | 0.0 | - | - |
out | RootRestrictionFactor | Averaged root restriction factor per layer of both crops | DOUBLEARRAY | 1 | 0.0 | - | - |
-
Nested Class Summary
Nested classes/interfaces inherited from class net.simplace.sim.model.FWSimComponent
net.simplace.sim.model.FWSimComponent.TEST_STATE
-
Field Summary
Fields inherited from class net.simplace.sim.model.FWSimComponent
iFieldMap, iFrequence, iInputMap, iJexlRule, iMasterComponentGroup, iName, iOrderNumber, isComponentGroup, iSimComponentElement, iSimModel, iVarMap
-
Constructor Summary
ModifierConstructorDescriptioncalled from class.forName()protected
BelowgroundAllocationFactor
(String aName, HashMap<String, net.simplace.sim.util.FWSimVariable<?>> aFieldMap, HashMap<String, String> aInputMap, org.jdom2.Element aSimComponentElement, net.simplace.sim.util.FWSimVarMap aVarMap, int aOrderNumber) -
Method Summary
Modifier and TypeMethodDescriptionprotected net.simplace.sim.model.FWSimComponent
clone
(net.simplace.sim.util.FWSimVarMap aVarMap) fillTestVariables
(int aParamIndex, net.simplace.sim.model.FWSimComponent.TEST_STATE aDefineOrCheck) called for single component test to check the components algorithm.protected void
init()
protected void
protected void
process()
Methods inherited from class net.simplace.sim.model.FWSimComponent
addVariable, bind, checkCondition, createSimComponent, createSimComponent, createSimComponent, createSimComponent, doProcess, getConstantVariables, getContentType, getCreateFormXML, getDescription, getEditFormXML, getFieldMap, getFrequence, getFrequenceRuleScript, getInputs, getInputVariables, getMasterComponentGroup, getName, getOrderNumber, getOutputVariables, getVariable, getVariableField, getVarMap, initialize, isConditionCheck, isVariableAvailable, performLinks, performLinks, readInputs, removeVariable, reset, runComponentTest, setVariablesDefault, toComponentLinkingXML, toDocXML, toGroupXML, toOutputDefinitionXML, toResourcesDataXML, toResourcesDefinitionXML, toString, toXML, writeVarInfos
-
Constructor Details
-
BelowgroundAllocationFactor
protected BelowgroundAllocationFactor(String aName, HashMap<String, net.simplace.sim.util.FWSimVariable<?>> aFieldMap, HashMap<String, String> aInputMap, org.jdom2.Element aSimComponentElement, net.simplace.sim.util.FWSimVarMap aVarMap, int aOrderNumber) - Parameters:
aName
-aFieldMap
-aInputMap
-aSimComponentElement
-aVarMap
-aOrderNumber
-
-
BelowgroundAllocationFactor
public BelowgroundAllocationFactor()called from class.forName()
-
-
Method Details
-
createVariables
- Specified by:
createVariables
in interfacenet.simplace.sim.util.FWSimFieldContainer
- Specified by:
createVariables
in classnet.simplace.sim.model.FWSimComponent
-
init
protected void init()- Specified by:
init
in classnet.simplace.sim.model.FWSimComponent
-
initVariables
protected void initVariables() -
process
protected void process()- Specified by:
process
in classnet.simplace.sim.model.FWSimComponent
-
fillTestVariables
public HashMap<String,net.simplace.sim.util.FWSimVariable<?>> fillTestVariables(int aParamIndex, net.simplace.sim.model.FWSimComponent.TEST_STATE aDefineOrCheck) called for single component test to check the components algorithm.- Specified by:
fillTestVariables
in classnet.simplace.sim.model.FWSimComponent
- See Also:
-
net.simplace.sim.util.FWSimFieldContainer#fillTestVariables(int aParamIndex, TEST_STATE aDefineOrCheck)
-
clone
protected net.simplace.sim.model.FWSimComponent clone(net.simplace.sim.util.FWSimVarMap aVarMap) - Specified by:
clone
in classnet.simplace.sim.model.FWSimComponent
- See Also:
-
FWSimComponent.clone(net.simplace.sim.util.FWSimVarMap)
-