www.pudn.com > simulator.zip > General.h
#include#include #define MAX_CTRL_CHAN 8 #define MAX_GMPOINTS 1500 #define i_order 1 // no. of p_i coefficients used in AG_f_diss scheme typedef float motion; typedef float force; int Num_dof, Gm_pts, // number of ground motion points integration_method, // see the enum below type_of_damping, type_of_load, i_type; // =1 for 1st AG_f_diss scheme, =2 for 2nd enum { no_damping, // enum for type_of_damping matrix_damping, proportional_damping, Rayleigh_damping }; float Current_time, Dt, Duration, // total time duration of test Gm_dt, Gm_fact, Acc_h[MAX_GMPOINTS], Acc_v[MAX_GMPOINTS]; float Mass [MAX_CTRL_CHAN][MAX_CTRL_CHAN], Damping[MAX_CTRL_CHAN][MAX_CTRL_CHAN], Stiff [MAX_CTRL_CHAN][MAX_CTRL_CHAN], alfa [MAX_CTRL_CHAN][MAX_CTRL_CHAN], gama [MAX_CTRL_CHAN][MAX_CTRL_CHAN], Alfa, Beta, Gama, damp_a1, // mass multiplier for damping damp_a2; // stiffness multiplier for damping motion Displ [MAX_CTRL_CHAN], Displ_p[MAX_CTRL_CHAN], Vel [MAX_CTRL_CHAN], Vel_p [MAX_CTRL_CHAN], Ace [MAX_CTRL_CHAN], Ace_p [MAX_CTRL_CHAN]; force App_force [MAX_CTRL_CHAN], App_force_p[MAX_CTRL_CHAN]; float inv_mat[MAX_CTRL_CHAN][MAX_CTRL_CHAN], // matrix to be inverted m_bar [MAX_CTRL_CHAN]; extern class Time_Integration_scheme { public : virtual void previous(void)=0; virtual void method(void)=0; }; extern class AG_f_diss : virtual public Time_Integration_scheme { public : virtual void previous(void); virtual void method(void); private : float AG_f_diss_p[i_order]; void coe_matrix(void); }; extern class Alpha : virtual public Time_Integration_scheme { public : virtual void previous(void); virtual void method(void); private : motion Displ_til[MAX_CTRL_CHAN], // _til for tilt Vel_til [MAX_CTRL_CHAN]; }; extern class Newmark : virtual public Time_Integration_scheme { public : virtual void previous(void); virtual void method(void); }; extern class Integration_Newmark : virtual public Time_Integration_scheme { public : virtual void previous(void); virtual void method(void); private : force App_force_i[MAX_CTRL_CHAN]; motion s [MAX_CTRL_CHAN], s_p [MAX_CTRL_CHAN]; }; extern class Cent_diff : virtual public Time_Integration_scheme { public : virtual void previous(void); virtual void method(void); private : motion Displ_a[MAX_CTRL_CHAN]; // _a for advanced }; AG_f_diss ag_f_diss; Alpha alpha; Newmark newmark; Integration_Newmark integration_Newmark; Cent_diff cent_diff; Time_Integration_scheme *Time_Integration_pointer[5]={ &ag_f_diss, &alpha, &newmark, &integration_Newmark, ¢_diff };