tInclude fixed bottom particles in plot, add entr command to makefile - cngf-pf - continuum model for granular flows with pore-pressure dynamics (renamed from 1d_fd_simple_shear)
 (HTM) git clone git://src.adamsgaard.dk/cngf-pf
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 872d50f8ad089e76a93a5415628f580a3cc5b51b
 (DIR) parent 95cdb6dd109d1a82e9ae6d0f20e46d2929b5dd80
 (HTM) Author: Anders Damsgaard <anders@adamsgaard.dk>
       Date:   Fri,  5 Apr 2019 10:01:39 +0200
       
       Include fixed bottom particles in plot, add entr command to makefile
       
       Diffstat:
         M 1d_fd_simple_shear.jl               |      27 ++++++++++++++++++---------
         M Makefile                            |      10 ++++++++--
       
       2 files changed, 26 insertions(+), 11 deletions(-)
       ---
 (DIR) diff --git a/1d_fd_simple_shear.jl b/1d_fd_simple_shear.jl
       t@@ -30,7 +30,8 @@ nz = 100
        ### nonlocal amplitude [-]
        # lower values of A mean that the velocity curve can have sharper curves, e.g.
        # at the transition from μ ≈ μ_s
       -A = 0.48        # Henann and Kamrin 2016
       +#A = 0.48        # Henann and Kamrin 2016
       +A = 0.40        # Loose fit to Damsgaard et al 2013
        
        ### rate dependence beyond yield [-]
        # lower values of b mean larger shear velocity for a given stress ratio above
       t@@ -43,7 +44,7 @@ b = 0.9377      # Henann and Kamrin 2016
        
        ### porosity [-]
        #ϕ = 0.38        # Henann and Kamrin 2016
       -ϕ = 0.28        # Damsgaard et al 2013
       +ϕ = 0.25        # Damsgaard et al 2013
        
        # representative grain size [m]
        # lower values of d mean that the shear velocity curve can have sharper curves,
       t@@ -103,11 +104,11 @@ end
        
        ## Update ghost nodes for g from current values
        ## BC: Dirichlet (g = 0)
       -function set_bc_dirichlet(g_ghost, boundary, value=0.0)
       +function set_bc_dirichlet(g_ghost, boundary; value=0.0, idx_offset=0)
            if boundary == "-z"
       -        g_ghost[1] = value
       +        g_ghost[1+idx_offset] = value
            elseif boundary == "+z"
       -        g_ghost[end] = value
       +        g_ghost[end-idx_offset] = value
            else
                @error "boundary '$boundary' not understood"
            end
       t@@ -155,7 +156,7 @@ end
        
        ## Iteratively solve the system laplace(phi) = f
        function implicit_1d_jacobian_poisson_solver(g, p, μ, Δz,
       -                                             rel_tol=1e-6,
       +                                             rel_tol=1e-5,
                                                     max_iter=10_000,
                                                     verbose=false)
        
       t@@ -172,18 +173,26 @@ function implicit_1d_jacobian_poisson_solver(g, p, μ, Δz,
        
            # array of normalized residuals
            r_norm = zero(p)
       +    r_norm_max = 0.0
        
            for iter=1:max_iter
        
                set_bc_neumann(g, "+z")
                set_bc_dirichlet(g, "-z")
       +
       +        # Damsgaard et al 2013 include fixed grains in plot
       +        for i=1:9
       +            set_bc_dirichlet(g, "-z", idx_offset=i)
       +        end
       +
                if verbose
                    println("g after BC: ")
                    println(g)
                end
        
                # perform a single jacobi iteration in each cell
       -        for iz=1:length(p)
       +        #for iz=1:length(p)
       +        for iz=10:length(p)
                    poisson_solver_1d_iteration(g, g_out, r_norm,
                                                μ, p, iz, Δz)
                end
       t@@ -215,7 +224,7 @@ function implicit_1d_jacobian_poisson_solver(g, p, μ, Δz,
                    return
                end
            end
       -    @error "Solution did not converge after $iter (r_norm_max = $r_norm_max)"
       +    @error "Solution didn't converge after $max_iter iterations ($r_norm_max)"
        end
        
        function plot_profile(z, v, label, filename)
       t@@ -265,7 +274,7 @@ PyPlot.xlabel("Normalized shear displacement, [m]")
        PyPlot.ylabel("Vertical position, \$z\$ [m]")
        PyPlot.legend()
        PyPlot.tight_layout()
       -PyPlot.savefig("1d_fd_simple_shear_v_x.png")
       +PyPlot.savefig("1d_fd_simple_shear.png")
        PyPlot.close()
        
        end # end let
 (DIR) diff --git a/Makefile b/Makefile
       t@@ -1,2 +1,8 @@
       -1d_fd_simple_shear_v_x.png: 1d_fd_simple_shear.jl
       -        julia --banner=no --color=yes $<
       +JULIA=julia --banner=no --color=yes
       +
       +.PHONY: run
       +run: 1d_fd_simple_shear.jl
       +        echo "$<" | entr -s '$(JULIA) "$<"'
       +
       +1d_fd_simple_shear.png: 1d_fd_simple_shear.jl
       +        $(JULIA) $<