Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
db89067
Integrate write2json for initial metadata export
marcelschurer Mar 24, 2025
d8906ee
Remove old `write_meta_data` parameter from VTK writing functions and…
marcelschurer Mar 24, 2025
8558b13
Add `solver_name` to metadata and format files
marcelschurer Mar 24, 2025
86e491c
Merge branch 'main' into write2json
marcelschurer Apr 14, 2025
8803ef9
update `write2json.jl` to match merge
marcelschurer Apr 14, 2025
1ebda82
Merge branch 'main' into write2json
marcelschurer May 19, 2025
b86e2d6
rename file
marcelschurer May 19, 2025
164b56e
update references
marcelschurer May 19, 2025
2165d37
rename function
marcelschurer May 19, 2025
51317e3
Refactor write2vtk!
marcelschurer May 19, 2025
8f6eda9
formatting
marcelschurer May 19, 2025
7825eb9
refactor functions
marcelschurer May 20, 2025
e3cd5ca
Merge branch 'trixi-framework:main' into write2json
marcelschurer Jun 2, 2025
251eaf2
implement suggestions
marcelschurer Jun 2, 2025
fecc01f
fix bugs
marcelschurer Jun 2, 2025
3a399ff
add add_meta_data! function for `system::ParticlePackingSystem`
marcelschurer Jun 3, 2025
9868c4a
relocate `add_meta_data!` to `system.jl`
marcelschurer Jun 3, 2025
45940d9
formatting
marcelschurer Jun 4, 2025
f6b605e
Merge branch 'main' into write2json
marcelschurer Jun 11, 2025
479e35c
Merge branch 'main' into write2json
LasNikas Jun 12, 2025
254bc9a
Rename 'tlsph' to 'place_on_shell' (#814)
svchb Jun 13, 2025
e8ff223
Merge branch 'main' into dev
svchb Jun 13, 2025
bb81f90
Merge branch 'trixi-framework:main' into write2json
marcelschurer Jun 16, 2025
0536c6e
Merge branch 'main' into dev
svchb Jun 16, 2025
7d34fe5
dispatch `FluidSystem`
marcelschurer Jun 16, 2025
ff5651f
Write one unified metadata file for all systems
marcelschurer Jun 16, 2025
564e519
Merge branch 'main' into dev
svchb Jun 16, 2025
e4f2159
Merge branch 'trixi-framework:main' into write2json
marcelschurer Jun 30, 2025
8787218
improve JSON-file structure
marcelschurer Jun 30, 2025
d9c7be3
Merge branch 'dev' into write2json
LasNikas Jun 30, 2025
04c0c61
Merge branch 'main' into dev
svchb Jul 1, 2025
0a93892
improve consistency
marcelschurer Jul 1, 2025
3c61bc2
Merge branch 'main' into dev
svchb Jul 2, 2025
800b710
Merge branch 'main' into dev
svchb Jul 16, 2025
4419833
Merge branch 'trixi-framework:main' into write2json
marcelschurer Jul 21, 2025
7cb094a
Merge branch 'dev' into write2json
svchb Jul 22, 2025
7a4cddf
Enhance structure of the JSON-File
marcelschurer Jul 28, 2025
e1ae9cc
Merge branch 'trixi-framework:main' into write2json
marcelschurer Jul 28, 2025
2a4e419
Fix `rho0` in `AkinciFreeSurfaceCorrection`
marcelschurer Jul 28, 2025
08de264
Rename 'tlsph' to 'place_on_shell' (#814)
svchb Jun 13, 2025
fb969dd
Merge branch 'main' into write2json
marcelschurer Jul 29, 2025
53f8db2
Merge remote-tracking branch 'upstream/dev' into write2json
marcelschurer Jul 29, 2025
38a1e2f
Rename 'tlsph' to 'place_on_shell' (#814)
svchb Jun 13, 2025
8293215
Refactor metadata handling
marcelschurer Aug 13, 2025
3cfd8c4
Add settable filename
marcelschurer Aug 13, 2025
3816fe3
Merge remote-tracking branch 'upstream/dev' into write2json
marcelschurer Aug 13, 2025
2b284c4
Add filename display to SolutionSavingCallback output
marcelschurer Aug 14, 2025
fad7f82
Merge branch 'main' into dev
efaulhaber Aug 17, 2025
3015725
Merge branch 'dev' of github.com:trixi-framework/TrixiParticles.jl in…
efaulhaber Aug 17, 2025
36f722a
Merge branch 'dev' into write2json
svchb Aug 18, 2025
de50af4
Rename 'tlsph' to 'place_on_shell' (#814)
svchb Jun 13, 2025
5295070
add function for `ParticlePackingSystem`
marcelschurer Aug 25, 2025
d60284f
improve structure
marcelschurer Aug 25, 2025
4821552
Formatting Code
marcelschurer Aug 25, 2025
648e037
Merge branch 'dev' into write2json
marcelschurer Aug 25, 2025
c1e8589
Rename 'tlsph' to 'place_on_shell' (#814)
svchb Jun 13, 2025
fcbd363
fix failing tests
marcelschurer Aug 26, 2025
38f5f07
Merge branch 'main' into dev
efaulhaber Aug 26, 2025
9bb713d
Merge branch 'dev' into write2json
marcelschurer Aug 26, 2025
0b04830
Merge branch 'dev' into write2json
marcelschurer Aug 26, 2025
ac9029e
Rename 'tlsph' to 'place_on_shell' (#814)
svchb Jun 13, 2025
6de7ad3
Combine PST and TVF into a unified framework (#884)
efaulhaber Aug 26, 2025
06eb747
Merge branch 'dev' into write2json
marcelschurer Aug 27, 2025
d05cd4e
improve structure and fixing problems
marcelschurer Aug 27, 2025
9b37b4f
add `shifting_technique` to `io.jl`
marcelschurer Sep 1, 2025
80bcde9
Merge branch 'dev' into write2json
svchb Sep 3, 2025
22d2921
Merge branch 'dev' into write2json
marcelschurer Sep 5, 2025
64fd674
change filename of the JSON-File
marcelschurer Sep 5, 2025
1602cb4
Merge branch 'dev' into write2json
marcelschurer Sep 5, 2025
ca2410a
add suggestions
marcelschurer Sep 8, 2025
5b5c1b3
Merge branch 'dev' into write2json
marcelschurer Sep 9, 2025
9770276
Enhance data handling for `OpenBoundarySPHSystem`
marcelschurer Sep 9, 2025
9aa5ae9
correct formatting issue
marcelschurer Sep 9, 2025
5da1c67
Remove autoinfiltrate
marcelschurer Sep 10, 2025
3660843
rename `number_of_threads`
marcelschurer Sep 12, 2025
c1204ac
Merge branch 'dev' into write2json
efaulhaber Sep 12, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion examples/fluid/falling_water_spheres_2d.jl
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ ode = semidiscretize(semi, tspan)

info_callback = InfoCallback(interval=1000)
saving_callback = SolutionSavingCallback(dt=0.01, output_directory="out",
prefix="", write_meta_data=true)
prefix="")

callbacks = CallbackSet(info_callback, saving_callback)

Expand Down
1 change: 0 additions & 1 deletion examples/fsi/falling_sphere_3d.jl
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,4 @@ trixi_include(@__MODULE__,
solid_smoothing_kernel=WendlandC2Kernel{3}(),
sphere_type=RoundSphere(),
output_directory="out", prefix="",
write_meta_data=false, # Files with meta data can't be read by meshio
tspan=(0.0, 1.0), abstol=1e-6, reltol=1e-3)
3 changes: 1 addition & 2 deletions examples/fsi/falling_spheres_2d.jl
Original file line number Diff line number Diff line change
Expand Up @@ -124,8 +124,7 @@ semi = Semidiscretization(fluid_system, boundary_system, solid_system_1, solid_s
ode = semidiscretize(semi, tspan)

info_callback = InfoCallback(interval=50)
saving_callback = SolutionSavingCallback(dt=0.02, output_directory="out", prefix="",
write_meta_data=true)
saving_callback = SolutionSavingCallback(dt=0.02, output_directory="out", prefix="")

callbacks = CallbackSet(info_callback, saving_callback)

Expand Down
6 changes: 5 additions & 1 deletion examples/n_body/n_body_system.jl
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ end

TrixiParticles.vtkname(system::NBodySystem) = "n-body"

function TrixiParticles.write2vtk!(vtk, v, u, t, system::NBodySystem; write_meta_data=true)
function TrixiParticles.write2vtk!(vtk, v, u, t, system::NBodySystem)
(; mass) = system

vtk["velocity"] = v
Expand All @@ -114,6 +114,10 @@ function TrixiParticles.write2vtk!(vtk, v, u, t, system::NBodySystem; write_meta
return vtk
end

function TrixiParticles.add_system_data!(system_data, system::NBodySystem)
return system_data
end

function Base.show(io::IO, system::NBodySystem)
print(io, "NBodySystem{", ndims(system), "}() with ")
print(io, TrixiParticles.nparticles(system), " particles")
Expand Down
2 changes: 1 addition & 1 deletion src/TrixiParticles.jl
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,8 @@ include("callbacks/callbacks.jl")
# included separately. `gpu.jl` in turn depends on the semidiscretization type.
include("general/semidiscretization.jl")
include("general/gpu.jl")
include("io/io.jl")
include("preprocessing/preprocessing.jl")
include("io/io.jl")
include("visualization/recipes_plots.jl")

export Semidiscretization, semidiscretize, restart_with!
Expand Down
16 changes: 4 additions & 12 deletions src/callbacks/post_process.jl
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,7 @@ function (pp::PostprocessCallback)(integrator)

if isfinished(integrator) ||
(pp.write_file_interval > 0 && backup_condition(pp, integrator))
write_postprocess_callback(pp)
write_postprocess_callback(pp, integrator)
end

# Tell OrdinaryDiffEq that `u` has not been modified
Expand All @@ -285,13 +285,14 @@ end
end

# After the simulation has finished, this function is called to write the data to a JSON file
function write_postprocess_callback(pp::PostprocessCallback)
function write_postprocess_callback(pp::PostprocessCallback, integrator)
isempty(pp.data) && return

mkpath(pp.output_directory)

data = Dict{String, Any}()
write_meta_data!(data, pp.git_hash[])
data["meta"] = create_meta_data_dict(pp, integrator)

prepare_series_data!(data, pp)

time_stamp = ""
Expand Down Expand Up @@ -341,15 +342,6 @@ function create_series_dict(values, times, system_name="")
"time" => times)
end

function write_meta_data!(data, git_hash)
meta_data = Dict("solver_name" => "TrixiParticles.jl",
"solver_version" => git_hash,
"julia_version" => string(VERSION))

data["meta"] = meta_data
return data
end

function write_csv(abs_file_path, data)
times = Float64[]

Expand Down
26 changes: 13 additions & 13 deletions src/callbacks/solution_saving.jl
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@
SolutionSavingCallback(; interval::Integer=0, dt=0.0, save_times=Array{Float64, 1}([]),
save_initial_solution=true, save_final_solution=true,
output_directory="out", append_timestamp=false, prefix="",
verbose=false, write_meta_data=true, max_coordinates=2^15,
Comment thread
svchb marked this conversation as resolved.
custom_quantities...)
verbose=false, max_coordinates=2^15, custom_quantities...)


Callback to save the current numerical solution in VTK format in regular intervals.
Expand All @@ -26,9 +25,8 @@ To ignore a custom quantity for a specific system, return `nothing`.
- `save_final_solution=true`: Save the final solution.
- `output_directory="out"`: Directory to save the VTK files.
- `append_timestamp=false`: Append current timestamp to the output directory.
- 'prefix=""': Prefix added to the filename.
- `prefix=""`: Prefix added to the filename.
- `custom_quantities...`: Additional user-defined quantities.
- `write_meta_data=true`: Write meta data.
- `verbose=false`: Print to standard IO when a file is written.
- `max_coordinates=2^15`: The coordinates of particles will be clipped if their
absolute values exceed this threshold.
Expand Down Expand Up @@ -70,7 +68,6 @@ mutable struct SolutionSavingCallback{I, CQ}
save_times :: Vector{Float64}
save_initial_solution :: Bool
save_final_solution :: Bool
write_meta_data :: Bool
verbose :: Bool
output_directory :: String
prefix :: String
Expand All @@ -84,8 +81,9 @@ function SolutionSavingCallback(; interval::Integer=0, dt=0.0,
save_times=Float64[],
save_initial_solution=true, save_final_solution=true,
output_directory="out", append_timestamp=false,
prefix="", verbose=false, write_meta_data=true,
max_coordinates=Float64(2^15), custom_quantities...)
prefix="", verbose=false,
max_coordinates=Float64(2^15),
custom_quantities...)
if (dt > 0 && interval > 0) || (length(save_times) > 0 && (dt > 0 || interval > 0))
throw(ArgumentError("Setting multiple save times for the same solution " *
"callback is not possible. Use either `dt`, `interval` or `save_times`."))
Expand All @@ -101,8 +99,8 @@ function SolutionSavingCallback(; interval::Integer=0, dt=0.0,

solution_callback = SolutionSavingCallback(interval, Float64.(save_times),
save_initial_solution, save_final_solution,
write_meta_data, verbose, output_directory,
prefix, max_coordinates, custom_quantities,
verbose, output_directory, prefix,
max_coordinates, custom_quantities,
-1, Ref("UnknownVersion"))

if length(save_times) > 0
Expand Down Expand Up @@ -133,6 +131,8 @@ function initialize_save_cb!(solution_callback::SolutionSavingCallback, u, t, in
solution_callback.latest_saved_iter = -1
solution_callback.git_hash[] = compute_git_hash()

write_meta_data(solution_callback, integrator)

# Save initial solution
if solution_callback.save_initial_solution
solution_callback(integrator)
Expand All @@ -151,8 +151,8 @@ end

# `affect!`
function (solution_callback::SolutionSavingCallback)(integrator)
(; interval, output_directory, custom_quantities, write_meta_data, git_hash,
verbose, prefix, latest_saved_iter, max_coordinates) = solution_callback
(; interval, output_directory, custom_quantities, git_hash, verbose,
prefix, latest_saved_iter, max_coordinates) = solution_callback

dvdu_ode = get_du(integrator)
vu_ode = integrator.u
Expand All @@ -176,8 +176,8 @@ function (solution_callback::SolutionSavingCallback)(integrator)

@trixi_timeit timer() "save solution" trixi2vtk(dvdu_ode, vu_ode, semi, integrator.t;
iter, output_directory, prefix,
write_meta_data, git_hash=git_hash[],
max_coordinates, custom_quantities...)
git_hash=git_hash[], max_coordinates,
custom_quantities...)

# Tell OrdinaryDiffEq that `u` has not been modified
u_modified!(integrator, false)
Expand Down
Loading
Loading