using Plots ##############Final Displacement##################### function plotFinalDisplacement(name) setupViz=getSetup1("$(name)/0") maxNumFiles=setupViz["maxNumFiles"] setupVizLast=getSetup1("$(name)/$(Int(maxNumFiles-1))"); nodes=setupVizLast["nodes"] disX=[] disY=[] disZ=[] for node in nodes append!(disX,[node["displacement"]["x"]]) append!(disY,[node["displacement"]["y"]]) append!(disZ,[node["displacement"]["z"]]) end display(scatter(disX,title="final x displacement",label="",ylabel="displacement",xlabel="node ID")) display(scatter(disY,title="final y displacement",label="",ylabel="displacement",xlabel="node ID")) display(scatter(disZ,title="final z displacement",label="",ylabel="displacement",xlabel="node ID")) end function plotFinalDisplacement(name,axis) setupViz=getSetup1("$(name)/0") maxNumFiles=setupViz["maxNumFiles"] setupVizLast=getSetup1("$(name)/$(Int(maxNumFiles-1))"); nodes=setupVizLast["nodes"] dis=[] for node in nodes append!(dis,[node["displacement"][axis]]) end display(scatter(dis,title="final $(axis) displacement",label="",ylabel="displacement",xlabel="node ID")) end function getFinalDisplacement(name,id,axis) setupViz=getSetup1("$(name)/0") maxNumFiles=setupViz["maxNumFiles"] setupVizLast=getSetup1("$(name)/$(Int(maxNumFiles-1))"); node=setupVizLast["nodes"][id] return node["displacement"][axis] end function plotFinalDisplacementFEA(setup,name) nodes=setup["nodes"] disXFEA=[] disYFEA=[] disZFEA=[] for node in nodes append!(disXFEA,[node["displacement"]["x"]]) append!(disYFEA,[node["displacement"]["y"]]) append!(disZFEA,[node["displacement"]["z"]]) end setupViz=getSetup1("$(name)/0") maxNumFiles=setupViz["maxNumFiles"] setupVizLast=getSetup1("$(name)/$(Int(maxNumFiles-1))"); nodes=setupVizLast["nodes"] disX=[] disY=[] disZ=[] for node in nodes append!(disX,[node["displacement"]["x"]]) append!(disY,[node["displacement"]["y"]]) append!(disZ,[node["displacement"]["z"]]) end scatter(disX,title="final x displacement",label="//",ylabel="displacement",xlabel="node ID") display(scatter!(disXFEA,title="final x displacement",label="FEA",ylabel="displacement",xlabel="node ID",alpha = 0.75,markershape =:utriangle)) scatter(disY,title="final y displacement",label="//",ylabel="displacement",xlabel="node ID") display(scatter!(disYFEA,title="final y displacement",label="FEA",ylabel="displacement",xlabel="node ID",alpha = 0.75,markershape =:utriangle)) scatter(disZ,title="final z displacement",label="//",ylabel="displacement",xlabel="node ID") display(scatter!(disZFEA,title="final z displacement",label="FEA",ylabel="displacement ",xlabel="node ID",alpha = 0.75,markershape =:utriangle)) end #################DisplacementTroughTimeSteps################## function plotDisplacementTroughTimeSteps(name,id) setupViz=getSetup1("$(name)/0") maxNumFiles=setupViz["maxNumFiles"] numTimeSteps=setupViz["numTimeSteps"] x=(1:maxNumFiles).*floor(numTimeSteps/maxNumFiles) disX=[] disY=[] disZ=[] for i in 0:(maxNumFiles-1) setupViz=getSetup1("$(name)/$(Int(i))"); node=setupViz["nodes"][id] append!(disX,[node["displacement"]["x"]]) append!(disY,[node["displacement"]["y"]]) append!(disZ,[node["displacement"]["z"]]) end display(plot(x,disX,title="x displacement",label="",ylabel="displacement",xlabel="timestep")) display(plot(x,disY,title="y displacement",label="",ylabel="displacement",xlabel="timestep")) display(plot(x,disZ,title="z displacement",label="",ylabel="displacement",xlabel="timestep")) end function plotDisplacementTroughTimeSteps(name,id,axis) setupViz=getSetup1("$(name)/0") maxNumFiles=setupViz["maxNumFiles"] numTimeSteps=setupViz["numTimeSteps"] x=(1:maxNumFiles).*floor(numTimeSteps/maxNumFiles) dis=[] for i in 0:(maxNumFiles-1) setupViz=getSetup1("$(name)/$(Int(i))"); node=setupViz["nodes"][id] append!(dis,[node["displacement"][axis]]) end display(plot(x,dis,title="$(axis) displacement",label="",ylabel="displacement",xlabel="timestep")) end function plotDisplacementTroughTimeSteps(name) setupViz=getSetup1("$(name)/0") maxNumFiles=setupViz["maxNumFiles"] numTimeSteps=setupViz["numTimeSteps"] x=(1:maxNumFiles).*floor(numTimeSteps/maxNumFiles) disX=[] disY=[] disZ=[] for i in 0:(maxNumFiles-1) setupViz=getSetup1("$(name)/$(Int(i))"); node=setupViz["nodes"][end] append!(disX,[node["displacement"]["x"]]) append!(disY,[node["displacement"]["y"]]) append!(disZ,[node["displacement"]["z"]]) end display(plot(x,disX,title="x displacement",label="",ylabel="displacement",xlabel="timestep")) display(plot(x,disY,title="y displacement",label="",ylabel="displacement",xlabel="timestep")) display(plot(x,disZ,title="z displacement",label="",ylabel="displacement",xlabel="timestep")) end #############Stress###################### function plotStressTroughTimeSteps(name) setupViz=getSetup1("$(name)/0") maxNumFiles=setupViz["maxNumFiles"] numTimeSteps=setupViz["numTimeSteps"] x=(1:maxNumFiles).*floor(numTimeSteps/maxNumFiles) s=[] for i in 0:(maxNumFiles-1) setupViz=getSetup1("$(name)/$(Int(i))"); edge=setupViz["edges"][end] append!(s,[edge["stress"]]) end display(plot(x,s,title="x",label="",ylabel="stress",xlabel="timestep")) end function plotFinalStress(name) setupViz=getSetup1("$(name)/0") maxNumFiles=setupViz["maxNumFiles"] setupVizLast=getSetup1("$(name)/$(Int(maxNumFiles-1))"); edges=setupVizLast["edges"] s=[] for edge in edges append!(s,[edge["stress"]]) end # println(s) display(scatter(s,title="final stress",label="",ylabel="stress",xlabel="node ID")) end ###############Strain#################### function plotStressStrainTroughTimeSteps(name,id) setupViz=getSetup1("$(name)/0") maxNumFiles=setupViz["maxNumFiles"] numTimeSteps=setupViz["numTimeSteps"] x=(1:maxNumFiles).*floor(numTimeSteps/maxNumFiles) stress=[] strain=[] for i in 0:(maxNumFiles-1) setupViz=getSetup1("$(name)/$(Int(i))"); edge=setupViz["edges"][id] node1=setupViz["nodes"][edge["source"]+1] node2=setupViz["nodes"][edge["target"]+1] p11=Vector3(node1["position"]["x"], node1["position"]["y"], node1["position"]["z"]) p21=Vector3(node2["position"]["x"], node2["position"]["y"], node2["position"]["z"]) p1=Vector3( node1["position"]["x"]+node1["displacement"]["x"], node1["position"]["y"]+node1["displacement"]["y"], node1["position"]["z"]+node1["displacement"]["z"]) p2=Vector3( node2["position"]["x"]+node2["displacement"]["x"], node2["position"]["y"]+node2["displacement"]["y"], node2["position"]["z"]+node2["displacement"]["z"]) append!(stress,[edge["stress"]]) append!(strain,[(lengthVector3(p1-p2)/lengthVector3(p11-p21))-1.0]) end # display(plot(stress./strain,title="yougs modulus",label="")) display(plot(x,stress./(strain.+1.0),title="",label="",ylabel="stress/strain",xlabel="timestep")) display(plot(x,stress,title="stress",label="",ylabel="stress",xlabel="timestep")) display(plot(x,strain,title="strain",label="",ylabel="strain",xlabel="timestep")) display(plot(stress,strain,title="stress strain",label="",ylabel="stress",xlabel="strain")) end function plotPrescribedTroughTimeSteps(name,id,strainData,stressData) setupViz=getSetup1("$(name)/0") maxNumFiles=setupViz["maxNumFiles"] numTimeSteps=setupViz["numTimeSteps"] x=(1:maxNumFiles).*floor(numTimeSteps/maxNumFiles) stress=[] strain=[] currentID=1 prescribedX=[] prescribedY=[] for i in 0:(maxNumFiles-1) setupViz=getSetup1("$(name)/$(Int(i))"); edge=setupViz["edges"][id] node1=setupViz["nodes"][edge["source"]+1] node2=setupViz["nodes"][edge["target"]+1] p11=Vector3(node1["position"]["x"], node1["position"]["y"], node1["position"]["z"]) p21=Vector3(node2["position"]["x"], node2["position"]["y"], node2["position"]["z"]) p1=Vector3( node1["position"]["x"]+node1["displacement"]["x"], node1["position"]["y"]+node1["displacement"]["y"], node1["position"]["z"]+node1["displacement"]["z"]) p2=Vector3( node2["position"]["x"]+node2["displacement"]["x"], node2["position"]["y"]+node2["displacement"]["y"], node2["position"]["z"]+node2["displacement"]["z"]) append!(stress,[edge["stress"]]) append!(strain,[(lengthVector3(p1-p2)/lengthVector3(p11-p21))-1.0]) if currentID<=length(strainData) if (strain[end]>strainData[currentID]) ||(currentID>4&&strain[end]<0.3) append!(prescribedX,[i*floor(numTimeSteps/maxNumFiles)]) append!(prescribedY,[stressData[currentID]/(strainData[currentID]+1.0)]) currentID+=1 end end end # prescribedX[4]=0.9e4 # println(currentID) # println(length(strainData)) # println(prescribedX) # display(plot(stress./strain,title="yougs modulus",label="")) plot(x,stress./(strain.+1.0),title="",label="Observed",ylabel="stress/strain",xlabel="timestep") scatter!(prescribedX,prescribedY,title="",label="",color=:black) display(plot!(prescribedX,prescribedY,title="",label="Prescibed",color=:black)) end ##################################