00001
00002
00003
00004 #ifndef _LINE_H
00005 #define _LINE_H
00006
00007 #define hasphase(ph) (SET_HAS(phase,PHASE##ph) | (phase_orig & PHASE_##ph))
00008 #define set_hasphase(set,ph) (SET_HAS(set,ph))
00009 #define PERMITIVITTY_AIR 0.014240 //microF/mile
00010 #define PERMITIVITTY_FREE 0.01420 //microF/mile
00011 #define EARTH_RESISTIVITY 100 //Ohm-meter
00012
00013 typedef struct {
00014 double continuous;
00015 double emergency;
00016 } LINERATINGS;
00017
00018 extern bool show_matrix_values;
00019
00020 #include "powerflow.h"
00021 #include "link.h"
00022 #include "line_spacing.h"
00023 #include "overhead_line_conductor.h"
00024 #include "underground_line_conductor.h"
00025 #include "line_configuration.h"
00026 #include "triplex_line_configuration.h"
00027 #include "triplex_line_conductor.h"
00028
00029 class line : public link_object
00030 {
00031 public:
00032 static CLASS *oclass;
00033 static CLASS *pclass;
00034
00035 OBJECT *configuration;
00036 double length;
00037 line(MODULE *mod);
00038 inline line(CLASS *cl=oclass):link_object(cl){};
00039 int init(OBJECT *parent);
00040 int isa(char *classname);
00041 int create(void);
00042
00043 protected:
00044 void load_matrix_based_configuration(complex Zabc_mat[3][3], complex Yabc_mat[3][3]);
00045 void recalc_line_matricies(complex Zabc_mat[3][3], complex Yabc_mat[3][3]);
00046 };
00047
00048 #include "triplex_line.h"
00049 #include "overhead_line.h"
00050 #include "underground_line.h"
00051
00052 #endif // _LINE_H