function getSetup1(fileName) setup = Dict() # name=string("../json/setupTestUni$latticeSize",".json") name=string("./json/$(fileName)",".json") open(name, "r") do f #global setup dicttxt = String(read(f)) # file information to string setup=JSON.parse(dicttxt) # parse and transform data end return setup end 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 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) 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 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 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