diff --git a/src/VTK.jl b/src/VTK.jl index 829a006..8af6b7e 100644 --- a/src/VTK.jl +++ b/src/VTK.jl @@ -205,9 +205,9 @@ function _evaluate_at_geometry_nodes!(data, sdh, a::Vector{T}, cv, drange, cells dh = sdh.dh grid = dh.grid + ncelldofs = ndofs_per_cell(sdh) n_eval_points = Ferrite.getngeobasefunctions(cv) - ncelldofs = length(drange) - ue = zeros(eltype(a), ncelldofs) + ue = zeros(eltype(a), length(drange)) # TODO: Remove this hack when embedding works... if RT <: Vec && is_scalar_interpolaiton(cv) diff --git a/test/runtests.jl b/test/runtests.jl index f9467a6..c91d0bc 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -7,6 +7,7 @@ include("test_values.jl") include("test_bsplines.jl") include("test_bertstein.jl") include("test_bezier_extraction.jl") +include("test_dofs.jl") include("test_nurbsmesh.jl") include("test_examples.jl") include("test_utility_functions.jl") diff --git a/test/test_dofs.jl b/test/test_dofs.jl new file mode 100644 index 0000000..59394b2 --- /dev/null +++ b/test/test_dofs.jl @@ -0,0 +1,28 @@ + + +@testset "Multi-fields for iga" begin + grid = generate_grid(BezierCell{RefQuadrilateral,2}, (2,2)) + + ip = IGAInterpolation{RefQuadrilateral,2}() + dh = DofHandler(grid) + add!(dh, :u, ip^2) + add!(dh, :p, ip) + close!(dh) + + urange = dof_range(dh, :u) + prange = dof_range(dh, :p) + a = zeros(Float64, ndofs(dh)) + + dofs = zeros(Int, ndofs_per_cell(dh)) + for cellid in 1:getncells(grid) + celldofs!(dofs, dh, cellid) + a[dofs[urange]] .= 1.0 + a[dofs[prange]] .= 2.0 + end + + VTKIGAFile("test_export", grid) do vtk + write_solution(vtk, dh, a) + end + + #TODO: Add tests for VTK? +end \ No newline at end of file