The FuelCom DLL encapsulates the Canadian FBP fuel type standard. Each fuel type implements two interfaces: ICWFGM_Fuel and ICWFGM_FBPFuel.
These interfaces are separated so that other fuel type models can be implemented and used with a minimum of effort or impact on other components and objects.
These objects also implement the standard COM IPersistStream, IPersistStreamInit, and IPersistStorage interfaces, for the purposes of object serialization. Note that the C-2 and D-1 parameters are only valid and necessary, and are only saved, if the fuel type is mixed. For this case, C-2 and D-1 are saved to avoid any external dependencies to retain correctness. If the client code sets these pointers to other fuel types, it should be aware that it may result in C-2 and D-1 fuel-types being saved twice, depending on how external serialization operations are implemented.
There exists a fuel type COM object for each Canadian FBP fuel which is 'read-only'. None of its properties can be modified. There are also 'read-only' versions of select extensions to the FBP standard. These extensions are the D-2 (Green Aspen with BUI Thresholding) fueltype, and mixed fuel types that automatically perform green-up based on options passed in via parameters. There also exists a generic fuel type to represent variations of standard FBP fuels as well as other fuels not part of the FBP standard. Read-only fuel types can be copied into the generic read/write fuel type for purposes of modifying a standard fuel type 'template'. New Zealand extensions to the FBP standard, for example, are currently not available as 'read-only' fuel type templates in this DLL and must be created in client code in this manner.
This module is not concerned with properties (other than its name) that may be associated with a fuel type, which would not impact the statistical outputs of the fuel type (required for a simulation). Such properties could include generic comments and colour. These are the responsibility of the client code, which is expected to use object-oriented technologies such as class inheritance to add such attributes appropriately. Similarly, this module is not concerned with the management of fuel types either.
Defines used for various routines found in this module are as follows:
#define FUELCOM_ATTRIBUTE_A 15500
#define FUELCOM_ATTRIBUTE_B 15501
#define FUELCOM_ATTRIBUTE_C 15502
#define FUELCOM_ATTRIBUTE_Q 15503
#define FUELCOM_ATTRIBUTE_MAXBE 15504
#define FUELCOM_ATTRIBUTE_BUI0 15505
#define FUELCOM_ATTRIBUTE_CBH 15506
#define FUELCOM_ATTRIBUTE_CFL 15507
#define FUELCOM_ATTRIBUTE_TREE_HEIGHT 15508
#define FUELCOM_ATTRIBUTE_GFL 15590
#define FUELCOM_ATTRIBUTE_PC 15509
#define FUELCOM_ATTRIBUTE_PDF 15510
#define FUELCOM_ATTRIBUTE_CURINGDEGREE 15511
#define FUELCOM_ATTRIBUTE_M3M4_C2_A 15512
#define FUELCOM_ATTRIBUTE_M3M4_C2_B 15513
#define FUELCOM_ATTRIBUTE_M3M4_C2_C 15514
#define FUELCOM_ATTRIBUTE_M4_D1_A 15515
#define FUELCOM_ATTRIBUTE_M4_D1_B 15516
#define FUELCOM_ATTRIBUTE_M4_D1_C 15517
#define FUELCOM_ATTRIBUTE_EQ35_THRESHOLD 15518
#define FUELCOM_ATTRIBUTE_EQ35A_MULT1 15519
#define FUELCOM_ATTRIBUTE_EQ35A_MULT2 15520
#define FUELCOM_ATTRIBUTE_EQ35B_ADDER 15521
#define FUELCOM_ATTRIBUTE_EQ35B_MULT1 15522
#define FUELCOM_ATTRIBUTE_GREENUP_MODIFIER 0x8000
#define FUELCOM_ATTRIBUTE_RSI_START 15600
#define FUELCOM_ATTRIBUTE_RSI_C6_DEFAULTS 15600
#define FUELCOM_ATTRIBUTE_RSI_D2_DEFAULTS 15601
#define FUELCOM_ATTRIBUTE_RSI_M3_DEFAULTS 15602
#define FUELCOM_ATTRIBUTE_RSI_M4_DEFAULTS 15603
#define FUELCOM_ATTRIBUTE_RSI_O1_DEFAULTS 15604
#define FUELCOM_ATTRIBUTE_RSI_CONSTANT_RSI 15605
#define FUELCOM_ATTRIBUTE_ROS_EQ61_MULT1 15606
#define FUELCOM_ATTRIBUTE_ROS_EQ61_MULT2 15607
#define FUELCOM_ATTRIBUTE_ROS_EQ61_MULT3 15608
#define FUELCOM_ATTRIBUTE_ROS_EQ61_ADDER1 15609
#define FUELCOM_ATTRIBUTE_ROS_EQ61_ADDER2 15610
#define FUELCOM_ATTRIBUTE_ROS_EQ61_POWER 15611
#define FUELCOM_ATTRIBUTE_ROS_EQ64_MULT1 15612
#define FUELCOM_ATTRIBUTE_ROS_EQ64_MULT2 15613
#define FUELCOM_ATTRIBUTE_ROS_EQ64_FMEAVG 15614
#define FUELCOM_ATTRIBUTE_RSI_D2_THRESHOLD 15615
#define FUELCOM_ATTRIBUTE_RSI_D2_SCALE1 15616
#define FUELCOM_ATTRIBUTE_RSI_D2_SCALE2 15617
#define FUELCOM_ATTRIBUTE_RSI_MIX_FACTOR 15618
#define FUELCOM_ATTRIBUTE_RSI_END 15649
#define FUELCOM_ATTRIBUTE_SFC_START 15550
#define FUELCOM_ATTRIBUTE_SFC_C1_DEFAULTS 15550
#define FUELCOM_ATTRIBUTE_SFC_C2_DEFAULTS 15551
#define FUELCOM_ATTRIBUTE_SFC_C3_DEFAULTS 15552
#define FUELCOM_ATTRIBUTE_SFC_C4_DEFAULTS 15553
#define FUELCOM_ATTRIBUTE_SFC_C5_DEFAULTS 15554
#define FUELCOM_ATTRIBUTE_SFC_C6_DEFAULTS 15555
#define FUELCOM_ATTRIBUTE_SFC_C7_DEFAULTS 15556
#define FUELCOM_ATTRIBUTE_SFC_D1_DEFAULTS 15557
#define FUELCOM_ATTRIBUTE_SFC_D2_DEFAULTS 15558
#define FUELCOM_ATTRIBUTE_SFC_M3_DEFAULTS 15559
#define FUELCOM_ATTRIBUTE_SFC_M4_DEFAULTS 15560
#define FUELCOM_ATTRIBUTE_SFC_O1A_DEFAULTS 15561
#define FUELCOM_ATTRIBUTE_SFC_O1B_DEFAULTS 15562
#define FUELCOM_ATTRIBUTE_SFC_S1_DEFAULTS 15563
#define FUELCOM_ATTRIBUTE_SFC_S2_DEFAULTS 15564
#define FUELCOM_ATTRIBUTE_SFC_S3_DEFAULTS 15565
#define FUELCOM_ATTRIBUTE_SFC_MULTIPLIER 15566
#define FUELCOM_ATTRIBUTE_FFC_MULTIPLIER 15567
#define FUELCOM_ATTRIBUTE_WFC_MULTIPLIER 15568
#define FUELCOM_ATTRIBUTE_FFC_BUI_MULTIPLIER 15569
#define FUELCOM_ATTRIBUTE_WFC_BUI_MULTIPLIER 15570
#define FUELCOM_ATTRIBUTE_SFC_EQ9_ADDER 15571
#define FUELCOM_ATTRIBUTE_SFC_EQ9_MULT1 15572
#define FUELCOM_ATTRIBUTE_SFC_EQ9_MULT2 15573
#define FUELCOM_ATTRIBUTE_SFC_EQ9_FFMC_THRESHOLD 15574
#define FUELCOM_ATTRIBUTE_SFC_EQ10_MULT1 15575
#define FUELCOM_ATTRIBUTE_SFC_EQ10_ADDER 15576
#define FUELCOM_ATTRIBUTE_SFC_EQ10_POWER 15577
#define FUELCOM_ATTRIBUTE_SFC_EQ13_MULT1 15578
#define FUELCOM_ATTRIBUTE_SFC_EQ13_MULT2 15579
#define FUELCOM_ATTRIBUTE_SFC_EQ13_ADDER 15580
#define FUELCOM_ATTRIBUTE_SFC_EQ14_MULT1 15581
#define FUELCOM_ATTRIBUTE_SFC_EQ14_MULT2 15582
#define FUELCOM_ATTRIBUTE_SFC_D2_THRESHOLD 15583
#define FUELCOM_ATTRIBUTE_SFC_D2_SCALE1 15584
#define FUELCOM_ATTRIBUTE_SFC_D2_SCALE2 15585
#define FUELCOM_ATTRIBUTE_SFC_EQ19_MULT1 15586
#define FUELCOM_ATTRIBUTE_SFC_EQ19_MULT2 15587
#define FUELCOM_ATTRIBUTE_SFC_EQ20_MULT1 15588
#define FUELCOM_ATTRIBUTE_SFC_EQ20_MULT2 15589
#define FUELCOM_ATTRIBUTE_SFC_END 15599
#define FUELCOM_ATTRIBUTE_LB_START 15650
#define FUELCOM_ATTRIBUTE_LB_C1_DEFAULTS 15650
#define FUELCOM_ATTRIBUTE_LB_C2_DEFAULTS 15651
#define FUELCOM_ATTRIBUTE_LB_C3_DEFAULTS 15652
#define FUELCOM_ATTRIBUTE_LB_C4_DEFAULTS 15653
#define FUELCOM_ATTRIBUTE_LB_C5_DEFAULTS 15654
#define FUELCOM_ATTRIBUTE_LB_C6_DEFAULTS 15655
#define FUELCOM_ATTRIBUTE_LB_C7_DEFAULTS 15656
#define FUELCOM_ATTRIBUTE_LB_D1_DEFAULTS 15657
#define FUELCOM_ATTRIBUTE_LB_D2_DEFAULTS 15658
#define FUELCOM_ATTRIBUTE_LB_M1_DEFAULTS 15659
#define FUELCOM_ATTRIBUTE_LB_M2_DEFAULTS 15660
#define FUELCOM_ATTRIBUTE_LB_M3_DEFAULTS 15661
#define FUELCOM_ATTRIBUTE_LB_M4_DEFAULTS 15662
#define FUELCOM_ATTRIBUTE_LB_O1A_DEFAULTS 15663
#define FUELCOM_ATTRIBUTE_LB_O1B_DEFAULTS 15664
#define FUELCOM_ATTRIBUTE_LB_S1_DEFAULTS 15665
#define FUELCOM_ATTRIBUTE_LB_S2_DEFAULTS 15666
#define FUELCOM_ATTRIBUTE_LB_S3_DEFAULTS 15667
#define FUELCOM_ATTRIBUTE_LB_INIT 15668
#define FUELCOM_ATTRIBUTE_LB_MULTIPLIER 15669
#define FUELCOM_ATTRIBUTE_LB_EXP_MULTIPLIER 15670
#define FUELCOM_ATTRIBUTE_LB_POWER 15671
#define FUELCOM_ATTRIBUTE_LB_END 15699
#define FUELCOM_ATTRIBUTE_ISF_START 15700
#define FUELCOM_ATTRIBUTE_ISF_O1A_DEFAULTS 15700
#define FUELCOM_ATTRIBUTE_ISF_O1B_DEFAULTS 15701
#define FUELCOM_ATTRIBUTE_ISF_END 15749
#define FUELCOM_ATTRIBUTE_CFB_START 15750
#define FUELCOM_ATTRIBUTE_CFB_C1_DEFAULTS 15750
#define FUELCOM_ATTRIBUTE_CFB_C2_DEFAULTS 15751
#define FUELCOM_ATTRIBUTE_CFB_C3_DEFAULTS 15752
#define FUELCOM_ATTRIBUTE_CFB_C4_DEFAULTS 15753
#define FUELCOM_ATTRIBUTE_CFB_C5_DEFAULTS 15754
#define FUELCOM_ATTRIBUTE_CFB_C6_DEFAULTS 15755
#define FUELCOM_ATTRIBUTE_CFB_C7_DEFAULTS 15756
#define FUELCOM_ATTRIBUTE_CFB_D1_DEFAULTS 15757
#define FUELCOM_ATTRIBUTE_CFB_M1_DEFAULTS 15758
#define FUELCOM_ATTRIBUTE_CFB_M2_DEFAULTS 15759
#define FUELCOM_ATTRIBUTE_CFB_M3_DEFAULTS 15760
#define FUELCOM_ATTRIBUTE_CFB_M4_DEFAULTS 15761
#define FUELCOM_ATTRIBUTE_CFB_O1A_DEFAULTS 15762
#define FUELCOM_ATTRIBUTE_CFB_O1B_DEFAULTS 15763
#define FUELCOM_ATTRIBUTE_CFB_S1_DEFAULTS 15764
#define FUELCOM_ATTRIBUTE_CFB_S2_DEFAULTS 15765
#define FUELCOM_ATTRIBUTE_CFB_S3_DEFAULTS 15766
#define FUELCOM_ATTRIBUTE_CFB_CSI_MULTIPLIER 15767
#define FUELCOM_ATTRIBUTE_CFB_CBH_EXPONENT 15768
#define FUELCOM_ATTRIBUTE_CFB_EXP_ADDER 15769
#define FUELCOM_ATTRIBUTE_CFB_EXP_MULTIPLIER 15770
#define FUELCOM_ATTRIBUTE_CFB_CSI_POWER 15771
#define FUELCOM_ATTRIBUTE_CFB_RSO_DIV 15772
#define FUELCOM_ATTRIBUTE_CFB_EXP 15773
#define FUELCOM_ATTRIBUTE_CFB_END 15799
#define FUELCOM_ATTRIBUTE_ACCEL_START 15850
#define FUELCOM_ATTRIBUTE_ACCEL_C1_DEFAULTS 15850
#define FUELCOM_ATTRIBUTE_ACCEL_C2_DEFAULTS 15851
#define FUELCOM_ATTRIBUTE_ACCEL_C3_DEFAULTS 15852
#define FUELCOM_ATTRIBUTE_ACCEL_C4_DEFAULTS 15853
#define FUELCOM_ATTRIBUTE_ACCEL_C5_DEFAULTS 15854
#define FUELCOM_ATTRIBUTE_ACCEL_C6_DEFAULTS 15855
#define FUELCOM_ATTRIBUTE_ACCEL_C7_DEFAULTS 15856
#define FUELCOM_ATTRIBUTE_ACCEL_D1_DEFAULTS 15857
#define FUELCOM_ATTRIBUTE_ACCEL_D2_DEFAULTS 15858
#define FUELCOM_ATTRIBUTE_ACCEL_M1_DEFAULTS 15859
#define FUELCOM_ATTRIBUTE_ACCEL_M2_DEFAULTS 15860
#define FUELCOM_ATTRIBUTE_ACCEL_M3_DEFAULTS 15861
#define FUELCOM_ATTRIBUTE_ACCEL_M4_DEFAULTS 15862
#define FUELCOM_ATTRIBUTE_ACCEL_O1A_DEFAULTS 15863
#define FUELCOM_ATTRIBUTE_ACCEL_O1B_DEFAULTS 15864
#define FUELCOM_ATTRIBUTE_ACCEL_S1_DEFAULTS 15865
#define FUELCOM_ATTRIBUTE_ACCEL_S2_DEFAULTS 15866
#define FUELCOM_ATTRIBUTE_ACCEL_S3_DEFAULTS 15867
#define FUELCOM_ATTRIBUTE_ACCEL_INIT 15869
#define FUELCOM_ATTRIBUTE_ACCEL_MULTIPLIER 15870
#define FUELCOM_ATTRIBUTE_ACCEL_POWER 15871
#define FUELCOM_ATTRIBUTE_ACCEL_EXP_MULTIPLIER 15872
#define FUELCOM_ATTRIBUTE_ACCEL_END 15899
#define FUELCOM_ATTRIBUTE_FMC_START 15900
#define FUELCOM_ATTRIBUTE_FMC_DAY0 15901
#define FUELCOM_ATTRIBUTE_FMC_END 15949
#define FUELCOM_EQUATION_FMC 15250
#define FUELCOM_EQUATION_SFC 15251
#define FUELCOM_EQUATION_SFC_GREENUP (FUELCOM_EQUATION_SFC | FUELCOM_ATTRIBUTE_GREENUP_MODIFIER)
#define FUELCOM_EQUATION_TFC 15252
#define FUELCOM_EQUATION_TFC_GREENUP (FUELCOM_EQUATION_TFC | FUELCOM_ATTRIBUTE_GREENUP_MODIFIER)
#define FUELCOM_EQUATION_RSI 15253
#define FUELCOM_EQUATION_RSI_GREENUP (FUELCOM_EQUATION_RSI | FUELCOM_ATTRIBUTE_GREENUP_MODIFIER)
#define FUELCOM_EQUATION_ISF 15254
#define FUELCOM_EQUATION_ISF_GREENUP (FUELCOM_EQUATION_ISF | FUELCOM_ATTRIBUTE_GREENUP_MODIFIER)
#define FUELCOM_EQUATION_CFB 15255
#define FUELCOM_EQUATION_CFB_GREENUP (FUELCOM_EQUATION_CFB | FUELCOM_ATTRIBUTE_GREENUP_MODIFIER)
#define FUELCOM_EQUATION_ACCEL 15256
#define FUELCOM_EQUATION_LB 15257
#define FUELCOM_EQUATION_SELECTION_FMC_CALC 15300
#define FUELCOM_EQUATION_SELECTION_FMC_NOCALC 15301
#define FUELCOM_EQUATION_SELECTION_SFC_C1 15310
#define FUELCOM_EQUATION_SELECTION_SFC_C2 15311
#define FUELCOM_EQUATION_SELECTION_SFC_C7 15312
#define FUELCOM_EQUATION_SELECTION_SFC_D2 15313
#define FUELCOM_EQUATION_SELECTION_SFC_M1 15314
#define FUELCOM_EQUATION_SELECTION_SFC_O1 15315
#define FUELCOM_EQUATION_SELECTION_SFC_S1 15316
#define FUELCOM_EQUATION_SELECTION_TFC_C1 15330
#define FUELCOM_EQUATION_SELECTION_TFC_D2 15331
#define FUELCOM_EQUATION_SELECTION_TFC_M1 15332
#define FUELCOM_EQUATION_SELECTION_TFC_O1 15333
#define FUELCOM_EQUATION_SELECTION_RSI_C1 15350
#define FUELCOM_EQUATION_SELECTION_RSI_C6 15351
#define FUELCOM_EQUATION_SELECTION_RSI_D2 15352
#define FUELCOM_EQUATION_SELECTION_RSI_M1 15353
#define FUELCOM_EQUATION_SELECTION_RSI_M3 15354
#define FUELCOM_EQUATION_SELECTION_RSI_M4 15355
#define FUELCOM_EQUATION_SELECTION_RSI_O1 15356
#define FUELCOM_EQUATION_SELECTION_RSI_CONSTANT 15357
#define FUELCOM_EQUATION_SELECTION_ISF_C1 15370
#define FUELCOM_EQUATION_SELECTION_ISF_M1 15371
#define FUELCOM_EQUATION_SELECTION_ISF_M3M4 15372
#define FUELCOM_EQUATION_SELECTION_ISF_O1 15373
#define FUELCOM_EQUATION_SELECTION_CFB_C1 15390
#define FUELCOM_EQUATION_SELECTION_CFB_D2 15391
#define FUELCOM_EQUATION_SELECTION_ACCEL_CLOSED 15410
#define FUELCOM_EQUATION_SELECTION_ACCEL_OPEN 15411
#define FUELCOM_EQUATION_SELECTION_LB_C1 15420
#define FUELCOM_EQUATION_SELECTION_LB_O1 15421
#define FUELCOM_SUCCESS_NO_CHANGE 15450