Class SlimPhosphorus
java.lang.Object
net.simplace.sim.model.FWSimComponent
net.simplace.sim.components.experimental.slim.SlimPhosphorus
- All Implemented Interfaces:
net.simplace.sim.util.FWSimFieldContainer
public class SlimPhosphorus
extends net.simplace.sim.model.FWSimComponent
Calculates P leaching, plant availability and uptake and transition between
dissolved, active and fixed phosphorus.
Calculation
For details see also SlimPhosphorusFunctions (link to its documentation below the variables table).
On initialisation
- Initializes pools by calculating amounts from concentration (AmountFromConcentration()).
- Calculates coefficients for the flows (CalculateFlowCoefficients()), depending on the soil type.
Daily calculation
- Adds mineralisation (from input) and fertilizer to dissolved P.
- Calculates interchange between dissolved, active and fixed pool (PoolsInterchange()).
- Calculates leaching (Leaching()).
- Calculates plant available P and peforms the uptake (Avail() and Uptake()).
- Calculates rates, states, P balance and concentrations from amounts (ConcentrationFromAmount()).
References
- (1) Williams, Izaurralde: The apex model
- (2) Fortrancode of the EPIC model
- Author:
- G. Krauss
- See Also:
Component Variables
Content Type | Name | Description | Data Type | Unit | Min Value | Max Value | Default Value |
---|---|---|---|---|---|---|---|
constant | cBSA | Base saturation by the ammonium acetate method | DOUBLEARRAY | % | - | - | - |
constant | cBulkDensity | Bulk density of soil | DOUBLEARRAY | g/cm3 | 0.0 | - | - |
constant | cCaCO3 | CaCO3 concentration per layer | DOUBLEARRAY | % | 0.0 | - | - |
constant | cClay | Clay content per layer | DOUBLEARRAY | % | 0.0 | 1.0 | - |
constant | cDegreeOfWeathering | Type/weathering degree of soil: 0=calcareous, 1:slightly weathered, 2: moderately weathered, 3: highty weathered | INT | - | - | - | 0 |
constant | cInitialAdsorbedPConcentration | Initial adsorbed P concentration per layer | DOUBLEARRAY | ppm | 0.0 | - | - |
constant | cInitialDissolvedPConcentration | Initial dissolved P concentration per layer | DOUBLEARRAY | ppm | 0.0 | - | - |
constant | cInitialFixedPConcentration | Initial fixed P concentration per layer | DOUBLEARRAY | ppm | 0.0 | - | - |
constant | cLowerBoundaryPConcentration | P concentration in the lower boundary of the soil profile | DOUBLE | g/l | 0.0 | 1000.0 | 0.0 |
constant | cPH | pH value of soil per layer | DOUBLEARRAY | 1 | 0.0 | 14.0 | - |
constant | cRootMaxPUptakeRate | Maximum uptake rate per one metre root | DOUBLE | g/m | - | - | 0.0 |
constant | cSoilLayerDepth | Depth of lower layer boundary for each layer | DOUBLEARRAY | m | 0.0 | - | - |
input | iDoInitialize | Switch to re-initialize the model with initial values. | BOOLEAN | 1 | - | - | false |
input | iMineralizedPRate | Daily Mineralized P per layer | DOUBLEARRAY | g/(m2 d) | - | - | - |
input | iPDemand | P demand by the plant | DOUBLE | g/(m2 d) | - | - | 0.0 |
input | iPFertilizer | P fertilizer | DOUBLE | g/(m2 d) | - | - | 0.0 |
input | iRootLength | Root length per layer | DOUBLEARRAY | m | - | - | - |
input | iWaterContent | Total water content per layer | DOUBLEARRAY | mm | - | - | - |
input | iWaterFlow | Daily water flow from a layer to the neighbour layer below | DOUBLEARRAY | mm/d | - | - | - |
state | sAdsorbedP | Adsorbed P per layer | DOUBLEARRAY | g/m2 | 0.0 | - | - |
state | sDissolvedP | Dissolved P per layer | DOUBLEARRAY | g/m2 | 0.0 | - | - |
state | sFixedP | Fixed P per layer | DOUBLEARRAY | g/m2 | 0.0 | - | - |
state | sLeaching | Leached P | DOUBLE | g/m2 | - | - | 0.0 |
state | sTotalUptakeP | Total P uptake | DOUBLE | g/m2 | - | - | 0.0 |
rate | rAdsorbedPRate | Daily change of adsorbed P per layer | DOUBLEARRAY | g/(m2 d) | - | - | - |
rate | rAvailPRate | Daily plant available P per layer | DOUBLEARRAY | g/(m2 d) | - | - | - |
rate | rDissolvedPRate | Daily change of dissolved P per layer | DOUBLEARRAY | g/(m2 d) | - | - | - |
rate | rFixedPRate | Daily change of fixed P per layer | DOUBLEARRAY | g/(m2 d) | - | - | - |
rate | rLeachingRate | Daily leaching rate | DOUBLE | g/(m2 d) | - | - | - |
rate | rTotalAvailPRate | Daily total avail P in profile | DOUBLE | g/(m2 d) | - | - | 0.0 |
rate | rTotalUptakePRate | Daily total plant uptaken P in profile | DOUBLE | g/(m2 d) | - | - | 0.0 |
rate | rUptakePRate | Daily P taken up by plant per layer | DOUBLEARRAY | g/(m2 d) | - | - | - |
out | AdsorbedPConcentration | Adsorbed P concentration per layer | DOUBLEARRAY | ppm | 0.0 | - | - |
out | AdsorptionCoefficients | Asorption coefficients per layer | DOUBLEARRAY | 1 | - | - | - |
out | AdsorptionRate | Daily adsorbed P per layer | DOUBLEARRAY | g/(m2 d) | - | - | - |
out | CumulatedFertilizer | Cummulated fertilizer over time | DOUBLE | g/m2 | - | - | 0.0 |
out | CumulatedMineralizedP | Cummulated mineralized P over time in whole profile | DOUBLE | g/m2 | - | - | 0.0 |
out | DissolvedPConcentration | Dissolved P concentration per layer | DOUBLEARRAY | ppm | 0.0 | - | - |
out | DissolvedPFlow | Daily dissolved P flow from a layer to the neighbour layer below | DOUBLEARRAY | g/(m2 d) | - | - | - |
out | FixationCoefficients | Fixation coefficients per layer | DOUBLEARRAY | 1 | - | - | - |
out | FixationRate | Daily fixed P per layer | DOUBLEARRAY | g/(m2 d) | - | - | - |
out | FixedPConcentration | Fixed P concentration per layer | DOUBLEARRAY | ppm | 0.0 | - | - |
out | InitialAdsorbedP | Initial adsorbed P per layer | DOUBLEARRAY | g/m2 | 0.0 | - | - |
out | InitialDissolvedP | Initial dissolved P per layer | DOUBLEARRAY | g/m2 | 0.0 | - | - |
out | InitialFixedP | Initial fixed P per layer | DOUBLEARRAY | g/m2 | 0.0 | - | - |
out | PBalance | P Balance | DOUBLE | g/m2 | - | - | 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
SlimPhosphorus
(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()
protected void
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
-
SlimPhosphorus
protected SlimPhosphorus(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
-
-
SlimPhosphorus
public SlimPhosphorus()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() -
reInitialize
protected void reInitialize() -
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)
-