Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Converting StructuredMesh to uniform grid #2024

Open
pawelmagnu opened this issue Jul 27, 2024 · 2 comments
Open

Converting StructuredMesh to uniform grid #2024

pawelmagnu opened this issue Jul 27, 2024 · 2 comments

Comments

@pawelmagnu
Copy link

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_advection_basic.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?

@jlchan
Copy link
Contributor

jlchan commented Jul 27, 2024

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.

@andrewwinters5000
Copy link
Member

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).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants