Problem in plotting with cairomakie for rectangular mesh

hi every one. I want to plot the out put in cairomakie and gridap. I use the code triangular mesh easily but when i have changed the mesh to rectangular one it gives me error. can anyone help me?

using CairoMakie, GridapMakie
p0 = p_opt
pf_vec = pf_p0(p0; r, fem_params)
pfh = FEFunction(fem_params.Pf, pf_vec)
pth = (pf -> Threshold(pf; β, η)) ∘ pfh

fig, ax, plt = plot(fem_params.Ω, pth, colormap = :binary)
Colorbar(fig[1,2], plt)
ax.aspect = AxisAspect(6)
ax.title = "Design Shape"
limits!(ax, -6, 6, 0, 2)
save("shapeocmb.png", fig)

error

BoundsError: attempt to access 9600-element Array{RGBA{Float32},1} with eltype ColorTypes.RGBA{Float32} at index [TriangleFace(GeometryBasics.OffsetInteger{-1, UInt32}(0x00002580), GeometryBasics.OffsetInteger{-1, UInt32}(0x00002581), GeometryBasics.OffsetInteger{-1, UInt32}(0x00002582))]

Stacktrace:
  [1] throw_boundserror(A::Vector{ColorTypes.RGBA{Float32}}, I::Tuple{GeometryBasics.NgonFace{3, GeometryBasics.OffsetInteger{-1, UInt32}}})
    @ Base .\abstractarray.jl:703
  [2] checkbounds
    @ .\abstractarray.jl:668 [inlined]
  [3] _getindex
    @ .\multidimensional.jl:874 [inlined]
  [4] getindex
    @ .\abstractarray.jl:1241 [inlined]
  [5] getindex(fi::CairoMakie.FaceIterator{:PerVert, Vector{ColorTypes.RGBA{Float32}}, Vector{GeometryBasics.NgonFace{3, GeometryBasics.OffsetInteger{-1, UInt32}}}, Tuple{ColorTypes.RGBA{Float32}, ColorTypes.RGBA{Float32}, ColorTypes.RGBA{Float32}}}, i::Int64)
    @ CairoMakie C:\Users\marya\.julia\packages\CairoMakie\keP4X\src\utils.jl:188
  [6] iterate
    @ .\abstractarray.jl:1167 [inlined]
  [7] _zip_iterate_some
    @ .\iterators.jl:382 [inlined]
  [8] _zip_iterate_some
    @ .\iterators.jl:384 [inlined]
  [9] _zip_iterate_all
    @ .\iterators.jl:374 [inlined]
 [10] iterate
    @ .\iterators.jl:365 [inlined]
 [11] draw_mesh2D(scene::Scene, screen::CairoMakie.CairoScreen{Cairo.CairoSurfaceBase{UInt32}}, per_face_cols::CairoMakie.FaceIterator{:PerVert, Vector{ColorTypes.RGBA{Float32}}, Vector{GeometryBasics.NgonFace{3, GeometryBasics.OffsetInteger{-1, UInt32}}}, Tuple{ColorTypes.RGBA{Float32}, ColorTypes.RGBA{Float32}, ColorTypes.RGBA{Float32}}}, space::Symbol, vs::Vector{GeometryBasics.Point{2, Float32}}, fs::Vector{GeometryBasics.NgonFace{3, GeometryBasics.OffsetInteger{-1, UInt32}}}, model::StaticArraysCore.SMatrix{4, 4, Float32, 16})
    @ CairoMakie C:\Users\marya\.julia\packages\CairoMakie\keP4X\src\primitives.jl:669
 [12] draw_mesh2D(scene::Scene, screen::CairoMakie.CairoScreen{Cairo.CairoSurfaceBase{UInt32}}, plot::Any, mesh::Any)
    @ CairoMakie C:\Users\marya\.julia\packages\CairoMakie\keP4X\src\primitives.jl:645
 [13] draw_atomic(scene::Scene, screen::CairoMakie.CairoScreen{Cairo.CairoSurfaceBase{UInt32}}, primitive::Mesh)
    @ CairoMakie C:\Users\marya\.julia\packages\CairoMakie\keP4X\src\primitives.jl:616
 [14] draw_plot(scene::Scene, screen::CairoMakie.CairoScreen{Cairo.CairoSurfaceBase{UInt32}}, primitive::Mesh{Tuple{GeometryBasics.Mesh{2, Float32, GeometryBasics.Ngon{2, Float32, 3, GeometryBasics.Point{2, Float32}}, GeometryBasics.SimpleFaceView{2, Float32, 3, GeometryBasics.OffsetInteger{-1, UInt32}, GeometryBasics.Point{2, Float32}, GeometryBasics.NgonFace{3, GeometryBasics.OffsetInteger{-1, UInt32}}}}}})
    @ CairoMakie C:\Users\marya\.julia\packages\CairoMakie\keP4X\src\infrastructure.jl:251
 [15] draw_plot(scene::Scene, screen::CairoMakie.CairoScreen{Cairo.CairoSurfaceBase{UInt32}}, primitive::Mesh{Tuple{GridapMakie.PlotGrid{Gridap.Visualization.VisualizationGrid{2, 2}}}}) (repeats 2 times)
    @ CairoMakie C:\Users\marya\.julia\packages\CairoMakie\keP4X\src\infrastructure.jl:255
 [16] cairo_draw(screen::CairoMakie.CairoScreen{Cairo.CairoSurfaceBase{UInt32}}, scene::Scene)
    @ CairoMakie C:\Users\marya\.julia\packages\CairoMakie\keP4X\src\infrastructure.jl:192
 [17] backend_show(x::CairoMakie.CairoBackend, io::IOContext{IOStream}, #unused#::MIME{Symbol("image/png")}, scene::Scene)
    @ CairoMakie C:\Users\marya\.julia\packages\CairoMakie\keP4X\src\infrastructure.jl:396
 [18] show(io::IOContext{IOStream}, m::MIME{Symbol("image/png")}, figlike::Figure)
    @ Makie C:\Users\marya\.julia\packages\Makie\Ppzqh\src\display.jl:117
 [19] (::Makie.var"#939#940"{Float64, Float64, Figure, DataType})(s::IOStream)
    @ Makie C:\Users\marya\.julia\packages\Makie\Ppzqh\src\display.jl:250
 [20] open(::Makie.var"#939#940"{Float64, Float64, Figure, DataType}, ::String, ::Vararg{String}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Base .\io.jl:384
 [21] open
    @ .\io.jl:381 [inlined]
 [22] #save#938
    @ C:\Users\marya\.julia\packages\Makie\Ppzqh\src\display.jl:244 [inlined]
 [23] save(file::FileIO.File{FileIO.DataFormat{:PNG}, String}, fig::Figure)
    @ Makie C:\Users\marya\.julia\packages\Makie\Ppzqh\src\display.jl:223
 [24] save(filename::String, fig::Figure; args::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Makie C:\Users\marya\.julia\packages\Makie\Ppzqh\src\display.jl:220
 [25] save(filename::String, fig::Figure)
    @ Makie C:\Users\marya\.julia\packages\Makie\Ppzqh\src\display.jl:217
 [26] top-level scope
    @ In[27]:12

thanks

is there any suggestions on this?
thanks

Your request may have been missed by the Gridap authors. I suggest opening an issue at GridapMakie

1 Like

ok thank you at first I want to be sure that i didnt make any mistakes