Capital.
Fixed Costs (kr ? $)
Revenues per unit (kr ? $)
Cost of inputs per unit (kr ? $)
Carbon released per unit (g ?)
Production capacity (Units)
Carbon owned (g ?)
Carbon used (g ?)
Buy/Sell list
Average profit
Nr of units sold /Not carbon (Number) — calculate? Orginal equations
o Profit = (Revenues per unit - Cost per unit) * Nr of units sold - Fixed costs (kr ? $) o Cost per unit = Cost of inputs per unit + Carbon release per unit * Cost of Carbon (kr ? $)
Other equations
o Cost of Carbon = (Cost of Carbon * Carbon units owned + Cost of bought Carbon * unit bought)/(Carbon units owned + units bought) o Max Units Produced with owned Carbon = owned Carbon / Carbon released per unit o Max Carbon usage = Carbon release per unit * Production capacity o Nr of units sold = min(Max Units Produced with owned Carbon , Production capacity)
Buy/Sell
o If (Max Carbon usage > Owned carbon) Buy difference (Units) o If (Max Carbon usage < Owned carbon) Sell difference (Units) o Max bid price = Capital / units
Average price
Name
Country
Match offers and bids according to the design. At the end of the day, makes the transaction between buyers and sellers of the matching trades.
Matches, improvements, and checkout:
o Match: If (bid's price > offer's minimum price) assign this bid to that offer. o Improvement: Scanning the offers for every bid: If (current offer's price < old offer's price) repoint the bid to the new one. o Checkout: For every maching offer: notify the buyers/sellers with units sold/bought and for wich price. Then if the offer and the bid are not checked out completely, keep them on the market as new.
Use JFreeGraph - from last year's model (in SVN). A module declared in the psySpec, meant to be listening to every type of message from every module. So it will have the time passing, the prices in the bids/offers and from whom, and the traded transactions.
Initial values for all the modules (industries or market) are retrieved from psyclone as parameters. Every module starts only with a name given in the command line, then will be able to ask for parameters to the central system.