====== Industry ====== == Variables == 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 == Functionality: == 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 ====== Market ====== == Variables: == Average price Name Country == Functionality: == 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. ====== Monitor ====== 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. ====== Global ====== 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.