From b7d1501a83f5cb7f2e9ec3860704aa3fe5cdbe1e Mon Sep 17 00:00:00 2001 From: Marco Artiano Date: Mon, 13 Jan 2025 11:46:41 +0100 Subject: [PATCH 1/7] fix Base.show StructuredMesh --- src/meshes/structured_mesh.jl | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/meshes/structured_mesh.jl b/src/meshes/structured_mesh.jl index f5aab187c2..aa4402121e 100644 --- a/src/meshes/structured_mesh.jl +++ b/src/meshes/structured_mesh.jl @@ -142,10 +142,7 @@ function StructuredMesh(cells_per_dimension, coordinates_min, coordinates_max; mapping = coordinates2mapping(coordinates_min, coordinates_max) mapping_as_string = """ - coordinates_min = $coordinates_min - coordinates_max = $coordinates_max - mapping = coordinates2mapping(coordinates_min, coordinates_max) - """ + coordinates_min = $coordinates_min;coordinates_max = $coordinates_max;mapping = coordinates2mapping(coordinates_min, coordinates_max)""" return StructuredMesh(cells_per_dimension, mapping; RealT = RealT, periodicity = periodicity, mapping_as_string = mapping_as_string) From f647f72575d34506930e49ed37f0aa4ac2edfa5e Mon Sep 17 00:00:00 2001 From: Marco Artiano Date: Mon, 13 Jan 2025 15:17:42 +0100 Subject: [PATCH 2/7] Base.show fix --- src/meshes/structured_mesh.jl | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/meshes/structured_mesh.jl b/src/meshes/structured_mesh.jl index aa4402121e..81c6c1fd8d 100644 --- a/src/meshes/structured_mesh.jl +++ b/src/meshes/structured_mesh.jl @@ -106,17 +106,13 @@ function StructuredMesh(cells_per_dimension, faces::Tuple; # Collect definitions of face functions in one string (separated by semicolons) face2substring(face) = code_string(face, ntuple(_ -> RealT, NDIMS - 1)) - join_newline(strings) = join(strings, "\n") + join_newline(strings) = join(strings, ";") faces_definition = faces .|> face2substring .|> string |> join_newline # Include faces definition in `mapping_as_string` to allow for evaluation # without knowing the face functions - mapping_as_string = """ - $faces_definition - faces = $(string(faces)) - mapping = transfinite_mapping(faces) - """ + mapping_as_string = """$faces_definition;faces = $(string(faces));mapping = transfinite_mapping(faces)""" return StructuredMesh(cells_per_dimension, mapping; RealT = RealT, periodicity = periodicity, @@ -141,8 +137,10 @@ function StructuredMesh(cells_per_dimension, coordinates_min, coordinates_max; RealT = promote_type(eltype(coordinates_min), eltype(coordinates_max)) mapping = coordinates2mapping(coordinates_min, coordinates_max) - mapping_as_string = """ - coordinates_min = $coordinates_min;coordinates_max = $coordinates_max;mapping = coordinates2mapping(coordinates_min, coordinates_max)""" + ndims = length(cells_per_dimension) + mapping_as_string = join(["[$(coordinates_min[i]),$(coordinates_max[i])]" + for i in 1:ndims], "x") * + """;mapping = coordinates2mapping(coordinates_min, coordinates_max)""" return StructuredMesh(cells_per_dimension, mapping; RealT = RealT, periodicity = periodicity, mapping_as_string = mapping_as_string) @@ -358,12 +356,18 @@ function Base.show(io::IO, ::MIME"text/plain", mesh::StructuredMesh) "StructuredMesh{" * string(ndims(mesh)) * ", " * string(real(mesh)) * "}") summary_line(io, "size", size(mesh)) - - summary_line(io, "mapping", "") # Print code lines of mapping_as_string mapping_lines = split(mesh.mapping_as_string, ";") - for i in eachindex(mapping_lines) - summary_line(increment_indent(io), "line $i", strip(mapping_lines[i])) + + if occursin("coordinates", mesh.mapping_as_string) + summary_line(io, "mapping", "linear") + + summary_line(increment_indent(io), "domain", strip(mapping_lines[1])) + else + summary_line(io, "mapping", "") + for i in eachindex(mapping_lines) + summary_line(increment_indent(io), "line $i", strip(mapping_lines[i])) + end end summary_footer(io) end From bf38f936b171d30d3c0b988375a1fe99fc3ac31d Mon Sep 17 00:00:00 2001 From: Marco Artiano Date: Mon, 13 Jan 2025 15:25:40 +0100 Subject: [PATCH 3/7] format consistency --- src/meshes/structured_mesh.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/meshes/structured_mesh.jl b/src/meshes/structured_mesh.jl index 81c6c1fd8d..c963874bae 100644 --- a/src/meshes/structured_mesh.jl +++ b/src/meshes/structured_mesh.jl @@ -138,7 +138,7 @@ function StructuredMesh(cells_per_dimension, coordinates_min, coordinates_max; mapping = coordinates2mapping(coordinates_min, coordinates_max) ndims = length(cells_per_dimension) - mapping_as_string = join(["[$(coordinates_min[i]),$(coordinates_max[i])]" + mapping_as_string = join(["[$(coordinates_min[i]), $(coordinates_max[i])]" for i in 1:ndims], "x") * """;mapping = coordinates2mapping(coordinates_min, coordinates_max)""" return StructuredMesh(cells_per_dimension, mapping; RealT = RealT, From 60ac609bd251dabb7e92c5134d501ef5fc44d6d2 Mon Sep 17 00:00:00 2001 From: Marco Artiano Date: Tue, 14 Jan 2025 09:56:30 +0100 Subject: [PATCH 4/7] fix bug for restart function --- src/meshes/structured_mesh.jl | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/meshes/structured_mesh.jl b/src/meshes/structured_mesh.jl index c963874bae..8dcb009f8a 100644 --- a/src/meshes/structured_mesh.jl +++ b/src/meshes/structured_mesh.jl @@ -137,10 +137,8 @@ function StructuredMesh(cells_per_dimension, coordinates_min, coordinates_max; RealT = promote_type(eltype(coordinates_min), eltype(coordinates_max)) mapping = coordinates2mapping(coordinates_min, coordinates_max) - ndims = length(cells_per_dimension) - mapping_as_string = join(["[$(coordinates_min[i]), $(coordinates_max[i])]" - for i in 1:ndims], "x") * - """;mapping = coordinates2mapping(coordinates_min, coordinates_max)""" + + mapping_as_string = """coordinates_min = $coordinates_min;coordinates_max = $coordinates_max;mapping = coordinates2mapping(coordinates_min, coordinates_max)""" return StructuredMesh(cells_per_dimension, mapping; RealT = RealT, periodicity = periodicity, mapping_as_string = mapping_as_string) @@ -361,8 +359,12 @@ function Base.show(io::IO, ::MIME"text/plain", mesh::StructuredMesh) if occursin("coordinates", mesh.mapping_as_string) summary_line(io, "mapping", "linear") - - summary_line(increment_indent(io), "domain", strip(mapping_lines[1])) + coordinates_min = eval(Meta.parse(split(mapping_lines[1], "= ")[2])) + coordinates_max = eval(Meta.parse(split(mapping_lines[2], "= ")[2])) + dims = length(coordinates_max) + summary_line(increment_indent(io), "domain", + join(["[$(coordinates_min[i]), $(coordinates_max[i])]" + for i in 1:dims], "x")) else summary_line(io, "mapping", "") for i in eachindex(mapping_lines) From 5b0d65331d234b387db3210b74a4dfe5e3c98fd5 Mon Sep 17 00:00:00 2001 From: Marco Artiano Date: Tue, 14 Jan 2025 10:49:47 +0100 Subject: [PATCH 5/7] fix showed user defined mapping --- src/meshes/structured_mesh.jl | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/meshes/structured_mesh.jl b/src/meshes/structured_mesh.jl index 8dcb009f8a..cad753ca6a 100644 --- a/src/meshes/structured_mesh.jl +++ b/src/meshes/structured_mesh.jl @@ -67,7 +67,6 @@ function StructuredMesh(cells_per_dimension, mapping; # Default case if periodicity is an iterable periodicity = Tuple(periodicity) end - return StructuredMesh{NDIMS, RealT}(Tuple(cells_per_dimension), mapping, mapping_as_string, periodicity, "", unsaved_changes) @@ -355,7 +354,11 @@ function Base.show(io::IO, ::MIME"text/plain", mesh::StructuredMesh) string(real(mesh)) * "}") summary_line(io, "size", size(mesh)) # Print code lines of mapping_as_string - mapping_lines = split(mesh.mapping_as_string, ";") + if occursin("\n", mesh.mapping_as_string) + mapping_lines = replace(mesh.mapping_as_string, '\n' => ';') + end + + mapping_lines = split(mapping_lines, ";") if occursin("coordinates", mesh.mapping_as_string) summary_line(io, "mapping", "linear") From a0871622a27d514c17a38bacd04b413e2ce189e4 Mon Sep 17 00:00:00 2001 From: Marco Artiano Date: Tue, 14 Jan 2025 11:10:02 +0100 Subject: [PATCH 6/7] minor fix --- src/meshes/structured_mesh.jl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/meshes/structured_mesh.jl b/src/meshes/structured_mesh.jl index cad753ca6a..809c9299b0 100644 --- a/src/meshes/structured_mesh.jl +++ b/src/meshes/structured_mesh.jl @@ -356,6 +356,8 @@ function Base.show(io::IO, ::MIME"text/plain", mesh::StructuredMesh) # Print code lines of mapping_as_string if occursin("\n", mesh.mapping_as_string) mapping_lines = replace(mesh.mapping_as_string, '\n' => ';') + else + mapping_lines = mesh.mapping_as_string end mapping_lines = split(mapping_lines, ";") From a73f6ab76768defb3d8b0a31ecfed4e255f7e697 Mon Sep 17 00:00:00 2001 From: Marco Artiano Date: Mon, 20 Jan 2025 22:44:33 +0100 Subject: [PATCH 7/7] displaying custom mapping --- src/meshes/structured_mesh.jl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/meshes/structured_mesh.jl b/src/meshes/structured_mesh.jl index 809c9299b0..072b9501fe 100644 --- a/src/meshes/structured_mesh.jl +++ b/src/meshes/structured_mesh.jl @@ -370,7 +370,10 @@ function Base.show(io::IO, ::MIME"text/plain", mesh::StructuredMesh) summary_line(increment_indent(io), "domain", join(["[$(coordinates_min[i]), $(coordinates_max[i])]" for i in 1:dims], "x")) + elseif occursin("mapping", mesh.mapping_as_string) + summary_line(io, "mapping", "custom mapping") else + # At the moment this is not being used summary_line(io, "mapping", "") for i in eachindex(mapping_lines) summary_line(increment_indent(io), "line $i", strip(mapping_lines[i]))