Page 5 - Demo
P. 5
Planar Truss Example for Comrel Add-on RCP Consult, 2023-2025 Page 5!!* Visualization if(StrurelPlot) then if(StrurelMode.eq.0.or.StrurelMode.eq.2) then! Local variables: width, heigth, ouput window number, etc. wo=-2.d0; we=26.d0; ho=-2.d0; he=10.d0 title=\ if(StrurelMode.eq.0) then ! 0 - initial deterministic state state=\ else ! 2 - final stochastic solution state=\ end if! Set of 3 plots do np=1,3! Number of figure if(StrurelMode.eq.0) n=1 nf=np*2-n! Initialize an Gnuplot environment Init=GnuplotInit() if(Init) then! Create an output window call GnuplotWindowRelative(nf,40,40,.TRUE.)! Set a title call GnuplotWindowTitle(nf,trim(title)//c_) write(buffer,\',a,'''')\ * trim(title),trim(state) call GnuplotPut(nf,trim(buffer)//c_)! Define range for axes write(buffer,\wo,we call GnuplotPut(nf,trim(buffer)//c_) write(buffer,\ho,he call GnuplotPut(nf,trim(buffer)//c_) call GnuplotPut(nf,\_) call GnuplotPut(nf,\_)! Plot a main subtitle of plot write(buffer,\ * \ at -1,5.5 font ''Arial,14''')\ * trim(StrurelName),trim(StrurelModule),trim(StrurelVersion) call GnuplotPut(nf,trim(buffer)//c_) if(StrurelMode.eq.0) then! Input data at state of mean values call GnuplotPut(nf,\ * \ at -1.,5.0 font 'Arial,12'\_) else! Final data of stochastic solution write(buffer,\ * \ at -1.,5.0 font ''Arial,12''')\ * trim(StrurelIMET),trim(StrurelIOPT) call GnuplotPut(nf,trim(buffer)//c_) write(buffer,\ * \, Pf=',f9.5,'''\ * \ at -1.,4.5 font ''Arial,10''')\ * StrurelBeta,StrurelPf call GnuplotPut(nf,trim(buffer)//c_) end if select case(np) case(1) !! plot set #1! Set a main subtitle of plot call GnuplotPut(nf,\ * \_)! Plot initial state of truss sc=2.d0 do n=1,nfe v(1,1)=XY(1,IEN(1,n)); v(2,1)=XY(2,IEN(1,n)) v(1,2)=XY(1,IEN(2,n)); v(2,2)=XY(2,IEN(2,n))! Blue color for initial state call GnuplotPlotData(nf, * \_, * v,2,2)! Rod number in the middle of rod length write(buffer, \ * \,f5.1,',',f5.1,' font ''Arial,8''')\ * n,(v(1,1)+v(1,2))/2,(v(2,1)+v(2,2))/2 call GnuplotPut(nf,trim(buffer)//c_)! Red color for deformed state v(1,1)=v(1,1)+ac(IEN(1,n)*ned-1)*sc v(2,1)=v(2,1)+ac(IEN(1,n)*ned )*sc v(1,2)=v(1,2)+ac(IEN(2,n)*ned-1)*sc v(2,2)=v(2,2)+ac(IEN(2,n)*ned )*sc call GnuplotPlotData(nf, * \_, * v,2,2) end do! Nodal numbers do i=1,nnp write(buffer,\ * \,f5.1,',',f5.1,' font ''Arial,8''')\ * i,XY(1,i),XY(2,i) call GnuplotPut(nf,trim(buffer)//c_) end do! Forces with scale factor 0.000025 call MATNUL(fp,ned,nnp) do i=8,nnp fp(2,i)=P(i-7)*0.000025 v(1,1)=XY(1,i); v(2,1)=XY(2,i)+fp(2,i) v(1,2)=0.d0; v(2,2)=-fp(2,i)! Single vector call GnuplotPlotData(nf, * \ * \_,v,4,1)! Force value write(buffer,\ * \'' at ',f5.1,',',f5.1,' font ''Arial,8''')\ * i-7,fp(2,i)*40000.d0,XY(1,i)+0.1d0,XY(2,i)+fp(2,i) call GnuplotPut(nf,trim(buffer)//c_) end do! Value of vertical deflection in node N04 write(buffer,\ * \ m'' at ',f5.1,',',f5.1,' font ''Arial,8''')\ * ac(8),XY(1,4),XY(2,4)+ac(8)*5.d0