Skip to content
Snippets Groups Projects
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