-
Amira Abdel-Rahman authoredAmira Abdel-Rahman authored
plotViz.jl 7.38 KiB
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