/
INutrient.cs
93 lines (67 loc) · 3.01 KB
/
INutrient.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
using Models.Surface;
using System.Collections.Generic;
namespace Models.Soils.Nutrients
{
/// <summary>
/// This interface defines the communications between a soil arbitrator and
/// and crop.
/// </summary>
public interface INutrient
{
/// <summary>The inert pool.</summary>
IOrganicPool Inert { get; }
/// <summary>The microbial pool.</summary>
IOrganicPool Microbial { get; }
/// <summary>The humic pool.</summary>
IOrganicPool Humic { get; }
/// <summary>The fresh organic matter cellulose pool.</summary>
IOrganicPool FOMCellulose { get; }
/// <summary>The fresh organic matter carbohydrate pool.</summary>
IOrganicPool FOMCarbohydrate { get; }
/// <summary>The fresh organic matter lignin pool.</summary>
IOrganicPool FOMLignin { get; }
/// <summary>The fresh organic matter pool.</summary>
IOrganicPool FOM { get; }
/// <summary>Soil organic nitrogen (FOM + Microbial + Humic)</summary>
IOrganicPool Organic { get; }
/// <summary>The NO3 pool.</summary>
ISolute NO3 { get; }
/// <summary>The NH4 pool.</summary>
ISolute NH4 { get; }
/// <summary>The Urea pool.</summary>
ISolute Urea { get; }
/// <summary>Total C in each soil layer</summary>
IReadOnlyList<double> TotalC { get; }
/// <summary>Total C lost to the atmosphere</summary>
IReadOnlyList<double> Catm { get; }
/// <summary>Total N lost to the atmosphere</summary>
IReadOnlyList<double> Natm { get; }
/// <summary>Total N2O lost to the atmosphere</summary>
IReadOnlyList<double> N2Oatm { get; }
/// <summary>Total Net N Mineralisation in each soil layer</summary>
IReadOnlyList<double> MineralisedN { get; }
/// <summary>Denitrified Nitrogen (N flow from NO3).</summary>
IReadOnlyList<double> DenitrifiedN { get; }
/// <summary>Nitrified Nitrogen (from NH4 to either NO3 or N2O).</summary>
IReadOnlyList<double> NitrifiedN { get; }
/// <summary>Urea converted to NH4 via hydrolysis.</summary>
IReadOnlyList<double> HydrolysedN { get; }
/// <summary>Total Mineral N in each soil layer</summary>
IReadOnlyList<double> MineralN { get; }
/// <summary>Total N in each soil layer</summary>
IReadOnlyList<double> TotalN { get; }
/// <summary>Carbon to Nitrogen Ratio for Fresh Organic Matter for a given layer</summary>
IReadOnlyList<double> FOMCNRFactor { get; }
/// <summary>
/// Incorporate FOM
/// </summary>
void DoIncorpFOM(FOMLayerType FOMdata);
/// <summary>Partition the given FOM C and N into fractions in each layer (FOM pools)</summary>
/// <param name="FOMPoolData">The in fom pool data.</param>
void IncorpFOMPool(FOMPoolType FOMPoolData);
/// <summary>
/// Reset all Pools
/// </summary>
void Reset();
}
}