Skip to content
Snippets Groups Projects
plotViz.jl 7.38 KiB
Newer Older
  • Learn to ignore specific revisions
  • 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
    
    Amira Abdel-Rahman's avatar
    Amira Abdel-Rahman committed
        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"]
    
    Amira Abdel-Rahman's avatar
    Amira Abdel-Rahman committed
        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"]])
    
    Amira Abdel-Rahman's avatar
    Amira Abdel-Rahman committed
        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"]
    
    Amira Abdel-Rahman's avatar
    Amira Abdel-Rahman committed
        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"]])
    
    Amira Abdel-Rahman's avatar
    Amira Abdel-Rahman committed
        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"))
    
    function plotStressTroughTimeSteps(name)
        setupViz=getSetup1("$(name)/0")
        maxNumFiles=setupViz["maxNumFiles"]
    
    Amira Abdel-Rahman's avatar
    Amira Abdel-Rahman committed
        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
    
    Amira Abdel-Rahman's avatar
    Amira Abdel-Rahman committed
        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)
    
    Amira Abdel-Rahman's avatar
    Amira Abdel-Rahman committed
        display(scatter(s,title="final stress",label="",ylabel="stress",xlabel="node ID"))
    
    end
    
    function plotStressStrainTroughTimeSteps(name,id)
        setupViz=getSetup1("$(name)/0")
        maxNumFiles=setupViz["maxNumFiles"]
    
    Amira Abdel-Rahman's avatar
    Amira Abdel-Rahman committed
        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"]])
    
    Amira Abdel-Rahman's avatar
    Amira Abdel-Rahman committed
            append!(strain,[(lengthVector3(p1-p2)/lengthVector3(p11-p21))-1.0])
    
    Amira Abdel-Rahman's avatar
    Amira Abdel-Rahman committed
        # 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))