Open pawelmagnu opened 3 months ago
You could average the solution over each cell. There may be a cleaner way, but the internal routine Trixi.wrap_array
will reshape the solution vector into an array of size [num_fields, N+1, N+1, num_elements]
in 2D.
The best way to average the solution is to use the quadrature nodes available in dg.basis
or solver.basis
to compute integral averages of the solution over each cell, but you could take the arithmetic average over each cell u[i, :, :, cell_index]
as well.
If you use trixi2vtk
to convert the solution files it, by default, reinterpolates to the solution from the nnodes
Legendre-Gauss-Lobatto points (which is polydeg+1
) onto 2*nnodes
that are uniform. This would explain your situation.
If you want to change the number of uniform nodes onto which you reinterpolate then you can pass the additional argument nvisnodes
to your trixi2vtk
call, e.g., trixi2vtk("out/solution_files", nvisnodes=4)
.
To deactivate this reinterpolation completely and make the solution on the original solver nodes available you can set additional argument reinterpolate
to be false in your trixi2vtk
call, e.g., trixi2vtk("out/solution_files", reinterpolate=false)
.
I am conducting a comparison between Trixi.jl and an analytical solution for a simple 2D advection problem. I have succesfully ran _examples/structured_2d_dgsem/elixir_advectionbasic.jl and obtained the solution file. However when reading the file I obtain 16 times more values than expected(4096 instead of 256). I am assuming the factor of 16 comes from the argument polydeg=3 in DGSEM solver.
How would I go about converting the resulting vector of 4096 values into a 16x16 grid for my comparison?