From e11d19ccbd7ac7d693d6d698a796137ce27750c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Rueda-Ram=C3=ADrez?= Date: Thu, 24 Oct 2024 16:48:27 +0200 Subject: [PATCH 1/7] Output the mpi rank to element_variables for visualization --- src/solvers/dg.jl | 5 +++++ src/solvers/dgsem_p4est/dg_3d_parallel.jl | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/src/solvers/dg.jl b/src/solvers/dg.jl index 0e4d667fbc2..7e7190100fe 100644 --- a/src/solvers/dg.jl +++ b/src/solvers/dg.jl @@ -12,6 +12,10 @@ function get_element_variables!(element_variables, u, mesh, equations, nothing end +function get_element_variables!(element_variables, mesh) + nothing +end + function get_node_variables!(node_variables, mesh, equations, volume_integral::AbstractVolumeIntegral, dg, cache) nothing @@ -427,6 +431,7 @@ Base.summary(io::IO, dg::DG) = print(io, "DG(" * summary(dg.basis) * ")") function get_element_variables!(element_variables, u, mesh, equations, dg::DG, cache) get_element_variables!(element_variables, u, mesh, equations, dg.volume_integral, dg, cache) + get_element_variables!(element_variables, mesh) end function get_node_variables!(node_variables, mesh, equations, dg::DG, cache) diff --git a/src/solvers/dgsem_p4est/dg_3d_parallel.jl b/src/solvers/dgsem_p4est/dg_3d_parallel.jl index 635c8dc795e..7040b0ade7e 100644 --- a/src/solvers/dgsem_p4est/dg_3d_parallel.jl +++ b/src/solvers/dgsem_p4est/dg_3d_parallel.jl @@ -5,6 +5,14 @@ @muladd begin #! format: noindent +# Function to output the mpi rank for visualization +function get_element_variables!(element_variables, + mesh::Union{ParallelP4estMesh{3}, + ParallelT8codeMesh{3}}) + element_variables[:mpi_rank] = mpi_rank() + return nothing +end + function rhs!(du, u, t, mesh::Union{ParallelP4estMesh{3}, ParallelT8codeMesh{3}}, equations, boundary_conditions, source_terms::Source, From 8e08c79c62af356f21044281344338237b84f185 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Rueda-Ram=C3=ADrez?= Date: Fri, 25 Oct 2024 16:10:26 +0200 Subject: [PATCH 2/7] Added comments --- src/solvers/dg.jl | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/solvers/dg.jl b/src/solvers/dg.jl index 7e7190100fe..cb0156477a7 100644 --- a/src/solvers/dg.jl +++ b/src/solvers/dg.jl @@ -12,10 +12,17 @@ function get_element_variables!(element_variables, u, mesh, equations, nothing end +# Function to define "element variables" for the SaveSolutionCallback. It does +# nothing by default, but can be specialized for certain mesh types. For instance, +# parallel meshes output the mpi rank as an "element variable". function get_element_variables!(element_variables, mesh) nothing end +# Function to define "element variables" for the SaveSolutionCallback. It does +# nothing by default, but can be specialized for certain volume integral types. +# For instance, shock capturing volume integrals output the blending factor +# as an "element variable". function get_node_variables!(node_variables, mesh, equations, volume_integral::AbstractVolumeIntegral, dg, cache) nothing From 091c10773264e4a5f931eb5c9c54a228e229b8ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Rueda-Ram=C3=ADrez?= Date: Fri, 25 Oct 2024 16:21:20 +0200 Subject: [PATCH 3/7] Added functionality for all parallel mesh types --- src/solvers/dgsem_p4est/dg_3d_parallel.jl | 8 -------- src/solvers/dgsem_tree/dg_parallel.jl | 8 ++++++++ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/solvers/dgsem_p4est/dg_3d_parallel.jl b/src/solvers/dgsem_p4est/dg_3d_parallel.jl index 7040b0ade7e..635c8dc795e 100644 --- a/src/solvers/dgsem_p4est/dg_3d_parallel.jl +++ b/src/solvers/dgsem_p4est/dg_3d_parallel.jl @@ -5,14 +5,6 @@ @muladd begin #! format: noindent -# Function to output the mpi rank for visualization -function get_element_variables!(element_variables, - mesh::Union{ParallelP4estMesh{3}, - ParallelT8codeMesh{3}}) - element_variables[:mpi_rank] = mpi_rank() - return nothing -end - function rhs!(du, u, t, mesh::Union{ParallelP4estMesh{3}, ParallelT8codeMesh{3}}, equations, boundary_conditions, source_terms::Source, diff --git a/src/solvers/dgsem_tree/dg_parallel.jl b/src/solvers/dgsem_tree/dg_parallel.jl index c614fe0d0e6..659ba0f63ad 100644 --- a/src/solvers/dgsem_tree/dg_parallel.jl +++ b/src/solvers/dgsem_tree/dg_parallel.jl @@ -5,6 +5,14 @@ @muladd begin #! format: noindent +# Function to output the mpi rank for visualization +function get_element_variables!(element_variables, + mesh::Union{ParallelTreeMesh, ParallelP4estMesh, + ParallelT8codeMesh}) + element_variables[:mpi_rank] = mpi_rank() + return nothing +end + # Initialize MPI data structures. This works for both the # `TreeMesh` and the `P4estMesh` and is dimension-agnostic. function init_mpi_data_structures(mpi_neighbor_interfaces, mpi_neighbor_mortars, n_dims, From f462779b210f7d4e90fe20f8a70cabf134bd78cd Mon Sep 17 00:00:00 2001 From: Hendrik Ranocha Date: Sun, 27 Oct 2024 13:57:34 +0100 Subject: [PATCH 4/7] Update src/solvers/dg.jl Co-authored-by: Joshua Lampert <51029046+JoshuaLampert@users.noreply.github.com> --- src/solvers/dg.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/solvers/dg.jl b/src/solvers/dg.jl index cb0156477a7..b4376c5a936 100644 --- a/src/solvers/dg.jl +++ b/src/solvers/dg.jl @@ -21,8 +21,8 @@ end # Function to define "element variables" for the SaveSolutionCallback. It does # nothing by default, but can be specialized for certain volume integral types. -# For instance, shock capturing volume integrals output the blending factor -# as an "element variable". +# For instance, shock capturing volume integrals output the blending factor +# as an "element variable". function get_node_variables!(node_variables, mesh, equations, volume_integral::AbstractVolumeIntegral, dg, cache) nothing From d1f6d441bd77e0f66542bcc47d00f9e36073d3f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Rueda-Ram=C3=ADrez?= Date: Mon, 28 Oct 2024 11:34:26 +0100 Subject: [PATCH 5/7] Use the right array data structure for the mpi rank --- src/solvers/dg.jl | 4 ++-- src/solvers/dgsem_tree/dg_parallel.jl | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/solvers/dg.jl b/src/solvers/dg.jl index b4376c5a936..a0fb0d95079 100644 --- a/src/solvers/dg.jl +++ b/src/solvers/dg.jl @@ -15,7 +15,7 @@ end # Function to define "element variables" for the SaveSolutionCallback. It does # nothing by default, but can be specialized for certain mesh types. For instance, # parallel meshes output the mpi rank as an "element variable". -function get_element_variables!(element_variables, mesh) +function get_element_variables!(element_variables, mesh, dg, cache) nothing end @@ -438,7 +438,7 @@ Base.summary(io::IO, dg::DG) = print(io, "DG(" * summary(dg.basis) * ")") function get_element_variables!(element_variables, u, mesh, equations, dg::DG, cache) get_element_variables!(element_variables, u, mesh, equations, dg.volume_integral, dg, cache) - get_element_variables!(element_variables, mesh) + get_element_variables!(element_variables, mesh, dg, cache) end function get_node_variables!(node_variables, mesh, equations, dg::DG, cache) diff --git a/src/solvers/dgsem_tree/dg_parallel.jl b/src/solvers/dgsem_tree/dg_parallel.jl index 659ba0f63ad..706e56f6c04 100644 --- a/src/solvers/dgsem_tree/dg_parallel.jl +++ b/src/solvers/dgsem_tree/dg_parallel.jl @@ -8,8 +8,10 @@ # Function to output the mpi rank for visualization function get_element_variables!(element_variables, mesh::Union{ParallelTreeMesh, ParallelP4estMesh, - ParallelT8codeMesh}) - element_variables[:mpi_rank] = mpi_rank() + ParallelT8codeMesh}, + dg, cache) + element_variables[:mpi_rank] = fill(mpi_rank(), + SVector{nelements(mesh, dg, cache), real(dg)}) return nothing end From fd1db9f5c29fbb7ede95828403921b76878b6bc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Rueda-Ram=C3=ADrez?= Date: Mon, 18 Nov 2024 09:43:13 +0100 Subject: [PATCH 6/7] Update src/solvers/dgsem_tree/dg_parallel.jl Co-authored-by: Michael Schlottke-Lakemper --- src/solvers/dgsem_tree/dg_parallel.jl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/solvers/dgsem_tree/dg_parallel.jl b/src/solvers/dgsem_tree/dg_parallel.jl index 706e56f6c04..7c523240b6e 100644 --- a/src/solvers/dgsem_tree/dg_parallel.jl +++ b/src/solvers/dgsem_tree/dg_parallel.jl @@ -10,8 +10,7 @@ function get_element_variables!(element_variables, mesh::Union{ParallelTreeMesh, ParallelP4estMesh, ParallelT8codeMesh}, dg, cache) - element_variables[:mpi_rank] = fill(mpi_rank(), - SVector{nelements(mesh, dg, cache), real(dg)}) + element_variables[:mpi_rank] = ones(real(dg), nelements(mesh, dg, cache)) * mpi_rank() return nothing end From b884af769670873f7ee7a3ff485ba1b6a99998f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Rueda-Ram=C3=ADrez?= Date: Mon, 18 Nov 2024 10:03:27 +0100 Subject: [PATCH 7/7] Format --- src/solvers/dgsem_tree/dg_parallel.jl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/solvers/dgsem_tree/dg_parallel.jl b/src/solvers/dgsem_tree/dg_parallel.jl index 7c523240b6e..3b33c9c33a5 100644 --- a/src/solvers/dgsem_tree/dg_parallel.jl +++ b/src/solvers/dgsem_tree/dg_parallel.jl @@ -10,7 +10,8 @@ function get_element_variables!(element_variables, mesh::Union{ParallelTreeMesh, ParallelP4estMesh, ParallelT8codeMesh}, dg, cache) - element_variables[:mpi_rank] = ones(real(dg), nelements(mesh, dg, cache)) * mpi_rank() + element_variables[:mpi_rank] = ones(real(dg), nelements(mesh, dg, cache)) * + mpi_rank() return nothing end