4. printf("bt");
if (i >= 10 && i <= 99)
printf("btb");
if (i >= 100 && i <= 999)
printf("btbb");
if (i >= 1000 && i <= 9999)
printf("btbbb");
if (i >= 10000 && i <= 20000)
printf("btbbbb");
}
void MessageInitialData(double L,double EI,double EA,double Ultimate_Moment){
char Qa,Qb,Qc,Qd,Qe,Qf,Qg,Qk;
int i;
Qa=201;Qb=205;Qc=187;Qd=200;Qe=188,Qf=186,Qg=204,Qk=185;
printf("tttt%c",Qa);
for (i=1;i<72;i++)
printf("%c",Qb);
printf("%cn",Qc);
printf("tttt%c >> IN THE NAME OF GOD << %cn",Qf,Qf);
printf("tttt%c Nonlinear Analysis of Fixed Support Beam with Hinge by Hinge Method %cn",Qf,Qf);
printf("tttt%c UNIT: Free Unit %cn",Qf,Qf);
printf("tttt%c",Qg);
for (i=1;i<72;i++)
printf("%c",Qb);
printf("%cn",Qk);
printf("tttt%c This program is written by Salar Delavar Ghashghaei %cn",Qf,Qf);
printf("tttt%c E-mail: salar.d.ghashghaei@gmail.com %cn",Qf,Qf);
printf("tttt%c",Qd);
for (i=1;i<72;i++)
printf("%c",Qb);
printf("%cn",Qe);
MessageInputDataTEXT();
printf(" Length : %.3en",L);
printf(" Section flextural rigidity - EI: %.3en",EI);
printf(" Section axial rigidity - EA: %.3en",EA);
printf(" Section ultimate capacity moment: %.3en",Ultimate_Moment);
}
void MessageAnalysisReport(){
int i;
char Ql=176;
printf("n ");
for (i=1;i<64;i++)
printf("%c",Ql);
printf(" Analysis Report ");
for (i=1;i<64;i++)
printf("%c",Ql);
printf("n");
}
void MessageCheck_IMPORT_DATA01(double L,double EI,double EA,double Ultimate_Moment){
if ( L < 0 || EI < 0 || EA < 0 || Ultimate_Moment < 0){
MessageErrorReportTEXT();
printf(" Please check this file! -> [ PushoverHingeByHingeMethodFixedSupportBeam-inputDATA.csv ]n");
5. printf(" *** Negative data input value is not acceptable ***n");
printf(" Length of element: %.3en",L);
printf(" Section flextural rigidity - EI: %.3en",EI);
printf(" Section axial rigidity - EA: %.3en",EA);
printf(" Section ultimate capacity moment: %.3en",Ultimate_Moment);
Sleep(40000);
exit(1);
}
}
void MessageErrorReportTEXT(){
int i;
char Ql;
Ql=176;
textcolor(12);
printf("an ");
for (i=1;i<50;i++)
printf("%c",Ql);
printf(" Error Report ");
for (i=1;i<50;i++)
printf("%c",Ql);
printf("n");
}
void MessageInputDataTEXT(){
int i;
char Ql=176;
printf("n ");
for (i=1;i<50;i++)
printf("%c",Ql);
printf(" Input Data ");
for (i=1;i<50;i++)
printf("%c",Ql);
printf("n");
}
void OUTPUT_txt(){
}
void OUTPUT_matlab(double A[3][3],double B[3],double C[3][12],int n){
// MATLAB OUTPUT
int i;
FILE *OutputFile;
OutputFile = fopen("PushoverHingeByHingeMethodFixedSupportBeam-outputMATLAB.m", "w");
fprintf(OutputFile," %% Nonlinear Analysis of Fixed Support Beam with Hinge by Hinge Method %%n");
fprintf(OutputFile,"disp_Dof5=[0n");
for(i=0;i<n;i++)
fprintf(OutputFile,"%en",A[i][1]);
fprintf(OutputFile,"];nn");
fprintf(OutputFile,"disp_Dof6=[0n");
for(i=0;i<n;i++)
fprintf(OutputFile,"%en",A[i][2]);
fprintf(OutputFile,"];nn");
fprintf(OutputFile,"ele_Dof3=[0n");
for(i=0;i<n;i++)
fprintf(OutputFile,"%en",C[i][2]);
fprintf(OutputFile,"];nn");
6. fprintf(OutputFile,"ele_Dof5=[0n");
for(i=0;i<n;i++)
fprintf(OutputFile,"%en",C[i][4]);
fprintf(OutputFile,"];nn");
fprintf(OutputFile,"ele_Dof6=[0n");
for(i=0;i<n;i++)
fprintf(OutputFile,"%en",C[i][5]);
fprintf(OutputFile,"];nn");
fprintf(OutputFile,"ele_Dof12=[0n");
for(i=0;i<n;i++)
fprintf(OutputFile,"%en",C[i][11]);
fprintf(OutputFile,"];nn");
fprintf(OutputFile,"base_shear=[0n");
for(i=0;i<n;i++)
fprintf(OutputFile,"%en",B[i]);
fprintf(OutputFile,"];nn");
fprintf(OutputFile,"figure(1)n");
fprintf(OutputFile,"plot(disp_Dof6,ele_Dof6,'LineWidth',3);n");
fprintf(OutputFile,"title(['## ELEMENT INTERAL MOMENT - ROTATION DIAGRAM #'],'Color','b');n");
fprintf(OutputFile,"xlabel('ROTATION [DOF(6)]');ylabel('ELEMENT INTERAL MOMENT [DOF(6)]');grid on;n");
fprintf(OutputFile,"figure(2)n");
fprintf(OutputFile,"plot(disp_Dof6,ele_Dof12,'LineWidth',3);n");
fprintf(OutputFile,"title(['## ELEMENT INTERAL MOMENT - ROTATION DIAGRAM #'],'Color','b');n");
fprintf(OutputFile,"xlabel('ROTATION [DOF(6)]');ylabel('ELEMENT INTERAL MOMENT [DOF(12)]');grid on;n");
fprintf(OutputFile,"figure(3)n");
fprintf(OutputFile,"plot(disp_Dof5,ele_Dof5,'LineWidth',3);n");
fprintf(OutputFile,"title(['# ELEMENT INTERAL SHEAR - DISPLACEMENT DIAGRAM #'],'Color','b');n");
fprintf(OutputFile,"xlabel('DISPLACEMENT [DOF(11)]');ylabel('ELEMENT INTERAL SHEAR [DOF(2)]');grid on;n");
fprintf(OutputFile,"figure(4)n");
fprintf(OutputFile,"plot(disp_Dof5,base_shear,'LineWidth',3);n");
fprintf(OutputFile,"title(['## BASE SHEAR - DISPLACEMENT DIAGRAM #'],'Color','b');n");
fprintf(OutputFile,"xlabel('DISPLACEMENT [DOF(5)]');ylabel('BASE SHEAR [DOF(2)]+[DOF(8)]');grid on;n");
}
void OUTPUT_excel(double A[3][3],double B[3],double C[3][12],int n){
// EXCEL OUTPUT
int i;
FILE *OutputFile;
OutputFile = fopen("PushoverHingeByHingeMethodFixedSupportBeam-outputEXCEL.csv", "w");
fprintf(OutputFile," ### Nonlinear Analysis of Fixed Support Beam with Hinge by Hinge Method ###n");
fprintf(OutputFile,"Increment,Base Shear[DOF(2)]+[DOF(8)],Displacement [DOF(4)],Displacement [DOF(5)],Rotation [DOF(6)],Ele.1 Axial[DOF(1)],Ele.1 Shear[DOF(2)],Ele.1 Moment[DOF(3)],
Ele.1 Axial[DOF(4)],Ele.1 Shear[DOF(5)],Ele.1 Moment[DOF(6)],Ele.2 Axial[DOF(4)],Ele.2 Shear[DOF(5)],Ele.2 Moment[DOF(6)],Ele.2 Axial[DOF(7)],Ele.2 Shear[DOF(8)],Ele.2 Moment[DOF(9)]n");
for(i=0;i<n;i++)
fprintf(OutputFile,"%d,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%e,%en",i+1,B[i],A[i][0],A[i][1],A[i][2],C[i][0],C[i][1],C[i][2],C[i][3],C[i][4],C[i][5],C[i][6],C[i][7],C[i][8],C[i][9],
C[i][10],C[i][11]);
}
void MatrixDetermination(double A[][NN],int n){
// row operations
int i,j,k;
double Product,m,B[n][n];
7. for (i=0;i<n;i++)
for (j=0;j<n;j++)
B[i][j]=A[i][j];
for (k=0;k<n-1;k++)
for (i=k+1;i<n;i++){
m = B[i][k]/B[k][k];
for (j=0;j<n;j++)
B[i][j] -= m*B[k][j];
}
Product=1;
for (i=0;i<n;i++)
Product *= B[i][i];
// display results
if (Product == 0){
printf("ant ### it Seens that Golobal Matrix is singular or structure is unstable!!! ###n");
Sleep(40000);
exit(1);
}
}
void IMPORT_DATA01(double &Length,double &EA,double &EI,double &Ultimate_Mom){
double Import_Data[4];
int i=0;
FILE *InputFile;
InputFile = fopen("PushoverHingeByHingeMethodFixedSupportBeam-inputDATA.csv", "r");
if (!InputFile){
MessageErrorReportTEXT();
printf(" File is not available! -> [PushoverHingeByHingeMethodFixedSupportBeam-inputDATA.csv] n");
Sleep(6000);
exit(1);
}
char line[100],a[100];
while(i < 4 && fgets(line,sizeof(line),InputFile) != NULL){
sscanf(line,"%s",a);
//printf("a[%d]: %sn",i,a);
Import_Data[i]= atof(a);
i++;
}
Length=Import_Data[0];
EI=Import_Data[1];
EA=Import_Data[2];
Ultimate_Mom=Import_Data[3];
}
void textcolor(int ForgC){
WORD wColor;
//This handle is needed to get the current background attribute
HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO csbi;
//csbi is used for wAttributes word
if(GetConsoleScreenBufferInfo(hStdOut, &csbi)){
//To mask out all but the background attribute, and to add the color