diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 652c96a..54f5b7b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -48,6 +48,10 @@ jobs: ${{ runner.os }}-test-${{ env.cache-name }}- ${{ runner.os }}-test- ${{ runner.os }}- + - run: | + julia --project -e ' + using Pkg + Pkg.Registry.add(url="https://github.com/j-fu/PackageNursery")' - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-runtest@v1 env: diff --git a/Project.toml b/Project.toml index 39528f8..53d5718 100644 --- a/Project.toml +++ b/Project.toml @@ -1,9 +1,10 @@ name = "PoissonBoltzmannIPAM2025" uuid = "480e0da0-c3fa-11f0-becb-6b90fb73a51e" -authors = ["Jürgen Fuhrmann "] version = "0.1.0" +authors = ["Jürgen Fuhrmann "] [deps] +AugmentedPoissonBoltzmann = "d8b18f01-5396-498d-b34d-247825c18ff1" Colors = "5ae59095-9a9b-59fe-a467-6f913c188581" DoubleFloats = "497a8b3b-efae-58df-a0af-a86822472b78" DrWatson = "634d3b9d-ee7a-5ddf-bec9-22491ea816e1" @@ -14,7 +15,6 @@ HypertextLiteral = "ac1192a8-f4b3-4bfe-ba22-af5b92cd3ab2" InteractiveUtils = "b77e0a4c-d291-57a0-90e8-8db25a27a240" Interpolations = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819" -JuliaMPBSolver = "d8b18f01-5396-498d-b34d-247825c18ff0" LaTeXStrings = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" LessUnitful = "f29f6376-6e90-4d80-80c9-fb8ec61203d5" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" @@ -31,10 +31,8 @@ UUIDs = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" VoronoiFVM = "82b139dc-5afc-11e9-35da-9b9bdfd336f3" -[sources] -JuliaMPBSolver = {path = "packages/JuliaMPBSolver"} - [compat] +AugmentedPoissonBoltzmann = "0.4.1" DoubleFloats = "1" DynamicQuantities = "1.10.0" ExampleJuggler = "2.4.0" @@ -57,9 +55,9 @@ julia = "1.11" [extras] ExampleJuggler = "3bbe58f8-ed81-4c4e-a134-03e85fcf4a1a" -JuliaMPBSolver = "d8b18f01-5396-498d-b34d-247825c18ff0" +AugmentedPoissonBoltzmann = "d8b18f01-5396-498d-b34d-247825c18ff1" Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [targets] -test = ["Pkg", "Test", "JuliaMPBSolver", "ExampleJuggler"] +test = ["Pkg", "Test", "AugmentedPoissonBoltzmann", "ExampleJuggler"] diff --git a/notebooks/HalfCellAppliedPotential.jl b/notebooks/HalfCellAppliedPotential.jl index bd758b0..6a1354d 100644 --- a/notebooks/HalfCellAppliedPotential.jl +++ b/notebooks/HalfCellAppliedPotential.jl @@ -21,7 +21,7 @@ begin using PythonPlot: pyplot using LaTeXStrings using Colors - using JuliaMPBSolver.ICMPBP: ICMPBP, ICMPBData, AppliedPotentialHalfCell, set_molarity!, calc_cmol, calc_c0mol, calc_χ, get_E, get_φ, get_p, get_c0, + using AugmentedPoissonBoltzmann.ICMPBP: ICMPBP, ICMPBData, AppliedPotentialHalfCell, set_molarity!, calc_cmol, calc_c0mol, calc_χ, get_E, get_φ, get_p, get_c0, set_κ!, set_φ! using DrWatson, PoissonBoltzmannIPAM2025 diff --git a/notebooks/ICMPBP-DD-Draft.jl b/notebooks/ICMPBP-DD-Draft.jl index 34a4159..eb52a78 100644 --- a/notebooks/ICMPBP-DD-Draft.jl +++ b/notebooks/ICMPBP-DD-Draft.jl @@ -28,7 +28,7 @@ begin using LessUnitful using Test using PythonPlot - using JuliaMPBSolver.ICMPBP: ICMPBData, ICMPBSystem, L_Debye, set_molarity!, dlcap0, DerivedData, apply_charge!, ysum, qsweep, capscalc, calc_cmol, calc_c0mol, calc_χ, W, pramp + using AugmentedPoissonBoltzmann.ICMPBP: ICMPBData, ICMPBSystem, L_Debye, set_molarity!, dlcap0, DerivedData, apply_charge!, ysum, qsweep, capscalc, calc_cmol, calc_c0mol, calc_χ, W, pramp end # ╔═╡ ef660f6f-9de3-4896-a65e-13c60df5de1e diff --git a/notebooks/ICMPBP-Draft.jl b/notebooks/ICMPBP-Draft.jl index 74e4e02..8ed3660 100644 --- a/notebooks/ICMPBP-Draft.jl +++ b/notebooks/ICMPBP-Draft.jl @@ -19,7 +19,7 @@ begin using Test using PythonPlot using Colors - using JuliaMPBSolver.ICMPBP: ICMPBData, ICMPBSystem, L_Debye, set_molarity!, dlcap0, DerivedData, apply_charge!, ysum, qsweep, capscalc + using AugmentedPoissonBoltzmann.ICMPBP: ICMPBData, ICMPBSystem, L_Debye, set_molarity!, dlcap0, DerivedData, apply_charge!, ysum, qsweep, capscalc end # ╔═╡ ef660f6f-9de3-4896-a65e-13c60df5de1e diff --git a/notebooks/ICMPBP-EndOfHackathon.jl b/notebooks/ICMPBP-EndOfHackathon.jl index 0c0d562..636bd99 100644 --- a/notebooks/ICMPBP-EndOfHackathon.jl +++ b/notebooks/ICMPBP-EndOfHackathon.jl @@ -29,7 +29,7 @@ begin using Test using PythonPlot using Colors - using JuliaMPBSolver.ICMPBP: ICMPBData, ICMPBSystem, L_Debye, set_molarity!, dlcap0, DerivedData, apply_charge!, ysum, qsweep, capscalc, calc_cmol, calc_c0mol + using AugmentedPoissonBoltzmann.ICMPBP: ICMPBData, ICMPBSystem, L_Debye, set_molarity!, dlcap0, DerivedData, apply_charge!, ysum, qsweep, capscalc, calc_cmol, calc_c0mol end # ╔═╡ ef660f6f-9de3-4896-a65e-13c60df5de1e diff --git a/notebooks/MPBP-Draft.jl b/notebooks/MPBP-Draft.jl index d25fdf9..a60c8dc 100644 --- a/notebooks/MPBP-Draft.jl +++ b/notebooks/MPBP-Draft.jl @@ -19,7 +19,7 @@ begin using Test using PythonPlot using Colors - using JuliaMPBSolver.ICMPBP: ICMPBData, ICMPBSystem, L_Debye, set_molarity!, dlcap0, DerivedData, apply_charge!, ysum, qsweep, capscalc + using AugmentedPoissonBoltzmann.ICMPBP: ICMPBData, ICMPBSystem, L_Debye, set_molarity!, dlcap0, DerivedData, apply_charge!, ysum, qsweep, capscalc end # ╔═╡ ef660f6f-9de3-4896-a65e-13c60df5de1e diff --git a/notebooks/SymmetricCellSurfaceCharge.jl b/notebooks/SymmetricCellSurfaceCharge.jl index ca32af3..c703d13 100644 --- a/notebooks/SymmetricCellSurfaceCharge.jl +++ b/notebooks/SymmetricCellSurfaceCharge.jl @@ -22,7 +22,7 @@ begin using LaTeXStrings using Colors using DrWatson, PoissonBoltzmannIPAM2025 - using JuliaMPBSolver.ICMPBP: ICMPBP, ICMPBData, SurfaceChargedSymmetricCell, AbstractSymmetricCell, set_molarity!, calc_cmol, calc_c0mol, calc_χ, get_E, get_φ, get_p, get_c0, + using AugmentedPoissonBoltzmann.ICMPBP: ICMPBP, ICMPBData, SurfaceChargedSymmetricCell, AbstractSymmetricCell, set_molarity!, calc_cmol, calc_c0mol, calc_χ, get_E, get_φ, get_p, get_c0, set_κ!, set_q! end diff --git a/scripts/ICMPB-csv.jl b/scripts/ICMPB-csv.jl index 765014d..e63e262 100644 --- a/scripts/ICMPB-csv.jl +++ b/scripts/ICMPB-csv.jl @@ -19,15 +19,15 @@ using DelimitedFiles using DrWatson using PoissonBoltzmannIPAM2025 -using JuliaMPBSolver +using AugmentedPoissonBoltzmann -const nel = 1.0 * JuliaMPBSolver.Units.el_surface_density # number of electrons/nm^2 at interfaces +const nel = 1.0 * AugmentedPoissonBoltzmann.Units.el_surface_density # number of electrons/nm^2 at interfaces const M_bulk = 2.0 # (bulk) molarity at center of domain -const E0 = 10JuliaMPBSolver.Units.V / JuliaMPBSolver.Units.nm # decrement parameter +const E0 = 10AugmentedPoissonBoltzmann.Units.V / AugmentedPoissonBoltzmann.Units.nm # decrement parameter const a = 5.0 / E0^2 # decrement parameter in χ(E) -const c̄ = 55.508JuliaMPBSolver.Units.M # summary molar concentration +const c̄ = 55.508AugmentedPoissonBoltzmann.Units.M # summary molar concentration const z = [-1, 1] -const c_bulk = [M_bulk / abs(z[1]), M_bulk / abs(z[2])] * JuliaMPBSolver.Units.M # bulk concentrations +const c_bulk = [M_bulk / abs(z[1]), M_bulk / abs(z[2])] * AugmentedPoissonBoltzmann.Units.M # bulk concentrations const F = ph"N_A" * ph"e" const K = ufac"K" @@ -46,8 +46,8 @@ const L = 2.278592867nm # computational domain size const N = length(z) # Parameters -user_parameters = JuliaMPBSolver.Parameters.UserParameters( - 273.15 + 25 * JuliaMPBSolver.Units.K, +user_parameters = AugmentedPoissonBoltzmann.Parameters.UserParameters( + 273.15 + 25 * AugmentedPoissonBoltzmann.Units.K, 78.49 - 1, 0.0, 0.0, @@ -63,15 +63,15 @@ user_parameters = JuliaMPBSolver.Parameters.UserParameters( ) computed_parameters = - JuliaMPBSolver.Parameters.ComputedParameters(user_parameters) + AugmentedPoissonBoltzmann.Parameters.ComputedParameters(user_parameters) -grid_parameters = JuliaMPBSolver.Grid.UniformGrid( +grid_parameters = AugmentedPoissonBoltzmann.Grid.UniformGrid( domain_size = L, refinement = 4, n_points = 20, use_offset = false, ) -grid = JuliaMPBSolver.Grid.create_full_cell(grid_parameters) +grid = AugmentedPoissonBoltzmann.Grid.create_full_cell(grid_parameters) const i3 = grid[BFaceNodes][1, 3] # Index of grid midpoint @@ -190,7 +190,7 @@ indata = (M = M_bulk, q = 1, L = L / nm, n = length(Z)) savename(indata) -c3_avg = fill(M_bulk * JuliaMPBSolver.Units.M, 2) +c3_avg = fill(M_bulk * AugmentedPoissonBoltzmann.Units.M, 2) data3 = PBData( c_avg = c3_avg, @@ -200,13 +200,13 @@ data3 = PBData( sys3 = ICMPBSystem(data = data3, generic = xreaction!) -JuliaMPBSolver.Equations.add_boundary_charge!( +AugmentedPoissonBoltzmann.Equations.add_boundary_charge!( sys3, 1, 2, -user_parameters.boundary_electron_density, ) -JuliaMPBSolver.Equations.add_boundary_charge!( +AugmentedPoissonBoltzmann.Equations.add_boundary_charge!( sys3, 1, 1, @@ -224,9 +224,9 @@ sol3 = solve!(state3; inival = inival3, verbose = "n", damp_initial = 0.5) conc = concentrations(sol3, data3, c_ref = extcref(sol3[2:N, i3], data3)) / - (JuliaMPBSolver.Units.M) + (AugmentedPoissonBoltzmann.Units.M) -c0 = c̄ / (JuliaMPBSolver.Units.M) .- sum(conc, dims = 1) +c0 = c̄ / (AugmentedPoissonBoltzmann.Units.M) .- sum(conc, dims = 1) reference_data_filename = resultsdir(savename("icmpb", indata, "hdf5")) print(reference_data_filename) @@ -236,13 +236,13 @@ if !isfile(reference_data_filename) end (x_ref, c_solvent_ref) = - JuliaMPBSolver.DataOut.read_hdf5_data(reference_data_filename, "c_solvent") + AugmentedPoissonBoltzmann.DataOut.read_hdf5_data(reference_data_filename, "c_solvent") (x_ref, c_anion_ref) = - JuliaMPBSolver.DataOut.read_hdf5_data(reference_data_filename, "c_anion") + AugmentedPoissonBoltzmann.DataOut.read_hdf5_data(reference_data_filename, "c_anion") (x_ref, c_cation_ref) = - JuliaMPBSolver.DataOut.read_hdf5_data(reference_data_filename, "c_cation") + AugmentedPoissonBoltzmann.DataOut.read_hdf5_data(reference_data_filename, "c_cation") -same_x = x_ref == JuliaMPBSolver.Grid.get_coordinates(grid) +same_x = x_ref == AugmentedPoissonBoltzmann.Grid.get_coordinates(grid) if !same_x throw(ErrorException("Grid coordinates mismatch")) end diff --git a/scripts/equilibrium.jl b/scripts/equilibrium.jl index 22728fc..263c3d0 100644 --- a/scripts/equilibrium.jl +++ b/scripts/equilibrium.jl @@ -12,7 +12,7 @@ using LessUnitful.MoreUnitful using Test using PythonPlot using Colors -using JuliaMPBSolver +using AugmentedPoissonBoltzmann function L_Debye(data) return sqrt( @@ -379,15 +379,15 @@ begin L = 20nm end -grid_parameters = JuliaMPBSolver.Grid.GeometricGrid( +grid_parameters = AugmentedPoissonBoltzmann.Grid.GeometricGrid( domain_size = L, refinement = 0, hmin = 0.05 * nm, hmax = 0.5 * nm, use_offset = false, ) -grid = JuliaMPBSolver.Grid.create_half_cell(grid_parameters) -X = JuliaMPBSolver.Grid.get_coordinates(grid) +grid = AugmentedPoissonBoltzmann.Grid.create_half_cell(grid_parameters) +X = AugmentedPoissonBoltzmann.Grid.get_coordinates(grid) sys_sy = create_equilibrium_system(grid, equidata) diff --git a/scripts/simplecell-bsk.jl b/scripts/simplecell-bsk.jl index a3a74ea..30e4305 100644 --- a/scripts/simplecell-bsk.jl +++ b/scripts/simplecell-bsk.jl @@ -6,20 +6,20 @@ using LinearAlgebra using Interpolations using VoronoiFVM using PythonPlot -using JuliaMPBSolver +using AugmentedPoissonBoltzmann using JLD2 -const nel = 20.0 * JuliaMPBSolver.Units.el_surface_density # number of electrons/nm^2 at interfaces +const nel = 20.0 * AugmentedPoissonBoltzmann.Units.el_surface_density # number of electrons/nm^2 at interfaces const M_bulk = 1 # (bulk) molarity at center of domain -const E0 = 10JuliaMPBSolver.Units.V / JuliaMPBSolver.Units.nm # decrement parameter +const E0 = 10AugmentedPoissonBoltzmann.Units.V / AugmentedPoissonBoltzmann.Units.nm # decrement parameter const a = 5.0 / E0^2 # decrement parameter in χ(E) -const c̄ = 55.508JuliaMPBSolver.Units.M # summary molar concentration +const c̄ = 55.508AugmentedPoissonBoltzmann.Units.M # summary molar concentration const z = [-1, 1] -const c_bulk = [M_bulk / abs(z[1]), M_bulk / abs(z[2])] * JuliaMPBSolver.Units.M # bulk concentrations +const c_bulk = [M_bulk / abs(z[1]), M_bulk / abs(z[2])] * AugmentedPoissonBoltzmann.Units.M # bulk concentrations # Parameters -user_parameters = JuliaMPBSolver.Parameters.UserParameters( - 273.15 + 25 * JuliaMPBSolver.Units.K, +user_parameters = AugmentedPoissonBoltzmann.Parameters.UserParameters( + 273.15 + 25 * AugmentedPoissonBoltzmann.Units.K, 78.49 - 1, 0.0, 0.0, @@ -31,22 +31,22 @@ user_parameters = JuliaMPBSolver.Parameters.UserParameters( true, false, true, - 1 * JuliaMPBSolver.Units.nm, + 1 * AugmentedPoissonBoltzmann.Units.nm, ) computed_parameters = - JuliaMPBSolver.Parameters.ComputedParameters(user_parameters) + AugmentedPoissonBoltzmann.Parameters.ComputedParameters(user_parameters) -grid_parameters = JuliaMPBSolver.Grid.GeometricGrid( - domain_size = 10.0 * JuliaMPBSolver.Units.nm, +grid_parameters = AugmentedPoissonBoltzmann.Grid.GeometricGrid( + domain_size = 10.0 * AugmentedPoissonBoltzmann.Units.nm, refinement = 4, - hmin = 1.0e-1 * JuliaMPBSolver.Units.nm, - hmax = 1.0 * JuliaMPBSolver.Units.nm, + hmin = 1.0e-1 * AugmentedPoissonBoltzmann.Units.nm, + hmax = 1.0 * AugmentedPoissonBoltzmann.Units.nm, use_offset = false, ) solution, X, nv, ε_r = - JuliaMPBSolver.Equations.create_and_run_full_cell_problem( + AugmentedPoissonBoltzmann.Equations.create_and_run_full_cell_problem( grid_parameters, user_parameters, computed_parameters, diff --git a/scripts/simplecell.jl b/scripts/simplecell.jl index 934a250..ea53569 100644 --- a/scripts/simplecell.jl +++ b/scripts/simplecell.jl @@ -6,20 +6,20 @@ using LinearAlgebra using Interpolations using VoronoiFVM using PythonPlot -using JuliaMPBSolver +using AugmentedPoissonBoltzmann using JLD2 -const nel = 20.0 * JuliaMPBSolver.Units.el_surface_density # number of electrons/nm^2 at interfaces +const nel = 20.0 * AugmentedPoissonBoltzmann.Units.el_surface_density # number of electrons/nm^2 at interfaces const M_bulk = 1 # (bulk) molarity at center of domain -const E0 = 10JuliaMPBSolver.Units.V / JuliaMPBSolver.Units.nm # decrement parameter +const E0 = 10AugmentedPoissonBoltzmann.Units.V / AugmentedPoissonBoltzmann.Units.nm # decrement parameter const a = 5.0 / E0^2 # decrement parameter in χ(E) -const c̄ = 55.508JuliaMPBSolver.Units.M # summary molar concentration +const c̄ = 55.508AugmentedPoissonBoltzmann.Units.M # summary molar concentration const z = [-1, 1] -const c_bulk = [M_bulk / abs(z[1]), M_bulk / abs(z[2])] * JuliaMPBSolver.Units.M # bulk concentrations +const c_bulk = [M_bulk / abs(z[1]), M_bulk / abs(z[2])] * AugmentedPoissonBoltzmann.Units.M # bulk concentrations # Parameters -user_parameters = JuliaMPBSolver.Parameters.UserParameters( - 273.15 + 25 * JuliaMPBSolver.Units.K, +user_parameters = AugmentedPoissonBoltzmann.Parameters.UserParameters( + 273.15 + 25 * AugmentedPoissonBoltzmann.Units.K, 78.49 - 1, 0.0, 0.0, @@ -35,19 +35,19 @@ user_parameters = JuliaMPBSolver.Parameters.UserParameters( ) computed_parameters = - JuliaMPBSolver.Parameters.ComputedParameters(user_parameters) + AugmentedPoissonBoltzmann.Parameters.ComputedParameters(user_parameters) # Grid generation -grid_parameters = JuliaMPBSolver.Grid.GeometricGrid( - domain_size = 10.0 * JuliaMPBSolver.Units.nm, +grid_parameters = AugmentedPoissonBoltzmann.Grid.GeometricGrid( + domain_size = 10.0 * AugmentedPoissonBoltzmann.Units.nm, refinement = 4, - hmin = 1.0e-1 * JuliaMPBSolver.Units.nm, - hmax = 1.0 * JuliaMPBSolver.Units.nm, + hmin = 1.0e-1 * AugmentedPoissonBoltzmann.Units.nm, + hmax = 1.0 * AugmentedPoissonBoltzmann.Units.nm, use_offset = false, ) solution, X, nv, ε_r = - JuliaMPBSolver.Equations.create_and_run_full_cell_problem( + AugmentedPoissonBoltzmann.Equations.create_and_run_full_cell_problem( grid_parameters, user_parameters, computed_parameters, diff --git a/src/PoissonBoltzmannIPAM2025.jl b/src/PoissonBoltzmannIPAM2025.jl index 6db945b..bda7489 100644 --- a/src/PoissonBoltzmannIPAM2025.jl +++ b/src/PoissonBoltzmannIPAM2025.jl @@ -6,7 +6,7 @@ using LessUnitful using ExtendableGrids using VoronoiFVM using Test -using JuliaMPBSolver.ICMPBP: ICMPBP, SurfaceChargedSymmetricCell, AbstractHalfCell, AbstractSymmetricCell, set_molarity!, calc_cmol, calc_c0mol, calc_χ, get_E, get_φ, get_p, get_c0, +using AugmentedPoissonBoltzmann.ICMPBP: ICMPBP, SurfaceChargedSymmetricCell, AbstractHalfCell, AbstractSymmetricCell, set_molarity!, calc_cmol, calc_c0mol, calc_χ, get_E, get_φ, get_p, get_c0, set_κ!, set_q!, set_φ!, pramp resultsdir(args...) = projectdir("results", args...) diff --git a/test/runtests.jl b/test/runtests.jl index 42abb73..9ec0df3 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1,5 +1,5 @@ using Pkg -using JuliaMPBSolver +using AugmentedPoissonBoltzmann using ExampleJuggler using Test using Markdown @@ -42,5 +42,3 @@ end end end - -Pkg.test("JuliaMPBSolver")