Skip to content

Commit

Permalink
wettability gradient works
Browse files Browse the repository at this point in the history
  • Loading branch information
Zitzeronion committed Feb 22, 2024
1 parent f092277 commit f69b93e
Showing 1 changed file with 15 additions and 11 deletions.
26 changes: 15 additions & 11 deletions scripts/Rivulet_stability.jl
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ function rivulet_run(
device::String;
shape = :ring,
arrested = false,
gradient = false,
gradient = (false, 1/18, 2/9),
R = 150,
rr = 100,
ϵ = 0.01,
Expand All @@ -56,7 +56,7 @@ function rivulet_run(
theta[i] = 1/3
end
end
elseif gradient
elseif gradient[1]
# Wettability gradient that radial decreases the contact angle
theta = zeros(sys.Lx, sys.Ly)
dist = zeros(sys.Lx, sys.Ly)
Expand All @@ -65,15 +65,16 @@ function rivulet_run(
dist[i,j] = round(Int, sqrt((i - sys.Lx÷2)^2 + (j - sys.Ly÷2)^2))
end
end
theta .= π/(6R) .* dist .+ π/18
theta[dist .> R] .= 2π/9
# All values will be multiplied with pi inside the pressure calculation
theta .= (gradient[3]-gradient[2])/R .* dist .+ gradient[2]
theta[dist .> R] .= gradient[3]
end
# Push it to the desired device
if device == "CPU"
state.height .= h
elseif device == "GPU"
CUDA.copyto!(state.height, h)
if arrested || gradient
if arrested || gradient[1]
pinned = CUDA.zeros(Float64, sys.Lx, sys.Ly)
CUDA.copyto!(pinned, theta)
end
Expand All @@ -91,7 +92,7 @@ function rivulet_run(
end
end

if arrested || gradient
if arrested || gradient[1]
Swalbe.filmpressure!(state.pressure, state.height, state.dgrad, sys.param.γ, pinned, sys.param.n, sys.param.m, sys.param.hmin, sys.param.hcrit)
else
Swalbe.filmpressure!(state, sys)
Expand Down Expand Up @@ -121,13 +122,14 @@ timeInterval = 25000

# Make a parameter sweep
for ang in [2/9] # 1/9, 1/6,
for deltas in [1.0] # 0.5, 2.5
sys = Swalbe.SysConst(512, 512, Swalbe.Taumucs(Tmax=2500000, δ=deltas , n=3, m=2, θ=ang))
# for deltas in [1.0] # 0.5, 2.5
for mintheta in [1/9, 1/6] # 0.5, 2.5
sys = Swalbe.SysConst(512, 512, Swalbe.Taumucs(Tmax=2500000, δ=1.0, n=3, m=2, θ=ang))
for outerRad in [180]# [160, 180, 200]
for innerRad in [20]# [60, 80, 100]
# Run the simulation
arr = false #true
grad = true #true
grad = (true, mintheta, ang) #true
slips = false
fluid = rivulet_run(sys, "GPU", R=outerRad, rr=innerRad, arrested=arr, dump=timeInterval, gradient=grad)
df_fluid = Dict()
Expand All @@ -137,13 +139,15 @@ for ang in [2/9] # 1/9, 1/6,
df_fluid["h_$(t * timeInterval)"] = fluid[t,:]
end
println("Saving rivulet snapshots for R=$(outerRad) and r=$(innerRad) to disk")
save_ang = Int(round(rad2deg*sys.param.θ)))
save_ang = round(Int,rad2deg*sys.param.θ))
theta_c = round(Int,rad2deg*mintheta))
theta_o = round(Int,rad2deg*ang))
if arr
file_name = "data/Rivulets/arrested_height_R_$(outerRad)_r_$(innerRad)_ang_$(save_ang)_kbt_$(sys.param.kbt)_nm_$(sys.param.n)-$(sys.param.m)_runDate_$(year(today()))$(month(today()))$(day(today()))$(hour(now()))$(minute(now())).jld2"
elseif slips
file_name = "data/Rivulets/slip_$(Int(10*deltas))_height_R_$(outerRad)_r_$(innerRad)_ang_$(save_ang)_kbt_$(sys.param.kbt)_nm_$(sys.param.n)-$(sys.param.m)_runDate_$(year(today()))$(month(today()))$(day(today()))$(hour(now()))$(minute(now())).jld2"
elseif grad
file_name = "data/Rivulets/wet_grad_lin_1040_height_R_$(outerRad)_r_$(innerRad)_ang_$(save_ang)_kbt_$(sys.param.kbt)_nm_$(sys.param.n)-$(sys.param.m)_runDate_$(year(today()))$(month(today()))$(day(today()))$(hour(now()))$(minute(now())).jld2"
file_name = "data/Rivulets/wet_grad_lin_$(theta_c)$(theta_o)_height_R_$(outerRad)_r_$(innerRad)_ang_$(save_ang)_kbt_$(sys.param.kbt)_nm_$(sys.param.n)-$(sys.param.m)_runDate_$(year(today()))$(month(today()))$(day(today()))$(hour(now()))$(minute(now())).jld2"
else
file_name = "data/Rivulets/height_R_$(outerRad)_r_$(innerRad)_ang_$(save_ang)_kbt_$(sys.param.kbt)_nm_$(sys.param.n)-$(sys.param.m)_runDate_$(year(today()))$(month(today()))$(day(today()))$(hour(now()))$(minute(now())).jld2"
end
Expand Down

0 comments on commit f69b93e

Please sign in to comment.