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            };