Skip to content

Commit 7a67ded

Browse files
authored
Remove Requires and implement a Makie extension instead (#181)
* remove Requires and add a Makie extension * test the plotting code in scripts using CairoMakie as a backend * fix deps * result.topology -> result.minimizer * savefig -> save * fix typo * add GeometryBasics to docs Project.toml * throw a more informative error in the default visualize method
1 parent 33180ca commit 7a67ded

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+477
-457
lines changed

Project.toml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
3131
Preconditioners = "af69fa37-3177-5a40-98ee-561f696e4fcd"
3232
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
3333
Reexport = "189a3867-3050-52da-a836-e630ba90ab69"
34-
Requires = "ae029012-a4dd-5104-9daa-d747884805df"
3534
Revise = "295af30f-e4ad-537b-8983-00126c2a3abe"
3635
Setfield = "efcf1570-3423-57d1-acb7-fd33fddbac46"
3736
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
@@ -70,7 +69,6 @@ NonconvexSemidefinite = "0.1.7"
7069
Parameters = "0.12"
7170
Preconditioners = "0.3, 0.4, 0.5, 0.6"
7271
Reexport = "1"
73-
Requires = "1.1"
7472
Revise = "3"
7573
Setfield = "0.7, 0.8, 1"
7674
StaticArrays = "1"
@@ -81,4 +79,10 @@ TimerOutputs = "0.5"
8179
VTKDataTypes = "0.1"
8280
WriteVTK = "1.9"
8381
Zygote = "0.6"
84-
julia = "1.5, 1.6"
82+
julia = "1.9"
83+
84+
[weakdeps]
85+
Makie = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a"
86+
87+
[extensions]
88+
TopOptMakieExt = "Makie"

docs/Project.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
[deps]
2+
CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0"
23
Cbc = "9961bab8-2fa3-5c5a-9d89-47fab24efd76"
34
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
45
DocumenterCitations = "daee34ce-89f3-4625-b898-19384cb65244"
6+
GeometryBasics = "5c1252a2-5f33-56bf-86c9-59e7332b4326"
57
JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
68
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
79
Literate = "98b081ad-f1c9-55d3-8b20-4c87d4299306"
10+
Makie = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a"
811
Nonconvex = "01bcebdf-4d21-426d-b5c4-6132c1619978"
912
NonconvexTOBS = "6c0b5230-d4c9-466e-bfd4-b31e6272ab65"
1013
StatsFuns = "4c63d2b9-4356-54db-8cca-17b64c39e42c"

docs/src/literate/beso.jl

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,12 @@ x0 = ones(length(solver.vars))
3333
result = beso(x0)
3434

3535
# ### (Optional) Visualize the result using Makie.jl
36-
# Need to run `using Pkg; Pkg.add(["Makie", "GLMakie"])` first
37-
# ```julia
38-
# using Makie, GLMakie
39-
# using TopOpt.TopOptProblems.Visualization: visualize
40-
# fig = visualize(problem; topology = result.topology)
41-
# Makie.display(fig)
42-
# ```
36+
# Need to run `using Pkg; Pkg.add("Makie")` first and either `Pkg.add("CairoMakie")` or `Pkg.add("GLMakie")`
37+
using Makie
38+
using CairoMakie
39+
# alternatively, `using GLMakie`
40+
fig = visualize(problem; topology=result.topology)
41+
Makie.display(fig)
4342

4443
#md # ## [Plain Program](@id beso-plain-program)
4544
#md #

docs/src/literate/csimp.jl

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -74,15 +74,19 @@ end
7474
@show constr(x)
7575

7676
# ### (Optional) Visualize the result using Makie.jl
77-
# Need to run `using Pkg; Pkg.add(["Makie", "GLMakie"])` first
78-
# ```julia
79-
# using Makie, GLMakie
80-
# using TopOpt.TopOptProblems.Visualization: visualize
81-
# fig = visualize(problem; topology = x, default_exagg_scale = 0.07,
82-
# scale_range = 10.0, vector_linewidth = 3, vector_arrowsize = 0.5,
83-
# )
84-
# Makie.display(fig)
85-
# ```
77+
# Need to run `using Pkg; Pkg.add("Makie")` first and either `Pkg.add("CairoMakie")` or `Pkg.add("GLMakie")`
78+
using Makie
79+
using CairoMakie
80+
# alternatively, `using GLMakie`
81+
fig = visualize(
82+
problem;
83+
topology=x,
84+
default_exagg_scale=0.07,
85+
scale_range=10.0,
86+
vector_linewidth=3,
87+
vector_arrowsize=0.5,
88+
)
89+
Makie.display(fig)
8690

8791
#md # ## [Plain Program](@id csimp-plain-program)
8892
#md #

docs/src/literate/geso.jl

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,12 @@ x0 = ones(length(solver.vars))
3333
result = geso(x0)
3434

3535
# ### (Optional) Visualize the result using Makie.jl
36-
# Need to run `using Pkg; Pkg.add(["Makie", "GLMakie"])` first
37-
# ```julia
38-
# using Makie, GLMakie
39-
# using TopOpt.TopOptProblems.Visualization: visualize
40-
# fig = visualize(problem; topology = result.topology)
41-
# Makie.display(fig)
42-
# ```
36+
# Need to run `using Pkg; Pkg.add("Makie")` first and either `Pkg.add("CairoMakie")` or `Pkg.add("GLMakie")`
37+
using Makie
38+
using CairoMakie
39+
# alternatively, `using GLMakie`
40+
fig = visualize(problem; topology=result.topology)
41+
Makie.display(fig)
4342

4443
#md # ## [Plain Program](@id geso-plain-program)
4544
#md #

docs/src/literate/global_stress.jl

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -68,13 +68,12 @@ r = optimize(model, alg, x0; options)
6868
@show constr(r.minimizer)
6969

7070
# ### (Optional) Visualize the result using Makie.jl
71-
# Need to run `using Pkg; Pkg.add(["Makie", "GLMakie"])` first
72-
# ```julia
73-
# using Makie, GLMakie
74-
# using TopOpt.TopOptProblems.Visualization: visualize
75-
# fig = visualize(problem; topology = r.minimizer)
76-
# Makie.display(fig)
77-
# ```
71+
# Need to run `using Pkg; Pkg.add("Makie")` first and either `Pkg.add("CairoMakie")` or `Pkg.add("GLMakie")`
72+
using Makie
73+
using CairoMakie
74+
# alternatively, `using GLMakie`
75+
fig = visualize(problem; topology=r.minimizer)
76+
Makie.display(fig)
7877

7978
#md # ## [Plain Program](@id global-stress-plain-program)
8079
#md #

docs/src/literate/local_stress.jl

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -47,16 +47,19 @@ maximum(stress(filter(PseudoDensities(x0))))
4747
maximum(stress(filter(PseudoDensities(x))))
4848

4949
# ### (Optional) Visualize the result using Makie.jl
50-
# Need to run `using Pkg; Pkg.add(["Makie", "GLMakie"])` first
51-
# ```julia
52-
# using Makie, GLMakie
53-
# using TopOpt.TopOptProblems.Visualization: visualize
54-
# fig = visualize(
55-
# problem; topology = r.minimizer, default_exagg_scale = 0.07,
56-
# scale_range = 10.0, vector_linewidth = 3, vector_arrowsize = 0.5,
57-
# )
58-
# Makie.display(fig)
59-
# ```
50+
# Need to run `using Pkg; Pkg.add("Makie")` first and either `Pkg.add("CairoMakie")` or `Pkg.add("GLMakie")`
51+
using Makie
52+
using CairoMakie
53+
# alternatively, `using GLMakie`
54+
fig = visualize(
55+
problem;
56+
topology=r.minimizer,
57+
default_exagg_scale=0.07,
58+
scale_range=10.0,
59+
vector_linewidth=3,
60+
vector_arrowsize=0.5,
61+
)
62+
Makie.display(fig)
6063

6164
#md # ## [Plain Program](@id local-stress-plain-program)
6265
#md #

docs/src/literate/simp.jl

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -57,25 +57,25 @@ r = optimize(model, alg, x0; options)
5757
@show obj(r.minimizer)
5858

5959
# ### (Optional) Visualize the result using Makie.jl
60-
# Need to run `using Pkg; Pkg.add(["Makie", "GLMakie"])` first
61-
# ```julia
62-
# using Makie, GLMakie
63-
# using TopOpt.TopOptProblems.Visualization: visualize
64-
# fig = visualize(
65-
# problem; topology = r.minimizer,
66-
# default_exagg_scale = 0.07, scale_range = 10.0,
67-
# vector_linewidth = 3, vector_arrowsize = 0.5,
68-
# )
69-
# Makie.display(fig)
70-
# ```
60+
# Need to run `using Pkg; Pkg.add("Makie")` first and either `Pkg.add("CairoMakie")` or `Pkg.add("GLMakie")`
61+
using Makie
62+
using CairoMakie
63+
# alternatively, `using GLMakie`
64+
fig = visualize(
65+
problem;
66+
topology=r.minimizer,
67+
default_exagg_scale=0.07,
68+
scale_range=10.0,
69+
vector_linewidth=3,
70+
vector_arrowsize=0.5,
71+
)
72+
Makie.display(fig)
7173

7274
# or convert it to a Mesh
7375
# Need to run `using Pkg; Pkg.add(GeometryBasics)` first
74-
# ```julia
75-
# import Makie, GeometryBasics
76-
# result_mesh = GeometryBasics.Mesh(problem, r.minimizer);
77-
# Makie.mesh(result_mesh)
78-
# ```
76+
using Makie, GeometryBasics
77+
result_mesh = GeometryBasics.Mesh(problem, r.minimizer);
78+
Makie.mesh(result_mesh)
7979

8080
#md # ## [Plain Program](@id simp-plain-program)
8181
#md #

0 commit comments

Comments
 (0)