Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members

PopulationNetworkSegmentList.h

Go to the documentation of this file.
00001 //------------------------------------------------------------------------------
00002 //
00003 //  Thomas Berger (main author), Pepijn Schreinemachers, and Thorsten Arnold
00004 //
00005 //
00006 //  Hohenheim University (490d)
00007 //  Professorship for Land Use Economics in the Tropics and Subtropics
00008 //
00009 //  May not be distributed without permission by main author
00010 //
00011 //  File:       PopulationNetworkSegmentList.h (formerly sliste.h)
00012 //
00013 //  Contents:   Manages linked list of all agent communication networks
00014 //
00015 //
00016 //
00017 //------------------------------------------------------------------------------
00018 
00019 
00020 #ifndef _PopulationNetworkSegmentList_h
00021 #define _PopulationNetworkSegmentList_h
00022 
00023 #include "FinancialMathFunctions.h"
00024 #include "PopulationNetworkSegment.h"
00025 
00026 
00027 class s_liste
00028 {       protected:
00029         int nw_nr;                              //Netzwerknummer
00030    int sanzahl;         //Anzahl Segmente
00031    int letzte_s_nr;             //zuletzt vergebene Segmentsnummer
00032 
00033         //Gesamtwerte für Netzwerk
00034    int n_ges;                           //Nutzeranzahl
00035    double ha_ges;                       //Flächen
00036    double db_ges;                       //Deckungsbeiträge
00037    double ws_ges;                       //Wertschöpfung
00038 
00039         //Matrizen zu den Innovationen in den Segmenten (d.h. Investitionsobjekte,
00040    //die nicht schon in der 1. Periode vorhanden sind)
00041    MatrixDouble innovN;                 //Nutzeranzahl
00042    MatrixDouble innovHA;                //Flächen
00043    MatrixDouble innovDB;                //Deckungsbeiträge
00044    MatrixDouble innovWS;                //Wertschöpfung
00045 
00046    MatrixDouble erzw_aufgabe;   //Matrizen der erzwungenen Betriebsaufgaben je Segment
00047    MatrixDouble frei_aufgabe;   //Matrizen der freiwilligen Betriebsaufgaben je Segment
00048         MatrixDouble plan_fehler;       //Matrix der möglichen Planungsfehler je Segment
00049 
00050         segment* firstSegment;
00051    segment* merkeSegment;//wird für suche_naechsten() gebraucht
00052 
00053    public:
00054    s_liste(int);
00055    virtual ~s_liste()
00056    {  innovN.deallokieren();
00057                 innovHA.deallokieren();
00058                 innovDB.deallokieren();
00059                 innovWS.deallokieren();      
00060       erzw_aufgabe.deallokieren();
00061                 frei_aufgabe.deallokieren();
00062       plan_fehler.deallokieren();
00063         liste_loeschen();
00064    }
00065 
00066    virtual void innov_anlegen();//legt Matrizen der Innovationen an
00067    virtual void aufgabe_anlegen();//legt die Matrizen zur Betriebsaufgabe an
00068         virtual void aufgabe_eintragen(int, int); //Betriebsaufgabe eintragen
00069    virtual void planfehler_eintragen(int);//Planungsfehler vermerken
00070 
00071    //legt Segment an: Übergabe Name der Input-Datei
00072         virtual void segment_anlegen(char*);
00073         virtual void deallokieren(segment*);//deallokiert ein Segment
00074         virtual void einfuegen(segment*);//fügt ein Segment ein
00075         virtual int get_anzahl(void);//liefert Anzahl der Segmente
00076    virtual int get_nummer(void);//liefert die zuletzt vergebene Segmentsnummer
00077    virtual segment* segment_suchen(int);//übergeben wird s_nummer;
00078    virtual segment* getFirst();//liefert Listenerstes
00079 
00080    //these functions handle requests to network segments
00081    virtual double getInvBound(int segID, int sclass);
00082         virtual int insertObjectIDsForLpColumns(MatrixDouble& lpIndicesAndRelativeCosts);
00083 
00084    //übergibt Beiträge zu den Gesamt-NW-Werten
00085    virtual void make_n_ges(int);
00086    virtual void make_ha_ges(double);
00087    virtual void make_db_ges(double);
00088    virtual void make_ws_ges(double);
00089    virtual void make_n_ha_start(int, double);
00090 
00091         //nicht benötige Elementfunktion, liefert Schwellenwert des Vorsegments
00092         //virtual double get_schwellenwert(int); //übergeben wird Segmentnummer
00093 
00094         //liefert für ein Untereinzugsgebiet (d.h. für eine Betriebsliste) die Daten
00095         //der Nutzer eines Inv.objekt innerhalb des Netzwerks
00096         //Übergabe: SubcatchmentNum, Code des Objekts
00097         virtual nutz get_Nutzer(int, int);//neu 2004
00098         virtual int get_seg_banzahl(int wann, int seg);//Anzahl der Segmentsbetriebe
00099    virtual void matrizen_aktualisieren();//Aktualisierung aller Invest_matrizen
00100 
00101         virtual void printToScreen(segment*);
00102    virtual void printOnScreen_list(void);
00103         virtual void liste_loeschen(void);
00104    virtual void diffusionsdaten(FILE*);//Daten in geöffnete Datei schreiben
00105    virtual void aufgabedaten(FILE*);
00106         virtual void diffusion_periodendaten(FILE*);
00107         virtual void aufgabe_periodendaten(FILE*);
00108 };
00109 
00110 #endif
00111 

Generated on Thu Aug 28 12:38:45 2008 for MPMAS by  doxygen 1.3.9.1