From e541ce88d9319d5aff35395b32a2c2656a6f3b23 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 29 Nov 2023 02:35:45 +0100 Subject: [PATCH 001/212] add interpolation --- src/general/corrections.jl | 4 ++-- src/general/density_calculators.jl | 2 +- src/general/interpolation.jl | 20 +++++++++++++++++++ src/general/semidiscretization.jl | 16 +++++++++++---- .../dummy_particles/dummy_particles.jl | 2 +- .../fluid/weakly_compressible_sph/system.jl | 2 +- .../solid/total_lagrangian_sph/system.jl | 2 +- src/visualization/write2vtk.jl | 2 +- 8 files changed, 39 insertions(+), 11 deletions(-) create mode 100644 src/general/interpolation.jl diff --git a/src/general/corrections.jl b/src/general/corrections.jl index 595a61f0e..803994f88 100644 --- a/src/general/corrections.jl +++ b/src/general/corrections.jl @@ -149,7 +149,7 @@ function compute_shepard_coeff!(system, v, u, v_ode, u_ode, semi, system_coords = current_coordinates(u, system) neighbor_coords = current_coordinates(u_neighbor_system, neighbor_system) - neighborhood_search = neighborhood_searches(system, neighbor_system, semi) + neighborhood_search = get_neighborhood_search(system, neighbor_system, semi) # Loop over all pairs of particles and neighbors within the kernel cutoff for_particle_neighbor(system, neighbor_system, system_coords, @@ -188,7 +188,7 @@ function compute_correction_values!(system, v, u, v_ode, u_ode, semi, system_coords = current_coordinates(u, system) neighbor_coords = current_coordinates(u_neighbor_system, neighbor_system) - neighborhood_search = neighborhood_searches(system, neighbor_system, semi) + neighborhood_search = get_neighborhood_search(system, neighbor_system, semi) # Loop over all pairs of particles and neighbors within the kernel cutoff for_particle_neighbor(system, neighbor_system, system_coords, diff --git a/src/general/density_calculators.jl b/src/general/density_calculators.jl index 4383d55e3..00c197ab0 100644 --- a/src/general/density_calculators.jl +++ b/src/general/density_calculators.jl @@ -61,7 +61,7 @@ function summation_density!(system, semi, u, u_ode, density; system_coords = current_coordinates(u, system) neighbor_coords = current_coordinates(u_neighbor_system, neighbor_system) - nhs = neighborhood_searches(system, neighbor_system, semi) + nhs = get_neighborhood_search(system, neighbor_system, semi) # Loop over all pairs of particles and neighbors within the kernel cutoff. for_particle_neighbor(system, neighbor_system, system_coords, neighbor_coords, nhs, diff --git a/src/general/interpolation.jl b/src/general/interpolation.jl new file mode 100644 index 000000000..9332bdb77 --- /dev/null +++ b/src/general/interpolation.jl @@ -0,0 +1,20 @@ +struct system_properties +end + +function interpolate_point(point_coords, semi) + density = 0.0 + + foreach_system(semi) do system + u_neighbor_system = wrap_u(u_ode, neighbor_system, semi) + + system_coords = current_coordinates(u, system) + nhs = get_neighborhood_search(system, semi) + + for neighbor in eachneighbor(point_coords, nhs) + distance = norm(point_coords - system_coords[neighbor]) + density += mass[neighbor] * smoothing_kernel(system, distance) + end + end + + return density +end diff --git a/src/general/semidiscretization.jl b/src/general/semidiscretization.jl index d1eb43cab..4f0c93424 100644 --- a/src/general/semidiscretization.jl +++ b/src/general/semidiscretization.jl @@ -136,7 +136,15 @@ end return compact_support(smoothing_kernel, smoothing_length) end -@inline function neighborhood_searches(system, neighbor_system, semi) +@inline function get_neighborhood_search(system, semi) + (; neighborhood_searches) = semi + + system_index = system_indices(system, semi) + + return neighborhood_searches[system_index][system_index] +end + +@inline function get_neighborhood_search(system, neighbor_system, semi) (; neighborhood_searches) = semi system_index = system_indices(system, semi) @@ -183,7 +191,7 @@ function semidiscretize(semi, tspan; reset_threads=true) @trixi_timeit timer() "initialize particle systems" begin foreach_system(semi) do system # Get the neighborhood search for this system - neighborhood_search = neighborhood_searches(system, system, semi) + neighborhood_search = get_neighborhood_search(system, semi) # Initialize this system initialize!(system, neighborhood_search) @@ -360,7 +368,7 @@ function update_nhs(u_ode, semi) foreach_system(semi) do system foreach_system(semi) do neighbor u_neighbor = wrap_u(u_ode, neighbor, semi) - neighborhood_search = neighborhood_searches(system, neighbor, semi) + neighborhood_search = get_neighborhood_search(system, neighbor, semi) update!(neighborhood_search, nhs_coords(system, neighbor, u_neighbor)) end @@ -442,7 +450,7 @@ end v_neighbor = wrap_v(v_ode, neighbor, semi) u_neighbor = wrap_u(u_ode, neighbor, semi) - nhs = neighborhood_searches(system, neighbor, semi) + nhs = get_neighborhood_search(system, neighbor, semi) @trixi_timeit timer() timer_str begin interact!(dv, v_system, u_system, v_neighbor, u_neighbor, nhs, system, neighbor) diff --git a/src/schemes/boundary/dummy_particles/dummy_particles.jl b/src/schemes/boundary/dummy_particles/dummy_particles.jl index 1d1450d8b..26f58564d 100644 --- a/src/schemes/boundary/dummy_particles/dummy_particles.jl +++ b/src/schemes/boundary/dummy_particles/dummy_particles.jl @@ -405,7 +405,7 @@ function compute_pressure!(boundary_model, ::AdamiPressureExtrapolation, v_neighbor_system = wrap_v(v_ode, neighbor_system, semi) u_neighbor_system = wrap_u(u_ode, neighbor_system, semi) - nhs = neighborhood_searches(system, neighbor_system, semi) + nhs = get_neighborhood_search(system, neighbor_system, semi) neighbor_coords = current_coordinates(u_neighbor_system, neighbor_system) diff --git a/src/schemes/fluid/weakly_compressible_sph/system.jl b/src/schemes/fluid/weakly_compressible_sph/system.jl index 79aa42d81..5d24899af 100644 --- a/src/schemes/fluid/weakly_compressible_sph/system.jl +++ b/src/schemes/fluid/weakly_compressible_sph/system.jl @@ -166,7 +166,7 @@ function update_quantities!(system::WeaklyCompressibleSPHSystem, v, u, compute_density!(system, u, u_ode, semi, density_calculator) - nhs = neighborhood_searches(system, system, semi) + nhs = get_neighborhood_search(system, semi) @trixi_timeit timer() "update density diffusion" update!(density_diffusion, nhs, v, u, system, semi) diff --git a/src/schemes/solid/total_lagrangian_sph/system.jl b/src/schemes/solid/total_lagrangian_sph/system.jl index 4ff74ba2a..34bb34c3e 100644 --- a/src/schemes/solid/total_lagrangian_sph/system.jl +++ b/src/schemes/solid/total_lagrangian_sph/system.jl @@ -271,7 +271,7 @@ end function update_quantities!(system::TotalLagrangianSPHSystem, v, u, v_ode, u_ode, semi, t) # Precompute PK1 stress tensor - nhs = neighborhood_searches(system, system, semi) + nhs = get_neighborhood_search(system, semi) @trixi_timeit timer() "stress tensor" compute_pk1_corrected(nhs, system) return system diff --git a/src/visualization/write2vtk.jl b/src/visualization/write2vtk.jl index c7bd2085f..2ddf0d560 100644 --- a/src/visualization/write2vtk.jl +++ b/src/visualization/write2vtk.jl @@ -40,7 +40,7 @@ function trixi2vtk(vu_ode, semi, t; iter=nothing, output_directory="out", prefix v = wrap_v(v_ode, system, semi) u = wrap_u(u_ode, system, semi) - periodic_box = neighborhood_searches(system, system, semi).periodic_box + periodic_box = get_neighborhood_search(system, semi).periodic_box trixi2vtk(v, u, t, system, periodic_box; output_directory=output_directory, From d09e779b65546937152a4587d9ae72267cbb4320 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 30 Nov 2023 14:49:11 +0100 Subject: [PATCH 002/212] basic working --- examples/fluid/rectangular_tank_2d.jl | 6 +++++- src/general/general.jl | 1 + src/general/interpolation.jl | 23 ++++++++++++++++++----- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/examples/fluid/rectangular_tank_2d.jl b/examples/fluid/rectangular_tank_2d.jl index 37697390a..18864dbe0 100644 --- a/examples/fluid/rectangular_tank_2d.jl +++ b/examples/fluid/rectangular_tank_2d.jl @@ -3,7 +3,7 @@ using OrdinaryDiffEq # ========================================================================================== # ==== Resolution -fluid_particle_spacing = 0.02 +fluid_particle_spacing = 0.1 # Change spacing ratio to 3 and boundary layers to 1 when using Monaghan-Kajtar boundary model boundary_layers = 3 @@ -83,3 +83,7 @@ sol = solve(ode, RDPK3SpFSAL49(), reltol=1e-3, # Default reltol is 1e-3 (may need to be tuned to prevent boundary penetration) dtmax=1e-2, # Limit stepsize to prevent crashing save_everystep=false, callback=callbacks); + +println(TrixiParticles.interpolate_point([0.0, 0.0], semi, sol, 2*smoothing_length)) +println(TrixiParticles.interpolate_point([0.1, 0.1], semi, sol, 2*smoothing_length)) +println(TrixiParticles.interpolate_point([0.05, 0.05], semi, sol, 2*smoothing_length)) diff --git a/src/general/general.jl b/src/general/general.jl index e5cf8bdd4..4b57b056d 100644 --- a/src/general/general.jl +++ b/src/general/general.jl @@ -12,3 +12,4 @@ include("corrections.jl") include("smoothing_kernels.jl") include("initial_condition.jl") include("system.jl") +include("interpolation.jl") diff --git a/src/general/interpolation.jl b/src/general/interpolation.jl index 9332bdb77..72071dee5 100644 --- a/src/general/interpolation.jl +++ b/src/general/interpolation.jl @@ -1,18 +1,31 @@ struct system_properties end -function interpolate_point(point_coords, semi) +function interpolate_point(point_coords, semi, sol, smoothing_length) density = 0.0 + neighbor_count = 0 foreach_system(semi) do system - u_neighbor_system = wrap_u(u_ode, neighbor_system, semi) + #v = wrap_v(sol[end].x[1], system, semi) + u = wrap_u(sol[end].x[2], system, semi) system_coords = current_coordinates(u, system) nhs = get_neighborhood_search(system, semi) + #search_radius2 = system.smoothing_length^2 + search_radius2 = smoothing_length^2 - for neighbor in eachneighbor(point_coords, nhs) - distance = norm(point_coords - system_coords[neighbor]) - density += mass[neighbor] * smoothing_kernel(system, distance) + for particle in eachneighbor(point_coords, nhs) + coords = extract_svector(system_coords, Val(ndims(system)), particle) + + pos_diff = point_coords - coords + distance2 = dot(pos_diff, pos_diff) + if distance2 > search_radius2 + continue + end + + mass = hydrodynamic_mass(system, particle) + density += mass * smoothing_kernel(system, sqrt(distance2)) + neighbor_count += 1 end end From fd3c98b9d8a582e3223bf8065245d7c8d0b6b87a Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 30 Nov 2023 15:20:25 +0100 Subject: [PATCH 003/212] support periodic --- examples/fluid/rectangular_tank_2d.jl | 6 +++--- src/general/interpolation.jl | 3 ++- src/general/semidiscretization.jl | 16 ++++++++++++++++ src/neighborhood_search/neighborhood_search.jl | 4 ++++ 4 files changed, 25 insertions(+), 4 deletions(-) diff --git a/examples/fluid/rectangular_tank_2d.jl b/examples/fluid/rectangular_tank_2d.jl index 18864dbe0..1c107c1c1 100644 --- a/examples/fluid/rectangular_tank_2d.jl +++ b/examples/fluid/rectangular_tank_2d.jl @@ -84,6 +84,6 @@ sol = solve(ode, RDPK3SpFSAL49(), dtmax=1e-2, # Limit stepsize to prevent crashing save_everystep=false, callback=callbacks); -println(TrixiParticles.interpolate_point([0.0, 0.0], semi, sol, 2*smoothing_length)) -println(TrixiParticles.interpolate_point([0.1, 0.1], semi, sol, 2*smoothing_length)) -println(TrixiParticles.interpolate_point([0.05, 0.05], semi, sol, 2*smoothing_length)) +println(TrixiParticles.interpolate_point([0.0, 0.0], semi, sol, 2 * smoothing_length)) +println(TrixiParticles.interpolate_point([0.1, 0.1], semi, sol, 2 * smoothing_length)) +println(TrixiParticles.interpolate_point([0.05, 0.05], semi, sol, 2 * smoothing_length)) diff --git a/src/general/interpolation.jl b/src/general/interpolation.jl index 72071dee5..ec9ff4143 100644 --- a/src/general/interpolation.jl +++ b/src/general/interpolation.jl @@ -11,14 +11,15 @@ function interpolate_point(point_coords, semi, sol, smoothing_length) system_coords = current_coordinates(u, system) nhs = get_neighborhood_search(system, semi) - #search_radius2 = system.smoothing_length^2 search_radius2 = smoothing_length^2 + nhs = create_neighborhood_search(system,nhs, smoothing_length) for particle in eachneighbor(point_coords, nhs) coords = extract_svector(system_coords, Val(ndims(system)), particle) pos_diff = point_coords - coords distance2 = dot(pos_diff, pos_diff) + pos_diff, distance2 = compute_periodic_distance(pos_diff, distance2, nhs) if distance2 > search_radius2 continue end diff --git a/src/general/semidiscretization.jl b/src/general/semidiscretization.jl index 4f0c93424..fe3d796a2 100644 --- a/src/general/semidiscretization.jl +++ b/src/general/semidiscretization.jl @@ -101,6 +101,22 @@ function create_neighborhood_search(system, neighbor, ::Val{GridNeighborhoodSear return search end +# create a copy of a neighborhood search but with a different search radius +function create_neighborhood_search(neighbor, nhs::GridNeighborhoodSearch, search_radius) + if nhs.periodic_box isa Nothing + search = GridNeighborhoodSearch{ndims(nhs)}(search_radius, nparticles(nhs)) + else + search = GridNeighborhoodSearch{ndims(nhs)}(search_radius, nparticles(nhs), + min_corner=nhs.periodic_box.min_corner, + max_corner=nhs.periodic_box.max_corner) + end + + # Initialize neighborhood search + initialize!(search, initial_coordinates(neighbor)) + + return search +end + @inline function compact_support(system, neighbor) (; smoothing_kernel, smoothing_length) = system return compact_support(smoothing_kernel, smoothing_length) diff --git a/src/neighborhood_search/neighborhood_search.jl b/src/neighborhood_search/neighborhood_search.jl index 0b378454e..8ca9492ff 100644 --- a/src/neighborhood_search/neighborhood_search.jl +++ b/src/neighborhood_search/neighborhood_search.jl @@ -77,6 +77,10 @@ end end end +@inline function compute_periodic_distance(pos_diff, distance2, nhs) + compute_periodic_distance(pos_diff, distance2, nhs.search_radius, nhs.periodic_box) +end + @inline function compute_periodic_distance(pos_diff, distance2, search_radius, periodic_box::Nothing) return pos_diff, distance2 From 118585b480b0917d496627de58c1ffb2504ee98a Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 30 Nov 2023 18:23:34 +0100 Subject: [PATCH 004/212] allow to define different smoothing_length --- examples/fluid/rectangular_tank_2d.jl | 9 +++++--- src/general/interpolation.jl | 31 +++++++++++++++++++-------- 2 files changed, 28 insertions(+), 12 deletions(-) diff --git a/examples/fluid/rectangular_tank_2d.jl b/examples/fluid/rectangular_tank_2d.jl index 1c107c1c1..a13a7fad9 100644 --- a/examples/fluid/rectangular_tank_2d.jl +++ b/examples/fluid/rectangular_tank_2d.jl @@ -84,6 +84,9 @@ sol = solve(ode, RDPK3SpFSAL49(), dtmax=1e-2, # Limit stepsize to prevent crashing save_everystep=false, callback=callbacks); -println(TrixiParticles.interpolate_point([0.0, 0.0], semi, sol, 2 * smoothing_length)) -println(TrixiParticles.interpolate_point([0.1, 0.1], semi, sol, 2 * smoothing_length)) -println(TrixiParticles.interpolate_point([0.05, 0.05], semi, sol, 2 * smoothing_length)) +println(TrixiParticles.interpolate_point([0.0, 0.0], semi, fluid_system, sol)) +println(TrixiParticles.interpolate_point([0.0, 0.0], semi, fluid_system, sol, smoothing_length = 2.0 * smoothing_length)) +println(TrixiParticles.interpolate_point([0.1, 0.1], semi, fluid_system, sol)) +println(TrixiParticles.interpolate_point([0.1, 0.1], semi, fluid_system, sol, smoothing_length = 2.0 * smoothing_length)) +println(TrixiParticles.interpolate_point([0.05, 0.05], semi, fluid_system, sol)) +println(TrixiParticles.interpolate_point([0.05, 0.05], semi, fluid_system, sol, smoothing_length = 2.0 * smoothing_length)) diff --git a/src/general/interpolation.jl b/src/general/interpolation.jl index ec9ff4143..1efd3fe62 100644 --- a/src/general/interpolation.jl +++ b/src/general/interpolation.jl @@ -1,18 +1,22 @@ -struct system_properties -end - -function interpolate_point(point_coords, semi, sol, smoothing_length) +function interpolate_point(point_coords, semi, ref_system, sol; smoothing_length=ref_system.smoothing_length) density = 0.0 + + in_ref_system = false + ref_id = system_indices(ref_system, semi) + neighbor_count = 0 + ref_smoothing_kernel = ref_system.smoothing_kernel + search_radius = compact_support(ref_smoothing_kernel, smoothing_length) + search_radius2 = search_radius^2 foreach_system(semi) do system + system_id = system_indices(system, semi) #v = wrap_v(sol[end].x[1], system, semi) u = wrap_u(sol[end].x[2], system, semi) system_coords = current_coordinates(u, system) nhs = get_neighborhood_search(system, semi) - search_radius2 = smoothing_length^2 - nhs = create_neighborhood_search(system,nhs, smoothing_length) + nhs = create_neighborhood_search(system, nhs, search_radius) for particle in eachneighbor(point_coords, nhs) coords = extract_svector(system_coords, Val(ndims(system)), particle) @@ -24,11 +28,20 @@ function interpolate_point(point_coords, semi, sol, smoothing_length) continue end + distance = sqrt(distance2) mass = hydrodynamic_mass(system, particle) - density += mass * smoothing_kernel(system, sqrt(distance2)) - neighbor_count += 1 + density += mass * kernel(ref_smoothing_kernel, distance, smoothing_length) + neighbor_count +=1 + if system_id === ref_id + in_ref_system = true + end end end - return density + # point is not within the search_radius of any particle within the reference system + if !in_ref_system + return (density=0.0, neighbor_count=0) + end + + return (density=density, neighbor_count=neighbor_count) end From a4e306d39f59a925bfaa5c73b9ff578460ec7e31 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 1 Dec 2023 00:38:15 +0100 Subject: [PATCH 005/212] more precisely identify system regions --- examples/fluid/rectangular_tank_2d.jl | 14 ++++++++------ src/general/interpolation.jl | 17 ++++++++++++----- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/examples/fluid/rectangular_tank_2d.jl b/examples/fluid/rectangular_tank_2d.jl index a13a7fad9..85a43d929 100644 --- a/examples/fluid/rectangular_tank_2d.jl +++ b/examples/fluid/rectangular_tank_2d.jl @@ -84,9 +84,11 @@ sol = solve(ode, RDPK3SpFSAL49(), dtmax=1e-2, # Limit stepsize to prevent crashing save_everystep=false, callback=callbacks); -println(TrixiParticles.interpolate_point([0.0, 0.0], semi, fluid_system, sol)) -println(TrixiParticles.interpolate_point([0.0, 0.0], semi, fluid_system, sol, smoothing_length = 2.0 * smoothing_length)) -println(TrixiParticles.interpolate_point([0.1, 0.1], semi, fluid_system, sol)) -println(TrixiParticles.interpolate_point([0.1, 0.1], semi, fluid_system, sol, smoothing_length = 2.0 * smoothing_length)) -println(TrixiParticles.interpolate_point([0.05, 0.05], semi, fluid_system, sol)) -println(TrixiParticles.interpolate_point([0.05, 0.05], semi, fluid_system, sol, smoothing_length = 2.0 * smoothing_length)) +println(TrixiParticles.interpolate_point([1.0, 0.01], semi, fluid_system, sol)) +println(TrixiParticles.interpolate_point([1.0, 0.01], semi, fluid_system, sol, smoothing_length = 2.0 * smoothing_length)) +println(TrixiParticles.interpolate_point([1.0, 0.1], semi, fluid_system, sol)) +println(TrixiParticles.interpolate_point([1.0, 0.1], semi, fluid_system, sol, smoothing_length = 2.0 * smoothing_length)) +println(TrixiParticles.interpolate_point([1.0, 0.0], semi, fluid_system, sol)) +println(TrixiParticles.interpolate_point([1.0, 0.0], semi, fluid_system, sol, smoothing_length = 2.0 * smoothing_length)) +println(TrixiParticles.interpolate_point([1.0, -0.01], semi, fluid_system, sol)) +println(TrixiParticles.interpolate_point([1.0, -0.05], semi, fluid_system, sol)) diff --git a/src/general/interpolation.jl b/src/general/interpolation.jl index 1efd3fe62..69c5bad29 100644 --- a/src/general/interpolation.jl +++ b/src/general/interpolation.jl @@ -5,6 +5,8 @@ function interpolate_point(point_coords, semi, ref_system, sol; smoothing_length ref_id = system_indices(ref_system, semi) neighbor_count = 0 + ref_density = 0.0 + other_density = 0.0 ref_smoothing_kernel = ref_system.smoothing_kernel search_radius = compact_support(ref_smoothing_kernel, smoothing_length) search_radius2 = search_radius^2 @@ -30,16 +32,21 @@ function interpolate_point(point_coords, semi, ref_system, sol; smoothing_length distance = sqrt(distance2) mass = hydrodynamic_mass(system, particle) - density += mass * kernel(ref_smoothing_kernel, distance, smoothing_length) - neighbor_count +=1 + m_W = mass * kernel(ref_smoothing_kernel, distance, smoothing_length) + density += m_W + if system_id === ref_id - in_ref_system = true + ref_density += m_W + else + other_density += m_W end + + neighbor_count +=1 end end - # point is not within the search_radius of any particle within the reference system - if !in_ref_system + # point is not within the ref_system + if other_density > ref_density return (density=0.0, neighbor_count=0) end From d0d4e85d2c58fd225a30482ca3e1918fa95e8257 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 1 Dec 2023 01:04:39 +0100 Subject: [PATCH 006/212] to improve accuracy calc shepard --- src/general/interpolation.jl | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/general/interpolation.jl b/src/general/interpolation.jl index 69c5bad29..7af70f12b 100644 --- a/src/general/interpolation.jl +++ b/src/general/interpolation.jl @@ -1,9 +1,7 @@ function interpolate_point(point_coords, semi, ref_system, sol; smoothing_length=ref_system.smoothing_length) density = 0.0 - - in_ref_system = false + shepard_coefficient = 0.0 ref_id = system_indices(ref_system, semi) - neighbor_count = 0 ref_density = 0.0 other_density = 0.0 @@ -13,7 +11,7 @@ function interpolate_point(point_coords, semi, ref_system, sol; smoothing_length foreach_system(semi) do system system_id = system_indices(system, semi) - #v = wrap_v(sol[end].x[1], system, semi) + v = wrap_v(sol[end].x[1], system, semi) u = wrap_u(sol[end].x[2], system, semi) system_coords = current_coordinates(u, system) @@ -32,8 +30,13 @@ function interpolate_point(point_coords, semi, ref_system, sol; smoothing_length distance = sqrt(distance2) mass = hydrodynamic_mass(system, particle) - m_W = mass * kernel(ref_smoothing_kernel, distance, smoothing_length) + volume = mass/particle_density(v, system, particle) + kernel_value = kernel(ref_smoothing_kernel, distance, smoothing_length) + + + m_W = mass * kernel_value density += m_W + shepard_coefficient += volume * kernel_value if system_id === ref_id ref_density += m_W @@ -50,5 +53,5 @@ function interpolate_point(point_coords, semi, ref_system, sol; smoothing_length return (density=0.0, neighbor_count=0) end - return (density=density, neighbor_count=neighbor_count) + return (density=density/shepard_coefficient, neighbor_count=neighbor_count) end From 7f11ce63810fdb311342c463f420fd9ba13aecfc Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 1 Dec 2023 01:13:53 +0100 Subject: [PATCH 007/212] add support for multiple points --- examples/fluid/rectangular_tank_2d.jl | 3 +++ src/general/interpolation.jl | 11 +++++++++++ 2 files changed, 14 insertions(+) diff --git a/examples/fluid/rectangular_tank_2d.jl b/examples/fluid/rectangular_tank_2d.jl index 85a43d929..9dba8236c 100644 --- a/examples/fluid/rectangular_tank_2d.jl +++ b/examples/fluid/rectangular_tank_2d.jl @@ -92,3 +92,6 @@ println(TrixiParticles.interpolate_point([1.0, 0.0], semi, fluid_system, sol)) println(TrixiParticles.interpolate_point([1.0, 0.0], semi, fluid_system, sol, smoothing_length = 2.0 * smoothing_length)) println(TrixiParticles.interpolate_point([1.0, -0.01], semi, fluid_system, sol)) println(TrixiParticles.interpolate_point([1.0, -0.05], semi, fluid_system, sol)) + + +println(TrixiParticles.interpolate_point( [[1.0, 0.01], [1.0, 0.1], [1.0, 0.0], [1.0, -0.01], [1.0, -0.05]], semi, fluid_system, sol)) diff --git a/src/general/interpolation.jl b/src/general/interpolation.jl index 7af70f12b..ecc0c3764 100644 --- a/src/general/interpolation.jl +++ b/src/general/interpolation.jl @@ -1,3 +1,14 @@ +function interpolate_point(points_coords::Array{Array{Float64,1},1}, semi, ref_system, sol; smoothing_length=ref_system.smoothing_length) + results = [] + + for point in points_coords + result = interpolate_point(point, semi, ref_system, sol, smoothing_length=smoothing_length) + push!(results, result) + end + + return results +end + function interpolate_point(point_coords, semi, ref_system, sol; smoothing_length=ref_system.smoothing_length) density = 0.0 shepard_coefficient = 0.0 From 2d7334c4406f792b71874d24ae1c09138e66ce4d Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 1 Dec 2023 01:54:22 +0100 Subject: [PATCH 008/212] add line interpolation --- examples/fluid/rectangular_tank_2d.jl | 3 +++ src/general/interpolation.jl | 17 +++++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/examples/fluid/rectangular_tank_2d.jl b/examples/fluid/rectangular_tank_2d.jl index 9dba8236c..47eead696 100644 --- a/examples/fluid/rectangular_tank_2d.jl +++ b/examples/fluid/rectangular_tank_2d.jl @@ -95,3 +95,6 @@ println(TrixiParticles.interpolate_point([1.0, -0.05], semi, fluid_system, sol)) println(TrixiParticles.interpolate_point( [[1.0, 0.01], [1.0, 0.1], [1.0, 0.0], [1.0, -0.01], [1.0, -0.05]], semi, fluid_system, sol)) + +println(TrixiParticles.interpolate_line([1.0, -0.05], [1.0, 1.0], 5, semi, fluid_system, sol)) +println(TrixiParticles.interpolate_line([1.0, -0.05], [1.0, 1.0], 5, semi, fluid_system, sol, endpoint=false)) diff --git a/src/general/interpolation.jl b/src/general/interpolation.jl index ecc0c3764..b5a2963e3 100644 --- a/src/general/interpolation.jl +++ b/src/general/interpolation.jl @@ -1,3 +1,16 @@ +function interpolate_line(start, end_, no_points, semi, ref_system, sol; endpoint=true, smoothing_length=ref_system.smoothing_length) + if endpoint + # Include both start and end points + points_coords = [start + (end_ - start) * t / (no_points - 1) for t in 0:(no_points - 1)] + else + # Exclude start and end points + points_coords = [start + (end_ - start) * (t + 1) / (no_points + 1) for t in 0:(no_points - 1)] + end + + return interpolate_point(points_coords, semi, ref_system, sol, smoothing_length=smoothing_length) +end + + function interpolate_point(points_coords::Array{Array{Float64,1},1}, semi, ref_system, sol; smoothing_length=ref_system.smoothing_length) results = [] @@ -61,8 +74,8 @@ function interpolate_point(point_coords, semi, ref_system, sol; smoothing_length # point is not within the ref_system if other_density > ref_density - return (density=0.0, neighbor_count=0) + return (density=0.0, neighbor_count=0, coord=point_coords) end - return (density=density/shepard_coefficient, neighbor_count=neighbor_count) + return (density=density/shepard_coefficient, neighbor_count=neighbor_count, coord=point_coords) end From 0a5a58014e129883219ef0b74d494ee0fac77021 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 1 Dec 2023 02:01:58 +0100 Subject: [PATCH 009/212] add doc --- src/general/interpolation.jl | 74 +++++++++++++++++++++++++++++++++++- 1 file changed, 73 insertions(+), 1 deletion(-) diff --git a/src/general/interpolation.jl b/src/general/interpolation.jl index b5a2963e3..0afdf7315 100644 --- a/src/general/interpolation.jl +++ b/src/general/interpolation.jl @@ -1,3 +1,39 @@ +@doc raw""" + interpolate_line(start, end_, no_points, semi, ref_system, sol; endpoint=true, smoothing_length=ref_system.smoothing_length) + +Interpolates properties along a line in an SPH simulation environment. +The line is defined by its start and end points, and the number of points to interpolate along this line is specified. +The function can optionally include or exclude the line's endpoint in the interpolation process. + +The line interpolation is accomplished by generating a series of evenly spaced points between `start` and `end_`. +The number of these points is determined by `no_points`. When `endpoint` is `true`, both the start and end points are included in the interpolation. +If `endpoint` is `false`, the line is interpolated between the start and end points but does not include these points. + +The function relies on the existing `interpolate_point` function for performing the actual interpolation at each point. + +### Parameters: +- `start`: The starting point of the line. +- `end_`: The ending point of the line. +- `no_points`: The number of points to interpolate along the line. +- `semi`: The semidiscretization used for the simulation. +- `ref_system`: The reference system for the interpolation. +- `sol`: The solution state from which the properties are interpolated. +- `endpoint`: Optional. A boolean to include (`true`) or exclude (`false`) the end point in the interpolation. Default is `true`. +- `smoothing_length`: Optional. The smoothing length used in the interpolation. Default is `ref_system.smoothing_length`. + +### Returns: +An array of interpolated properties at each point along the line. + +!!! note + - This function is particularly useful for analyzing gradients or creating visualizations along a specified line in the SPH simulation domain. + - The interpolation accuracy is subject to the density of particles and the chosen smoothing length. + +## Example +```julia +# Interpolating along a line from [1.0, 0.0] to [1.0, 1.0] with 5 points +results = interpolate_line([1.0, 0.0], [1.0, 1.0], 5, semi, ref_system, sol) +``` +""" function interpolate_line(start, end_, no_points, semi, ref_system, sol; endpoint=true, smoothing_length=ref_system.smoothing_length) if endpoint # Include both start and end points @@ -10,7 +46,43 @@ function interpolate_line(start, end_, no_points, semi, ref_system, sol; endpoin return interpolate_point(points_coords, semi, ref_system, sol, smoothing_length=smoothing_length) end - +@doc raw""" + interpolate_point(points_coords::Array{Array{Float64,1},1}, semi, ref_system, sol; smoothing_length=ref_system.smoothing_length) + + interpolate_point(point_coords, semi, ref_system, sol; smoothing_length=ref_system.smoothing_length) + +Performs interpolation of properties at specified points or an array of points in an SPH (Smoothed Particle Hydrodynamics) simulation. +This function can handle either a single point or multiple points. + +When given an array of points (`points_coords`), it iterates over each point and applies interpolation individually. +For a single point (`point_coords`), it performs the interpolation at that specific location. +The interpolation is based on the SPH method, utilizing a kernel function to weigh contributions from nearby particles. + +### Parameters: +- `points_coords`: An array of points (each being an Array{Float64,1}) for which to interpolate properties. +- `point_coords`: The coordinates of a single point (Array{Float64,1}) for interpolation. +- `semi`: The semidiscretization used in the SPH simulation. +- `ref_system`: The reference system defining the properties of the SPH particles. +- `sol`: The current solution state from which properties are interpolated. +- `smoothing_length`: Optional. The smoothing length used in the kernel function. Defaults to `ref_system.smoothing_length`. + +### Returns: +- For multiple points: An array of results, each containing the interpolated property (e.g., density), the neighbor count, and the coordinates of the point. +- For a single point: A tuple containing the interpolated property, the neighbor count, and the coordinates of the point. + +### Usage: +```julia +# For a single point +result = interpolate_point([1.0, 0.5], semi, ref_system, sol) + +# For multiple points +points = [[1.0, 0.5], [1.0, 0.6], [1.0, 0.7]] +results = interpolate_point(points, semi, ref_system, sol) +``` +!!! note +- The accuracy of interpolation depends on the local particle density and the smoothing length. +- This function is particularly useful for extracting physical properties at specific locations within the SPH simulation domain, which can be crucial for analysis and visualization. +""" function interpolate_point(points_coords::Array{Array{Float64,1},1}, semi, ref_system, sol; smoothing_length=ref_system.smoothing_length) results = [] From 2c10d6c07e72a6137d10660c352e203723d49c9b Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 1 Dec 2023 02:02:10 +0100 Subject: [PATCH 010/212] format --- examples/fluid/rectangular_tank_2d.jl | 26 ++++++++++++++++-------- src/general/interpolation.jl | 29 +++++++++++++++++---------- 2 files changed, 36 insertions(+), 19 deletions(-) diff --git a/examples/fluid/rectangular_tank_2d.jl b/examples/fluid/rectangular_tank_2d.jl index 47eead696..a7977593e 100644 --- a/examples/fluid/rectangular_tank_2d.jl +++ b/examples/fluid/rectangular_tank_2d.jl @@ -85,16 +85,26 @@ sol = solve(ode, RDPK3SpFSAL49(), save_everystep=false, callback=callbacks); println(TrixiParticles.interpolate_point([1.0, 0.01], semi, fluid_system, sol)) -println(TrixiParticles.interpolate_point([1.0, 0.01], semi, fluid_system, sol, smoothing_length = 2.0 * smoothing_length)) +println(TrixiParticles.interpolate_point([1.0, 0.01], semi, fluid_system, sol, + smoothing_length=2.0 * smoothing_length)) println(TrixiParticles.interpolate_point([1.0, 0.1], semi, fluid_system, sol)) -println(TrixiParticles.interpolate_point([1.0, 0.1], semi, fluid_system, sol, smoothing_length = 2.0 * smoothing_length)) +println(TrixiParticles.interpolate_point([1.0, 0.1], semi, fluid_system, sol, + smoothing_length=2.0 * smoothing_length)) println(TrixiParticles.interpolate_point([1.0, 0.0], semi, fluid_system, sol)) -println(TrixiParticles.interpolate_point([1.0, 0.0], semi, fluid_system, sol, smoothing_length = 2.0 * smoothing_length)) +println(TrixiParticles.interpolate_point([1.0, 0.0], semi, fluid_system, sol, + smoothing_length=2.0 * smoothing_length)) println(TrixiParticles.interpolate_point([1.0, -0.01], semi, fluid_system, sol)) println(TrixiParticles.interpolate_point([1.0, -0.05], semi, fluid_system, sol)) - -println(TrixiParticles.interpolate_point( [[1.0, 0.01], [1.0, 0.1], [1.0, 0.0], [1.0, -0.01], [1.0, -0.05]], semi, fluid_system, sol)) - -println(TrixiParticles.interpolate_line([1.0, -0.05], [1.0, 1.0], 5, semi, fluid_system, sol)) -println(TrixiParticles.interpolate_line([1.0, -0.05], [1.0, 1.0], 5, semi, fluid_system, sol, endpoint=false)) +println(TrixiParticles.interpolate_point([ + [1.0, 0.01], + [1.0, 0.1], + [1.0, 0.0], + [1.0, -0.01], + [1.0, -0.05], + ], semi, fluid_system, sol)) + +println(TrixiParticles.interpolate_line([1.0, -0.05], [1.0, 1.0], 5, semi, fluid_system, + sol)) +println(TrixiParticles.interpolate_line([1.0, -0.05], [1.0, 1.0], 5, semi, fluid_system, + sol, endpoint=false)) diff --git a/src/general/interpolation.jl b/src/general/interpolation.jl index 0afdf7315..53b51565e 100644 --- a/src/general/interpolation.jl +++ b/src/general/interpolation.jl @@ -34,16 +34,20 @@ An array of interpolated properties at each point along the line. results = interpolate_line([1.0, 0.0], [1.0, 1.0], 5, semi, ref_system, sol) ``` """ -function interpolate_line(start, end_, no_points, semi, ref_system, sol; endpoint=true, smoothing_length=ref_system.smoothing_length) +function interpolate_line(start, end_, no_points, semi, ref_system, sol; endpoint=true, + smoothing_length=ref_system.smoothing_length) if endpoint # Include both start and end points - points_coords = [start + (end_ - start) * t / (no_points - 1) for t in 0:(no_points - 1)] + points_coords = [start + (end_ - start) * t / (no_points - 1) + for t in 0:(no_points - 1)] else # Exclude start and end points - points_coords = [start + (end_ - start) * (t + 1) / (no_points + 1) for t in 0:(no_points - 1)] + points_coords = [start + (end_ - start) * (t + 1) / (no_points + 1) + for t in 0:(no_points - 1)] end - return interpolate_point(points_coords, semi, ref_system, sol, smoothing_length=smoothing_length) + return interpolate_point(points_coords, semi, ref_system, sol, + smoothing_length=smoothing_length) end @doc raw""" @@ -83,18 +87,21 @@ results = interpolate_point(points, semi, ref_system, sol) - The accuracy of interpolation depends on the local particle density and the smoothing length. - This function is particularly useful for extracting physical properties at specific locations within the SPH simulation domain, which can be crucial for analysis and visualization. """ -function interpolate_point(points_coords::Array{Array{Float64,1},1}, semi, ref_system, sol; smoothing_length=ref_system.smoothing_length) +function interpolate_point(points_coords::Array{Array{Float64, 1}, 1}, semi, ref_system, + sol; smoothing_length=ref_system.smoothing_length) results = [] for point in points_coords - result = interpolate_point(point, semi, ref_system, sol, smoothing_length=smoothing_length) + result = interpolate_point(point, semi, ref_system, sol, + smoothing_length=smoothing_length) push!(results, result) end return results end -function interpolate_point(point_coords, semi, ref_system, sol; smoothing_length=ref_system.smoothing_length) +function interpolate_point(point_coords, semi, ref_system, sol; + smoothing_length=ref_system.smoothing_length) density = 0.0 shepard_coefficient = 0.0 ref_id = system_indices(ref_system, semi) @@ -126,10 +133,9 @@ function interpolate_point(point_coords, semi, ref_system, sol; smoothing_length distance = sqrt(distance2) mass = hydrodynamic_mass(system, particle) - volume = mass/particle_density(v, system, particle) + volume = mass / particle_density(v, system, particle) kernel_value = kernel(ref_smoothing_kernel, distance, smoothing_length) - m_W = mass * kernel_value density += m_W shepard_coefficient += volume * kernel_value @@ -140,7 +146,7 @@ function interpolate_point(point_coords, semi, ref_system, sol; smoothing_length other_density += m_W end - neighbor_count +=1 + neighbor_count += 1 end end @@ -149,5 +155,6 @@ function interpolate_point(point_coords, semi, ref_system, sol; smoothing_length return (density=0.0, neighbor_count=0, coord=point_coords) end - return (density=density/shepard_coefficient, neighbor_count=neighbor_count, coord=point_coords) + return (density=density / shepard_coefficient, neighbor_count=neighbor_count, + coord=point_coords) end From 69e8ddf247b2a0479269a1ab3510521f8fc45e4e Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 1 Dec 2023 13:04:20 +0100 Subject: [PATCH 011/212] add test --- examples/fluid/rectangular_tank_2d.jl | 48 ++++++------ src/TrixiParticles.jl | 1 + src/general/interpolation.jl | 21 +++--- test/general/general.jl | 1 + test/general/interpolation.jl | 105 ++++++++++++++++++++++++++ 5 files changed, 142 insertions(+), 34 deletions(-) create mode 100644 test/general/interpolation.jl diff --git a/examples/fluid/rectangular_tank_2d.jl b/examples/fluid/rectangular_tank_2d.jl index a7977593e..1fcd12773 100644 --- a/examples/fluid/rectangular_tank_2d.jl +++ b/examples/fluid/rectangular_tank_2d.jl @@ -84,27 +84,27 @@ sol = solve(ode, RDPK3SpFSAL49(), dtmax=1e-2, # Limit stepsize to prevent crashing save_everystep=false, callback=callbacks); -println(TrixiParticles.interpolate_point([1.0, 0.01], semi, fluid_system, sol)) -println(TrixiParticles.interpolate_point([1.0, 0.01], semi, fluid_system, sol, - smoothing_length=2.0 * smoothing_length)) -println(TrixiParticles.interpolate_point([1.0, 0.1], semi, fluid_system, sol)) -println(TrixiParticles.interpolate_point([1.0, 0.1], semi, fluid_system, sol, - smoothing_length=2.0 * smoothing_length)) -println(TrixiParticles.interpolate_point([1.0, 0.0], semi, fluid_system, sol)) -println(TrixiParticles.interpolate_point([1.0, 0.0], semi, fluid_system, sol, - smoothing_length=2.0 * smoothing_length)) -println(TrixiParticles.interpolate_point([1.0, -0.01], semi, fluid_system, sol)) -println(TrixiParticles.interpolate_point([1.0, -0.05], semi, fluid_system, sol)) - -println(TrixiParticles.interpolate_point([ - [1.0, 0.01], - [1.0, 0.1], - [1.0, 0.0], - [1.0, -0.01], - [1.0, -0.05], - ], semi, fluid_system, sol)) - -println(TrixiParticles.interpolate_line([1.0, -0.05], [1.0, 1.0], 5, semi, fluid_system, - sol)) -println(TrixiParticles.interpolate_line([1.0, -0.05], [1.0, 1.0], 5, semi, fluid_system, - sol, endpoint=false)) +println(interpolate_point([1.0, 0.01], semi, fluid_system, sol)) +println(interpolate_point([1.0, 0.01], semi, fluid_system, sol, + smoothing_length=2.0 * smoothing_length)) +println(interpolate_point([1.0, 0.1], semi, fluid_system, sol)) +println(interpolate_point([1.0, 0.1], semi, fluid_system, sol, + smoothing_length=2.0 * smoothing_length)) +println(interpolate_point([1.0, 0.0], semi, fluid_system, sol)) +println(interpolate_point([1.0, 0.0], semi, fluid_system, sol, + smoothing_length=2.0 * smoothing_length)) +println(interpolate_point([1.0, -0.01], semi, fluid_system, sol)) +println(interpolate_point([1.0, -0.05], semi, fluid_system, sol)) + +println(interpolate_point([ + [1.0, 0.01], + [1.0, 0.1], + [1.0, 0.0], + [1.0, -0.01], + [1.0, -0.05], + ], semi, fluid_system, sol)) + +println(interpolate_line([1.0, -0.05], [1.0, 1.0], 5, semi, fluid_system, + sol)) +println(interpolate_line([1.0, -0.05], [1.0, 1.0], 5, semi, fluid_system, + sol, endpoint=false)) diff --git a/src/TrixiParticles.jl b/src/TrixiParticles.jl index c9bff5557..5fe9ba125 100644 --- a/src/TrixiParticles.jl +++ b/src/TrixiParticles.jl @@ -57,5 +57,6 @@ export RectangularTank, RectangularShape, SphereShape export VoxelSphere, RoundSphere, reset_wall! export ShepardKernelCorrection, KernelGradientCorrection, AkinciFreeSurfaceCorrection export nparticles +export interpolate_line, interpolate_point end # module diff --git a/src/general/interpolation.jl b/src/general/interpolation.jl index 53b51565e..488118425 100644 --- a/src/general/interpolation.jl +++ b/src/general/interpolation.jl @@ -36,18 +36,19 @@ results = interpolate_line([1.0, 0.0], [1.0, 1.0], 5, semi, ref_system, sol) """ function interpolate_line(start, end_, no_points, semi, ref_system, sol; endpoint=true, smoothing_length=ref_system.smoothing_length) - if endpoint - # Include both start and end points - points_coords = [start + (end_ - start) * t / (no_points - 1) - for t in 0:(no_points - 1)] - else - # Exclude start and end points - points_coords = [start + (end_ - start) * (t + 1) / (no_points + 1) - for t in 0:(no_points - 1)] + points_coords = [start + + (end_ - start) * + (endpoint ? t / (no_points - 1) : (t + 1) / (no_points + 1)) + for t in 0:(no_points - 1)] + + results = [] + for point in points_coords + result = interpolate_point(point, semi, ref_system, sol, + smoothing_length=smoothing_length) + push!(results, result) end - return interpolate_point(points_coords, semi, ref_system, sol, - smoothing_length=smoothing_length) + return results end @doc raw""" diff --git a/test/general/general.jl b/test/general/general.jl index 04d2dd5d1..ac84de771 100644 --- a/test/general/general.jl +++ b/test/general/general.jl @@ -4,3 +4,4 @@ include("initial_condition.jl") include("smoothing_kernels.jl") include("density_calculator.jl") include("semidiscretization.jl") +include("interpolation.jl") diff --git a/test/general/interpolation.jl b/test/general/interpolation.jl new file mode 100644 index 000000000..155872b9f --- /dev/null +++ b/test/general/interpolation.jl @@ -0,0 +1,105 @@ +using OrdinaryDiffEq +include("../test_util.jl") + +@testset verbose=true "SPHInterpolation" begin + smoothing_length = 1.2 * fluid_particle_spacing + smoothing_kernel = SchoenbergCubicSplineKernel{2}() + + state_equation = StateEquationCole(sound_speed, 7, fluid_density, atmospheric_pressure, + background_pressure=atmospheric_pressure, + clip_negative_pressure=false) + + tank = RectangularTank(0.1, (2.0, 0.9), (2.0, 1.0), 1000, n_layers=4, + acceleration=(0.0, -gravity), state_equation=state_equation) + + viscosity = ArtificialViscosityMonaghan(alpha=0.02, beta=0.0) + + fluid_system = WeaklyCompressibleSPHSystem(tank.fluid, ContinuityDensity(), + state_equation, smoothing_kernel, + smoothing_length, viscosity=viscosity, + acceleration=(0.0, -9.81)) + + boundary_model = BoundaryModelDummyParticles(tank.boundary.density, tank.boundary.mass, + state_equation=state_equation, + AdamiPressureExtrapolation(), + smoothing_kernel, smoothing_length) + + boundary_system = BoundarySPHSystem(tank.boundary, boundary_model) + + semi = Semidiscretization(fluid_system, boundary_system, + neighborhood_search=GridNeighborhoodSearch) + ode = semidiscretize(semi, (0.0, 0.1)) + + sol = solve(ode, RDPK3SpFSAL49(), abstol=1e-5, reltol=1e-3, dtmax=1e-2, + save_everystep=false) + + function compare_interpolation_result(actual, expected; tolerance=1e-8) + @test actual.neighbor_count == expected.neighbor_count + @test actual.coord == expected.coord + @test isapprox(actual.density, expected.density, atol=tolerance) + end + + function compare_interpolation_results(actuals, expecteds; tolerance=1e-8) + @test length(actuals) == length(expecteds) + for (actual, expected) in zip(actuals, expecteds) + compare_interpolation_result(actual, expected, tolerance=tolerance) + end + end + + @testset verbose=true "Interpolation Point" begin + result = TrixiParticles.interpolate_point([1.0, 0.01], semi, fluid_system, sol) + + expected_result = (density=1010.0529725852786, neighbor_count=16, coord=[1.0, 0.01]) + compare_interpolation_result(result, expected_result) + end + @testset verbose=true "Interpolation Multi Point" begin + result = TrixiParticles.interpolate_point([ + [1.0, 0.01], + [1.0, 0.1], + [1.0, 0.0], + [1.0, -0.01], + [1.0, -0.05], + ], semi, fluid_system, sol) + + expected_result = [ + (density=1010.0529725852786, neighbor_count=16, coord=[1.0, 0.01]), + (density=1009.0647585308516, neighbor_count=16, coord=[1.0, 0.1]), + (density=1010.1591108027769, neighbor_count=16, coord=[1.0, 0.0]), + (density=0.0, neighbor_count=0, coord=[1.0, -0.01]), + (density=0.0, neighbor_count=0, coord=[1.0, -0.05]), + ] + compare_interpolation_results(result, expected_result) + end + @testset verbose=true "Interpolation Line" begin + expected_result = [ + (density=0.0, neighbor_count=0, coord=[1.0, -0.05]), + (density=1007.8388079925885, neighbor_count=16, + coord=[1.0, 0.21250000000000002]), + (density=1004.907892717609, neighbor_count=18, + coord=[1.0, 0.47500000000000003]), + (density=1001.899652412931, neighbor_count=14, coord=[1.0, 0.7375]), + (density=0.0, neighbor_count=0, coord=[1.0, 1.0]), + ] + + result = TrixiParticles.interpolate_line([1.0, -0.05], [1.0, 1.0], 5, semi, + fluid_system, + sol) + compare_interpolation_results(result, expected_result) + + expected_result_endpoint = [ + (density=1008.7906994450206, neighbor_count=18, + coord=[1.0, 0.12499999999999999]), + (density=1006.8750741471611, neighbor_count=16, coord=[1.0, 0.3]), + (density=1004.907892717609, neighbor_count=18, + coord=[1.0, 0.47500000000000003]), + (density=1002.9010166322735, neighbor_count=16, + coord=[1.0, 0.6499999999999999]), + (density=1001.1009176645862, neighbor_count=14, + coord=[1.0, 0.8250000000000001]), + ] + result_endpoint = TrixiParticles.interpolate_line([1.0, -0.05], [1.0, 1.0], 5, semi, + fluid_system, + sol, endpoint=false) + compare_interpolation_results(result_endpoint, expected_result_endpoint) + end +end From 27065ccef89c3243df2f73af3b83b6bc5605ca09 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 1 Dec 2023 13:09:26 +0100 Subject: [PATCH 012/212] small change to doc --- src/general/interpolation.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/general/interpolation.jl b/src/general/interpolation.jl index 488118425..1079db44d 100644 --- a/src/general/interpolation.jl +++ b/src/general/interpolation.jl @@ -86,7 +86,7 @@ results = interpolate_point(points, semi, ref_system, sol) ``` !!! note - The accuracy of interpolation depends on the local particle density and the smoothing length. -- This function is particularly useful for extracting physical properties at specific locations within the SPH simulation domain, which can be crucial for analysis and visualization. +- This function is particularly useful for extracting physical properties at specific locations within the SPH simulation domain. """ function interpolate_point(points_coords::Array{Array{Float64, 1}, 1}, semi, ref_system, sol; smoothing_length=ref_system.smoothing_length) From 238671e9939bc7b2a901b62346a7dc64ba4ee06e Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 1 Dec 2023 13:10:22 +0100 Subject: [PATCH 013/212] revert accidental change --- examples/fluid/rectangular_tank_2d.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/fluid/rectangular_tank_2d.jl b/examples/fluid/rectangular_tank_2d.jl index 1fcd12773..417453457 100644 --- a/examples/fluid/rectangular_tank_2d.jl +++ b/examples/fluid/rectangular_tank_2d.jl @@ -3,7 +3,7 @@ using OrdinaryDiffEq # ========================================================================================== # ==== Resolution -fluid_particle_spacing = 0.1 +fluid_particle_spacing = 0.02 # Change spacing ratio to 3 and boundary layers to 1 when using Monaghan-Kajtar boundary model boundary_layers = 3 From 151281616f06bf75ffe6d1d3fdce11cc3aad51d0 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 1 Dec 2023 13:22:53 +0100 Subject: [PATCH 014/212] fix --- test/general/interpolation.jl | 1 - 1 file changed, 1 deletion(-) diff --git a/test/general/interpolation.jl b/test/general/interpolation.jl index 155872b9f..15d19805e 100644 --- a/test/general/interpolation.jl +++ b/test/general/interpolation.jl @@ -1,5 +1,4 @@ using OrdinaryDiffEq -include("../test_util.jl") @testset verbose=true "SPHInterpolation" begin smoothing_length = 1.2 * fluid_particle_spacing From 959e36e68f33291358b54763adc389d8b30345d0 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 1 Dec 2023 13:25:20 +0100 Subject: [PATCH 015/212] another fix --- test/general/interpolation.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/general/interpolation.jl b/test/general/interpolation.jl index 15d19805e..c3ab08d0b 100644 --- a/test/general/interpolation.jl +++ b/test/general/interpolation.jl @@ -1,7 +1,7 @@ using OrdinaryDiffEq @testset verbose=true "SPHInterpolation" begin - smoothing_length = 1.2 * fluid_particle_spacing + smoothing_length = 1.2 * 0.1 smoothing_kernel = SchoenbergCubicSplineKernel{2}() state_equation = StateEquationCole(sound_speed, 7, fluid_density, atmospheric_pressure, From a0c9694215fd5599574aca3674e0c59b17379503 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 1 Dec 2023 13:28:25 +0100 Subject: [PATCH 016/212] format --- src/schemes/boundary/rhs.jl | 5 ++++- src/schemes/boundary/system.jl | 15 ++++++++++++--- src/schemes/solid/total_lagrangian_sph/rhs.jl | 4 +++- src/schemes/solid/total_lagrangian_sph/system.jl | 6 +++++- 4 files changed, 24 insertions(+), 6 deletions(-) diff --git a/src/schemes/boundary/rhs.jl b/src/schemes/boundary/rhs.jl index a2fde6f33..6429c1186 100644 --- a/src/schemes/boundary/rhs.jl +++ b/src/schemes/boundary/rhs.jl @@ -9,7 +9,10 @@ end # For dummy particles with `ContinuityDensity`, solve the continuity equation function interact!(dv, v_particle_system, u_particle_system, v_neighbor_system, u_neighbor_system, neighborhood_search, - particle_system::BoundarySPHSystem{<:BoundaryModelDummyParticles{ContinuityDensity}}, + particle_system::BoundarySPHSystem{ + <:BoundaryModelDummyParticles{ + ContinuityDensity + }}, neighbor_system::FluidSystem) (; boundary_model) = particle_system diff --git a/src/schemes/boundary/system.jl b/src/schemes/boundary/system.jl index a91eb2bd6..ff297856a 100644 --- a/src/schemes/boundary/system.jl +++ b/src/schemes/boundary/system.jl @@ -138,7 +138,11 @@ end return 0 end -@inline function n_moving_particles(system::BoundarySPHSystem{<:BoundaryModelDummyParticles{ContinuityDensity}}) +@inline function n_moving_particles(system::BoundarySPHSystem{ + <:BoundaryModelDummyParticles{ + ContinuityDensity + } + }) return nparticles(system) end @@ -234,7 +238,9 @@ function write_v0!(v0, system::BoundarySPHSystem) end function write_v0!(v0, - system::BoundarySPHSystem{<:BoundaryModelDummyParticles{ContinuityDensity}}) + system::BoundarySPHSystem{ + <:BoundaryModelDummyParticles{ContinuityDensity + }}) (; cache) = system.boundary_model (; initial_density) = cache @@ -250,7 +256,10 @@ function restart_with!(system::BoundarySPHSystem, v, u) return system end -function restart_with!(system::BoundarySPHSystem{<:BoundaryModelDummyParticles{ContinuityDensity}}, +function restart_with!(system::BoundarySPHSystem{ + <:BoundaryModelDummyParticles{ + ContinuityDensity + }}, v, u) (; initial_density) = model.cache diff --git a/src/schemes/solid/total_lagrangian_sph/rhs.jl b/src/schemes/solid/total_lagrangian_sph/rhs.jl index 40b978f67..ccf422a44 100644 --- a/src/schemes/solid/total_lagrangian_sph/rhs.jl +++ b/src/schemes/solid/total_lagrangian_sph/rhs.jl @@ -131,7 +131,9 @@ end @inline function continuity_equation!(dv, v_particle_system, v_neighbor_system, particle, neighbor, pos_diff, distance, - particle_system::TotalLagrangianSPHSystem{<:BoundaryModelDummyParticles}, + particle_system::TotalLagrangianSPHSystem{ + <:BoundaryModelDummyParticles + }, neighbor_system::WeaklyCompressibleSPHSystem) (; density_calculator) = particle_system.boundary_model diff --git a/src/schemes/solid/total_lagrangian_sph/system.jl b/src/schemes/solid/total_lagrangian_sph/system.jl index 1f4bed70a..d34dbc3fc 100644 --- a/src/schemes/solid/total_lagrangian_sph/system.jl +++ b/src/schemes/solid/total_lagrangian_sph/system.jl @@ -184,7 +184,11 @@ timer_name(::TotalLagrangianSPHSystem) = "solid" return ndims(system) end -@inline function v_nvariables(system::TotalLagrangianSPHSystem{<:BoundaryModelDummyParticles{ContinuityDensity}}) +@inline function v_nvariables(system::TotalLagrangianSPHSystem{ + <:BoundaryModelDummyParticles{ + ContinuityDensity + } + }) return ndims(system) + 1 end From b0a22e4da4fa05b16c6caed88dd8eddd8b0e8bbc Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 1 Dec 2023 13:39:02 +0100 Subject: [PATCH 017/212] format --- src/schemes/boundary/rhs.jl | 5 +---- src/schemes/boundary/system.jl | 15 +++------------ src/schemes/solid/total_lagrangian_sph/rhs.jl | 4 +--- src/schemes/solid/total_lagrangian_sph/system.jl | 6 +----- 4 files changed, 6 insertions(+), 24 deletions(-) diff --git a/src/schemes/boundary/rhs.jl b/src/schemes/boundary/rhs.jl index 6429c1186..a2fde6f33 100644 --- a/src/schemes/boundary/rhs.jl +++ b/src/schemes/boundary/rhs.jl @@ -9,10 +9,7 @@ end # For dummy particles with `ContinuityDensity`, solve the continuity equation function interact!(dv, v_particle_system, u_particle_system, v_neighbor_system, u_neighbor_system, neighborhood_search, - particle_system::BoundarySPHSystem{ - <:BoundaryModelDummyParticles{ - ContinuityDensity - }}, + particle_system::BoundarySPHSystem{<:BoundaryModelDummyParticles{ContinuityDensity}}, neighbor_system::FluidSystem) (; boundary_model) = particle_system diff --git a/src/schemes/boundary/system.jl b/src/schemes/boundary/system.jl index ff297856a..a91eb2bd6 100644 --- a/src/schemes/boundary/system.jl +++ b/src/schemes/boundary/system.jl @@ -138,11 +138,7 @@ end return 0 end -@inline function n_moving_particles(system::BoundarySPHSystem{ - <:BoundaryModelDummyParticles{ - ContinuityDensity - } - }) +@inline function n_moving_particles(system::BoundarySPHSystem{<:BoundaryModelDummyParticles{ContinuityDensity}}) return nparticles(system) end @@ -238,9 +234,7 @@ function write_v0!(v0, system::BoundarySPHSystem) end function write_v0!(v0, - system::BoundarySPHSystem{ - <:BoundaryModelDummyParticles{ContinuityDensity - }}) + system::BoundarySPHSystem{<:BoundaryModelDummyParticles{ContinuityDensity}}) (; cache) = system.boundary_model (; initial_density) = cache @@ -256,10 +250,7 @@ function restart_with!(system::BoundarySPHSystem, v, u) return system end -function restart_with!(system::BoundarySPHSystem{ - <:BoundaryModelDummyParticles{ - ContinuityDensity - }}, +function restart_with!(system::BoundarySPHSystem{<:BoundaryModelDummyParticles{ContinuityDensity}}, v, u) (; initial_density) = model.cache diff --git a/src/schemes/solid/total_lagrangian_sph/rhs.jl b/src/schemes/solid/total_lagrangian_sph/rhs.jl index ccf422a44..40b978f67 100644 --- a/src/schemes/solid/total_lagrangian_sph/rhs.jl +++ b/src/schemes/solid/total_lagrangian_sph/rhs.jl @@ -131,9 +131,7 @@ end @inline function continuity_equation!(dv, v_particle_system, v_neighbor_system, particle, neighbor, pos_diff, distance, - particle_system::TotalLagrangianSPHSystem{ - <:BoundaryModelDummyParticles - }, + particle_system::TotalLagrangianSPHSystem{<:BoundaryModelDummyParticles}, neighbor_system::WeaklyCompressibleSPHSystem) (; density_calculator) = particle_system.boundary_model diff --git a/src/schemes/solid/total_lagrangian_sph/system.jl b/src/schemes/solid/total_lagrangian_sph/system.jl index d34dbc3fc..1f4bed70a 100644 --- a/src/schemes/solid/total_lagrangian_sph/system.jl +++ b/src/schemes/solid/total_lagrangian_sph/system.jl @@ -184,11 +184,7 @@ timer_name(::TotalLagrangianSPHSystem) = "solid" return ndims(system) end -@inline function v_nvariables(system::TotalLagrangianSPHSystem{ - <:BoundaryModelDummyParticles{ - ContinuityDensity - } - }) +@inline function v_nvariables(system::TotalLagrangianSPHSystem{<:BoundaryModelDummyParticles{ContinuityDensity}}) return ndims(system) + 1 end From 9f3b68be5cc44923b439cd307ee18a66f792909d Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 1 Dec 2023 14:22:15 +0100 Subject: [PATCH 018/212] also interpolate pressure and velocity --- src/general/interpolation.jl | 20 ++++++-- src/general/system.jl | 2 + src/schemes/boundary/system.jl | 2 + test/general/interpolation.jl | 84 ++++++++++++++++++++++------------ 4 files changed, 74 insertions(+), 34 deletions(-) diff --git a/src/general/interpolation.jl b/src/general/interpolation.jl index 1079db44d..875a3ea14 100644 --- a/src/general/interpolation.jl +++ b/src/general/interpolation.jl @@ -103,7 +103,10 @@ end function interpolate_point(point_coords, semi, ref_system, sol; smoothing_length=ref_system.smoothing_length) - density = 0.0 + interpolated_density = 0.0 + interpolated_velocity = zeros(size(point_coords)) + interpolated_pressure = 0.0 + shepard_coefficient = 0.0 ref_id = system_indices(ref_system, semi) neighbor_count = 0 @@ -135,10 +138,14 @@ function interpolate_point(point_coords, semi, ref_system, sol; distance = sqrt(distance2) mass = hydrodynamic_mass(system, particle) volume = mass / particle_density(v, system, particle) + particle_velocity = current_velocity(v, system, particle) + particle_pressure = pressure(system, particle) kernel_value = kernel(ref_smoothing_kernel, distance, smoothing_length) m_W = mass * kernel_value - density += m_W + interpolated_density += m_W + interpolated_velocity .+= particle_velocity * (volume * kernel_value) + interpolated_pressure += particle_pressure * (volume * kernel_value) shepard_coefficient += volume * kernel_value if system_id === ref_id @@ -153,9 +160,12 @@ function interpolate_point(point_coords, semi, ref_system, sol; # point is not within the ref_system if other_density > ref_density - return (density=0.0, neighbor_count=0, coord=point_coords) + return (density=0.0, neighbor_count=0, coord=point_coords, + velocity=zeros(size(point_coords)), pressure=0.0) end - return (density=density / shepard_coefficient, neighbor_count=neighbor_count, - coord=point_coords) + return (density=interpolated_density / shepard_coefficient, + neighbor_count=neighbor_count, + coord=point_coords, velocity=interpolated_velocity / shepard_coefficient, + pressure=interpolated_pressure / shepard_coefficient) end diff --git a/src/general/system.jl b/src/general/system.jl index a65796a66..08497f107 100644 --- a/src/general/system.jl +++ b/src/general/system.jl @@ -61,6 +61,8 @@ end @inline current_velocity(v, system, particle) = extract_svector(v, system, particle) +@inline pressure(system, particle) = system.pressure[particle] + @inline function current_acceleration(system, particle) # TODO: Return `dv` of solid particles return SVector(ntuple(_ -> 0.0, Val(ndims(system)))) diff --git a/src/schemes/boundary/system.jl b/src/schemes/boundary/system.jl index a91eb2bd6..6e0203b78 100644 --- a/src/schemes/boundary/system.jl +++ b/src/schemes/boundary/system.jl @@ -162,6 +162,8 @@ end return SVector(ntuple(_ -> 0.0, Val(ndims(system)))) end +@inline pressure(system::BoundarySPHSystem, particle) = system.boundary_model.pressure[particle] + @inline function current_acceleration(system::BoundarySPHSystem, particle) (; cache, ismoving) = system diff --git a/test/general/interpolation.jl b/test/general/interpolation.jl index c3ab08d0b..ba70f9312 100644 --- a/test/general/interpolation.jl +++ b/test/general/interpolation.jl @@ -1,15 +1,17 @@ using OrdinaryDiffEq +include("../test_util.jl") @testset verbose=true "SPHInterpolation" begin smoothing_length = 1.2 * 0.1 smoothing_kernel = SchoenbergCubicSplineKernel{2}() + sound_speed = 10 * sqrt(9.81 * 0.9) - state_equation = StateEquationCole(sound_speed, 7, fluid_density, atmospheric_pressure, - background_pressure=atmospheric_pressure, + state_equation = StateEquationCole(sound_speed, 7, 1000, 100000.0, + background_pressure=100000.0, clip_negative_pressure=false) tank = RectangularTank(0.1, (2.0, 0.9), (2.0, 1.0), 1000, n_layers=4, - acceleration=(0.0, -gravity), state_equation=state_equation) + acceleration=(0.0, -9.81), state_equation=state_equation) viscosity = ArtificialViscosityMonaghan(alpha=0.02, beta=0.0) @@ -32,13 +34,15 @@ using OrdinaryDiffEq sol = solve(ode, RDPK3SpFSAL49(), abstol=1e-5, reltol=1e-3, dtmax=1e-2, save_everystep=false) - function compare_interpolation_result(actual, expected; tolerance=1e-8) + function compare_interpolation_result(actual, expected; tolerance=1e-12) @test actual.neighbor_count == expected.neighbor_count @test actual.coord == expected.coord @test isapprox(actual.density, expected.density, atol=tolerance) + @test isapprox(actual.velocity, expected.velocity, atol=tolerance) + @test isapprox(actual.pressure, expected.pressure, atol=tolerance) end - function compare_interpolation_results(actuals, expecteds; tolerance=1e-8) + function compare_interpolation_results(actuals, expecteds; tolerance=1e-12) @test length(actuals) == length(expecteds) for (actual, expected) in zip(actuals, expecteds) compare_interpolation_result(actual, expected, tolerance=tolerance) @@ -48,7 +52,9 @@ using OrdinaryDiffEq @testset verbose=true "Interpolation Point" begin result = TrixiParticles.interpolate_point([1.0, 0.01], semi, fluid_system, sol) - expected_result = (density=1010.0529725852786, neighbor_count=16, coord=[1.0, 0.01]) + expected_result = (density=1010.0529725852786, neighbor_count=16, coord=[1.0, 0.01], + velocity=[9.815064195161356e-15, 0.0031924859596571607], + pressure=9149.453039221622) compare_interpolation_result(result, expected_result) end @testset verbose=true "Interpolation Multi Point" begin @@ -61,44 +67,64 @@ using OrdinaryDiffEq ], semi, fluid_system, sol) expected_result = [ - (density=1010.0529725852786, neighbor_count=16, coord=[1.0, 0.01]), - (density=1009.0647585308516, neighbor_count=16, coord=[1.0, 0.1]), - (density=1010.1591108027769, neighbor_count=16, coord=[1.0, 0.0]), - (density=0.0, neighbor_count=0, coord=[1.0, -0.01]), - (density=0.0, neighbor_count=0, coord=[1.0, -0.05]), + (density=1010.0529725852786, neighbor_count=16, coord=[1.0, 0.01], + velocity=[9.815064195161356e-15, 0.0031924859596571607], + pressure=9149.453039221622), + (density=1009.0647585308516, neighbor_count=16, coord=[1.0, 0.1], + velocity=[1.3682298856802571e-14, 0.004737022064423743], + pressure=8225.817113637197), + (density=1010.1591108027769, neighbor_count=16, coord=[1.0, 0.0], + velocity=[8.868604289943732e-15, 0.002876825373832205], + pressure=9248.978120690132), + (density=0.0, neighbor_count=0, coord=[1.0, -0.01], velocity=[0.0, 0.0], + pressure=0.0), + (density=0.0, neighbor_count=0, coord=[1.0, -0.05], velocity=[0.0, 0.0], + pressure=0.0), ] compare_interpolation_results(result, expected_result) end @testset verbose=true "Interpolation Line" begin expected_result = [ - (density=0.0, neighbor_count=0, coord=[1.0, -0.05]), + (density=0.0, neighbor_count=0, coord=[1.0, -0.05], velocity=[0.0, 0.0], + pressure=0.0), (density=1007.8388079925885, neighbor_count=16, - coord=[1.0, 0.21250000000000002]), - (density=1004.907892717609, neighbor_count=18, - coord=[1.0, 0.47500000000000003]), - (density=1001.899652412931, neighbor_count=14, coord=[1.0, 0.7375]), - (density=0.0, neighbor_count=0, coord=[1.0, 1.0]), + coord=[1.0, 0.21250000000000002], + velocity=[1.0308096030666658e-14, 0.005907502958502652], + pressure=7087.237427116723), + (density=1004.907892717609, neighbor_count=18, coord=[1.0, 0.47500000000000003], + velocity=[7.52868309149294e-15, 0.007855784662715764], + pressure=4399.142055600923), + (density=1001.899652412931, neighbor_count=14, coord=[1.0, 0.7375], + velocity=[9.025768335787871e-15, 0.009933832252516267], + pressure=1688.3585518071602), + (density=0.0, neighbor_count=0, coord=[1.0, 1.0], velocity=[0.0, 0.0], + pressure=0.0), ] result = TrixiParticles.interpolate_line([1.0, -0.05], [1.0, 1.0], 5, semi, - fluid_system, - sol) + fluid_system, sol) compare_interpolation_results(result, expected_result) expected_result_endpoint = [ (density=1008.7906994450206, neighbor_count=18, - coord=[1.0, 0.12499999999999999]), - (density=1006.8750741471611, neighbor_count=16, coord=[1.0, 0.3]), - (density=1004.907892717609, neighbor_count=18, - coord=[1.0, 0.47500000000000003]), - (density=1002.9010166322735, neighbor_count=16, - coord=[1.0, 0.6499999999999999]), - (density=1001.1009176645862, neighbor_count=14, - coord=[1.0, 0.8250000000000001]), + coord=[1.0, 0.12499999999999999], + velocity=[1.314244588843225e-14, 0.0048440659144444315], + pressure=7970.563443828845), + (density=1006.8750741471611, neighbor_count=16, coord=[1.0, 0.3], + velocity=[8.615538908774422e-15, 0.006930108317141729], + pressure=6198.230935398052), + (density=1004.907892717609, neighbor_count=18, coord=[1.0, 0.47500000000000003], + velocity=[7.52868309149294e-15, 0.007855784662715764], + pressure=4399.142055600923), + (density=1002.9010166322735, neighbor_count=16, coord=[1.0, 0.6499999999999999], + velocity=[8.79464240569385e-15, 0.009688271686523272], + pressure=2585.310932375168), + (density=1001.1009176645862, neighbor_count=14, coord=[1.0, 0.8250000000000001], + velocity=[6.6843891671872114e-15, 0.010448501275587224], + pressure=976.1166227776027), ] result_endpoint = TrixiParticles.interpolate_line([1.0, -0.05], [1.0, 1.0], 5, semi, - fluid_system, - sol, endpoint=false) + fluid_system, sol, endpoint=false) compare_interpolation_results(result_endpoint, expected_result_endpoint) end end From c83061e3143c2eee8f69dc886aa378b2427722c6 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 1 Dec 2023 14:33:32 +0100 Subject: [PATCH 019/212] lower tolerance --- test/general/interpolation.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/general/interpolation.jl b/test/general/interpolation.jl index ba70f9312..158c292f6 100644 --- a/test/general/interpolation.jl +++ b/test/general/interpolation.jl @@ -34,7 +34,7 @@ include("../test_util.jl") sol = solve(ode, RDPK3SpFSAL49(), abstol=1e-5, reltol=1e-3, dtmax=1e-2, save_everystep=false) - function compare_interpolation_result(actual, expected; tolerance=1e-12) + function compare_interpolation_result(actual, expected; tolerance=1e-8) @test actual.neighbor_count == expected.neighbor_count @test actual.coord == expected.coord @test isapprox(actual.density, expected.density, atol=tolerance) @@ -42,7 +42,7 @@ include("../test_util.jl") @test isapprox(actual.pressure, expected.pressure, atol=tolerance) end - function compare_interpolation_results(actuals, expecteds; tolerance=1e-12) + function compare_interpolation_results(actuals, expecteds; tolerance=1e-8) @test length(actuals) == length(expecteds) for (actual, expected) in zip(actuals, expecteds) compare_interpolation_result(actual, expected, tolerance=tolerance) From f9b8bef1e542dc0b2b48a1e2bb0571f3c48fee0d Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 1 Dec 2023 15:54:42 +0100 Subject: [PATCH 020/212] add example plot --- examples/fluid/rectangular_tank_2d.jl | 46 +++++++++++++++++++++------ 1 file changed, 36 insertions(+), 10 deletions(-) diff --git a/examples/fluid/rectangular_tank_2d.jl b/examples/fluid/rectangular_tank_2d.jl index 417453457..2f8b8bbab 100644 --- a/examples/fluid/rectangular_tank_2d.jl +++ b/examples/fluid/rectangular_tank_2d.jl @@ -1,5 +1,6 @@ using TrixiParticles using OrdinaryDiffEq +using PyPlot # ========================================================================================== # ==== Resolution @@ -84,18 +85,23 @@ sol = solve(ode, RDPK3SpFSAL49(), dtmax=1e-2, # Limit stepsize to prevent crashing save_everystep=false, callback=callbacks); +# Example for using interpolation +####################################################################################### + +# interpolate_point can be used to interpolate the properties of the 'fluid_system' with the original kernel and smoothing_length println(interpolate_point([1.0, 0.01], semi, fluid_system, sol)) +# or with an increased smoothing_length smoothing the result println(interpolate_point([1.0, 0.01], semi, fluid_system, sol, smoothing_length=2.0 * smoothing_length)) -println(interpolate_point([1.0, 0.1], semi, fluid_system, sol)) -println(interpolate_point([1.0, 0.1], semi, fluid_system, sol, - smoothing_length=2.0 * smoothing_length)) + + +# a point outside of the domain will result in properties with value 0 +# on the boundary a result can still be obtained println(interpolate_point([1.0, 0.0], semi, fluid_system, sol)) -println(interpolate_point([1.0, 0.0], semi, fluid_system, sol, - smoothing_length=2.0 * smoothing_length)) +# slightly befind the result is 0 println(interpolate_point([1.0, -0.01], semi, fluid_system, sol)) -println(interpolate_point([1.0, -0.05], semi, fluid_system, sol)) +# multiple points can be interpolated by providing an array println(interpolate_point([ [1.0, 0.01], [1.0, 0.1], @@ -104,7 +110,27 @@ println(interpolate_point([ [1.0, -0.05], ], semi, fluid_system, sol)) -println(interpolate_line([1.0, -0.05], [1.0, 1.0], 5, semi, fluid_system, - sol)) -println(interpolate_line([1.0, -0.05], [1.0, 1.0], 5, semi, fluid_system, - sol, endpoint=false)) +# it is also possible to interpolate along a line +result = interpolate_line([1.0, -0.05], [1.0, 1.0], 10, semi, fluid_system, sol) +result_endpoint = interpolate_line([1.0, -0.05], [1.0, 1.0], 10, semi, fluid_system, sol, + endpoint=false) +# Extract densities and coordinates for plotting +densities = [r.density for r in result] +coords = [r.coord[2] for r in result] # Assuming you want to plot against the y-coordinate + +densities_endpoint = [r.density for r in result_endpoint] +coords_endpoint = [r.coord[2] for r in result_endpoint] + +# Create the plot +figure() +plot(coords, densities, marker="o", linestyle="-", label="With Endpoint") +plot(coords_endpoint, densities_endpoint, marker="x", linestyle="--", label="Without Endpoint") + +# Add labels and legend +xlabel("Y-Coordinate") +ylabel("Density") +title("Density Interpolation Along a Line") +legend() + +# Display the plot +show() From 54ffa682c1d2e5f61f2d1201974cab204d588b5c Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 1 Dec 2023 16:04:47 +0100 Subject: [PATCH 021/212] missing dependency --- test/Project.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/test/Project.toml b/test/Project.toml index 85ced8502..88983fd71 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -3,6 +3,7 @@ LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" Polyester = "f517fe37-dbe3-4b94-8317-1923a5111588" Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7" +PyPlot = "d330b81b-6aea-500a-939a-2ce795aea3ee" QuadGK = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" From 9d2b15ebdc46f8b461f0b927b1c7842f6fb0285e Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 1 Dec 2023 16:05:01 +0100 Subject: [PATCH 022/212] format --- examples/fluid/rectangular_tank_2d.jl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/fluid/rectangular_tank_2d.jl b/examples/fluid/rectangular_tank_2d.jl index 2f8b8bbab..4e0881224 100644 --- a/examples/fluid/rectangular_tank_2d.jl +++ b/examples/fluid/rectangular_tank_2d.jl @@ -94,7 +94,6 @@ println(interpolate_point([1.0, 0.01], semi, fluid_system, sol)) println(interpolate_point([1.0, 0.01], semi, fluid_system, sol, smoothing_length=2.0 * smoothing_length)) - # a point outside of the domain will result in properties with value 0 # on the boundary a result can still be obtained println(interpolate_point([1.0, 0.0], semi, fluid_system, sol)) @@ -113,7 +112,7 @@ println(interpolate_point([ # it is also possible to interpolate along a line result = interpolate_line([1.0, -0.05], [1.0, 1.0], 10, semi, fluid_system, sol) result_endpoint = interpolate_line([1.0, -0.05], [1.0, 1.0], 10, semi, fluid_system, sol, - endpoint=false) + endpoint=false) # Extract densities and coordinates for plotting densities = [r.density for r in result] coords = [r.coord[2] for r in result] # Assuming you want to plot against the y-coordinate @@ -124,7 +123,8 @@ coords_endpoint = [r.coord[2] for r in result_endpoint] # Create the plot figure() plot(coords, densities, marker="o", linestyle="-", label="With Endpoint") -plot(coords_endpoint, densities_endpoint, marker="x", linestyle="--", label="Without Endpoint") +plot(coords_endpoint, densities_endpoint, marker="x", linestyle="--", + label="Without Endpoint") # Add labels and legend xlabel("Y-Coordinate") From 51567d67fad2d886e64f94479357e318c3896475 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 1 Dec 2023 17:03:21 +0100 Subject: [PATCH 023/212] add func --- examples/fluid/rectangular_tank_2d.jl | 19 +++++++++++++ src/TrixiParticles.jl | 2 +- src/general/interpolation.jl | 39 +++++++++++++++++++++++++++ 3 files changed, 59 insertions(+), 1 deletion(-) diff --git a/examples/fluid/rectangular_tank_2d.jl b/examples/fluid/rectangular_tank_2d.jl index 4e0881224..d2c96a6b9 100644 --- a/examples/fluid/rectangular_tank_2d.jl +++ b/examples/fluid/rectangular_tank_2d.jl @@ -134,3 +134,22 @@ legend() # Display the plot show() + +plane = interpolate_plane([0.0, 0.0], [1.0, 1.0], 0.005, semi, fluid_system, sol) + +# Extracting densities and coordinates for plotting +densities = [p.density for p in plane] +x_coords = [p.coord[1] for p in plane] +y_coords = [p.coord[2] for p in plane] + +# Create the scatter plot +scatter(x_coords, y_coords, c=densities, cmap="viridis", marker="o") + +# Add colorbar, labels, and title +colorbar(label="Density") +xlabel("X Coordinate") +ylabel("Y Coordinate") +title("Density Distribution in Plane") + +# Show the plot +show() diff --git a/src/TrixiParticles.jl b/src/TrixiParticles.jl index 5fe9ba125..7b428d516 100644 --- a/src/TrixiParticles.jl +++ b/src/TrixiParticles.jl @@ -57,6 +57,6 @@ export RectangularTank, RectangularShape, SphereShape export VoxelSphere, RoundSphere, reset_wall! export ShepardKernelCorrection, KernelGradientCorrection, AkinciFreeSurfaceCorrection export nparticles -export interpolate_line, interpolate_point +export interpolate_line, interpolate_point, interpolate_plane end # module diff --git a/src/general/interpolation.jl b/src/general/interpolation.jl index 875a3ea14..36468e0a2 100644 --- a/src/general/interpolation.jl +++ b/src/general/interpolation.jl @@ -1,3 +1,42 @@ +function interpolate_plane(lower_left, top_right, resolution, semi, ref_system, sol; + smoothing_length=ref_system.smoothing_length) + dims = length(lower_left) + if dims != length(top_right) + error("Dimensions of lower_left and top_right must match") + end + + # Check that lower_left is indeed lower and to the left of top_right + for i in 1:dims + if lower_left[i] >= top_right[i] + error("lower_left should be lower and to the left of top_right in all dimensions") + end + end + + # Calculate the number of points in each dimension based on the resolution + no_points_x = ceil(Int, (top_right[1] - lower_left[1]) / resolution) + 1 + no_points_y = ceil(Int, (top_right[2] - lower_left[2]) / resolution) + 1 + no_points_z = dims == 3 ? ceil(Int, (top_right[3] - lower_left[3]) / resolution) + 1 : 1 + + x_range = range(lower_left[1], top_right[1], length=no_points_x) + y_range = range(lower_left[2], top_right[2], length=no_points_y) + z_range = dims == 3 ? range(lower_left[3], top_right[3], length=no_points_z) : 1:1 + + points_coords = dims == 2 ? [[x, y] for x in x_range, y in y_range] : + [[x, y, z] for x in x_range, y in y_range, z in z_range] + + results = [] + for point in points_coords + result = interpolate_point(point, semi, ref_system, sol, + smoothing_length=smoothing_length) + push!(results, result) + end + + # Filter out results with neighbor_count of 0 + results = filter(r -> r.neighbor_count > 0, results) + + return results +end + @doc raw""" interpolate_line(start, end_, no_points, semi, ref_system, sol; endpoint=true, smoothing_length=ref_system.smoothing_length) From a7786fd9837c3b4cdf25cf639f7f22eb062b121a Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 1 Dec 2023 17:11:15 +0100 Subject: [PATCH 024/212] add doc --- src/general/interpolation.jl | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/general/interpolation.jl b/src/general/interpolation.jl index 36468e0a2..6d01b4617 100644 --- a/src/general/interpolation.jl +++ b/src/general/interpolation.jl @@ -1,3 +1,35 @@ +@doc raw""" + interpolate_plane(lower_left, top_right, resolution, semi, ref_system, sol; + smoothing_length=ref_system.smoothing_length) + +Interpolates properties across a plane or a volume in an SPH simulation environment. +The region for interpolation is defined by its lower left and top right corners, with a specified resolution determining the density of the interpolation points. + +The function generates a grid of points within the defined region, spaced uniformly according to the given resolution. In 2D, this grid lies within a plane, + while in 3D, it fills a volumetric space. The function can handle both 2D and 3D interpolations by adapting to the dimensionality of the provided corner coordinates. + +### Parameters: +- `lower_left`: The lower left corner of the interpolation region. +- `top_right`: The top right corner of the interpolation region. +- `resolution`: The distance between adjacent interpolation points in the grid. +- `semi`: The semidiscretization used for the simulation. +- `ref_system`: The reference system for the interpolation. +- `sol`: The solution state from which the properties are interpolated. +- `smoothing_length`: Optional. The smoothing length used in the interpolation. Defaults to `ref_system.smoothing_length`. + +### Returns: +An array of interpolated properties at each point within the defined region. Points with a neighbor count of 0 are excluded from the results. + +!!! note + - This function is especially useful for analyzing spatial variations of properties within a specified region in the SPH simulation domain. + - The accuracy of the interpolation is influenced by the local particle density, the chosen smoothing length, and the resolution of the interpolation grid. + +## Example +```julia +# Interpolating across a plane from [0.0, 0.0] to [1.0, 1.0] with a resolution of 0.2 +results = interpolate_plane([0.0, 0.0], [1.0, 1.0], 0.2, semi, ref_system, sol) +``` +""" function interpolate_plane(lower_left, top_right, resolution, semi, ref_system, sol; smoothing_length=ref_system.smoothing_length) dims = length(lower_left) From 4278910fa5fc2ca78ce9a24e8be24d0c39cdeba3 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 1 Dec 2023 17:17:15 +0100 Subject: [PATCH 025/212] add test --- test/general/interpolation.jl | 98 +++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) diff --git a/test/general/interpolation.jl b/test/general/interpolation.jl index 158c292f6..d6b7a3e2f 100644 --- a/test/general/interpolation.jl +++ b/test/general/interpolation.jl @@ -127,4 +127,102 @@ include("../test_util.jl") fluid_system, sol, endpoint=false) compare_interpolation_results(result_endpoint, expected_result_endpoint) end + @testset verbose=true "Interpolation Plane" begin + lower_left = [0.0, 0.0] + top_right = [1.0, 1.0] + resolution = 0.2 + + result = TrixiParticles.interpolate_plane(lower_left, top_right, resolution, semi, + fluid_system, sol) + + # # Define the expected results for comparison + expected_result = [ + (density=1010.1686159336, neighbor_count=16, coord=[0.2, 0.0], + velocity=[-0.0009327192172939572, 0.002909192963276262], + pressure=9257.923696807055), + (density=1010.1462386780697, neighbor_count=16, coord=[0.4, 0.0], + velocity=[4.59840521584055e-5, 0.0028755077876233366], + pressure=9236.910134121725), + (density=1010.1560848938921, neighbor_count=16, coord=[0.6, 0.0], + velocity=[0.00010838113109092406, 0.00292450541870722], + pressure=9246.148204113459), + (density=1010.151573725781, neighbor_count=16, coord=[0.8, 0.0], + velocity=[0.00010801847176297891, 0.002948099358945184], + pressure=9241.91602891712), + (density=1010.1591108027769, neighbor_count=16, coord=[1.0, 0.0], + velocity=[8.868604289943732e-15, 0.002876825373832205], + pressure=9248.978120690132), + (density=1007.9967989965918, neighbor_count=16, coord=[0.0, 0.2], + velocity=[-0.0005028044536040427, 0.0035457731040680466], + pressure=7233.466763518747), + (density=1007.9602756587348, neighbor_count=16, coord=[0.2, 0.2], + velocity=[-0.00035540353391662387, 0.004974385314877303], + pressure=7199.642559864156), + (density=1007.969025243849, neighbor_count=16, coord=[0.4, 0.2], + velocity=[0.00013246243189212573, 0.005548696158795254], + pressure=7207.753317752376), + (density=1007.9664194380072, neighbor_count=16, coord=[0.6, 0.2], + velocity=[0.0003287548384643027, 0.005688650253531116], + pressure=7205.344062330894), + (density=1007.968411919849, neighbor_count=16, coord=[0.8, 0.2], + velocity=[0.00013992042252419147, 0.005737692463017649], + pressure=7207.180275758381), + (density=1007.9721356287379, neighbor_count=16, coord=[1.0, 0.2], + velocity=[1.0639937898406559e-14, 0.0056907654660568584], + pressure=7210.64575024627), + (density=1005.7802387668306, neighbor_count=16, coord=[0.0, 0.4], + velocity=[-7.061687266765948e-5, 0.0036995230536662703], + pressure=5194.22514614874), + (density=1005.7546755077452, neighbor_count=16, coord=[0.2, 0.4], + velocity=[0.0007740113477530656, 0.005846335143809758], + pressure=5170.894215223812), + (density=1005.7613242032403, neighbor_count=16, coord=[0.4, 0.4], + velocity=[0.0007475472656009219, 0.006916181635259845], + pressure=5176.952699930797), + (density=1005.7593841086034, neighbor_count=16, coord=[0.6, 0.4], + velocity=[0.0003266584397572784, 0.007365260505270947], + pressure=5175.181019775542), + (density=1005.7567271676268, neighbor_count=16, coord=[0.8, 0.4], + velocity=[0.0001431625118187707, 0.007436133797274004], + pressure=5172.770842889837), + (density=1005.757540996977, neighbor_count=16, coord=[1.0, 0.4], + velocity=[8.100245816185086e-15, 0.007335450134367711], + pressure=5173.521702742268), + (density=1003.5265588359863, neighbor_count=16, coord=[0.0, 0.6], + velocity=[0.0008324180396277633, 0.0026652021292882565], + pressure=3148.2895879661364), + (density=1003.5073740015356, neighbor_count=16, coord=[0.2, 0.6], + velocity=[0.002826454583060609, 0.006566607831032938], + pressure=3131.0338626666753), + (density=1003.4922203229851, neighbor_count=16, coord=[0.4, 0.6], + velocity=[0.0017647005482168605, 0.008626472276613315], + pressure=3117.334321569359), + (density=1003.4882458518805, neighbor_count=16, coord=[0.6, 0.6], + velocity=[0.0005788316694771055, 0.009054638039309847], + pressure=3113.780462695287), + (density=1003.477072861037, neighbor_count=16, coord=[0.8, 0.6], + velocity=[0.0001476293656383203, 0.009045494866674362], + pressure=3103.709998725012), + (density=1003.4725897077725, neighbor_count=16, coord=[1.0, 0.6], + velocity=[7.63170602200834e-15, 0.009154849467188985], + pressure=3099.6721353686776), + (density=1001.3196346982327, neighbor_count=12, coord=[0.2, 0.8], + velocity=[0.009102116389801993, 0.011820668684509835], + pressure=1170.8694317362454), + (density=1001.3036507399495, neighbor_count=12, coord=[0.4, 0.8], + velocity=[0.0023667996884615575, 0.011172085099320939], + pressure=1156.6534267237446), + (density=1001.2911263974993, neighbor_count=12, coord=[0.6, 0.8], + velocity=[0.0007521130361000565, 0.010410223006966842], + pressure=1145.5035751765408), + (density=1001.2858693148222, neighbor_count=12, coord=[0.8, 0.8], + velocity=[9.136967189698641e-5, 0.010270354621482288], + pressure=1140.8349235468484), + (density=1001.2846096528532, neighbor_count=12, coord=[1.0, 0.8], + velocity=[7.398790653432058e-15, 0.010258746201217956], + pressure=1139.7084096362842), + ] + + compare_interpolation_results(result, expected_result) + end end From fcfb06546e58ee0da89421f883c4f36da0af59ef Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 1 Dec 2023 17:19:47 +0100 Subject: [PATCH 026/212] add another test --- examples/fluid/rectangular_tank_2d.jl | 20 ++++++++++++++++++++ test/general/interpolation.jl | 1 - 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/examples/fluid/rectangular_tank_2d.jl b/examples/fluid/rectangular_tank_2d.jl index d2c96a6b9..010169588 100644 --- a/examples/fluid/rectangular_tank_2d.jl +++ b/examples/fluid/rectangular_tank_2d.jl @@ -153,3 +153,23 @@ title("Density Distribution in Plane") # Show the plot show() + +plane = interpolate_plane([0.0, 0.0], [1.0, 1.0], 0.005, semi, fluid_system, sol, + smoothing_length=2.0 * smoothing_length) + +# Extracting densities and coordinates for plotting +densities = [p.density for p in plane] +x_coords = [p.coord[1] for p in plane] +y_coords = [p.coord[2] for p in plane] + +# Create the scatter plot +scatter(x_coords, y_coords, c=densities, cmap="viridis", marker="o") + +# Add colorbar, labels, and title +colorbar(label="Density") +xlabel("X Coordinate") +ylabel("Y Coordinate") +title("Density Distribution in Plane") + +# Show the plot +show() diff --git a/test/general/interpolation.jl b/test/general/interpolation.jl index d6b7a3e2f..b2b9359e6 100644 --- a/test/general/interpolation.jl +++ b/test/general/interpolation.jl @@ -1,5 +1,4 @@ using OrdinaryDiffEq -include("../test_util.jl") @testset verbose=true "SPHInterpolation" begin smoothing_length = 1.2 * 0.1 From 910691286fc69137c6adc1379981ebdf1c9472de Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 1 Dec 2023 17:27:43 +0100 Subject: [PATCH 027/212] comment out example --- examples/fluid/rectangular_tank_2d.jl | 130 +++++++++++++------------- 1 file changed, 65 insertions(+), 65 deletions(-) diff --git a/examples/fluid/rectangular_tank_2d.jl b/examples/fluid/rectangular_tank_2d.jl index 010169588..71a564c89 100644 --- a/examples/fluid/rectangular_tank_2d.jl +++ b/examples/fluid/rectangular_tank_2d.jl @@ -1,6 +1,6 @@ using TrixiParticles using OrdinaryDiffEq -using PyPlot +# using PyPlot # ========================================================================================== # ==== Resolution @@ -109,67 +109,67 @@ println(interpolate_point([ [1.0, -0.05], ], semi, fluid_system, sol)) -# it is also possible to interpolate along a line -result = interpolate_line([1.0, -0.05], [1.0, 1.0], 10, semi, fluid_system, sol) -result_endpoint = interpolate_line([1.0, -0.05], [1.0, 1.0], 10, semi, fluid_system, sol, - endpoint=false) -# Extract densities and coordinates for plotting -densities = [r.density for r in result] -coords = [r.coord[2] for r in result] # Assuming you want to plot against the y-coordinate - -densities_endpoint = [r.density for r in result_endpoint] -coords_endpoint = [r.coord[2] for r in result_endpoint] - -# Create the plot -figure() -plot(coords, densities, marker="o", linestyle="-", label="With Endpoint") -plot(coords_endpoint, densities_endpoint, marker="x", linestyle="--", - label="Without Endpoint") - -# Add labels and legend -xlabel("Y-Coordinate") -ylabel("Density") -title("Density Interpolation Along a Line") -legend() - -# Display the plot -show() - -plane = interpolate_plane([0.0, 0.0], [1.0, 1.0], 0.005, semi, fluid_system, sol) - -# Extracting densities and coordinates for plotting -densities = [p.density for p in plane] -x_coords = [p.coord[1] for p in plane] -y_coords = [p.coord[2] for p in plane] - -# Create the scatter plot -scatter(x_coords, y_coords, c=densities, cmap="viridis", marker="o") - -# Add colorbar, labels, and title -colorbar(label="Density") -xlabel("X Coordinate") -ylabel("Y Coordinate") -title("Density Distribution in Plane") - -# Show the plot -show() - -plane = interpolate_plane([0.0, 0.0], [1.0, 1.0], 0.005, semi, fluid_system, sol, - smoothing_length=2.0 * smoothing_length) - -# Extracting densities and coordinates for plotting -densities = [p.density for p in plane] -x_coords = [p.coord[1] for p in plane] -y_coords = [p.coord[2] for p in plane] - -# Create the scatter plot -scatter(x_coords, y_coords, c=densities, cmap="viridis", marker="o") - -# Add colorbar, labels, and title -colorbar(label="Density") -xlabel("X Coordinate") -ylabel("Y Coordinate") -title("Density Distribution in Plane") - -# Show the plot -show() +# # it is also possible to interpolate along a line +# result = interpolate_line([1.0, -0.05], [1.0, 1.0], 10, semi, fluid_system, sol) +# result_endpoint = interpolate_line([1.0, -0.05], [1.0, 1.0], 10, semi, fluid_system, sol, +# endpoint=false) +# # Extract densities and coordinates for plotting +# densities = [r.density for r in result] +# coords = [r.coord[2] for r in result] # Assuming you want to plot against the y-coordinate + +# densities_endpoint = [r.density for r in result_endpoint] +# coords_endpoint = [r.coord[2] for r in result_endpoint] + +# # Create the plot +# figure() +# plot(coords, densities, marker="o", linestyle="-", label="With Endpoint") +# plot(coords_endpoint, densities_endpoint, marker="x", linestyle="--", +# label="Without Endpoint") + +# # Add labels and legend +# xlabel("Y-Coordinate") +# ylabel("Density") +# title("Density Interpolation Along a Line") +# legend() + +# # Display the plot +# show() + +# plane = interpolate_plane([0.0, 0.0], [1.0, 1.0], 0.005, semi, fluid_system, sol) + +# # Extracting densities and coordinates for plotting +# densities = [p.density for p in plane] +# x_coords = [p.coord[1] for p in plane] +# y_coords = [p.coord[2] for p in plane] + +# # Create the scatter plot +# scatter(x_coords, y_coords, c=densities, cmap="viridis", marker="o") + +# # Add colorbar, labels, and title +# colorbar(label="Density") +# xlabel("X Coordinate") +# ylabel("Y Coordinate") +# title("Density Distribution in Plane") + +# # Show the plot +# show() + +# plane = interpolate_plane([0.0, 0.0], [1.0, 1.0], 0.005, semi, fluid_system, sol, +# smoothing_length=2.0 * smoothing_length) + +# # Extracting densities and coordinates for plotting +# densities = [p.density for p in plane] +# x_coords = [p.coord[1] for p in plane] +# y_coords = [p.coord[2] for p in plane] + +# # Create the scatter plot +# scatter(x_coords, y_coords, c=densities, cmap="viridis", marker="o") + +# # Add colorbar, labels, and title +# colorbar(label="Density") +# xlabel("X Coordinate") +# ylabel("Y Coordinate") +# title("Density Distribution in Plane") + +# # Show the plot +# show() From 363bfcbc9ee2b50067c34d3dd5598ec80c54e562 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 1 Dec 2023 17:29:09 +0100 Subject: [PATCH 028/212] remove pyplot again --- test/Project.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/test/Project.toml b/test/Project.toml index 88983fd71..85ced8502 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -3,7 +3,6 @@ LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" Polyester = "f517fe37-dbe3-4b94-8317-1923a5111588" Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7" -PyPlot = "d330b81b-6aea-500a-939a-2ce795aea3ee" QuadGK = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" From 5a8902265df2fede659795f3936d7a8b6b092f87 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 1 Dec 2023 23:38:40 +0100 Subject: [PATCH 029/212] fix --- src/general/interpolation.jl | 8 ++++++-- src/general/semidiscretization.jl | 5 ++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/general/interpolation.jl b/src/general/interpolation.jl index 6d01b4617..cea0d952a 100644 --- a/src/general/interpolation.jl +++ b/src/general/interpolation.jl @@ -194,7 +194,11 @@ function interpolate_point(point_coords, semi, ref_system, sol; system_coords = current_coordinates(u, system) nhs = get_neighborhood_search(system, semi) - nhs = create_neighborhood_search(system, nhs, search_radius) + if system isa FluidSystem + nhs = create_neighborhood_search(u, system, nhs, search_radius) + else + nhs = create_neighborhood_search(initial_coordinates(system), system, nhs, search_radius) + end for particle in eachneighbor(point_coords, nhs) coords = extract_svector(system_coords, Val(ndims(system)), particle) @@ -230,7 +234,7 @@ function interpolate_point(point_coords, semi, ref_system, sol; end # point is not within the ref_system - if other_density > ref_density + if other_density > ref_density || neighbor_count == 0 return (density=0.0, neighbor_count=0, coord=point_coords, velocity=zeros(size(point_coords)), pressure=0.0) end diff --git a/src/general/semidiscretization.jl b/src/general/semidiscretization.jl index fe3d796a2..c9067cb0e 100644 --- a/src/general/semidiscretization.jl +++ b/src/general/semidiscretization.jl @@ -101,8 +101,7 @@ function create_neighborhood_search(system, neighbor, ::Val{GridNeighborhoodSear return search end -# create a copy of a neighborhood search but with a different search radius -function create_neighborhood_search(neighbor, nhs::GridNeighborhoodSearch, search_radius) +function create_neighborhood_search(u, system, nhs::GridNeighborhoodSearch, search_radius) if nhs.periodic_box isa Nothing search = GridNeighborhoodSearch{ndims(nhs)}(search_radius, nparticles(nhs)) else @@ -112,7 +111,7 @@ function create_neighborhood_search(neighbor, nhs::GridNeighborhoodSearch, searc end # Initialize neighborhood search - initialize!(search, initial_coordinates(neighbor)) + initialize!(search, u) return search end From 589f7b383e42bf377132ae4aebc66ad9b125a040 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Sat, 2 Dec 2023 00:25:36 +0100 Subject: [PATCH 030/212] format --- src/general/interpolation.jl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/general/interpolation.jl b/src/general/interpolation.jl index cea0d952a..15626ecbd 100644 --- a/src/general/interpolation.jl +++ b/src/general/interpolation.jl @@ -197,7 +197,8 @@ function interpolate_point(point_coords, semi, ref_system, sol; if system isa FluidSystem nhs = create_neighborhood_search(u, system, nhs, search_radius) else - nhs = create_neighborhood_search(initial_coordinates(system), system, nhs, search_radius) + nhs = create_neighborhood_search(initial_coordinates(system), system, nhs, + search_radius) end for particle in eachneighbor(point_coords, nhs) From 3351d74da8a170c8378ebade739110d69fdd4725 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 12 Dec 2023 16:34:44 +0100 Subject: [PATCH 031/212] small update improve accuracy --- src/general/interpolation.jl | 41 ++++++++++++++++++++++--------- src/general/semidiscretization.jl | 3 ++- 2 files changed, 32 insertions(+), 12 deletions(-) diff --git a/src/general/interpolation.jl b/src/general/interpolation.jl index 15626ecbd..cca25abb4 100644 --- a/src/general/interpolation.jl +++ b/src/general/interpolation.jl @@ -173,7 +173,8 @@ function interpolate_point(points_coords::Array{Array{Float64, 1}, 1}, semi, ref end function interpolate_point(point_coords, semi, ref_system, sol; - smoothing_length=ref_system.smoothing_length) + smoothing_length=ref_system.smoothing_length, + calculate_other_system_density=false) interpolated_density = 0.0 interpolated_velocity = zeros(size(point_coords)) interpolated_pressure = 0.0 @@ -186,8 +187,16 @@ function interpolate_point(point_coords, semi, ref_system, sol; ref_smoothing_kernel = ref_system.smoothing_kernel search_radius = compact_support(ref_smoothing_kernel, smoothing_length) search_radius2 = search_radius^2 + min_dist_ref = 10 * search_radius + min_dist_other = 10 * search_radius + + if calculate_other_system_density + systems = semi + else + systems = (ref_system,) + end - foreach_system(semi) do system + foreach_system(systems) do system system_id = system_indices(system, semi) v = wrap_v(sol[end].x[1], system, semi) u = wrap_u(sol[end].x[2], system, semi) @@ -213,21 +222,31 @@ function interpolate_point(point_coords, semi, ref_system, sol; distance = sqrt(distance2) mass = hydrodynamic_mass(system, particle) - volume = mass / particle_density(v, system, particle) - particle_velocity = current_velocity(v, system, particle) - particle_pressure = pressure(system, particle) kernel_value = kernel(ref_smoothing_kernel, distance, smoothing_length) - m_W = mass * kernel_value - interpolated_density += m_W - interpolated_velocity .+= particle_velocity * (volume * kernel_value) - interpolated_pressure += particle_pressure * (volume * kernel_value) - shepard_coefficient += volume * kernel_value + + if system_id == ref_id + interpolated_density += m_W + + volume = mass / particle_density(v, system, particle) + particle_velocity = current_velocity(v, system, particle) + interpolated_velocity .+= particle_velocity * (volume * kernel_value) + + particle_pressure = pressure(system, particle) + interpolated_pressure += particle_pressure * (volume * kernel_value) + shepard_coefficient += volume * kernel_value + end if system_id === ref_id ref_density += m_W + if min_dist_ref > distance + min_dist_ref = distance + end else other_density += m_W + if min_dist_other > distance + min_dist_other = distance + end end neighbor_count += 1 @@ -235,7 +254,7 @@ function interpolate_point(point_coords, semi, ref_system, sol; end # point is not within the ref_system - if other_density > ref_density || neighbor_count == 0 + if other_density > ref_density && min_dist_other < min_dist_ref return (density=0.0, neighbor_count=0, coord=point_coords, velocity=zeros(size(point_coords)), pressure=0.0) end diff --git a/src/general/semidiscretization.jl b/src/general/semidiscretization.jl index c9067cb0e..b92ea6112 100644 --- a/src/general/semidiscretization.jl +++ b/src/general/semidiscretization.jl @@ -181,7 +181,8 @@ end end # This is just for readability to loop over all systems without allocations -@inline foreach_system(f, semi) = foreach_noalloc(f, semi.systems) +@inline foreach_system(f, semi::Semidiscretization) = foreach_noalloc(f, semi.systems) +@inline foreach_system(f, systems) = foreach_noalloc(f, systems) """ semidiscretize(semi, tspan) From cd8ddc5fb474eec2d94476618eecfae58c3674b8 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 13 Dec 2023 00:48:52 +0100 Subject: [PATCH 032/212] update --- examples/fluid/rectangular_tank_2d.jl | 96 +++++++++++++++++++-------- src/general/interpolation.jl | 15 +++-- 2 files changed, 77 insertions(+), 34 deletions(-) diff --git a/examples/fluid/rectangular_tank_2d.jl b/examples/fluid/rectangular_tank_2d.jl index 71a564c89..7221efffe 100644 --- a/examples/fluid/rectangular_tank_2d.jl +++ b/examples/fluid/rectangular_tank_2d.jl @@ -47,11 +47,17 @@ fluid_system = WeaklyCompressibleSPHSystem(tank.fluid, fluid_density_calculator, # ========================================================================================== # ==== Boundary + +# to set a no-slip boundary condition a wall visosity needs to be defined +alpha = 0.2 +viscosity_wall = ViscosityAdami(nu=alpha * smoothing_length * sound_speed / 8) + boundary_density_calculator = AdamiPressureExtrapolation() boundary_model = BoundaryModelDummyParticles(tank.boundary.density, tank.boundary.mass, state_equation=state_equation, boundary_density_calculator, - smoothing_kernel, smoothing_length) + smoothing_kernel, smoothing_length, + viscosity=viscosity_wall) # Uncomment to use repulsive boundary particles by Monaghan & Kajtar. # Also change spacing ratio and boundary layers (see comment above). @@ -85,33 +91,33 @@ sol = solve(ode, RDPK3SpFSAL49(), dtmax=1e-2, # Limit stepsize to prevent crashing save_everystep=false, callback=callbacks); -# Example for using interpolation -####################################################################################### - -# interpolate_point can be used to interpolate the properties of the 'fluid_system' with the original kernel and smoothing_length -println(interpolate_point([1.0, 0.01], semi, fluid_system, sol)) -# or with an increased smoothing_length smoothing the result -println(interpolate_point([1.0, 0.01], semi, fluid_system, sol, - smoothing_length=2.0 * smoothing_length)) - -# a point outside of the domain will result in properties with value 0 -# on the boundary a result can still be obtained -println(interpolate_point([1.0, 0.0], semi, fluid_system, sol)) -# slightly befind the result is 0 -println(interpolate_point([1.0, -0.01], semi, fluid_system, sol)) - -# multiple points can be interpolated by providing an array -println(interpolate_point([ - [1.0, 0.01], - [1.0, 0.1], - [1.0, 0.0], - [1.0, -0.01], - [1.0, -0.05], - ], semi, fluid_system, sol)) - -# # it is also possible to interpolate along a line -# result = interpolate_line([1.0, -0.05], [1.0, 1.0], 10, semi, fluid_system, sol) -# result_endpoint = interpolate_line([1.0, -0.05], [1.0, 1.0], 10, semi, fluid_system, sol, +# # Example for using interpolation +# ####################################################################################### + +# # interpolate_point can be used to interpolate the properties of the 'fluid_system' with the original kernel and smoothing_length +# println(interpolate_point([1.0, 0.01], semi, fluid_system, sol)) +# # or with an increased smoothing_length smoothing the result +# println(interpolate_point([1.0, 0.01], semi, fluid_system, sol, +# smoothing_length=2.0 * smoothing_length)) + +# # a point outside of the domain will result in properties with value 0 +# # on the boundary a result can still be obtained +# println(interpolate_point([1.0, 0.0], semi, fluid_system, sol)) +# # slightly befind the result is 0 +# println(interpolate_point([1.0, -0.01], semi, fluid_system, sol)) + +# # multiple points can be interpolated by providing an array +# println(interpolate_point([ +# [1.0, 0.01], +# [1.0, 0.1], +# [1.0, 0.0], +# [1.0, -0.01], +# [1.0, -0.05], +# ], semi, fluid_system, sol)) + +# # # it is also possible to interpolate along a line +# result = interpolate_line([0.5, -0.05], [0.5, 1.0], 20, semi, fluid_system, sol) +# result_endpoint = interpolate_line([0.5, -0.05], [0.5, 1.0], 20, semi, fluid_system, sol, # endpoint=false) # # Extract densities and coordinates for plotting # densities = [r.density for r in result] @@ -120,7 +126,7 @@ println(interpolate_point([ # densities_endpoint = [r.density for r in result_endpoint] # coords_endpoint = [r.coord[2] for r in result_endpoint] -# # Create the plot +# Create the plot # figure() # plot(coords, densities, marker="o", linestyle="-", label="With Endpoint") # plot(coords_endpoint, densities_endpoint, marker="x", linestyle="--", @@ -135,6 +141,23 @@ println(interpolate_point([ # # Display the plot # show() +# v_x = [r.velocity[1] for r in result] +# v_x_endpoint = [r.velocity[1] for r in result_endpoint] + +# figure() +# plot(v_x, coords, marker="o", linestyle="-", label="With Endpoint") +# plot(v_x_endpoint, coords_endpoint, marker="x", linestyle="--", +# label="Without Endpoint") + +# # Add labels and legend +# xlabel("Velocity-X") +# ylabel("Y-Coordinate") +# title("Velocity Interpolation Along a Line") +# legend() + +# # Display the plot +# show() + # plane = interpolate_plane([0.0, 0.0], [1.0, 1.0], 0.005, semi, fluid_system, sol) # # Extracting densities and coordinates for plotting @@ -173,3 +196,18 @@ println(interpolate_point([ # # Show the plot # show() + +# # Extracting densities and coordinates for plotting +# velocity = [p.velocity[1] for p in plane] + +# # Create the scatter plot +# scatter(x_coords, y_coords, c=velocity, cmap="viridis", marker="o") + +# # Add colorbar, labels, and title +# colorbar(label="velocity_x") +# xlabel("X Coordinate") +# ylabel("Y Coordinate") +# title("Velocity Distribution in Plane") + +# # Show the plot +# show() diff --git a/src/general/interpolation.jl b/src/general/interpolation.jl index cca25abb4..ce78a5188 100644 --- a/src/general/interpolation.jl +++ b/src/general/interpolation.jl @@ -106,7 +106,8 @@ results = interpolate_line([1.0, 0.0], [1.0, 1.0], 5, semi, ref_system, sol) ``` """ function interpolate_line(start, end_, no_points, semi, ref_system, sol; endpoint=true, - smoothing_length=ref_system.smoothing_length) + smoothing_length=ref_system.smoothing_length, + calculate_other_system_density=false) points_coords = [start + (end_ - start) * (endpoint ? t / (no_points - 1) : (t + 1) / (no_points + 1)) @@ -115,7 +116,8 @@ function interpolate_line(start, end_, no_points, semi, ref_system, sol; endpoin results = [] for point in points_coords result = interpolate_point(point, semi, ref_system, sol, - smoothing_length=smoothing_length) + smoothing_length=smoothing_length, + calculate_other_system_density=calculate_other_system_density) push!(results, result) end @@ -160,12 +162,14 @@ results = interpolate_point(points, semi, ref_system, sol) - This function is particularly useful for extracting physical properties at specific locations within the SPH simulation domain. """ function interpolate_point(points_coords::Array{Array{Float64, 1}, 1}, semi, ref_system, - sol; smoothing_length=ref_system.smoothing_length) + sol; smoothing_length=ref_system.smoothing_length, + calculate_other_system_density=false) results = [] for point in points_coords result = interpolate_point(point, semi, ref_system, sol, - smoothing_length=smoothing_length) + smoothing_length=smoothing_length, + calculate_other_system_density=calculate_other_system_density) push!(results, result) end @@ -254,7 +258,8 @@ function interpolate_point(point_coords, semi, ref_system, sol; end # point is not within the ref_system - if other_density > ref_density && min_dist_other < min_dist_ref + if (other_density > ref_density && min_dist_other < min_dist_ref) || + shepard_coefficient < eps() return (density=0.0, neighbor_count=0, coord=point_coords, velocity=zeros(size(point_coords)), pressure=0.0) end From f6b38292d4a787b63dc79d888f0f2e1053f313c3 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 13 Dec 2023 00:49:30 +0100 Subject: [PATCH 033/212] up --- src/general/interpolation.jl | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/general/interpolation.jl b/src/general/interpolation.jl index ce78a5188..3efd2ab51 100644 --- a/src/general/interpolation.jl +++ b/src/general/interpolation.jl @@ -31,7 +31,8 @@ results = interpolate_plane([0.0, 0.0], [1.0, 1.0], 0.2, semi, ref_system, sol) ``` """ function interpolate_plane(lower_left, top_right, resolution, semi, ref_system, sol; - smoothing_length=ref_system.smoothing_length) + smoothing_length=ref_system.smoothing_length, + calculate_other_system_density=false) dims = length(lower_left) if dims != length(top_right) error("Dimensions of lower_left and top_right must match") @@ -59,7 +60,8 @@ function interpolate_plane(lower_left, top_right, resolution, semi, ref_system, results = [] for point in points_coords result = interpolate_point(point, semi, ref_system, sol, - smoothing_length=smoothing_length) + smoothing_length=smoothing_length, + calculate_other_system_density=calculate_other_system_density) push!(results, result) end From 7a5c42e0abf4e3a2278b48eb5c278277e2ab3acc Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 13 Dec 2023 09:03:10 +0100 Subject: [PATCH 034/212] fix --- src/general/semidiscretization.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/general/semidiscretization.jl b/src/general/semidiscretization.jl index b92ea6112..aa84690f4 100644 --- a/src/general/semidiscretization.jl +++ b/src/general/semidiscretization.jl @@ -181,7 +181,7 @@ end end # This is just for readability to loop over all systems without allocations -@inline foreach_system(f, semi::Semidiscretization) = foreach_noalloc(f, semi.systems) +@inline foreach_system(f, semi::Union{NamedTuple, Semidiscretization}) = foreach_noalloc(f, semi.systems) @inline foreach_system(f, systems) = foreach_noalloc(f, systems) """ From c6165f0af93a436ecbe43ef26621d2ae6ff6b82e Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 13 Dec 2023 09:12:15 +0100 Subject: [PATCH 035/212] format --- src/general/semidiscretization.jl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/general/semidiscretization.jl b/src/general/semidiscretization.jl index aa84690f4..8dee63961 100644 --- a/src/general/semidiscretization.jl +++ b/src/general/semidiscretization.jl @@ -181,7 +181,8 @@ end end # This is just for readability to loop over all systems without allocations -@inline foreach_system(f, semi::Union{NamedTuple, Semidiscretization}) = foreach_noalloc(f, semi.systems) +@inline foreach_system(f, semi::Union{NamedTuple, Semidiscretization}) = foreach_noalloc(f, + semi.systems) @inline foreach_system(f, systems) = foreach_noalloc(f, systems) """ From 8c58ff630049f410bb08268c9cce90c1c25a5748 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Mon, 18 Dec 2023 23:56:41 +0100 Subject: [PATCH 036/212] add JSON library --- Project.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/Project.toml b/Project.toml index d80ab2193..3ab36dd43 100644 --- a/Project.toml +++ b/Project.toml @@ -8,6 +8,7 @@ Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" DiffEqCallbacks = "459566f4-90b8-5000-8ac3-15dfb0a30def" FastPow = "c0e83750-1142-43a8-81cf-6c956b72b4d1" ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" +JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" Morton = "2a6d852e-3fac-5a38-885c-fe708af2d09e" MuladdMacro = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" From e5dd805dc0dcc67594eb233e551203dd47e58e8b Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 19 Dec 2023 03:01:01 +0100 Subject: [PATCH 037/212] postprocess_callback --- examples/postprocess/plot_json.jl | 111 ++++++++++++++++ examples/postprocess/rectangular_tank.jl | 1 + src/TrixiParticles.jl | 2 +- src/callbacks/callbacks.jl | 10 ++ src/callbacks/info.jl | 8 -- src/callbacks/post_process.jl | 160 +++++++++++++++++++++++ 6 files changed, 283 insertions(+), 9 deletions(-) create mode 100644 examples/postprocess/plot_json.jl create mode 100644 examples/postprocess/rectangular_tank.jl create mode 100644 src/callbacks/post_process.jl diff --git a/examples/postprocess/plot_json.jl b/examples/postprocess/plot_json.jl new file mode 100644 index 000000000..c3f0a5942 --- /dev/null +++ b/examples/postprocess/plot_json.jl @@ -0,0 +1,111 @@ +function running_average(data::Vector{Float64}, window_size::Int) + @assert window_size >= 1 "Window size for running average must be >= 1" + + cum_sum = cumsum(data) + cum_sum = vcat(zeros(window_size - 1), cum_sum) # prepend zeros + +# See above for an explanation of the parameter choice +sol = solve(ode, RDPK3SpFSAL49(), + abstol=1e-6, # Default abstol is 1e-6 (may need to be tuned to prevent boundary penetration) + reltol=1e-5, # Default reltol is 1e-3 (may need to be tuned to prevent boundary penetration) + dtmax=1e-2, # Limit stepsize to prevent crashing + save_everystep=false, callback=callbacks); + averaged_data = (cum_sum[window_size:end] - cum_sum[1:end-window_size + 1]) / window_size + return averaged_data +end + +using GLM +using DataFrames + +function calculate_regression(data::Vector{Float64}, t::Vector{Float64}) + @assert length(data) == length(t) "Data and time vectors must have the same length" + + df = DataFrame(Y=data, T=t) + model = lm(@formula(Y ~ T), df) # Perform linear regression + + # Get the regression line values + trend = predict(model, df) + + # Extract the gradient of the trend line + gradient = coef(model)[2] + + return trend, gradient +end + +function plot_json_data(dir_path::AbstractString="") + if isempty(dir_path) + dir_path = pwd() + end + + files = readdir(dir_path) + json_files = filter(x -> occursin(r"^values(\d*).json$", x), files) + + if isempty(json_files) + println("No matching JSON files found.") + return + end + + recent_file = sort(json_files, by = x -> stat(joinpath(dir_path, x)).ctime, rev=true)[1] + file_path = joinpath(dir_path, recent_file) + + json_string = read(file_path, String) + json_data = JSON.parse(json_string) + + dt_series = json_data["dt"] + dt_values = Vector{Float64}(dt_series["values"]) + accumulated_dt = cumsum(dt_values) + + function plot_dt() + xlabel("T") + ylabel("dt") + title("dt") + yscale("log") + scatter(accumulated_dt, dt_values, s=4, color="blue", label="dt") + legend() + end + + subplot_number = 1 + for key in ["dp", "ekin"] + if haskey(json_data, key) + subplot_number += 1 + end + end + + figure(figsize=(10, 5 * subplot_number)) + + subplot(subplot_number, 1, 1) + plot_dt() + + subplot_index = 2 + for key in ["dp", "ekin"] + if haskey(json_data, key) + series = json_data[key] + values = Vector{Float64}(series["values"]) + + subplot(subplot_number, 1, subplot_index) + xlabel("T") + ylabel(key) + title(key) + scatter(accumulated_dt, values, s=4, label=key) + + if key == "ekin" # calculate and plot running average for ekin + window_size = 50 + averaged_ekin = running_average(values, window_size) + # println("Length of accumulated_dt: ", length(accumulated_dt)) + # println("Length of averaged_ekin: ", length(averaged_ekin)) + # println("Window size: ", window_size) + scatter(accumulated_dt, averaged_ekin, s=4, color="orange", label="ekin (run. avg. windowsize = $window_size)") + + trend_line, gradient = calculate_regression(values, accumulated_dt) + plot(accumulated_dt, trend_line, label="trend (gradient=$gradient)", color="red", linewidth=2) + end + + legend() + subplot_index += 1 + end + end + + show() +end + +plot_json_data() diff --git a/examples/postprocess/rectangular_tank.jl b/examples/postprocess/rectangular_tank.jl new file mode 100644 index 000000000..a93c9a981 --- /dev/null +++ b/examples/postprocess/rectangular_tank.jl @@ -0,0 +1 @@ +pp_cb = PostprocessCallback() diff --git a/src/TrixiParticles.jl b/src/TrixiParticles.jl index c9bff5557..6b35221e6 100644 --- a/src/TrixiParticles.jl +++ b/src/TrixiParticles.jl @@ -37,7 +37,7 @@ export Semidiscretization, semidiscretize, restart_with! export InitialCondition export WeaklyCompressibleSPHSystem, EntropicallyDampedSPHSystem, TotalLagrangianSPHSystem, BoundarySPHSystem -export InfoCallback, SolutionSavingCallback, DensityReinitializationCallback +export InfoCallback, SolutionSavingCallback, DensityReinitializationCallback, PostprocessCallback export ContinuityDensity, SummationDensity export PenaltyForceGanzenmueller export SchoenbergCubicSplineKernel, SchoenbergQuarticSplineKernel, diff --git a/src/callbacks/callbacks.jl b/src/callbacks/callbacks.jl index 623479592..e1266a4cf 100644 --- a/src/callbacks/callbacks.jl +++ b/src/callbacks/callbacks.jl @@ -5,6 +5,16 @@ function get_iter(dt::AbstractFloat, integrator) Int(div(integrator.t - first(integrator.sol.prob.tspan), dt, RoundNearest)) end +# Used by `InfoCallback` and `PostProcessCallback` +@inline function isfinished(integrator) + # Checking for floating point equality is OK here as `DifferentialEquations.jl` + # sets the time exactly to the final time in the last iteration + return integrator.t == last(integrator.sol.prob.tspan) || + isempty(integrator.opts.tstops) || + integrator.iter == integrator.opts.maxiters +end + include("info.jl") include("solution_saving.jl") include("density_reinit.jl") +include("post_process.jl") diff --git a/src/callbacks/info.jl b/src/callbacks/info.jl index 8b23a2b03..ee476b962 100644 --- a/src/callbacks/info.jl +++ b/src/callbacks/info.jl @@ -81,14 +81,6 @@ function (info_callback::InfoCallback)(integrator) return nothing end -@inline function isfinished(integrator) - # Checking for floating point equality is OK here as `DifferentialEquations.jl` - # sets the time exactly to the final time in the last iteration - return integrator.t == last(integrator.sol.prob.tspan) || - isempty(integrator.opts.tstops) || - integrator.iter == integrator.opts.maxiters -end - # Print information about the current simulation setup # Note: This is called *after* all initialization is done, but *before* the first time step function initialize_info_callback(discrete_callback, u, t, integrator; diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl new file mode 100644 index 000000000..0a88f944c --- /dev/null +++ b/src/callbacks/post_process.jl @@ -0,0 +1,160 @@ +using JSON + +struct DataEntry + value::Float64 + time::Float64 +end + +""" + PostprocessCallback +This struct holds the values and time deltas (dt) collected during the simulation. The `values` field is a dictionary +that maps a string key to an array of `DataEntry` structs. The `dt` field is an array of time deltas. +""" +mutable struct PostprocessCallback + values::Dict{String, Vector{DataEntry}} + dt::Vector{Float64} +end + +function PostprocessCallback(system; interval=0) + post_callback = PostprocessCallback(Dict(), Float64[]) + + DiscreteCallback(post_callback, post_callback, + save_positions=(false, false), + initialize=initialize_post_callback) +end + +function postprocess_value(system, key, system_index, u, semi) + data_available, value = pp_value(system, key) + if !data_available + if key == "ekin" + value = calculate_ekin(system, system_index, u, semi) + data_available = true + end + end + return data_available, value +end + +# This function is called at each timestep. It adds the current dt to the array and +# checks each system for new values to add to the `values` field. +function (post_callback::PostprocessCallback)(u, t, integrator) + push!(post_callback.dt, integrator.dt) + + systems = integrator.p.systems + semi = integrator.p + + foreach_enumerate(systems) do (system_index, system) + keys = pp_keys(system) + if keys !== nothing + for key in keys + data_available, value = postprocess_value(system, key, system_index, u, semi) + if data_available + value_array = get!(post_callback.values, key, DataEntry[]) + push!(value_array, DataEntry(value, t)) + end + end + end + end + return isfinished(integrator) +end + +# After the simulation has finished, this function is called to write the data to a JSON file. +function (post_callback::PostprocessCallback)(integrator) + if isempty(post_callback.dt) && isempty(post_callback.values) + return nothing + end + + series_data = prepare_series_data(post_callback) + filename = get_unique_filename("values", ".json") + + open(filename, "w") do file + JSON.print(file, series_data, 4) + end +end + +# This function creates a unique filename by appending a number to the base name if needed. +function get_unique_filename(base_name, extension) + filename = base_name * extension + counter = 1 + + while isfile(filename) + filename = base_name * string(counter) * extension + counter += 1 + end + + return filename +end + +# This function prepares the data for writing to a JSON file by creating a dictionary +# that maps each key to a dictionary with the associated values and times. +function prepare_series_data(post_callback) + series_data = Dict("dt" => create_dict(post_callback.dt)) + + for (key, data_array) in post_callback.values + data_values = [data.value for data in data_array] + data_times = [data.time for data in data_array] + series_data[key] = create_dict(data_values, data_times) + end + + return series_data +end + +function create_dict(values, times=nothing) + Dict("type" => "series", "datatype" => typeof(values), + "novalues" => length(values), "values" => values, "time" => times) +end + +function initialize_post_callback(discrete_callback, u, t, integrator) + return nothing +end + +function pp_keys(system) + # skip systems that don't have support implemented + return nothing +end + +function pp_value(system, key) + # skip systems that don't have support implemented + return false, 0.0 +end + +function calculate_ekin(system, system_index, u, semi) + return system +end + +function calculate_ekin(system::WeaklyCompressibleSPHSystem, system_index, u, semi) + @unpack mass = system + v_ode, u_ode = u.x + + v = wrap_v(v_ode, system_index, system, semi) + ekin = 0.0 + for particle in each_moving_particle(system) + velocity = current_velocity(v, system, particle) + ekin += 0.5 * mass[particle] * dot(velocity, velocity) + end + return ekin +end + +function compute_pressure!(system, v, pp_values::Dict) + @unpack state_equation, pressure, cache = system + + if haskey(pp_values, "dp") + p_old = copy(system.pressure) + compute_pressure!(system, v, pressure, state_equation) + dp = p_old-system.pressure + pp_values["dp"] = sqrt(dot(dp, dp)) + cache.pp_update["dp"] = true + else + compute_pressure!(system, v, pressure, state_equation) + end + return system +end + +function pp_value(system::WeaklyCompressibleSPHSystem, pp_key) + if system.pp_values !== nothing + if haskey(system.pp_values, pp_key) + return system.cache.pp_update[pp_key], system.pp_values[pp_key] + end + end + + return false, 0.0 +end From 23dca830e1507d2229c6f05e98fea357d02f2202 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 20 Dec 2023 03:08:06 +0100 Subject: [PATCH 038/212] add rect_3d example --- examples/fluid/rectangular_tank_2d.jl | 13 ++++++------- examples/fluid/rectangular_tank_3d.jl | 8 ++++++++ src/callbacks/post_process.jl | 22 +++++++++++----------- 3 files changed, 25 insertions(+), 18 deletions(-) create mode 100644 examples/fluid/rectangular_tank_3d.jl diff --git a/examples/fluid/rectangular_tank_2d.jl b/examples/fluid/rectangular_tank_2d.jl index 37697390a..03b36ba5e 100644 --- a/examples/fluid/rectangular_tank_2d.jl +++ b/examples/fluid/rectangular_tank_2d.jl @@ -6,14 +6,13 @@ using OrdinaryDiffEq fluid_particle_spacing = 0.02 # Change spacing ratio to 3 and boundary layers to 1 when using Monaghan-Kajtar boundary model -boundary_layers = 3 +boundary_layers = 4 spacing_ratio = 1 -boundary_particle_spacing = fluid_particle_spacing / spacing_ratio - # ========================================================================================== # ==== Experiment Setup gravity = 9.81 +acceleration = (0.0, -gravity) tspan = (0.0, 2.0) # Boundary geometry and initial fluid particle positions @@ -29,7 +28,7 @@ state_equation = StateEquationCole(sound_speed, 7, fluid_density, atmospheric_pr tank = RectangularTank(fluid_particle_spacing, initial_fluid_size, tank_size, fluid_density, n_layers=boundary_layers, spacing_ratio=spacing_ratio, - acceleration=(0.0, -gravity), state_equation=state_equation) + acceleration=acceleration, state_equation=state_equation) # ========================================================================================== # ==== Fluid @@ -42,18 +41,18 @@ viscosity = ArtificialViscosityMonaghan(alpha=0.02, beta=0.0) fluid_system = WeaklyCompressibleSPHSystem(tank.fluid, fluid_density_calculator, state_equation, smoothing_kernel, smoothing_length, viscosity=viscosity, - acceleration=(0.0, -gravity)) + acceleration=acceleration) # ========================================================================================== # ==== Boundary -boundary_density_calculator = AdamiPressureExtrapolation() boundary_model = BoundaryModelDummyParticles(tank.boundary.density, tank.boundary.mass, state_equation=state_equation, - boundary_density_calculator, + AdamiPressureExtrapolation(), smoothing_kernel, smoothing_length) # Uncomment to use repulsive boundary particles by Monaghan & Kajtar. # Also change spacing ratio and boundary layers (see comment above). +# boundary_particle_spacing = fluid_particle_spacing / spacing_ratio # K = gravity * initial_fluid_size[2] # boundary_model = BoundaryModelMonaghanKajtar(K, spacing_ratio, boundary_particle_spacing, # tank.boundary.mass) diff --git a/examples/fluid/rectangular_tank_3d.jl b/examples/fluid/rectangular_tank_3d.jl new file mode 100644 index 000000000..790773ba5 --- /dev/null +++ b/examples/fluid/rectangular_tank_3d.jl @@ -0,0 +1,8 @@ +using TrixiParticles + +trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), +fluid_particle_spacing=0.05, +initial_fluid_size = (2.0, 1.0, 0.9), +tank_size = (2.0, 1.0, 1.2), +acceleration = (0.0, 0.0, -9.81), +smoothing_kernel = SchoenbergCubicSplineKernel{3}()) diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 0a88f944c..351270d41 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -112,17 +112,17 @@ function pp_keys(system) return nothing end -function pp_value(system, key) - # skip systems that don't have support implemented - return false, 0.0 -end +# function pp_value(system, key) +# # skip systems that don't have support implemented +# return false, 0.0 +# end -function calculate_ekin(system, system_index, u, semi) - return system -end +# function calculate_ekin(system, system_index, u, semi) +# return system +# end -function calculate_ekin(system::WeaklyCompressibleSPHSystem, system_index, u, semi) - @unpack mass = system +function calculate_ekin(system, system_index, u, semi) + mass = system.mass v_ode, u_ode = u.x v = wrap_v(v_ode, system_index, system, semi) @@ -135,7 +135,7 @@ function calculate_ekin(system::WeaklyCompressibleSPHSystem, system_index, u, se end function compute_pressure!(system, v, pp_values::Dict) - @unpack state_equation, pressure, cache = system + (; state_equation, pressure, cache) = system if haskey(pp_values, "dp") p_old = copy(system.pressure) @@ -149,7 +149,7 @@ function compute_pressure!(system, v, pp_values::Dict) return system end -function pp_value(system::WeaklyCompressibleSPHSystem, pp_key) +function pp_value(system, pp_key) if system.pp_values !== nothing if haskey(system.pp_values, pp_key) return system.cache.pp_update[pp_key], system.pp_values[pp_key] From 235f72a7d726ef008534db6c627fdb41ae87ee48 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 21 Dec 2023 23:51:01 +0100 Subject: [PATCH 039/212] fix --- .../boundary/dummy_particles/dummy_particles.jl | 14 ++++++++++---- .../fluid/weakly_compressible_sph/system.jl | 2 +- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/schemes/boundary/dummy_particles/dummy_particles.jl b/src/schemes/boundary/dummy_particles/dummy_particles.jl index c967b827c..873a84822 100644 --- a/src/schemes/boundary/dummy_particles/dummy_particles.jl +++ b/src/schemes/boundary/dummy_particles/dummy_particles.jl @@ -319,18 +319,24 @@ end function compute_pressure!(boundary_model, ::Union{SummationDensity, ContinuityDensity}, system, v, u, v_ode, u_ode, semi) - (; state_equation, pressure) = boundary_model # Limit pressure to be non-negative to avoid attractive forces between fluid and # boundary particles at free surfaces (sticking artifacts). - @trixi_timeit timer() "state equation" @threaded for particle in eachparticle(system) - pressure[particle] = max(state_equation(particle_density(v, boundary_model, - particle)), 0.0) + @threaded for particle in eachparticle(system) + apply_state_equation!(boundary_model, particle_density(v, boundary_model, + particle), particle) end return boundary_model end +# Use this function to avoid passing closures to Polyester.jl with `@batch` (`@threaded`). +# Otherwise, `@threaded` does not work here with Julia ARM on macOS. +# See https://github.com/JuliaSIMD/Polyester.jl/issues/88. +@inline function apply_state_equation!(boundary_model, density, particle) + boundary_model.pressure[particle] = max(boundary_model.state_equation(density), 0.0) +end + function compute_pressure!(boundary_model, ::AdamiPressureExtrapolation, system, v, u, v_ode, u_ode, semi) (; pressure, state_equation, cache, viscosity) = boundary_model diff --git a/src/schemes/fluid/weakly_compressible_sph/system.jl b/src/schemes/fluid/weakly_compressible_sph/system.jl index 778999913..b3e70ed7b 100644 --- a/src/schemes/fluid/weakly_compressible_sph/system.jl +++ b/src/schemes/fluid/weakly_compressible_sph/system.jl @@ -251,7 +251,7 @@ end # Use this function to avoid passing closures to Polyester.jl with `@batch` (`@threaded`). # Otherwise, `@threaded` does not work here with Julia ARM on macOS. # See https://github.com/JuliaSIMD/Polyester.jl/issues/88. -@inline function apply_state_equation!(system, density, particle) +@inline function apply_state_equation!(system::WeaklyCompressibleSPHSystem, density, particle) system.pressure[particle] = system.state_equation(density) end From 66af558fc4cc76fe3c54b53e45d35f50098acf08 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 22 Dec 2023 00:07:31 +0100 Subject: [PATCH 040/212] format --- src/schemes/boundary/dummy_particles/dummy_particles.jl | 2 +- src/schemes/fluid/weakly_compressible_sph/system.jl | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/schemes/boundary/dummy_particles/dummy_particles.jl b/src/schemes/boundary/dummy_particles/dummy_particles.jl index 873a84822..a99387cdf 100644 --- a/src/schemes/boundary/dummy_particles/dummy_particles.jl +++ b/src/schemes/boundary/dummy_particles/dummy_particles.jl @@ -324,7 +324,7 @@ function compute_pressure!(boundary_model, ::Union{SummationDensity, ContinuityD # boundary particles at free surfaces (sticking artifacts). @threaded for particle in eachparticle(system) apply_state_equation!(boundary_model, particle_density(v, boundary_model, - particle), particle) + particle), particle) end return boundary_model diff --git a/src/schemes/fluid/weakly_compressible_sph/system.jl b/src/schemes/fluid/weakly_compressible_sph/system.jl index b3e70ed7b..e65d1465a 100644 --- a/src/schemes/fluid/weakly_compressible_sph/system.jl +++ b/src/schemes/fluid/weakly_compressible_sph/system.jl @@ -251,7 +251,8 @@ end # Use this function to avoid passing closures to Polyester.jl with `@batch` (`@threaded`). # Otherwise, `@threaded` does not work here with Julia ARM on macOS. # See https://github.com/JuliaSIMD/Polyester.jl/issues/88. -@inline function apply_state_equation!(system::WeaklyCompressibleSPHSystem, density, particle) +@inline function apply_state_equation!(system::WeaklyCompressibleSPHSystem, density, + particle) system.pressure[particle] = system.state_equation(density) end From bf4997d25471d898a840845ccafe8173dbd137bd Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 5 Jan 2024 10:45:58 +0100 Subject: [PATCH 041/212] impl --- examples/fluid/rectangular_tank_2d.jl | 3 +- examples/postprocess/rectangular_tank.jl | 8 +- src/callbacks/post_process.jl | 374 +++++++++++++----- src/general/file_system.jl | 27 ++ src/general/general.jl | 12 + src/general/system.jl | 2 - src/schemes/boundary/system.jl | 2 +- src/schemes/fluid/fluid.jl | 4 - .../solid/total_lagrangian_sph/system.jl | 4 +- src/visualization/write2vtk.jl | 11 +- 10 files changed, 333 insertions(+), 114 deletions(-) create mode 100644 src/general/file_system.jl diff --git a/examples/fluid/rectangular_tank_2d.jl b/examples/fluid/rectangular_tank_2d.jl index 03b36ba5e..d7efcb249 100644 --- a/examples/fluid/rectangular_tank_2d.jl +++ b/examples/fluid/rectangular_tank_2d.jl @@ -67,8 +67,9 @@ ode = semidiscretize(semi, tspan) info_callback = InfoCallback(interval=50) saving_callback = SolutionSavingCallback(dt=0.02, prefix="") +pp_callback = nothing -callbacks = CallbackSet(info_callback, saving_callback) +callbacks = CallbackSet(info_callback, saving_callback, pp_callback) # Use a Runge-Kutta method with automatic (error based) time step size control. # Limiting of the maximum stepsize is necessary to prevent crashing. diff --git a/examples/postprocess/rectangular_tank.jl b/examples/postprocess/rectangular_tank.jl index a93c9a981..46032fcef 100644 --- a/examples/postprocess/rectangular_tank.jl +++ b/examples/postprocess/rectangular_tank.jl @@ -1 +1,7 @@ -pp_cb = PostprocessCallback() +using TrixiParticles + +a = function(pp, t, system, u, v, system_name) println("test_func ", t) end +pp_cb = PostprocessCallback([a, TrixiParticles.calculate_ekin, TrixiParticles.calculate_total_mass, TrixiParticles.max_pressure, TrixiParticles.min_pressure, TrixiParticles.avg_pressure, TrixiParticles.max_density, TrixiParticles.min_denity, TrixiParticles.avg_density]) + +trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), +pp_callback=pp_cb) diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 351270d41..0e31cc1a4 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -3,6 +3,7 @@ using JSON struct DataEntry value::Float64 time::Float64 + system::String end """ @@ -10,151 +11,340 @@ end This struct holds the values and time deltas (dt) collected during the simulation. The `values` field is a dictionary that maps a string key to an array of `DataEntry` structs. The `dt` field is an array of time deltas. """ -mutable struct PostprocessCallback +mutable struct PostprocessCallback{I, F} + interval::I + last_t::Float64 values::Dict{String, Vector{DataEntry}} - dt::Vector{Float64} + exclude_bnd::Bool + func::F end -function PostprocessCallback(system; interval=0) - post_callback = PostprocessCallback(Dict(), Float64[]) +function PostprocessCallback(func; interval=0, exclude_bnd=true) + post_callback = PostprocessCallback(interval, -Inf, Dict{String, Vector{DataEntry}}(), exclude_bnd, func) DiscreteCallback(post_callback, post_callback, save_positions=(false, false), - initialize=initialize_post_callback) + initialize=initialize_post_callback!) end -function postprocess_value(system, key, system_index, u, semi) - data_available, value = pp_value(system, key) - if !data_available - if key == "ekin" - value = calculate_ekin(system, system_index, u, semi) - data_available = true - end + + +function Base.show(io::IO, cb::DiscreteCallback{<:Any, <:PostprocessCallback}) + @nospecialize cb # reduce precompilation time + callback = cb.affect! + print(io, "PostprocessCallback(interval=", callback.interval, ")") +end + +function Base.show(io::IO, ::MIME"text/plain", + cb::DiscreteCallback{<:Any, <:PostprocessCallback}) + @nospecialize cb # reduce precompilation time + if get(io, :compact, false) + show(io, cb) + else + callback = cb.affect! + setup = [ + "interval" => callback.interval, + ] + summary_box(io, "PostprocessCallback", setup) end - return data_available, value end -# This function is called at each timestep. It adds the current dt to the array and -# checks each system for new values to add to the `values` field. -function (post_callback::PostprocessCallback)(u, t, integrator) - push!(post_callback.dt, integrator.dt) +function initialize_post_callback!(cb, u, t, integrator) + initialize_post_callback!(cb.affect!, u, t, integrator) +end + +function initialize_post_callback!(cb::PostprocessCallback, u, t, integrator) + cb.last_t = t + return nothing +end + +# condition with interval +function (pp::PostprocessCallback{Int, Any})(u, t, integrator) + (; interval) = pp + + # With error-based step size control, some steps can be rejected. Thus, + # `integrator.iter >= integrator.stats.naccept` + # (total #steps) (#accepted steps) + # We need to check the number of accepted steps since callbacks are not + # activated after a rejected step. + return interval > 0 && ((integrator.stats.naccept % interval == 0) && + !(integrator.stats.naccept == 0 && integrator.iter > 0)) +end + +# condition with dt +function (pp::PostprocessCallback)(u, t, integrator) + (; interval, last_t) = pp - systems = integrator.p.systems + return (t - last_t) > interval +end + +# affect! function for a single function +function (pp::PostprocessCallback{I,F})(integrator) where {I, F<:Function} + vu_ode = integrator.u + v_ode, u_ode = vu_ode.x semi = integrator.p + t = integrator.t + pp.last_t = integrator.t + filenames = system_names(semi.systems) - foreach_enumerate(systems) do (system_index, system) - keys = pp_keys(system) - if keys !== nothing - for key in keys - data_available, value = postprocess_value(system, key, system_index, u, semi) - if data_available - value_array = get!(post_callback.values, key, DataEntry[]) - push!(value_array, DataEntry(value, t)) - end - end + foreach_system(semi) do system + if system isa BoundarySystem + return end - end - return isfinished(integrator) -end -# After the simulation has finished, this function is called to write the data to a JSON file. -function (post_callback::PostprocessCallback)(integrator) - if isempty(post_callback.dt) && isempty(post_callback.values) - return nothing - end + system_index = system_indices(system, semi) - series_data = prepare_series_data(post_callback) - filename = get_unique_filename("values", ".json") + v = wrap_v(v_ode, system, semi) + u = wrap_u(u_ode, system, semi) + pp.func(pp, t, system, u, v, filenames[system_index]) + end - open(filename, "w") do file - JSON.print(file, series_data, 4) + if isfinished(integrator) + pp(integrator, true) end end -# This function creates a unique filename by appending a number to the base name if needed. -function get_unique_filename(base_name, extension) - filename = base_name * extension - counter = 1 +# affect! function for an array of functions +function (pp::PostprocessCallback{I,F})(integrator) where {I, F<:Array} + vu_ode = integrator.u + v_ode, u_ode = vu_ode.x + semi = integrator.p + t = integrator.t + pp.last_t = integrator.t + filenames = system_names(semi.systems) + + foreach_system(semi) do system + if system isa BoundarySystem + return + end - while isfile(filename) - filename = base_name * string(counter) * extension - counter += 1 + system_index = system_indices(system, semi) + + v = wrap_v(v_ode, system, semi) + u = wrap_u(u_ode, system, semi) + for f in pp.func + f(pp, t, system, u, v, filenames[system_index]) + end end - return filename + if isfinished(integrator) + pp(integrator, true) + end end # This function prepares the data for writing to a JSON file by creating a dictionary -# that maps each key to a dictionary with the associated values and times. +# that maps each key to separate arrays of times and values, sorted by time, and includes system name. function prepare_series_data(post_callback) - series_data = Dict("dt" => create_dict(post_callback.dt)) + series_data = Dict() for (key, data_array) in post_callback.values - data_values = [data.value for data in data_array] - data_times = [data.time for data in data_array] - series_data[key] = create_dict(data_values, data_times) + # Sort the data_array by time + sorted_data_array = sort(data_array, by = data -> data.time) + + # Extracting times and values into separate arrays + data_times = [data.time for data in sorted_data_array] + data_values = [data.value for data in sorted_data_array] + + # Assuming each DataEntry in sorted_data_array has a `system` field. + system_name = isempty(sorted_data_array) ? "" : sorted_data_array[1].system + + series_data[key] = create_series_dict(data_values, data_times, system_name) end return series_data end -function create_dict(values, times=nothing) - Dict("type" => "series", "datatype" => typeof(values), - "novalues" => length(values), "values" => values, "time" => times) +function create_series_dict(values, times, system_name="") + Dict("type" => "series", "datatype" => eltype(values), + "novalues" => length(values), "values" => values, + "time" => times, "system_name" => system_name) end -function initialize_post_callback(discrete_callback, u, t, integrator) - return nothing -end -function pp_keys(system) - # skip systems that don't have support implemented - return nothing +# After the simulation has finished, this function is called to write the data to a JSON file. +function (pp::PostprocessCallback)(integrator, finished::Bool) + if isempty(pp.values) + return nothing + end + + series_data = prepare_series_data(pp) + filename = get_unique_filename("values", ".json") + println("writing a postproccessing results to ", filename) + + open(filename, "w") do file + JSON.print(file, series_data, 4) + end end -# function pp_value(system, key) -# # skip systems that don't have support implemented -# return false, 0.0 -# end +function add_entry!(pp, entry_key, t, value, system_name) + # Get the list of DataEntry for the system, or initialize it if it doesn't exist + entries = get!(pp.values, entry_key*"_"*system_name, DataEntry[]) -# function calculate_ekin(system, system_index, u, semi) -# return system -# end + # Add the new entry to the list + push!(entries, DataEntry(value, t, system_name)) +end -function calculate_ekin(system, system_index, u, semi) +function test_function(pp, t, system, u, v, system_name) + add_entry!(pp, "test", t, 2*t, system_name) +end + +function calculate_ekin(pp, t, system, u, v, system_name) mass = system.mass - v_ode, u_ode = u.x - v = wrap_v(v_ode, system_index, system, semi) ekin = 0.0 for particle in each_moving_particle(system) velocity = current_velocity(v, system, particle) ekin += 0.5 * mass[particle] * dot(velocity, velocity) end - return ekin + add_entry!(pp, "ekin", t, ekin, system_name) end -function compute_pressure!(system, v, pp_values::Dict) - (; state_equation, pressure, cache) = system - - if haskey(pp_values, "dp") - p_old = copy(system.pressure) - compute_pressure!(system, v, pressure, state_equation) - dp = p_old-system.pressure - pp_values["dp"] = sqrt(dot(dp, dp)) - cache.pp_update["dp"] = true - else - compute_pressure!(system, v, pressure, state_equation) +function calculate_total_mass(pp, t, system, u, v, system_name) + mass = system.mass + total_mass = 0.0 + for particle in each_moving_particle(system) + total_mass += mass[particle] end - return system + add_entry!(pp, "totalm", t, total_mass, system_name) end -function pp_value(system, pp_key) - if system.pp_values !== nothing - if haskey(system.pp_values, pp_key) - return system.cache.pp_update[pp_key], system.pp_values[pp_key] - end - end +function max_pressure(pp, t, system, u, v, system_name) + +end + +function min_pressure(pp, t, system, u, v, system_name) + +end + +function avg_pressure(pp, t, system, u, v, system_name) + +end + +function max_density(pp, t, system, u, v, system_name) - return false, 0.0 end + +function min_density(pp, t, system, u, v, system_name) + +end + +function avg_density(pp, t, system, u, v, system_name) + +end + +# # This function prepares the data for writing to a JSON file by creating a dictionary +# # that maps each key to a dictionary with the associated values and times. +# function prepare_series_data(post_callback) +# series_data = Dict("dt" => create_dict(post_callback.dt)) + +# for (key, data_array) in post_callback.values +# data_values = [data.value for data in data_array] +# data_times = [data.time for data in data_array] +# series_data[key] = create_dict(data_values, data_times) +# end + +# return series_data +# end + +# function create_dict(values, times=nothing) +# Dict("type" => "series", "datatype" => typeof(values), +# "novalues" => length(values), "values" => values, "time" => times) +# end + + +# function postprocess_value(system, key, system_index, u, semi) +# data_available, value = pp_value(system, key) +# if !data_available +# if key == "ekin" +# value = calculate_ekin(system, system_index, u, semi) +# data_available = true +# end +# end +# return data_available, value +# end + +# # This function is called at each timestep. It adds the current dt to the array and +# # checks each system for new values to add to the `values` field. +# function (post_callback::PostprocessCallback)(u, t, integrator) +# push!(post_callback.dt, integrator.dt) + +# systems = integrator.p.systems +# semi = integrator.p + +# foreach_enumerate(systems) do (system_index, system) +# keys = pp_keys(system) +# if keys !== nothing +# for key in keys +# data_available, value = postprocess_value(system, key, system_index, u, semi) +# if data_available +# value_array = get!(post_callback.values, key, DataEntry[]) +# push!(value_array, DataEntry(value, t)) +# end +# end +# end +# end +# return isfinished(integrator) +# end + + + +# # This function prepares the data for writing to a JSON file by creating a dictionary +# # that maps each key to a dictionary with the associated values and times. +# function prepare_series_data(post_callback) +# series_data = Dict("dt" => create_dict(post_callback.dt)) + +# for (key, data_array) in post_callback.values +# data_values = [data.value for data in data_array] +# data_times = [data.time for data in data_array] +# series_data[key] = create_dict(data_values, data_times) +# end + +# return series_data +# end + +# function create_dict(values, times=nothing) +# Dict("type" => "series", "datatype" => typeof(values), +# "novalues" => length(values), "values" => values, "time" => times) +# end + +# # function calculate_ekin(system, system_index, u, semi) +# # return system +# # end + +# function calculate_ekin(system, system_index, u, semi) +# mass = system.mass +# v_ode, u_ode = u.x + +# v = wrap_v(v_ode, system_index, system, semi) +# ekin = 0.0 +# for particle in each_moving_particle(system) +# velocity = current_velocity(v, system, particle) +# ekin += 0.5 * mass[particle] * dot(velocity, velocity) +# end +# return ekin +# end + +# function compute_pressure!(system, v, pp_values::Dict) +# (; state_equation, pressure, cache) = system + +# if haskey(pp_values, "dp") +# p_old = copy(system.pressure) +# compute_pressure!(system, v, pressure, state_equation) +# dp = p_old-system.pressure +# pp_values["dp"] = sqrt(dot(dp, dp)) +# cache.pp_update["dp"] = true +# else +# compute_pressure!(system, v, pressure, state_equation) +# end +# return system +# end + +# function pp_value(system, pp_key) +# if system.pp_values !== nothing +# if haskey(system.pp_values, pp_key) +# return system.cache.pp_update[pp_key], system.pp_values[pp_key] +# end +# end + +# return false, 0.0 +# end diff --git a/src/general/file_system.jl b/src/general/file_system.jl new file mode 100644 index 000000000..52cfa45e8 --- /dev/null +++ b/src/general/file_system.jl @@ -0,0 +1,27 @@ +# This function creates a unique filename by appending a number to the base name if needed. +function get_unique_filename(base_name, extension) + filename = base_name * extension + counter = 1 + + while isfile(filename) + filename = base_name * string(counter) * extension + counter += 1 + end + + return filename +end + + +vtkname(system::FluidSystem) = "fluid" +vtkname(system::SolidSystem) = "solid" +vtkname(system::BoundarySystem) = "boundary" + +function system_names(systems) + # Add `_i` to each system name, where `i` is the index of the corresponding + # system type. + # `["fluid", "boundary", "boundary"]` becomes `["fluid_1", "boundary_1", "boundary_2"]`. + cnames = systems .|> vtkname + filenames = [string(cnames[i], "_", count(==(cnames[i]), cnames[1:i])) + for i in eachindex(cnames)] + return filenames +end diff --git a/src/general/general.jl b/src/general/general.jl index e5cf8bdd4..803482434 100644 --- a/src/general/general.jl +++ b/src/general/general.jl @@ -4,6 +4,17 @@ return du end +abstract type System{NDIMS} end + +abstract type FluidSystem{NDIMS} <: System{NDIMS} end +timer_name(::FluidSystem) = "fluid" + +abstract type SolidSystem{NDIMS} <: System{NDIMS} end +timer_name(::SolidSystem) = "solid" + +abstract type BoundarySystem{NDIMS} <: System{NDIMS} end +timer_name(::BoundarySystem) = "boundary" + # Note that `semidiscretization.jl` depends on the system types and has to be # included later. # `density_calculators.jl` needs to be included before `corrections.jl`. @@ -12,3 +23,4 @@ include("corrections.jl") include("smoothing_kernels.jl") include("initial_condition.jl") include("system.jl") +include("file_system.jl") diff --git a/src/general/system.jl b/src/general/system.jl index a65796a66..1155fd39a 100644 --- a/src/general/system.jl +++ b/src/general/system.jl @@ -1,5 +1,3 @@ -abstract type System{NDIMS} end - initialize!(system, neighborhood_search) = system @inline Base.ndims(::System{NDIMS}) where {NDIMS} = NDIMS diff --git a/src/schemes/boundary/system.jl b/src/schemes/boundary/system.jl index e3cc8c29d..1ebe15589 100644 --- a/src/schemes/boundary/system.jl +++ b/src/schemes/boundary/system.jl @@ -7,7 +7,7 @@ The interaction between fluid and boundary particles is specified by the boundar For moving boundaries, a [`BoundaryMovement`](@ref) can be passed with the keyword argument `movement`. """ -struct BoundarySPHSystem{BM, NDIMS, ELTYPE <: Real, M, C} <: System{NDIMS} +struct BoundarySPHSystem{BM, NDIMS, ELTYPE <: Real, M, C} <: BoundarySystem{NDIMS} coordinates :: Array{ELTYPE, 2} boundary_model :: BM movement :: M diff --git a/src/schemes/fluid/fluid.jl b/src/schemes/fluid/fluid.jl index 844e0a91d..712a6c7dc 100644 --- a/src/schemes/fluid/fluid.jl +++ b/src/schemes/fluid/fluid.jl @@ -1,7 +1,3 @@ -abstract type FluidSystem{NDIMS} <: System{NDIMS} end - -timer_name(::FluidSystem) = "fluid" - @inline hydrodynamic_mass(system::FluidSystem, particle) = system.mass[particle] function write_u0!(u0, system::FluidSystem) diff --git a/src/schemes/solid/total_lagrangian_sph/system.jl b/src/schemes/solid/total_lagrangian_sph/system.jl index 013048332..0c65a1649 100644 --- a/src/schemes/solid/total_lagrangian_sph/system.jl +++ b/src/schemes/solid/total_lagrangian_sph/system.jl @@ -75,7 +75,7 @@ The term $\bm{f}_a^{PF}$ is an optional penalty force. See e.g. [`PenaltyForceGa In: International Journal for Numerical Methods in Engineering 48 (2000), pages 1359–1400. [doi: 10.1002/1097-0207](https://doi.org/10.1002/1097-0207) """ -struct TotalLagrangianSPHSystem{BM, NDIMS, ELTYPE <: Real, K, PF} <: System{NDIMS} +struct TotalLagrangianSPHSystem{BM, NDIMS, ELTYPE <: Real, K, PF} <: SolidSystem{NDIMS} initial_condition :: InitialCondition{ELTYPE} initial_coordinates :: Array{ELTYPE, 2} # [dimension, particle] current_coordinates :: Array{ELTYPE, 2} # [dimension, particle] @@ -178,8 +178,6 @@ function Base.show(io::IO, ::MIME"text/plain", system::TotalLagrangianSPHSystem) end end -timer_name(::TotalLagrangianSPHSystem) = "solid" - @inline function v_nvariables(system::TotalLagrangianSPHSystem) return ndims(system) end diff --git a/src/visualization/write2vtk.jl b/src/visualization/write2vtk.jl index d23f0b9a9..b10ed80b9 100644 --- a/src/visualization/write2vtk.jl +++ b/src/visualization/write2vtk.jl @@ -28,12 +28,7 @@ function trixi2vtk(vu_ode, semi, t; iter=nothing, output_directory="out", prefix (; systems) = semi v_ode, u_ode = vu_ode.x - # Add `_i` to each system name, where `i` is the index of the corresponding - # system type. - # `["fluid", "boundary", "boundary"]` becomes `["fluid_1", "boundary_1", "boundary_2"]`. - cnames = systems .|> vtkname - filenames = [string(cnames[i], "_", count(==(cnames[i]), cnames[1:i])) - for i in eachindex(cnames)] + filenames = system_names(systems) foreach_system(semi) do system system_index = system_indices(system, semi) @@ -140,10 +135,6 @@ function trixi2vtk(coordinates; output_directory="out", prefix="", filename="coo return file end -vtkname(system::FluidSystem) = "fluid" -vtkname(system::TotalLagrangianSPHSystem) = "solid" -vtkname(system::BoundarySPHSystem) = "boundary" - function write2vtk!(vtk, v, u, t, system::FluidSystem; write_meta_data=true) vtk["velocity"] = view(v, 1:ndims(system), :) vtk["density"] = [particle_density(v, system, particle) From d9e854eeb1b52183800e9c251911c0fb5353a468 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 5 Jan 2024 12:48:31 +0100 Subject: [PATCH 042/212] fixes --- examples/fluid/rectangular_tank_3d.jl | 10 +- examples/postprocess/plot_json.jl | 29 ++-- examples/postprocess/rectangular_tank.jl | 16 ++- src/TrixiParticles.jl | 3 +- src/callbacks/post_process.jl | 161 ++++------------------- src/general/file_system.jl | 20 ++- 6 files changed, 80 insertions(+), 159 deletions(-) diff --git a/examples/fluid/rectangular_tank_3d.jl b/examples/fluid/rectangular_tank_3d.jl index 790773ba5..a2804bfca 100644 --- a/examples/fluid/rectangular_tank_3d.jl +++ b/examples/fluid/rectangular_tank_3d.jl @@ -1,8 +1,8 @@ using TrixiParticles trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), -fluid_particle_spacing=0.05, -initial_fluid_size = (2.0, 1.0, 0.9), -tank_size = (2.0, 1.0, 1.2), -acceleration = (0.0, 0.0, -9.81), -smoothing_kernel = SchoenbergCubicSplineKernel{3}()) + fluid_particle_spacing=0.05, + initial_fluid_size=(2.0, 1.0, 0.9), + tank_size=(2.0, 1.0, 1.2), + acceleration=(0.0, 0.0, -9.81), + smoothing_kernel=SchoenbergCubicSplineKernel{3}()) diff --git a/examples/postprocess/plot_json.jl b/examples/postprocess/plot_json.jl index c3f0a5942..5e7614e12 100644 --- a/examples/postprocess/plot_json.jl +++ b/examples/postprocess/plot_json.jl @@ -1,16 +1,17 @@ function running_average(data::Vector{Float64}, window_size::Int) - @assert window_size >= 1 "Window size for running average must be >= 1" + @assert window_size>=1 "Window size for running average must be >= 1" cum_sum = cumsum(data) cum_sum = vcat(zeros(window_size - 1), cum_sum) # prepend zeros -# See above for an explanation of the parameter choice -sol = solve(ode, RDPK3SpFSAL49(), - abstol=1e-6, # Default abstol is 1e-6 (may need to be tuned to prevent boundary penetration) - reltol=1e-5, # Default reltol is 1e-3 (may need to be tuned to prevent boundary penetration) - dtmax=1e-2, # Limit stepsize to prevent crashing - save_everystep=false, callback=callbacks); - averaged_data = (cum_sum[window_size:end] - cum_sum[1:end-window_size + 1]) / window_size + # See above for an explanation of the parameter choice + sol = solve(ode, RDPK3SpFSAL49(), + abstol=1e-6, # Default abstol is 1e-6 (may need to be tuned to prevent boundary penetration) + reltol=1e-5, # Default reltol is 1e-3 (may need to be tuned to prevent boundary penetration) + dtmax=1e-2, # Limit stepsize to prevent crashing + save_everystep=false, callback=callbacks) + averaged_data = (cum_sum[window_size:end] - cum_sum[1:(end - window_size + 1)]) / + window_size return averaged_data end @@ -18,10 +19,10 @@ using GLM using DataFrames function calculate_regression(data::Vector{Float64}, t::Vector{Float64}) - @assert length(data) == length(t) "Data and time vectors must have the same length" + @assert length(data)==length(t) "Data and time vectors must have the same length" df = DataFrame(Y=data, T=t) - model = lm(@formula(Y ~ T), df) # Perform linear regression + model = lm(@formula(Y~T), df) # Perform linear regression # Get the regression line values trend = predict(model, df) @@ -45,7 +46,7 @@ function plot_json_data(dir_path::AbstractString="") return end - recent_file = sort(json_files, by = x -> stat(joinpath(dir_path, x)).ctime, rev=true)[1] + recent_file = sort(json_files, by=x -> stat(joinpath(dir_path, x)).ctime, rev=true)[1] file_path = joinpath(dir_path, recent_file) json_string = read(file_path, String) @@ -94,10 +95,12 @@ function plot_json_data(dir_path::AbstractString="") # println("Length of accumulated_dt: ", length(accumulated_dt)) # println("Length of averaged_ekin: ", length(averaged_ekin)) # println("Window size: ", window_size) - scatter(accumulated_dt, averaged_ekin, s=4, color="orange", label="ekin (run. avg. windowsize = $window_size)") + scatter(accumulated_dt, averaged_ekin, s=4, color="orange", + label="ekin (run. avg. windowsize = $window_size)") trend_line, gradient = calculate_regression(values, accumulated_dt) - plot(accumulated_dt, trend_line, label="trend (gradient=$gradient)", color="red", linewidth=2) + plot(accumulated_dt, trend_line, label="trend (gradient=$gradient)", + color="red", linewidth=2) end legend() diff --git a/examples/postprocess/rectangular_tank.jl b/examples/postprocess/rectangular_tank.jl index 46032fcef..0a3a1adb1 100644 --- a/examples/postprocess/rectangular_tank.jl +++ b/examples/postprocess/rectangular_tank.jl @@ -1,7 +1,19 @@ using TrixiParticles +# Any function can be implemented and will be called after each timestep! See example below: a = function(pp, t, system, u, v, system_name) println("test_func ", t) end -pp_cb = PostprocessCallback([a, TrixiParticles.calculate_ekin, TrixiParticles.calculate_total_mass, TrixiParticles.max_pressure, TrixiParticles.min_pressure, TrixiParticles.avg_pressure, TrixiParticles.max_density, TrixiParticles.min_denity, TrixiParticles.avg_density]) +example_cb = PostprocessCallback([a,]) + +pp_cb = PostprocessCallback([ a, + TrixiParticles.calculate_ekin, + TrixiParticles.calculate_total_mass, + TrixiParticles.max_pressure, + TrixiParticles.min_pressure, + TrixiParticles.avg_pressure, + TrixiParticles.max_density, + TrixiParticles.min_density, + TrixiParticles.avg_density, + ]) trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), -pp_callback=pp_cb) + pp_callback=pp_cb) diff --git a/src/TrixiParticles.jl b/src/TrixiParticles.jl index 6b35221e6..56bf97527 100644 --- a/src/TrixiParticles.jl +++ b/src/TrixiParticles.jl @@ -37,7 +37,8 @@ export Semidiscretization, semidiscretize, restart_with! export InitialCondition export WeaklyCompressibleSPHSystem, EntropicallyDampedSPHSystem, TotalLagrangianSPHSystem, BoundarySPHSystem -export InfoCallback, SolutionSavingCallback, DensityReinitializationCallback, PostprocessCallback +export InfoCallback, SolutionSavingCallback, DensityReinitializationCallback, + PostprocessCallback export ContinuityDensity, SummationDensity export PenaltyForceGanzenmueller export SchoenbergCubicSplineKernel, SchoenbergQuarticSplineKernel, diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 0e31cc1a4..b5e260283 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -19,20 +19,30 @@ mutable struct PostprocessCallback{I, F} func::F end +# TODO: implement exclude_bnd +# TODO: include current git hash function PostprocessCallback(func; interval=0, exclude_bnd=true) - post_callback = PostprocessCallback(interval, -Inf, Dict{String, Vector{DataEntry}}(), exclude_bnd, func) + post_callback = PostprocessCallback(interval, -Inf, Dict{String, Vector{DataEntry}}(), + exclude_bnd, func) DiscreteCallback(post_callback, post_callback, save_positions=(false, false), initialize=initialize_post_callback!) end - - function Base.show(io::IO, cb::DiscreteCallback{<:Any, <:PostprocessCallback}) @nospecialize cb # reduce precompilation time callback = cb.affect! - print(io, "PostprocessCallback(interval=", callback.interval, ")") + print(io, "PostprocessCallback(interval=", callback.interval, ", functions=[") + + funcs = callback.func + + for (i, func) in enumerate(funcs) + print(io, nameof(func)) + if i < length(funcs) + print(io, ", ") + end + end end function Base.show(io::IO, ::MIME"text/plain", @@ -42,9 +52,12 @@ function Base.show(io::IO, ::MIME"text/plain", show(io, cb) else callback = cb.affect! - setup = [ - "interval" => callback.interval, - ] + setup = ["interval" => string(callback.interval)] + + for (i, f) in enumerate(callback.func) + func_key = "function" * string(i) + setup = [setup..., func_key => string(nameof(f))] + end summary_box(io, "PostprocessCallback", setup) end end @@ -79,7 +92,7 @@ function (pp::PostprocessCallback)(u, t, integrator) end # affect! function for a single function -function (pp::PostprocessCallback{I,F})(integrator) where {I, F<:Function} +function (pp::PostprocessCallback{I, F})(integrator) where {I, F <: Function} vu_ode = integrator.u v_ode, u_ode = vu_ode.x semi = integrator.p @@ -105,7 +118,7 @@ function (pp::PostprocessCallback{I,F})(integrator) where {I, F<:Function} end # affect! function for an array of functions -function (pp::PostprocessCallback{I,F})(integrator) where {I, F<:Array} +function (pp::PostprocessCallback{I, F})(integrator) where {I, F <: Array} vu_ode = integrator.u v_ode, u_ode = vu_ode.x semi = integrator.p @@ -139,7 +152,7 @@ function prepare_series_data(post_callback) for (key, data_array) in post_callback.values # Sort the data_array by time - sorted_data_array = sort(data_array, by = data -> data.time) + sorted_data_array = sort(data_array, by=data -> data.time) # Extracting times and values into separate arrays data_times = [data.time for data in sorted_data_array] @@ -160,7 +173,6 @@ function create_series_dict(values, times, system_name="") "time" => times, "system_name" => system_name) end - # After the simulation has finished, this function is called to write the data to a JSON file. function (pp::PostprocessCallback)(integrator, finished::Bool) if isempty(pp.values) @@ -178,14 +190,14 @@ end function add_entry!(pp, entry_key, t, value, system_name) # Get the list of DataEntry for the system, or initialize it if it doesn't exist - entries = get!(pp.values, entry_key*"_"*system_name, DataEntry[]) + entries = get!(pp.values, entry_key * "_" * system_name, DataEntry[]) # Add the new entry to the list push!(entries, DataEntry(value, t, system_name)) end function test_function(pp, t, system, u, v, system_name) - add_entry!(pp, "test", t, 2*t, system_name) + add_entry!(pp, "test", t, 2 * t, system_name) end function calculate_ekin(pp, t, system, u, v, system_name) @@ -209,142 +221,19 @@ function calculate_total_mass(pp, t, system, u, v, system_name) end function max_pressure(pp, t, system, u, v, system_name) - end function min_pressure(pp, t, system, u, v, system_name) - end function avg_pressure(pp, t, system, u, v, system_name) - end function max_density(pp, t, system, u, v, system_name) - end function min_density(pp, t, system, u, v, system_name) - end function avg_density(pp, t, system, u, v, system_name) - end - -# # This function prepares the data for writing to a JSON file by creating a dictionary -# # that maps each key to a dictionary with the associated values and times. -# function prepare_series_data(post_callback) -# series_data = Dict("dt" => create_dict(post_callback.dt)) - -# for (key, data_array) in post_callback.values -# data_values = [data.value for data in data_array] -# data_times = [data.time for data in data_array] -# series_data[key] = create_dict(data_values, data_times) -# end - -# return series_data -# end - -# function create_dict(values, times=nothing) -# Dict("type" => "series", "datatype" => typeof(values), -# "novalues" => length(values), "values" => values, "time" => times) -# end - - -# function postprocess_value(system, key, system_index, u, semi) -# data_available, value = pp_value(system, key) -# if !data_available -# if key == "ekin" -# value = calculate_ekin(system, system_index, u, semi) -# data_available = true -# end -# end -# return data_available, value -# end - -# # This function is called at each timestep. It adds the current dt to the array and -# # checks each system for new values to add to the `values` field. -# function (post_callback::PostprocessCallback)(u, t, integrator) -# push!(post_callback.dt, integrator.dt) - -# systems = integrator.p.systems -# semi = integrator.p - -# foreach_enumerate(systems) do (system_index, system) -# keys = pp_keys(system) -# if keys !== nothing -# for key in keys -# data_available, value = postprocess_value(system, key, system_index, u, semi) -# if data_available -# value_array = get!(post_callback.values, key, DataEntry[]) -# push!(value_array, DataEntry(value, t)) -# end -# end -# end -# end -# return isfinished(integrator) -# end - - - -# # This function prepares the data for writing to a JSON file by creating a dictionary -# # that maps each key to a dictionary with the associated values and times. -# function prepare_series_data(post_callback) -# series_data = Dict("dt" => create_dict(post_callback.dt)) - -# for (key, data_array) in post_callback.values -# data_values = [data.value for data in data_array] -# data_times = [data.time for data in data_array] -# series_data[key] = create_dict(data_values, data_times) -# end - -# return series_data -# end - -# function create_dict(values, times=nothing) -# Dict("type" => "series", "datatype" => typeof(values), -# "novalues" => length(values), "values" => values, "time" => times) -# end - -# # function calculate_ekin(system, system_index, u, semi) -# # return system -# # end - -# function calculate_ekin(system, system_index, u, semi) -# mass = system.mass -# v_ode, u_ode = u.x - -# v = wrap_v(v_ode, system_index, system, semi) -# ekin = 0.0 -# for particle in each_moving_particle(system) -# velocity = current_velocity(v, system, particle) -# ekin += 0.5 * mass[particle] * dot(velocity, velocity) -# end -# return ekin -# end - -# function compute_pressure!(system, v, pp_values::Dict) -# (; state_equation, pressure, cache) = system - -# if haskey(pp_values, "dp") -# p_old = copy(system.pressure) -# compute_pressure!(system, v, pressure, state_equation) -# dp = p_old-system.pressure -# pp_values["dp"] = sqrt(dot(dp, dp)) -# cache.pp_update["dp"] = true -# else -# compute_pressure!(system, v, pressure, state_equation) -# end -# return system -# end - -# function pp_value(system, pp_key) -# if system.pp_values !== nothing -# if haskey(system.pp_values, pp_key) -# return system.cache.pp_update[pp_key], system.pp_values[pp_key] -# end -# end - -# return false, 0.0 -# end diff --git a/src/general/file_system.jl b/src/general/file_system.jl index 52cfa45e8..22f83942c 100644 --- a/src/general/file_system.jl +++ b/src/general/file_system.jl @@ -11,13 +11,12 @@ function get_unique_filename(base_name, extension) return filename end - vtkname(system::FluidSystem) = "fluid" vtkname(system::SolidSystem) = "solid" vtkname(system::BoundarySystem) = "boundary" function system_names(systems) - # Add `_i` to each system name, where `i` is the index of the corresponding + # Add `_i` to each system name, where `i` is the index of the corresponding # system type. # `["fluid", "boundary", "boundary"]` becomes `["fluid_1", "boundary_1", "boundary_2"]`. cnames = systems .|> vtkname @@ -25,3 +24,20 @@ function system_names(systems) for i in eachindex(cnames)] return filenames end + +function get_git_hash() + cmd = pipeline(`git rev-parse HEAD`, stdout=true, stderr=devnull) + result = run(cmd; wait=false) + git_hash = read(result.out, String) + success = wait(result) + + if success + return chomp(git_hash) + else + if occursin("not a git repository", git_hash) + return "Not a Git repository" + else + return "Git is not installed or not accessible" + end + end +end From 22d8789f3da69fd30b8e882b7c042187d2c49be2 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 5 Jan 2024 13:13:10 +0100 Subject: [PATCH 043/212] fix setting the interval --- examples/postprocess/rectangular_tank.jl | 9 +++--- src/callbacks/post_process.jl | 38 ++++++++++++++---------- 2 files changed, 28 insertions(+), 19 deletions(-) diff --git a/examples/postprocess/rectangular_tank.jl b/examples/postprocess/rectangular_tank.jl index 0a3a1adb1..fa81ead6f 100644 --- a/examples/postprocess/rectangular_tank.jl +++ b/examples/postprocess/rectangular_tank.jl @@ -1,10 +1,11 @@ using TrixiParticles # Any function can be implemented and will be called after each timestep! See example below: -a = function(pp, t, system, u, v, system_name) println("test_func ", t) end -example_cb = PostprocessCallback([a,]) +# a = function(pp, t, system, u, v, system_name) println("test_func ", t) end +# example_cb = PostprocessCallback([a,]) -pp_cb = PostprocessCallback([ a, +# see also the implementation for the functions calculate_ekin, calculate_total_mass,... +pp_cb = PostprocessCallback([ TrixiParticles.calculate_ekin, TrixiParticles.calculate_total_mass, TrixiParticles.max_pressure, @@ -13,7 +14,7 @@ pp_cb = PostprocessCallback([ a, TrixiParticles.max_density, TrixiParticles.min_density, TrixiParticles.avg_density, - ]) + ], interval=10) trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), pp_callback=pp_cb) diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index b5e260283..4d9337b24 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -21,13 +21,28 @@ end # TODO: implement exclude_bnd # TODO: include current git hash -function PostprocessCallback(func; interval=0, exclude_bnd=true) +function PostprocessCallback(func; interval::Integer=0, dt=0.0, exclude_bnd=true) + if dt > 0 && interval > 0 + throw(ArgumentError("Setting both interval and dt is not supported!")) + end + + if dt > 0 + interval = Float64(dt) + end + post_callback = PostprocessCallback(interval, -Inf, Dict{String, Vector{DataEntry}}(), exclude_bnd, func) - - DiscreteCallback(post_callback, post_callback, - save_positions=(false, false), - initialize=initialize_post_callback!) + if dt > 0 + # Add a `tstop` every `dt`, and save the final solution. + return PeriodicCallback(post_callback, dt, + initialize=initialize_post_callback!, + save_positions=(false, false)) + else + # The first one is the condition, the second the affect! + DiscreteCallback(post_callback, post_callback, + save_positions=(false, false), + initialize=initialize_post_callback!) + end end function Base.show(io::IO, cb::DiscreteCallback{<:Any, <:PostprocessCallback}) @@ -72,7 +87,7 @@ function initialize_post_callback!(cb::PostprocessCallback, u, t, integrator) end # condition with interval -function (pp::PostprocessCallback{Int, Any})(u, t, integrator) +function (pp::PostprocessCallback)(u, t, integrator) (; interval) = pp # With error-based step size control, some steps can be rejected. Thus, @@ -80,15 +95,8 @@ function (pp::PostprocessCallback{Int, Any})(u, t, integrator) # (total #steps) (#accepted steps) # We need to check the number of accepted steps since callbacks are not # activated after a rejected step. - return interval > 0 && ((integrator.stats.naccept % interval == 0) && - !(integrator.stats.naccept == 0 && integrator.iter > 0)) -end - -# condition with dt -function (pp::PostprocessCallback)(u, t, integrator) - (; interval, last_t) = pp - - return (t - last_t) > interval + return (interval > 0 && ((integrator.stats.naccept % interval == 0) && + !(integrator.stats.naccept == 0 && integrator.iter > 0))) || isfinished(integrator) end # affect! function for a single function From e5d2befdfbdc914f45991887aa4b73204afa0efb Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 5 Jan 2024 14:00:10 +0100 Subject: [PATCH 044/212] impl other functions --- examples/postprocess/rectangular_tank.jl | 2 +- src/callbacks/post_process.jl | 63 ++++++++++++++++++++++-- 2 files changed, 59 insertions(+), 6 deletions(-) diff --git a/examples/postprocess/rectangular_tank.jl b/examples/postprocess/rectangular_tank.jl index fa81ead6f..2db56c862 100644 --- a/examples/postprocess/rectangular_tank.jl +++ b/examples/postprocess/rectangular_tank.jl @@ -14,7 +14,7 @@ pp_cb = PostprocessCallback([ TrixiParticles.max_density, TrixiParticles.min_density, TrixiParticles.avg_density, - ], interval=10) + ], interval=25) trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), pp_callback=pp_cb) diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 4d9337b24..78a80c27a 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -21,6 +21,10 @@ end # TODO: implement exclude_bnd # TODO: include current git hash +# TODO: add description for each entry +# TODO: add filename +# TODO: add overwrite option +# TODO: option to save initial function PostprocessCallback(func; interval::Integer=0, dt=0.0, exclude_bnd=true) if dt > 0 && interval > 0 throw(ArgumentError("Setting both interval and dt is not supported!")) @@ -209,39 +213,88 @@ function test_function(pp, t, system, u, v, system_name) end function calculate_ekin(pp, t, system, u, v, system_name) - mass = system.mass - ekin = 0.0 for particle in each_moving_particle(system) velocity = current_velocity(v, system, particle) - ekin += 0.5 * mass[particle] * dot(velocity, velocity) + ekin += 0.5 * hydrodynamic_mass(system, particle) * dot(velocity, velocity) end add_entry!(pp, "ekin", t, ekin, system_name) end function calculate_total_mass(pp, t, system, u, v, system_name) - mass = system.mass total_mass = 0.0 for particle in each_moving_particle(system) - total_mass += mass[particle] + total_mass += hydrodynamic_mass(system, particle) end add_entry!(pp, "totalm", t, total_mass, system_name) end function max_pressure(pp, t, system, u, v, system_name) + max_p = 0.0 + for particle in each_moving_particle(system) + pressure = particle_pressure(v, system, particle) + if max_p < pressure + max_p = pressure + end + end + add_entry!(pp, "maxp", t, max_p, system_name) end function min_pressure(pp, t, system, u, v, system_name) + min_p = typemax(Int64) + for particle in each_moving_particle(system) + pressure = particle_pressure(v, system, particle) + if min_p > pressure + min_p = pressure + end + end + add_entry!(pp, "minp", t, min_p, system_name) end function avg_pressure(pp, t, system, u, v, system_name) + total_pressure = 0.0 + count = 0 + + for particle in each_moving_particle(system) + total_pressure += particle_pressure(v, system, particle) + count += 1 + end + + avg_p = count > 0 ? total_pressure / count : 0.0 + add_entry!(pp, "avgp", t, avg_p, system_name) end function max_density(pp, t, system, u, v, system_name) + max_rho = 0.0 + for particle in each_moving_particle(system) + rho = particle_density(v, system, particle) + if max_rho < rho + max_rho = rho + end + end + add_entry!(pp, "maxrho", t, max_rho, system_name) end function min_density(pp, t, system, u, v, system_name) + min_rho = typemax(Int64) + for particle in each_moving_particle(system) + rho = particle_density(v, system, particle) + if min_rho > rho + min_rho = rho + end + end + add_entry!(pp, "minrho", t, min_rho, system_name) end function avg_density(pp, t, system, u, v, system_name) + total_density = 0.0 + count = 0 + + for particle in each_moving_particle(system) + total_density += particle_density(v, system, particle) + count += 1 + end + + avg_rho = count > 0 ? total_density / count : 0.0 + add_entry!(pp, "avgp", t, avg_rho, system_name) end From 6136f7d2b21732349c894447f47df82e04f82b2f Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 16 Jan 2024 16:08:21 +0100 Subject: [PATCH 045/212] fix plots --- .../postprocessing/interpolation_plane.jl | 83 +++++++++++++++++++ ...olation.jl => interpolation_point_line.jl} | 1 + src/general/interpolation.jl | 25 +++--- 3 files changed, 96 insertions(+), 13 deletions(-) create mode 100644 examples/postprocessing/interpolation_plane.jl rename examples/postprocessing/{interpolation.jl => interpolation_point_line.jl} (98%) diff --git a/examples/postprocessing/interpolation_plane.jl b/examples/postprocessing/interpolation_plane.jl new file mode 100644 index 000000000..817a15aed --- /dev/null +++ b/examples/postprocessing/interpolation_plane.jl @@ -0,0 +1,83 @@ +# Example for using interpolation +####################################################################################### +using TrixiParticles +# this needs to be commented out to use PythonPlot +using Plots + +trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl")) + +# Interpolation parameters +interpolation_start = [0.0, 0.0] +interpolation_end = [1.0, 1.0] +resolution = 0.005 + +# Original plane +original_plane = interpolate_plane(interpolation_start, interpolation_end, resolution, semi, + fluid_system, sol) +original_x = [point[1] for point in original_plane.coord] +original_y = [point[2] for point in original_plane.coord] +original_density = original_plane.density + +# Plane with double smoothing length +double_smoothing_plane = interpolate_plane(interpolation_start, interpolation_end, + resolution, semi, fluid_system, sol, + smoothing_length=2.0 * smoothing_length) +double_x = [point[1] for point in double_smoothing_plane.coord] +double_y = [point[2] for point in double_smoothing_plane.coord] +double_density = double_smoothing_plane.density + +# Plane with half smoothing length +half_smoothing_plane = interpolate_plane(interpolation_start, interpolation_end, resolution, + semi, fluid_system, sol, + smoothing_length=0.5 * smoothing_length) +half_x = [point[1] for point in half_smoothing_plane.coord] +half_y = [point[2] for point in half_smoothing_plane.coord] +half_density = half_smoothing_plane.density + +# Instead of using Plots.jl one can also use PythonPlot which uses matplotlib +# using PythonPlot + +# # Initialize figure with three subplots +# fig, (subplot1, subplot2, subplot3) = subplots(1, 3, figsize=(15, 5)) + +# # Plot for original plane +# scatter1 = subplot1.scatter(original_x, original_y, c=original_density, cmap="viridis", +# marker="o", vmin=1000, vmax=1010) +# subplot1.set_xlabel("X Coordinate") +# subplot1.set_ylabel("Y Coordinate") +# subplot1.set_title("Density Distribution") +# fig.colorbar(scatter1, ax=subplot1, label="Density") + +# # Plot for plane with double smoothing length +# scatter2 = subplot2.scatter(double_x, double_y, c=double_density, cmap="viridis", +# marker="o", vmin=1000, vmax=1010) +# subplot2.set_xlabel("X Coordinate") +# subplot2.set_ylabel("Y Coordinate") +# subplot2.set_title("Density with 2x Smoothing Length") +# fig.colorbar(scatter2, ax=subplot2, label="Density") + +# # Plot for plane with half smoothing length +# scatter3 = subplot3.scatter(half_x, half_y, c=half_density, cmap="viridis", marker="o", +# vmin=1000, vmax=1010) +# subplot3.set_xlabel("X Coordinate") +# subplot3.set_ylabel("Y Coordinate") +# subplot3.set_title("Density with 0.5x Smoothing Length") +# fig.colorbar(scatter3, ax=subplot3, label="Density") + +# fig.subplots_adjust(left=0.1, right=0.9, bottom=0.1, top=0.9, wspace=0.4, hspace=0.4) +# plotshow() + +scatter1 = scatter(original_x, original_y, zcolor=original_density, marker=:circle, + cmap=:viridis, clim=(1000, 1010), colorbar=true) +scatter2 = scatter(double_x, double_y, zcolor=double_density, marker=:circle, cmap=:viridis, + clim=(1000, 1010), colorbar=true) +scatter3 = scatter(half_x, half_y, zcolor=half_density, marker=:circle, cmap=:viridis, + clim=(1000, 1010), colorbar=true) + +plot1 = plot(scatter1, xlabel="X Coordinate", ylabel="Y Coordinate", + title="Density Distribution", colorbar_title="Density") +plot2 = plot(scatter2, xlabel="X Coordinate", ylabel="Y Coordinate", + title="Density with 2x Smoothing Length", colorbar_title="Density") +plot3 = plot(scatter3, xlabel="X Coordinate", ylabel="Y Coordinate", + title="Density with 0.5x Smoothing Length", colorbar_title="Density") +combined_plot = plot(plot1, plot2, plot3, layout=(1, 3), size=(1500, 500)) diff --git a/examples/postprocessing/interpolation.jl b/examples/postprocessing/interpolation_point_line.jl similarity index 98% rename from examples/postprocessing/interpolation.jl rename to examples/postprocessing/interpolation_point_line.jl index 9d3161efa..46d4745b2 100644 --- a/examples/postprocessing/interpolation.jl +++ b/examples/postprocessing/interpolation_point_line.jl @@ -1,6 +1,7 @@ # Example for using interpolation ####################################################################################### using TrixiParticles +# this needs to be commented out to use PythonPlot using Plots trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl")) diff --git a/src/general/interpolation.jl b/src/general/interpolation.jl index 0c3db561a..6baea56d4 100644 --- a/src/general/interpolation.jl +++ b/src/general/interpolation.jl @@ -32,7 +32,7 @@ results = interpolate_plane([0.0, 0.0], [1.0, 1.0], 0.2, semi, ref_system, sol) """ function interpolate_plane(lower_left, top_right, resolution, semi, ref_system, sol; smoothing_length=ref_system.smoothing_length, - calculate_other_system_density=false) + cut_off_bnd=true) dims = length(lower_left) if dims != length(top_right) error("Dimensions of lower_left and top_right must match") @@ -54,21 +54,20 @@ function interpolate_plane(lower_left, top_right, resolution, semi, ref_system, y_range = range(lower_left[2], top_right[2], length=no_points_y) z_range = dims == 3 ? range(lower_left[3], top_right[3], length=no_points_z) : 1:1 - points_coords = dims == 2 ? [[x, y] for x in x_range, y in y_range] : - [[x, y, z] for x in x_range, y in y_range, z in z_range] + points_coords = dims == 2 ? [SVector(x, y) for x in x_range, y in y_range] : + [SVector(x, y, z) for x in x_range, y in y_range, z in z_range] - results = [] - for point in points_coords - result = interpolate_point(point, semi, ref_system, sol, - smoothing_length=smoothing_length, - calculate_other_system_density=calculate_other_system_density) - push!(results, result) - end + results = interpolate_point(points_coords, semi, ref_system, sol, + smoothing_length=smoothing_length, + cut_off_bnd=cut_off_bnd) + + # Find indices where neighbor_count > 0 + indices = findall(x -> x > 0, results.neighbor_count) - # Filter out results with neighbor_count of 0 - results = filter(r -> r.neighbor_count > 0, results) + # Filter all arrays in the named tuple using these indices + filtered_results = map(x -> x[indices], results) - return results + return filtered_results end @doc raw""" From 8cddffa560e30df36bac629a1e9a9b120cc1341b Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 16 Jan 2024 16:16:25 +0100 Subject: [PATCH 046/212] fix plots.jl plot --- .../postprocessing/interpolation_plane.jl | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/examples/postprocessing/interpolation_plane.jl b/examples/postprocessing/interpolation_plane.jl index 817a15aed..59dde16a2 100644 --- a/examples/postprocessing/interpolation_plane.jl +++ b/examples/postprocessing/interpolation_plane.jl @@ -3,6 +3,7 @@ using TrixiParticles # this needs to be commented out to use PythonPlot using Plots +using Plots.PlotMeasures trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl")) @@ -68,11 +69,14 @@ half_density = half_smoothing_plane.density # plotshow() scatter1 = scatter(original_x, original_y, zcolor=original_density, marker=:circle, - cmap=:viridis, clim=(1000, 1010), colorbar=true) -scatter2 = scatter(double_x, double_y, zcolor=double_density, marker=:circle, cmap=:viridis, - clim=(1000, 1010), colorbar=true) -scatter3 = scatter(half_x, half_y, zcolor=half_density, marker=:circle, cmap=:viridis, - clim=(1000, 1010), colorbar=true) + markersize=2, markercolor=:viridis, markerstrokewidth=0, + clim=(1000, 1010), colorbar=true, legend=false) +scatter2 = scatter(double_x, double_y, zcolor=double_density, marker=:circle, markersize=2, + markercolor=:viridis, markerstrokewidth=0, clim=(1000, 1010), + colorbar=true, legend=false) +scatter3 = scatter(half_x, half_y, zcolor=half_density, marker=:circle, markersize=2, + markercolor=:viridis, markerstrokewidth=0, clim=(1000, 1010), + colorbar=true, legend=false) plot1 = plot(scatter1, xlabel="X Coordinate", ylabel="Y Coordinate", title="Density Distribution", colorbar_title="Density") @@ -80,4 +84,8 @@ plot2 = plot(scatter2, xlabel="X Coordinate", ylabel="Y Coordinate", title="Density with 2x Smoothing Length", colorbar_title="Density") plot3 = plot(scatter3, xlabel="X Coordinate", ylabel="Y Coordinate", title="Density with 0.5x Smoothing Length", colorbar_title="Density") -combined_plot = plot(plot1, plot2, plot3, layout=(1, 3), size=(1500, 500)) + +combined_plot = plot(plot1, plot2, plot3, layout=(1, 3), size=(1800, 600)) + +plot!(combined_plot, margin=5mm) +display(combined_plot) From f4c220484127d51b9a895849c650fba84c6f0636 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 16 Jan 2024 16:20:00 +0100 Subject: [PATCH 047/212] cleanup --- examples/postprocessing/interpolation_plane.jl | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/examples/postprocessing/interpolation_plane.jl b/examples/postprocessing/interpolation_plane.jl index 59dde16a2..06df50141 100644 --- a/examples/postprocessing/interpolation_plane.jl +++ b/examples/postprocessing/interpolation_plane.jl @@ -85,7 +85,4 @@ plot2 = plot(scatter2, xlabel="X Coordinate", ylabel="Y Coordinate", plot3 = plot(scatter3, xlabel="X Coordinate", ylabel="Y Coordinate", title="Density with 0.5x Smoothing Length", colorbar_title="Density") -combined_plot = plot(plot1, plot2, plot3, layout=(1, 3), size=(1800, 600)) - -plot!(combined_plot, margin=5mm) -display(combined_plot) +combined_plot = plot(plot1, plot2, plot3, layout=(1, 3), size=(1800, 600), margin=5mm) From fb16b70550fd6d9a00c86fea6abd518d183478c6 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 16 Jan 2024 16:57:08 +0100 Subject: [PATCH 048/212] fix tests --- src/general/interpolation.jl | 2 +- test/general/interpolation.jl | 389 ++++++++++++++++++++++++++++++++++ 2 files changed, 390 insertions(+), 1 deletion(-) diff --git a/src/general/interpolation.jl b/src/general/interpolation.jl index 6baea56d4..b8a44f54c 100644 --- a/src/general/interpolation.jl +++ b/src/general/interpolation.jl @@ -40,7 +40,7 @@ function interpolate_plane(lower_left, top_right, resolution, semi, ref_system, # Check that lower_left is indeed lower and to the left of top_right for i in 1:dims - if lower_left[i] >= top_right[i] + if lower_left[i] > top_right[i] error("lower_left should be lower and to the left of top_right in all dimensions") end end diff --git a/test/general/interpolation.jl b/test/general/interpolation.jl index aaf4f700e..119900aba 100644 --- a/test/general/interpolation.jl +++ b/test/general/interpolation.jl @@ -1,3 +1,4 @@ +include("../test_util.jl") @testset verbose=true "SPH Interpolation" begin function compare_interpolation_result(actual, expected; tolerance=1e-8) @test length(actual.density) == length(expected.density) @@ -273,6 +274,214 @@ compare_interpolation_result(result, expected_res) compare_interpolation_result(result_endpoint, expected_res_end) end + @testset verbose=true "Interpolation Plane no boundary - cut_off_bnd = $(cut_off_bnd)" begin + interpolation_start = [0.0, 0.0] + interpolation_end = [1.0, 1.0] + resolution = 0.25 + + result = interpolate_plane(interpolation_start, interpolation_end, + resolution, semi_no_boundary, + fluid_system, sol_no_boundary) + + expected_res = (density=[ + 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, + 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, + 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, + 666.0, 666.0, 666.0, 666.0, + ], + neighbor_count=[ + 2, 2, 3, 2, 1, 4, 4, 4, 4, 2, 6, 4, 5, 4, 3, 4, 4, 4, + 3, 1, 5, 4, 6, 3, 1, + ], + coord=SVector{2, Float64}[[0.0, 0.0], [0.25, 0.0], + [0.5, 0.0], [0.75, 0.0], + [1.0, 0.0], [0.0, 0.25], + [0.25, 0.25], [0.5, 0.25], + [0.75, 0.25], [1.0, 0.25], + [0.0, 0.5], [0.25, 0.5], + [0.5, 0.5], [0.75, 0.5], + [1.0, 0.5], [0.0, 0.75], + [0.25, 0.75], [0.5, 0.75], + [0.75, 0.75], [1.0, 0.75], + [0.0, 1.0], [0.25, 1.0], + [0.5, 1.0], [0.75, 1.0], + [1.0, 1.0]], + velocity=SVector{2, Float64}[[5.0, 0.10100000000000002], + [ + 5.844853603211259, + 0.10099999999999999, + ], [6.5, 0.101], + [7.155146396788742, 0.101], + [7.7, 0.101], + [ + 5.000000000000001, + 0.10826471470948347, + ], + [ + 5.8376544066143845, + 0.10816872542152514, + ], + [ + 6.499999999999999, + 0.10807333490890002, + ], + [ + 7.162345593385616, + 0.10816872542152513, + ], + [7.7, 0.10826471470948347], + [ + 5.000000000000001, + 0.12501295337729817, + ], + [ + 5.8305001181675005, + 0.12504927969391108, + ], + [ + 6.499999999999998, + 0.12507142857142856, + ], + [ + 7.1694998818325, + 0.12504927969391108, + ], + [ + 7.700000000000002, + 0.12501295337729815, + ], + [ + 4.999999999999999, + 0.15194114116206617, + ], + [ + 5.837654406614385, + 0.15232509831389957, + ], + [ + 6.500000000000001, + 0.15270666036440003, + ], + [ + 7.160218593182242, + 0.1522116583030529, + ], + [7.7, 0.14900000000000002], + [5.0, 0.20035665520692278], + [5.84485360321126, 0.201], + [6.5, 0.20100000000000004], + [ + 7.128901370428878, + 0.2019633790142959, + ], + [7.7, 0.22100000000000006]], + pressure=[ + 0.19999999999999996, + 0.19999999999999996, + 0.19999999999999996, + 0.19999999999999996, + 0.19999999999999996, + 0.5632357354741733, + 0.5584362710762559, + 0.5536667454449997, + 0.5584362710762559, + 0.5632357354741733, + 1.0000000000000002, + 1.0, 0.9999999999999999, + 0.9999999999999999, + 1.0, 1.436764264525827, + 1.4415637289237442, + 1.4463332545550007, + 1.4401457287881612, + 1.4000000000000001, + 2.0, 2.0, + 2.0, 2.009633790142959, 2.2, + ]) + + compare_interpolation_result(result, expected_res) + + result = interpolate_plane(interpolation_start, interpolation_end, + resolution, semi_no_boundary, fluid_system, + sol_no_boundary, + smoothing_length=0.5 * smoothing_length) + expected_res = (density=[ + 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, + 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, + 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, + ], + neighbor_count=[ + 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, + 2, 2, 2, + ], + coord=SVector{2, Float64}[[0.25, 0.0], [0.5, 0.0], + [0.75, 0.0], [0.0, 0.25], + [0.25, 0.25], [0.5, 0.25], + [0.75, 0.25], [1.0, 0.25], + [0.0, 0.5], [0.25, 0.5], + [0.5, 0.5], [0.75, 0.5], + [1.0, 0.5], [0.0, 0.75], + [0.25, 0.75], [0.5, 0.75], + [0.75, 0.75], [1.0, 0.75], + [0.0, 1.0], [0.25, 1.0], + [0.5, 1.0], [0.75, 1.0]], + velocity=SVector{2, Float64}[[5.9, 0.101], + [6.499999999999999, 0.101], + [7.1000000000000005, 0.101], + [ + 4.999999999999994, + 0.10900000000000003, + ], [5.9, 0.10900000000000001], + [6.5, 0.109], + [ + 7.1000000000000005, + 0.10900000000000003, + ], [7.7, 0.10900000000000001], + [4.999999999999998, 0.125], + [5.9, 0.125], [6.5, 0.125], + [7.1, 0.125], [7.7, 0.125], + [ + 4.999999999999995, + 0.14900000000000002, + ], + [ + 5.900000000000001, + 0.14900000000000002, + ], [6.5, 0.14900000000000002], + [ + 7.1000000000000005, + 0.14900000000000002, + ], [7.7, 0.14900000000000002], + [5.0, 0.2], + [ + 5.8999999999999995, + 0.20099999999999962, + ], [6.5, 0.20099999999999985], + [ + 7.100000000000001, + 0.20099999999999968, + ]], + pressure=[ + 0.19999999999999996, + 0.19999999999999996, + 0.19999999999999996, + 0.6000000000000001, + 0.6000000000000001, + 0.6000000000000001, + 0.6000000000000001, + 0.6000000000000001, + 1.0, 1.0, 1.0, 1.0, + 1.0, 1.4000000000000004, + 1.4000000000000001, + 1.4000000000000001, + 1.4000000000000001, + 1.4000000000000001, + 2.0, 1.9999999999999962, + 1.9999999999999984, + 1.9999999999999967, + ]) + + compare_interpolation_result(result, expected_res) + end end for cut_off_bnd in [true, false] @@ -834,6 +1043,186 @@ compare_interpolation_result(result_multipoint, expected_multi) end + + @testset verbose=true "Interpolation Plane no boundary - cut_off_bnd = $(cut_off_bnd)" begin + interpolation_start = [0.0, 0.0, 0.0] + interpolation_end = [1.0, 1.0, 0.0] + resolution = 0.25 + + result = interpolate_plane(interpolation_start, interpolation_end, + resolution, semi_no_boundary, + fluid_system, sol_no_boundary) + + expected_res = (density=[ + 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, + 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, + 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, + 666.0, + ], + neighbor_count=[ + 4, 4, 2, 4, 2, 8, 8, 8, 8, 4, 4, 8, 10, 8, 2, 8, 8, 8, + 8, 4, 9, 8, 4, 8, 4, + ], + coord=SVector{3, Float64}[[0.0, 0.0, 0.0], [0.25, 0.0, 0.0], + [0.5, 0.0, 0.0], [0.75, 0.0, 0.0], + [1.0, 0.0, 0.0], [0.0, 0.25, 0.0], + [0.25, 0.25, 0.0], + [0.5, 0.25, 0.0], + [0.75, 0.25, 0.0], + [1.0, 0.25, 0.0], [0.0, 0.5, 0.0], + [0.25, 0.5, 0.0], [0.5, 0.5, 0.0], + [0.75, 0.5, 0.0], [1.0, 0.5, 0.0], + [0.0, 0.75, 0.0], + [0.25, 0.75, 0.0], + [0.5, 0.75, 0.0], + [0.75, 0.75, 0.0], + [1.0, 0.75, 0.0], [0.0, 1.0, 0.0], + [0.25, 1.0, 0.0], [0.5, 1.0, 0.0], + [0.75, 1.0, 0.0], + [1.0, 1.0, 0.0]], + velocity=SVector{3, Float64}[[ + 5.0, + 0.101, + -8.637243445401583e-17, + ], + [ + 5.869703392240257, + 0.10100000000000002, + -7.763803772221451e-17, + ], + [ + 6.5, + 0.101, + -3.9596915948450856e-17, + ], + [ + 7.130296607759746, + 0.10100000000000002, + -3.2202140646145757e-17, + ], + [ + 7.699999999999999, + 0.101, + -1.3637752808528745e-16, + ], + [ + 5.000000000000001, + 0.1085960452298701, + -9.528304629544531e-17, + ], + [ + 5.853637963202973, + 0.10838183950937298, + -8.467859459663407e-17, + ], + [ + 6.5, + 0.1082655290241629, + -6.305452968124059e-17, + ], + [ + 7.146362036797026, + 0.108381839509373, + -6.209763603753155e-17, + ], + [ + 7.7, + 0.10859604522987007, + -7.058003429292218e-17, + ], + [ + 5.0, + 0.125, + -7.070877847937661e-17, + ], + [ + 5.8449146768122135, + 0.12500442992503666, + -6.24387182432772e-17, + ], + [ + 6.499999999999999, + 0.12501291156520425, + -7.925383449471013e-17, + ], + [ + 7.1550853231877865, + 0.12500442992503663, + -4.262327463947848e-17, + ], + [ + 7.700000000000001, + 0.125, + -6.222372506185122e-17, + ], + [ + 5.000000000000001, + 0.15061581908051971, + -6.903609604276466e-17, + ], + [ + 5.853637963202973, + 0.15147264196250815, + -4.869019189306454e-17, + ], + [ + 6.5, + 0.15193788390334861, + -7.298505931417556e-17, + ], + [ + 7.146362036797025, + 0.15147264196250815, + -5.919990255544454e-17, + ], + [ + 7.700000000000001, + 0.15061581908051971, + -3.087876500315342e-17, + ], + [ + 5.0, + 0.20025646054622268, + -2.2734045974413372e-17, + ], + [ + 5.869703392240257, + 0.201, + -8.469604115150688e-17, + ], + [ + 6.5, + 0.201, + -7.070877847937661e-17, + ], + [ + 7.130296607759744, + 0.201, + -5.712571525583396e-17, + ], + [ + 7.699999999999998, + 0.20099999999999996, + -1.2273977527675892e-16, + ]], + pressure=[ + 0.19999999999999996, 0.19999999999999998, + 0.19999999999999996, + 0.19999999999999998, 0.19999999999999996, + 0.5798022614935039, + 0.5690919754686489, 0.5632764512081427, + 0.5690919754686488, + 0.5798022614935038, 1.0, 1.0, 1.0, 0.9999999999999997, + 1.0, + 1.4201977385064963, 1.4309080245313512, + 1.4367235487918577, + 1.430908024531351, 1.4201977385064966, 2.0, + 2.0000000000000004, + 2.0, 1.9999999999999998, 1.9999999999999998, + ]) + + compare_interpolation_result(result, expected_res) + end end end end From 1b450dd21e3920d4dd454311942304ab2c6f933a Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 16 Jan 2024 17:00:05 +0100 Subject: [PATCH 049/212] cleanup --- examples/fluid/rectangular_tank_2d.jl | 128 +------------------------- 1 file changed, 1 insertion(+), 127 deletions(-) diff --git a/examples/fluid/rectangular_tank_2d.jl b/examples/fluid/rectangular_tank_2d.jl index c34b15570..40ae9d2cc 100644 --- a/examples/fluid/rectangular_tank_2d.jl +++ b/examples/fluid/rectangular_tank_2d.jl @@ -1,6 +1,5 @@ using TrixiParticles using OrdinaryDiffEq -# using PyPlot # ========================================================================================== # ==== Resolution @@ -46,16 +45,12 @@ fluid_system = WeaklyCompressibleSPHSystem(tank.fluid, fluid_density_calculator, # ========================================================================================== # ==== Boundary -# to set a no-slip boundary condition a wall visosity needs to be defined -alpha = 0.2 -viscosity_wall = ViscosityAdami(nu=alpha * smoothing_length * sound_speed / 8) - boundary_density_calculator = AdamiPressureExtrapolation() boundary_model = BoundaryModelDummyParticles(tank.boundary.density, tank.boundary.mass, state_equation=state_equation, boundary_density_calculator, smoothing_kernel, smoothing_length, - viscosity=viscosity_wall) + viscosity=viscosity) # Uncomment to use repulsive boundary particles by Monaghan & Kajtar. # Also change spacing ratio and boundary layers (see comment above). @@ -88,124 +83,3 @@ sol = solve(ode, RDPK3SpFSAL49(), reltol=1e-3, # Default reltol is 1e-3 (may need to be tuned to prevent boundary penetration) dtmax=1e-2, # Limit stepsize to prevent crashing save_everystep=false, callback=callbacks); - -# # Example for using interpolation -# ####################################################################################### - -# # interpolate_point can be used to interpolate the properties of the 'fluid_system' with the original kernel and smoothing_length -# println(interpolate_point([1.0, 0.01], semi, fluid_system, sol)) -# # or with an increased smoothing_length smoothing the result -# println(interpolate_point([1.0, 0.01], semi, fluid_system, sol, -# smoothing_length=2.0 * smoothing_length)) - -# # a point outside of the domain will result in properties with value 0 -# # on the boundary a result can still be obtained -# println(interpolate_point([1.0, 0.0], semi, fluid_system, sol)) -# # slightly befind the result is 0 -# println(interpolate_point([1.0, -0.01], semi, fluid_system, sol)) - -# # multiple points can be interpolated by providing an array -# println(interpolate_point([ -# [1.0, 0.01], -# [1.0, 0.1], -# [1.0, 0.0], -# [1.0, -0.01], -# [1.0, -0.05], -# ], semi, fluid_system, sol)) - -# # # it is also possible to interpolate along a line -# result = interpolate_line([0.5, -0.05], [0.5, 1.0], 20, semi, fluid_system, sol) -# result_endpoint = interpolate_line([0.5, -0.05], [0.5, 1.0], 20, semi, fluid_system, sol, -# endpoint=false) -# # Extract densities and coordinates for plotting -# densities = [r.density for r in result] -# coords = [r.coord[2] for r in result] # Assuming you want to plot against the y-coordinate - -# densities_endpoint = [r.density for r in result_endpoint] -# coords_endpoint = [r.coord[2] for r in result_endpoint] - -# Create the plot -# figure() -# plot(coords, densities, marker="o", linestyle="-", label="With Endpoint") -# plot(coords_endpoint, densities_endpoint, marker="x", linestyle="--", -# label="Without Endpoint") - -# # Add labels and legend -# xlabel("Y-Coordinate") -# ylabel("Density") -# title("Density Interpolation Along a Line") -# legend() - -# # Display the plot -# show() - -# v_x = [r.velocity[1] for r in result] -# v_x_endpoint = [r.velocity[1] for r in result_endpoint] - -# figure() -# plot(v_x, coords, marker="o", linestyle="-", label="With Endpoint") -# plot(v_x_endpoint, coords_endpoint, marker="x", linestyle="--", -# label="Without Endpoint") - -# # Add labels and legend -# xlabel("Velocity-X") -# ylabel("Y-Coordinate") -# title("Velocity Interpolation Along a Line") -# legend() - -# # Display the plot -# show() - -# plane = interpolate_plane([0.0, 0.0], [1.0, 1.0], 0.005, semi, fluid_system, sol) - -# # Extracting densities and coordinates for plotting -# densities = [p.density for p in plane] -# x_coords = [p.coord[1] for p in plane] -# y_coords = [p.coord[2] for p in plane] - -# # Create the scatter plot -# scatter(x_coords, y_coords, c=densities, cmap="viridis", marker="o") - -# # Add colorbar, labels, and title -# colorbar(label="Density") -# xlabel("X Coordinate") -# ylabel("Y Coordinate") -# title("Density Distribution in Plane") - -# # Show the plot -# show() - -# plane = interpolate_plane([0.0, 0.0], [1.0, 1.0], 0.005, semi, fluid_system, sol, -# smoothing_length=2.0 * smoothing_length) - -# # Extracting densities and coordinates for plotting -# densities = [p.density for p in plane] -# x_coords = [p.coord[1] for p in plane] -# y_coords = [p.coord[2] for p in plane] - -# # Create the scatter plot -# scatter(x_coords, y_coords, c=densities, cmap="viridis", marker="o") - -# # Add colorbar, labels, and title -# colorbar(label="Density") -# xlabel("X Coordinate") -# ylabel("Y Coordinate") -# title("Density Distribution in Plane") - -# # Show the plot -# show() - -# # Extracting densities and coordinates for plotting -# velocity = [p.velocity[1] for p in plane] - -# # Create the scatter plot -# scatter(x_coords, y_coords, c=velocity, cmap="viridis", marker="o") - -# # Add colorbar, labels, and title -# colorbar(label="velocity_x") -# xlabel("X Coordinate") -# ylabel("Y Coordinate") -# title("Velocity Distribution in Plane") - -# # Show the plot -# show() From babdde0579cb2fdf4ed3b8817829b79f09f98598 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 16 Jan 2024 17:00:19 +0100 Subject: [PATCH 050/212] cleanup --- test/general/interpolation.jl | 1 - 1 file changed, 1 deletion(-) diff --git a/test/general/interpolation.jl b/test/general/interpolation.jl index 119900aba..84122e673 100644 --- a/test/general/interpolation.jl +++ b/test/general/interpolation.jl @@ -1,4 +1,3 @@ -include("../test_util.jl") @testset verbose=true "SPH Interpolation" begin function compare_interpolation_result(actual, expected; tolerance=1e-8) @test length(actual.density) == length(expected.density) From 3025102f1797408d283aa23f08fe306271e638e9 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 16 Jan 2024 17:08:58 +0100 Subject: [PATCH 051/212] fix docs --- .../postprocessing/interpolation_plane.jl | 9 ++++- src/general/interpolation.jl | 33 ++++++++++++------- 2 files changed, 29 insertions(+), 13 deletions(-) diff --git a/examples/postprocessing/interpolation_plane.jl b/examples/postprocessing/interpolation_plane.jl index 06df50141..c4e5b74e1 100644 --- a/examples/postprocessing/interpolation_plane.jl +++ b/examples/postprocessing/interpolation_plane.jl @@ -12,7 +12,8 @@ interpolation_start = [0.0, 0.0] interpolation_end = [1.0, 1.0] resolution = 0.005 -# Original plane +# We can interpolate a plane by providing the lower left and top right coordinates of a plane. +# Per default the same `smoothing_length` will be used as during the simulation. original_plane = interpolate_plane(interpolation_start, interpolation_end, resolution, semi, fluid_system, sol) original_x = [point[1] for point in original_plane.coord] @@ -20,6 +21,9 @@ original_y = [point[2] for point in original_plane.coord] original_density = original_plane.density # Plane with double smoothing length +# Using an higher `smoothing_length` will increase the amount of smoothing and will decrease +# the appearance of disturbances. At the same time it will also increase the distance at free surfaces +# at which the fluid is cut_off. double_smoothing_plane = interpolate_plane(interpolation_start, interpolation_end, resolution, semi, fluid_system, sol, smoothing_length=2.0 * smoothing_length) @@ -28,6 +32,9 @@ double_y = [point[2] for point in double_smoothing_plane.coord] double_density = double_smoothing_plane.density # Plane with half smoothing length +# Using a lower `smoothing_length` will decrease the amount of smoothing and will increase +# the appearance of disturbances. At the same time the fluid will be cut off more accurately +# at free surfaces. half_smoothing_plane = interpolate_plane(interpolation_start, interpolation_end, resolution, semi, fluid_system, sol, smoothing_length=0.5 * smoothing_length) diff --git a/src/general/interpolation.jl b/src/general/interpolation.jl index b8a44f54c..15e636360 100644 --- a/src/general/interpolation.jl +++ b/src/general/interpolation.jl @@ -1,14 +1,14 @@ @doc raw""" interpolate_plane(lower_left, top_right, resolution, semi, ref_system, sol; - smoothing_length=ref_system.smoothing_length) + smoothing_length=ref_system.smoothing_length, cut_off_bnd=true) -Interpolates properties across a plane or a volume in an SPH simulation environment. -The region for interpolation is defined by its lower left and top right corners, with a specified resolution determining the density of the interpolation points. +Interpolates properties across a plane or a volume in a TrixiParticles simulation. +The region for interpolation is defined by its lower left and top right corners, +with a specified resolution determining the density of the interpolation points. -The function generates a grid of points within the defined region, spaced uniformly according to the given resolution. In 2D, this grid lies within a plane, - while in 3D, it fills a volumetric space. The function can handle both 2D and 3D interpolations by adapting to the dimensionality of the provided corner coordinates. +The function generates a grid of points within the defined region, spaced uniformly according to the given resolution. -### Parameters: +# Arguments - `lower_left`: The lower left corner of the interpolation region. - `top_right`: The top right corner of the interpolation region. - `resolution`: The distance between adjacent interpolation points in the grid. @@ -17,14 +17,23 @@ The function generates a grid of points within the defined region, spaced unifor - `sol`: The solution state from which the properties are interpolated. - `smoothing_length`: Optional. The smoothing length used in the interpolation. Defaults to `ref_system.smoothing_length`. -### Returns: -An array of interpolated properties at each point within the defined region. Points with a neighbor count of 0 are excluded from the results. +# Keywords +- `cut_off_bnd`: `cut_off_bnd`: Boolean to indicate if quantities should be set to zero when a + point is "closer" to a boundary than to the fluid system + (see an explanation for "closer" below). Defaults to `true`. +- `smoothing_length`: The smoothing length used in the interpolation. Default is `ref_system.smoothing_length`. + +# Returns +- A `NamedTuple` of arrays containing interpolated properties at each point within the plane. !!! note - - This function is especially useful for analyzing spatial variations of properties within a specified region in the SPH simulation domain. - - The accuracy of the interpolation is influenced by the local particle density, the chosen smoothing length, and the resolution of the interpolation grid. + - This function is particularly useful for analyzing gradients or creating visualizations + along a specified line in the SPH simulation domain. + - The interpolation accuracy is subject to the density of particles and the chosen smoothing length. + - With `cut_off_bnd`, a density-based estimation of the surface is used which is not as + accurate as a real surface reconstruction. -## Example +# Examples ```julia # Interpolating across a plane from [0.0, 0.0] to [1.0, 1.0] with a resolution of 0.2 results = interpolate_plane([0.0, 0.0], [1.0, 1.0], 0.2, semi, ref_system, sol) @@ -74,7 +83,7 @@ end interpolate_line(start, end_, no_points, semi, ref_system, sol; endpoint=true, smoothing_length=ref_system.smoothing_length, cut_of_bnd=true) -Interpolates properties along a line in an TrixiParticles simulation. +Interpolates properties along a line in a TrixiParticles simulation. The line interpolation is accomplished by generating a series of evenly spaced points between `start` and `end_`. If `endpoint` is `false`, the line is interpolated between the start and end points, From bb57d18caf3250ef45f72ceba84ef226cba064aa Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 16 Jan 2024 17:09:35 +0100 Subject: [PATCH 052/212] fix doc --- src/general/interpolation.jl | 1 - 1 file changed, 1 deletion(-) diff --git a/src/general/interpolation.jl b/src/general/interpolation.jl index 15e636360..e0d6e1f6f 100644 --- a/src/general/interpolation.jl +++ b/src/general/interpolation.jl @@ -15,7 +15,6 @@ The function generates a grid of points within the defined region, spaced unifor - `semi`: The semidiscretization used for the simulation. - `ref_system`: The reference system for the interpolation. - `sol`: The solution state from which the properties are interpolated. -- `smoothing_length`: Optional. The smoothing length used in the interpolation. Defaults to `ref_system.smoothing_length`. # Keywords - `cut_off_bnd`: `cut_off_bnd`: Boolean to indicate if quantities should be set to zero when a From a865c41116ff9a9def764b00ceac168519e9bd3f Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 16 Jan 2024 18:08:11 +0100 Subject: [PATCH 053/212] remove unused func --- src/general/semidiscretization.jl | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/src/general/semidiscretization.jl b/src/general/semidiscretization.jl index 90911b55c..0c816add3 100644 --- a/src/general/semidiscretization.jl +++ b/src/general/semidiscretization.jl @@ -101,21 +101,6 @@ function create_neighborhood_search(system, neighbor, ::Val{GridNeighborhoodSear return search end -function create_neighborhood_search(u, system, nhs::GridNeighborhoodSearch, search_radius) - if nhs.periodic_box isa Nothing - search = GridNeighborhoodSearch{ndims(nhs)}(search_radius, nparticles(nhs)) - else - search = GridNeighborhoodSearch{ndims(nhs)}(search_radius, nparticles(nhs), - min_corner=nhs.periodic_box.min_corner, - max_corner=nhs.periodic_box.max_corner) - end - - # Initialize neighborhood search - initialize!(search, u) - - return search -end - @inline function compact_support(system, neighbor) (; smoothing_kernel, smoothing_length) = system return compact_support(smoothing_kernel, smoothing_length) From 073558c7fac0507614020b00a2f26a9f7589944f Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 16 Jan 2024 18:10:54 +0100 Subject: [PATCH 054/212] remove unused code --- src/general/system.jl | 2 -- src/neighborhood_search/neighborhood_search.jl | 4 ---- src/schemes/boundary/system.jl | 2 -- 3 files changed, 8 deletions(-) diff --git a/src/general/system.jl b/src/general/system.jl index dc2881b4d..b27b229e3 100644 --- a/src/general/system.jl +++ b/src/general/system.jl @@ -59,8 +59,6 @@ end @inline current_velocity(v, system, particle) = extract_svector(v, system, particle) -@inline pressure(system, particle) = system.pressure[particle] - @inline function current_acceleration(system, particle) # TODO: Return `dv` of solid particles return SVector(ntuple(_ -> 0.0, Val(ndims(system)))) diff --git a/src/neighborhood_search/neighborhood_search.jl b/src/neighborhood_search/neighborhood_search.jl index 798bf082d..e9062c5db 100644 --- a/src/neighborhood_search/neighborhood_search.jl +++ b/src/neighborhood_search/neighborhood_search.jl @@ -77,10 +77,6 @@ end end end -@inline function compute_periodic_distance(pos_diff, distance2, nhs) - compute_periodic_distance(pos_diff, distance2, nhs.search_radius, nhs.periodic_box) -end - @inline function compute_periodic_distance(pos_diff, distance2, search_radius, periodic_box::Nothing) return pos_diff, distance2 diff --git a/src/schemes/boundary/system.jl b/src/schemes/boundary/system.jl index 9f866b9ac..a5be4ab93 100644 --- a/src/schemes/boundary/system.jl +++ b/src/schemes/boundary/system.jl @@ -162,8 +162,6 @@ end return SVector(ntuple(_ -> 0.0, Val(ndims(system)))) end -@inline pressure(system::BoundarySPHSystem, particle) = system.boundary_model.pressure[particle] - @inline function current_acceleration(system::BoundarySPHSystem, particle) (; cache, ismoving) = system From 6b9bb1455e95a3549c8bcc8e751f7e4c4561123d Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 16 Jan 2024 20:49:20 +0100 Subject: [PATCH 055/212] fix --- examples/fluid/rectangular_tank_2d.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/fluid/rectangular_tank_2d.jl b/examples/fluid/rectangular_tank_2d.jl index 40ae9d2cc..951209851 100644 --- a/examples/fluid/rectangular_tank_2d.jl +++ b/examples/fluid/rectangular_tank_2d.jl @@ -35,7 +35,7 @@ smoothing_length = 1.2 * fluid_particle_spacing smoothing_kernel = SchoenbergCubicSplineKernel{2}() fluid_density_calculator = ContinuityDensity() -viscosity = ArtificialViscosityMonaghan(alpha=0.02, beta=0.0) +viscosity = ViscosityAdami(nu=1.0) fluid_system = WeaklyCompressibleSPHSystem(tank.fluid, fluid_density_calculator, state_equation, smoothing_kernel, From a99f4eebb0401b7841e2c04426f27aae34711cd4 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 18 Jan 2024 15:55:46 +0100 Subject: [PATCH 056/212] write missing values --- examples/solid/oscillating_beam_2d.jl | 9 +++------ src/visualization/write2vtk.jl | 2 ++ 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/examples/solid/oscillating_beam_2d.jl b/examples/solid/oscillating_beam_2d.jl index 56b09b011..f0164d49b 100644 --- a/examples/solid/oscillating_beam_2d.jl +++ b/examples/solid/oscillating_beam_2d.jl @@ -49,12 +49,9 @@ solid = union(beam, fixed_particles) smoothing_length = sqrt(2) * particle_spacing smoothing_kernel = SchoenbergCubicSplineKernel{2}() -solid_system = TotalLagrangianSPHSystem(solid, - smoothing_kernel, smoothing_length, - E, nu, - n_fixed_particles=nparticles(fixed_particles), - acceleration=(0.0, -gravity), - nothing) # No boundary model +solid_system = TotalLagrangianSPHSystem(solid, smoothing_kernel, smoothing_length, + E, nu, nothing, n_fixed_particles=nparticles(fixed_particles), + acceleration=(0.0, -gravity)) # ========================================================================================== # ==== Simulation diff --git a/src/visualization/write2vtk.jl b/src/visualization/write2vtk.jl index 11b88524a..1c7a53e2b 100644 --- a/src/visualization/write2vtk.jl +++ b/src/visualization/write2vtk.jl @@ -221,6 +221,8 @@ function write2vtk!(vtk, v, u, t, system::TotalLagrangianSPHSystem; write_meta_d vtk["poisson_ratio"] = system.poisson_ratio vtk["lame_lambda"] = system.lame_lambda vtk["lame_mu"] = system.lame_mu + vtk["smoothing_kernel"] = type2string(system.smoothing_kernel) + vtk["smoothing_length"] = system.smoothing_length write2vtk!(vtk, v, u, t, system.boundary_model, system, write_meta_data=write_meta_data) end From 3d8a6d32abfefb4be690258c0438feef0172023a Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 18 Jan 2024 16:27:26 +0100 Subject: [PATCH 057/212] replace incorrect nomenclature --- src/schemes/solid/total_lagrangian_sph/system.jl | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/schemes/solid/total_lagrangian_sph/system.jl b/src/schemes/solid/total_lagrangian_sph/system.jl index 2d8b2133d..f53c62331 100644 --- a/src/schemes/solid/total_lagrangian_sph/system.jl +++ b/src/schemes/solid/total_lagrangian_sph/system.jl @@ -282,8 +282,8 @@ end calc_deformation_grad!(deformation_grad, neighborhood_search, system) @threaded for particle in eachparticle(system) - J_particle = deformation_gradient(system, particle) - pk1_particle = pk1_stress_tensor(J_particle, system) + F_particle = deformation_gradient(system, particle) + pk1_particle = pk1_stress_tensor(F_particle, system) pk1_particle_corrected = pk1_particle * correction_matrix(system, particle) @inbounds for j in 1:ndims(system), i in 1:ndims(system) @@ -329,18 +329,18 @@ end end # First Piola-Kirchhoff stress tensor -@inline function pk1_stress_tensor(J, system) - S = pk2_stress_tensor(J, system) +@inline function pk1_stress_tensor(F, system) + S = pk2_stress_tensor(F, system) - return J * S + return F * S end # Second Piola-Kirchhoff stress tensor -@inline function pk2_stress_tensor(J, system) +@inline function pk2_stress_tensor(F, system) (; lame_lambda, lame_mu) = system # Compute the Green-Lagrange strain - E = 0.5 * (transpose(J) * J - I) + E = 0.5 * (transpose(F) * F - I) return lame_lambda * tr(E) * I + 2 * lame_mu * E end From e9ced790bd108eca62bf3255cae254bd1070afb1 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 18 Jan 2024 16:51:55 +0100 Subject: [PATCH 058/212] calc von mises stress --- .../solid/total_lagrangian_sph/system.jl | 27 +++++++++++++++++++ src/visualization/write2vtk.jl | 5 ++-- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/schemes/solid/total_lagrangian_sph/system.jl b/src/schemes/solid/total_lagrangian_sph/system.jl index f53c62331..b532c0439 100644 --- a/src/schemes/solid/total_lagrangian_sph/system.jl +++ b/src/schemes/solid/total_lagrangian_sph/system.jl @@ -425,3 +425,30 @@ end particle_system, neighbor, neighbor_system, boundary_model, density_calculator, correction) end + +function compute_von_mises_stress(system::TotalLagrangianSPHSystem) + von_mises_stress = zeros(eltype(system.pk1_corrected), nparticles(system)) + + @threaded for particle in each_moving_particle(system) + F = system.deformation_grad[:, :, particle] + J = det(F) + P = system.pk1_corrected[:, :, particle] + sigma = (1.0 / J) * P * F' + + # Calculate deviatoric stress tensor + s = sigma - (1.0 / 3.0) * tr(sigma) * I + + # Preparing to calculate Von Mises stress + sum_s = 0.0 + @inbounds for i in 1:ndims(system) + for j in 1:ndims(system) + sum_s += s[i, j] * s[i, j] + end + end + + # Von Mises stress + von_mises_stress[particle] = sqrt(3.0 / 2.0 * sum_s) + end + + return von_mises_stress +end diff --git a/src/visualization/write2vtk.jl b/src/visualization/write2vtk.jl index 1c7a53e2b..5423ea90f 100644 --- a/src/visualization/write2vtk.jl +++ b/src/visualization/write2vtk.jl @@ -214,8 +214,9 @@ end function write2vtk!(vtk, v, u, t, system::TotalLagrangianSPHSystem; write_meta_data=true) n_fixed_particles = nparticles(system) - n_moving_particles(system) - vtk["velocity"] = hcat(view(v, 1:ndims(system), :), - zeros(ndims(system), n_fixed_particles)) + vtk["velocity"] = hcat(view(v, 1:ndims(system), :), zeros(ndims(system), n_fixed_particles)) + vtk["jacobian"] = [det(system.deformation_grad[:,:,particle]) for particle in 1:nparticles(system)] + vtk["von_mises_stress"] = compute_von_mises_stress(system) vtk["material_density"] = system.material_density vtk["young_modulus"] = system.young_modulus vtk["poisson_ratio"] = system.poisson_ratio From e0af8ebe4903d89b30a0ee3f7452310537ef0d52 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 18 Jan 2024 16:54:58 +0100 Subject: [PATCH 059/212] rm comment --- src/schemes/solid/total_lagrangian_sph/system.jl | 1 - 1 file changed, 1 deletion(-) diff --git a/src/schemes/solid/total_lagrangian_sph/system.jl b/src/schemes/solid/total_lagrangian_sph/system.jl index b532c0439..32d59f456 100644 --- a/src/schemes/solid/total_lagrangian_sph/system.jl +++ b/src/schemes/solid/total_lagrangian_sph/system.jl @@ -438,7 +438,6 @@ function compute_von_mises_stress(system::TotalLagrangianSPHSystem) # Calculate deviatoric stress tensor s = sigma - (1.0 / 3.0) * tr(sigma) * I - # Preparing to calculate Von Mises stress sum_s = 0.0 @inbounds for i in 1:ndims(system) for j in 1:ndims(system) From 743cdade4661873543998c7c463420c8b74b592b Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 18 Jan 2024 16:55:34 +0100 Subject: [PATCH 060/212] format --- examples/solid/oscillating_beam_2d.jl | 3 ++- src/visualization/write2vtk.jl | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/examples/solid/oscillating_beam_2d.jl b/examples/solid/oscillating_beam_2d.jl index f0164d49b..6df8a8dee 100644 --- a/examples/solid/oscillating_beam_2d.jl +++ b/examples/solid/oscillating_beam_2d.jl @@ -50,7 +50,8 @@ smoothing_length = sqrt(2) * particle_spacing smoothing_kernel = SchoenbergCubicSplineKernel{2}() solid_system = TotalLagrangianSPHSystem(solid, smoothing_kernel, smoothing_length, - E, nu, nothing, n_fixed_particles=nparticles(fixed_particles), + E, nu, nothing, + n_fixed_particles=nparticles(fixed_particles), acceleration=(0.0, -gravity)) # ========================================================================================== diff --git a/src/visualization/write2vtk.jl b/src/visualization/write2vtk.jl index 5423ea90f..55a505a53 100644 --- a/src/visualization/write2vtk.jl +++ b/src/visualization/write2vtk.jl @@ -214,8 +214,10 @@ end function write2vtk!(vtk, v, u, t, system::TotalLagrangianSPHSystem; write_meta_data=true) n_fixed_particles = nparticles(system) - n_moving_particles(system) - vtk["velocity"] = hcat(view(v, 1:ndims(system), :), zeros(ndims(system), n_fixed_particles)) - vtk["jacobian"] = [det(system.deformation_grad[:,:,particle]) for particle in 1:nparticles(system)] + vtk["velocity"] = hcat(view(v, 1:ndims(system), :), + zeros(ndims(system), n_fixed_particles)) + vtk["jacobian"] = [det(system.deformation_grad[:, :, particle]) + for particle in 1:nparticles(system)] vtk["von_mises_stress"] = compute_von_mises_stress(system) vtk["material_density"] = system.material_density vtk["young_modulus"] = system.young_modulus From 043a90ece95875d60fd45fcd729d4e2a9096251b Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 18 Jan 2024 23:27:35 +0100 Subject: [PATCH 061/212] change docs to F --- src/schemes/solid/total_lagrangian_sph/system.jl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/schemes/solid/total_lagrangian_sph/system.jl b/src/schemes/solid/total_lagrangian_sph/system.jl index 32d59f456..cd560f6e4 100644 --- a/src/schemes/solid/total_lagrangian_sph/system.jl +++ b/src/schemes/solid/total_lagrangian_sph/system.jl @@ -33,15 +33,15 @@ The zero subscript on quantities denotes that the quantity is to be measured in The difference in the initial coordinates is denoted by $\bm{X}_{ab} = \bm{X}_a - \bm{X}_b$, the difference in the current coordinates is denoted by $\bm{x}_{ab} = \bm{x}_a - \bm{x}_b$. -For the computation of the PK1 stress tensor, the deformation gradient $\bm{J}$ is computed per particle as +For the computation of the PK1 stress tensor, the deformation gradient $\bm{F}$ is computed per particle as ```math -\bm{J}_a = \sum_b \frac{m_{0b}}{\rho_{0b}} \bm{x}_{ba} (\bm{L}_{0a}\nabla_{0a} W(\bm{X}_{ab}))^T \\ +\bm{F}_a = \sum_b \frac{m_{0b}}{\rho_{0b}} \bm{x}_{ba} (\bm{L}_{0a}\nabla_{0a} W(\bm{X}_{ab}))^T \\ \qquad = -\left(\sum_b \frac{m_{0b}}{\rho_{0b}} \bm{x}_{ab} (\nabla_{0a} W(\bm{X}_{ab}))^T \right) \bm{L}_{0a}^T ``` with $1 \leq i,j \leq d$. From the deformation gradient, the Green-Lagrange strain ```math -\bm{E} = \frac{1}{2}(\bm{J}^T\bm{J} - \bm{I}) +\bm{E} = \frac{1}{2}(\bm{F}^T\bm{F} - \bm{I}) ``` and the second Piola-Kirchhoff stress tensor ```math @@ -49,7 +49,7 @@ and the second Piola-Kirchhoff stress tensor ``` are computed to obtain the PK1 stress tensor as ```math -\bm{P} = \bm{J}\bm{S}. +\bm{P} = \bm{F}\bm{S}. ``` Here, From 4e01f489b58973db8f2be44c685993016b843fe9 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 19 Jan 2024 00:49:09 +0100 Subject: [PATCH 062/212] add test --- test/systems/solid_system.jl | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/test/systems/solid_system.jl b/test/systems/solid_system.jl index a486aac66..15159207d 100644 --- a/test/systems/solid_system.jl +++ b/test/systems/solid_system.jl @@ -335,4 +335,35 @@ @test v0 == velocity end + + @testset verbose=true "compute_von_mises_stress" begin + # System setup + coordinates = [1.0 2.0; 1.0 2.0] + velocity = zero(coordinates) + mass = [1.25, 1.5] + material_densities = [990.0, 1000.0] + smoothing_kernel = Val(:smoothing_kernel) + smoothing_length = 0.362 + nu = 0.25 # Poisson's ratio + E = 2.5 # Young's modulus + boundary_model = Val(:boundary_model) + + initial_condition = InitialCondition(; coordinates, velocity, mass, + density=material_densities) + system = TotalLagrangianSPHSystem(initial_condition, smoothing_kernel, + smoothing_length, E, nu, boundary_model) + + # Initialize deformation_grad and pk1_corrected with arbitrary values + n_particles = nparticles(system) + for particle in 1:n_particles + system.deformation_grad[:, :, particle] = [1.0 0.2; 0.2 1.0] + system.pk1_corrected[:, :, particle] = [1.0 0.5; 0.5 1.0] + end + + von_mises_stress = TrixiParticles.compute_von_mises_stress(system) + + # manual calculation + @test isapprox(von_mises_stress[1], 1.4257267477533202, atol=1e-14) + end + end From 2795bb30cfc5881be4738287f972061760f41778 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 19 Jan 2024 00:57:27 +0100 Subject: [PATCH 063/212] format --- test/systems/solid_system.jl | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/test/systems/solid_system.jl b/test/systems/solid_system.jl index 15159207d..ff90abac1 100644 --- a/test/systems/solid_system.jl +++ b/test/systems/solid_system.jl @@ -349,9 +349,9 @@ boundary_model = Val(:boundary_model) initial_condition = InitialCondition(; coordinates, velocity, mass, - density=material_densities) + density=material_densities) system = TotalLagrangianSPHSystem(initial_condition, smoothing_kernel, - smoothing_length, E, nu, boundary_model) + smoothing_length, E, nu, boundary_model) # Initialize deformation_grad and pk1_corrected with arbitrary values n_particles = nparticles(system) @@ -365,5 +365,4 @@ # manual calculation @test isapprox(von_mises_stress[1], 1.4257267477533202, atol=1e-14) end - end From d73dbe75cdffc4482ff2ce3e74174cfe1f0ba035 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 19 Jan 2024 01:48:20 +0100 Subject: [PATCH 064/212] fix merge --- src/general/general.jl | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/src/general/general.jl b/src/general/general.jl index 035857242..671ad5d94 100644 --- a/src/general/general.jl +++ b/src/general/general.jl @@ -1,12 +1,13 @@ abstract type System{NDIMS} end abstract type FluidSystem{NDIMS} <: System{NDIMS} end +timer_name(::FluidSystem) = "fluid" abstract type SolidSystem{NDIMS} <: System{NDIMS} end +timer_name(::SolidSystem) = "solid" abstract type BoundarySystem{NDIMS} <: System{NDIMS} end - -timer_name(::FluidSystem) = "fluid" +timer_name(::BoundarySystem) = "boundary" @inline function set_zero!(du) du .= zero(eltype(du)) @@ -14,17 +15,6 @@ timer_name(::FluidSystem) = "fluid" return du end -abstract type System{NDIMS} end - -abstract type FluidSystem{NDIMS} <: System{NDIMS} end -timer_name(::FluidSystem) = "fluid" - -abstract type SolidSystem{NDIMS} <: System{NDIMS} end -timer_name(::SolidSystem) = "solid" - -abstract type BoundarySystem{NDIMS} <: System{NDIMS} end -timer_name(::BoundarySystem) = "boundary" - # Note that `semidiscretization.jl` depends on the system types and has to be # included later. # `density_calculators.jl` needs to be included before `corrections.jl`. From 3671952504ffaf6b2b0ae2adc1798f7a52d94acc Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 19 Jan 2024 01:49:03 +0100 Subject: [PATCH 065/212] move files --- examples/{postprocess => postprocessing}/plot_json.jl | 0 examples/{postprocess => postprocessing}/rectangular_tank.jl | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename examples/{postprocess => postprocessing}/plot_json.jl (100%) rename examples/{postprocess => postprocessing}/rectangular_tank.jl (100%) diff --git a/examples/postprocess/plot_json.jl b/examples/postprocessing/plot_json.jl similarity index 100% rename from examples/postprocess/plot_json.jl rename to examples/postprocessing/plot_json.jl diff --git a/examples/postprocess/rectangular_tank.jl b/examples/postprocessing/rectangular_tank.jl similarity index 100% rename from examples/postprocess/rectangular_tank.jl rename to examples/postprocessing/rectangular_tank.jl From ff6bf1be0281e347196fb742231e629d2c89da71 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 19 Jan 2024 01:51:57 +0100 Subject: [PATCH 066/212] include exclude bnd --- src/callbacks/post_process.jl | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 78a80c27a..717e984b2 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -19,7 +19,6 @@ mutable struct PostprocessCallback{I, F} func::F end -# TODO: implement exclude_bnd # TODO: include current git hash # TODO: add description for each entry # TODO: add filename @@ -113,7 +112,7 @@ function (pp::PostprocessCallback{I, F})(integrator) where {I, F <: Function} filenames = system_names(semi.systems) foreach_system(semi) do system - if system isa BoundarySystem + if system isa BoundarySystem && pp.exclude_bnd return end From 5891e7fe244de727b5ad6fc9f2185a200fc27d4b Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 19 Jan 2024 02:12:15 +0100 Subject: [PATCH 067/212] add version info to meta data --- examples/postprocessing/rectangular_tank.jl | 2 +- src/callbacks/post_process.jl | 32 ++++++++++++++------- src/general/file_system.jl | 27 +++++++++++++---- src/visualization/write2vtk.jl | 5 ++++ 4 files changed, 49 insertions(+), 17 deletions(-) diff --git a/examples/postprocessing/rectangular_tank.jl b/examples/postprocessing/rectangular_tank.jl index 2db56c862..15d9c7cee 100644 --- a/examples/postprocessing/rectangular_tank.jl +++ b/examples/postprocessing/rectangular_tank.jl @@ -17,4 +17,4 @@ pp_cb = PostprocessCallback([ ], interval=25) trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), - pp_callback=pp_cb) + pp_callback=pp_cb); diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 717e984b2..9a6de3709 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -19,7 +19,6 @@ mutable struct PostprocessCallback{I, F} func::F end -# TODO: include current git hash # TODO: add description for each entry # TODO: add filename # TODO: add overwrite option @@ -158,8 +157,7 @@ end # This function prepares the data for writing to a JSON file by creating a dictionary # that maps each key to separate arrays of times and values, sorted by time, and includes system name. -function prepare_series_data(post_callback) - series_data = Dict() +function prepare_series_data!(data, post_callback) for (key, data_array) in post_callback.values # Sort the data_array by time @@ -172,16 +170,28 @@ function prepare_series_data(post_callback) # Assuming each DataEntry in sorted_data_array has a `system` field. system_name = isempty(sorted_data_array) ? "" : sorted_data_array[1].system - series_data[key] = create_series_dict(data_values, data_times, system_name) + data[key] = create_series_dict(data_values, data_times, system_name) end - return series_data + return data end function create_series_dict(values, times, system_name="") - Dict("type" => "series", "datatype" => eltype(values), - "novalues" => length(values), "values" => values, - "time" => times, "system_name" => system_name) + return Dict("type" => "series", + "datatype" => eltype(values), + "novalues" => length(values), + "system_name" => system_name, + "values" => values, + "time" => times) +end + +function meta_data!(data) + meta_data = Dict("solver_name" => "TrixiParticles.jl", + "solver_version" => get_git_hash(), + "julia_version" => get_julia_version()) + + data["meta"] = meta_data + return data end # After the simulation has finished, this function is called to write the data to a JSON file. @@ -190,12 +200,14 @@ function (pp::PostprocessCallback)(integrator, finished::Bool) return nothing end - series_data = prepare_series_data(pp) + data = Dict() + data = meta_data!(data) + data = prepare_series_data!(data, pp) filename = get_unique_filename("values", ".json") println("writing a postproccessing results to ", filename) open(filename, "w") do file - JSON.print(file, series_data, 4) + JSON.print(file, data, 4) end end diff --git a/src/general/file_system.jl b/src/general/file_system.jl index 22f83942c..2124aa686 100644 --- a/src/general/file_system.jl +++ b/src/general/file_system.jl @@ -26,18 +26,33 @@ function system_names(systems) end function get_git_hash() - cmd = pipeline(`git rev-parse HEAD`, stdout=true, stderr=devnull) - result = run(cmd; wait=false) - git_hash = read(result.out, String) - success = wait(result) + cmd = `git rev-parse HEAD` + out = IOBuffer() + err = IOBuffer() - if success + # Run the command and wait for it to complete + process = run(pipeline(cmd, stdout=out, stderr=err), wait=true) + + # Rewind the IOBuffers to read from the start + seekstart(out) + seekstart(err) + + git_hash = read(out, String) + git_error = read(err, String) + + # Check the exit code of the process + if process.exitcode == 0 return chomp(git_hash) else - if occursin("not a git repository", git_hash) + if occursin("not a git repository", git_error) return "Not a Git repository" else return "Git is not installed or not accessible" end end end + + +function get_julia_version() + return string(VERSION) +end diff --git a/src/visualization/write2vtk.jl b/src/visualization/write2vtk.jl index 0f33327f6..45c9115b9 100644 --- a/src/visualization/write2vtk.jl +++ b/src/visualization/write2vtk.jl @@ -94,6 +94,11 @@ function trixi2vtk(v, u, t, system, periodic_box; output_directory="out", prefix vtk["index"] = eachparticle(system) vtk["time"] = t + if write_meta_data + vtk["solver_version"] = get_git_hash() + vtk["julia_version"] = get_julia_version() + end + # Extract custom quantities for this system for (key, quantity) in custom_quantities value = custom_quantity(quantity, v, u, t, system) From 974859ec905f144fd098101e11eda7f66b38d9da Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 19 Jan 2024 02:54:52 +0100 Subject: [PATCH 068/212] fix --- src/callbacks/post_process.jl | 1 - src/general/file_system.jl | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 9a6de3709..45b36872b 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -19,7 +19,6 @@ mutable struct PostprocessCallback{I, F} func::F end -# TODO: add description for each entry # TODO: add filename # TODO: add overwrite option # TODO: option to save initial diff --git a/src/general/file_system.jl b/src/general/file_system.jl index 2124aa686..215160ad3 100644 --- a/src/general/file_system.jl +++ b/src/general/file_system.jl @@ -42,7 +42,7 @@ function get_git_hash() # Check the exit code of the process if process.exitcode == 0 - return chomp(git_hash) + return string(chomp(git_hash)) else if occursin("not a git repository", git_error) return "Not a Git repository" From 9afa33b1cbc38ff672ac3fa803f5fc49763be6c6 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 19 Jan 2024 03:02:11 +0100 Subject: [PATCH 069/212] add filename and overwrite --- src/callbacks/post_process.jl | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 45b36872b..7254a8b12 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -17,12 +17,12 @@ mutable struct PostprocessCallback{I, F} values::Dict{String, Vector{DataEntry}} exclude_bnd::Bool func::F + filename::String + overwrite::Bool end -# TODO: add filename -# TODO: add overwrite option # TODO: option to save initial -function PostprocessCallback(func; interval::Integer=0, dt=0.0, exclude_bnd=true) +function PostprocessCallback(func; interval::Integer=0, dt=0.0, exclude_bnd=true, filename="values", overwrite=true) if dt > 0 && interval > 0 throw(ArgumentError("Setting both interval and dt is not supported!")) end @@ -32,7 +32,7 @@ function PostprocessCallback(func; interval::Integer=0, dt=0.0, exclude_bnd=true end post_callback = PostprocessCallback(interval, -Inf, Dict{String, Vector{DataEntry}}(), - exclude_bnd, func) + exclude_bnd, func, filename, overwrite) if dt > 0 # Add a `tstop` every `dt`, and save the final solution. return PeriodicCallback(post_callback, dt, @@ -202,7 +202,12 @@ function (pp::PostprocessCallback)(integrator, finished::Bool) data = Dict() data = meta_data!(data) data = prepare_series_data!(data, pp) - filename = get_unique_filename("values", ".json") + + filename = pp.filename * ".json" + if !pp.overwrite + filename = get_unique_filename(pp.filename, ".json") + end + println("writing a postproccessing results to ", filename) open(filename, "w") do file From c69650a3b64de954d115b53bf270a0511af391e3 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 19 Jan 2024 03:07:58 +0100 Subject: [PATCH 070/212] write initial values --- src/callbacks/post_process.jl | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 7254a8b12..aa912e6ea 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -21,7 +21,6 @@ mutable struct PostprocessCallback{I, F} overwrite::Bool end -# TODO: option to save initial function PostprocessCallback(func; interval::Integer=0, dt=0.0, exclude_bnd=true, filename="values", overwrite=true) if dt > 0 && interval > 0 throw(ArgumentError("Setting both interval and dt is not supported!")) @@ -84,6 +83,14 @@ end function initialize_post_callback!(cb::PostprocessCallback, u, t, integrator) cb.last_t = t + # Write initial values. + if t < eps() + # Update systems to compute quantities like density and pressure. + semi = integrator.p + v_ode, u_ode = u.x + update_systems_and_nhs(v_ode, u_ode, semi, t) + cb(integrator) + end return nothing end From e91d529e667698858fee9e3cc4c351338cb9ba34 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 19 Jan 2024 03:08:09 +0100 Subject: [PATCH 071/212] format --- src/callbacks/post_process.jl | 21 +++++++++++---------- src/general/file_system.jl | 1 - 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index aa912e6ea..7e437220e 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -21,7 +21,8 @@ mutable struct PostprocessCallback{I, F} overwrite::Bool end -function PostprocessCallback(func; interval::Integer=0, dt=0.0, exclude_bnd=true, filename="values", overwrite=true) +function PostprocessCallback(func; interval::Integer=0, dt=0.0, exclude_bnd=true, + filename="values", overwrite=true) if dt > 0 && interval > 0 throw(ArgumentError("Setting both interval and dt is not supported!")) end @@ -40,8 +41,8 @@ function PostprocessCallback(func; interval::Integer=0, dt=0.0, exclude_bnd=true else # The first one is the condition, the second the affect! DiscreteCallback(post_callback, post_callback, - save_positions=(false, false), - initialize=initialize_post_callback!) + save_positions=(false, false), + initialize=initialize_post_callback!) end end @@ -104,7 +105,8 @@ function (pp::PostprocessCallback)(u, t, integrator) # We need to check the number of accepted steps since callbacks are not # activated after a rejected step. return (interval > 0 && ((integrator.stats.naccept % interval == 0) && - !(integrator.stats.naccept == 0 && integrator.iter > 0))) || isfinished(integrator) + !(integrator.stats.naccept == 0 && integrator.iter > 0))) || + isfinished(integrator) end # affect! function for a single function @@ -164,7 +166,6 @@ end # This function prepares the data for writing to a JSON file by creating a dictionary # that maps each key to separate arrays of times and values, sorted by time, and includes system name. function prepare_series_data!(data, post_callback) - for (key, data_array) in post_callback.values # Sort the data_array by time sorted_data_array = sort(data_array, by=data -> data.time) @@ -184,11 +185,11 @@ end function create_series_dict(values, times, system_name="") return Dict("type" => "series", - "datatype" => eltype(values), - "novalues" => length(values), - "system_name" => system_name, - "values" => values, - "time" => times) + "datatype" => eltype(values), + "novalues" => length(values), + "system_name" => system_name, + "values" => values, + "time" => times) end function meta_data!(data) diff --git a/src/general/file_system.jl b/src/general/file_system.jl index 215160ad3..247420712 100644 --- a/src/general/file_system.jl +++ b/src/general/file_system.jl @@ -52,7 +52,6 @@ function get_git_hash() end end - function get_julia_version() return string(VERSION) end From d81e4f954c964a13094b187f544ea62c7d62514d Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 19 Jan 2024 03:46:13 +0100 Subject: [PATCH 072/212] add helper function to obtain latest file --- examples/postprocessing/rectangular_tank.jl | 7 +++++-- src/general/file_system.jl | 20 ++++++++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/examples/postprocessing/rectangular_tank.jl b/examples/postprocessing/rectangular_tank.jl index 15d9c7cee..d07f7a92f 100644 --- a/examples/postprocessing/rectangular_tank.jl +++ b/examples/postprocessing/rectangular_tank.jl @@ -16,5 +16,8 @@ pp_cb = PostprocessCallback([ TrixiParticles.avg_density, ], interval=25) -trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), - pp_callback=pp_cb); +# trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), +# pp_callback=pp_cb); + +file = TrixiParticles.get_latest_unique_filename("/media/svenb/Extreme SSD/GIT/TrixParticles2/TrixiParticles.jl/", "values", ".json") +println(file) diff --git a/src/general/file_system.jl b/src/general/file_system.jl index 247420712..8ab98a3b0 100644 --- a/src/general/file_system.jl +++ b/src/general/file_system.jl @@ -11,6 +11,26 @@ function get_unique_filename(base_name, extension) return filename end +function get_latest_unique_filename(dir_path, base_name, extension) + files = readdir(dir_path) + extension_regex = startswith(extension, ".") ? escape_string(extension) : "\\." * escape_string(extension) + regex_pattern = "^" * escape_string(base_name) * "\\d*" * extension_regex * "\$" + + regex = Regex(regex_pattern) + + # Filter files based on the constructed regex + matching_files = filter(x -> occursin(regex, x), files) + + if isempty(matching_files) + println("No matching files found.") + return "" + end + + recent_file = sort(matching_files, by=x -> stat(joinpath(dir_path, x)).ctime, rev=true)[1] + file_path = joinpath(dir_path, recent_file) + return file_path +end + vtkname(system::FluidSystem) = "fluid" vtkname(system::SolidSystem) = "solid" vtkname(system::BoundarySystem) = "boundary" From 10f06582ad2847d5f9ffb0098d57a6d708f8bda0 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 19 Jan 2024 03:47:12 +0100 Subject: [PATCH 073/212] improve func --- src/general/file_system.jl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/general/file_system.jl b/src/general/file_system.jl index 8ab98a3b0..6b8935344 100644 --- a/src/general/file_system.jl +++ b/src/general/file_system.jl @@ -1,5 +1,8 @@ # This function creates a unique filename by appending a number to the base name if needed. function get_unique_filename(base_name, extension) + # Ensure the extension starts with a dot + extension = startswith(extension, ".") ? extension : "." * extension + filename = base_name * extension counter = 1 From b41ad2c5f80e65b71624fd83eb64c3dfa8a34953 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 19 Jan 2024 03:47:22 +0100 Subject: [PATCH 074/212] format --- examples/postprocessing/rectangular_tank.jl | 3 ++- src/general/file_system.jl | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/examples/postprocessing/rectangular_tank.jl b/examples/postprocessing/rectangular_tank.jl index d07f7a92f..eecd4c137 100644 --- a/examples/postprocessing/rectangular_tank.jl +++ b/examples/postprocessing/rectangular_tank.jl @@ -19,5 +19,6 @@ pp_cb = PostprocessCallback([ # trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), # pp_callback=pp_cb); -file = TrixiParticles.get_latest_unique_filename("/media/svenb/Extreme SSD/GIT/TrixParticles2/TrixiParticles.jl/", "values", ".json") +file = TrixiParticles.get_latest_unique_filename("/media/svenb/Extreme SSD/GIT/TrixParticles2/TrixiParticles.jl/", + "values", ".json") println(file) diff --git a/src/general/file_system.jl b/src/general/file_system.jl index 6b8935344..c36726da8 100644 --- a/src/general/file_system.jl +++ b/src/general/file_system.jl @@ -16,7 +16,8 @@ end function get_latest_unique_filename(dir_path, base_name, extension) files = readdir(dir_path) - extension_regex = startswith(extension, ".") ? escape_string(extension) : "\\." * escape_string(extension) + extension_regex = startswith(extension, ".") ? escape_string(extension) : + "\\." * escape_string(extension) regex_pattern = "^" * escape_string(base_name) * "\\d*" * extension_regex * "\$" regex = Regex(regex_pattern) From 8e851624ac9f9f9e9a99b4919fcae7ebdbad98ef Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 19 Jan 2024 11:55:13 +0100 Subject: [PATCH 075/212] fix plots --- examples/postprocessing/plot_json.jl | 114 -------------------- examples/postprocessing/rectangular_tank.jl | 78 ++++++++++++-- src/callbacks/post_process.jl | 12 +-- 3 files changed, 73 insertions(+), 131 deletions(-) delete mode 100644 examples/postprocessing/plot_json.jl diff --git a/examples/postprocessing/plot_json.jl b/examples/postprocessing/plot_json.jl deleted file mode 100644 index 5e7614e12..000000000 --- a/examples/postprocessing/plot_json.jl +++ /dev/null @@ -1,114 +0,0 @@ -function running_average(data::Vector{Float64}, window_size::Int) - @assert window_size>=1 "Window size for running average must be >= 1" - - cum_sum = cumsum(data) - cum_sum = vcat(zeros(window_size - 1), cum_sum) # prepend zeros - - # See above for an explanation of the parameter choice - sol = solve(ode, RDPK3SpFSAL49(), - abstol=1e-6, # Default abstol is 1e-6 (may need to be tuned to prevent boundary penetration) - reltol=1e-5, # Default reltol is 1e-3 (may need to be tuned to prevent boundary penetration) - dtmax=1e-2, # Limit stepsize to prevent crashing - save_everystep=false, callback=callbacks) - averaged_data = (cum_sum[window_size:end] - cum_sum[1:(end - window_size + 1)]) / - window_size - return averaged_data -end - -using GLM -using DataFrames - -function calculate_regression(data::Vector{Float64}, t::Vector{Float64}) - @assert length(data)==length(t) "Data and time vectors must have the same length" - - df = DataFrame(Y=data, T=t) - model = lm(@formula(Y~T), df) # Perform linear regression - - # Get the regression line values - trend = predict(model, df) - - # Extract the gradient of the trend line - gradient = coef(model)[2] - - return trend, gradient -end - -function plot_json_data(dir_path::AbstractString="") - if isempty(dir_path) - dir_path = pwd() - end - - files = readdir(dir_path) - json_files = filter(x -> occursin(r"^values(\d*).json$", x), files) - - if isempty(json_files) - println("No matching JSON files found.") - return - end - - recent_file = sort(json_files, by=x -> stat(joinpath(dir_path, x)).ctime, rev=true)[1] - file_path = joinpath(dir_path, recent_file) - - json_string = read(file_path, String) - json_data = JSON.parse(json_string) - - dt_series = json_data["dt"] - dt_values = Vector{Float64}(dt_series["values"]) - accumulated_dt = cumsum(dt_values) - - function plot_dt() - xlabel("T") - ylabel("dt") - title("dt") - yscale("log") - scatter(accumulated_dt, dt_values, s=4, color="blue", label="dt") - legend() - end - - subplot_number = 1 - for key in ["dp", "ekin"] - if haskey(json_data, key) - subplot_number += 1 - end - end - - figure(figsize=(10, 5 * subplot_number)) - - subplot(subplot_number, 1, 1) - plot_dt() - - subplot_index = 2 - for key in ["dp", "ekin"] - if haskey(json_data, key) - series = json_data[key] - values = Vector{Float64}(series["values"]) - - subplot(subplot_number, 1, subplot_index) - xlabel("T") - ylabel(key) - title(key) - scatter(accumulated_dt, values, s=4, label=key) - - if key == "ekin" # calculate and plot running average for ekin - window_size = 50 - averaged_ekin = running_average(values, window_size) - # println("Length of accumulated_dt: ", length(accumulated_dt)) - # println("Length of averaged_ekin: ", length(averaged_ekin)) - # println("Window size: ", window_size) - scatter(accumulated_dt, averaged_ekin, s=4, color="orange", - label="ekin (run. avg. windowsize = $window_size)") - - trend_line, gradient = calculate_regression(values, accumulated_dt) - plot(accumulated_dt, trend_line, label="trend (gradient=$gradient)", - color="red", linewidth=2) - end - - legend() - subplot_index += 1 - end - end - - show() -end - -plot_json_data() diff --git a/examples/postprocessing/rectangular_tank.jl b/examples/postprocessing/rectangular_tank.jl index eecd4c137..b26d7057f 100644 --- a/examples/postprocessing/rectangular_tank.jl +++ b/examples/postprocessing/rectangular_tank.jl @@ -1,4 +1,9 @@ using TrixiParticles +using JSON +using PythonPlot +using GLM +using DataFrames +using Printf # Any function can be implemented and will be called after each timestep! See example below: # a = function(pp, t, system, u, v, system_name) println("test_func ", t) end @@ -7,18 +12,69 @@ using TrixiParticles # see also the implementation for the functions calculate_ekin, calculate_total_mass,... pp_cb = PostprocessCallback([ TrixiParticles.calculate_ekin, - TrixiParticles.calculate_total_mass, TrixiParticles.max_pressure, - TrixiParticles.min_pressure, - TrixiParticles.avg_pressure, - TrixiParticles.max_density, - TrixiParticles.min_density, TrixiParticles.avg_density, - ], interval=25) + ], interval=10) -# trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), -# pp_callback=pp_cb); +trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), + pp_callback=pp_cb, tspan=(0.0, 5.0)); -file = TrixiParticles.get_latest_unique_filename("/media/svenb/Extreme SSD/GIT/TrixParticles2/TrixiParticles.jl/", - "values", ".json") -println(file) +function calculate_regression(data::Vector{Float64}, t::Vector{Float64}) + @assert length(data)==length(t) "Data and time vectors must have the same length" + + df = DataFrame(Y=data, T=t) + # Perform linear regression + model = lm(@formula(Y~T), df) + + # Get the regression line values + trend = predict(model, df) + + # Extract the gradient of the trend line + gradient = coef(model)[2] + + return trend, gradient +end + +file_path = TrixiParticles.get_latest_unique_filename(pwd(), "values", ".json") +json_string = read(file_path, String) +json_data = JSON.parse(json_string) + +time = Vector{Float64}(json_data["ekin_fluid_1"]["time"]) +ekin = Vector{Float64}(json_data["ekin_fluid_1"]["values"]) +tl_ekin, grad_ekin = calculate_regression(ekin, time) + +p_max = Vector{Float64}(json_data["max_p_fluid_1"]["values"]) +tl_p_max, grad_p_max = calculate_regression(p_max, time) + +avg_rho = Vector{Float64}(json_data["avg_rho_fluid_1"]["values"]) +tl_avg_rho, grad_avg_rho = calculate_regression(avg_rho, time) + +fig, (subplot1, subplot2, subplot3) = subplots(1, 3, figsize=(18, 5)) + +subplot1.plot(time, ekin, linestyle="-", label="sim") +subplot1.plot(time, tl_ekin, label="trend (gradient=$(@sprintf("%.5f", grad_ekin)))", + color="red", linewidth=2) +subplot1.set_xlabel("Time [s]") +subplot1.set_ylabel("kinetic energy [J]") +subplot1.set_title("Kinetic Energy of the Fluid") +subplot1.legend(loc="lower center", bbox_to_anchor=(0.5, -0.25), ncol=2, fancybox=true, shadow=true) + +subplot2.plot(time, p_max, linestyle="-", label="sim") +subplot2.plot(time, tl_p_max, label="trend (gradient=$(@sprintf("%.5f", grad_p_max)))", + color="red", linewidth=2) +subplot2.set_xlabel("Time [s]") +subplot2.set_ylabel("Max. Pressure [Pa]") +subplot2.set_title("Maximum Pressure of the Fluid") +subplot2.legend(loc="lower center", bbox_to_anchor=(0.5, -0.25), ncol=2, fancybox=true, shadow=true) + +subplot3.plot(time, avg_rho, linestyle="-", label="With Endpoint") +subplot3.plot(time, tl_avg_rho, label="trend (gradient=$(@sprintf("%.5f", grad_avg_rho)))", + color="red", linewidth=2) +subplot3.set_xlabel("Time [s]") +subplot3.set_ylabel("Avg. Density [kg/m^3]") +subplot3.set_title("Avg. Density of the Fluid") +subplot3.legend(loc="lower center", bbox_to_anchor=(0.5, -0.25), ncol=2, fancybox=true, shadow=true) + +fig.subplots_adjust(left=0.1, right=0.9, bottom=0.2, top=0.9, wspace=0.4, hspace=0.4) + +plotshow() diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 7e437220e..5eeb82352 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -260,7 +260,7 @@ function max_pressure(pp, t, system, u, v, system_name) max_p = pressure end end - add_entry!(pp, "maxp", t, max_p, system_name) + add_entry!(pp, "max_p", t, max_p, system_name) end function min_pressure(pp, t, system, u, v, system_name) @@ -271,7 +271,7 @@ function min_pressure(pp, t, system, u, v, system_name) min_p = pressure end end - add_entry!(pp, "minp", t, min_p, system_name) + add_entry!(pp, "min_p", t, min_p, system_name) end function avg_pressure(pp, t, system, u, v, system_name) @@ -284,7 +284,7 @@ function avg_pressure(pp, t, system, u, v, system_name) end avg_p = count > 0 ? total_pressure / count : 0.0 - add_entry!(pp, "avgp", t, avg_p, system_name) + add_entry!(pp, "avg_p", t, avg_p, system_name) end function max_density(pp, t, system, u, v, system_name) @@ -295,7 +295,7 @@ function max_density(pp, t, system, u, v, system_name) max_rho = rho end end - add_entry!(pp, "maxrho", t, max_rho, system_name) + add_entry!(pp, "max_rho", t, max_rho, system_name) end function min_density(pp, t, system, u, v, system_name) @@ -306,7 +306,7 @@ function min_density(pp, t, system, u, v, system_name) min_rho = rho end end - add_entry!(pp, "minrho", t, min_rho, system_name) + add_entry!(pp, "min_rho", t, min_rho, system_name) end function avg_density(pp, t, system, u, v, system_name) @@ -319,5 +319,5 @@ function avg_density(pp, t, system, u, v, system_name) end avg_rho = count > 0 ? total_density / count : 0.0 - add_entry!(pp, "avgp", t, avg_rho, system_name) + add_entry!(pp, "avg_rho", t, avg_rho, system_name) end From 95a1e48b2dc31c401c4f1ee7d4558d6145ecbf34 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 19 Jan 2024 11:56:01 +0100 Subject: [PATCH 076/212] rename --- .../{rectangular_tank.jl => investigate_relaxation.jl} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename examples/postprocessing/{rectangular_tank.jl => investigate_relaxation.jl} (100%) diff --git a/examples/postprocessing/rectangular_tank.jl b/examples/postprocessing/investigate_relaxation.jl similarity index 100% rename from examples/postprocessing/rectangular_tank.jl rename to examples/postprocessing/investigate_relaxation.jl From d603ebf1f20f440434975d5a4200f84ec00a6d68 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 19 Jan 2024 11:58:10 +0100 Subject: [PATCH 077/212] add doc --- src/callbacks/post_process.jl | 38 ++++++++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 5eeb82352..4cede59bc 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -7,9 +7,41 @@ struct DataEntry end """ - PostprocessCallback -This struct holds the values and time deltas (dt) collected during the simulation. The `values` field is a dictionary -that maps a string key to an array of `DataEntry` structs. The `dt` field is an array of time deltas. + PostprocessCallback(func; interval::Integer=0, dt=0.0, exclude_bnd=true, + filename="values", overwrite=true) + +Create a callback for post-processing simulation data at regular intervals. +This callback allows for the execution of a user-defined function `func` at specified intervals during the simulation. The function is applied to the current state of the simulation, and its results can be saved or used for further analysis. + +The callback can be triggered either by a fixed number of time steps (`interval`) or by a fixed interval of simulation time (`dt`). + +# Keywords +- `interval=0`: Specifies the number of time steps between each invocation of the callback. If set to `0`, the callback will not be triggered based on time steps. +- `dt=0.0`: Specifies the simulation time interval between each invocation of the callback. If set to `0.0`, the callback will not be triggered based on simulation time. +- `exclude_bnd=true`: If set to `true`, boundary particles will be excluded from the post-processing. +- `filename="values"`: The filename or path where the results of the post-processing will be saved. +- `overwrite=true`: If set to `true`, existing files with the same name as `filename` will be overwritten. + +# Behavior +- If both `interval` and `dt` are specified, an `ArgumentError` is thrown as only one mode of time control is allowed. +- If `dt` is specified and greater than `0`, the callback will be triggered at regular intervals of simulation time. +- If `interval` is specified and greater than `0`, the callback will be triggered every `interval` time steps. + +# Usage +The callback is designed to be used with simulation frameworks. The user-defined function `func` should take the current state of the simulation as input and return data for post-processing. + +# Examples +```julia +# Define a custom post-processing function +function my_postprocess_function(simulation_state) + # Custom processing code here +end + +# Create a callback that is triggered every 100 time steps +postprocess_callback = PostprocessCallback(my_postprocess_function, interval=100) + +# Create a callback that is triggered every 0.1 simulation time units +postprocess_callback = PostprocessCallback(my_postprocess_function, dt=0.1) """ mutable struct PostprocessCallback{I, F} interval::I From 10b70fdcd8fecc078c0c33e0f83a41d12c974fb0 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 19 Jan 2024 11:59:28 +0100 Subject: [PATCH 078/212] add exports --- src/TrixiParticles.jl | 1 + 1 file changed, 1 insertion(+) diff --git a/src/TrixiParticles.jl b/src/TrixiParticles.jl index 8061e95f1..60600297b 100644 --- a/src/TrixiParticles.jl +++ b/src/TrixiParticles.jl @@ -60,5 +60,6 @@ export ShepardKernelCorrection, KernelCorrection, AkinciFreeSurfaceCorrection, GradientCorrection, BlendedGradientCorrection, MixedKernelGradientCorrection export nparticles export interpolate_line, interpolate_point +export calculate_ekin, calculate_total_mass, max_pressure, min_pressure, avg_pressure, max_density, min_density, avg_density end # module From 69043c54b3ce31748d6f25b0a846fd81bc03475c Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 19 Jan 2024 12:00:04 +0100 Subject: [PATCH 079/212] cleanup --- examples/postprocessing/investigate_relaxation.jl | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/examples/postprocessing/investigate_relaxation.jl b/examples/postprocessing/investigate_relaxation.jl index b26d7057f..48461c74c 100644 --- a/examples/postprocessing/investigate_relaxation.jl +++ b/examples/postprocessing/investigate_relaxation.jl @@ -10,11 +10,7 @@ using Printf # example_cb = PostprocessCallback([a,]) # see also the implementation for the functions calculate_ekin, calculate_total_mass,... -pp_cb = PostprocessCallback([ - TrixiParticles.calculate_ekin, - TrixiParticles.max_pressure, - TrixiParticles.avg_density, - ], interval=10) +pp_cb = PostprocessCallback([calculate_ekin, max_pressure, avg_density,], interval=10) trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), pp_callback=pp_cb, tspan=(0.0, 5.0)); From ad313feab7d66b2be43d6be5f35d8fe9b8e4cad8 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 19 Jan 2024 12:00:23 +0100 Subject: [PATCH 080/212] cleanup --- src/callbacks/post_process.jl | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 4cede59bc..1c606abcf 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -263,10 +263,6 @@ function add_entry!(pp, entry_key, t, value, system_name) push!(entries, DataEntry(value, t, system_name)) end -function test_function(pp, t, system, u, v, system_name) - add_entry!(pp, "test", t, 2 * t, system_name) -end - function calculate_ekin(pp, t, system, u, v, system_name) ekin = 0.0 for particle in each_moving_particle(system) From 3863cccfaed779c8809eb3838ac46c582756cf0f Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 19 Jan 2024 12:00:38 +0100 Subject: [PATCH 081/212] format --- .../postprocessing/investigate_relaxation.jl | 19 +++++++++++-------- src/TrixiParticles.jl | 3 ++- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/examples/postprocessing/investigate_relaxation.jl b/examples/postprocessing/investigate_relaxation.jl index 48461c74c..d5f639fa3 100644 --- a/examples/postprocessing/investigate_relaxation.jl +++ b/examples/postprocessing/investigate_relaxation.jl @@ -10,7 +10,7 @@ using Printf # example_cb = PostprocessCallback([a,]) # see also the implementation for the functions calculate_ekin, calculate_total_mass,... -pp_cb = PostprocessCallback([calculate_ekin, max_pressure, avg_density,], interval=10) +pp_cb = PostprocessCallback([calculate_ekin, max_pressure, avg_density], interval=10) trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), pp_callback=pp_cb, tspan=(0.0, 5.0)); @@ -19,7 +19,7 @@ function calculate_regression(data::Vector{Float64}, t::Vector{Float64}) @assert length(data)==length(t) "Data and time vectors must have the same length" df = DataFrame(Y=data, T=t) - # Perform linear regression + # Perform linear regression model = lm(@formula(Y~T), df) # Get the regression line values @@ -49,27 +49,30 @@ fig, (subplot1, subplot2, subplot3) = subplots(1, 3, figsize=(18, 5)) subplot1.plot(time, ekin, linestyle="-", label="sim") subplot1.plot(time, tl_ekin, label="trend (gradient=$(@sprintf("%.5f", grad_ekin)))", - color="red", linewidth=2) + color="red", linewidth=2) subplot1.set_xlabel("Time [s]") subplot1.set_ylabel("kinetic energy [J]") subplot1.set_title("Kinetic Energy of the Fluid") -subplot1.legend(loc="lower center", bbox_to_anchor=(0.5, -0.25), ncol=2, fancybox=true, shadow=true) +subplot1.legend(loc="lower center", bbox_to_anchor=(0.5, -0.25), ncol=2, fancybox=true, + shadow=true) subplot2.plot(time, p_max, linestyle="-", label="sim") subplot2.plot(time, tl_p_max, label="trend (gradient=$(@sprintf("%.5f", grad_p_max)))", - color="red", linewidth=2) + color="red", linewidth=2) subplot2.set_xlabel("Time [s]") subplot2.set_ylabel("Max. Pressure [Pa]") subplot2.set_title("Maximum Pressure of the Fluid") -subplot2.legend(loc="lower center", bbox_to_anchor=(0.5, -0.25), ncol=2, fancybox=true, shadow=true) +subplot2.legend(loc="lower center", bbox_to_anchor=(0.5, -0.25), ncol=2, fancybox=true, + shadow=true) subplot3.plot(time, avg_rho, linestyle="-", label="With Endpoint") subplot3.plot(time, tl_avg_rho, label="trend (gradient=$(@sprintf("%.5f", grad_avg_rho)))", - color="red", linewidth=2) + color="red", linewidth=2) subplot3.set_xlabel("Time [s]") subplot3.set_ylabel("Avg. Density [kg/m^3]") subplot3.set_title("Avg. Density of the Fluid") -subplot3.legend(loc="lower center", bbox_to_anchor=(0.5, -0.25), ncol=2, fancybox=true, shadow=true) +subplot3.legend(loc="lower center", bbox_to_anchor=(0.5, -0.25), ncol=2, fancybox=true, + shadow=true) fig.subplots_adjust(left=0.1, right=0.9, bottom=0.2, top=0.9, wspace=0.4, hspace=0.4) diff --git a/src/TrixiParticles.jl b/src/TrixiParticles.jl index 60600297b..8bd979a11 100644 --- a/src/TrixiParticles.jl +++ b/src/TrixiParticles.jl @@ -60,6 +60,7 @@ export ShepardKernelCorrection, KernelCorrection, AkinciFreeSurfaceCorrection, GradientCorrection, BlendedGradientCorrection, MixedKernelGradientCorrection export nparticles export interpolate_line, interpolate_point -export calculate_ekin, calculate_total_mass, max_pressure, min_pressure, avg_pressure, max_density, min_density, avg_density +export calculate_ekin, calculate_total_mass, max_pressure, min_pressure, avg_pressure, + max_density, min_density, avg_density end # module From 93e33100e6ac2f9aa6e0c74af3ad663ecb721134 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 19 Jan 2024 13:32:11 +0100 Subject: [PATCH 082/212] working example --- validation/oscillating_beam_2d.jl | 96 +++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 validation/oscillating_beam_2d.jl diff --git a/validation/oscillating_beam_2d.jl b/validation/oscillating_beam_2d.jl new file mode 100644 index 000000000..0f6446216 --- /dev/null +++ b/validation/oscillating_beam_2d.jl @@ -0,0 +1,96 @@ +# Results are compared to the results in: +# +# P.N. Sun, D. Le Touzé, A.-M. Zhang. +# "Study of a complex fluid-structure dam-breaking benchmark problem using a multi-phase SPH method with APR". +# In: Engineering Analysis with Boundary Elements 104 (2019), pages 240-258. +# https://doi.org/10.1016/j.enganabound.2019.03.033 + +using TrixiParticles +using OrdinaryDiffEq +using PythonPlot +using JSON + +# ========================================================================================== +# ==== Resolution +n_particles_y = 5 + +# ========================================================================================== +# ==== Experiment Setup +gravity = 2.0 +tspan = (0.0, 5.0) + +length_beam = 0.35 +thickness = 0.02 +clamp_radius = 0.05 +material_density = 1000.0 + +# Young's modulus and Poisson ratio +E = 1.4e6 +nu = 0.4 + +# The structure starts at the position of the first particle and ends +# at the position of the last particle. +particle_spacing = thickness / (n_particles_y - 1) + +# Add particle_spacing/2 to the clamp_radius to ensure that particles are also placed on the radius +fixed_particles = SphereShape(particle_spacing, clamp_radius + particle_spacing / 2, + (0.0, thickness / 2), material_density, + cutout_min=(0.0, 0.0), cutout_max=(clamp_radius, thickness), + tlsph=true) + +n_particles_clamp_x = round(Int, clamp_radius / particle_spacing) + +# Beam and clamped particles +n_particles_per_dimension = (round(Int, length_beam / particle_spacing) + + n_particles_clamp_x + 1, n_particles_y) + +# Note that the `RectangularShape` puts the first particle half a particle spacing away +# from the boundary, which is correct for fluids, but not for solids. +# We therefore need to pass `tlsph=true`. +beam = RectangularShape(particle_spacing, n_particles_per_dimension, + (0.0, 0.0), density=material_density, tlsph=true) + +solid = union(beam, fixed_particles) + +# ========================================================================================== +# ==== Solid + +smoothing_length = sqrt(2) * particle_spacing +smoothing_kernel = SchoenbergCubicSplineKernel{2}() + +solid_system = TotalLagrangianSPHSystem(solid, + smoothing_kernel, smoothing_length, + E, nu, nothing, + n_fixed_particles=nparticles(fixed_particles), + acceleration=(0.0, -gravity)) + +# find points at the end of beam +beam_end_x = length_beam + clamp_radius +point_ids = [] +for particle in TrixiParticles.eachparticle(solid_system) + particle_coord = solid_system.current_coordinates[:, particle] + + if isapprox(particle_coord[1], beam_end_x, atol=1e-5) + push!(point_ids, particle) + end +end + +# ========================================================================================== +# ==== Simulation +semi = Semidiscretization(solid_system, neighborhood_search=GridNeighborhoodSearch) +ode = semidiscretize(semi, tspan) + +function particle_position(particle_id, pp, t, system, u, v, system_name) + TrixiParticles.add_entry!(pp, "pos_x_$particle_id", t, system.current_coordinates[1, particle_id], system_name) + TrixiParticles.add_entry!(pp, "pos_y_$particle_id", t, system.current_coordinates[2, particle_id], system_name) +end + +point_pos_func = [(pp, t, sys, u, v, sys_name) -> particle_position(point_id, pp, t, sys, u, v, sys_name) for point_id in point_ids] +pp_callback = PostprocessCallback(point_pos_func, interval=500, filename="oscillating_beam_2d_positions") +info_callback = InfoCallback(interval=500) +saving_callback = SolutionSavingCallback(dt=0.02, prefix="") + +callbacks = CallbackSet(info_callback, saving_callback, pp_callback) + +# Use a Runge-Kutta method with automatic (error based) time step size control +sol = solve(ode, RDPK3SpFSAL49(), save_everystep=false, callback=callbacks); From aa257351de2c54bbcfedefd4cd3be675a53d035d Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Sat, 20 Jan 2024 00:15:27 +0100 Subject: [PATCH 083/212] add plot --- validation/oscillating_beam_2d.jl | 213 ++++++++++++++++++------------ 1 file changed, 131 insertions(+), 82 deletions(-) diff --git a/validation/oscillating_beam_2d.jl b/validation/oscillating_beam_2d.jl index 0f6446216..7ecfd9d15 100644 --- a/validation/oscillating_beam_2d.jl +++ b/validation/oscillating_beam_2d.jl @@ -10,87 +10,136 @@ using OrdinaryDiffEq using PythonPlot using JSON -# ========================================================================================== -# ==== Resolution -n_particles_y = 5 - -# ========================================================================================== -# ==== Experiment Setup -gravity = 2.0 -tspan = (0.0, 5.0) - -length_beam = 0.35 -thickness = 0.02 -clamp_radius = 0.05 -material_density = 1000.0 - -# Young's modulus and Poisson ratio -E = 1.4e6 -nu = 0.4 - -# The structure starts at the position of the first particle and ends -# at the position of the last particle. -particle_spacing = thickness / (n_particles_y - 1) - -# Add particle_spacing/2 to the clamp_radius to ensure that particles are also placed on the radius -fixed_particles = SphereShape(particle_spacing, clamp_radius + particle_spacing / 2, - (0.0, thickness / 2), material_density, - cutout_min=(0.0, 0.0), cutout_max=(clamp_radius, thickness), - tlsph=true) - -n_particles_clamp_x = round(Int, clamp_radius / particle_spacing) - -# Beam and clamped particles -n_particles_per_dimension = (round(Int, length_beam / particle_spacing) + - n_particles_clamp_x + 1, n_particles_y) - -# Note that the `RectangularShape` puts the first particle half a particle spacing away -# from the boundary, which is correct for fluids, but not for solids. -# We therefore need to pass `tlsph=true`. -beam = RectangularShape(particle_spacing, n_particles_per_dimension, - (0.0, 0.0), density=material_density, tlsph=true) - -solid = union(beam, fixed_particles) - -# ========================================================================================== -# ==== Solid - -smoothing_length = sqrt(2) * particle_spacing -smoothing_kernel = SchoenbergCubicSplineKernel{2}() - -solid_system = TotalLagrangianSPHSystem(solid, - smoothing_kernel, smoothing_length, - E, nu, nothing, - n_fixed_particles=nparticles(fixed_particles), - acceleration=(0.0, -gravity)) - -# find points at the end of beam -beam_end_x = length_beam + clamp_radius -point_ids = [] -for particle in TrixiParticles.eachparticle(solid_system) - particle_coord = solid_system.current_coordinates[:, particle] - - if isapprox(particle_coord[1], beam_end_x, atol=1e-5) - push!(point_ids, particle) - end +# # ========================================================================================== +# # ==== Resolution +# n_particles_y = 5 + +# # ========================================================================================== +# # ==== Experiment Setup +# gravity = 2.0 +# tspan = (0.0, 5.0) + +# length_beam = 0.35 +# thickness = 0.02 +# clamp_radius = 0.05 +# material_density = 1000.0 + +# # Young's modulus and Poisson ratio +# E = 1.4e6 +# nu = 0.4 + +# # The structure starts at the position of the first particle and ends +# # at the position of the last particle. +# particle_spacing = thickness / (n_particles_y - 1) + +# # Add particle_spacing/2 to the clamp_radius to ensure that particles are also placed on the radius +# fixed_particles = SphereShape(particle_spacing, clamp_radius + particle_spacing / 2, +# (0.0, thickness / 2), material_density, +# cutout_min=(0.0, 0.0), cutout_max=(clamp_radius, thickness), +# tlsph=true) + +# n_particles_clamp_x = round(Int, clamp_radius / particle_spacing) + +# # Beam and clamped particles +# n_particles_per_dimension = (round(Int, length_beam / particle_spacing) + +# n_particles_clamp_x + 1, n_particles_y) + +# # Note that the `RectangularShape` puts the first particle half a particle spacing away +# # from the boundary, which is correct for fluids, but not for solids. +# # We therefore need to pass `tlsph=true`. +# beam = RectangularShape(particle_spacing, n_particles_per_dimension, +# (0.0, 0.0), density=material_density, tlsph=true) + +# solid = union(beam, fixed_particles) + +# # ========================================================================================== +# # ==== Solid + +# smoothing_length = sqrt(2) * particle_spacing +# smoothing_kernel = SchoenbergCubicSplineKernel{2}() + +# solid_system = TotalLagrangianSPHSystem(solid, +# smoothing_kernel, smoothing_length, +# E, nu, nothing, +# n_fixed_particles=nparticles(fixed_particles), +# acceleration=(0.0, -gravity)) + +# # find points at the end of beam +# beam_end_x = length_beam + clamp_radius +# point_ids = [] +# for particle in TrixiParticles.eachparticle(solid_system) +# particle_coord = solid_system.current_coordinates[:, particle] + +# if isapprox(particle_coord[1], beam_end_x, atol=1e-5) +# push!(point_ids, particle) +# end +# end + +# # ========================================================================================== +# # ==== Simulation +# semi = Semidiscretization(solid_system, neighborhood_search=GridNeighborhoodSearch) +# ode = semidiscretize(semi, tspan) + +# function particle_position(particle_id, pp, t, system, u, v, system_name) +# TrixiParticles.add_entry!(pp, "pos_x_$particle_id", t, system.current_coordinates[1, particle_id], system_name) +# TrixiParticles.add_entry!(pp, "pos_y_$particle_id", t, system.current_coordinates[2, particle_id], system_name) +# end + +# point_pos_func = [(pp, t, sys, u, v, sys_name) -> particle_position(point_id, pp, t, sys, u, v, sys_name) for point_id in point_ids] +# pp_callback = PostprocessCallback(point_pos_func, interval=10, filename="oscillating_beam_2d_positions") +# info_callback = InfoCallback(interval=500) +# saving_callback = SolutionSavingCallback(dt=0.02, prefix="") + +# callbacks = CallbackSet(info_callback, saving_callback, pp_callback) + +# # Use a Runge-Kutta method with automatic (error based) time step size control +# sol = solve(ode, RDPK3SpFSAL49(), save_everystep=false, callback=callbacks); + +json_data = JSON.parsefile("oscillating_beam_2d_positions.json") + +# Assuming the data is stored under a key like "pos_y_162_solid_1" +key_pattern_x = r"pos_x_\d+_solid_\d+" +key_pattern_y = r"pos_y_\d+_solid_\d+" + +matching_keys_x = sort(collect(filter(key -> occursin(key_pattern_x, key), keys(json_data)))) +matching_keys_y = sort(collect(filter(key -> occursin(key_pattern_y, key), keys(json_data)))) + +# Create subplots +fig, (ax1, ax2) = subplots(1, 2, figsize=(12, 5)) + +# Plot x-axis displacements +for key in matching_keys_x + data = json_data[key] + times = data["time"] + values = data["values"] + initial_position = values[1] + displacements = [value - initial_position for value in values] + ax1.plot(times, displacements, label=key) end - -# ========================================================================================== -# ==== Simulation -semi = Semidiscretization(solid_system, neighborhood_search=GridNeighborhoodSearch) -ode = semidiscretize(semi, tspan) - -function particle_position(particle_id, pp, t, system, u, v, system_name) - TrixiParticles.add_entry!(pp, "pos_x_$particle_id", t, system.current_coordinates[1, particle_id], system_name) - TrixiParticles.add_entry!(pp, "pos_y_$particle_id", t, system.current_coordinates[2, particle_id], system_name) +ax1.set_xlabel("Time [s]") +ax1.set_ylabel("X Displacement") +ax1.set_title("X-Axis Displacement") +ax1.legend(loc="upper left", bbox_to_anchor=(1, 1), fancybox=true, +shadow=true) + +# Plot y-axis displacements +for key in matching_keys_y + data = json_data[key] + times = data["time"] + values = data["values"] + initial_position = values[1] + displacements = [value - initial_position for value in values] + ax2.plot(times, displacements, label=key) end - -point_pos_func = [(pp, t, sys, u, v, sys_name) -> particle_position(point_id, pp, t, sys, u, v, sys_name) for point_id in point_ids] -pp_callback = PostprocessCallback(point_pos_func, interval=500, filename="oscillating_beam_2d_positions") -info_callback = InfoCallback(interval=500) -saving_callback = SolutionSavingCallback(dt=0.02, prefix="") - -callbacks = CallbackSet(info_callback, saving_callback, pp_callback) - -# Use a Runge-Kutta method with automatic (error based) time step size control -sol = solve(ode, RDPK3SpFSAL49(), save_everystep=false, callback=callbacks); +ax2.set_xlabel("Time [s]") +ax2.set_ylabel("Y Displacement") +ax2.set_title("Y-Axis Displacement") +ax2.legend(loc="upper left", bbox_to_anchor=(1, 1), fancybox=true, +shadow=true) + +# Adjust the margins and layout +subplots_adjust(right=0.7) +tight_layout() + +# Show the plot +plotshow() From 6e1d8053406eb90ef6c040a65be9efe910c16d8b Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Mon, 22 Jan 2024 01:57:38 +0100 Subject: [PATCH 084/212] also save the cauchy stress components --- src/schemes/solid/total_lagrangian_sph/system.jl | 16 ++++++++++++++++ src/visualization/write2vtk.jl | 8 ++++++++ 2 files changed, 24 insertions(+) diff --git a/src/schemes/solid/total_lagrangian_sph/system.jl b/src/schemes/solid/total_lagrangian_sph/system.jl index cd560f6e4..1dfdc3936 100644 --- a/src/schemes/solid/total_lagrangian_sph/system.jl +++ b/src/schemes/solid/total_lagrangian_sph/system.jl @@ -451,3 +451,19 @@ function compute_von_mises_stress(system::TotalLagrangianSPHSystem) return von_mises_stress end + +function compute_cauchy_stress(system::TotalLagrangianSPHSystem) + NDIMS = ndims(system) + + cauchy_stress_tensors = [zeros(eltype(system.pk1_corrected), NDIMS, NDIMS) for _ in 1:nparticles(system)] + + @threaded for particle in each_moving_particle(system) + F = system.deformation_grad[:, :, particle] + J = det(F) + P = system.pk1_corrected[:, :, particle] + sigma = (1.0 / J) * P * F' + cauchy_stress_tensors[particle] = sigma + end + + return cauchy_stress_tensors +end diff --git a/src/visualization/write2vtk.jl b/src/visualization/write2vtk.jl index 55a505a53..26182035d 100644 --- a/src/visualization/write2vtk.jl +++ b/src/visualization/write2vtk.jl @@ -219,6 +219,14 @@ function write2vtk!(vtk, v, u, t, system::TotalLagrangianSPHSystem; write_meta_d vtk["jacobian"] = [det(system.deformation_grad[:, :, particle]) for particle in 1:nparticles(system)] vtk["von_mises_stress"] = compute_von_mises_stress(system) + + cauchy_stress_tensor = compute_cauchy_stress(system) + vtk["sigma_11"] = [tensor[1, 1] for tensor in cauchy_stress_tensor] + vtk["sigma_22"] = [tensor[2, 2] for tensor in cauchy_stress_tensor] + if ndims(system) == 3 + vtk["sigma_33"] = [tensor[3, 3] for tensor in cauchy_stress_tensor] + end + vtk["material_density"] = system.material_density vtk["young_modulus"] = system.young_modulus vtk["poisson_ratio"] = system.poisson_ratio From 46661b490ab9f85c4d16edba9e547b686ac6b6c3 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Mon, 22 Jan 2024 01:57:56 +0100 Subject: [PATCH 085/212] format --- src/schemes/solid/total_lagrangian_sph/system.jl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/schemes/solid/total_lagrangian_sph/system.jl b/src/schemes/solid/total_lagrangian_sph/system.jl index 1dfdc3936..8f90b9f03 100644 --- a/src/schemes/solid/total_lagrangian_sph/system.jl +++ b/src/schemes/solid/total_lagrangian_sph/system.jl @@ -455,7 +455,8 @@ end function compute_cauchy_stress(system::TotalLagrangianSPHSystem) NDIMS = ndims(system) - cauchy_stress_tensors = [zeros(eltype(system.pk1_corrected), NDIMS, NDIMS) for _ in 1:nparticles(system)] + cauchy_stress_tensors = [zeros(eltype(system.pk1_corrected), NDIMS, NDIMS) + for _ in 1:nparticles(system)] @threaded for particle in each_moving_particle(system) F = system.deformation_grad[:, :, particle] From 769ca47ee8fbbb739dada38fe3debaa2f863d4ad Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Mon, 22 Jan 2024 17:39:10 +0100 Subject: [PATCH 086/212] fix dt --- .../postprocessing/investigate_relaxation.jl | 98 ++++++++++--------- src/callbacks/post_process.jl | 8 +- 2 files changed, 55 insertions(+), 51 deletions(-) diff --git a/examples/postprocessing/investigate_relaxation.jl b/examples/postprocessing/investigate_relaxation.jl index d5f639fa3..dddabcf30 100644 --- a/examples/postprocessing/investigate_relaxation.jl +++ b/examples/postprocessing/investigate_relaxation.jl @@ -10,10 +10,11 @@ using Printf # example_cb = PostprocessCallback([a,]) # see also the implementation for the functions calculate_ekin, calculate_total_mass,... -pp_cb = PostprocessCallback([calculate_ekin, max_pressure, avg_density], interval=10) +# pp_cb = PostprocessCallback([calculate_ekin, max_pressure, avg_density], interval=10) +pp_cb = PostprocessCallback([calculate_ekin, max_pressure, avg_density], dt=0.01) trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), - pp_callback=pp_cb, tspan=(0.0, 5.0)); + pp_callback=pp_cb, tspan=(0.0, 0.1)); function calculate_regression(data::Vector{Float64}, t::Vector{Float64}) @assert length(data)==length(t) "Data and time vectors must have the same length" @@ -32,48 +33,51 @@ function calculate_regression(data::Vector{Float64}, t::Vector{Float64}) end file_path = TrixiParticles.get_latest_unique_filename(pwd(), "values", ".json") -json_string = read(file_path, String) -json_data = JSON.parse(json_string) - -time = Vector{Float64}(json_data["ekin_fluid_1"]["time"]) -ekin = Vector{Float64}(json_data["ekin_fluid_1"]["values"]) -tl_ekin, grad_ekin = calculate_regression(ekin, time) - -p_max = Vector{Float64}(json_data["max_p_fluid_1"]["values"]) -tl_p_max, grad_p_max = calculate_regression(p_max, time) - -avg_rho = Vector{Float64}(json_data["avg_rho_fluid_1"]["values"]) -tl_avg_rho, grad_avg_rho = calculate_regression(avg_rho, time) - -fig, (subplot1, subplot2, subplot3) = subplots(1, 3, figsize=(18, 5)) - -subplot1.plot(time, ekin, linestyle="-", label="sim") -subplot1.plot(time, tl_ekin, label="trend (gradient=$(@sprintf("%.5f", grad_ekin)))", - color="red", linewidth=2) -subplot1.set_xlabel("Time [s]") -subplot1.set_ylabel("kinetic energy [J]") -subplot1.set_title("Kinetic Energy of the Fluid") -subplot1.legend(loc="lower center", bbox_to_anchor=(0.5, -0.25), ncol=2, fancybox=true, - shadow=true) - -subplot2.plot(time, p_max, linestyle="-", label="sim") -subplot2.plot(time, tl_p_max, label="trend (gradient=$(@sprintf("%.5f", grad_p_max)))", - color="red", linewidth=2) -subplot2.set_xlabel("Time [s]") -subplot2.set_ylabel("Max. Pressure [Pa]") -subplot2.set_title("Maximum Pressure of the Fluid") -subplot2.legend(loc="lower center", bbox_to_anchor=(0.5, -0.25), ncol=2, fancybox=true, - shadow=true) - -subplot3.plot(time, avg_rho, linestyle="-", label="With Endpoint") -subplot3.plot(time, tl_avg_rho, label="trend (gradient=$(@sprintf("%.5f", grad_avg_rho)))", - color="red", linewidth=2) -subplot3.set_xlabel("Time [s]") -subplot3.set_ylabel("Avg. Density [kg/m^3]") -subplot3.set_title("Avg. Density of the Fluid") -subplot3.legend(loc="lower center", bbox_to_anchor=(0.5, -0.25), ncol=2, fancybox=true, - shadow=true) - -fig.subplots_adjust(left=0.1, right=0.9, bottom=0.2, top=0.9, wspace=0.4, hspace=0.4) - -plotshow() +if file_path != "" + json_string = read(file_path, String) + json_data = JSON.parse(json_string) + + time = Vector{Float64}(json_data["ekin_fluid_1"]["time"]) + ekin = Vector{Float64}(json_data["ekin_fluid_1"]["values"]) + tl_ekin, grad_ekin = calculate_regression(ekin, time) + + p_max = Vector{Float64}(json_data["max_p_fluid_1"]["values"]) + tl_p_max, grad_p_max = calculate_regression(p_max, time) + + avg_rho = Vector{Float64}(json_data["avg_rho_fluid_1"]["values"]) + tl_avg_rho, grad_avg_rho = calculate_regression(avg_rho, time) + + fig, (subplot1, subplot2, subplot3) = subplots(1, 3, figsize=(18, 5)) + + subplot1.plot(time, ekin, linestyle="-", label="sim") + subplot1.plot(time, tl_ekin, label="trend (gradient=$(@sprintf("%.5f", grad_ekin)))", + color="red", linewidth=2) + subplot1.set_xlabel("Time [s]") + subplot1.set_ylabel("kinetic energy [J]") + subplot1.set_title("Kinetic Energy of the Fluid") + subplot1.legend(loc="lower center", bbox_to_anchor=(0.5, -0.25), ncol=2, fancybox=true, + shadow=true) + + subplot2.plot(time, p_max, linestyle="-", label="sim") + subplot2.plot(time, tl_p_max, label="trend (gradient=$(@sprintf("%.5f", grad_p_max)))", + color="red", linewidth=2) + subplot2.set_xlabel("Time [s]") + subplot2.set_ylabel("Max. Pressure [Pa]") + subplot2.set_title("Maximum Pressure of the Fluid") + subplot2.legend(loc="lower center", bbox_to_anchor=(0.5, -0.25), ncol=2, fancybox=true, + shadow=true) + + subplot3.plot(time, avg_rho, linestyle="-", label="With Endpoint") + subplot3.plot(time, tl_avg_rho, + label="trend (gradient=$(@sprintf("%.5f", grad_avg_rho)))", + color="red", linewidth=2) + subplot3.set_xlabel("Time [s]") + subplot3.set_ylabel("Avg. Density [kg/m^3]") + subplot3.set_title("Avg. Density of the Fluid") + subplot3.legend(loc="lower center", bbox_to_anchor=(0.5, -0.25), ncol=2, fancybox=true, + shadow=true) + + fig.subplots_adjust(left=0.1, right=0.9, bottom=0.2, top=0.9, wspace=0.4, hspace=0.4) + + plotshow() +end diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 1c606abcf..f8fcc9b94 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -69,12 +69,12 @@ function PostprocessCallback(func; interval::Integer=0, dt=0.0, exclude_bnd=true # Add a `tstop` every `dt`, and save the final solution. return PeriodicCallback(post_callback, dt, initialize=initialize_post_callback!, - save_positions=(false, false)) + save_positions=(false, false), final_affect=true) else # The first one is the condition, the second the affect! - DiscreteCallback(post_callback, post_callback, - save_positions=(false, false), - initialize=initialize_post_callback!) + return DiscreteCallback(post_callback, post_callback, + save_positions=(false, false), + initialize=initialize_post_callback!) end end From a9fbf6d978f21968bb226146bd7e4178df403cf2 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Mon, 22 Jan 2024 17:39:23 +0100 Subject: [PATCH 087/212] fix --- examples/postprocessing/investigate_relaxation.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/postprocessing/investigate_relaxation.jl b/examples/postprocessing/investigate_relaxation.jl index dddabcf30..65f9760d4 100644 --- a/examples/postprocessing/investigate_relaxation.jl +++ b/examples/postprocessing/investigate_relaxation.jl @@ -14,7 +14,7 @@ using Printf pp_cb = PostprocessCallback([calculate_ekin, max_pressure, avg_density], dt=0.01) trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), - pp_callback=pp_cb, tspan=(0.0, 0.1)); + pp_callback=pp_cb, tspan=(0.0, 5.0)); function calculate_regression(data::Vector{Float64}, t::Vector{Float64}) @assert length(data)==length(t) "Data and time vectors must have the same length" From 1893ae940c29cbe529e7b854eb5340fdf072d767 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Mon, 22 Jan 2024 17:40:57 +0100 Subject: [PATCH 088/212] fix --- examples/postprocessing/investigate_relaxation.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/postprocessing/investigate_relaxation.jl b/examples/postprocessing/investigate_relaxation.jl index 65f9760d4..8971c487e 100644 --- a/examples/postprocessing/investigate_relaxation.jl +++ b/examples/postprocessing/investigate_relaxation.jl @@ -11,7 +11,7 @@ using Printf # see also the implementation for the functions calculate_ekin, calculate_total_mass,... # pp_cb = PostprocessCallback([calculate_ekin, max_pressure, avg_density], interval=10) -pp_cb = PostprocessCallback([calculate_ekin, max_pressure, avg_density], dt=0.01) +pp_cb = PostprocessCallback([calculate_ekin, max_pressure, avg_density], dt=0.1) trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), pp_callback=pp_cb, tspan=(0.0, 5.0)); From 497bcd4f6bd64c28d40052e186aaaf7bdf8d1e45 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 23 Jan 2024 00:09:51 +0100 Subject: [PATCH 089/212] fix viscosity --- examples/fluid/rectangular_tank_2d.jl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/examples/fluid/rectangular_tank_2d.jl b/examples/fluid/rectangular_tank_2d.jl index 951209851..0feab0a53 100644 --- a/examples/fluid/rectangular_tank_2d.jl +++ b/examples/fluid/rectangular_tank_2d.jl @@ -35,7 +35,8 @@ smoothing_length = 1.2 * fluid_particle_spacing smoothing_kernel = SchoenbergCubicSplineKernel{2}() fluid_density_calculator = ContinuityDensity() -viscosity = ViscosityAdami(nu=1.0) +viscosity = ArtificialViscosityMonaghan(alpha=0.02, beta=0.0) +viscosity_wall = ViscosityAdami(nu=1.0) fluid_system = WeaklyCompressibleSPHSystem(tank.fluid, fluid_density_calculator, state_equation, smoothing_kernel, @@ -50,7 +51,7 @@ boundary_model = BoundaryModelDummyParticles(tank.boundary.density, tank.boundar state_equation=state_equation, boundary_density_calculator, smoothing_kernel, smoothing_length, - viscosity=viscosity) + viscosity=viscosity_wall) # Uncomment to use repulsive boundary particles by Monaghan & Kajtar. # Also change spacing ratio and boundary layers (see comment above). From 9486a047746ff630bd112ded6192bfcb6ca92f48 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 23 Jan 2024 03:24:25 +0100 Subject: [PATCH 090/212] working 3d example for plane interpolation --- examples/fluid/rectangular_tank_3d.jl | 9 +++ .../postprocessing/interpolation_plane.jl | 33 ++++++++-- src/TrixiParticles.jl | 2 +- src/general/interpolation.jl | 62 ++++++++++++++++--- 4 files changed, 92 insertions(+), 14 deletions(-) create mode 100644 examples/fluid/rectangular_tank_3d.jl diff --git a/examples/fluid/rectangular_tank_3d.jl b/examples/fluid/rectangular_tank_3d.jl new file mode 100644 index 000000000..46e94e527 --- /dev/null +++ b/examples/fluid/rectangular_tank_3d.jl @@ -0,0 +1,9 @@ +using TrixiParticles +using Plots + +trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), + fluid_particle_spacing=0.05, + initial_fluid_size=(2.0, 1.0, 0.9), + tank_size=(2.0, 1.0, 1.2), + acceleration=(0.0, 0.0, -9.81), + smoothing_kernel=SchoenbergCubicSplineKernel{3}(), tspan=(0.0, 1.0)) diff --git a/examples/postprocessing/interpolation_plane.jl b/examples/postprocessing/interpolation_plane.jl index c4e5b74e1..26e3fcb79 100644 --- a/examples/postprocessing/interpolation_plane.jl +++ b/examples/postprocessing/interpolation_plane.jl @@ -5,7 +5,8 @@ using TrixiParticles using Plots using Plots.PlotMeasures -trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl")) +trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), + tspan=(0.0, 0.1)) # Interpolation parameters interpolation_start = [0.0, 0.0] @@ -14,7 +15,7 @@ resolution = 0.005 # We can interpolate a plane by providing the lower left and top right coordinates of a plane. # Per default the same `smoothing_length` will be used as during the simulation. -original_plane = interpolate_plane(interpolation_start, interpolation_end, resolution, semi, +original_plane = interpolate_plane_2d(interpolation_start, interpolation_end, resolution, semi, fluid_system, sol) original_x = [point[1] for point in original_plane.coord] original_y = [point[2] for point in original_plane.coord] @@ -24,7 +25,7 @@ original_density = original_plane.density # Using an higher `smoothing_length` will increase the amount of smoothing and will decrease # the appearance of disturbances. At the same time it will also increase the distance at free surfaces # at which the fluid is cut_off. -double_smoothing_plane = interpolate_plane(interpolation_start, interpolation_end, +double_smoothing_plane = interpolate_plane_2d(interpolation_start, interpolation_end, resolution, semi, fluid_system, sol, smoothing_length=2.0 * smoothing_length) double_x = [point[1] for point in double_smoothing_plane.coord] @@ -35,7 +36,7 @@ double_density = double_smoothing_plane.density # Using a lower `smoothing_length` will decrease the amount of smoothing and will increase # the appearance of disturbances. At the same time the fluid will be cut off more accurately # at free surfaces. -half_smoothing_plane = interpolate_plane(interpolation_start, interpolation_end, resolution, +half_smoothing_plane = interpolate_plane_2d(interpolation_start, interpolation_end, resolution, semi, fluid_system, sol, smoothing_length=0.5 * smoothing_length) half_x = [point[1] for point in half_smoothing_plane.coord] @@ -92,4 +93,26 @@ plot2 = plot(scatter2, xlabel="X Coordinate", ylabel="Y Coordinate", plot3 = plot(scatter3, xlabel="X Coordinate", ylabel="Y Coordinate", title="Density with 0.5x Smoothing Length", colorbar_title="Density") -combined_plot = plot(plot1, plot2, plot3, layout=(1, 3), size=(1800, 600), margin=5mm) +trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_3d.jl"), + tspan=(0.0, 0.1)) + +# Interpolation parameters +p1 = [0.0, 0.0, 0.0] +p2 = [1.0, 1.0, 0.1] +p3 = [1.0, 0.5, 0.2] +resolution = 0.05 + +# We can also interpolate a 3D plane but in this case we have to provide 3 points instead! +original_plane = interpolate_plane_3d(p1, p2, p3, resolution, semi, + fluid_system, sol) +original_x = [point[1] for point in original_plane.coord] +original_y = [point[2] for point in original_plane.coord] +original_z = [point[3] for point in original_plane.coord] +original_density = original_plane.density + +scatter_3d = scatter3d(original_x, original_y, original_z, marker_z=original_density, + color=:viridis) + +plot_3d = plot(scatter_3d, xlabel="X", ylabel="Y", zlabel="Z", title="3D Scatter Plot with Density Coloring") + +combined_plot = plot(plot1, plot2, plot3, plot_3d, layout=(2, 2), size=(1000, 1000), margin=5mm) diff --git a/src/TrixiParticles.jl b/src/TrixiParticles.jl index 9f397fb74..434e4ef15 100644 --- a/src/TrixiParticles.jl +++ b/src/TrixiParticles.jl @@ -58,6 +58,6 @@ export VoxelSphere, RoundSphere, reset_wall! export ShepardKernelCorrection, KernelCorrection, AkinciFreeSurfaceCorrection, GradientCorrection, BlendedGradientCorrection, MixedKernelGradientCorrection export nparticles -export interpolate_line, interpolate_point, interpolate_plane +export interpolate_line, interpolate_point, interpolate_plane_3d, interpolate_plane_2d end # module diff --git a/src/general/interpolation.jl b/src/general/interpolation.jl index e0d6e1f6f..4beef4411 100644 --- a/src/general/interpolation.jl +++ b/src/general/interpolation.jl @@ -1,5 +1,5 @@ @doc raw""" - interpolate_plane(lower_left, top_right, resolution, semi, ref_system, sol; + interpolate_plane2D(lower_left, top_right, resolution, semi, ref_system, sol; smoothing_length=ref_system.smoothing_length, cut_off_bnd=true) Interpolates properties across a plane or a volume in a TrixiParticles simulation. @@ -38,12 +38,12 @@ The function generates a grid of points within the defined region, spaced unifor results = interpolate_plane([0.0, 0.0], [1.0, 1.0], 0.2, semi, ref_system, sol) ``` """ -function interpolate_plane(lower_left, top_right, resolution, semi, ref_system, sol; +function interpolate_plane_2d(lower_left, top_right, resolution, semi, ref_system, sol; smoothing_length=ref_system.smoothing_length, cut_off_bnd=true) dims = length(lower_left) - if dims != length(top_right) - error("Dimensions of lower_left and top_right must match") + if dims != 2 || length(top_right) != 2 + error("Function is intended for 2D coordinates only") end # Check that lower_left is indeed lower and to the left of top_right @@ -56,14 +56,12 @@ function interpolate_plane(lower_left, top_right, resolution, semi, ref_system, # Calculate the number of points in each dimension based on the resolution no_points_x = ceil(Int, (top_right[1] - lower_left[1]) / resolution) + 1 no_points_y = ceil(Int, (top_right[2] - lower_left[2]) / resolution) + 1 - no_points_z = dims == 3 ? ceil(Int, (top_right[3] - lower_left[3]) / resolution) + 1 : 1 x_range = range(lower_left[1], top_right[1], length=no_points_x) y_range = range(lower_left[2], top_right[2], length=no_points_y) - z_range = dims == 3 ? range(lower_left[3], top_right[3], length=no_points_z) : 1:1 - points_coords = dims == 2 ? [SVector(x, y) for x in x_range, y in y_range] : - [SVector(x, y, z) for x in x_range, y in y_range, z in z_range] + # Generate points within the plane + points_coords = [SVector(x, y) for x in x_range, y in y_range] results = interpolate_point(points_coords, semi, ref_system, sol, smoothing_length=smoothing_length, @@ -78,6 +76,54 @@ function interpolate_plane(lower_left, top_right, resolution, semi, ref_system, return filtered_results end + +function interpolate_plane_3d(point1, point2, point3, resolution, semi, ref_system, sol; + smoothing_length=ref_system.smoothing_length, + cut_off_bnd=true) + # Verify that points are in 3D space + if length(point1) != 3 || length(point2) != 3 || length(point3) != 3 + error("All points must be 3D coordinates") + end + + # Vectors defining the edges of the parallelogram + edge1 = point2 - point1 + edge2 = point3 - point1 + + # Check if the points are collinear + if norm(cross(edge1, edge2)) == 0 + error("The points must not be collinear") + end + + # Determine the number of points along each edge + num_points_edge1 = ceil(Int, norm(edge1) / resolution) + num_points_edge2 = ceil(Int, norm(edge2) / resolution) + + # Create a set of points on the plane + points_coords = [] + for i in 0:num_points_edge1 + for j in 0:num_points_edge2 + point_on_plane = point1 + (i / num_points_edge1) * edge1 + (j / num_points_edge2) * edge2 + push!(points_coords, point_on_plane) + end + end + + # Convert points_coords to an array of SVectors + svector_points = [SVector{3}(pt...) for pt in points_coords] + + # Interpolate using the generated points + results = interpolate_point(svector_points, semi, ref_system, sol, + smoothing_length=smoothing_length, + cut_off_bnd=cut_off_bnd) + + # Filter results + indices = findall(x -> x > 0, results.neighbor_count) + filtered_results = map(x -> x[indices], results) + + return filtered_results +end + + + @doc raw""" interpolate_line(start, end_, no_points, semi, ref_system, sol; endpoint=true, smoothing_length=ref_system.smoothing_length, cut_of_bnd=true) From 586f639ec1ecfc8c1b9c3252ca892240d686f0a3 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 23 Jan 2024 03:34:34 +0100 Subject: [PATCH 091/212] add 2d plot as well for 3d case --- .../postprocessing/interpolation_plane.jl | 37 +++++++++++++------ src/general/interpolation.jl | 10 ++--- 2 files changed, 29 insertions(+), 18 deletions(-) diff --git a/examples/postprocessing/interpolation_plane.jl b/examples/postprocessing/interpolation_plane.jl index 26e3fcb79..b8f649426 100644 --- a/examples/postprocessing/interpolation_plane.jl +++ b/examples/postprocessing/interpolation_plane.jl @@ -15,8 +15,9 @@ resolution = 0.005 # We can interpolate a plane by providing the lower left and top right coordinates of a plane. # Per default the same `smoothing_length` will be used as during the simulation. -original_plane = interpolate_plane_2d(interpolation_start, interpolation_end, resolution, semi, - fluid_system, sol) +original_plane = interpolate_plane_2d(interpolation_start, interpolation_end, resolution, + semi, + fluid_system, sol) original_x = [point[1] for point in original_plane.coord] original_y = [point[2] for point in original_plane.coord] original_density = original_plane.density @@ -26,8 +27,8 @@ original_density = original_plane.density # the appearance of disturbances. At the same time it will also increase the distance at free surfaces # at which the fluid is cut_off. double_smoothing_plane = interpolate_plane_2d(interpolation_start, interpolation_end, - resolution, semi, fluid_system, sol, - smoothing_length=2.0 * smoothing_length) + resolution, semi, fluid_system, sol, + smoothing_length=2.0 * smoothing_length) double_x = [point[1] for point in double_smoothing_plane.coord] double_y = [point[2] for point in double_smoothing_plane.coord] double_density = double_smoothing_plane.density @@ -36,9 +37,10 @@ double_density = double_smoothing_plane.density # Using a lower `smoothing_length` will decrease the amount of smoothing and will increase # the appearance of disturbances. At the same time the fluid will be cut off more accurately # at free surfaces. -half_smoothing_plane = interpolate_plane_2d(interpolation_start, interpolation_end, resolution, - semi, fluid_system, sol, - smoothing_length=0.5 * smoothing_length) +half_smoothing_plane = interpolate_plane_2d(interpolation_start, interpolation_end, + resolution, + semi, fluid_system, sol, + smoothing_length=0.5 * smoothing_length) half_x = [point[1] for point in half_smoothing_plane.coord] half_y = [point[2] for point in half_smoothing_plane.coord] half_density = half_smoothing_plane.density @@ -100,19 +102,30 @@ trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_3 p1 = [0.0, 0.0, 0.0] p2 = [1.0, 1.0, 0.1] p3 = [1.0, 0.5, 0.2] -resolution = 0.05 +resolution = 0.025 # We can also interpolate a 3D plane but in this case we have to provide 3 points instead! original_plane = interpolate_plane_3d(p1, p2, p3, resolution, semi, - fluid_system, sol) + fluid_system, sol) original_x = [point[1] for point in original_plane.coord] original_y = [point[2] for point in original_plane.coord] original_z = [point[3] for point in original_plane.coord] original_density = original_plane.density scatter_3d = scatter3d(original_x, original_y, original_z, marker_z=original_density, - color=:viridis) + color=:viridis, legend=false) -plot_3d = plot(scatter_3d, xlabel="X", ylabel="Y", zlabel="Z", title="3D Scatter Plot with Density Coloring") +plot_3d = plot(scatter_3d, xlabel="X", ylabel="Y", zlabel="Z", + title="3D Scatter Plot with Density Coloring") -combined_plot = plot(plot1, plot2, plot3, plot_3d, layout=(2, 2), size=(1000, 1000), margin=5mm) +# by ignoring the z coordinate we can also plot this into a 2D plane +scatter_3d_in_2d = scatter(original_x, original_y, zcolor=original_density, + marker=:circle, markersize=4, + markercolor=:viridis, markerstrokewidth=0, clim=(1000, 1010), + colorbar=true, legend=false) + +plot_3d_in_2d = plot(scatter_3d_in_2d, xlabel="X", ylabel="Y", zlabel="Z", + title="3D in 2D Scatter Plot") + +combined_plot = plot(plot1, plot2, plot3, plot_3d, plot_3d_in_2d, layout=(3, 2), + size=(1000, 1500), margin=5mm) diff --git a/src/general/interpolation.jl b/src/general/interpolation.jl index 4beef4411..0a6de6322 100644 --- a/src/general/interpolation.jl +++ b/src/general/interpolation.jl @@ -39,8 +39,8 @@ results = interpolate_plane([0.0, 0.0], [1.0, 1.0], 0.2, semi, ref_system, sol) ``` """ function interpolate_plane_2d(lower_left, top_right, resolution, semi, ref_system, sol; - smoothing_length=ref_system.smoothing_length, - cut_off_bnd=true) + smoothing_length=ref_system.smoothing_length, + cut_off_bnd=true) dims = length(lower_left) if dims != 2 || length(top_right) != 2 error("Function is intended for 2D coordinates only") @@ -76,7 +76,6 @@ function interpolate_plane_2d(lower_left, top_right, resolution, semi, ref_syste return filtered_results end - function interpolate_plane_3d(point1, point2, point3, resolution, semi, ref_system, sol; smoothing_length=ref_system.smoothing_length, cut_off_bnd=true) @@ -102,7 +101,8 @@ function interpolate_plane_3d(point1, point2, point3, resolution, semi, ref_syst points_coords = [] for i in 0:num_points_edge1 for j in 0:num_points_edge2 - point_on_plane = point1 + (i / num_points_edge1) * edge1 + (j / num_points_edge2) * edge2 + point_on_plane = point1 + (i / num_points_edge1) * edge1 + + (j / num_points_edge2) * edge2 push!(points_coords, point_on_plane) end end @@ -122,8 +122,6 @@ function interpolate_plane_3d(point1, point2, point3, resolution, semi, ref_syst return filtered_results end - - @doc raw""" interpolate_line(start, end_, no_points, semi, ref_system, sol; endpoint=true, smoothing_length=ref_system.smoothing_length, cut_of_bnd=true) From 8659c449c8c3737bfa8af38e0b631b154f052440 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 23 Jan 2024 03:38:26 +0100 Subject: [PATCH 092/212] add docs --- src/general/interpolation.jl | 45 +++++++++++++++++++++++++++++++++-- test/general/interpolation.jl | 11 +++++---- 2 files changed, 49 insertions(+), 7 deletions(-) diff --git a/src/general/interpolation.jl b/src/general/interpolation.jl index 0a6de6322..44d5b4ed9 100644 --- a/src/general/interpolation.jl +++ b/src/general/interpolation.jl @@ -1,5 +1,5 @@ @doc raw""" - interpolate_plane2D(lower_left, top_right, resolution, semi, ref_system, sol; + interpolate_plane_2d(lower_left, top_right, resolution, semi, ref_system, sol; smoothing_length=ref_system.smoothing_length, cut_off_bnd=true) Interpolates properties across a plane or a volume in a TrixiParticles simulation. @@ -35,7 +35,7 @@ The function generates a grid of points within the defined region, spaced unifor # Examples ```julia # Interpolating across a plane from [0.0, 0.0] to [1.0, 1.0] with a resolution of 0.2 -results = interpolate_plane([0.0, 0.0], [1.0, 1.0], 0.2, semi, ref_system, sol) +results = interpolate_plane_2d([0.0, 0.0], [1.0, 1.0], 0.2, semi, ref_system, sol) ``` """ function interpolate_plane_2d(lower_left, top_right, resolution, semi, ref_system, sol; @@ -76,6 +76,47 @@ function interpolate_plane_2d(lower_left, top_right, resolution, semi, ref_syste return filtered_results end +@doc raw""" + interpolate_plane_3d(point1, point2, point3, resolution, semi, ref_system, sol; + smoothing_length=ref_system.smoothing_length, cut_off_bnd=true) + +Interpolates properties across a plane in a 3D space in a TrixiParticles simulation. +The plane for interpolation is defined by three points in 3D space, +with a specified resolution determining the density of the interpolation points. + +The function generates a grid of points on a parallelogram within the plane defined by the three points, spaced uniformly according to the given resolution. + +# Arguments +- `point1`: The first point defining the plane. +- `point2`: The second point defining the plane. +- `point3`: The third point defining the plane. The points must not be collinear. +- `resolution`: The distance between adjacent interpolation points in the grid. +- `semi`: The semidiscretization used for the simulation. +- `ref_system`: The reference system for the interpolation. +- `sol`: The solution state from which the properties are interpolated. + +# Keywords +- `cut_off_bnd`: Boolean to indicate if quantities should be set to zero when a + point is "closer" to a boundary than to the fluid system + (see an explanation for "closer" below). Defaults to `true`. +- `smoothing_length`: The smoothing length used in the interpolation. Default is `ref_system.smoothing_length`. + +# Returns +- A `NamedTuple` of arrays containing interpolated properties at each point within the plane. + +!!! note + - This function is particularly useful for analyzing gradients or creating visualizations + along a specified plane in the SPH simulation domain in 3D space. + - The interpolation accuracy is subject to the density of particles and the chosen smoothing length. + - With `cut_off_bnd`, a density-based estimation of the surface is used which is not as + accurate as a real surface reconstruction. + +# Examples +```julia +# Interpolating across a plane defined by points [0.0, 0.0, 0.0], [1.0, 0.0, 0.0], and [0.0, 1.0, 0.0] +# with a resolution of 0.1 +results = interpolate_plane_3d([0.0, 0.0, 0.0], [1.0, 0.0, 0.0], [0.0, 1.0, 0.0], 0.1, semi, ref_system, sol) +""" function interpolate_plane_3d(point1, point2, point3, resolution, semi, ref_system, sol; smoothing_length=ref_system.smoothing_length, cut_off_bnd=true) diff --git a/test/general/interpolation.jl b/test/general/interpolation.jl index 84122e673..f833dd516 100644 --- a/test/general/interpolation.jl +++ b/test/general/interpolation.jl @@ -278,7 +278,7 @@ interpolation_end = [1.0, 1.0] resolution = 0.25 - result = interpolate_plane(interpolation_start, interpolation_end, + result = interpolate_plane_2d(interpolation_start, interpolation_end, resolution, semi_no_boundary, fluid_system, sol_no_boundary) @@ -399,7 +399,7 @@ compare_interpolation_result(result, expected_res) - result = interpolate_plane(interpolation_start, interpolation_end, + result = interpolate_plane_2d(interpolation_start, interpolation_end, resolution, semi_no_boundary, fluid_system, sol_no_boundary, smoothing_length=0.5 * smoothing_length) @@ -1044,11 +1044,12 @@ end @testset verbose=true "Interpolation Plane no boundary - cut_off_bnd = $(cut_off_bnd)" begin - interpolation_start = [0.0, 0.0, 0.0] - interpolation_end = [1.0, 1.0, 0.0] + p1 = [0.0, 0.0, 0.0] + p2 = [1.0, 1.0, 0.0] + p3 = [0.0, 1.0, 0.0] resolution = 0.25 - result = interpolate_plane(interpolation_start, interpolation_end, + result = interpolate_plane_3d(p1, p2, p3, resolution, semi_no_boundary, fluid_system, sol_no_boundary) From e2f991d66aff6b929198c404bcf222dc1c9a3ae8 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 23 Jan 2024 03:42:22 +0100 Subject: [PATCH 093/212] fix tests --- src/general/interpolation.jl | 2 + test/general/interpolation.jl | 231 ++++++++++++++-------------------- 2 files changed, 95 insertions(+), 138 deletions(-) diff --git a/src/general/interpolation.jl b/src/general/interpolation.jl index 44d5b4ed9..341e927d4 100644 --- a/src/general/interpolation.jl +++ b/src/general/interpolation.jl @@ -1,3 +1,5 @@ +using LinearAlgebra + @doc raw""" interpolate_plane_2d(lower_left, top_right, resolution, semi, ref_system, sol; smoothing_length=ref_system.smoothing_length, cut_off_bnd=true) diff --git a/test/general/interpolation.jl b/test/general/interpolation.jl index f833dd516..2d289065b 100644 --- a/test/general/interpolation.jl +++ b/test/general/interpolation.jl @@ -1,3 +1,4 @@ +include("../test_util.jl") @testset verbose=true "SPH Interpolation" begin function compare_interpolation_result(actual, expected; tolerance=1e-8) @test length(actual.density) == length(expected.density) @@ -279,8 +280,8 @@ resolution = 0.25 result = interpolate_plane_2d(interpolation_start, interpolation_end, - resolution, semi_no_boundary, - fluid_system, sol_no_boundary) + resolution, semi_no_boundary, + fluid_system, sol_no_boundary) expected_res = (density=[ 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, @@ -400,9 +401,9 @@ compare_interpolation_result(result, expected_res) result = interpolate_plane_2d(interpolation_start, interpolation_end, - resolution, semi_no_boundary, fluid_system, - sol_no_boundary, - smoothing_length=0.5 * smoothing_length) + resolution, semi_no_boundary, fluid_system, + sol_no_boundary, + smoothing_length=0.5 * smoothing_length) expected_res = (density=[ 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, @@ -1047,178 +1048,132 @@ p1 = [0.0, 0.0, 0.0] p2 = [1.0, 1.0, 0.0] p3 = [0.0, 1.0, 0.0] - resolution = 0.25 + resolution = 0.5 result = interpolate_plane_3d(p1, p2, p3, - resolution, semi_no_boundary, - fluid_system, sol_no_boundary) + resolution, semi_no_boundary, + fluid_system, sol_no_boundary) expected_res = (density=[ - 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, - 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, - 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, 666.0, - ], - neighbor_count=[ - 4, 4, 2, 4, 2, 8, 8, 8, 8, 4, 4, 8, 10, 8, 2, 8, 8, 8, - 8, 4, 9, 8, 4, 8, 4, - ], - coord=SVector{3, Float64}[[0.0, 0.0, 0.0], [0.25, 0.0, 0.0], - [0.5, 0.0, 0.0], [0.75, 0.0, 0.0], - [1.0, 0.0, 0.0], [0.0, 0.25, 0.0], - [0.25, 0.25, 0.0], - [0.5, 0.25, 0.0], - [0.75, 0.25, 0.0], - [1.0, 0.25, 0.0], [0.0, 0.5, 0.0], - [0.25, 0.5, 0.0], [0.5, 0.5, 0.0], - [0.75, 0.5, 0.0], [1.0, 0.5, 0.0], - [0.0, 0.75, 0.0], - [0.25, 0.75, 0.0], - [0.5, 0.75, 0.0], - [0.75, 0.75, 0.0], - [1.0, 0.75, 0.0], [0.0, 1.0, 0.0], - [0.25, 1.0, 0.0], [0.5, 1.0, 0.0], - [0.75, 1.0, 0.0], - [1.0, 1.0, 0.0]], + 666.0, + 666.0, + 666.0, + 666.0, + 666.0, + 666.0, + 666.0, + 666.0, + 666.0, + 666.0, + 666.0, + ], neighbor_count=[4, 4, 9, 6, 8, 6, 6, 8, 6, 4, 2, 1], + coord=SVector{3, Float64}[[0.0, 0.0, 0.0], [0.0, 0.5, 0.0], + [0.0, 1.0, 0.0], + [ + 0.3333333333333333, + 0.3333333333333333, + 0.0, + ], + [ + 0.3333333333333333, + 0.8333333333333333, + 0.0, + ], + [ + 0.3333333333333333, + 1.3333333333333333, + 0.0, + ], + [ + 0.6666666666666666, + 0.6666666666666666, + 0.0, + ], + [ + 0.6666666666666666, + 1.1666666666666665, + 0.0, + ], + [ + 0.6666666666666666, + 1.6666666666666665, + 0.0, + ], [1.0, 1.0, 0.0], + [1.0, 1.5, 0.0], [1.0, 2.0, 0.0]], velocity=SVector{3, Float64}[[ 5.0, 0.101, -8.637243445401583e-17, ], - [ - 5.869703392240257, - 0.10100000000000002, - -7.763803772221451e-17, - ], - [ - 6.5, - 0.101, - -3.9596915948450856e-17, - ], - [ - 7.130296607759746, - 0.10100000000000002, - -3.2202140646145757e-17, - ], - [ - 7.699999999999999, - 0.101, - -1.3637752808528745e-16, - ], - [ - 5.000000000000001, - 0.1085960452298701, - -9.528304629544531e-17, - ], - [ - 5.853637963202973, - 0.10838183950937298, - -8.467859459663407e-17, - ], - [ - 6.5, - 0.1082655290241629, - -6.305452968124059e-17, - ], - [ - 7.146362036797026, - 0.108381839509373, - -6.209763603753155e-17, - ], - [ - 7.7, - 0.10859604522987007, - -7.058003429292218e-17, - ], [ 5.0, 0.125, -7.070877847937661e-17, ], [ - 5.8449146768122135, - 0.12500442992503666, - -6.24387182432772e-17, + 5.0, + 0.20025646054622268, + -2.2734045974413372e-17, ], [ - 6.499999999999999, - 0.12501291156520425, - -7.925383449471013e-17, + 5.920251592989799, + 0.10954004247972798, + -7.466540216672048e-17, ], [ - 7.1550853231877865, - 0.12500442992503663, - -4.262327463947848e-17, + 5.912901655029027, + 0.1752639260703962, + -8.888366469079487e-17, ], [ - 7.700000000000001, - 0.125, - -6.222372506185122e-17, + 5.920251592989798, + 0.2708901486790478, + -5.308243435290283e-17, ], [ - 5.000000000000001, - 0.15061581908051971, - -6.903609604276466e-17, + 7.079748407010201, + 0.14818993628040808, + -7.466540216672064e-17, ], [ - 5.853637963202973, - 0.15147264196250815, - -4.869019189306454e-17, + 7.087098344970975, + 0.22960411089440566, + -8.19920883032382e-17, ], [ - 6.5, - 0.15193788390334861, - -7.298505931417556e-17, + 7.079748407010202, + 0.38683983008108835, + -1.119981032500812e-16, ], [ - 7.146362036797025, - 0.15147264196250815, - -5.919990255544454e-17, + 7.699999999999998, + 0.20099999999999996, + -1.2273977527675892e-16, ], [ 7.700000000000001, - 0.15061581908051971, - -3.087876500315342e-17, - ], - [ - 5.0, - 0.20025646054622268, - -2.2734045974413372e-17, - ], - [ - 5.869703392240257, - 0.201, - -8.469604115150688e-17, - ], - [ - 6.5, - 0.201, - -7.070877847937661e-17, - ], - [ - 7.130296607759744, - 0.201, - -5.712571525583396e-17, + 0.32500000000000007, + -6.222372506185122e-17, ], [ - 7.699999999999998, - 0.20099999999999996, - -1.2273977527675892e-16, + 7.699999999999999, + 0.4610000000000001, + 0.10000000000000009, ]], pressure=[ - 0.19999999999999996, 0.19999999999999998, 0.19999999999999996, - 0.19999999999999998, 0.19999999999999996, - 0.5798022614935039, - 0.5690919754686489, 0.5632764512081427, - 0.5690919754686488, - 0.5798022614935038, 1.0, 1.0, 1.0, 0.9999999999999997, 1.0, - 1.4201977385064963, 1.4309080245313512, - 1.4367235487918577, - 1.430908024531351, 1.4201977385064966, 2.0, - 2.0000000000000004, - 2.0, 1.9999999999999998, 1.9999999999999998, + 2.0, + 0.6135010619931992, + 1.728299075879952, + 2.6135010619931984, + 1.386498938006801, + 2.2717009241200476, + 3.386498938006801, + 1.9999999999999998, + 3.0000000000000004, + 3.8000000000000003, ]) compare_interpolation_result(result, expected_res) From cf5558f0e4f65a743b6048bca4e14d8452739b29 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 23 Jan 2024 03:46:50 +0100 Subject: [PATCH 094/212] fix --- test/general/interpolation.jl | 1 - 1 file changed, 1 deletion(-) diff --git a/test/general/interpolation.jl b/test/general/interpolation.jl index 2d289065b..f25a2598b 100644 --- a/test/general/interpolation.jl +++ b/test/general/interpolation.jl @@ -1,4 +1,3 @@ -include("../test_util.jl") @testset verbose=true "SPH Interpolation" begin function compare_interpolation_result(actual, expected; tolerance=1e-8) @test length(actual.density) == length(expected.density) From e62453c49c064175d30f292acaf50ef8130f68af Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 23 Jan 2024 10:15:27 +0100 Subject: [PATCH 095/212] fix plot --- .../postprocessing/interpolation_plane.jl | 54 +++++-------------- 1 file changed, 12 insertions(+), 42 deletions(-) diff --git a/examples/postprocessing/interpolation_plane.jl b/examples/postprocessing/interpolation_plane.jl index b8f649426..f67299cdb 100644 --- a/examples/postprocessing/interpolation_plane.jl +++ b/examples/postprocessing/interpolation_plane.jl @@ -45,55 +45,25 @@ half_x = [point[1] for point in half_smoothing_plane.coord] half_y = [point[2] for point in half_smoothing_plane.coord] half_density = half_smoothing_plane.density -# Instead of using Plots.jl one can also use PythonPlot which uses matplotlib -# using PythonPlot - -# # Initialize figure with three subplots -# fig, (subplot1, subplot2, subplot3) = subplots(1, 3, figsize=(15, 5)) - -# # Plot for original plane -# scatter1 = subplot1.scatter(original_x, original_y, c=original_density, cmap="viridis", -# marker="o", vmin=1000, vmax=1010) -# subplot1.set_xlabel("X Coordinate") -# subplot1.set_ylabel("Y Coordinate") -# subplot1.set_title("Density Distribution") -# fig.colorbar(scatter1, ax=subplot1, label="Density") - -# # Plot for plane with double smoothing length -# scatter2 = subplot2.scatter(double_x, double_y, c=double_density, cmap="viridis", -# marker="o", vmin=1000, vmax=1010) -# subplot2.set_xlabel("X Coordinate") -# subplot2.set_ylabel("Y Coordinate") -# subplot2.set_title("Density with 2x Smoothing Length") -# fig.colorbar(scatter2, ax=subplot2, label="Density") - -# # Plot for plane with half smoothing length -# scatter3 = subplot3.scatter(half_x, half_y, c=half_density, cmap="viridis", marker="o", -# vmin=1000, vmax=1010) -# subplot3.set_xlabel("X Coordinate") -# subplot3.set_ylabel("Y Coordinate") -# subplot3.set_title("Density with 0.5x Smoothing Length") -# fig.colorbar(scatter3, ax=subplot3, label="Density") - -# fig.subplots_adjust(left=0.1, right=0.9, bottom=0.1, top=0.9, wspace=0.4, hspace=0.4) -# plotshow() - scatter1 = scatter(original_x, original_y, zcolor=original_density, marker=:circle, markersize=2, markercolor=:viridis, markerstrokewidth=0, - clim=(1000, 1010), colorbar=true, legend=false) + clim=(1000, 1010), colorbar=true) scatter2 = scatter(double_x, double_y, zcolor=double_density, marker=:circle, markersize=2, markercolor=:viridis, markerstrokewidth=0, clim=(1000, 1010), - colorbar=true, legend=false) + colorbar=true) scatter3 = scatter(half_x, half_y, zcolor=half_density, marker=:circle, markersize=2, markercolor=:viridis, markerstrokewidth=0, clim=(1000, 1010), - colorbar=true, legend=false) + colorbar=true) plot1 = plot(scatter1, xlabel="X Coordinate", ylabel="Y Coordinate", - title="Density Distribution", colorbar_title="Density") + title="Density Distribution", colorbar_title="Density", ylim=(0.0, 1.0), + legend=false) plot2 = plot(scatter2, xlabel="X Coordinate", ylabel="Y Coordinate", - title="Density with 2x Smoothing Length", colorbar_title="Density") + title="Density with 2x Smoothing Length", colorbar_title="Density", + ylim=(0.0, 1.0), legend=false) plot3 = plot(scatter3, xlabel="X Coordinate", ylabel="Y Coordinate", - title="Density with 0.5x Smoothing Length", colorbar_title="Density") + title="Density with 0.5x Smoothing Length", colorbar_title="Density", + ylim=(0.0, 1.0), legend=false) trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_3d.jl"), tspan=(0.0, 0.1)) @@ -116,16 +86,16 @@ scatter_3d = scatter3d(original_x, original_y, original_z, marker_z=original_den color=:viridis, legend=false) plot_3d = plot(scatter_3d, xlabel="X", ylabel="Y", zlabel="Z", - title="3D Scatter Plot with Density Coloring") + title="3D Scatter Plot with Density Coloring", legend=false) # by ignoring the z coordinate we can also plot this into a 2D plane scatter_3d_in_2d = scatter(original_x, original_y, zcolor=original_density, marker=:circle, markersize=4, markercolor=:viridis, markerstrokewidth=0, clim=(1000, 1010), - colorbar=true, legend=false) + colorbar=true) plot_3d_in_2d = plot(scatter_3d_in_2d, xlabel="X", ylabel="Y", zlabel="Z", - title="3D in 2D Scatter Plot") + title="3D in 2D Scatter Plot", legend=false) combined_plot = plot(plot1, plot2, plot3, plot_3d, plot_3d_in_2d, layout=(3, 2), size=(1000, 1500), margin=5mm) From 699beaad210078c8b671eb3fbf2f8dcaf8ed2fd3 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 23 Jan 2024 10:22:01 +0100 Subject: [PATCH 096/212] fix comments --- .../postprocessing/interpolation_plane.jl | 15 ++++++----- src/general/interpolation.jl | 27 +++++++++---------- 2 files changed, 20 insertions(+), 22 deletions(-) diff --git a/examples/postprocessing/interpolation_plane.jl b/examples/postprocessing/interpolation_plane.jl index f67299cdb..7de9bd4a6 100644 --- a/examples/postprocessing/interpolation_plane.jl +++ b/examples/postprocessing/interpolation_plane.jl @@ -1,7 +1,6 @@ # Example for using interpolation ####################################################################################### using TrixiParticles -# this needs to be commented out to use PythonPlot using Plots using Plots.PlotMeasures @@ -23,9 +22,10 @@ original_y = [point[2] for point in original_plane.coord] original_density = original_plane.density # Plane with double smoothing length -# Using an higher `smoothing_length` will increase the amount of smoothing and will decrease -# the appearance of disturbances. At the same time it will also increase the distance at free surfaces -# at which the fluid is cut_off. +# Utilizing a higher `smoothing_length` in SPH interpolation enhances the level of smoothing, +# thereby reducing the visibility of disturbances. Concurrently, it also increases the distance +# from free surfaces where the fluid undergoes cutoff. This adjustment in `smoothing_length` +# can affect both the accuracy and smoothness of the interpolated results. double_smoothing_plane = interpolate_plane_2d(interpolation_start, interpolation_end, resolution, semi, fluid_system, sol, smoothing_length=2.0 * smoothing_length) @@ -34,9 +34,10 @@ double_y = [point[2] for point in double_smoothing_plane.coord] double_density = double_smoothing_plane.density # Plane with half smoothing length -# Using a lower `smoothing_length` will decrease the amount of smoothing and will increase -# the appearance of disturbances. At the same time the fluid will be cut off more accurately -# at free surfaces. +# Employing a lower `smoothing_length` in SPH interpolation reduces the level of smoothing, +# consequently increasing the visibility of disturbances. Simultaneously, it allows for a more +# precise cutoff of the fluid at free surfaces. This change in `smoothing_length` can impact the +# balance between the detail of disturbances captured and the precision of fluid representation near surfaces. half_smoothing_plane = interpolate_plane_2d(interpolation_start, interpolation_end, resolution, semi, fluid_system, sol, diff --git a/src/general/interpolation.jl b/src/general/interpolation.jl index 341e927d4..36279fb53 100644 --- a/src/general/interpolation.jl +++ b/src/general/interpolation.jl @@ -8,7 +8,8 @@ Interpolates properties across a plane or a volume in a TrixiParticles simulatio The region for interpolation is defined by its lower left and top right corners, with a specified resolution determining the density of the interpolation points. -The function generates a grid of points within the defined region, spaced uniformly according to the given resolution. +The function generates a grid of points within the defined region, + spaced uniformly according to the given resolution. # Arguments - `lower_left`: The lower left corner of the interpolation region. @@ -28,10 +29,8 @@ The function generates a grid of points within the defined region, spaced unifor - A `NamedTuple` of arrays containing interpolated properties at each point within the plane. !!! note - - This function is particularly useful for analyzing gradients or creating visualizations - along a specified line in the SPH simulation domain. - The interpolation accuracy is subject to the density of particles and the chosen smoothing length. - - With `cut_off_bnd`, a density-based estimation of the surface is used which is not as + - With `cut_off_bnd`, a density-based estimation of the surface is used, which is not as accurate as a real surface reconstruction. # Examples @@ -40,27 +39,25 @@ The function generates a grid of points within the defined region, spaced unifor results = interpolate_plane_2d([0.0, 0.0], [1.0, 1.0], 0.2, semi, ref_system, sol) ``` """ -function interpolate_plane_2d(lower_left, top_right, resolution, semi, ref_system, sol; +function interpolate_plane_2d(min_corner, max_corner, resolution, semi, ref_system, sol; smoothing_length=ref_system.smoothing_length, cut_off_bnd=true) - dims = length(lower_left) - if dims != 2 || length(top_right) != 2 + dims = length(min_corner) + if dims != 2 || length(max_corner) != 2 error("Function is intended for 2D coordinates only") end # Check that lower_left is indeed lower and to the left of top_right - for i in 1:dims - if lower_left[i] > top_right[i] - error("lower_left should be lower and to the left of top_right in all dimensions") - end + if any(min_corner .> max_corner) + error("lower_left should be lower and to the left of top_right in all dimensions") end # Calculate the number of points in each dimension based on the resolution - no_points_x = ceil(Int, (top_right[1] - lower_left[1]) / resolution) + 1 - no_points_y = ceil(Int, (top_right[2] - lower_left[2]) / resolution) + 1 + no_points_x = ceil(Int, (max_corner[1] - min_corner[1]) / resolution) + 1 + no_points_y = ceil(Int, (max_corner[2] - min_corner[2]) / resolution) + 1 - x_range = range(lower_left[1], top_right[1], length=no_points_x) - y_range = range(lower_left[2], top_right[2], length=no_points_y) + x_range = range(min_corner[1], max_corner[1], length=no_points_x) + y_range = range(min_corner[2], max_corner[2], length=no_points_y) # Generate points within the plane points_coords = [SVector(x, y) for x in x_range, y in y_range] From 3e7ad09ffb910f9fbd04af8ee815f0605799bb76 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 23 Jan 2024 10:22:38 +0100 Subject: [PATCH 097/212] fix comment --- src/general/interpolation.jl | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/general/interpolation.jl b/src/general/interpolation.jl index 36279fb53..1245b3024 100644 --- a/src/general/interpolation.jl +++ b/src/general/interpolation.jl @@ -104,8 +104,6 @@ The function generates a grid of points on a parallelogram within the plane defi - A `NamedTuple` of arrays containing interpolated properties at each point within the plane. !!! note - - This function is particularly useful for analyzing gradients or creating visualizations - along a specified plane in the SPH simulation domain in 3D space. - The interpolation accuracy is subject to the density of particles and the chosen smoothing length. - With `cut_off_bnd`, a density-based estimation of the surface is used which is not as accurate as a real surface reconstruction. From 971be6f42ffcc9d38673789b6d1a9db61bcf8b7c Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 23 Jan 2024 13:21:53 +0100 Subject: [PATCH 098/212] update --- examples/fluid/rectangular_tank_3d.jl | 10 ++--- .../postprocessing/interpolation_plane.jl | 41 ++++++++--------- src/general/interpolation.jl | 44 ++++++++++--------- test/examples/examples.jl | 31 +++++++++++++ 4 files changed, 79 insertions(+), 47 deletions(-) diff --git a/examples/fluid/rectangular_tank_3d.jl b/examples/fluid/rectangular_tank_3d.jl index 46e94e527..ec69e7039 100644 --- a/examples/fluid/rectangular_tank_3d.jl +++ b/examples/fluid/rectangular_tank_3d.jl @@ -2,8 +2,8 @@ using TrixiParticles using Plots trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), - fluid_particle_spacing=0.05, - initial_fluid_size=(2.0, 1.0, 0.9), - tank_size=(2.0, 1.0, 1.2), - acceleration=(0.0, 0.0, -9.81), - smoothing_kernel=SchoenbergCubicSplineKernel{3}(), tspan=(0.0, 1.0)) + fluid_particle_spacing=0.05, initial_fluid_size=(1.0, 1.0, 0.9), + tank_size=(1.0, 1.0, 1.2), acceleration=(0.0, 0.0, -9.81), + smoothing_kernel=SchoenbergCubicSplineKernel{3}(), tspan=(0.0, 1.0), + maxiters=10^5, fluid_density_calculator=ContinuityDensity(), + clip_negative_pressure=false) diff --git a/examples/postprocessing/interpolation_plane.jl b/examples/postprocessing/interpolation_plane.jl index 7de9bd4a6..fb220919e 100644 --- a/examples/postprocessing/interpolation_plane.jl +++ b/examples/postprocessing/interpolation_plane.jl @@ -15,16 +15,15 @@ resolution = 0.005 # We can interpolate a plane by providing the lower left and top right coordinates of a plane. # Per default the same `smoothing_length` will be used as during the simulation. original_plane = interpolate_plane_2d(interpolation_start, interpolation_end, resolution, - semi, - fluid_system, sol) + semi, fluid_system, sol) original_x = [point[1] for point in original_plane.coord] original_y = [point[2] for point in original_plane.coord] original_density = original_plane.density # Plane with double smoothing length -# Utilizing a higher `smoothing_length` in SPH interpolation enhances the level of smoothing, -# thereby reducing the visibility of disturbances. Concurrently, it also increases the distance -# from free surfaces where the fluid undergoes cutoff. This adjustment in `smoothing_length` +# Utilizing a higher `smoothing_length` in SPH interpolation increases the amount of smoothing, +# thereby reducing the visibility of disturbances. It also increases the distance +# from free surfaces where the fluid is cut off. This adjustment in `smoothing_length` # can affect both the accuracy and smoothness of the interpolated results. double_smoothing_plane = interpolate_plane_2d(interpolation_start, interpolation_end, resolution, semi, fluid_system, sol, @@ -34,7 +33,7 @@ double_y = [point[2] for point in double_smoothing_plane.coord] double_density = double_smoothing_plane.density # Plane with half smoothing length -# Employing a lower `smoothing_length` in SPH interpolation reduces the level of smoothing, +# Employing a lower `smoothing_length` in SPH interpolation reduces the amount of smoothing, # consequently increasing the visibility of disturbances. Simultaneously, it allows for a more # precise cutoff of the fluid at free surfaces. This change in `smoothing_length` can impact the # balance between the detail of disturbances captured and the precision of fluid representation near surfaces. @@ -47,24 +46,21 @@ half_y = [point[2] for point in half_smoothing_plane.coord] half_density = half_smoothing_plane.density scatter1 = scatter(original_x, original_y, zcolor=original_density, marker=:circle, - markersize=2, markercolor=:viridis, markerstrokewidth=0, - clim=(1000, 1010), colorbar=true) + markersize=2, markercolor=:viridis, markerstrokewidth=0) scatter2 = scatter(double_x, double_y, zcolor=double_density, marker=:circle, markersize=2, - markercolor=:viridis, markerstrokewidth=0, clim=(1000, 1010), - colorbar=true) + markercolor=:viridis, markerstrokewidth=0) scatter3 = scatter(half_x, half_y, zcolor=half_density, marker=:circle, markersize=2, - markercolor=:viridis, markerstrokewidth=0, clim=(1000, 1010), - colorbar=true) + markercolor=:viridis, markerstrokewidth=0) plot1 = plot(scatter1, xlabel="X Coordinate", ylabel="Y Coordinate", title="Density Distribution", colorbar_title="Density", ylim=(0.0, 1.0), - legend=false) + legend=false, clim=(1000, 1010), colorbar=true) plot2 = plot(scatter2, xlabel="X Coordinate", ylabel="Y Coordinate", title="Density with 2x Smoothing Length", colorbar_title="Density", - ylim=(0.0, 1.0), legend=false) + ylim=(0.0, 1.0), legend=false, clim=(1000, 1010), colorbar=true) plot3 = plot(scatter3, xlabel="X Coordinate", ylabel="Y Coordinate", title="Density with 0.5x Smoothing Length", colorbar_title="Density", - ylim=(0.0, 1.0), legend=false) + ylim=(0.0, 1.0), legend=false, clim=(1000, 1010), colorbar=true) trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_3d.jl"), tspan=(0.0, 0.1)) @@ -84,19 +80,20 @@ original_z = [point[3] for point in original_plane.coord] original_density = original_plane.density scatter_3d = scatter3d(original_x, original_y, original_z, marker_z=original_density, - color=:viridis, legend=false) + color=:viridis, markerstrokewidth=0) plot_3d = plot(scatter_3d, xlabel="X", ylabel="Y", zlabel="Z", - title="3D Scatter Plot with Density Coloring", legend=false) + title="3D Scatter Plot with Density Coloring", legend=false, + clim=(1000, 1010), colorbar=false) # by ignoring the z coordinate we can also plot this into a 2D plane scatter_3d_in_2d = scatter(original_x, original_y, zcolor=original_density, marker=:circle, markersize=4, - markercolor=:viridis, markerstrokewidth=0, clim=(1000, 1010), - colorbar=true) + markercolor=:viridis, markerstrokewidth=0) -plot_3d_in_2d = plot(scatter_3d_in_2d, xlabel="X", ylabel="Y", zlabel="Z", - title="3D in 2D Scatter Plot", legend=false) +plot_3d_in_2d = plot(scatter_3d_in_2d, xlabel="X", ylabel="Y", + title="3D in 2D Scatter Plot", legend=false, clim=(1000, 1010), + colorbar=true) combined_plot = plot(plot1, plot2, plot3, plot_3d, plot_3d_in_2d, layout=(3, 2), - size=(1000, 1500), margin=5mm) + size=(1000, 1500), margin=3mm) diff --git a/src/general/interpolation.jl b/src/general/interpolation.jl index 1245b3024..0dfde95a2 100644 --- a/src/general/interpolation.jl +++ b/src/general/interpolation.jl @@ -1,19 +1,19 @@ using LinearAlgebra @doc raw""" - interpolate_plane_2d(lower_left, top_right, resolution, semi, ref_system, sol; - smoothing_length=ref_system.smoothing_length, cut_off_bnd=true) + interpolate_plane_2d(min_corner, max_corner, resolution, semi, ref_system, sol; + smoothing_length=ref_system.smoothing_length, cut_off_bnd=true) -Interpolates properties across a plane or a volume in a TrixiParticles simulation. +Interpolates properties along a plane in a TrixiParticles simulation. The region for interpolation is defined by its lower left and top right corners, with a specified resolution determining the density of the interpolation points. The function generates a grid of points within the defined region, - spaced uniformly according to the given resolution. +spaced uniformly according to the given resolution. # Arguments -- `lower_left`: The lower left corner of the interpolation region. -- `top_right`: The top right corner of the interpolation region. +- `min_corner`: The lower left corner of the interpolation region. +- `max_corner`: The top right corner of the interpolation region. - `resolution`: The distance between adjacent interpolation points in the grid. - `semi`: The semidiscretization used for the simulation. - `ref_system`: The reference system for the interpolation. @@ -44,12 +44,11 @@ function interpolate_plane_2d(min_corner, max_corner, resolution, semi, ref_syst cut_off_bnd=true) dims = length(min_corner) if dims != 2 || length(max_corner) != 2 - error("Function is intended for 2D coordinates only") + throw(ArgumentError("Function is intended for 2D coordinates only")) end - # Check that lower_left is indeed lower and to the left of top_right if any(min_corner .> max_corner) - error("lower_left should be lower and to the left of top_right in all dimensions") + throw(ArgumentError("`min_corner` should be smaller than `max_corner` in every dimension")) end # Calculate the number of points in each dimension based on the resolution @@ -79,7 +78,7 @@ end interpolate_plane_3d(point1, point2, point3, resolution, semi, ref_system, sol; smoothing_length=ref_system.smoothing_length, cut_off_bnd=true) -Interpolates properties across a plane in a 3D space in a TrixiParticles simulation. +Interpolates properties along a plane in a 3D space in a TrixiParticles simulation. The plane for interpolation is defined by three points in 3D space, with a specified resolution determining the density of the interpolation points. @@ -113,22 +112,28 @@ The function generates a grid of points on a parallelogram within the plane defi # Interpolating across a plane defined by points [0.0, 0.0, 0.0], [1.0, 0.0, 0.0], and [0.0, 1.0, 0.0] # with a resolution of 0.1 results = interpolate_plane_3d([0.0, 0.0, 0.0], [1.0, 0.0, 0.0], [0.0, 1.0, 0.0], 0.1, semi, ref_system, sol) +``` """ function interpolate_plane_3d(point1, point2, point3, resolution, semi, ref_system, sol; smoothing_length=ref_system.smoothing_length, cut_off_bnd=true) # Verify that points are in 3D space if length(point1) != 3 || length(point2) != 3 || length(point3) != 3 - error("All points must be 3D coordinates") + throw(ArgumentError("all points must be 3D coordinates")) end + point1_ = SVector{3}(point1) + point2_ = SVector{3}(point2) + point3_ = SVector{3}(point3) + + # Vectors defining the edges of the parallelogram - edge1 = point2 - point1 - edge2 = point3 - point1 + edge1 = point2_ - point1_ + edge2 = point3_ - point1_ # Check if the points are collinear if norm(cross(edge1, edge2)) == 0 - error("The points must not be collinear") + throw(ArgumentError("the points must not be collinear")) end # Determine the number of points along each edge @@ -136,20 +141,19 @@ function interpolate_plane_3d(point1, point2, point3, resolution, semi, ref_syst num_points_edge2 = ceil(Int, norm(edge2) / resolution) # Create a set of points on the plane - points_coords = [] + points_coords = Vector{SVector{3, Float64}}(undef, (num_points_edge1 + 1) * (num_points_edge2 + 1)) + index = 1 for i in 0:num_points_edge1 for j in 0:num_points_edge2 point_on_plane = point1 + (i / num_points_edge1) * edge1 + (j / num_points_edge2) * edge2 - push!(points_coords, point_on_plane) + points_coords[index] = point_on_plane + index += 1 end end - # Convert points_coords to an array of SVectors - svector_points = [SVector{3}(pt...) for pt in points_coords] - # Interpolate using the generated points - results = interpolate_point(svector_points, semi, ref_system, sol, + results = interpolate_point(points_coords, semi, ref_system, sol, smoothing_length=smoothing_length, cut_off_bnd=cut_off_bnd) diff --git a/test/examples/examples.jl b/test/examples/examples.jl index e57c81fb4..e5c6299f2 100644 --- a/test/examples/examples.jl +++ b/test/examples/examples.jl @@ -18,6 +18,22 @@ @test sol.retcode == ReturnCode.Success end + @trixi_testset "fluid/rectangular_tank_3d.jl" begin + @test_nowarn trixi_include(@__MODULE__, + joinpath(examples_dir(), "fluid", + "rectangular_tank_3d.jl"), tspan=(0.0, 0.1)) + @test sol.retcode == ReturnCode.Success + end + + @trixi_testset "fluid/rectangular_tank_3d.jl with SummationDensity" begin + @test_nowarn trixi_include(@__MODULE__, + joinpath(examples_dir(), "fluid", + "rectangular_tank_3d.jl"), tspan=(0.0, 0.1), + fluid_density_calculator=SummationDensity(), + clip_negative_pressure=true) + @test sol.retcode == ReturnCode.Success + end + @trixi_testset "fluid/rectangular_tank_edac_2d.jl" begin @test_nowarn trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", @@ -136,4 +152,19 @@ "n_body_benchmark_reference_faster.jl")) end end + + @testset verbose=true "Postprocessing" begin + @trixi_testset "postprocessing/interpolation_plane.jl" begin + @test_nowarn trixi_include(@__MODULE__, + joinpath(examples_dir(), "postprocessing", + "interpolation_plane.jl"), tspan=(0.0, 0.01)) + @test sol.retcode == ReturnCode.Success + end + @trixi_testset "postprocessing/interpolation_point_line.jl" begin + @test_nowarn trixi_include(@__MODULE__, + joinpath(examples_dir(), "postprocessing", + "interpolation_point_line.jl")) + @test sol.retcode == ReturnCode.Success + end + end end From db52b69bceae934b699cbf4ce6e4a9bb22753dff Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 23 Jan 2024 13:23:32 +0100 Subject: [PATCH 099/212] format --- examples/fluid/rectangular_tank_3d.jl | 2 +- src/general/interpolation.jl | 5 +++-- test/examples/examples.jl | 3 ++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/examples/fluid/rectangular_tank_3d.jl b/examples/fluid/rectangular_tank_3d.jl index ec69e7039..5c8985a7c 100644 --- a/examples/fluid/rectangular_tank_3d.jl +++ b/examples/fluid/rectangular_tank_3d.jl @@ -5,5 +5,5 @@ trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2 fluid_particle_spacing=0.05, initial_fluid_size=(1.0, 1.0, 0.9), tank_size=(1.0, 1.0, 1.2), acceleration=(0.0, 0.0, -9.81), smoothing_kernel=SchoenbergCubicSplineKernel{3}(), tspan=(0.0, 1.0), - maxiters=10^5, fluid_density_calculator=ContinuityDensity(), + maxiters=10^5, fluid_density_calculator=ContinuityDensity(), clip_negative_pressure=false) diff --git a/src/general/interpolation.jl b/src/general/interpolation.jl index 0dfde95a2..311fa672c 100644 --- a/src/general/interpolation.jl +++ b/src/general/interpolation.jl @@ -126,7 +126,6 @@ function interpolate_plane_3d(point1, point2, point3, resolution, semi, ref_syst point2_ = SVector{3}(point2) point3_ = SVector{3}(point3) - # Vectors defining the edges of the parallelogram edge1 = point2_ - point1_ edge2 = point3_ - point1_ @@ -141,7 +140,9 @@ function interpolate_plane_3d(point1, point2, point3, resolution, semi, ref_syst num_points_edge2 = ceil(Int, norm(edge2) / resolution) # Create a set of points on the plane - points_coords = Vector{SVector{3, Float64}}(undef, (num_points_edge1 + 1) * (num_points_edge2 + 1)) + points_coords = Vector{SVector{3, Float64}}(undef, + (num_points_edge1 + 1) * + (num_points_edge2 + 1)) index = 1 for i in 0:num_points_edge1 for j in 0:num_points_edge2 diff --git a/test/examples/examples.jl b/test/examples/examples.jl index e5c6299f2..3df9b7d40 100644 --- a/test/examples/examples.jl +++ b/test/examples/examples.jl @@ -157,7 +157,8 @@ @trixi_testset "postprocessing/interpolation_plane.jl" begin @test_nowarn trixi_include(@__MODULE__, joinpath(examples_dir(), "postprocessing", - "interpolation_plane.jl"), tspan=(0.0, 0.01)) + "interpolation_plane.jl"), + tspan=(0.0, 0.01)) @test sol.retcode == ReturnCode.Success end @trixi_testset "postprocessing/interpolation_point_line.jl" begin From e47ae706a330f619c26bc5192f5575c08d795030 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 23 Jan 2024 14:12:22 +0100 Subject: [PATCH 100/212] add Plots --- examples/fluid/rectangular_tank_3d.jl | 1 - test/Project.toml | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/fluid/rectangular_tank_3d.jl b/examples/fluid/rectangular_tank_3d.jl index 5c8985a7c..0517943f8 100644 --- a/examples/fluid/rectangular_tank_3d.jl +++ b/examples/fluid/rectangular_tank_3d.jl @@ -1,5 +1,4 @@ using TrixiParticles -using Plots trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), fluid_particle_spacing=0.05, initial_fluid_size=(1.0, 1.0, 0.9), diff --git a/test/Project.toml b/test/Project.toml index 897dd26f0..eeac33e6c 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -1,6 +1,7 @@ [deps] LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" +Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" Polyester = "f517fe37-dbe3-4b94-8317-1923a5111588" Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7" QuadGK = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" From 86837d140cefb9853ec318e1c39279ae0913439f Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 23 Jan 2024 14:39:45 +0100 Subject: [PATCH 101/212] fix --- examples/postprocessing/interpolation_plane.jl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/examples/postprocessing/interpolation_plane.jl b/examples/postprocessing/interpolation_plane.jl index fb220919e..81dfc86c2 100644 --- a/examples/postprocessing/interpolation_plane.jl +++ b/examples/postprocessing/interpolation_plane.jl @@ -63,7 +63,8 @@ plot3 = plot(scatter3, xlabel="X Coordinate", ylabel="Y Coordinate", ylim=(0.0, 1.0), legend=false, clim=(1000, 1010), colorbar=true) trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_3d.jl"), - tspan=(0.0, 0.1)) + tspan=(0.0, 0.1), initial_fluid_size=(2.0, 1.0, 0.9), + tank_size=(2.0, 1.0, 1.2)) # Interpolation parameters p1 = [0.0, 0.0, 0.0] From 12ff4efa18008256941df804d202a0594242833d Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 23 Jan 2024 15:01:13 +0100 Subject: [PATCH 102/212] adjust plot --- examples/postprocessing/interpolation_plane.jl | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/examples/postprocessing/interpolation_plane.jl b/examples/postprocessing/interpolation_plane.jl index 81dfc86c2..e1c2b8732 100644 --- a/examples/postprocessing/interpolation_plane.jl +++ b/examples/postprocessing/interpolation_plane.jl @@ -87,12 +87,25 @@ plot_3d = plot(scatter_3d, xlabel="X", ylabel="Y", zlabel="Z", title="3D Scatter Plot with Density Coloring", legend=false, clim=(1000, 1010), colorbar=false) +# Interpolation parameters +p1 = [0.5, 0.0, 0.0] +p2 = [0.5, 1.0, 0.0] +p3 = [0.5, 0.0, 1.0] +resolution = 0.01 + +# We can also interpolate a 3D plane but in this case we have to provide 3 points instead! +original_plane = interpolate_plane_3d(p1, p2, p3, resolution, semi, + fluid_system, sol) +original_y = [point[2] for point in original_plane.coord] +original_z = [point[3] for point in original_plane.coord] +original_density = original_plane.density + # by ignoring the z coordinate we can also plot this into a 2D plane -scatter_3d_in_2d = scatter(original_x, original_y, zcolor=original_density, +scatter_3d_in_2d = scatter(original_y, original_z, zcolor=original_density, marker=:circle, markersize=4, markercolor=:viridis, markerstrokewidth=0) -plot_3d_in_2d = plot(scatter_3d_in_2d, xlabel="X", ylabel="Y", +plot_3d_in_2d = plot(scatter_3d_in_2d, xlabel="Y", ylabel="Z", title="3D in 2D Scatter Plot", legend=false, clim=(1000, 1010), colorbar=true) From 010ddb96b3c69fd095c97423641f69084bd2b884 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 23 Jan 2024 15:05:49 +0100 Subject: [PATCH 103/212] reduce time --- examples/postprocessing/interpolation_plane.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/postprocessing/interpolation_plane.jl b/examples/postprocessing/interpolation_plane.jl index e1c2b8732..03b629f11 100644 --- a/examples/postprocessing/interpolation_plane.jl +++ b/examples/postprocessing/interpolation_plane.jl @@ -63,7 +63,7 @@ plot3 = plot(scatter3, xlabel="X Coordinate", ylabel="Y Coordinate", ylim=(0.0, 1.0), legend=false, clim=(1000, 1010), colorbar=true) trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_3d.jl"), - tspan=(0.0, 0.1), initial_fluid_size=(2.0, 1.0, 0.9), + tspan=(0.0, 0.01), initial_fluid_size=(2.0, 1.0, 0.9), tank_size=(2.0, 1.0, 1.2)) # Interpolation parameters From 90cbdaa2e967cda1ca59a4e2520469e370ddc8fe Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 24 Jan 2024 17:04:01 +0100 Subject: [PATCH 104/212] add reference --- validation/Turek_dx_T.csv | 1089 +++++++++++++++++++++++++++++ validation/Turek_dy_T.csv | 1034 +++++++++++++++++++++++++++ validation/oscillating_beam_2d.jl | 241 ++++--- 3 files changed, 2268 insertions(+), 96 deletions(-) create mode 100644 validation/Turek_dx_T.csv create mode 100644 validation/Turek_dy_T.csv diff --git a/validation/Turek_dx_T.csv b/validation/Turek_dx_T.csv new file mode 100644 index 000000000..9ee09c3b7 --- /dev/null +++ b/validation/Turek_dx_T.csv @@ -0,0 +1,1089 @@ +time,displacement +0.06403885671586007, -0.0000799978187370487 +0.10199887913319605, -0.0006409641182244519 +0.12097889034186426, -0.0012227069473224987 +0.13995890155053203, -0.0018875558948631254 +0.15577557755775562, -0.002732468099029337 +0.16842891836353413, -0.0033834660268295333 +0.17791892396786846, -0.0038821027374850037 +0.18740892957220234, -0.0043807394481404725 +0.19373559997509204, -0.005114843494383249 +0.20638894078087056, -0.005710437343221724 +0.20638894078087056, -0.0062090740538771946 +0.2127156111837598, -0.006818518922456102 +0.22536895198953832, -0.007206347475188132 +0.22536895198953832, -0.007704984185843604 +0.2348589575938722, -0.008411386192605516 +0.2348589575938722, -0.008910022903260989 +0.22536895198953832, -0.009159341258588723 +0.24434896319820654, -0.009616424910022904 +0.24434896319820654, -0.010115061620678373 +0.24434896319820654, -0.010613698331333842 +0.2538389688025404, -0.01111233504198931 +0.2538389688025404, -0.01161097175264478 +0.2633289744068743, -0.012109608463300251 +0.2633289744068743, -0.01260824517395572 +0.2633289744068743, -0.013106881884611189 +0.27281898001120863, -0.013688624713709236 +0.27281898001120863, -0.014187261424364708 +0.2823089856155425, -0.014769004253462755 +0.2823089856155425, -0.015267640964118223 +0.2823089856155425, -0.01576627767477369 +0.2917989912198764, -0.016306467444650453 +0.2917989912198764, -0.016805104155305922 +0.30128899682421073, -0.017345293925182678 +0.30128899682421073, -0.017843930635838147 +0.3107790024285446, -0.018550332642600066 +0.3076156672271, -0.019090522412476822 +0.3202690080328785, -0.019755371360017447 +0.3297590136372124, -0.020461773366779366 +0.3265956784357682, -0.021015814156396556 +0.3392490192415467, -0.021666812084196747 +0.3487390248458806, -0.02233166103173738 +0.34557568964443597, -0.022871850801614135 +0.3582290304502145, -0.023495146689933473 +0.3677190360545488, -0.024159995637474098 +0.3677190360545488, -0.02463785581851892 +0.3772090416588827, -0.02532348129567019 +0.3835357120617724, -0.02600218126295125 +0.45945575689644436, -0.02659777511178972 +0.44363908088922077, -0.027193368960628204 +0.4341490752848869, -0.02767538444759516 +0.44363908088922077, -0.02810753626349656 +0.44363908088922077, -0.028820863780128693 +0.44363908088922077, -0.029250245392082014 +0.5037424497166696, -0.025905224124768242 +0.5227224609253374, -0.024201548696695385 +0.5100691201195588, -0.024658632348129567 +0.5100691201195588, -0.025157269058785035 +0.5100691201195588, -0.026445413894644998 +0.5417024721340056, -0.022387065110699093 +0.5290491313282271, -0.022996509979277997 +0.5290491313282271, -0.023495146689933473 +0.5606824833426733, -0.020641836623404956 +0.5480291425368948, -0.021085069255098704 +0.5480291425368948, -0.021583705965754173 +0.5796624945513416, -0.018453375504417058 +0.5764991593498969, -0.0189866397644236 +0.567009153745563, -0.019506053004689716 +0.567009153745563, -0.020004689715345185 +0.5986425057600098, -0.01629261642491002 +0.5954791705585651, -0.016805104155305922 +0.5859891649542313, -0.017179081688297522 +0.5859891649542313, -0.01767771839895299 +0.6144591817672334, -0.013605518595266658 +0.6176225169686775, -0.014201112444105138 +0.604969176162899, -0.014602792016577599 +0.604969176162899, -0.015101428727233067 +0.604969176162899, -0.015600065437888536 +0.6366025281773458, -0.011001526884065872 +0.6334391929759011, -0.011590195223034136 +0.6239491873715672, -0.012109608463300251 +0.6239491873715672, -0.01260824517395572 +0.6239491873715672, -0.013106881884611189 +0.6555825393860135, -0.00879921474533755 +0.642929198580235, -0.00920089431781001 +0.642929198580235, -0.009699531028465483 +0.642929198580235, -0.010198167739120951 +0.6745625505946817, -0.0066800087250518045 +0.6619092097889032, -0.007123241356745554 +0.6619092097889032, -0.007621878067401026 +0.6619092097889032, -0.008120514778056495 +0.6935425618033499, -0.0049901843167193816 +0.6808892209975714, -0.00546111898789399 +0.6808892209975714, -0.00595975569854946 +0.7093592378105735, -0.0037782200894317802 +0.6998692322062392, -0.004297633329697894 +0.7315025842206859, -0.002690915039808048 +0.7188492434149074, -0.003300359908386955 +0.7473192602279095, -0.0018460028356418363 +0.7662992714365773, -0.0011811538881012097 +0.7852792826452455, -0.0005786345293925174 +0.8611993274799175, -0.0000522957792561899 +0.965589389127592, -0.00011739557203620937 +1.0288560931564854, -0.0008902824735521862 +1.0478361043651532, -0.0017351946777183994 +1.0668161155738218, -0.002538553822663322 +1.0794694563796003, -0.003134147671501799 +1.0889594619839338, -0.003653560911767913 +1.0984494675882681, -0.004214527211255316 +1.1047761379911574, -0.004879376158795943 +1.1174294787969359, -0.005378012869451412 +1.1269194844012702, -0.006042861816992038 +1.123756149199826, -0.006583051586868796 +1.1364094900056045, -0.007206347475188132 +1.145899495609938, -0.00787119642272876 +1.1427361604084938, -0.008439088232086377 +1.1553895012142723, -0.009034682080924854 +1.1553895012142723, -0.009533318791580326 +1.1648795068186057, -0.010239720798342239 +1.1617161716171616, -0.010779910568218998 +1.17436951242294, -0.011444759515759623 +1.17436951242294, -0.011943396226415095 +1.17436951242294, -0.012442032937070564 +1.1838595180272744, -0.01302377576616861 +1.1806961828258293, -0.013591667575526227 +1.1933495236316078, -0.01410415530592213 +1.1933495236316078, -0.014602792016577599 +1.1933495236316078, -0.015101428727233067 +1.2028395292359422, -0.01564161849710983 +1.199676194034498, -0.016223361326207872 +1.2123295348402765, -0.016680444977642053 +1.2123295348402765, -0.017179081688297522 +1.22181954044461, -0.01788548369505944 +1.22181954044461, -0.01838412040571491 +1.2123295348402765, -0.01863343876104264 +1.2313095460489443, -0.019090522412476822 +1.2313095460489443, -0.01958915912313229 +1.2407995516532786, -0.02021245501145163 +1.2407995516532786, -0.020711091722107097 +1.250289557257612, -0.021334387610426435 +1.2597795628619464, -0.022040789617188354 +1.250289557257612, -0.022290107972516085 +1.2692695684662807, -0.022747191623950266 +1.2692695684662807, -0.023245828334605735 +1.27559623886917, -0.023896826262405926 +1.2882495796749485, -0.024326207874359254 +1.2882495796749485, -0.024824844585014723 +1.2945762500778377, -0.025489693532555348 +1.3072295908836162, -0.025905224124768242 +1.354679618905286, -0.026486966953866285 +1.3356996076966183, -0.027089486312574983 +1.3641696245096204, -0.027567346493619804 +1.3641696245096204, -0.028266822990511503 +1.3689146273117876, -0.02893859744792235 +1.4337629989414031, -0.024575526229686985 +1.430599663739959, -0.0250949394699531 +1.4211096581356246, -0.02557279965099793 +1.4211096581356246, -0.026071436361653398 +1.4211096581356246, -0.026736285309194023 +1.452743010150071, -0.022719489584469406 +1.4400896693442924, -0.023328934453048317 +1.4400896693442924, -0.023827571163703785 +1.4717230213587396, -0.021029665176136983 +1.459069680552961, -0.021417493728869016 +1.459069680552961, -0.021916130439524485 +1.4907030325674073, -0.018979714254553387 +1.4875396973659631, -0.01948527647507907 +1.4780496917616288, -0.019921583596902603 +1.4780496917616288, -0.02042022030755808 +1.509683043776075, -0.016763551096084635 +1.506519708574631, -0.01730374086596139 +1.4970297029702966, -0.017760824517395572 +1.4970297029702966, -0.01825946122805104 +1.5286630549847438, -0.014575089977096741 +1.5160097141789652, -0.015018322608790489 +1.5160097141789652, -0.015516959319445958 +1.5160097141789652, -0.01601559603010143 +1.5476430661934115, -0.011971098265895956 +1.5444797309919664, -0.012462809466681208 +1.534989725387633, -0.012857563529283455 +1.534989725387633, -0.013356200239938923 +1.534989725387633, -0.013854836950594395 +1.5666230774020793, -0.009284000436252588 +1.563459742200635, -0.009803413676518704 +1.5539697365963008, -0.01028127385756353 +1.5539697365963008, -0.010779910568218998 +1.5539697365963008, -0.011278547278874467 +1.585603088610747, -0.007095539317264693 +1.5824397534093029, -0.007601101537790379 +1.5729497478049685, -0.008037408659613917 +1.5729497478049685, -0.008536045370269385 +1.6045830998194157, -0.005322608790489694 +1.5919297590136372, -0.005876649580106882 +1.5919297590136372, -0.006375286290762351 +1.6203997758266393, -0.004027538444759515 +1.610909770222305, -0.004546951685025629 +1.6425431222367513, -0.002898680335914493 +1.6298897814309727, -0.0035496782637146895 +1.66152313344542, -0.00206761915148871 +1.6773398094526435, -0.0013473661249863659 +1.6994831558627554, -0.0007102192169265997 +1.7722398654959832, -0.0000592212891264033 +1.8766299271436573, -0.00010077434834769236 +1.9398966311725507, -0.000765623295888319 +1.9620399775826636, -0.001472025302650233 +1.9778566535898863, -0.0023169375068164445 +1.996836664798555, -0.0032449558294252376 +2.0094900056043334, -0.0038821027374850037 +2.0158166760072227, -0.00451924964554477 +2.028470016813002, -0.004962482277238521 +2.0379600224173355, -0.005668884284000435 +2.0347966872158905, -0.006195223034136766 +2.04745002802167, -0.006873923001417821 +2.056940033626004, -0.007497218889737157 +2.053776698424559, -0.008051259679354343 +2.0664300392303376, -0.008619151488711964 +2.0664300392303376, -0.009117788199367432 +2.075920044834672, -0.009699531028465483 +2.075920044834672, -0.010198167739120951 +2.0854100504390063, -0.010779910568218998 +2.0854100504390063, -0.011278547278874467 +2.0854100504390063, -0.011777183989529939 +2.0949000560433397, -0.012275820700185408 +2.0949000560433397, -0.012753680881230233 +2.104390061647674, -0.013273094121496345 +2.104390061647674, -0.013771730832151817 +2.104390061647674, -0.014270367542807286 +2.1138800672520084, -0.014810557312684042 +2.1107167320505633, -0.01542000218126295 +2.123370072856342, -0.015849383793216272 +2.123370072856342, -0.01634802050387174 +2.123370072856342, -0.01684665721452721 +2.132860078460676, -0.01742840004362526 +2.129696743259231, -0.018010142872723303 +2.1423500840650096, -0.01850877958337878 +2.1423500840650096, -0.019007416294034248 +2.151840089669344, -0.01971381830079616 +2.148676754467899, -0.02024015705093249 +2.1613300952736783, -0.020918857018213548 +2.1708201008780117, -0.02162525902497546 +2.1676567656765666, -0.02215159777511179 +2.180310106482346, -0.02283029774239284 +2.1866367768852353, -0.023550550768895187 +2.199290117691014, -0.024076889519031516 +2.199290117691014, -0.024575526229686985 +2.205616788093903, -0.025184971098265896 +2.2182701288996824, -0.02557279965099793 +2.2182701288996824, -0.026071436361653398 +2.224596799302571, -0.026708583269713163 +2.3055781804595554, -0.02715181590140691 +2.260975154119185, -0.02796210055622205 +2.279955165327853, -0.028658114298178647 +2.28470016813002, -0.02904248009597557 +2.3448035369574693, -0.025351183335151052 +2.33215019615169, -0.025739011887883086 +2.33215019615169, -0.026237648598538554 +2.363783548166137, -0.023370487512269604 +2.3511302073603586, -0.023744465045261204 +2.3511302073603586, -0.024243101755916673 +2.3511302073603586, -0.02474173846657214 +2.3827635593748058, -0.02119587741302214 +2.3796002241733607, -0.02174991820263933 +2.3701102185690264, -0.022248554913294798 +2.3701102185690264, -0.022747191623950266 +2.4017435705834735, -0.019547606063911004 +2.389090229777694, -0.019921583596902603 +2.389090229777694, -0.02042022030755808 +2.4223052493928634, -0.0174491765732359 +2.408070240986363, -0.01792703675428073 +2.408070240986363, -0.018425673464936197 +2.408070240986363, -0.018924310175591666 +2.43970359300081, -0.015156832806194788 +2.4270502521950306, -0.015516959319445958 +2.4270502521950306, -0.01601559603010143 +2.4270502521950306, -0.016514232740756897 +2.4586836042094777, -0.01263594721343658 +2.4460302634036983, -0.01302377576616861 +2.4460302634036983, -0.01352241247682408 +2.4460302634036983, -0.014021049187479552 +2.4460302634036983, -0.01451968589813502 +2.4776636154181455, -0.0098934453048315 +2.4745002802167004, -0.01050981568328062 +2.465010274612367, -0.010946122805104154 +2.465010274612367, -0.011444759515759623 +2.465010274612367, -0.011943396226415095 +2.4966436266268133, -0.007566473988439305 +2.493480291425369, -0.008141291307667138 +2.4839902858210348, -0.008619151488711964 +2.4839902858210348, -0.009117788199367432 +2.517205305436204, -0.005803931726469626 +2.5029702970297025, -0.006292180172319773 +2.5029702970297025, -0.006790816882975241 +2.5346036490441497, -0.004366888428400044 +2.5219503082383703, -0.004879376158795943 +2.5535836602528175, -0.0030787435925400813 +2.540930319447039, -0.0037158905005998475 +2.572563671461486, -0.0022338313883738664 +2.588380347468709, -0.0015135783618715221 +2.6105236938788217, -0.000876431453811756 +2.6832804035120494, -0.00009384883847747896 +2.7876704651597235, -0.0000592212891264033 +2.854100504390061, -0.0006409641182244519 +2.87308051559873, -0.0013058130657650768 +2.8888971916059525, -0.00206761915148871 +2.901550532411731, -0.00263551096084633 +2.9110405380160653, -0.0031133711418911535 +2.9205305436203997, -0.0036327843821572676 +2.926857214023288, -0.004297633329697894 +2.9395105548290674, -0.004796270040353365 +2.9490005604334018, -0.005419565928672701 +2.9490005604334018, -0.005897426109717526 +2.958490566037735, -0.006541498527647507 +2.9648172364406244, -0.007220198494928562 +2.977470577246404, -0.007704984185843604 +2.977470577246404, -0.008203620896499073 +2.9869605828507373, -0.008910022903260989 +2.983797247649292, -0.009464063692878175 +2.9964505884550716, -0.010115061620678373 +2.9964505884550716, -0.010613698331333842 +3.005940594059406, -0.01123699421965318 +3.002777258857961, -0.011832588068491657 +3.0154305996637394, -0.012358926818627986 +3.0154305996637394, -0.012857563529283455 +3.0154305996637394, -0.013356200239938923 +3.0249206052680737, -0.013979496128258261 +3.0217572700666286, -0.014575089977096741 +3.034410610872408, -0.015101428727233067 +3.034410610872408, -0.015600065437888536 +3.034410610872408, -0.01609870214854401 +3.0439006164767415, -0.016763551096084635 +3.0407372812752964, -0.017317591885701825 +3.053390622081076, -0.01792703675428073 +3.053390622081076, -0.018425673464936197 +3.053390622081076, -0.018924310175591666 +3.059717292483965, -0.019547606063911004 +3.0723706332897436, -0.019921583596902603 +3.0723706332897436, -0.02042022030755808 +3.0723706332897436, -0.020918857018213548 +3.078697303692633, -0.02156985494601374 +3.0913506444984122, -0.02199923655796706 +3.0913506444984122, -0.022497873268622536 +3.1008406501027457, -0.02307961609772058 +3.1008406501027457, -0.0235574762787654 +3.11033065570708, -0.024159995637474098 +3.1166573261099684, -0.024797142545533862 +3.1293106669157478, -0.02524037517722761 +3.1293106669157478, -0.025739011887883086 +3.138800672520082, -0.026237648598538554 +3.211557382153309, -0.026625477151270588 +3.186250700541752, -0.027500861598865743 +3.211557382153309, -0.028024430145053986 +3.2014347095086864, -0.028780695822881446 +3.186250700541752, -0.029104809684807505 +3.2558440749735356, -0.02594677718398953 +3.2748240861822033, -0.023924528301886794 +3.262170745376424, -0.024326207874359254 +3.262170745376424, -0.024824844585014723 +3.262170745376424, -0.02532348129567019 +3.293804097390871, -0.021846875340822337 +3.2811507565850926, -0.022248554913294798 +3.2811507565850926, -0.022747191623950266 +3.2811507565850926, -0.023245828334605735 +3.312784108599539, -0.01961686116261315 +3.309620773398094, -0.02017090195223034 +3.3001307677937604, -0.02066953866288581 +3.3001307677937604, -0.02116817537354128 +3.3317641198082075, -0.017871632675319007 +3.319110779002428, -0.018342567346493623 +3.319110779002428, -0.01884120405714909 +3.3507441310168753, -0.015807830733994985 +3.338090790211096, -0.016181808266986585 +3.338090790211096, -0.016680444977642053 +3.338090790211096, -0.017179081688297522 +3.366560807024098, -0.013189988003053767 +3.366560807024098, -0.013688624713709236 +3.3570708014197645, -0.014187261424364708 +3.3570708014197645, -0.014685898135020177 +3.3570708014197645, -0.015184534845675645 +3.3887041534342117, -0.010641400370814702 +3.3855408182327666, -0.01123699421965318 +3.3760508126284323, -0.011694077871087361 +3.3760508126284323, -0.01219271458174283 +3.3760508126284323, -0.012691351292398298 +3.4076841646428795, -0.008466790271567238 +3.3950308238371, -0.008868469844039698 +3.3950308238371, -0.009367106554695167 +3.3950308238371, -0.009865743265350639 +3.4266641758515473, -0.006319882211800633 +3.4140108350457687, -0.006790816882975241 +3.4140108350457687, -0.00728945359363071 +3.4140108350457687, -0.007788090304286182 +3.445644187060216, -0.004588504744246918 +3.4329908462544365, -0.005128694514123677 +3.4329908462544365, -0.005627331224779146 +3.4646241982688837, -0.003258806849165666 +3.4519708574631043, -0.0038821027374850037 +3.4804408742761064, -0.002386192605518594 +3.499420885484774, -0.0017005671283673238 +3.521564231894888, -0.0009733885919947644 +3.5943209415281148, -0.00011462536808812263 +3.708201008780123, -0.00010769985821790749 +3.78095771841335, -0.0009733885919947644 +3.799937729622018, -0.001832151815901406 +3.812591070427797, -0.002386192605518594 +3.8220810760321315, -0.002864052786563419 +3.831571081636465, -0.0033834660268295333 +3.8378977520393542, -0.0040206129348892995 +3.8505510928451336, -0.004463845566583051 +3.856877763248022, -0.005211800632566255 +3.8695311040538014, -0.005793543461664304 +3.8695311040538014, -0.006292180172319773 +3.8758577744566907, -0.00688777402115825 +3.888511115262469, -0.00728945359363071 +3.888511115262469, -0.007788090304286182 +3.8980011208668035, -0.00836983313338423 +3.8948377856653584, -0.00893772494274185 +3.907491126471137, -0.009450212673137745 +3.907491126471137, -0.009948849383793217 +3.9169811320754713, -0.010572145272112555 +3.913817796874026, -0.011153888101210601 +3.9264711376798056, -0.011694077871087361 +3.9264711376798056, -0.01219271458174283 +3.9264711376798056, -0.012691351292398298 +3.935961143284139, -0.013273094121496345 +3.932797808082694, -0.013882538990075253 +3.9454511488884734, -0.014353473661249864 +3.9454511488884734, -0.014852110371905333 +3.9454511488884734, -0.015350747082560802 +3.9549411544928077, -0.01601559603010143 +3.9517778192913626, -0.01659733885919948 +3.964431160097141, -0.017179081688297522 +3.964431160097141, -0.01767771839895299 +3.964431160097141, -0.018176355109608466 +3.9739211657014755, -0.01875809793870651 +3.9739211657014755, -0.01925673464936198 +3.98341117130581, -0.01983847747846003 +3.98341117130581, -0.020337114189115497 +3.9929011769101432, -0.020918857018213548 +3.9929011769101432, -0.021417493728869016 +4.002391182514478, -0.02199923655796706 +4.011881188118812, -0.022664085505507692 +4.011881188118812, -0.023162722216163154 +4.021371193723145, -0.023827571163703785 +4.027697864126035, -0.02449242011124441 +4.040351204931814, -0.02499105682189988 +4.046677875334702, -0.025739011887883086 +4.087801232953484, -0.027068709782964336 +4.1289245905722645, -0.02773355873050496 +4.108679245283019, -0.028340233395135785 +4.121016252568653, -0.028897044388701054 +4.185864624198269, -0.024381611953320975 +4.182701288996824, -0.024887174173846657 +4.17321128339249, -0.02532348129567019 +4.17321128339249, -0.02582211800632566 +4.17321128339249, -0.02677783836841531 +4.204844635406937, -0.02205464063692878 +4.201681300205492, -0.022664085505507692 +4.192191294601158, -0.023162722216163154 +4.192191294601158, -0.02366135892681863 +4.223824646615605, -0.020378667248336785 +4.211171305809826, -0.02075264478132839 +4.211171305809826, -0.02125128149198386 +4.242804657824273, -0.0182871632675319 +4.230151317018494, -0.01875809793870651 +4.230151317018494, -0.01925673464936198 +4.230151317018494, -0.019755371360017447 +4.261784669032941, -0.01609870214854401 +4.258621333831496, -0.016638891918420766 +4.249131328227162, -0.017095975569854947 +4.249131328227162, -0.017594612280510416 +4.280764680241609, -0.013744028792670957 +4.277601345040164, -0.014374250190860508 +4.26811133943583, -0.014852110371905333 +4.26811133943583, -0.015350747082560802 +4.296581356248832, -0.011444759515759623 +4.296581356248832, -0.011922619696804448 +4.287091350644498, -0.012442032937070564 +4.287091350644498, -0.012940669647726033 +4.318724702658945, -0.009006980041443994 +4.306071361853166, -0.009450212673137745 +4.306071361853166, -0.009948849383793217 +4.306071361853166, -0.010447486094448686 +4.306071361853166, -0.010946122805104154 +4.3377047138676135, -0.006735412804013524 +4.334541378666168, -0.0072686770640200665 +4.325051373061834, -0.007788090304286182 +4.325051373061834, -0.008286727014941651 +4.356684725076281, -0.004907078198276802 +4.344031384270502, -0.00546111898789399 +4.344031384270502, -0.00595975569854946 +4.375664736284949, -0.0035081252044934005 +4.3630113954791705, -0.004131421092812738 +4.394644747493618, -0.0026493619805867587 +4.41046142350084, -0.00186677936525248 +4.429441434709508, -0.001243483476933144 +4.448421445918177, -0.0006409641182244519 +4.524341490752849, -0.0000592212891264033 +4.628731552400523, -0.00010908496019194913 +4.691998256429415, -0.0008487294143308972 +4.710978267638084, -0.0016243865197949608 +4.7236316084438625, -0.0021368742501908598 +4.733121614048197, -0.002614734431235685 +4.742611619652531, -0.003134147671501799 +4.74893829005542, -0.0037574435598211366 +4.761591630861199, -0.004214527211255316 +4.767918301264088, -0.004920929218017232 +4.780571642069867, -0.00546111898789399 +4.790061647674201, -0.0061675209946559055 +4.786898312472756, -0.006693859744792235 +4.799551653278535, -0.007372559712073292 +4.809041658882869, -0.007912749481950048 +4.809041658882869, -0.008411386192605516 +4.818531664487203, -0.008951575962482276 +4.818531664487203, -0.009450212673137745 +4.8280216700915375, -0.010031955502235795 +4.824858334890092, -0.010613698331333842 +4.837511675695871, -0.01111233504198931 +4.837511675695871, -0.01161097175264478 +4.837511675695871, -0.012109608463300251 +4.847001681300205, -0.01260824517395572 +4.847001681300205, -0.013106881884611189 +4.856491686904539, -0.013605518595266658 +4.856491686904539, -0.01410415530592213 +4.856491686904539, -0.014602792016577599 +4.865981692508873, -0.015226087904896936 +4.862818357307428, -0.01579397971425455 +4.875471698113207, -0.01634802050387174 +4.875471698113207, -0.01684665721452721 +4.875471698113207, -0.017345293925182678 +4.884961703717541, -0.01792703675428073 +4.881798368516096, -0.018522630603119206 +4.894451709321875, -0.019007416294034248 +4.894451709321875, -0.019506053004689716 +4.894451709321875, -0.020004689715345185 +4.9039417149262094, -0.020503326426000654 +4.9039417149262094, -0.020981186607045482 +4.913431720530543, -0.02150059984731159 +4.913431720530543, -0.02199923655796706 +4.919758390933432, -0.02263638346602683 +4.9324117317392115, -0.02307961609772058 +4.9324117317392115, -0.023578252808376048 +4.9387384021421, -0.02421539971643582 +4.951391742947879, -0.024658632348129567 +4.960881748552214, -0.02536503435489148 +4.951391742947879, -0.025614352710219217 +4.970371754156548, -0.026071436361653398 +4.976698424559436, -0.02677783836841531 +5.057679805716421, -0.027259853855382266 +5.013076779376051, -0.027993265350638015 +5.0311077900242855, -0.028647726033373323 +5.096905162214335, -0.025101864979823314 +5.084251821408556, -0.025489693532555348 +5.084251821408556, -0.025988330243210817 +5.084251821408556, -0.026486966953866285 +5.115885173423002, -0.02295495692005671 +5.103231832617223, -0.02341204057149089 +5.103231832617223, -0.02391067728214636 +5.103231832617223, -0.02440931399280183 +5.13486518463167, -0.020835750899770966 +5.122211843825892, -0.02125128149198386 +5.122211843825892, -0.02174991820263933 +5.122211843825892, -0.022248554913294798 +5.153845195840339, -0.018771948958446943 +5.141191855034559, -0.019173628530919404 +5.141191855034559, -0.019672265241574872 +5.141191855034559, -0.02017090195223034 +5.172825207049006, -0.01659733885919948 +5.169661871847562, -0.017116752099465588 +5.160171866243227, -0.017594612280510416 +5.160171866243227, -0.018093248991165885 +5.191805218257675, -0.014353473661249864 +5.18864188305623, -0.014893663431126624 +5.179151877451896, -0.015350747082560802 +5.179151877451896, -0.015849383793216272 +5.210785229466343, -0.011998800305376813 +5.207621894264897, -0.012587468644345077 +5.198131888660563, -0.013106881884611189 +5.198131888660563, -0.013605518595266658 +5.22976524067501, -0.009644126949503761 +5.226601905473566, -0.010198167739120951 +5.217111899869232, -0.01069680444977642 +5.217111899869232, -0.011195441160431889 +5.245581916682235, -0.007372559712073292 +5.245581916682235, -0.007850419893118113 +5.2360919110779, -0.00836983313338423 +5.2360919110779, -0.008868469844039698 +5.2677252630923475, -0.005267204711527973 +5.2645619278909015, -0.005855873050496237 +5.255071922286567, -0.006375286290762351 +5.255071922286567, -0.006873923001417821 +5.286705274301014, -0.004006761915148871 +5.274051933495236, -0.004463845566583051 +5.305685285509683, -0.002774021158250626 +5.2930319447039045, -0.0033834660268295333 +5.321501961516906, -0.0019498854836950581 +5.340481972725574, -0.0013265895953757222 +5.362625319135687, -0.000765623295888319 +5.435382028768914, -0.00007307230886683357 +5.539772090416588, -0.00010077434834769236 +5.606202129646927, -0.00072407023666703 +5.625182140855595, -0.0013681426545970113 +5.640998816862818, -0.0021645762896717203 +5.6536521576685965, -0.0028017231977314865 +5.659978828071485, -0.003452721125531683 +5.672632168877265, -0.003965208855927582 +5.6789588392801535, -0.004643908823208637 +5.691612180085932, -0.005128694514123677 +5.701102185690266, -0.005835096520885593 +5.697938850488822, -0.006361435271021922 +5.710592191294601, -0.0070401352383029775 +5.716918861697489, -0.007704984185843604 +5.729572202503269, -0.008120514778056495 +5.729572202503269, -0.008619151488711964 +5.729572202503269, -0.009117788199367432 +5.735898872906158, -0.00974108408768677 +5.748552213711936, -0.010115061620678373 +5.748552213711936, -0.010613698331333842 +5.748552213711936, -0.01111233504198931 +5.758042219316271, -0.011735630930308648 +5.754878884114826, -0.012303522739666268 +5.767532224920605, -0.012857563529283455 +5.767532224920605, -0.013356200239938923 +5.767532224920605, -0.013854836950594395 +5.777022230524939, -0.014395026720471151 +5.773858895323493, -0.015004471589050059 +5.786512236129274, -0.01543385320100338 +5.786512236129274, -0.015932489911658854 +5.786512236129274, -0.016431126622314322 +5.796002241733606, -0.01705442251063366 +5.796002241733606, -0.01755305922128913 +5.796002241733606, -0.01803091940233395 +5.8054922473379404, -0.018674991820263935 +5.8054922473379404, -0.019173628530919404 +5.814982252942275, -0.01979692441923874 +5.811818917740831, -0.020378667248336785 +5.824472258546609, -0.020918857018213548 +5.824472258546609, -0.021417493728869016 +5.833962264150943, -0.02208234267640964 +5.833962264150943, -0.02258097938706511 +5.843452269755278, -0.023245828334605735 +5.849778940158166, -0.02393837932162722 +5.862432280963945, -0.02449242011124441 +5.868758951366835, -0.025198822118006323 +5.881412292172613, -0.025739011887883086 +5.887738962575502, -0.026445413894644998 +5.9636590074101745, -0.026985603664521754 +5.957332337007284, -0.028841640309739333 +6.0079457002304, -0.025780564947104373 +5.995292359424622, -0.026237648598538554 +6.026925711439069, -0.023522848729414327 +6.023762376237623, -0.024056112989420876 +6.014272370633289, -0.024575526229686985 +6.014272370633289, -0.025074162940342454 +6.045905722647736, -0.02130668557094558 +6.0427423874462916, -0.021812247791471263 +6.033252381841957, -0.022248554913294798 +6.033252381841957, -0.022747191623950266 +6.064885733856404, -0.019201330570400257 +6.052232393050626, -0.01958915912313229 +6.052232393050626, -0.02008779583378776 +6.052232393050626, -0.020586432544443235 +6.083865745065073, -0.017109826589595374 +6.071212404259293, -0.017511506162067834 +6.071212404259293, -0.018010142872723303 +6.071212404259293, -0.01850877958337878 +6.10284575627374, -0.014990620569309632 +6.090192415467961, -0.01543385320100338 +6.090192415467961, -0.015932489911658854 +6.090192415467961, -0.016431126622314322 +6.121825767482409, -0.012899116588504745 +6.10917242667663, -0.013273094121496345 +6.10917242667663, -0.013771730832151817 +6.10917242667663, -0.014270367542807286 +6.140805778691077, -0.010225869778601812 +6.137642443489631, -0.010821463627440289 +6.128152437885297, -0.011278547278874467 +6.128152437885297, -0.011777183989529939 +6.128152437885297, -0.012275820700185408 +6.1566224546983, -0.007954302541171339 +6.1566224546983, -0.008452939251826807 +6.147132449093966, -0.008951575962482276 +6.147132449093966, -0.009450212673137745 +6.178765801108413, -0.006001308757770749 +6.166112460302634, -0.006458392409204929 +6.166112460302634, -0.006957029119860399 +6.166112460302634, -0.00745566583051587 +6.197745812317081, -0.004311484349438323 +6.185092471511301, -0.004796270040353365 +6.185092471511301, -0.0052949067510088335 +6.216725823525748, -0.0029817864543570712 +6.20407248271997, -0.0036327843821572676 +6.232542499532971, -0.0021368742501908598 +6.25152251074164, -0.0014928018322608785 +6.2736658571517525, -0.000876431453811756 +6.346422566784979, -0.00010077434834769236 +6.460302634036988, -0.00012155087795833776 +6.526732673267326, -0.0009110590031628299 +6.545712684475995, -0.0012227069473224987 +6.552039354878883, -0.0019429599738248447 +6.564692695684662, -0.0025524048424037504 +6.574182701288996, -0.00309259461228051 +6.5836727068933305, -0.0036327843821572676 +6.589999377296219, -0.004339186388919183 +6.602652718101999, -0.004879376158795943 +6.612142723706332, -0.005544225106336568 +6.612142723706332, -0.006042861816992038 +6.621632729310666, -0.006707710764532663 +6.627959399713556, -0.007344857672592431 +6.640612740519335, -0.007788090304286182 +6.640612740519335, -0.008286727014941651 +6.650102746123669, -0.008951575962482276 +6.650102746123669, -0.009450212673137745 +6.659592751728003, -0.010115061620678373 +6.659592751728003, -0.010613698331333842 +6.669082757332336, -0.01111233504198931 +6.669082757332336, -0.01161097175264478 +6.67857276293667, -0.012109608463300251 +6.67857276293667, -0.01260824517395572 +6.67857276293667, -0.013106881884611189 +6.688062768541005, -0.013605518595266658 +6.68489943333956, -0.014228814483585995 +6.697552774145339, -0.014602792016577599 +6.697552774145339, -0.015101428727233067 +6.697552774145339, -0.015600065437888536 +6.707042779749673, -0.016264914385429166 +6.707042779749673, -0.016763551096084635 +6.703879444548229, -0.01730374086596139 +6.716532785354006, -0.01792703675428073 +6.716532785354006, -0.018425673464936197 +6.72602279095834, -0.019090522412476822 +6.722859455756896, -0.01965841422183444 +6.735512796562674, -0.020254008070672923 +6.735512796562674, -0.02075264478132839 +6.735512796562674, -0.02125128149198386 +6.741839466965565, -0.021860726360562764 +6.754492807771343, -0.022248554913294798 +6.754492807771343, -0.022747191623950266 +6.763982813375677, -0.02341204057149089 +6.763982813375677, -0.02391067728214636 +6.77347281898001, -0.024575526229686985 +6.782962824584344, -0.025074162940342454 +6.792452830188679, -0.02557279965099793 +6.798779500591569, -0.02622379757879812 +6.874699545426242, -0.026680881230232302 +6.849392863814683, -0.027318028138292066 +6.872168877265085, -0.028032740756898246 +6.862046204620461, -0.028523066855709454 +6.877862880627686, -0.02881393827025848 +6.937966249455132, -0.024104591558512377 +6.934802914253688, -0.024700185407350854 +6.925312908649356, -0.025157269058785035 +6.925312908649356, -0.025655905769440504 +6.925312908649356, -0.026154542480095973 +6.925312908649356, -0.026611626131530154 +6.956946260663801, -0.021777620242120183 +6.953782925462357, -0.02235243756134802 +6.9442929198580226, -0.02283029774239284 +6.9442929198580226, -0.023328934453048317 +6.9727629366710255, -0.019506053004689716 +6.9727629366710255, -0.020004689715345185 +6.963272931066691, -0.020503326426000654 +6.963272931066691, -0.021001963136656122 +6.994906283081137, -0.017636165339731703 +6.98225294227536, -0.018010142872723303 +6.98225294227536, -0.01850877958337878 +6.98225294227536, -0.019007416294034248 +7.013886294289805, -0.015503108299705528 +7.001232953484027, -0.01601559603010143 +7.001232953484027, -0.016514232740756897 +7.001232953484027, -0.017012869451412366 +7.032866305498474, -0.013217690042534624 +7.02970297029703, -0.013792507361762461 +7.020212964692695, -0.014270367542807286 +7.020212964692695, -0.014769004253462755 +7.051846316707141, -0.010835314647180716 +7.048682981505697, -0.01146553604537027 +7.039192975901364, -0.011943396226415095 +7.039192975901364, -0.012442032937070564 +7.0708263279158095, -0.008646853528192824 +7.067662992714365, -0.00913856472897808 +7.058172987110031, -0.009533318791580326 +7.058172987110031, -0.010031955502235795 +7.089806339124478, -0.006458392409204929 +7.0771529983187, -0.006957029119860399 +7.0771529983187, -0.00745566583051587 +7.0771529983187, -0.007954302541171339 +7.108786350333145, -0.004643908823208637 +7.0961330095273665, -0.005211800632566255 +7.0961330095273665, -0.005710437343221724 +7.1246030263403695, -0.0033834660268295333 +7.115113020736035, -0.0038821027374850037 +7.143583037549038, -0.002303086487076016 +7.134093031944704, -0.0028848293161740646 +7.162563048757705, -0.0016590140691460347 +7.181543059966374, -0.0011396008288799206 +7.200523071175042, -0.0005786345293925174 +7.276443116009713, -0.0000522957792561899 +7.3808331776573874, -0.00013401679572472465 +7.444099881686282, -0.0008902824735521862 +7.46307989289495, -0.0017351946777183994 +7.475733233700727, -0.002303086487076016 +7.4852232393050615, -0.002780946668120841 +7.494713244909396, -0.003300359908386955 +7.501039915312286, -0.003992910895408442 +7.5136932561180645, -0.004463845566583051 +7.5136932561180645, -0.004962482277238521 +7.523183261722399, -0.00546111898789399 +7.532673267326731, -0.00595975569854946 +7.532673267326731, -0.006458392409204929 +7.542163272931066, -0.006957029119860399 +7.5516532785354, -0.00745566583051587 +7.5516532785354, -0.007954302541171339 +7.55797994893829, -0.008619151488711964 +7.570633289744069, -0.009034682080924854 +7.570633289744069, -0.009533318791580326 +7.570633289744069, -0.010031955502235795 +7.580123295348403, -0.010572145272112555 +7.580123295348403, -0.011070781982768023 +7.589613300952736, -0.01161097175264478 +7.589613300952736, -0.012109608463300251 +7.59910330655707, -0.012774457410840876 +7.59910330655707, -0.013273094121496345 +7.59910330655707, -0.01375095430254117 +7.608593312161404, -0.014436579779692442 +7.608593312161404, -0.014935216490347911 +7.6180833177657385, -0.015558512378667249 +7.614919982564294, -0.016140255207765297 +7.627573323370073, -0.016680444977642053 +7.627573323370073, -0.017179081688297522 +7.627573323370073, -0.01767771839895299 +7.637063328974407, -0.01838412040571491 +7.633899993772963, -0.0189381611953321 +7.64655333457874, -0.01958915912313229 +7.64655333457874, -0.02008779583378776 +7.656043340183074, -0.02079419784054968 +7.656043340183074, -0.021292834551205148 +7.64655333457874, -0.021542152906532885 +7.665533345787408, -0.02199923655796706 +7.665533345787408, -0.022497873268622536 +7.675023351391743, -0.02307961609772058 +7.675023351391743, -0.0235574762787654 +7.684513356996077, -0.024159995637474098 +7.690840027398967, -0.02483869560475515 +7.703493368204744, -0.02532348129567019 +7.709820038607634, -0.026016032282691677 +7.807883429852418, -0.027141427636601594 +7.765178404632915, -0.027847829643363506 +7.790801419764619, -0.02850644563202094 +7.8490067874711995, -0.024714036427091288 +7.845843452269755, -0.02532348129567019 +7.836353446665421, -0.02582211800632566 +7.836353446665421, -0.02632075471698113 +7.867986798679866, -0.022470171229141675 +7.864823463478422, -0.023017286508888644 +7.855333457874088, -0.02341204057149089 +7.855333457874088, -0.02391067728214636 +7.886966809888535, -0.020254008070672923 +7.883803474687091, -0.02077342131093903 +7.8743134690827565, -0.02125128149198386 +7.8743134690827565, -0.02174991820263933 +7.905946821097202, -0.018051695931944597 +7.893293480291425, -0.01850877958337878 +7.893293480291425, -0.019007416294034248 +7.893293480291425, -0.019506053004689716 +7.924926832305871, -0.01594634093139928 +7.912273491500092, -0.01634802050387174 +7.912273491500092, -0.01684665721452721 +7.912273491500092, -0.017345293925182678 +7.943906843514539, -0.013716326753190096 +7.940743508313095, -0.01429114407241793 +7.931253502708761, -0.014769004253462755 +7.931253502708761, -0.015267640964118223 +7.962886854723206, -0.011500163594721344 +7.959723519521764, -0.012026502344857673 +7.950233513917429, -0.012442032937070564 +7.950233513917429, -0.012940669647726033 +7.981866865931875, -0.00933940451521431 +7.969213525126096, -0.00978263714690806 +7.969213525126096, -0.01028127385756353 +7.969213525126096, -0.010779910568218998 +8.000846877140543, -0.007247900534409423 +7.988193536334765, -0.007621878067401026 +7.988193536334765, -0.008120514778056495 +7.988193536334765, -0.008619151488711964 +8.019826888349211, -0.0052533536917875445 +8.007173547543434, -0.005627331224779146 +8.007173547543434, -0.0061259679354346164 +8.007173547543434, -0.006624604646090085 +8.03880689955788, -0.003729741520340276 +8.0261535587521, -0.004131421092812738 +8.0261535587521, -0.004630057803468207 +8.057786910766549, -0.0025247028029228916 +8.045133569960768, -0.003134147671501799 +8.073603586773771, -0.0017421201875886128 +8.095746933183882, -0.0011257498091394903 +8.130543620399774, -0.0003708692332860721 +8.206463665234448, -0.000024593739775329373 +8.301363721277788, -0.0001319391427636596 +8.35830375490379, -0.0008071763551096081 +8.377283766112459, -0.0014928018322608785 +8.396263777321128, -0.002261533427854727 +8.386773771716793, -0.0025108517831824613 +8.405753782925462, -0.0029679354346166427 +8.41208045332835, -0.0036327843821572676 +8.42473379413413, -0.004131421092812738 +8.434223799738465, -0.004837823099574654 +8.42473379413413, -0.005087141454902388 +8.4437138053428, -0.005544225106336568 +8.4437138053428, -0.006042861816992038 +8.450040475745688, -0.0066800087250518045 +8.462693816551464, -0.007123241356745554 +8.462693816551464, -0.007621878067401026 +8.469020486954356, -0.00827287599520122 +8.481673827760133, -0.008702257607154542 +8.481673827760133, -0.00920089431781001 +8.491163833364467, -0.009865743265350639 +8.488000498163025, -0.010433635074708255 +8.500653838968802, -0.011029228923546732 +8.500653838968802, -0.011527865634202201 +8.510143844573136, -0.012151161522521539 +8.506980509371694, -0.012719053331879155 +8.51963385017747, -0.013273094121496345 +8.51963385017747, -0.013771730832151817 +8.51963385017747, -0.014270367542807286 +8.529123855781805, -0.014852110371905333 +8.525960520580359, -0.01542000218126295 +8.538613861386139, -0.015932489911658854 +8.538613861386139, -0.016431126622314322 +8.538613861386139, -0.01692976333296979 +8.548103866990473, -0.017511506162067834 +8.544940531789027, -0.01810710001090632 +8.557593872594808, -0.018591885701821353 +8.557593872594808, -0.019090522412476822 +8.557593872594808, -0.01958915912313229 +8.567083878199139, -0.02017090195223034 +8.563920542997696, -0.020780346820809245 +8.576573883803473, -0.02125128149198386 +8.576573883803473, -0.02174991820263933 +8.576573883803473, -0.022248554913294798 +8.582900554206365, -0.022885701821354562 +8.595553895012142, -0.023245828334605735 +8.595553895012142, -0.023744465045261204 +8.601880565415033, -0.02449242011124441 +8.61453390622081, -0.025074162940342454 +8.620860576623699, -0.0257944159668448 +8.633513917429479, -0.026611626131530154 +8.690453951055481, -0.02868927909259461 +8.760047325487264, -0.02551739557203621 +8.756883990285822, -0.026071436361653398 +8.779027336695933, -0.023190424255644014 +8.77586400149449, -0.02376524157487185 +8.766373995890156, -0.024243101755916673 +8.766373995890156, -0.02474173846657214 +8.799589015505322, -0.020939633547824188 +8.785354007098821, -0.021417493728869016 +8.785354007098821, -0.021916130439524485 +8.785354007098821, -0.022414767150179954 +8.81698735911327, -0.01850877958337878 +8.813824023911824, -0.019048969353255535 +8.80433401830749, -0.019506053004689716 +8.80433401830749, -0.020004689715345185 +8.835967370321935, -0.016361871523612175 +8.823314029516158, -0.016763551096084635 +8.823314029516158, -0.017262187806740104 +8.823314029516158, -0.017760824517395572 +8.854947381530604, -0.014298069582288143 +8.842294040724827, -0.014685898135020177 +8.842294040724827, -0.015184534845675645 +8.842294040724827, -0.015683171556331116 +8.873927392739272, -0.012165012542261969 +8.861274051933496, -0.01260824517395572 +8.861274051933496, -0.013106881884611189 +8.861274051933496, -0.013605518595266658 +8.892907403947941, -0.009948849383793217 +8.880254063142164, -0.010447486094448686 +8.880254063142164, -0.010946122805104154 +8.880254063142164, -0.011444759515759623 +8.91188741515661, -0.007801941324026609 +8.89923407435083, -0.008203620896499073 +8.89923407435083, -0.008702257607154542 +8.89923407435083, -0.00920089431781001 +8.930867426365278, -0.005682735303740865 +8.918214085559498, -0.0061259679354346164 +8.918214085559498, -0.006624604646090085 +8.918214085559498, -0.007123241356745554 +8.949847437573943, -0.003992910895408442 +8.937194096768167, -0.004463845566583051 +8.937194096768167, -0.004962482277238521 +8.968827448782612, -0.002704766059548478 +8.956174107976835, -0.003300359908386955 +8.984644124789838, -0.0018875558948631254 +9.003624135998503, -0.0013058130657650768 +9.022604147207172, -0.000765623295888319 +9.098524192041847, -0.0000799978187370487 +9.20291425368952, -0.00010077434834769236 +9.269344292919858, -0.0006617406478350955 +9.288324304128526, -0.0012642600065437878 +9.304140980135749, -0.0020399171120078514 +9.31679432094153, -0.00263551096084633 +9.323120991344418, -0.0033142109281273837 +9.335774332150194, -0.0037989966190424256 +9.335774332150194, -0.004297633329697894 +9.345264337754529, -0.004775493510742719 +9.354754343358863, -0.0052949067510088335 +9.364244348963197, -0.006001308757770749 +9.361081013761755, -0.0065276475079070785 +9.373734354567532, -0.007206347475188132 +9.38006102497042, -0.00787119642272876 +9.3927143657762, -0.008286727014941651 +9.3927143657762, -0.00878536372559712 +9.402204371380535, -0.009450212673137745 +9.399041036179089, -0.009990402443014504 +9.411694376984869, -0.010613698331333842 +9.411694376984869, -0.01111233504198931 +9.418021047387757, -0.011777183989529939 +9.430674388193534, -0.01219271458174283 +9.430674388193534, -0.012691351292398298 +9.430674388193534, -0.013189988003053767 +9.440164393797868, -0.013854836950594395 +9.440164393797868, -0.014353473661249864 +9.440164393797868, -0.01483133384229469 +9.449654399402203, -0.015516959319445958 +9.449654399402203, -0.01601559603010143 +9.459144405006537, -0.016680444977642053 +9.459144405006537, -0.017179081688297522 +9.459144405006537, -0.01765694186934235 +9.468634410610871, -0.018342567346493623 +9.468634410610871, -0.01884120405714909 +9.478124416215206, -0.01946449994546843 +9.478124416215206, -0.019963136656123898 +9.478124416215206, -0.02044099683716872 +9.48761442181954, -0.021085069255098704 +9.48761442181954, -0.021583705965754173 +9.497104427423874, -0.02212389573563093 +9.497104427423874, -0.022622532446286397 +9.506594433028209, -0.023162722216163154 +9.506594433028209, -0.02366135892681863 +9.512921103431097, -0.024326207874359254 +9.525574444236877, -0.024824844585014723 +9.531901114639766, -0.025558948631257496 +9.544554455445542, -0.026154542480095973 +9.554044461049877, -0.0266324026611408 +9.620474500280217, -0.028495364816228594 +9.671087863503331, -0.026306903697240702 +9.690067874712, -0.024201548696695385 +9.67741453390622, -0.024658632348129567 +9.67741453390622, -0.025157269058785035 +9.67741453390622, -0.025655905769440504 +9.709047885920665, -0.021639110044715894 +9.696394545114888, -0.02199923655796706 +9.696394545114888, -0.022497873268622536 +9.696394545114888, -0.022996509979277997 +9.696394545114888, -0.023495146689933473 +9.728027897129333, -0.019007416294034248 +9.724864561927891, -0.019547606063911004 +9.715374556323557, -0.020004689715345185 +9.715374556323557, -0.020503326426000654 +9.715374556323557, -0.021001963136656122 +9.747007908338002, -0.01687435925400807 +9.734354567532225, -0.017262187806740104 +9.734354567532225, -0.017760824517395572 +9.734354567532225, -0.01825946122805104 +9.76598791954667, -0.014824408332424476 +9.753334578740894, -0.015184534845675645 +9.753334578740894, -0.015683171556331116 +9.753334578740894, -0.016181808266986585 +9.78496793075534, -0.012719053331879155 +9.77231458994956, -0.013189988003053767 +9.77231458994956, -0.013688624713709236 +9.77231458994956, -0.014187261424364708 +9.803947941964008, -0.010530592212891264 +9.800784606762562, -0.011050005453157376 +9.791294601158228, -0.011527865634202201 +9.791294601158228, -0.012026502344857673 +9.822927953172673, -0.008342131093903369 +9.81976461797123, -0.008847693314429054 +9.810274612366896, -0.009284000436252588 +9.841907964381342, -0.006181372014396334 +9.8387446291799, -0.00668693423492202 +9.829254623575565, -0.007123241356745554 +9.829254623575565, -0.007621878067401026 +9.86088797559001, -0.004394590467880901 +9.848234634784234, -0.00546111898789399 +9.876704651597233, -0.0031133711418911535 +9.867214645992899, -0.0036327843821572676 +9.895684662805902, -0.0020537681317482816 +9.886194657201568, -0.00263551096084633 +9.917828009216013, -0.0013058130657650768 +9.952624696431908, -0.0006201875886138065 diff --git a/validation/Turek_dy_T.csv b/validation/Turek_dy_T.csv new file mode 100644 index 000000000..f70e76c1b --- /dev/null +++ b/validation/Turek_dy_T.csv @@ -0,0 +1,1034 @@ +time,displacement +0.030898052747961202, -0.0030094492343464216 +0.04945044814103561, -0.005863015886974077 +0.05121734294037594, -0.020068850073671214 +0.059128929921351325, -0.010524163246866274 +0.06808566672782934, -0.009382481017103164 +0.07758667023589005, -0.012616703068063721 +0.08403899142276705, -0.015724134641325188 +0.09644669463420685, -0.01794360692283954 +0.10613700829933981, -0.022699882636660514 +0.11559068426813202, -0.025553591271905977 +0.12506802400655825, -0.028597556615008984 +0.12535198924216662, -0.030880637109299593 +0.1348293289805933, -0.033924602452402614 +0.14125009847462522, -0.036778358415187326 +0.15364202583964248, -0.03887099289146333 +0.1604177518781844, -0.04457859947211132 +0.16314302934770275, -0.04210521494242389 +0.17292799809137183, -0.047622517487675056 +0.17939609512467136, -0.0508567868661749 +0.19183535002895669, -0.053329934758165984 +0.1921193152645646, -0.0556130152524566 +0.1985558606050195, -0.05859360902047969 +0.2109320121236138, -0.06055940569151731 +0.21121597735922215, -0.06284248618580793 +0.2206696533280148, -0.06569619482105339 +0.22094178667880593, -0.06788414696141523 +0.23040729453241537, -0.07083298395058946 +0.23716724472453476, -0.0764137527259991 +0.23988463427084206, -0.07387694929369247 +0.24964593924487666, -0.07920399513108609 +0.24992990448048502, -0.0814870756253767 +0.25633489812809396, -0.08421399378292307 +0.2686952738002657, -0.08605295264872233 +0.26897923903587406, -0.08833603314301293 +0.27543944814596255, -0.09150688361889357 +0.2878392634341913, -0.09366293699778877 +0.2881232286697992, -0.09594601749207937 +0.2945913257030992, -0.09918028687057917 +0.30703058060738453, -0.10165343476257027 +0.31650792034581077, -0.10469740010567327 +0.3167800536966019, -0.10688535224603513 +0.3324375812711149, -0.11084879702203779 +0.3448926120218223, -0.11344878271926723 +0.35426346479689563, -0.11563659287701125 +0.3698736648321401, -0.11921952423729881 +0.38856015491980767, -0.12315121223445255 +0.4539420182403622, -0.1296675471778678 +0.5100775559521251, -0.12476650114967106 +0.5217792900361498, -0.12130998164676846 +0.5365099866333298, -0.11782170536501702 +0.5453484045916377, -0.11572873959596613 +0.5571881773318603, -0.11338205088889927 +0.5628832578904492, -0.1104012678107191 +0.5747072547842498, -0.10792774129841387 +0.5803707836499927, -0.10469328260975697 +0.5921553409277367, -0.10190266158435582 +0.5977636543310001, -0.09822427057736463 +0.6095639874551662, -0.09556048735720185 +0.6149198873156676, -0.08985269146639678 +0.615203852551276, -0.0921357719606874 +0.6282899171588907, -0.08761696217514385 +0.6323127579966745, -0.08338367943400445 +0.6411275121853488, -0.08110045695709603 +0.6438449017316556, -0.0785636535247894 +0.649468990981342, -0.07501210032303658 +0.6582719132851991, -0.07263374949219939 +0.6610011347163227, -0.07019207441382155 +0.6663412587304012, -0.06435744071777813 +0.6666252239660095, -0.06664052121206873 +0.6781889193938353, -0.06207417091333044 +0.6835448192543359, -0.05636637502252538 +0.6838287844899442, -0.058649455516815996 +0.695463471226673, -0.05465387534165034 +0.7008903623960756, -0.04951684957441793 +0.701174327631684, -0.05179993006870853 +0.7127695747523557, -0.047487255380446985 +0.7181885779985469, -0.04228681071059538 +0.7184725432341552, -0.044569891204886 +0.730099342047672, -0.04051089212710117 +0.7355341211402866, -0.03543728526248795 +0.735818086375895, -0.03772036575677856 +0.7474054455733548, -0.033344272165897804 +0.7528323367427578, -0.02820724639866539 +0.7531163019783658, -0.030490326892956006 +0.7646168940205014, -0.025416625373264237 +0.7702252074237652, -0.021738234366273056 +0.7820018767782972, -0.01888419443825272 +0.7876180781047726, -0.015269222333880714 +0.7994894025378412, -0.013176209237290577 +0.8052002589428522, -0.01032226396434878 +0.8170163679134412, -0.00778531854942436 +0.831751008472227, -0.004328751718982511 +0.8858227220859711, -0.00014225225040956357 +0.9499870334486267, -0.003946392529235954 +0.9683619505694461, -0.005373033872931976 +0.974830047602746, -0.00860730325143181 +0.9872693025070314, -0.011080451143422897 +0.9937295116171199, -0.014251301619303547 +1.0061766544446158, -0.016787868413913824 +1.0126526394011277, -0.020085556695032827 +1.025084006382201, -0.022495285684404745 +1.0253679716178095, -0.024778366178695353 +1.0317966290350524, -0.027695541044099256 +1.0441806684768582, -0.029724756617756067 +1.0444646337124666, -0.03200783711204669 +1.0508854032064985, -0.034861593074831415 +1.0632300030322472, -0.03657371413539229 +1.0635139682678556, -0.0388567946296829 +1.069966289454733, -0.04196422620294438 +1.0823739926661724, -0.04418369848445873 +1.0826579579017808, -0.046466778978749346 +1.0890787273958127, -0.04932053494153407 +1.1014233272215619, -0.05103265600209496 +1.1017072924571703, -0.053315736496385574 +1.1081675015672587, -0.05648658697226622 +1.120567316855487, -0.05864264035116139 +1.1208512820910954, -0.06092572084545199 +1.1302812942902536, -0.0635891727728399 +1.1305534276410447, -0.06577712491320174 +1.1399952717250201, -0.06853570519451843 +1.1494726114634468, -0.07157967053762145 +1.1497565766990552, -0.07386275103191206 +1.1592339164374819, -0.07690671637501507 +1.1659859787063898, -0.0824240662478055 +1.1687112561759085, -0.07995068171811807 +1.1784725611499431, -0.08527772755551169 +1.1787565263855515, -0.0875608080498023 +1.1851615200331609, -0.09028772620734868 +1.1975218957053322, -0.09212668507314793 +1.1978058609409405, -0.09440976556743855 +1.204234518358184, -0.09732694043284246 +1.2166185577999893, -0.09935615600649927 +1.2169025230355976, -0.10163923650078988 +1.2263088714651222, -0.10411243172032023 +1.2357152198946468, -0.1065856269398506 +1.2421596531583123, -0.10962963961049285 +1.2545752442929636, -0.1119125307946264 +1.2639815927224878, -0.11438572601415675 +1.279611512565761, -0.11812720463099224 +1.2983137784998506, -0.1221857304333844 +1.3718506844502758, -0.12965322350557323 +1.4200086578044235, -0.1252279446575345 +1.431769551312533, -0.12224706692427581 +1.4494542751523602, -0.11812455428879323 +1.4641297562870608, -0.11419234568870751 +1.4728971829364665, -0.111528609796084 +1.4847527315231122, -0.10930875889425551 +1.4904320362352785, -0.10620113801083697 +1.4992467904239524, -0.10391791553392854 +1.5077775793770174, -0.09935161256272954 +1.5080615446126258, -0.10163469305702014 +1.5196804555029315, -0.09751227507661611 +1.5251231225187571, -0.09250208711462209 +1.525407087754365, -0.0947851676089127 +1.5369076797965011, -0.08971146608922093 +1.5422320279641561, -0.08374999458793912 +1.5425159931997645, -0.08603307508222974 +1.555607973749788, -0.08156182947365058 +1.559624898645164, -0.07728098255554679 +1.5684278209490201, -0.0749026317247096 +1.5711570423801446, -0.07246095664633175 +1.5764971663942227, -0.06662632295028832 +1.5767811316298306, -0.06890940344457894 +1.5883448270576572, -0.06434305314584064 +1.5937007269181578, -0.05863525725503557 +1.5939846921537661, -0.060918337749326174 +1.6055326117351694, -0.056225149645349526 +1.6109042874420934, -0.05064419155978282 +1.6111882526777017, -0.05292727205407344 +1.6242802332277249, -0.04845602644549428 +1.6282971581231003, -0.04417517952739049 +1.6401448187865348, -0.041891909722942794 +1.645548046186304, -0.036564627247852824 +1.6458320114219123, -0.03884770774214344 +1.6589239919719359, -0.034376462133564295 +1.6629409168673113, -0.03009561521546049 +1.6717556710559855, -0.027812392738552072 +1.680286460009051, -0.023246089767353047 +1.6805704252446594, -0.025529170261643662 +1.6920946810564286, -0.020645725449809443 +1.697726658229326, -0.017157591150675805 +1.709550655123127, -0.014684064638370568 +1.71521418398887, -0.01144960594971367 +1.727014517113036, -0.008785822729550877 +1.7417057740941595, -0.004980451934703527 +1.7867970871317915, -0.0017453779880361384 +1.8047973279000726, -0.00015962145732093674 +1.8598116483375722, -0.0035516808517404366 +1.8781865654583911, -0.004978322195436459 +1.8876165776575498, -0.007641774122824373 +1.8970465898567084, -0.010305226050212286 +1.9064174426317817, -0.012493036207956311 +1.9158119591764895, -0.014871103073557893 +1.922303719979423, -0.018295629159915276 +1.9347666386533424, -0.020959033759763913 +1.9415423646918848, -0.026666640340411912 +1.9442676421614022, -0.024193255810724484 +1.9540526109050722, -0.029710558355975657 +1.9605049320919488, -0.032817989929237124 +1.9729126353033877, -0.03503746221075148 +1.973196600538996, -0.03732054270504209 +1.9796331458794514, -0.040301136473065186 +1.9920092973980452, -0.042266933144102806 +1.9922932626336536, -0.04455001363839342 +1.998729807974108, -0.047530607406416514 +2.0111059594927028, -0.049496404077454134 +2.011389924728311, -0.051779484571744736 +2.0178264700687656, -0.05476007833976784 +2.0302026215873603, -0.05672587501080546 +2.0304865868229687, -0.05900895550509608 +2.039916599022126, -0.06167240743248399 +2.0401887323729175, -0.06386035957284582 +2.0496305764568934, -0.0666189398541625 +2.0591079161953196, -0.0696629051972655 +2.059380049546111, -0.07185085733762735 +2.068869221169355, -0.07498995103465914 +2.0783465609077814, -0.07803391637776215 +2.0786305261433897, -0.08031699687205276 +2.088107865881817, -0.08336096221515578 +2.097585205620243, -0.08640492755825879 +2.0978573389710338, -0.08859287969862062 +2.107346510594277, -0.0917319733956524 +2.1168001865630703, -0.09458568203089787 +2.117072319913861, -0.0967736341712597 +2.1265378277674705, -0.09972247116043395 +2.1329664851847134, -0.10263964602583786 +2.1453505246265197, -0.10466886159949465 +2.1518422854294537, -0.10809338768585205 +2.164305204103373, -0.11075679228570068 +2.1707417494438275, -0.11373738605372377 +2.1893809119922265, -0.11728856063516246 +2.2080674020798945, -0.12122024863231623 +2.2297236952566317, -0.12464453808097728 +2.274795188954081, -0.1293270397161661 +2.341807140128185, -0.12356466561749824 +2.356526004840548, -0.11998126098181802 +2.365328927144404, -0.11760291015098082 +2.374143681333078, -0.11531968767407241 +2.3829584355217523, -0.11303646519716401 +2.3947666565691295, -0.11043610087962041 +2.400445961281296, -0.10732847999620185 +2.412254182328674, -0.10472811567865828 +2.4178861595015713, -0.10123998137952461 +2.4297574839346403, -0.09914696828293448 +2.4351843751040425, -0.09400994251570208 +2.435468340339651, -0.09629302300999268 +2.4470478116139, -0.09185351051649275 +2.4524352631672466, -0.08639939023616443 +2.452719228402854, -0.08868247073045504 +2.465805293010469, -0.0841636609449115 +2.469828133848254, -0.07993037820377209 +2.4786310561521105, -0.07755202737293489 +2.481328725890388, -0.07485667668408032 +2.4866530740580437, -0.06889520518279851 +2.486937039293652, -0.07117828567708913 +2.5000231039012677, -0.06665947589154558 +2.5037619795034436, -0.06014311265611556 +2.504045944739051, -0.06242619315040618 +2.515664855629357, -0.05830377517000215 +2.521060195105915, -0.052913073792293014 +2.521344160341523, -0.055196154286583615 +2.5328920799229264, -0.05050296618260697 +2.5385477208654583, -0.04720508859133088 +2.547350643169315, -0.04482673776049369 +2.5500798646004394, -0.042385062682115865 +2.5557039538501254, -0.03883350948036303 +2.5675752782831944, -0.036740496383772886 +2.5730021694525975, -0.03160347061654048 +2.573286134688206, -0.033886551110831095 +2.5863721992958197, -0.02936774132528755 +2.590395040133605, -0.025134458584148138 +2.6021795974113484, -0.022343837558746985 +2.6077879108146114, -0.018665446551755803 +2.6196197956316247, -0.01625533894206975 +2.625275436574155, -0.012957461350793661 +2.6340783588780123, -0.01057911051995647 +2.6429049449515025, -0.008391016396976828 +2.6516723716009096, -0.00572728050435331 +2.6966926933296396, -0.0019214364341132717 +2.714661382405075, -0.0000820042929213366 +2.7757612356001236, -0.0036325162888102627 +2.797393865007227, -0.0068665490296137485 +2.813047448620133, -0.010798284354306797 +2.8255419189868984, -0.013715364564632175 +2.831978464327352, -0.016695958332655268 +2.8444019433852157, -0.01904226841940799 +2.844685908620824, -0.021325348913698604 +2.8510909022684325, -0.024052267071244963 +2.8634512779406043, -0.025891225937044224 +2.8637352431762126, -0.028174306431334832 +2.8701639005934556, -0.031091481296738735 +2.882547940035262, -0.03312069687039555 +2.8828319052708693, -0.03540377736468617 +2.8892684506113246, -0.03838437113270926 +2.9016446021299185, -0.04035016780374688 +2.901928567365527, -0.04263324829803748 +2.9083887764756158, -0.04580409877391814 +2.920788591763844, -0.04796015215281331 +2.9210725569994525, -0.050243232647103925 +2.927509102339907, -0.05322382641512702 +2.9398852538585016, -0.055189623086164624 +2.94016921909411, -0.05747270358045524 +2.9466215402809857, -0.06058013515371671 +2.9590292434924264, -0.06279960743523107 +2.9593132087280347, -0.06508268792952168 +2.9687195571575593, -0.06755588314905205 +2.96899169050835, -0.06974383528941387 +2.9784098708226923, -0.07231215886287301 +2.987910874330752, -0.07554638091383357 +2.9881948395663605, -0.07782946140812419 +2.997695843074421, -0.08106368345908474 +3.0071731828128483, -0.08410764880218775 +3.0074571480484567, -0.08639072929647837 +3.016934487786882, -0.08943469463958138 +3.023410472743394, -0.09273238292070039 +3.0358418397244673, -0.0951421119100723 +3.0361258049600757, -0.0974251924043629 +3.042578126146953, -0.10053262397762439 +3.054985829358393, -0.10275209625913873 +3.0552697945940013, -0.10503517675342933 +3.0646406473690746, -0.10722298691117338 +3.0740351639137824, -0.10960105377677495 +3.080455933407813, -0.11245480973955971 +3.0928478607728316, -0.11454744421583568 +3.1022423773175385, -0.11692551108143726 +3.1178525773527825, -0.12050844244172479 +3.139500982606309, -0.12386931298776666 +3.222554543496024, -0.12931225023339044 +3.25780799889161, -0.12405772392159276 +3.269482125244396, -0.12037923825952304 +3.284157606379096, -0.11644702965943729 +3.292925033028502, -0.11378329376681379 +3.30479635746157, -0.11169028067022366 +3.3105072138665816, -0.10883633539728185 +3.3222996590675367, -0.10610913327449986 +3.327947412086857, -0.10274783678060462 +3.3397319693646006, -0.09995721575520347 +3.3453402827678644, -0.09627882474821226 +3.357172167584877, -0.09386871713852624 +3.3625438432917996, -0.0882877590529595 +3.362827808527408, -0.09057083954725012 +3.374391503955235, -0.08600448924851184 +3.3797474038157347, -0.08029669335770677 +3.380031369051343, -0.08257977385199738 +3.391531961093479, -0.07750607233230562 +3.3968563092611337, -0.07154460083102382 +3.397140274496742, -0.07382768132531443 +3.4087749612334717, -0.06983210115014878 +3.4139178871672646, -0.062411994888625755 +3.414201852402873, -0.06469507538291637 +3.4144858176384814, -0.06697815587720697 +3.4257576599074886, -0.06006530618155889 +3.4311214476912006, -0.054420929193373005 +3.431405412926809, -0.05670400968766362 +3.443008547970692, -0.052454753902021256 +3.448419663293672, -0.04719089032955047 +3.4487036285292803, -0.049473970823841085 +3.4602988756499515, -0.04516129613557951 +3.465717878896143, -0.03996085146572792 +3.4660018441317515, -0.04224393196001852 +3.4775024361738875, -0.03717023044032676 +3.4831107495771505, -0.03349183943333557 +3.494895306854895, -0.030701218407934418 +3.500503620258158, -0.02702282740094323 +3.512406496384073, -0.025183489914829833 +3.517849163399897, -0.020173301952835794 +3.5181331286355055, -0.02245638244712641 +3.5297125999097547, -0.01801686995362648 +3.5353840166987087, -0.014845830167588753 +3.5472237894389327, -0.01249914146052189 +3.5529188699975203, -0.009518358382341718 +3.5647349789681098, -0.006981412967417298 +3.579469619526895, -0.00352484613697545 +3.633730643297712, -0.0008604003312629102 +3.6887015801575487, -0.0039036557612769016 +3.7071948161265382, -0.006281580644260681 +3.7227931842769655, -0.009769383650619447 +3.735271878797307, -0.01255962605570645 +3.7416926482913393, -0.015413382018491184 +3.754084575656356, -0.01750601649476717 +3.7635619153947832, -0.020549981837870178 +3.763834048745575, -0.022737933978232018 +3.773323220368818, -0.025877027675263807 +3.7797597657092723, -0.0288576214432869 +3.792135917227867, -0.03082341811432452 +3.7924198824634754, -0.03310649860861513 +3.7988958674199864, -0.03640418688973414 +3.81132723440106, -0.038813915879106056 +3.811611199636668, -0.04109699637339667 +3.8180319691306996, -0.0439507523361814 +3.8303765689564493, -0.04566287339674227 +3.8306605341920577, -0.047945953891032886 +3.837136519148568, -0.05124364217215191 +3.849567886129643, -0.053653371161523813 +3.8498518513652513, -0.05593645165581443 +3.8562962846289164, -0.058980464326456705 +3.8686645482242996, -0.06088284209487514 +3.868948513459907, -0.06316592258916576 +3.8754008346467845, -0.06627335416242723 +3.8878085378582243, -0.06849282644394157 +3.8880925030938327, -0.07077590693823219 +3.8975461790626262, -0.07362961557347765 +3.8978301442982337, -0.07591269606776825 +3.9072838202670264, -0.07876640470301371 +3.9167611600054535, -0.08181037004611673 +3.917045125241062, -0.08409345054040734 +3.926522464979488, -0.08713741588351036 +3.93597614094828, -0.08999112451875582 +3.9362482742990714, -0.09217907665911766 +3.945713782152681, -0.0951279136482919 +3.952205542955614, -0.09855243973464925 +3.9646684616295342, -0.10121584433449793 +3.9652127283311165, -0.10559174861522161 +3.974169465137594, -0.10445006638545845 +3.9836704686456557, -0.10768428843641903 +3.9901543415253773, -0.11104539562015722 +4.002625148122508, -0.11377221912262506 +4.0119960008975815, -0.11596002928036908 +4.0276062009328255, -0.11954296064065664 +4.049278269955987, -0.12309408789455603 +4.09514259946833, -0.12607406640456864 +4.103169258060947, -0.12945455533537384 +4.167857419592079, -0.12547045096874399 +4.176553854932583, -0.1222359449525478 +4.185356777236439, -0.1198575941217106 +4.194159699540296, -0.11747924329087339 +4.202986285613787, -0.11529114916789376 +4.214826058354011, -0.11294446046082687 +4.220521138912599, -0.10996367738264673 +4.232337247883188, -0.10742673196772232 +4.238008664672143, -0.1042556921816846 +4.249785334026675, -0.10140165225366427 +4.255401535353149, -0.09778668014929226 +4.267257083939796, -0.09556682924746376 +4.2726524234163525, -0.09017612786975461 +4.272936388651961, -0.09245920836404523 +4.284531635772634, -0.08814653367578368 +4.289903311479557, -0.08256557559021697 +4.290187276715165, -0.08484865608450758 +4.301814075528681, -0.08078965700672273 +4.306964889385688, -0.0734329696478189 +4.307248854621296, -0.07571605014210951 +4.307532819856904, -0.07799913063640013 +4.318812550049122, -0.07114969984337123 +4.324168449909623, -0.06544190395256616 +4.324452415145231, -0.06772498444685678 +4.336071326035537, -0.06360256646645275 +4.3412300278157545, -0.05630929801016811 +4.341513993051363, -0.058592378504458725 +4.341797958286971, -0.06087545899874933 +4.353093464325611, -0.05415286601095878 +4.358480915878958, -0.04869874573063045 +4.358764881114566, -0.05098182622492106 +4.370360128235237, -0.0466691515366595 +4.375779131481428, -0.04146870686680791 +4.376063096717036, -0.043751787361098526 +4.389149161324652, -0.03923297757555498 +4.393172002162435, -0.034999694834415576 +4.404948671516969, -0.03214565490639523 +4.410564872843444, -0.028530682802023234 +4.422373093890822, -0.025930318484479617 +4.428005071063719, -0.022442184185345992 +4.439781740418252, -0.019588144257325656 +4.4453979417447265, -0.015973172152953644 +4.4572692661777955, -0.013880159056363514 +4.462980122582806, -0.011026213783421716 +4.474741016090916, -0.008045336050163006 +4.489436217033645, -0.004271674706625241 +4.5454530925113055, -0.001093507393173758 +4.607766897088581, -0.00465034234830889 +4.6261418142094, -0.006076983692004913 +4.632578359549854, -0.009057577460028006 +4.645001838607716, -0.011403887546780733 +4.6543726913827905, -0.013591697704524765 +4.663767207927497, -0.015969764570126346 +4.6702431928840085, -0.019267452851245356 +4.682674559865083, -0.021677181840617267 +4.682958525100691, -0.023960262334907875 +4.689387182517934, -0.026877437200311792 +4.70177122195974, -0.028906652773968596 +4.702055187195349, -0.031189733268259218 +4.708491732535802, -0.03417032703628231 +4.720867884054397, -0.03613612370731992 +4.721151849290005, -0.03841920420161053 +4.7306291890284315, -0.041463169544713546 +4.730901322379223, -0.043651121685075386 +4.740390494002467, -0.046790215382107175 +4.746811263496498, -0.0496439713448919 +4.759155863322247, -0.05135609240545279 +4.759439828557856, -0.053639172899743404 +4.765915813514367, -0.056936861180862414 +4.778347180495441, -0.05934659017023432 +4.778631145731048, -0.06162967066452493 +4.785067691071504, -0.06461026443254804 +4.797443842590098, -0.06657606110358565 +4.797727807825706, -0.06885914159787626 +4.807157820024865, -0.07152259352526417 +4.807429953375657, -0.07371054566562601 +4.816871797459632, -0.0764691259469427 +4.826349137198058, -0.07951309129004569 +4.826633102433666, -0.0817961717843363 +4.836110442172093, -0.08484013712743932 +4.845564118140885, -0.08769384576268478 +4.845848083376493, -0.0899769262569754 +4.855301759345286, -0.09283063489222086 +4.861777744301797, -0.09612832317333989 +4.874209111282871, -0.09853805216271178 +4.87449307651848, -0.1008211326570024 +4.880937509782145, -0.10386514532764465 +4.893353100916796, -0.10614803651177823 +4.899836973796519, -0.1095091436955164 +4.9123077803936495, -0.11223596719798423 +4.921737792592808, -0.11489941912537213 +4.937383488282503, -0.11876773554744602 +4.959055557305663, -0.12231886280134541 +5.004982990203697, -0.1258061925323115 +5.050889795062797, -0.12912767283024507 +5.086579611863417, -0.12345841529184146 +5.095418029821725, -0.1213654495227906 +5.104209120240765, -0.11889197033802465 +5.113000210659805, -0.11641849115325867 +5.124839983400029, -0.1140718024461918 +5.130535063958616, -0.1110910193680116 +5.142382724622052, -0.10880774956356395 +5.148069917257428, -0.1057635475827646 +5.156872839561285, -0.1033851967519274 +5.165415460399167, -0.09891402213465714 +5.1656994256347755, -0.10119710262894777 +5.177231569369757, -0.09637707671973272 +5.1828556586194425, -0.09282552351797992 +5.194655991743609, -0.09016174029781712 +5.2000118916041105, -0.08445394440701205 +5.200295856839719, -0.08673702490130267 +5.211828000574699, -0.08191699899208764 +5.2171681245887775, -0.0760823652960442 +5.217452089824386, -0.07836544579033482 +5.230544070374409, -0.07389420018175567 +5.2342770300341765, -0.06733027276936125 +5.234560995269785, -0.06961335326365187 +5.2476529758198085, -0.06514210765507271 +5.2513859354795756, -0.0585781802426783 +5.251669900715184, -0.0608612607369689 +5.2632257082197995, -0.05623149153561144 +5.268589496003511, -0.05058711454742555 +5.268873461239119, -0.05287019504171617 +5.280476596283003, -0.04862093925607379 +5.285887711605982, -0.043357075683603016 +5.28617167684159, -0.04564015617789362 +5.297759036039051, -0.04126406258701287 +5.303185927208453, -0.03612703681978045 +5.3034698924440615, -0.03841011731407107 +5.315002036179043, -0.033590091404856054 +5.3206261254287295, -0.03003853820310322 +5.3324027947832615, -0.02718449827508289 +5.338018996109737, -0.023569526170710876 +5.34985876884996, -0.021222837463644013 +5.35550652186928, -0.017861540969748735 +5.367330518763081, -0.015388014457443505 +5.372994047628823, -0.012153555768786607 +5.384770716983357, -0.00929951584076627 +5.4024791045928175, -0.005367259913141277 +5.453344377421151, 0.00021440808551444202 +5.517591511977526, -0.004255630670813373 +5.5359664290983455, -0.005682272014509389 +5.545360945643053, -0.008060338880110977 +5.561002697371142, -0.011896945850875244 +5.573497167737907, -0.014814026061200622 +5.579925825155149, -0.01773120092660454 +5.592309864596956, -0.019760416500261342 +5.592593829832564, -0.02204349699455195 +5.598998823480173, -0.024770415152098317 +5.6113591991523455, -0.02660937401789757 +5.611643164387954, -0.028892454512188186 +5.618103373498041, -0.032063304988068836 +5.63050318878627, -0.034219358366964006 +5.630787154021878, -0.03650243886125461 +5.640217166221037, -0.03916589078864252 +5.640489299571828, -0.04135384292900436 +5.649931143655803, -0.04411242321032105 +5.659384819624597, -0.0469661318455665 +5.6596569529753875, -0.04915408398592834 +5.669122460828997, -0.05210292097510258 +5.675582669939085, -0.055273771450983236 +5.687982485227314, -0.05742982482987839 +5.688266450462923, -0.05971290532416901 +5.694710883726588, -0.06275691799481128 +5.707079147321971, -0.06465929576322973 +5.707363112557579, -0.06694237625752034 +5.71383909751409, -0.07024006453863936 +5.7262704644951645, -0.07264979352801125 +5.726554429730773, -0.07493287402230187 +5.735960778160297, -0.07740606924183223 +5.736232911511088, -0.07959402138219407 +5.74565109182543, -0.0821623449556532 +5.75515209533349, -0.08539656700661376 +5.755436060569099, -0.08767964750090437 +5.7649370640771584, -0.09091386955186494 +5.774414403815586, -0.09395783489496795 +5.774686537166377, -0.09614578703532978 +5.78417570878962, -0.09928488073236158 +5.790596478283652, -0.1021386366951463 +5.802988405648669, -0.10423127117142228 +5.803532672350252, -0.10860717545214596 +5.81248940915673, -0.10746549322238286 +5.821990412664791, -0.11069971527334341 +5.828450621774879, -0.11387056574922405 +5.847121336016123, -0.11767541594113945 +5.865799938180579, -0.12154368503567406 +5.887397071933232, -0.12449233271469123 +5.9538731171066965, -0.12911358206319107 +6.005573937485546, -0.12363433175530081 +6.014258540941232, -0.12030469738517585 +6.023061463245091, -0.11792634655433867 +6.034901235985314, -0.11557965784727178 +6.040596316543902, -0.11259887476909164 +6.052388761744857, -0.10987167264630965 +6.058036514764178, -0.1065103761524144 +6.06986839958119, -0.10410026854272836 +6.075524040523722, -0.10080239095145224 +6.084338794712395, -0.09851916847454381 +6.09286958366546, -0.0939528655033448 +6.093153548901069, -0.09623594599763541 +6.104756683944953, -0.09198669021199303 +6.1101677992679315, -0.08672282663952226 +6.11045176450354, -0.08900590713381287 +6.121983908238522, -0.08418588122459783 +6.127324032252598, -0.07835124752855441 +6.127607997488206, -0.08063432802284502 +6.1406999780382305, -0.07616308241426585 +6.144716902933607, -0.07188223549616206 +6.1535198252374625, -0.06950388466532487 +6.156217494975743, -0.06680853397647031 +6.161825808379006, -0.06313014296947911 +6.1706287306828616, -0.060751792138641916 +6.173357952113986, -0.05831011706026408 +6.178698076128065, -0.05247548336422066 +6.178982041363674, -0.05475856385851126 +6.190561512637923, -0.05031905136501133 +6.195948964191268, -0.044864931084682994 +6.196232929426876, -0.04714801157897361 +6.2078597282403924, -0.043089012501188795 +6.213294507333006, -0.03801540563657556 +6.2135784725686145, -0.040298486130866173 +6.22507117668754, -0.035161365708555214 +6.230687378014015, -0.03154639360418322 +6.242495599061393, -0.028946029286639606 +6.24812757623429, -0.025457894987505975 +6.2599279093584554, -0.022794111767343188 +6.265567774454566, -0.01936939637082874 +6.277391771348367, -0.016895869858523503 +6.28305530021411, -0.013661411169866598 +6.291870054402783, -0.011378188692958181 +6.300684808591458, -0.009094966216049764 +6.312469365869201, -0.006304345190648611 +6.354433117353536, -0.0023082917400902916 +6.360246516760294, -0.00027879220119787773 +6.433517435470443, -0.004146209400025649 +6.455161896762363, -0.00747537049475791 +6.47077998472082, -0.011121720757664627 +6.483227127548317, -0.013658287552274904 +6.492633475977841, -0.01613148277180526 +6.5020398244073645, -0.018604677991335625 +6.511540827915424, -0.021838900042296182 +6.511824793151033, -0.024121980536586797 +6.521325796659094, -0.02735620258754736 +6.527746566153126, -0.030209958550332087 +6.5401384935181435, -0.03230259302660808 +6.540422458753752, -0.034585673520898697 +6.54688266786384, -0.03775652399677934 +6.55928248315207, -0.03991257737567451 +6.559566448387678, -0.04219565786996511 +6.569020124356469, -0.045049366505210575 +6.569292257707262, -0.047237318645572415 +6.57875776556087, -0.050186155634746654 +6.585217974670958, -0.0533570061106273 +6.597617789959187, -0.05551305948952248 +6.597901755194795, -0.05779613998381308 +6.604369852228095, -0.06103040936231291 +6.61680910713238, -0.063503557254304 +6.617093072367989, -0.06578663774859461 +6.62351384186202, -0.06864039371137934 +6.635858441687769, -0.07035251477194024 +6.636142406923377, -0.07263559526623084 +6.642634167726311, -0.07606012135258822 +6.6550970864002315, -0.07872352595243687 +6.65538105163584, -0.08100660644672748 +6.6647874000653635, -0.08347980166625783 +6.665059533416154, -0.08566775380661967 +6.674477713730496, -0.0882360773800788 +6.683955053468922, -0.09128004272318181 +6.684227186819714, -0.09346799486354367 +6.693716358442958, -0.09660708856057543 +6.700192343399469, -0.09990477684169446 +6.712623710380542, -0.10231450583106635 +6.71290767561615, -0.10459758632535696 +6.72229036027604, -0.10688052483702978 +6.73167304493593, -0.10916346334870258 +6.7381411419692325, -0.11239773272720244 +6.750580396873517, -0.11487088061919351 +6.759998577187859, -0.11743920419265264 +6.778610132005016, -0.12076841261492419 +6.797186191167726, -0.12381223597540938 +6.871801192086656, -0.12925530490207301 +6.915576030646748, -0.12466654538673691 +6.924296129756885, -0.12162229607839828 +6.933122715830376, -0.11943420195541865 +6.944930936877754, -0.11683383763787505 +6.95061024158992, -0.11372621675445652 +6.962434238483721, -0.11125269024215126 +6.968097767349463, -0.10801823155349438 +6.979921764243264, -0.10554470504118915 +6.985585293109005, -0.10231024635253225 +6.997361962463541, -0.09945620642451192 +7.002978163790014, -0.09584123432013988 +7.014857376146295, -0.09381164012616897 +7.020276379392485, -0.08861119545631736 +7.020560344628094, -0.09089427595060796 +7.032116152132708, -0.08626450674925047 +7.037763905152029, -0.08290321025535521 +7.046566827455886, -0.08052485942451802 +7.049296048887011, -0.07808318434614019 +7.0546361729010885, -0.07224855065009675 +7.054920138136697, -0.07453163114438736 +7.066554824873424, -0.07053605096922172 +7.07169775080722, -0.0631159447076987 +7.071981716042829, -0.06539902520198931 +7.072265681278437, -0.06768210569627993 +7.0835375235474425, -0.060769256000631836 +7.088901311331154, -0.055124879012445935 +7.089185276566762, -0.05740795950673655 +7.100685868608898, -0.05233425798704479 +7.106010216776553, -0.046372786485763 +7.106294182012161, -0.0486558669800536 +7.117897317056046, -0.04440661119441122 +7.123308432379026, -0.039142747621940435 +7.123592397614634, -0.04142582811623105 +7.135124541349614, -0.036605802207016036 +7.1407486305993, -0.0330542490052632 +7.152548963723466, -0.03039046578510042 +7.1581888288195765, -0.026965750388585966 +7.169989161943742, -0.02430196716842318 +7.175629027039851, -0.020877251771908724 +7.187484575626496, -0.018657400870080228 +7.1931638803386635, -0.01554977998666169 +7.2050036530788875, -0.01320309127959482 +7.210698733637474, -0.010222308201414655 +7.222475402992008, -0.007368268273394318 +7.264391826937074, -0.002991701407120892 +7.2809865865990195, 0.0008941232185175306 +7.29323796212095, -0.0008223205931678426 +7.3464341162582345, -0.004227092164634738 +7.364951015996859, -0.006795273755476068 +7.380549384147288, -0.010283076761834833 +7.393264716363967, -0.014975886245497352 +7.402221453170445, -0.013834204015734236 +7.411722456678507, -0.0170684260666948 +7.418198441635018, -0.02036611434781381 +7.43062980861609, -0.02277584333718572 +7.430913773851699, -0.02505892383147633 +7.437334543345732, -0.027912679794261062 +7.449679143171479, -0.029624800854821942 +7.449963108407087, -0.03190788134911256 +7.459416784375882, -0.03476158998435802 +7.459688917726672, -0.03694954212471986 +7.469154425580283, -0.0398983791138941 +7.4786081015490735, -0.04275208774913955 +7.478880234899866, -0.04494003988950139 +7.4883457427534745, -0.04788887687867563 +7.4978230824919025, -0.05093284222177863 +7.498095215842693, -0.05312079436214047 +7.507584387465937, -0.05625988805917226 +7.514028820729604, -0.059303900729814535 +7.5263970843249846, -0.06120627849823297 +7.526681049560593, -0.06348935899252359 +7.533149146593893, -0.06672362837102341 +7.54558840149818, -0.0691967762630145 +7.545872366733788, -0.07147985675730512 +7.55230102415103, -0.07439703162270904 +7.564637736053567, -0.07604573378065073 +7.564921701289175, -0.07832881427494134 +7.574399041027601, -0.08137277961804436 +7.574671174378394, -0.0835607317584062 +7.584160346001636, -0.08669982545543799 +7.590620555111726, -0.08987067593131862 +7.603020370399954, -0.0920267293102138 +7.6033043356355625, -0.09430980980450443 +7.609764544745652, -0.09748066028038505 +7.622164360033879, -0.09963671365928026 +7.622448325269487, -0.10191979415357086 +7.628900646456365, -0.10502722572683232 +7.641308349667805, -0.10724669800834666 +7.641710633751583, -0.11048106204192501 +7.660073718987586, -0.11181257503169229 +7.660476003071364, -0.11504693906527064 +7.678839088307368, -0.11637845205503788 +7.679229540506328, -0.11951768773468749 +7.697604457627148, -0.12094432907838351 +7.7070226379414875, -0.12351265265184264 +7.752871191607409, -0.12636579335661688 +7.774726287820413, -0.1287730746014894 +7.825589955692764, -0.12579388737210181 +7.837268026007156, -0.12214711116134169 +7.854992189463039, -0.11834169303895506 +7.860671494175205, -0.1152340721555365 +7.872495491069004, -0.11276054564323126 +7.878159019934748, -0.10952608695457436 +7.889959353058914, -0.10686230373441158 +7.8955992181550245, -0.10343758833789712 +7.907407439202401, -0.10083722402035353 +7.913039416375299, -0.09734908972121989 +7.924910740808367, -0.09525607662462976 +7.930337631977772, -0.09011905085739734 +7.9306215972133804, -0.09240213135168795 +7.942232620180472, -0.08821629446866476 +7.9476358475802416, -0.0828890119935748 +7.94791981281585, -0.0851720924878654 +7.959420404857986, -0.08009839096817364 +7.965028718261249, -0.07641999996118246 +7.973867136219558, -0.07432703419213159 +7.976592413689075, -0.07185364966244416 +7.9819483135495775, -0.06614585377163909 +7.982232278785186, -0.0684289342659297 +7.993835413829067, -0.06417967848028734 +7.998962563916439, -0.05663273441352594 +7.999246529152047, -0.058915814907816555 +7.999530494387655, -0.061198895402107156 +8.010810224579874, -0.054349464609078246 +8.016166124440375, -0.048641668718273176 +8.016450089675985, -0.05092474921256379 +8.02802956095023, -0.04648523671906388 +8.033417012503577, -0.04103111643873554 +8.033700977739187, -0.043314196933026156 +8.045327776552703, -0.03925519785524134 +8.050762555645317, -0.034181590990628105 +8.051046520880927, -0.036464671484918706 +8.062594440462327, -0.031771483380942045 +8.068250081404862, -0.028473605789665964 +8.080074078298662, -0.026000079277360727 +8.085737607164404, -0.022765620588703822 +8.09753005236536, -0.020038418465921852 +8.103177805384682, -0.01667712197202658 +8.115057017740959, -0.014647527778055634 +8.120759986222758, -0.011730163602494646 +8.1295510766418, -0.00925668441772868 +8.138389494600109, -0.007163718648677819 +8.147156921249515, -0.004499982756054302 +8.206299698581802, 0.0013767028769619896 +8.265345618686645, -0.0037371101505926374 +8.274763799000986, -0.006305433724051776 +8.29335169004851, -0.009444385438465756 +8.30900527366142, -0.013376120763158798 +8.321499744028184, -0.016293200973484183 +8.327928401445426, -0.019210375838888086 +8.340312440887232, -0.021239591412544896 +8.349813444395295, -0.02447381346350546 +8.350097409630902, -0.02675689395779607 +8.359598413138961, -0.029991116008756633 +8.366058622249053, -0.03316196648463729 +8.37845843753728, -0.035318019863532446 +8.378742402772886, -0.03760110035782306 +8.38824340628095, -0.040835322408783625 +8.388527371516556, -0.04311840290307424 +8.398028375024616, -0.046352624954034805 +8.404480696211493, -0.04946005652729625 +8.416888399422934, -0.05167952880881062 +8.41717236465854, -0.05396260930310123 +8.426626040627333, -0.0568163179383467 +8.426898173978124, -0.05900427007870854 +8.436363681831736, -0.06195310706788276 +8.442823890941824, -0.06512395754376342 +8.45522370623005, -0.06728001092265858 +8.45550767146566, -0.06956309141694919 +8.461959992652538, -0.07267052299021066 +8.474367695863975, -0.07488999527172502 +8.474651661099585, -0.07717307576601563 +8.481088206440038, -0.08015366953403871 +8.493464357958633, -0.08211946620507633 +8.493748323194243, -0.08440254669936695 +8.5031783353934, -0.08706599862675486 +8.503450468744191, -0.0892539507671167 +8.512892312828168, -0.09201253104843339 +8.52234598879696, -0.09486623968367885 +8.522618122147751, -0.09705419182404068 +8.532083630001363, -0.10000302881321493 +8.538520175341816, -0.102983622581238 +8.55089632686041, -0.10494941925227563 +8.551180292096017, -0.10723249974656626 +8.560586640525543, -0.10970569496609661 +8.569992988955068, -0.11217889018562696 +8.576445310141946, -0.11528632175888842 +8.595108136459977, -0.11902775304818466 +8.616788093406349, -0.12264229920470324 +8.66268397461154, -0.1258759533251926 +8.700097626113333, -0.12875863447657454 +8.744347643618553, -0.12406723675698564 +8.753197893461678, -0.12206939934186353 +8.765037666201902, -0.11972271063479667 +8.77073274676049, -0.1167419275566165 +8.78254885573108, -0.11420498214169209 +8.788220272520036, -0.11103394235565434 +8.800044269413835, -0.10856041584334913 +8.805707798279578, -0.1053259571546922 +8.814510720583435, -0.10294760632385502 +8.823053341421318, -0.09847643170658477 +8.823337306656928, -0.1007595122008754 +8.834869450391906, -0.09593948629166035 +8.840493539641592, -0.09238793308990755 +8.852317536535391, -0.0899144065776023 +8.857697100165527, -0.08439686739465478 +8.857981065401134, -0.0866799478889454 +8.869576312521808, -0.08236727320068385 +8.87494798822873, -0.07678631511511715 +8.87523195346434, -0.07906939560940775 +8.888318018071956, -0.07455058582386422 +8.89205689367413, -0.0680342225884342 +8.892340858909737, -0.07031730308272481 +8.905432839459763, -0.06584605747414564 +8.909165799119531, -0.05928213006175123 +8.909449764355138, -0.06156521055604185 +8.92254174490516, -0.05709396494746269 +8.926274704564928, -0.05053003753506828 +8.926558669800535, -0.052813118029358896 +8.938146028997998, -0.04843702443847814 +8.943525592628134, -0.04291948525553063 +8.94380955786374, -0.04520256574982125 +8.952340346816808, -0.04063626277862223 +8.960871135769871, -0.03606995980742318 +8.961155101005481, -0.0383530403017138 +8.972655693047614, -0.033279338782022036 +8.978264006450878, -0.029600947775030848 +8.990056451651832, -0.026873745652248884 +8.995704204671153, -0.023512449158353606 +9.007583417027433, -0.021482854964382653 +9.013286385509232, -0.01856549078882168 +9.025102494479821, -0.01602854537389725 +9.030773911268778, -0.012857505587859537 +9.039588665457451, -0.010574283110951127 +9.048403419646124, -0.008291060634042703 +9.060219528616713, -0.005754115219118283 +9.109470143563687, -0.0018213670850849017 +9.120151969176487, 0.00008137037263197117 +9.175288552423762, -0.004293682012384878 +9.193698965199033, -0.006005708417867232 +9.20312897739819, -0.008669160345255132 +9.21875100931825, -0.012347220059471448 +9.231229703838594, -0.015137462464558459 +9.2376346974862, -0.017864380622104818 +9.249995073158374, -0.01970333948790408 +9.250539339859955, -0.024079243768627752 +9.259496076666434, -0.022937561538864636 +9.268997080174493, -0.0261717835898252 +9.275780694136248, -0.03194280907309238 +9.278498083682553, -0.029406005640785757 +9.288283052426223, -0.034923308186036936 +9.297784055934283, -0.0381575302369975 +9.298068021169893, -0.040440610731288115 +9.307569024677953, -0.04367483278224868 +9.317046364416381, -0.04671879812535169 +9.317330329651988, -0.049001878619642295 +9.326807669390416, -0.05204584396274531 +9.333283654346925, -0.05534353224386432 +9.345715021328001, -0.05775326123323622 +9.345998986563608, -0.06003634172752684 +9.352459195673699, -0.06320719220340748 +9.364859010961926, -0.06536324558230266 +9.365142976197532, -0.06764632607659328 +9.37160318530762, -0.07081717655247391 +9.38400300059585, -0.07297322993136908 +9.384286965831457, -0.0752563104256597 +9.390723511171913, -0.0782369041936828 +9.403099662690508, -0.08020270086472042 +9.403383627926114, -0.08248578135901104 +9.409859612882627, -0.08578346964013005 +9.4222909798637, -0.08819319862950195 +9.42257494509931, -0.09047627912379257 +9.429019378362977, -0.09352029179443486 +9.441387641958357, -0.09542266956285328 +9.441671607193967, -0.09770575005714388 +9.448139704227266, -0.10094001943564374 +9.460578959131553, -0.10341316732763481 +9.46086292436716, -0.10569624782192544 +9.46726791801477, -0.1084231659794718 +9.47962829368694, -0.11026212484527104 +9.486112166566663, -0.11362323202900923 +9.498582973163792, -0.11635005553147706 +9.507977489708502, -0.11872812239707867 +9.526565380756026, -0.12186707411149261 +9.545117776149102, -0.12472064076412029 +9.617967474783157, -0.1284322177819269 +9.663341969240683, -0.12424315322044496 +9.672026572696371, -0.12091351885032 +9.680793999345777, -0.1182497829576965 +9.692617996239576, -0.11577625644539125 +9.698281525105319, -0.11254179775673437 +9.710097634075908, -0.11000485234180993 +9.715769050864864, -0.10683381255577223 +9.727545720219396, -0.10397977262775188 +9.733161921545872, -0.10036480052337987 +9.741976675734545, -0.09808157804647144 +9.750507464687608, -0.09351527507527244 +9.750791429923218, -0.09579835556956304 +9.762418228736735, -0.09173935649177821 +9.767853007829348, -0.08666574962716499 +9.768136973064959, -0.0889488301214556 +9.779684892646358, -0.08425564201747894 +9.785340533588894, -0.08095776442620285 +9.796872677323872, -0.07613773851698781 +9.802212801337951, -0.07030310482094439 +9.802496766573562, -0.07258618531523499 +9.815588747123584, -0.06811493970665584 +9.819321706783352, -0.06155101229426144 +9.819605672018959, -0.06383409278855204 +9.82149088566647, -0.07899121051453693 +9.83671457746436, -0.05508200026186909 +9.845541163537849, -0.052893906138889446 +9.848278272892184, -0.05051564996313079 +9.853634172752685, -0.04480785407232572 +9.853918137988295, -0.04709093456661634 +9.858069439289807, -0.05956629812967065 +9.865497609262544, -0.042651422073116424 +9.870885060815887, -0.03719730179278809 +9.8827169456329, -0.03478719418310203 +9.888372586575432, -0.03148931659182595 +9.900165031776385, -0.028762114469043976 +9.905812784795707, -0.025400817975148704 +9.914221310938998, -0.019851522013352323 +9.917628893766295, -0.022863872560224284 +9.932067737204658, -0.017029096881563045 +9.940835163854064, -0.014365360988939528 +9.949649918042738, -0.012082138512031118 +9.958180706995805, -0.007515835540832086 +9.958464672231411, -0.009798916035122694 + diff --git a/validation/oscillating_beam_2d.jl b/validation/oscillating_beam_2d.jl index 7ecfd9d15..63be4dcef 100644 --- a/validation/oscillating_beam_2d.jl +++ b/validation/oscillating_beam_2d.jl @@ -4,142 +4,191 @@ # "Study of a complex fluid-structure dam-breaking benchmark problem using a multi-phase SPH method with APR". # In: Engineering Analysis with Boundary Elements 104 (2019), pages 240-258. # https://doi.org/10.1016/j.enganabound.2019.03.033 +# and +# Turek S , Hron J. +# "Proposal for numerical benchmarking of fluid-structure interaction between an elastic object and laminar incompressible flow." +# In: Fluid-structure interaction. Springer; 2006. p. 371–85 . +# https://doi.org/10.1007/3-540-34596-5_15 using TrixiParticles using OrdinaryDiffEq using PythonPlot using JSON +using Glob +using CSV +using DataFrames -# # ========================================================================================== -# # ==== Resolution -# n_particles_y = 5 +# ========================================================================================== +# ==== Experiment Setup +gravity = 2.0 +tspan = (0.0, 0.5) -# # ========================================================================================== -# # ==== Experiment Setup -# gravity = 2.0 -# tspan = (0.0, 5.0) +elastic_plate_length = 0.35 +elastic_plate_thickness = 0.02 -# length_beam = 0.35 -# thickness = 0.02 -# clamp_radius = 0.05 -# material_density = 1000.0 +cylinder_radius = 0.05 +cylinder_diameter = 2 * cylinder_radius +material_density = 1000.0 -# # Young's modulus and Poisson ratio -# E = 1.4e6 -# nu = 0.4 +# Young's modulus and Poisson ratio +E = 1.4e6 +nu = 0.4 -# # The structure starts at the position of the first particle and ends -# # at the position of the last particle. -# particle_spacing = thickness / (n_particles_y - 1) +# resolution = 20 # 5 particles per plate thickness +# # resolution = 50 # 11 particles per plate thickness -# # Add particle_spacing/2 to the clamp_radius to ensure that particles are also placed on the radius -# fixed_particles = SphereShape(particle_spacing, clamp_radius + particle_spacing / 2, -# (0.0, thickness / 2), material_density, -# cutout_min=(0.0, 0.0), cutout_max=(clamp_radius, thickness), -# tlsph=true) +# resolution = [20, 50] +# for res in resolution -# n_particles_clamp_x = round(Int, clamp_radius / particle_spacing) +# particle_spacing = cylinder_diameter/res -# # Beam and clamped particles -# n_particles_per_dimension = (round(Int, length_beam / particle_spacing) + -# n_particles_clamp_x + 1, n_particles_y) -# # Note that the `RectangularShape` puts the first particle half a particle spacing away -# # from the boundary, which is correct for fluids, but not for solids. -# # We therefore need to pass `tlsph=true`. -# beam = RectangularShape(particle_spacing, n_particles_per_dimension, -# (0.0, 0.0), density=material_density, tlsph=true) +# # Add particle_spacing/2 to the clamp_radius to ensure that particles are also placed on the radius +# fixed_particles = SphereShape(particle_spacing, cylinder_radius + particle_spacing / 2, +# (0.0, elastic_plate_thickness / 2), material_density, +# cutout_min=(0.0, 0.0), cutout_max=(cylinder_radius, elastic_plate_thickness), +# tlsph=true) -# solid = union(beam, fixed_particles) +# n_particles_clamp_x = round(Int, cylinder_radius / particle_spacing) -# # ========================================================================================== -# # ==== Solid +# # Beam and clamped particles +# n_particles_per_dimension = (round(Int, elastic_plate_length / particle_spacing) + +# n_particles_clamp_x + 1, round(Int, elastic_plate_thickness/particle_spacing)+1) -# smoothing_length = sqrt(2) * particle_spacing -# smoothing_kernel = SchoenbergCubicSplineKernel{2}() +# # Note that the `RectangularShape` puts the first particle half a particle spacing away +# # from the boundary, which is correct for fluids, but not for solids. +# # We therefore need to pass `tlsph=true`. +# elastic_plate = RectangularShape(particle_spacing, n_particles_per_dimension, +# (0.0, 0.0), density=material_density, tlsph=true) -# solid_system = TotalLagrangianSPHSystem(solid, -# smoothing_kernel, smoothing_length, -# E, nu, nothing, -# n_fixed_particles=nparticles(fixed_particles), -# acceleration=(0.0, -gravity)) +# solid = union(elastic_plate, fixed_particles) -# # find points at the end of beam -# beam_end_x = length_beam + clamp_radius -# point_ids = [] -# for particle in TrixiParticles.eachparticle(solid_system) -# particle_coord = solid_system.current_coordinates[:, particle] +# # ========================================================================================== +# # ==== Solid -# if isapprox(particle_coord[1], beam_end_x, atol=1e-5) -# push!(point_ids, particle) +# smoothing_length = sqrt(2) * particle_spacing +# smoothing_kernel = SchoenbergCubicSplineKernel{2}() + +# solid_system = TotalLagrangianSPHSystem(solid, +# smoothing_kernel, smoothing_length, +# E, nu, nothing, +# n_fixed_particles=nparticles(fixed_particles), +# acceleration=(0.0, -gravity), penalty_force=PenaltyForceGanzenmueller(alpha=0.01)) + +# # find points at the end of elastic plate +# plate_end_x = elastic_plate_length + cylinder_radius +# point_ids = [] +# for particle in TrixiParticles.eachparticle(solid_system) +# particle_coord = solid_system.current_coordinates[:, particle] + +# if isapprox(particle_coord[1], plate_end_x, atol=particle_spacing/2) +# push!(point_ids, particle) +# end # end -# end -# # ========================================================================================== -# # ==== Simulation -# semi = Semidiscretization(solid_system, neighborhood_search=GridNeighborhoodSearch) -# ode = semidiscretize(semi, tspan) +# # of those find the particle in the middle +# y_coords_at_plate_end = [solid_system.current_coordinates[2, particle] for particle in point_ids] +# if isempty(y_coords_at_plate_end) +# error("No particles found at the specified beam_end_x coordinate.") +# end -# function particle_position(particle_id, pp, t, system, u, v, system_name) -# TrixiParticles.add_entry!(pp, "pos_x_$particle_id", t, system.current_coordinates[1, particle_id], system_name) -# TrixiParticles.add_entry!(pp, "pos_y_$particle_id", t, system.current_coordinates[2, particle_id], system_name) -# end +# sorted_y_coords = sort(y_coords_at_plate_end) -# point_pos_func = [(pp, t, sys, u, v, sys_name) -> particle_position(point_id, pp, t, sys, u, v, sys_name) for point_id in point_ids] -# pp_callback = PostprocessCallback(point_pos_func, interval=10, filename="oscillating_beam_2d_positions") -# info_callback = InfoCallback(interval=500) -# saving_callback = SolutionSavingCallback(dt=0.02, prefix="") +# # Compute the median +# len = length(sorted_y_coords) +# if isodd(len) +# median_y = sorted_y_coords[ceil(Int, len / 2)] +# else +# half = round(Int, len/2) +# median_y = (sorted_y_coords[half] + sorted_y_coords[half + 1]) / 2 +# end +# closest_to_median_index = argmin(abs.(y_coords_at_plate_end .- median_y)) +# middle_particle_id = point_ids[closest_to_median_index] -# callbacks = CallbackSet(info_callback, saving_callback, pp_callback) +# # ========================================================================================== +# # ==== Simulation +# semi = Semidiscretization(solid_system, neighborhood_search=GridNeighborhoodSearch) +# ode = semidiscretize(semi, tspan) -# # Use a Runge-Kutta method with automatic (error based) time step size control -# sol = solve(ode, RDPK3SpFSAL49(), save_everystep=false, callback=callbacks); +# function particle_position(particle_id, pp, t, system, u, v, system_name) +# TrixiParticles.add_entry!(pp, "pos_x_$particle_id", t, system.current_coordinates[1, particle_id], system_name) +# TrixiParticles.add_entry!(pp, "pos_y_$particle_id", t, system.current_coordinates[2, particle_id], system_name) +# end -json_data = JSON.parsefile("oscillating_beam_2d_positions.json") +# #point_pos_func = [(pp, t, sys, u, v, sys_name) -> particle_position(point_id, pp, t, sys, u, v, sys_name) for point_id in point_ids] +# point_pos_func = (pp, t, sys, u, v, sys_name) -> particle_position(middle_particle_id, pp, t, sys, u, v, sys_name) +# pp_callback = PostprocessCallback(point_pos_func, dt=0.02, filename="oscillating_beam_2d_positions_"*string(res)) +# info_callback = InfoCallback(interval=500) +# saving_callback = SolutionSavingCallback(dt=0.05, prefix="") -# Assuming the data is stored under a key like "pos_y_162_solid_1" -key_pattern_x = r"pos_x_\d+_solid_\d+" -key_pattern_y = r"pos_y_\d+_solid_\d+" +# callbacks = CallbackSet(info_callback, saving_callback, pp_callback) -matching_keys_x = sort(collect(filter(key -> occursin(key_pattern_x, key), keys(json_data)))) -matching_keys_y = sort(collect(filter(key -> occursin(key_pattern_y, key), keys(json_data)))) +# sol = solve(ode, RDPK3SpFSAL49(), abstol=1e-8, reltol=1e-6, dtmax=1e-3, +# save_everystep=false, callback=callbacks); + +# end + +# Load the reference simulation data +dx_data = CSV.read("validation/Turek_dx_T.csv", DataFrame) +dy_data = CSV.read("validation/Turek_dy_T.csv", DataFrame) + +# Get the list of JSON files +json_files = glob("oscillating_beam_2d_positions_*.json", ".") # Create subplots fig, (ax1, ax2) = subplots(1, 2, figsize=(12, 5)) -# Plot x-axis displacements -for key in matching_keys_x - data = json_data[key] - times = data["time"] - values = data["values"] - initial_position = values[1] - displacements = [value - initial_position for value in values] - ax1.plot(times, displacements, label=key) +# Regular expressions for matching keys +key_pattern_x = r"pos_x_\d+_solid_\d+" +key_pattern_y = r"pos_y_\d+_solid_\d+" + +# Process each file +for json_file in json_files + json_data = JSON.parsefile(json_file) + + resolution = parse(Int, split(split(json_file, "_")[end], ".")[1]) + + # Find matching keys and plot data for each key + matching_keys_x = sort(collect(filter(key -> occursin(key_pattern_x, key), keys(json_data)))) + matching_keys_y = sort(collect(filter(key -> occursin(key_pattern_y, key), keys(json_data)))) + + particle_spacing = cylinder_diameter/resolution + + # Plot x-axis displacements + for key in matching_keys_x + data = json_data[key] + times = data["time"] + values = data["values"] + initial_position = values[1] + displacements = [value - initial_position for value in values] + ax1.plot(times, displacements, label="dp = $(particle_spacing)") + end + + # Plot y-axis displacements + for key in matching_keys_y + data = json_data[key] + times = data["time"] + values = data["values"] + initial_position = values[1] + displacements = [value - initial_position for value in values] + ax2.plot(times, displacements, label="dp = $(particle_spacing)") + end end + +ax1.plot(dx_data.time, dx_data.displacement, label="Turek and Hron 2006", color="black", linestyle="--") +ax2.plot(dy_data.time, dy_data.displacement, label="Turek and Hron 2006", color="black", linestyle="--") + ax1.set_xlabel("Time [s]") ax1.set_ylabel("X Displacement") ax1.set_title("X-Axis Displacement") -ax1.legend(loc="upper left", bbox_to_anchor=(1, 1), fancybox=true, -shadow=true) - -# Plot y-axis displacements -for key in matching_keys_y - data = json_data[key] - times = data["time"] - values = data["values"] - initial_position = values[1] - displacements = [value - initial_position for value in values] - ax2.plot(times, displacements, label=key) -end +ax1.legend(loc="upper left", bbox_to_anchor=(1, 1)) + ax2.set_xlabel("Time [s]") ax2.set_ylabel("Y Displacement") ax2.set_title("Y-Axis Displacement") -ax2.legend(loc="upper left", bbox_to_anchor=(1, 1), fancybox=true, -shadow=true) +ax2.legend(loc="upper left", bbox_to_anchor=(1, 1)) -# Adjust the margins and layout -subplots_adjust(right=0.7) -tight_layout() +fig.subplots_adjust(right=0.7) +fig.tight_layout() -# Show the plot plotshow() From 04e62b9acef291751dd0b22afbad90b54e808370 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 24 Jan 2024 22:27:21 +0100 Subject: [PATCH 105/212] add better digitized curves and error calc --- validation/Turek_dx_T.csv | 1973 +++++++++++++---------------- validation/Turek_dy_T.csv | 1960 ++++++++++++++-------------- validation/oscillating_beam_2d.jl | 180 +-- 3 files changed, 1915 insertions(+), 2198 deletions(-) diff --git a/validation/Turek_dx_T.csv b/validation/Turek_dx_T.csv index 9ee09c3b7..ddf73f253 100644 --- a/validation/Turek_dx_T.csv +++ b/validation/Turek_dx_T.csv @@ -1,1089 +1,886 @@ time,displacement -0.06403885671586007, -0.0000799978187370487 -0.10199887913319605, -0.0006409641182244519 -0.12097889034186426, -0.0012227069473224987 -0.13995890155053203, -0.0018875558948631254 -0.15577557755775562, -0.002732468099029337 -0.16842891836353413, -0.0033834660268295333 -0.17791892396786846, -0.0038821027374850037 -0.18740892957220234, -0.0043807394481404725 -0.19373559997509204, -0.005114843494383249 -0.20638894078087056, -0.005710437343221724 -0.20638894078087056, -0.0062090740538771946 -0.2127156111837598, -0.006818518922456102 -0.22536895198953832, -0.007206347475188132 -0.22536895198953832, -0.007704984185843604 -0.2348589575938722, -0.008411386192605516 -0.2348589575938722, -0.008910022903260989 -0.22536895198953832, -0.009159341258588723 -0.24434896319820654, -0.009616424910022904 -0.24434896319820654, -0.010115061620678373 -0.24434896319820654, -0.010613698331333842 -0.2538389688025404, -0.01111233504198931 -0.2538389688025404, -0.01161097175264478 -0.2633289744068743, -0.012109608463300251 -0.2633289744068743, -0.01260824517395572 -0.2633289744068743, -0.013106881884611189 -0.27281898001120863, -0.013688624713709236 -0.27281898001120863, -0.014187261424364708 -0.2823089856155425, -0.014769004253462755 -0.2823089856155425, -0.015267640964118223 -0.2823089856155425, -0.01576627767477369 -0.2917989912198764, -0.016306467444650453 -0.2917989912198764, -0.016805104155305922 -0.30128899682421073, -0.017345293925182678 -0.30128899682421073, -0.017843930635838147 -0.3107790024285446, -0.018550332642600066 -0.3076156672271, -0.019090522412476822 -0.3202690080328785, -0.019755371360017447 -0.3297590136372124, -0.020461773366779366 -0.3265956784357682, -0.021015814156396556 -0.3392490192415467, -0.021666812084196747 -0.3487390248458806, -0.02233166103173738 -0.34557568964443597, -0.022871850801614135 -0.3582290304502145, -0.023495146689933473 -0.3677190360545488, -0.024159995637474098 -0.3677190360545488, -0.02463785581851892 -0.3772090416588827, -0.02532348129567019 -0.3835357120617724, -0.02600218126295125 -0.45945575689644436, -0.02659777511178972 -0.44363908088922077, -0.027193368960628204 -0.4341490752848869, -0.02767538444759516 -0.44363908088922077, -0.02810753626349656 -0.44363908088922077, -0.028820863780128693 -0.44363908088922077, -0.029250245392082014 -0.5037424497166696, -0.025905224124768242 -0.5227224609253374, -0.024201548696695385 -0.5100691201195588, -0.024658632348129567 -0.5100691201195588, -0.025157269058785035 -0.5100691201195588, -0.026445413894644998 -0.5417024721340056, -0.022387065110699093 -0.5290491313282271, -0.022996509979277997 -0.5290491313282271, -0.023495146689933473 -0.5606824833426733, -0.020641836623404956 -0.5480291425368948, -0.021085069255098704 -0.5480291425368948, -0.021583705965754173 -0.5796624945513416, -0.018453375504417058 -0.5764991593498969, -0.0189866397644236 -0.567009153745563, -0.019506053004689716 -0.567009153745563, -0.020004689715345185 -0.5986425057600098, -0.01629261642491002 -0.5954791705585651, -0.016805104155305922 -0.5859891649542313, -0.017179081688297522 -0.5859891649542313, -0.01767771839895299 -0.6144591817672334, -0.013605518595266658 -0.6176225169686775, -0.014201112444105138 -0.604969176162899, -0.014602792016577599 -0.604969176162899, -0.015101428727233067 -0.604969176162899, -0.015600065437888536 -0.6366025281773458, -0.011001526884065872 -0.6334391929759011, -0.011590195223034136 -0.6239491873715672, -0.012109608463300251 -0.6239491873715672, -0.01260824517395572 -0.6239491873715672, -0.013106881884611189 -0.6555825393860135, -0.00879921474533755 -0.642929198580235, -0.00920089431781001 -0.642929198580235, -0.009699531028465483 -0.642929198580235, -0.010198167739120951 -0.6745625505946817, -0.0066800087250518045 -0.6619092097889032, -0.007123241356745554 -0.6619092097889032, -0.007621878067401026 -0.6619092097889032, -0.008120514778056495 -0.6935425618033499, -0.0049901843167193816 -0.6808892209975714, -0.00546111898789399 -0.6808892209975714, -0.00595975569854946 -0.7093592378105735, -0.0037782200894317802 -0.6998692322062392, -0.004297633329697894 -0.7315025842206859, -0.002690915039808048 -0.7188492434149074, -0.003300359908386955 -0.7473192602279095, -0.0018460028356418363 -0.7662992714365773, -0.0011811538881012097 -0.7852792826452455, -0.0005786345293925174 -0.8611993274799175, -0.0000522957792561899 -0.965589389127592, -0.00011739557203620937 -1.0288560931564854, -0.0008902824735521862 -1.0478361043651532, -0.0017351946777183994 -1.0668161155738218, -0.002538553822663322 -1.0794694563796003, -0.003134147671501799 -1.0889594619839338, -0.003653560911767913 -1.0984494675882681, -0.004214527211255316 -1.1047761379911574, -0.004879376158795943 -1.1174294787969359, -0.005378012869451412 -1.1269194844012702, -0.006042861816992038 -1.123756149199826, -0.006583051586868796 -1.1364094900056045, -0.007206347475188132 -1.145899495609938, -0.00787119642272876 -1.1427361604084938, -0.008439088232086377 -1.1553895012142723, -0.009034682080924854 -1.1553895012142723, -0.009533318791580326 -1.1648795068186057, -0.010239720798342239 -1.1617161716171616, -0.010779910568218998 -1.17436951242294, -0.011444759515759623 -1.17436951242294, -0.011943396226415095 -1.17436951242294, -0.012442032937070564 -1.1838595180272744, -0.01302377576616861 -1.1806961828258293, -0.013591667575526227 -1.1933495236316078, -0.01410415530592213 -1.1933495236316078, -0.014602792016577599 -1.1933495236316078, -0.015101428727233067 -1.2028395292359422, -0.01564161849710983 -1.199676194034498, -0.016223361326207872 -1.2123295348402765, -0.016680444977642053 -1.2123295348402765, -0.017179081688297522 -1.22181954044461, -0.01788548369505944 -1.22181954044461, -0.01838412040571491 -1.2123295348402765, -0.01863343876104264 -1.2313095460489443, -0.019090522412476822 -1.2313095460489443, -0.01958915912313229 -1.2407995516532786, -0.02021245501145163 -1.2407995516532786, -0.020711091722107097 -1.250289557257612, -0.021334387610426435 -1.2597795628619464, -0.022040789617188354 -1.250289557257612, -0.022290107972516085 -1.2692695684662807, -0.022747191623950266 -1.2692695684662807, -0.023245828334605735 -1.27559623886917, -0.023896826262405926 -1.2882495796749485, -0.024326207874359254 -1.2882495796749485, -0.024824844585014723 -1.2945762500778377, -0.025489693532555348 -1.3072295908836162, -0.025905224124768242 -1.354679618905286, -0.026486966953866285 -1.3356996076966183, -0.027089486312574983 -1.3641696245096204, -0.027567346493619804 -1.3641696245096204, -0.028266822990511503 -1.3689146273117876, -0.02893859744792235 -1.4337629989414031, -0.024575526229686985 -1.430599663739959, -0.0250949394699531 -1.4211096581356246, -0.02557279965099793 -1.4211096581356246, -0.026071436361653398 -1.4211096581356246, -0.026736285309194023 -1.452743010150071, -0.022719489584469406 -1.4400896693442924, -0.023328934453048317 -1.4400896693442924, -0.023827571163703785 -1.4717230213587396, -0.021029665176136983 -1.459069680552961, -0.021417493728869016 -1.459069680552961, -0.021916130439524485 -1.4907030325674073, -0.018979714254553387 -1.4875396973659631, -0.01948527647507907 -1.4780496917616288, -0.019921583596902603 -1.4780496917616288, -0.02042022030755808 -1.509683043776075, -0.016763551096084635 -1.506519708574631, -0.01730374086596139 -1.4970297029702966, -0.017760824517395572 -1.4970297029702966, -0.01825946122805104 -1.5286630549847438, -0.014575089977096741 -1.5160097141789652, -0.015018322608790489 -1.5160097141789652, -0.015516959319445958 -1.5160097141789652, -0.01601559603010143 -1.5476430661934115, -0.011971098265895956 -1.5444797309919664, -0.012462809466681208 -1.534989725387633, -0.012857563529283455 -1.534989725387633, -0.013356200239938923 -1.534989725387633, -0.013854836950594395 -1.5666230774020793, -0.009284000436252588 -1.563459742200635, -0.009803413676518704 -1.5539697365963008, -0.01028127385756353 -1.5539697365963008, -0.010779910568218998 -1.5539697365963008, -0.011278547278874467 -1.585603088610747, -0.007095539317264693 -1.5824397534093029, -0.007601101537790379 -1.5729497478049685, -0.008037408659613917 -1.5729497478049685, -0.008536045370269385 -1.6045830998194157, -0.005322608790489694 -1.5919297590136372, -0.005876649580106882 -1.5919297590136372, -0.006375286290762351 -1.6203997758266393, -0.004027538444759515 -1.610909770222305, -0.004546951685025629 -1.6425431222367513, -0.002898680335914493 -1.6298897814309727, -0.0035496782637146895 -1.66152313344542, -0.00206761915148871 -1.6773398094526435, -0.0013473661249863659 -1.6994831558627554, -0.0007102192169265997 -1.7722398654959832, -0.0000592212891264033 -1.8766299271436573, -0.00010077434834769236 -1.9398966311725507, -0.000765623295888319 -1.9620399775826636, -0.001472025302650233 -1.9778566535898863, -0.0023169375068164445 -1.996836664798555, -0.0032449558294252376 -2.0094900056043334, -0.0038821027374850037 -2.0158166760072227, -0.00451924964554477 -2.028470016813002, -0.004962482277238521 -2.0379600224173355, -0.005668884284000435 -2.0347966872158905, -0.006195223034136766 -2.04745002802167, -0.006873923001417821 -2.056940033626004, -0.007497218889737157 -2.053776698424559, -0.008051259679354343 -2.0664300392303376, -0.008619151488711964 -2.0664300392303376, -0.009117788199367432 -2.075920044834672, -0.009699531028465483 -2.075920044834672, -0.010198167739120951 -2.0854100504390063, -0.010779910568218998 -2.0854100504390063, -0.011278547278874467 -2.0854100504390063, -0.011777183989529939 -2.0949000560433397, -0.012275820700185408 -2.0949000560433397, -0.012753680881230233 -2.104390061647674, -0.013273094121496345 -2.104390061647674, -0.013771730832151817 -2.104390061647674, -0.014270367542807286 -2.1138800672520084, -0.014810557312684042 -2.1107167320505633, -0.01542000218126295 -2.123370072856342, -0.015849383793216272 -2.123370072856342, -0.01634802050387174 -2.123370072856342, -0.01684665721452721 -2.132860078460676, -0.01742840004362526 -2.129696743259231, -0.018010142872723303 -2.1423500840650096, -0.01850877958337878 -2.1423500840650096, -0.019007416294034248 -2.151840089669344, -0.01971381830079616 -2.148676754467899, -0.02024015705093249 -2.1613300952736783, -0.020918857018213548 -2.1708201008780117, -0.02162525902497546 -2.1676567656765666, -0.02215159777511179 -2.180310106482346, -0.02283029774239284 -2.1866367768852353, -0.023550550768895187 -2.199290117691014, -0.024076889519031516 -2.199290117691014, -0.024575526229686985 -2.205616788093903, -0.025184971098265896 -2.2182701288996824, -0.02557279965099793 -2.2182701288996824, -0.026071436361653398 -2.224596799302571, -0.026708583269713163 -2.3055781804595554, -0.02715181590140691 -2.260975154119185, -0.02796210055622205 -2.279955165327853, -0.028658114298178647 -2.28470016813002, -0.02904248009597557 -2.3448035369574693, -0.025351183335151052 -2.33215019615169, -0.025739011887883086 -2.33215019615169, -0.026237648598538554 -2.363783548166137, -0.023370487512269604 -2.3511302073603586, -0.023744465045261204 -2.3511302073603586, -0.024243101755916673 -2.3511302073603586, -0.02474173846657214 -2.3827635593748058, -0.02119587741302214 -2.3796002241733607, -0.02174991820263933 -2.3701102185690264, -0.022248554913294798 -2.3701102185690264, -0.022747191623950266 -2.4017435705834735, -0.019547606063911004 -2.389090229777694, -0.019921583596902603 -2.389090229777694, -0.02042022030755808 -2.4223052493928634, -0.0174491765732359 -2.408070240986363, -0.01792703675428073 -2.408070240986363, -0.018425673464936197 -2.408070240986363, -0.018924310175591666 -2.43970359300081, -0.015156832806194788 -2.4270502521950306, -0.015516959319445958 -2.4270502521950306, -0.01601559603010143 -2.4270502521950306, -0.016514232740756897 -2.4586836042094777, -0.01263594721343658 -2.4460302634036983, -0.01302377576616861 -2.4460302634036983, -0.01352241247682408 -2.4460302634036983, -0.014021049187479552 -2.4460302634036983, -0.01451968589813502 -2.4776636154181455, -0.0098934453048315 -2.4745002802167004, -0.01050981568328062 -2.465010274612367, -0.010946122805104154 -2.465010274612367, -0.011444759515759623 -2.465010274612367, -0.011943396226415095 -2.4966436266268133, -0.007566473988439305 -2.493480291425369, -0.008141291307667138 -2.4839902858210348, -0.008619151488711964 -2.4839902858210348, -0.009117788199367432 -2.517205305436204, -0.005803931726469626 -2.5029702970297025, -0.006292180172319773 -2.5029702970297025, -0.006790816882975241 -2.5346036490441497, -0.004366888428400044 -2.5219503082383703, -0.004879376158795943 -2.5535836602528175, -0.0030787435925400813 -2.540930319447039, -0.0037158905005998475 -2.572563671461486, -0.0022338313883738664 -2.588380347468709, -0.0015135783618715221 -2.6105236938788217, -0.000876431453811756 -2.6832804035120494, -0.00009384883847747896 -2.7876704651597235, -0.0000592212891264033 -2.854100504390061, -0.0006409641182244519 -2.87308051559873, -0.0013058130657650768 -2.8888971916059525, -0.00206761915148871 -2.901550532411731, -0.00263551096084633 -2.9110405380160653, -0.0031133711418911535 -2.9205305436203997, -0.0036327843821572676 -2.926857214023288, -0.004297633329697894 -2.9395105548290674, -0.004796270040353365 -2.9490005604334018, -0.005419565928672701 -2.9490005604334018, -0.005897426109717526 -2.958490566037735, -0.006541498527647507 -2.9648172364406244, -0.007220198494928562 -2.977470577246404, -0.007704984185843604 -2.977470577246404, -0.008203620896499073 -2.9869605828507373, -0.008910022903260989 -2.983797247649292, -0.009464063692878175 -2.9964505884550716, -0.010115061620678373 -2.9964505884550716, -0.010613698331333842 -3.005940594059406, -0.01123699421965318 -3.002777258857961, -0.011832588068491657 -3.0154305996637394, -0.012358926818627986 -3.0154305996637394, -0.012857563529283455 -3.0154305996637394, -0.013356200239938923 -3.0249206052680737, -0.013979496128258261 -3.0217572700666286, -0.014575089977096741 -3.034410610872408, -0.015101428727233067 -3.034410610872408, -0.015600065437888536 -3.034410610872408, -0.01609870214854401 -3.0439006164767415, -0.016763551096084635 -3.0407372812752964, -0.017317591885701825 -3.053390622081076, -0.01792703675428073 -3.053390622081076, -0.018425673464936197 -3.053390622081076, -0.018924310175591666 -3.059717292483965, -0.019547606063911004 -3.0723706332897436, -0.019921583596902603 -3.0723706332897436, -0.02042022030755808 -3.0723706332897436, -0.020918857018213548 -3.078697303692633, -0.02156985494601374 -3.0913506444984122, -0.02199923655796706 -3.0913506444984122, -0.022497873268622536 -3.1008406501027457, -0.02307961609772058 -3.1008406501027457, -0.0235574762787654 -3.11033065570708, -0.024159995637474098 -3.1166573261099684, -0.024797142545533862 -3.1293106669157478, -0.02524037517722761 -3.1293106669157478, -0.025739011887883086 -3.138800672520082, -0.026237648598538554 -3.211557382153309, -0.026625477151270588 -3.186250700541752, -0.027500861598865743 -3.211557382153309, -0.028024430145053986 -3.2014347095086864, -0.028780695822881446 -3.186250700541752, -0.029104809684807505 -3.2558440749735356, -0.02594677718398953 -3.2748240861822033, -0.023924528301886794 -3.262170745376424, -0.024326207874359254 -3.262170745376424, -0.024824844585014723 -3.262170745376424, -0.02532348129567019 -3.293804097390871, -0.021846875340822337 -3.2811507565850926, -0.022248554913294798 -3.2811507565850926, -0.022747191623950266 -3.2811507565850926, -0.023245828334605735 -3.312784108599539, -0.01961686116261315 -3.309620773398094, -0.02017090195223034 -3.3001307677937604, -0.02066953866288581 -3.3001307677937604, -0.02116817537354128 -3.3317641198082075, -0.017871632675319007 -3.319110779002428, -0.018342567346493623 -3.319110779002428, -0.01884120405714909 -3.3507441310168753, -0.015807830733994985 -3.338090790211096, -0.016181808266986585 -3.338090790211096, -0.016680444977642053 -3.338090790211096, -0.017179081688297522 -3.366560807024098, -0.013189988003053767 -3.366560807024098, -0.013688624713709236 -3.3570708014197645, -0.014187261424364708 -3.3570708014197645, -0.014685898135020177 -3.3570708014197645, -0.015184534845675645 -3.3887041534342117, -0.010641400370814702 -3.3855408182327666, -0.01123699421965318 -3.3760508126284323, -0.011694077871087361 -3.3760508126284323, -0.01219271458174283 -3.3760508126284323, -0.012691351292398298 -3.4076841646428795, -0.008466790271567238 -3.3950308238371, -0.008868469844039698 -3.3950308238371, -0.009367106554695167 -3.3950308238371, -0.009865743265350639 -3.4266641758515473, -0.006319882211800633 -3.4140108350457687, -0.006790816882975241 -3.4140108350457687, -0.00728945359363071 -3.4140108350457687, -0.007788090304286182 -3.445644187060216, -0.004588504744246918 -3.4329908462544365, -0.005128694514123677 -3.4329908462544365, -0.005627331224779146 -3.4646241982688837, -0.003258806849165666 -3.4519708574631043, -0.0038821027374850037 -3.4804408742761064, -0.002386192605518594 -3.499420885484774, -0.0017005671283673238 -3.521564231894888, -0.0009733885919947644 -3.5943209415281148, -0.00011462536808812263 -3.708201008780123, -0.00010769985821790749 -3.78095771841335, -0.0009733885919947644 -3.799937729622018, -0.001832151815901406 -3.812591070427797, -0.002386192605518594 -3.8220810760321315, -0.002864052786563419 -3.831571081636465, -0.0033834660268295333 -3.8378977520393542, -0.0040206129348892995 -3.8505510928451336, -0.004463845566583051 -3.856877763248022, -0.005211800632566255 -3.8695311040538014, -0.005793543461664304 -3.8695311040538014, -0.006292180172319773 -3.8758577744566907, -0.00688777402115825 -3.888511115262469, -0.00728945359363071 -3.888511115262469, -0.007788090304286182 -3.8980011208668035, -0.00836983313338423 -3.8948377856653584, -0.00893772494274185 -3.907491126471137, -0.009450212673137745 -3.907491126471137, -0.009948849383793217 -3.9169811320754713, -0.010572145272112555 -3.913817796874026, -0.011153888101210601 -3.9264711376798056, -0.011694077871087361 -3.9264711376798056, -0.01219271458174283 -3.9264711376798056, -0.012691351292398298 -3.935961143284139, -0.013273094121496345 -3.932797808082694, -0.013882538990075253 -3.9454511488884734, -0.014353473661249864 -3.9454511488884734, -0.014852110371905333 -3.9454511488884734, -0.015350747082560802 -3.9549411544928077, -0.01601559603010143 -3.9517778192913626, -0.01659733885919948 -3.964431160097141, -0.017179081688297522 -3.964431160097141, -0.01767771839895299 -3.964431160097141, -0.018176355109608466 -3.9739211657014755, -0.01875809793870651 -3.9739211657014755, -0.01925673464936198 -3.98341117130581, -0.01983847747846003 -3.98341117130581, -0.020337114189115497 -3.9929011769101432, -0.020918857018213548 -3.9929011769101432, -0.021417493728869016 -4.002391182514478, -0.02199923655796706 -4.011881188118812, -0.022664085505507692 -4.011881188118812, -0.023162722216163154 -4.021371193723145, -0.023827571163703785 -4.027697864126035, -0.02449242011124441 -4.040351204931814, -0.02499105682189988 -4.046677875334702, -0.025739011887883086 -4.087801232953484, -0.027068709782964336 -4.1289245905722645, -0.02773355873050496 -4.108679245283019, -0.028340233395135785 -4.121016252568653, -0.028897044388701054 -4.185864624198269, -0.024381611953320975 -4.182701288996824, -0.024887174173846657 -4.17321128339249, -0.02532348129567019 -4.17321128339249, -0.02582211800632566 -4.17321128339249, -0.02677783836841531 -4.204844635406937, -0.02205464063692878 -4.201681300205492, -0.022664085505507692 -4.192191294601158, -0.023162722216163154 -4.192191294601158, -0.02366135892681863 -4.223824646615605, -0.020378667248336785 -4.211171305809826, -0.02075264478132839 -4.211171305809826, -0.02125128149198386 -4.242804657824273, -0.0182871632675319 -4.230151317018494, -0.01875809793870651 -4.230151317018494, -0.01925673464936198 -4.230151317018494, -0.019755371360017447 -4.261784669032941, -0.01609870214854401 -4.258621333831496, -0.016638891918420766 -4.249131328227162, -0.017095975569854947 -4.249131328227162, -0.017594612280510416 -4.280764680241609, -0.013744028792670957 -4.277601345040164, -0.014374250190860508 -4.26811133943583, -0.014852110371905333 -4.26811133943583, -0.015350747082560802 -4.296581356248832, -0.011444759515759623 -4.296581356248832, -0.011922619696804448 -4.287091350644498, -0.012442032937070564 -4.287091350644498, -0.012940669647726033 -4.318724702658945, -0.009006980041443994 -4.306071361853166, -0.009450212673137745 -4.306071361853166, -0.009948849383793217 -4.306071361853166, -0.010447486094448686 -4.306071361853166, -0.010946122805104154 -4.3377047138676135, -0.006735412804013524 -4.334541378666168, -0.0072686770640200665 -4.325051373061834, -0.007788090304286182 -4.325051373061834, -0.008286727014941651 -4.356684725076281, -0.004907078198276802 -4.344031384270502, -0.00546111898789399 -4.344031384270502, -0.00595975569854946 -4.375664736284949, -0.0035081252044934005 -4.3630113954791705, -0.004131421092812738 -4.394644747493618, -0.0026493619805867587 -4.41046142350084, -0.00186677936525248 -4.429441434709508, -0.001243483476933144 -4.448421445918177, -0.0006409641182244519 -4.524341490752849, -0.0000592212891264033 -4.628731552400523, -0.00010908496019194913 -4.691998256429415, -0.0008487294143308972 -4.710978267638084, -0.0016243865197949608 -4.7236316084438625, -0.0021368742501908598 -4.733121614048197, -0.002614734431235685 -4.742611619652531, -0.003134147671501799 -4.74893829005542, -0.0037574435598211366 -4.761591630861199, -0.004214527211255316 -4.767918301264088, -0.004920929218017232 -4.780571642069867, -0.00546111898789399 -4.790061647674201, -0.0061675209946559055 -4.786898312472756, -0.006693859744792235 -4.799551653278535, -0.007372559712073292 -4.809041658882869, -0.007912749481950048 -4.809041658882869, -0.008411386192605516 -4.818531664487203, -0.008951575962482276 -4.818531664487203, -0.009450212673137745 -4.8280216700915375, -0.010031955502235795 -4.824858334890092, -0.010613698331333842 -4.837511675695871, -0.01111233504198931 -4.837511675695871, -0.01161097175264478 -4.837511675695871, -0.012109608463300251 -4.847001681300205, -0.01260824517395572 -4.847001681300205, -0.013106881884611189 -4.856491686904539, -0.013605518595266658 -4.856491686904539, -0.01410415530592213 -4.856491686904539, -0.014602792016577599 -4.865981692508873, -0.015226087904896936 -4.862818357307428, -0.01579397971425455 -4.875471698113207, -0.01634802050387174 -4.875471698113207, -0.01684665721452721 -4.875471698113207, -0.017345293925182678 -4.884961703717541, -0.01792703675428073 -4.881798368516096, -0.018522630603119206 -4.894451709321875, -0.019007416294034248 -4.894451709321875, -0.019506053004689716 -4.894451709321875, -0.020004689715345185 -4.9039417149262094, -0.020503326426000654 -4.9039417149262094, -0.020981186607045482 -4.913431720530543, -0.02150059984731159 -4.913431720530543, -0.02199923655796706 -4.919758390933432, -0.02263638346602683 -4.9324117317392115, -0.02307961609772058 -4.9324117317392115, -0.023578252808376048 -4.9387384021421, -0.02421539971643582 -4.951391742947879, -0.024658632348129567 -4.960881748552214, -0.02536503435489148 -4.951391742947879, -0.025614352710219217 -4.970371754156548, -0.026071436361653398 -4.976698424559436, -0.02677783836841531 -5.057679805716421, -0.027259853855382266 -5.013076779376051, -0.027993265350638015 -5.0311077900242855, -0.028647726033373323 -5.096905162214335, -0.025101864979823314 -5.084251821408556, -0.025489693532555348 -5.084251821408556, -0.025988330243210817 -5.084251821408556, -0.026486966953866285 -5.115885173423002, -0.02295495692005671 -5.103231832617223, -0.02341204057149089 -5.103231832617223, -0.02391067728214636 -5.103231832617223, -0.02440931399280183 -5.13486518463167, -0.020835750899770966 -5.122211843825892, -0.02125128149198386 -5.122211843825892, -0.02174991820263933 -5.122211843825892, -0.022248554913294798 -5.153845195840339, -0.018771948958446943 -5.141191855034559, -0.019173628530919404 -5.141191855034559, -0.019672265241574872 -5.141191855034559, -0.02017090195223034 -5.172825207049006, -0.01659733885919948 -5.169661871847562, -0.017116752099465588 -5.160171866243227, -0.017594612280510416 -5.160171866243227, -0.018093248991165885 -5.191805218257675, -0.014353473661249864 -5.18864188305623, -0.014893663431126624 -5.179151877451896, -0.015350747082560802 -5.179151877451896, -0.015849383793216272 -5.210785229466343, -0.011998800305376813 -5.207621894264897, -0.012587468644345077 -5.198131888660563, -0.013106881884611189 -5.198131888660563, -0.013605518595266658 -5.22976524067501, -0.009644126949503761 -5.226601905473566, -0.010198167739120951 -5.217111899869232, -0.01069680444977642 -5.217111899869232, -0.011195441160431889 -5.245581916682235, -0.007372559712073292 -5.245581916682235, -0.007850419893118113 -5.2360919110779, -0.00836983313338423 -5.2360919110779, -0.008868469844039698 -5.2677252630923475, -0.005267204711527973 -5.2645619278909015, -0.005855873050496237 -5.255071922286567, -0.006375286290762351 -5.255071922286567, -0.006873923001417821 -5.286705274301014, -0.004006761915148871 -5.274051933495236, -0.004463845566583051 -5.305685285509683, -0.002774021158250626 -5.2930319447039045, -0.0033834660268295333 -5.321501961516906, -0.0019498854836950581 -5.340481972725574, -0.0013265895953757222 -5.362625319135687, -0.000765623295888319 -5.435382028768914, -0.00007307230886683357 -5.539772090416588, -0.00010077434834769236 -5.606202129646927, -0.00072407023666703 -5.625182140855595, -0.0013681426545970113 -5.640998816862818, -0.0021645762896717203 -5.6536521576685965, -0.0028017231977314865 -5.659978828071485, -0.003452721125531683 -5.672632168877265, -0.003965208855927582 -5.6789588392801535, -0.004643908823208637 -5.691612180085932, -0.005128694514123677 -5.701102185690266, -0.005835096520885593 -5.697938850488822, -0.006361435271021922 -5.710592191294601, -0.0070401352383029775 -5.716918861697489, -0.007704984185843604 -5.729572202503269, -0.008120514778056495 -5.729572202503269, -0.008619151488711964 -5.729572202503269, -0.009117788199367432 -5.735898872906158, -0.00974108408768677 -5.748552213711936, -0.010115061620678373 -5.748552213711936, -0.010613698331333842 -5.748552213711936, -0.01111233504198931 -5.758042219316271, -0.011735630930308648 -5.754878884114826, -0.012303522739666268 -5.767532224920605, -0.012857563529283455 -5.767532224920605, -0.013356200239938923 -5.767532224920605, -0.013854836950594395 -5.777022230524939, -0.014395026720471151 -5.773858895323493, -0.015004471589050059 -5.786512236129274, -0.01543385320100338 -5.786512236129274, -0.015932489911658854 -5.786512236129274, -0.016431126622314322 -5.796002241733606, -0.01705442251063366 -5.796002241733606, -0.01755305922128913 -5.796002241733606, -0.01803091940233395 -5.8054922473379404, -0.018674991820263935 -5.8054922473379404, -0.019173628530919404 -5.814982252942275, -0.01979692441923874 -5.811818917740831, -0.020378667248336785 -5.824472258546609, -0.020918857018213548 -5.824472258546609, -0.021417493728869016 -5.833962264150943, -0.02208234267640964 -5.833962264150943, -0.02258097938706511 -5.843452269755278, -0.023245828334605735 -5.849778940158166, -0.02393837932162722 -5.862432280963945, -0.02449242011124441 -5.868758951366835, -0.025198822118006323 -5.881412292172613, -0.025739011887883086 -5.887738962575502, -0.026445413894644998 -5.9636590074101745, -0.026985603664521754 -5.957332337007284, -0.028841640309739333 -6.0079457002304, -0.025780564947104373 -5.995292359424622, -0.026237648598538554 -6.026925711439069, -0.023522848729414327 -6.023762376237623, -0.024056112989420876 -6.014272370633289, -0.024575526229686985 -6.014272370633289, -0.025074162940342454 -6.045905722647736, -0.02130668557094558 -6.0427423874462916, -0.021812247791471263 -6.033252381841957, -0.022248554913294798 -6.033252381841957, -0.022747191623950266 -6.064885733856404, -0.019201330570400257 -6.052232393050626, -0.01958915912313229 -6.052232393050626, -0.02008779583378776 -6.052232393050626, -0.020586432544443235 -6.083865745065073, -0.017109826589595374 -6.071212404259293, -0.017511506162067834 -6.071212404259293, -0.018010142872723303 -6.071212404259293, -0.01850877958337878 -6.10284575627374, -0.014990620569309632 -6.090192415467961, -0.01543385320100338 -6.090192415467961, -0.015932489911658854 -6.090192415467961, -0.016431126622314322 -6.121825767482409, -0.012899116588504745 -6.10917242667663, -0.013273094121496345 -6.10917242667663, -0.013771730832151817 -6.10917242667663, -0.014270367542807286 -6.140805778691077, -0.010225869778601812 -6.137642443489631, -0.010821463627440289 -6.128152437885297, -0.011278547278874467 -6.128152437885297, -0.011777183989529939 -6.128152437885297, -0.012275820700185408 -6.1566224546983, -0.007954302541171339 -6.1566224546983, -0.008452939251826807 -6.147132449093966, -0.008951575962482276 -6.147132449093966, -0.009450212673137745 -6.178765801108413, -0.006001308757770749 -6.166112460302634, -0.006458392409204929 -6.166112460302634, -0.006957029119860399 -6.166112460302634, -0.00745566583051587 -6.197745812317081, -0.004311484349438323 -6.185092471511301, -0.004796270040353365 -6.185092471511301, -0.0052949067510088335 -6.216725823525748, -0.0029817864543570712 -6.20407248271997, -0.0036327843821572676 -6.232542499532971, -0.0021368742501908598 -6.25152251074164, -0.0014928018322608785 -6.2736658571517525, -0.000876431453811756 -6.346422566784979, -0.00010077434834769236 -6.460302634036988, -0.00012155087795833776 -6.526732673267326, -0.0009110590031628299 -6.545712684475995, -0.0012227069473224987 -6.552039354878883, -0.0019429599738248447 -6.564692695684662, -0.0025524048424037504 -6.574182701288996, -0.00309259461228051 -6.5836727068933305, -0.0036327843821572676 -6.589999377296219, -0.004339186388919183 -6.602652718101999, -0.004879376158795943 -6.612142723706332, -0.005544225106336568 -6.612142723706332, -0.006042861816992038 -6.621632729310666, -0.006707710764532663 -6.627959399713556, -0.007344857672592431 -6.640612740519335, -0.007788090304286182 -6.640612740519335, -0.008286727014941651 -6.650102746123669, -0.008951575962482276 -6.650102746123669, -0.009450212673137745 -6.659592751728003, -0.010115061620678373 -6.659592751728003, -0.010613698331333842 -6.669082757332336, -0.01111233504198931 -6.669082757332336, -0.01161097175264478 -6.67857276293667, -0.012109608463300251 -6.67857276293667, -0.01260824517395572 -6.67857276293667, -0.013106881884611189 -6.688062768541005, -0.013605518595266658 -6.68489943333956, -0.014228814483585995 -6.697552774145339, -0.014602792016577599 -6.697552774145339, -0.015101428727233067 -6.697552774145339, -0.015600065437888536 -6.707042779749673, -0.016264914385429166 -6.707042779749673, -0.016763551096084635 -6.703879444548229, -0.01730374086596139 -6.716532785354006, -0.01792703675428073 -6.716532785354006, -0.018425673464936197 -6.72602279095834, -0.019090522412476822 -6.722859455756896, -0.01965841422183444 -6.735512796562674, -0.020254008070672923 -6.735512796562674, -0.02075264478132839 -6.735512796562674, -0.02125128149198386 -6.741839466965565, -0.021860726360562764 -6.754492807771343, -0.022248554913294798 -6.754492807771343, -0.022747191623950266 -6.763982813375677, -0.02341204057149089 -6.763982813375677, -0.02391067728214636 -6.77347281898001, -0.024575526229686985 -6.782962824584344, -0.025074162940342454 -6.792452830188679, -0.02557279965099793 -6.798779500591569, -0.02622379757879812 -6.874699545426242, -0.026680881230232302 -6.849392863814683, -0.027318028138292066 -6.872168877265085, -0.028032740756898246 -6.862046204620461, -0.028523066855709454 -6.877862880627686, -0.02881393827025848 -6.937966249455132, -0.024104591558512377 -6.934802914253688, -0.024700185407350854 -6.925312908649356, -0.025157269058785035 -6.925312908649356, -0.025655905769440504 -6.925312908649356, -0.026154542480095973 -6.925312908649356, -0.026611626131530154 -6.956946260663801, -0.021777620242120183 -6.953782925462357, -0.02235243756134802 -6.9442929198580226, -0.02283029774239284 -6.9442929198580226, -0.023328934453048317 -6.9727629366710255, -0.019506053004689716 -6.9727629366710255, -0.020004689715345185 -6.963272931066691, -0.020503326426000654 -6.963272931066691, -0.021001963136656122 -6.994906283081137, -0.017636165339731703 -6.98225294227536, -0.018010142872723303 -6.98225294227536, -0.01850877958337878 -6.98225294227536, -0.019007416294034248 -7.013886294289805, -0.015503108299705528 -7.001232953484027, -0.01601559603010143 -7.001232953484027, -0.016514232740756897 -7.001232953484027, -0.017012869451412366 -7.032866305498474, -0.013217690042534624 -7.02970297029703, -0.013792507361762461 -7.020212964692695, -0.014270367542807286 -7.020212964692695, -0.014769004253462755 -7.051846316707141, -0.010835314647180716 -7.048682981505697, -0.01146553604537027 -7.039192975901364, -0.011943396226415095 -7.039192975901364, -0.012442032937070564 -7.0708263279158095, -0.008646853528192824 -7.067662992714365, -0.00913856472897808 -7.058172987110031, -0.009533318791580326 -7.058172987110031, -0.010031955502235795 -7.089806339124478, -0.006458392409204929 -7.0771529983187, -0.006957029119860399 -7.0771529983187, -0.00745566583051587 -7.0771529983187, -0.007954302541171339 -7.108786350333145, -0.004643908823208637 -7.0961330095273665, -0.005211800632566255 -7.0961330095273665, -0.005710437343221724 -7.1246030263403695, -0.0033834660268295333 -7.115113020736035, -0.0038821027374850037 -7.143583037549038, -0.002303086487076016 -7.134093031944704, -0.0028848293161740646 -7.162563048757705, -0.0016590140691460347 -7.181543059966374, -0.0011396008288799206 -7.200523071175042, -0.0005786345293925174 -7.276443116009713, -0.0000522957792561899 -7.3808331776573874, -0.00013401679572472465 -7.444099881686282, -0.0008902824735521862 -7.46307989289495, -0.0017351946777183994 -7.475733233700727, -0.002303086487076016 -7.4852232393050615, -0.002780946668120841 -7.494713244909396, -0.003300359908386955 -7.501039915312286, -0.003992910895408442 -7.5136932561180645, -0.004463845566583051 -7.5136932561180645, -0.004962482277238521 -7.523183261722399, -0.00546111898789399 -7.532673267326731, -0.00595975569854946 -7.532673267326731, -0.006458392409204929 -7.542163272931066, -0.006957029119860399 -7.5516532785354, -0.00745566583051587 -7.5516532785354, -0.007954302541171339 -7.55797994893829, -0.008619151488711964 -7.570633289744069, -0.009034682080924854 -7.570633289744069, -0.009533318791580326 -7.570633289744069, -0.010031955502235795 -7.580123295348403, -0.010572145272112555 -7.580123295348403, -0.011070781982768023 -7.589613300952736, -0.01161097175264478 -7.589613300952736, -0.012109608463300251 -7.59910330655707, -0.012774457410840876 -7.59910330655707, -0.013273094121496345 -7.59910330655707, -0.01375095430254117 -7.608593312161404, -0.014436579779692442 -7.608593312161404, -0.014935216490347911 -7.6180833177657385, -0.015558512378667249 -7.614919982564294, -0.016140255207765297 -7.627573323370073, -0.016680444977642053 -7.627573323370073, -0.017179081688297522 -7.627573323370073, -0.01767771839895299 -7.637063328974407, -0.01838412040571491 -7.633899993772963, -0.0189381611953321 -7.64655333457874, -0.01958915912313229 -7.64655333457874, -0.02008779583378776 -7.656043340183074, -0.02079419784054968 -7.656043340183074, -0.021292834551205148 -7.64655333457874, -0.021542152906532885 -7.665533345787408, -0.02199923655796706 -7.665533345787408, -0.022497873268622536 -7.675023351391743, -0.02307961609772058 -7.675023351391743, -0.0235574762787654 -7.684513356996077, -0.024159995637474098 -7.690840027398967, -0.02483869560475515 -7.703493368204744, -0.02532348129567019 -7.709820038607634, -0.026016032282691677 -7.807883429852418, -0.027141427636601594 -7.765178404632915, -0.027847829643363506 -7.790801419764619, -0.02850644563202094 -7.8490067874711995, -0.024714036427091288 -7.845843452269755, -0.02532348129567019 -7.836353446665421, -0.02582211800632566 -7.836353446665421, -0.02632075471698113 -7.867986798679866, -0.022470171229141675 -7.864823463478422, -0.023017286508888644 -7.855333457874088, -0.02341204057149089 -7.855333457874088, -0.02391067728214636 -7.886966809888535, -0.020254008070672923 -7.883803474687091, -0.02077342131093903 -7.8743134690827565, -0.02125128149198386 -7.8743134690827565, -0.02174991820263933 -7.905946821097202, -0.018051695931944597 -7.893293480291425, -0.01850877958337878 -7.893293480291425, -0.019007416294034248 -7.893293480291425, -0.019506053004689716 -7.924926832305871, -0.01594634093139928 -7.912273491500092, -0.01634802050387174 -7.912273491500092, -0.01684665721452721 -7.912273491500092, -0.017345293925182678 -7.943906843514539, -0.013716326753190096 -7.940743508313095, -0.01429114407241793 -7.931253502708761, -0.014769004253462755 -7.931253502708761, -0.015267640964118223 -7.962886854723206, -0.011500163594721344 -7.959723519521764, -0.012026502344857673 -7.950233513917429, -0.012442032937070564 -7.950233513917429, -0.012940669647726033 -7.981866865931875, -0.00933940451521431 -7.969213525126096, -0.00978263714690806 -7.969213525126096, -0.01028127385756353 -7.969213525126096, -0.010779910568218998 -8.000846877140543, -0.007247900534409423 -7.988193536334765, -0.007621878067401026 -7.988193536334765, -0.008120514778056495 -7.988193536334765, -0.008619151488711964 -8.019826888349211, -0.0052533536917875445 -8.007173547543434, -0.005627331224779146 -8.007173547543434, -0.0061259679354346164 -8.007173547543434, -0.006624604646090085 -8.03880689955788, -0.003729741520340276 -8.0261535587521, -0.004131421092812738 -8.0261535587521, -0.004630057803468207 -8.057786910766549, -0.0025247028029228916 -8.045133569960768, -0.003134147671501799 -8.073603586773771, -0.0017421201875886128 -8.095746933183882, -0.0011257498091394903 -8.130543620399774, -0.0003708692332860721 -8.206463665234448, -0.000024593739775329373 -8.301363721277788, -0.0001319391427636596 -8.35830375490379, -0.0008071763551096081 -8.377283766112459, -0.0014928018322608785 -8.396263777321128, -0.002261533427854727 -8.386773771716793, -0.0025108517831824613 -8.405753782925462, -0.0029679354346166427 -8.41208045332835, -0.0036327843821572676 -8.42473379413413, -0.004131421092812738 -8.434223799738465, -0.004837823099574654 -8.42473379413413, -0.005087141454902388 -8.4437138053428, -0.005544225106336568 -8.4437138053428, -0.006042861816992038 -8.450040475745688, -0.0066800087250518045 -8.462693816551464, -0.007123241356745554 -8.462693816551464, -0.007621878067401026 -8.469020486954356, -0.00827287599520122 -8.481673827760133, -0.008702257607154542 -8.481673827760133, -0.00920089431781001 -8.491163833364467, -0.009865743265350639 -8.488000498163025, -0.010433635074708255 -8.500653838968802, -0.011029228923546732 -8.500653838968802, -0.011527865634202201 -8.510143844573136, -0.012151161522521539 -8.506980509371694, -0.012719053331879155 -8.51963385017747, -0.013273094121496345 -8.51963385017747, -0.013771730832151817 -8.51963385017747, -0.014270367542807286 -8.529123855781805, -0.014852110371905333 -8.525960520580359, -0.01542000218126295 -8.538613861386139, -0.015932489911658854 -8.538613861386139, -0.016431126622314322 -8.538613861386139, -0.01692976333296979 -8.548103866990473, -0.017511506162067834 -8.544940531789027, -0.01810710001090632 -8.557593872594808, -0.018591885701821353 -8.557593872594808, -0.019090522412476822 -8.557593872594808, -0.01958915912313229 -8.567083878199139, -0.02017090195223034 -8.563920542997696, -0.020780346820809245 -8.576573883803473, -0.02125128149198386 -8.576573883803473, -0.02174991820263933 -8.576573883803473, -0.022248554913294798 -8.582900554206365, -0.022885701821354562 -8.595553895012142, -0.023245828334605735 -8.595553895012142, -0.023744465045261204 -8.601880565415033, -0.02449242011124441 -8.61453390622081, -0.025074162940342454 -8.620860576623699, -0.0257944159668448 -8.633513917429479, -0.026611626131530154 -8.690453951055481, -0.02868927909259461 -8.760047325487264, -0.02551739557203621 -8.756883990285822, -0.026071436361653398 -8.779027336695933, -0.023190424255644014 -8.77586400149449, -0.02376524157487185 -8.766373995890156, -0.024243101755916673 -8.766373995890156, -0.02474173846657214 -8.799589015505322, -0.020939633547824188 -8.785354007098821, -0.021417493728869016 -8.785354007098821, -0.021916130439524485 -8.785354007098821, -0.022414767150179954 -8.81698735911327, -0.01850877958337878 -8.813824023911824, -0.019048969353255535 -8.80433401830749, -0.019506053004689716 -8.80433401830749, -0.020004689715345185 -8.835967370321935, -0.016361871523612175 -8.823314029516158, -0.016763551096084635 -8.823314029516158, -0.017262187806740104 -8.823314029516158, -0.017760824517395572 -8.854947381530604, -0.014298069582288143 -8.842294040724827, -0.014685898135020177 -8.842294040724827, -0.015184534845675645 -8.842294040724827, -0.015683171556331116 -8.873927392739272, -0.012165012542261969 -8.861274051933496, -0.01260824517395572 -8.861274051933496, -0.013106881884611189 -8.861274051933496, -0.013605518595266658 -8.892907403947941, -0.009948849383793217 -8.880254063142164, -0.010447486094448686 -8.880254063142164, -0.010946122805104154 -8.880254063142164, -0.011444759515759623 -8.91188741515661, -0.007801941324026609 -8.89923407435083, -0.008203620896499073 -8.89923407435083, -0.008702257607154542 -8.89923407435083, -0.00920089431781001 -8.930867426365278, -0.005682735303740865 -8.918214085559498, -0.0061259679354346164 -8.918214085559498, -0.006624604646090085 -8.918214085559498, -0.007123241356745554 -8.949847437573943, -0.003992910895408442 -8.937194096768167, -0.004463845566583051 -8.937194096768167, -0.004962482277238521 -8.968827448782612, -0.002704766059548478 -8.956174107976835, -0.003300359908386955 -8.984644124789838, -0.0018875558948631254 -9.003624135998503, -0.0013058130657650768 -9.022604147207172, -0.000765623295888319 -9.098524192041847, -0.0000799978187370487 -9.20291425368952, -0.00010077434834769236 -9.269344292919858, -0.0006617406478350955 -9.288324304128526, -0.0012642600065437878 -9.304140980135749, -0.0020399171120078514 -9.31679432094153, -0.00263551096084633 -9.323120991344418, -0.0033142109281273837 -9.335774332150194, -0.0037989966190424256 -9.335774332150194, -0.004297633329697894 -9.345264337754529, -0.004775493510742719 -9.354754343358863, -0.0052949067510088335 -9.364244348963197, -0.006001308757770749 -9.361081013761755, -0.0065276475079070785 -9.373734354567532, -0.007206347475188132 -9.38006102497042, -0.00787119642272876 -9.3927143657762, -0.008286727014941651 -9.3927143657762, -0.00878536372559712 -9.402204371380535, -0.009450212673137745 -9.399041036179089, -0.009990402443014504 -9.411694376984869, -0.010613698331333842 -9.411694376984869, -0.01111233504198931 -9.418021047387757, -0.011777183989529939 -9.430674388193534, -0.01219271458174283 -9.430674388193534, -0.012691351292398298 -9.430674388193534, -0.013189988003053767 -9.440164393797868, -0.013854836950594395 -9.440164393797868, -0.014353473661249864 -9.440164393797868, -0.01483133384229469 -9.449654399402203, -0.015516959319445958 -9.449654399402203, -0.01601559603010143 -9.459144405006537, -0.016680444977642053 -9.459144405006537, -0.017179081688297522 -9.459144405006537, -0.01765694186934235 -9.468634410610871, -0.018342567346493623 -9.468634410610871, -0.01884120405714909 -9.478124416215206, -0.01946449994546843 -9.478124416215206, -0.019963136656123898 -9.478124416215206, -0.02044099683716872 -9.48761442181954, -0.021085069255098704 -9.48761442181954, -0.021583705965754173 -9.497104427423874, -0.02212389573563093 -9.497104427423874, -0.022622532446286397 -9.506594433028209, -0.023162722216163154 -9.506594433028209, -0.02366135892681863 -9.512921103431097, -0.024326207874359254 -9.525574444236877, -0.024824844585014723 -9.531901114639766, -0.025558948631257496 -9.544554455445542, -0.026154542480095973 -9.554044461049877, -0.0266324026611408 -9.620474500280217, -0.028495364816228594 -9.671087863503331, -0.026306903697240702 -9.690067874712, -0.024201548696695385 -9.67741453390622, -0.024658632348129567 -9.67741453390622, -0.025157269058785035 -9.67741453390622, -0.025655905769440504 -9.709047885920665, -0.021639110044715894 -9.696394545114888, -0.02199923655796706 -9.696394545114888, -0.022497873268622536 -9.696394545114888, -0.022996509979277997 -9.696394545114888, -0.023495146689933473 -9.728027897129333, -0.019007416294034248 -9.724864561927891, -0.019547606063911004 -9.715374556323557, -0.020004689715345185 -9.715374556323557, -0.020503326426000654 -9.715374556323557, -0.021001963136656122 -9.747007908338002, -0.01687435925400807 -9.734354567532225, -0.017262187806740104 -9.734354567532225, -0.017760824517395572 -9.734354567532225, -0.01825946122805104 -9.76598791954667, -0.014824408332424476 -9.753334578740894, -0.015184534845675645 -9.753334578740894, -0.015683171556331116 -9.753334578740894, -0.016181808266986585 -9.78496793075534, -0.012719053331879155 -9.77231458994956, -0.013189988003053767 -9.77231458994956, -0.013688624713709236 -9.77231458994956, -0.014187261424364708 -9.803947941964008, -0.010530592212891264 -9.800784606762562, -0.011050005453157376 -9.791294601158228, -0.011527865634202201 -9.791294601158228, -0.012026502344857673 -9.822927953172673, -0.008342131093903369 -9.81976461797123, -0.008847693314429054 -9.810274612366896, -0.009284000436252588 -9.841907964381342, -0.006181372014396334 -9.8387446291799, -0.00668693423492202 -9.829254623575565, -0.007123241356745554 -9.829254623575565, -0.007621878067401026 -9.86088797559001, -0.004394590467880901 -9.848234634784234, -0.00546111898789399 -9.876704651597233, -0.0031133711418911535 -9.867214645992899, -0.0036327843821572676 -9.895684662805902, -0.0020537681317482816 -9.886194657201568, -0.00263551096084633 -9.917828009216013, -0.0013058130657650768 -9.952624696431908, -0.0006201875886138065 +0.0839,-0.000439 +0.095,-0.0007051 +0.1062,-0.0009808 +0.1173,-0.0012802 +0.1284,-0.0016337 +0.1396,-0.0021294 +0.1507,-0.0027992 +0.1619,-0.0033892 +0.173,-0.0039735 +0.1842,-0.0049021 +0.1953,-0.0062478 +0.2065,-0.0069126 +0.2176,-0.0074702 +0.2288,-0.0083288 +0.2399,-0.0096078 +0.2511,-0.0107608 +0.2622,-0.0118011 +0.2734,-0.0143095 +0.2845,-0.0153067 +0.2957,-0.0164922 +0.3068,-0.0176331 +0.318,-0.0187838 +0.3291,-0.0199336 +0.3403,-0.0210842 +0.3514,-0.0222159 +0.3626,-0.0234403 +0.3737,-0.0240734 +0.3849,-0.0246381 +0.396,-0.0255459 +0.4072,-0.0269703 +0.4183,-0.0275897 +0.4295,-0.028126 +0.4406,-0.0292083 +0.4517,-0.029067 +0.4629,-0.0288189 +0.474,-0.0284341 +0.4852,-0.0277854 +0.4963,-0.0267022 +0.5075,-0.0252161 +0.5186,-0.0245501 +0.5298,-0.0239743 +0.5409,-0.0228173 +0.5521,-0.0214747 +0.5632,-0.0201791 +0.5744,-0.0188809 +0.5855,-0.0175818 +0.5967,-0.0162831 +0.6078,-0.014985 +0.619,-0.0136835 +0.6301,-0.0123972 +0.6413,-0.0110465 +0.6524,-0.0099634 +0.6636,-0.0077027 +0.6747,-0.0073983 +0.6859,-0.0059685 +0.697,-0.0044787 +0.7082,-0.0038618 +0.7193,-0.0032249 +0.7305,-0.0023865 +0.7416,-0.0019273 +0.7528,-0.0016266 +0.7639,-0.0013598 +0.775,-0.001088 +0.7862,-0.0002557 +0.7973,-0.0002061 +0.8085,-0.0001724 +0.8196,-0.0001451 +0.8308,-0.0001219 +0.8419,-0.0001023 +0.8531,-8.58e-05 +0.8642,-7.25e-05 +0.8754,-6.22e-05 +0.8865,-5.52e-05 +0.8977,-5.18e-05 +0.9088,-5.23e-05 +0.92,-5.73e-05 +0.9311,-6.76e-05 +0.9423,-8.46e-05 +0.9534,-0.00011 +0.9646,-0.000147 +0.9757,-0.000201 +0.9869,-0.0002785 +0.998,-0.0003901 +1.0092,-0.000556 +1.0203,-0.0008227 +1.0315,-0.0012917 +1.0426,-0.0018736 +1.0538,-0.0024724 +1.0649,-0.0030872 +1.0761,-0.0036668 +1.0872,-0.0041851 +1.0983,-0.0047562 +1.1095,-0.0058715 +1.1206,-0.0066093 +1.1318,-0.007158 +1.1429,-0.0078841 +1.1541,-0.0105106 +1.1652,-0.011535 +1.1764,-0.0127231 +1.1875,-0.0138621 +1.1987,-0.0150143 +1.2098,-0.016163 +1.221,-0.0173126 +1.2321,-0.0184621 +1.2433,-0.0196113 +1.2544,-0.0207606 +1.2656,-0.0219135 +1.2767,-0.0230382 +1.2879,-0.0242817 +1.299,-0.0249261 +1.3102,-0.0254881 +1.3213,-0.0263648 +1.3325,-0.0277982 +1.3436,-0.0284731 +1.3548,-0.0289001 +1.3659,-0.0291098 +1.3771,-0.0290556 +1.3882,-0.0287369 +1.3994,-0.0281813 +1.4105,-0.0272163 +1.4216,-0.0258025 +1.4328,-0.024407 +1.4439,-0.0237266 +1.4551,-0.0231201 +1.4662,-0.021914 +1.4774,-0.0206459 +1.4885,-0.0193482 +1.4997,-0.0180391 +1.5108,-0.0168203 +1.522,-0.0151374 +1.5331,-0.0137718 +1.5443,-0.0113696 +1.5554,-0.0103061 +1.5666,-0.0089368 +1.5777,-0.0077025 +1.5889,-0.0062417 +1.6,-0.0055443 +1.6112,-0.0049466 +1.6223,-0.0037233 +1.6335,-0.0029788 +1.6446,-0.0024004 +1.6558,-0.0017912 +1.6669,-0.0013992 +1.6781,-0.00113 +1.6892,-0.0009167 +1.7004,-0.0007389 +1.7115,-0.0005888 +1.7227,-0.0004622 +1.7338,-0.0003565 +1.7449,-0.0002702 +1.7561,-0.0002019 +1.7672,-0.0001508 +1.7784,-0.0001162 +1.7895,-9.74e-05 +1.8007,-9.36e-05 +1.8118,-0.000103 +1.823,-0.0001237 +1.8341,-0.0001547 +1.8453,-0.0001952 +1.8564,-0.0002446 +1.8676,-0.0003027 +1.8787,-0.0003697 +1.8899,-0.0004458 +1.901,-0.0005319 +1.9122,-0.0006295 +1.9233,-0.0007416 +1.9345,-0.0008748 +1.9456,-0.001046 +1.9568,-0.001306 +1.9679,-0.0020171 +1.9791,-0.002665 +1.9902,-0.0032166 +2.0014,-0.0043437 +2.0125,-0.0050362 +2.0237,-0.0055852 +2.0348,-0.0064951 +2.046,-0.0077743 +2.0571,-0.0088907 +2.0682,-0.0100505 +2.0794,-0.0111971 +2.0905,-0.0123467 +2.1017,-0.0134981 +2.1128,-0.0146409 +2.124,-0.0158114 +2.1351,-0.0169107 +2.1463,-0.0193152 +2.1574,-0.0203926 +2.1686,-0.0215256 +2.1797,-0.0227423 +2.1909,-0.0233422 +2.202,-0.0239155 +2.2132,-0.0250495 +2.2243,-0.0257314 +2.2355,-0.0262795 +2.2466,-0.0273577 +2.2578,-0.0280927 +2.2689,-0.0286081 +2.2801,-0.0291797 +2.2912,-0.0288181 +2.3024,-0.028416 +2.3135,-0.0279446 +2.3247,-0.0273097 +2.3358,-0.0261996 +2.347,-0.0248466 +2.3581,-0.0235574 +2.3693,-0.022257 +2.3804,-0.0209585 +2.3915,-0.0196598 +2.4027,-0.0183611 +2.4138,-0.0170624 +2.425,-0.0157637 +2.4361,-0.014465 +2.4473,-0.0131663 +2.4584,-0.0118677 +2.4696,-0.0105684 +2.4807,-0.0092722 +2.4919,-0.0079638 +2.503,-0.0067013 +2.5142,-0.0052929 +2.5253,-0.0045343 +2.5365,-0.003952 +2.5476,-0.0033575 +2.5588,-0.0027096 +2.5699,-0.002028 +2.5811,-0.0014874 +2.5922,-0.0010728 +2.6034,-0.0007615 +2.6145,-0.000531 +2.6257,-0.0003625 +2.6368,-0.0002429 +2.648,-0.0001617 +2.6591,-0.0001072 +2.6703,-7.18e-05 +2.6814,-5.1e-05 +2.6926,-4.14e-05 +2.7037,-4.1e-05 +2.7148,-4.78e-05 +2.726,-6.05e-05 +2.7371,-7.79e-05 +2.7483,-9.91e-05 +2.7594,-0.0001238 +2.7706,-0.0001532 +2.7817,-0.0001888 +2.7929,-0.0002327 +2.804,-0.0002876 +2.8152,-0.0003581 +2.8263,-0.0004517 +2.8375,-0.0005842 +2.8486,-0.0007921 +2.8598,-0.0011481 +2.8709,-0.0017583 +2.8821,-0.0023846 +2.8932,-0.0029514 +2.9044,-0.0035238 +2.9155,-0.0040917 +2.9267,-0.0046359 +2.9378,-0.0052333 +2.949,-0.0062103 +2.9601,-0.007445 +2.9713,-0.0085715 +2.9824,-0.0097274 +2.9936,-0.0108775 +3.0047,-0.0120181 +3.0159,-0.0132 +3.027,-0.0142613 +3.0381,-0.0167407 +3.0493,-0.0177539 +3.0604,-0.018925 +3.0716,-0.0200712 +3.0827,-0.0212224 +3.0939,-0.0223515 +3.105,-0.023584 +3.1162,-0.024202 +3.1273,-0.0247683 +3.1385,-0.0258372 +3.1496,-0.0266449 +3.1608,-0.0271859 +3.1719,-0.0277141 +3.1831,-0.0282985 +3.1942,-0.0290834 +3.2054,-0.0289702 +3.2165,-0.0285759 +3.2277,-0.028079 +3.2388,-0.027446 +3.25,-0.0263731 +3.2611,-0.0249999 +3.2723,-0.0237138 +3.2834,-0.0224127 +3.2946,-0.0211144 +3.3057,-0.0198157 +3.3169,-0.0185169 +3.328,-0.0172182 +3.3392,-0.0159195 +3.3503,-0.0146208 +3.3614,-0.0133222 +3.3726,-0.0120234 +3.3837,-0.0107251 +3.3949,-0.0094247 +3.406,-0.0081323 +3.4172,-0.0068106 +3.4283,-0.0055974 +3.4395,-0.0041126 +3.4506,-0.0036172 +3.4618,-0.0032343 +3.4729,-0.0028342 +3.4841,-0.0022638 +3.4952,-0.0015926 +3.5064,-0.0011218 +3.5175,-0.0007924 +3.5287,-0.0005566 +3.5398,-0.0003899 +3.551,-0.0002758 +3.5621,-0.0001979 +3.5733,-0.0001449 +3.5844,-0.0001099 +3.5956,-8.8e-05 +3.6067,-7.58e-05 +3.6179,-7.08e-05 +3.629,-7.1e-05 +3.6402,-7.53e-05 +3.6513,-8.38e-05 +3.6625,-9.72e-05 +3.6736,-0.000116 +3.6847,-0.0001411 +3.6959,-0.000174 +3.707,-0.0002163 +3.7182,-0.0002708 +3.7293,-0.0003422 +3.7405,-0.000439 +3.7516,-0.000578 +3.7628,-0.0007844 +3.7739,-0.0011067 +3.7851,-0.0016216 +3.7962,-0.0022305 +3.8074,-0.0028113 +3.8185,-0.0033459 +3.8297,-0.0039515 +3.8408,-0.005095 +3.852,-0.0057934 +3.8631,-0.0063441 +3.8743,-0.007198 +3.8854,-0.0084619 +3.8966,-0.0095806 +3.9077,-0.0107421 +3.9189,-0.0118794 +3.93,-0.0130627 +3.9412,-0.0141219 +3.9523,-0.0166037 +3.9635,-0.0176152 +3.9746,-0.0187873 +3.9858,-0.0199333 +3.9969,-0.0210842 +4.008,-0.0222145 +4.0192,-0.0234436 +4.0303,-0.0240595 +4.0415,-0.0246267 +4.0526,-0.0257016 +4.0638,-0.0265011 +4.0749,-0.0270422 +4.0861,-0.0275759 +4.0972,-0.0281653 +4.1084,-0.0289085 +4.1195,-0.0289749 +4.1307,-0.0286216 +4.1418,-0.0281299 +4.153,-0.0274953 +4.1641,-0.0264291 +4.1753,-0.0250513 +4.1864,-0.0237659 +4.1976,-0.0224647 +4.2087,-0.0211663 +4.2199,-0.0198676 +4.231,-0.0185689 +4.2422,-0.0172702 +4.2533,-0.0159715 +4.2645,-0.0146728 +4.2756,-0.0133741 +4.2868,-0.0120754 +4.2979,-0.0107768 +4.3091,-0.0094776 +4.3202,-0.0081808 +4.3313,-0.0068749 +4.3425,-0.0056022 +4.3536,-0.0042296 +4.3648,-0.0034327 +4.3759,-0.0028862 +4.3871,-0.0024425 +4.3982,-0.0020373 +4.4094,-0.0016339 +4.4205,-0.0012246 +4.4317,-0.0008773 +4.4428,-0.00062 +4.454,-0.000439 +4.4651,-0.0003136 +4.4763,-0.0002241 +4.4874,-0.000159 +4.4986,-0.0001117 +4.5097,-7.79e-05 +4.5209,-5.48e-05 +4.532,-4.02e-05 +4.5432,-3.27e-05 +4.5543,-3.1e-05 +4.5655,-3.51e-05 +4.5766,-4.52e-05 +4.5878,-6.18e-05 +4.5989,-8.58e-05 +4.6101,-0.0001184 +4.6212,-0.0001612 +4.6324,-0.0002172 +4.6435,-0.0002908 +4.6546,-0.0003905 +4.6658,-0.0005332 +4.6769,-0.0007434 +4.6881,-0.0010675 +4.6992,-0.001575 +4.7104,-0.0021793 +4.7215,-0.0027635 +4.7327,-0.0032991 +4.7438,-0.0039046 +4.755,-0.0050496 +4.7661,-0.0057421 +4.7773,-0.0062932 +4.7884,-0.0071788 +4.7996,-0.0084656 +4.8107,-0.0095795 +4.8219,-0.0107424 +4.833,-0.0118796 +4.8442,-0.0130617 +4.8553,-0.0141245 +4.8665,-0.0165533 +4.8776,-0.0175698 +4.8888,-0.0187413 +4.8999,-0.0198874 +4.9111,-0.0210381 +4.9222,-0.0221688 +4.9334,-0.0233969 +4.9445,-0.0240115 +4.9557,-0.024579 +4.9668,-0.0256616 +4.9779,-0.0264454 +4.9891,-0.0269888 +5.0002,-0.0275503 +5.0114,-0.0281536 +5.0225,-0.0287217 +5.0337,-0.0290495 +5.0448,-0.0286864 +5.056,-0.0280882 +5.0671,-0.027473 +5.0783,-0.0264521 +5.0894,-0.0250484 +5.1006,-0.0237665 +5.1117,-0.0224646 +5.1229,-0.0211663 +5.134,-0.0198676 +5.1452,-0.0185691 +5.1563,-0.0172685 +5.1675,-0.0159812 +5.1786,-0.0147301 +5.1898,-0.0134245 +5.2009,-0.0121279 +5.2121,-0.0108278 +5.2232,-0.0095329 +5.2344,-0.0082199 +5.2455,-0.0069748 +5.2567,-0.0055203 +5.2678,-0.0048541 +5.279,-0.0042513 +5.2901,-0.0029614 +5.3012,-0.0024678 +5.3124,-0.0020936 +5.3235,-0.0016873 +5.3347,-0.0011703 +5.3458,-0.0007938 +5.357,-0.0005753 +5.3681,-0.000439 +5.3793,-0.0003483 +5.3904,-0.0002827 +5.4016,-0.0002329 +5.4127,-0.0001943 +5.4239,-0.0001641 +5.435,-0.0001406 +5.4462,-0.0001225 +5.4573,-0.000109 +5.4685,-9.93e-05 +5.4796,-9.29e-05 +5.4908,-8.93e-05 +5.5019,-8.89e-05 +5.5131,-9.39e-05 +5.5242,-0.0001076 +5.5354,-0.0001349 +5.5465,-0.0001832 +5.5577,-0.0002634 +5.5688,-0.0003906 +5.58,-0.0005817 +5.5911,-0.0008437 +5.6023,-0.0011792 +5.6134,-0.0015843 +5.6245,-0.0020498 +5.6357,-0.0026771 +5.6468,-0.003834 +5.658,-0.0045576 +5.6691,-0.005096 +5.6803,-0.0056204 +5.6914,-0.0062177 +5.7026,-0.0071731 +5.7137,-0.0084115 +5.7249,-0.0095362 +5.736,-0.0106957 +5.7472,-0.0118335 +5.7583,-0.0130168 +5.7695,-0.0140754 +5.7806,-0.0165582 +5.7918,-0.0175688 +5.8029,-0.0187419 +5.8141,-0.0198869 +5.8252,-0.0210363 +5.8364,-0.0221892 +5.8475,-0.0233175 +5.8587,-0.0245493 +5.8698,-0.025249 +5.881,-0.0258016 +5.8921,-0.0263581 +5.9033,-0.0269583 +5.9144,-0.0275973 +5.9256,-0.028192 +5.9367,-0.0286331 +5.9478,-0.0288755 +5.959,-0.028891 +5.9701,-0.0286232 +5.9813,-0.0276999 +5.9924,-0.0263244 +6.0036,-0.0249185 +6.0147,-0.0242266 +6.0259,-0.0236243 +6.037,-0.0224456 +6.0482,-0.0211125 +6.0593,-0.0198159 +6.0705,-0.0185087 +6.0816,-0.0172781 +6.0928,-0.015639 +6.1039,-0.0142775 +6.1151,-0.0118364 +6.1262,-0.0107716 +6.1374,-0.0094163 +6.1485,-0.0081225 +6.1597,-0.006856 +6.1708,-0.0054484 +6.182,-0.0046811 +6.1931,-0.0041006 +6.2043,-0.003522 +6.2154,-0.0028678 +6.2266,-0.0021055 +6.2377,-0.001584 +6.2489,-0.0012274 +6.26,-0.0009482 +6.2711,-0.0007214 +6.2823,-0.0005369 +6.2934,-0.0003899 +6.3046,-0.0002769 +6.3157,-0.0001921 +6.3269,-0.0001299 +6.338,-8.61e-05 +6.3492,-5.7e-05 +6.3603,-3.99e-05 +6.3715,-3.25e-05 +6.3826,-3.28e-05 +6.3938,-3.96e-05 +6.4049,-5.31e-05 +6.4161,-7.38e-05 +6.4272,-0.0001022 +6.4384,-0.0001398 +6.4495,-0.0001883 +6.4607,-0.0002506 +6.4718,-0.0003312 +6.483,-0.000439 +6.4941,-0.0005908 +6.5053,-0.0008098 +6.5164,-0.0011361 +6.5276,-0.0016239 +6.5387,-0.0022167 +6.5499,-0.0028101 +6.561,-0.003349 +6.5722,-0.0039523 +6.5833,-0.0050954 +6.5944,-0.0057897 +6.6056,-0.0063406 +6.6167,-0.0072241 +6.6279,-0.0085118 +6.639,-0.0096254 +6.6502,-0.0107884 +6.6613,-0.0119253 +6.6725,-0.0131085 +6.6836,-0.0141683 +6.6948,-0.0166494 +6.7059,-0.0176615 +6.7171,-0.0188332 +6.7282,-0.0199793 +6.7394,-0.0211302 +6.7505,-0.0222608 +6.7617,-0.0234888 +6.7728,-0.024115 +6.784,-0.0246802 +6.7951,-0.0256715 +6.8063,-0.0265613 +6.8174,-0.0270764 +6.8286,-0.0274741 +6.8397,-0.0278387 +6.8509,-0.0282329 +6.862,-0.0288952 +6.8732,-0.0285613 +6.8843,-0.0281663 +6.8955,-0.0276935 +6.9066,-0.0270543 +6.9177,-0.02594 +6.9289,-0.024587 +6.94,-0.0232976 +6.9512,-0.0219973 +6.9623,-0.0206988 +6.9735,-0.0194001 +6.9846,-0.0181014 +6.9958,-0.0168027 +7.0069,-0.015504 +7.0181,-0.0142052 +7.0292,-0.0129066 +7.0404,-0.0116075 +7.0515,-0.0103107 +7.0627,-0.0090043 +7.0738,-0.0077479 +7.085,-0.0064606 +7.0961,-0.0051929 +7.1073,-0.0038047 +7.1184,-0.0030803 +7.1296,-0.0024977 +7.1407,-0.001932 +7.1519,-0.0015227 +7.163,-0.0012295 +7.1742,-0.0009978 +7.1853,-0.0008047 +7.1965,-0.0006409 +7.2076,-0.0005016 +7.2188,-0.0003839 +7.2299,-0.0002861 +7.241,-0.000207 +7.2522,-0.0001456 +7.2633,-0.0001007 +7.2745,-6.99e-05 +7.2856,-5.09e-05 +7.2968,-4.21e-05 +7.3079,-4.27e-05 +7.3191,-5.17e-05 +7.3302,-6.9e-05 +7.3414,-9.43e-05 +7.3525,-0.000128 +7.3637,-0.0001712 +7.3748,-0.0002264 +7.386,-0.0003004 +7.3971,-0.0004077 +7.4083,-0.0005744 +7.4194,-0.0008237 +7.4306,-0.0011343 +7.4417,-0.0015053 +7.4529,-0.0019967 +7.464,-0.0031193 +7.4752,-0.0038357 +7.4863,-0.0043401 +7.4975,-0.004853 +7.5086,-0.0054613 +7.5198,-0.0064471 +7.5309,-0.0076734 +7.5421,-0.0088017 +7.5532,-0.0099578 +7.5643,-0.0111052 +7.5755,-0.0122554 +7.5866,-0.0134041 +7.5978,-0.0145554 +7.6089,-0.0156993 +7.6201,-0.0168649 +7.6312,-0.0179792 +7.6424,-0.0203132 +7.6535,-0.0214609 +7.6647,-0.0225768 +7.6758,-0.0238059 +7.687,-0.0244878 +7.6981,-0.0250405 +7.7093,-0.0256075 +7.7204,-0.0262086 +7.7316,-0.0268166 +7.7427,-0.0274051 +7.7539,-0.0279602 +7.765,-0.028396 +7.7762,-0.0286199 +7.7873,-0.0285684 +7.7985,-0.0282632 +7.8096,-0.0277289 +7.8208,-0.0265859 +7.8319,-0.0257718 +7.8431,-0.0251847 +7.8542,-0.0240926 +7.8654,-0.0227238 +7.8765,-0.0214131 +7.8876,-0.0201117 +7.8988,-0.0187906 +7.9099,-0.0160828 +7.9211,-0.0149799 +7.9322,-0.0136205 +7.9434,-0.0123387 +7.9545,-0.0110357 +7.9657,-0.0097373 +7.9768,-0.0084416 +7.988,-0.0071307 +7.9991,-0.0058768 +8.0103,-0.0044583 +8.0214,-0.00377 +8.0326,-0.0031668 +8.0437,-0.00237 +8.0549,-0.0018793 +8.066,-0.0015627 +8.0772,-0.0012895 +8.0883,-0.0010201 +8.0995,-0.000689 +8.1106,-0.0002645 +8.1218,-0.0002083 +8.1329,-0.0001735 +8.1441,-0.0001469 +8.1552,-0.0001253 +8.1664,-0.0001078 +8.1775,-9.38e-05 +8.1887,-8.31e-05 +8.1998,-7.59e-05 +8.2109,-7.22e-05 +8.2221,-7.23e-05 +8.2332,-7.67e-05 +8.2444,-8.58e-05 +8.2555,-0.0001006 +8.2667,-0.0001223 +8.2778,-0.000153 +8.289,-0.0001957 +8.3001,-0.0002562 +8.3113,-0.0003408 +8.3224,-0.0004598 +8.3336,-0.0006322 +8.3447,-0.0008985 +8.3559,-0.0013406 +8.367,-0.0019226 +8.3782,-0.0025248 +8.3893,-0.0030666 +8.4005,-0.0036712 +8.4116,-0.0048176 +8.4228,-0.0055053 +8.4339,-0.0060567 +8.4451,-0.0069515 +8.4562,-0.0082351 +8.4674,-0.0093497 +8.4785,-0.0105126 +8.4897,-0.0116491 +8.5008,-0.0128339 +8.512,-0.0138885 +8.5231,-0.0163568 +8.5342,-0.017343 +8.5454,-0.0184935 +8.5565,-0.0207722 +8.5677,-0.0219593 +8.5788,-0.0231583 +8.59,-0.0237815 +8.6011,-0.0243469 +8.6123,-0.0254003 +8.6234,-0.0262602 +8.6346,-0.0267814 +8.6457,-0.0272095 +8.6569,-0.0276029 +8.668,-0.0279914 +8.6792,-0.0284018 +8.6903,-0.0286896 +8.7015,-0.0286562 +8.7126,-0.0284251 +8.7238,-0.0280505 +8.7349,-0.0272511 +8.7461,-0.0257083 +8.7572,-0.0244456 +8.7684,-0.0231392 +8.7795,-0.0218418 +8.7907,-0.0205429 +8.8018,-0.0192442 +8.813,-0.0179455 +8.8241,-0.0166467 +8.8353,-0.0153489 +8.8464,-0.0140458 +8.8575,-0.0127696 +8.8687,-0.0115094 +8.8798,-0.010204 +8.891,-0.0089065 +8.9021,-0.0076091 +8.9133,-0.0063043 +8.9244,-0.0050273 +8.9356,-0.0036692 +8.9467,-0.0028673 +8.9579,-0.0023354 +8.969,-0.0019056 +8.9802,-0.0015054 +8.9913,-0.0010876 +9.0025,-0.0006422 +9.0136,-0.0004224 +9.0248,-0.0003219 +9.0359,-0.000264 +9.0471,-0.0002254 +9.0582,-0.0001983 +9.0694,-0.0001789 +9.0805,-0.0001651 +9.0917,-0.0001557 +9.1028,-0.0001496 +9.114,-0.0001463 +9.1251,-0.0001453 +9.1363,-0.0001468 +9.1474,-0.000151 +9.1586,-0.0001582 +9.1697,-0.0001691 +9.1808,-0.0001845 +9.192,-0.0002055 +9.2031,-0.0002341 +9.2143,-0.0002738 +9.2254,-0.0003325 +9.2366,-0.0004259 +9.2477,-0.0005914 +9.2589,-0.0009161 +9.27,-0.0014462 +9.2812,-0.0020909 +9.2923,-0.0027131 +9.3035,-0.0032853 +9.3146,-0.0038319 +9.3258,-0.0044355 +9.3369,-0.0053993 +9.3481,-0.0067609 +9.3592,-0.0074334 +9.3704,-0.0079904 +9.3815,-0.0088309 +9.3927,-0.0101147 +9.4038,-0.0112655 +9.415,-0.0123115 +9.4261,-0.0148092 +9.4373,-0.0158276 +9.4484,-0.0169619 +9.4596,-0.0193561 +9.4707,-0.020439 +9.4819,-0.0215872 +9.493,-0.0227251 +9.5041,-0.0239427 +9.5153,-0.0246353 +9.5264,-0.0251854 +9.5376,-0.0257374 +9.5487,-0.0263377 +9.5599,-0.0270073 +9.571,-0.0275541 +9.5822,-0.0279382 +9.5933,-0.0282407 +9.6045,-0.0284818 +9.6156,-0.0286253 +9.6268,-0.0283863 +9.6379,-0.0277841 +9.6491,-0.0271682 +9.6602,-0.0261407 +9.6714,-0.0247374 +9.6825,-0.0234542 +9.6937,-0.022154 +9.7048,-0.0208535 +9.716,-0.0196057 +9.7271,-0.0183462 +9.7383,-0.0168067 +9.7494,-0.015457 +9.7606,-0.0129279 +9.7717,-0.0118652 +9.7829,-0.0105042 +9.794,-0.0092218 +9.8051,-0.0079169 +9.8163,-0.006628 +9.8274,-0.0053366 +9.8386,-0.0044901 +9.8497,-0.0038512 +9.8609,-0.0031597 +9.872,-0.0019807 +9.8832,-0.0015927 +9.8943,-0.0013343 +9.9055,-0.0011138 +9.9166,-0.0009115 +9.9278,-0.0007192 +9.9389,-0.0005319 \ No newline at end of file diff --git a/validation/Turek_dy_T.csv b/validation/Turek_dy_T.csv index f70e76c1b..aad17832c 100644 --- a/validation/Turek_dy_T.csv +++ b/validation/Turek_dy_T.csv @@ -1,1034 +1,928 @@ time,displacement -0.030898052747961202, -0.0030094492343464216 -0.04945044814103561, -0.005863015886974077 -0.05121734294037594, -0.020068850073671214 -0.059128929921351325, -0.010524163246866274 -0.06808566672782934, -0.009382481017103164 -0.07758667023589005, -0.012616703068063721 -0.08403899142276705, -0.015724134641325188 -0.09644669463420685, -0.01794360692283954 -0.10613700829933981, -0.022699882636660514 -0.11559068426813202, -0.025553591271905977 -0.12506802400655825, -0.028597556615008984 -0.12535198924216662, -0.030880637109299593 -0.1348293289805933, -0.033924602452402614 -0.14125009847462522, -0.036778358415187326 -0.15364202583964248, -0.03887099289146333 -0.1604177518781844, -0.04457859947211132 -0.16314302934770275, -0.04210521494242389 -0.17292799809137183, -0.047622517487675056 -0.17939609512467136, -0.0508567868661749 -0.19183535002895669, -0.053329934758165984 -0.1921193152645646, -0.0556130152524566 -0.1985558606050195, -0.05859360902047969 -0.2109320121236138, -0.06055940569151731 -0.21121597735922215, -0.06284248618580793 -0.2206696533280148, -0.06569619482105339 -0.22094178667880593, -0.06788414696141523 -0.23040729453241537, -0.07083298395058946 -0.23716724472453476, -0.0764137527259991 -0.23988463427084206, -0.07387694929369247 -0.24964593924487666, -0.07920399513108609 -0.24992990448048502, -0.0814870756253767 -0.25633489812809396, -0.08421399378292307 -0.2686952738002657, -0.08605295264872233 -0.26897923903587406, -0.08833603314301293 -0.27543944814596255, -0.09150688361889357 -0.2878392634341913, -0.09366293699778877 -0.2881232286697992, -0.09594601749207937 -0.2945913257030992, -0.09918028687057917 -0.30703058060738453, -0.10165343476257027 -0.31650792034581077, -0.10469740010567327 -0.3167800536966019, -0.10688535224603513 -0.3324375812711149, -0.11084879702203779 -0.3448926120218223, -0.11344878271926723 -0.35426346479689563, -0.11563659287701125 -0.3698736648321401, -0.11921952423729881 -0.38856015491980767, -0.12315121223445255 -0.4539420182403622, -0.1296675471778678 -0.5100775559521251, -0.12476650114967106 -0.5217792900361498, -0.12130998164676846 -0.5365099866333298, -0.11782170536501702 -0.5453484045916377, -0.11572873959596613 -0.5571881773318603, -0.11338205088889927 -0.5628832578904492, -0.1104012678107191 -0.5747072547842498, -0.10792774129841387 -0.5803707836499927, -0.10469328260975697 -0.5921553409277367, -0.10190266158435582 -0.5977636543310001, -0.09822427057736463 -0.6095639874551662, -0.09556048735720185 -0.6149198873156676, -0.08985269146639678 -0.615203852551276, -0.0921357719606874 -0.6282899171588907, -0.08761696217514385 -0.6323127579966745, -0.08338367943400445 -0.6411275121853488, -0.08110045695709603 -0.6438449017316556, -0.0785636535247894 -0.649468990981342, -0.07501210032303658 -0.6582719132851991, -0.07263374949219939 -0.6610011347163227, -0.07019207441382155 -0.6663412587304012, -0.06435744071777813 -0.6666252239660095, -0.06664052121206873 -0.6781889193938353, -0.06207417091333044 -0.6835448192543359, -0.05636637502252538 -0.6838287844899442, -0.058649455516815996 -0.695463471226673, -0.05465387534165034 -0.7008903623960756, -0.04951684957441793 -0.701174327631684, -0.05179993006870853 -0.7127695747523557, -0.047487255380446985 -0.7181885779985469, -0.04228681071059538 -0.7184725432341552, -0.044569891204886 -0.730099342047672, -0.04051089212710117 -0.7355341211402866, -0.03543728526248795 -0.735818086375895, -0.03772036575677856 -0.7474054455733548, -0.033344272165897804 -0.7528323367427578, -0.02820724639866539 -0.7531163019783658, -0.030490326892956006 -0.7646168940205014, -0.025416625373264237 -0.7702252074237652, -0.021738234366273056 -0.7820018767782972, -0.01888419443825272 -0.7876180781047726, -0.015269222333880714 -0.7994894025378412, -0.013176209237290577 -0.8052002589428522, -0.01032226396434878 -0.8170163679134412, -0.00778531854942436 -0.831751008472227, -0.004328751718982511 -0.8858227220859711, -0.00014225225040956357 -0.9499870334486267, -0.003946392529235954 -0.9683619505694461, -0.005373033872931976 -0.974830047602746, -0.00860730325143181 -0.9872693025070314, -0.011080451143422897 -0.9937295116171199, -0.014251301619303547 -1.0061766544446158, -0.016787868413913824 -1.0126526394011277, -0.020085556695032827 -1.025084006382201, -0.022495285684404745 -1.0253679716178095, -0.024778366178695353 -1.0317966290350524, -0.027695541044099256 -1.0441806684768582, -0.029724756617756067 -1.0444646337124666, -0.03200783711204669 -1.0508854032064985, -0.034861593074831415 -1.0632300030322472, -0.03657371413539229 -1.0635139682678556, -0.0388567946296829 -1.069966289454733, -0.04196422620294438 -1.0823739926661724, -0.04418369848445873 -1.0826579579017808, -0.046466778978749346 -1.0890787273958127, -0.04932053494153407 -1.1014233272215619, -0.05103265600209496 -1.1017072924571703, -0.053315736496385574 -1.1081675015672587, -0.05648658697226622 -1.120567316855487, -0.05864264035116139 -1.1208512820910954, -0.06092572084545199 -1.1302812942902536, -0.0635891727728399 -1.1305534276410447, -0.06577712491320174 -1.1399952717250201, -0.06853570519451843 -1.1494726114634468, -0.07157967053762145 -1.1497565766990552, -0.07386275103191206 -1.1592339164374819, -0.07690671637501507 -1.1659859787063898, -0.0824240662478055 -1.1687112561759085, -0.07995068171811807 -1.1784725611499431, -0.08527772755551169 -1.1787565263855515, -0.0875608080498023 -1.1851615200331609, -0.09028772620734868 -1.1975218957053322, -0.09212668507314793 -1.1978058609409405, -0.09440976556743855 -1.204234518358184, -0.09732694043284246 -1.2166185577999893, -0.09935615600649927 -1.2169025230355976, -0.10163923650078988 -1.2263088714651222, -0.10411243172032023 -1.2357152198946468, -0.1065856269398506 -1.2421596531583123, -0.10962963961049285 -1.2545752442929636, -0.1119125307946264 -1.2639815927224878, -0.11438572601415675 -1.279611512565761, -0.11812720463099224 -1.2983137784998506, -0.1221857304333844 -1.3718506844502758, -0.12965322350557323 -1.4200086578044235, -0.1252279446575345 -1.431769551312533, -0.12224706692427581 -1.4494542751523602, -0.11812455428879323 -1.4641297562870608, -0.11419234568870751 -1.4728971829364665, -0.111528609796084 -1.4847527315231122, -0.10930875889425551 -1.4904320362352785, -0.10620113801083697 -1.4992467904239524, -0.10391791553392854 -1.5077775793770174, -0.09935161256272954 -1.5080615446126258, -0.10163469305702014 -1.5196804555029315, -0.09751227507661611 -1.5251231225187571, -0.09250208711462209 -1.525407087754365, -0.0947851676089127 -1.5369076797965011, -0.08971146608922093 -1.5422320279641561, -0.08374999458793912 -1.5425159931997645, -0.08603307508222974 -1.555607973749788, -0.08156182947365058 -1.559624898645164, -0.07728098255554679 -1.5684278209490201, -0.0749026317247096 -1.5711570423801446, -0.07246095664633175 -1.5764971663942227, -0.06662632295028832 -1.5767811316298306, -0.06890940344457894 -1.5883448270576572, -0.06434305314584064 -1.5937007269181578, -0.05863525725503557 -1.5939846921537661, -0.060918337749326174 -1.6055326117351694, -0.056225149645349526 -1.6109042874420934, -0.05064419155978282 -1.6111882526777017, -0.05292727205407344 -1.6242802332277249, -0.04845602644549428 -1.6282971581231003, -0.04417517952739049 -1.6401448187865348, -0.041891909722942794 -1.645548046186304, -0.036564627247852824 -1.6458320114219123, -0.03884770774214344 -1.6589239919719359, -0.034376462133564295 -1.6629409168673113, -0.03009561521546049 -1.6717556710559855, -0.027812392738552072 -1.680286460009051, -0.023246089767353047 -1.6805704252446594, -0.025529170261643662 -1.6920946810564286, -0.020645725449809443 -1.697726658229326, -0.017157591150675805 -1.709550655123127, -0.014684064638370568 -1.71521418398887, -0.01144960594971367 -1.727014517113036, -0.008785822729550877 -1.7417057740941595, -0.004980451934703527 -1.7867970871317915, -0.0017453779880361384 -1.8047973279000726, -0.00015962145732093674 -1.8598116483375722, -0.0035516808517404366 -1.8781865654583911, -0.004978322195436459 -1.8876165776575498, -0.007641774122824373 -1.8970465898567084, -0.010305226050212286 -1.9064174426317817, -0.012493036207956311 -1.9158119591764895, -0.014871103073557893 -1.922303719979423, -0.018295629159915276 -1.9347666386533424, -0.020959033759763913 -1.9415423646918848, -0.026666640340411912 -1.9442676421614022, -0.024193255810724484 -1.9540526109050722, -0.029710558355975657 -1.9605049320919488, -0.032817989929237124 -1.9729126353033877, -0.03503746221075148 -1.973196600538996, -0.03732054270504209 -1.9796331458794514, -0.040301136473065186 -1.9920092973980452, -0.042266933144102806 -1.9922932626336536, -0.04455001363839342 -1.998729807974108, -0.047530607406416514 -2.0111059594927028, -0.049496404077454134 -2.011389924728311, -0.051779484571744736 -2.0178264700687656, -0.05476007833976784 -2.0302026215873603, -0.05672587501080546 -2.0304865868229687, -0.05900895550509608 -2.039916599022126, -0.06167240743248399 -2.0401887323729175, -0.06386035957284582 -2.0496305764568934, -0.0666189398541625 -2.0591079161953196, -0.0696629051972655 -2.059380049546111, -0.07185085733762735 -2.068869221169355, -0.07498995103465914 -2.0783465609077814, -0.07803391637776215 -2.0786305261433897, -0.08031699687205276 -2.088107865881817, -0.08336096221515578 -2.097585205620243, -0.08640492755825879 -2.0978573389710338, -0.08859287969862062 -2.107346510594277, -0.0917319733956524 -2.1168001865630703, -0.09458568203089787 -2.117072319913861, -0.0967736341712597 -2.1265378277674705, -0.09972247116043395 -2.1329664851847134, -0.10263964602583786 -2.1453505246265197, -0.10466886159949465 -2.1518422854294537, -0.10809338768585205 -2.164305204103373, -0.11075679228570068 -2.1707417494438275, -0.11373738605372377 -2.1893809119922265, -0.11728856063516246 -2.2080674020798945, -0.12122024863231623 -2.2297236952566317, -0.12464453808097728 -2.274795188954081, -0.1293270397161661 -2.341807140128185, -0.12356466561749824 -2.356526004840548, -0.11998126098181802 -2.365328927144404, -0.11760291015098082 -2.374143681333078, -0.11531968767407241 -2.3829584355217523, -0.11303646519716401 -2.3947666565691295, -0.11043610087962041 -2.400445961281296, -0.10732847999620185 -2.412254182328674, -0.10472811567865828 -2.4178861595015713, -0.10123998137952461 -2.4297574839346403, -0.09914696828293448 -2.4351843751040425, -0.09400994251570208 -2.435468340339651, -0.09629302300999268 -2.4470478116139, -0.09185351051649275 -2.4524352631672466, -0.08639939023616443 -2.452719228402854, -0.08868247073045504 -2.465805293010469, -0.0841636609449115 -2.469828133848254, -0.07993037820377209 -2.4786310561521105, -0.07755202737293489 -2.481328725890388, -0.07485667668408032 -2.4866530740580437, -0.06889520518279851 -2.486937039293652, -0.07117828567708913 -2.5000231039012677, -0.06665947589154558 -2.5037619795034436, -0.06014311265611556 -2.504045944739051, -0.06242619315040618 -2.515664855629357, -0.05830377517000215 -2.521060195105915, -0.052913073792293014 -2.521344160341523, -0.055196154286583615 -2.5328920799229264, -0.05050296618260697 -2.5385477208654583, -0.04720508859133088 -2.547350643169315, -0.04482673776049369 -2.5500798646004394, -0.042385062682115865 -2.5557039538501254, -0.03883350948036303 -2.5675752782831944, -0.036740496383772886 -2.5730021694525975, -0.03160347061654048 -2.573286134688206, -0.033886551110831095 -2.5863721992958197, -0.02936774132528755 -2.590395040133605, -0.025134458584148138 -2.6021795974113484, -0.022343837558746985 -2.6077879108146114, -0.018665446551755803 -2.6196197956316247, -0.01625533894206975 -2.625275436574155, -0.012957461350793661 -2.6340783588780123, -0.01057911051995647 -2.6429049449515025, -0.008391016396976828 -2.6516723716009096, -0.00572728050435331 -2.6966926933296396, -0.0019214364341132717 -2.714661382405075, -0.0000820042929213366 -2.7757612356001236, -0.0036325162888102627 -2.797393865007227, -0.0068665490296137485 -2.813047448620133, -0.010798284354306797 -2.8255419189868984, -0.013715364564632175 -2.831978464327352, -0.016695958332655268 -2.8444019433852157, -0.01904226841940799 -2.844685908620824, -0.021325348913698604 -2.8510909022684325, -0.024052267071244963 -2.8634512779406043, -0.025891225937044224 -2.8637352431762126, -0.028174306431334832 -2.8701639005934556, -0.031091481296738735 -2.882547940035262, -0.03312069687039555 -2.8828319052708693, -0.03540377736468617 -2.8892684506113246, -0.03838437113270926 -2.9016446021299185, -0.04035016780374688 -2.901928567365527, -0.04263324829803748 -2.9083887764756158, -0.04580409877391814 -2.920788591763844, -0.04796015215281331 -2.9210725569994525, -0.050243232647103925 -2.927509102339907, -0.05322382641512702 -2.9398852538585016, -0.055189623086164624 -2.94016921909411, -0.05747270358045524 -2.9466215402809857, -0.06058013515371671 -2.9590292434924264, -0.06279960743523107 -2.9593132087280347, -0.06508268792952168 -2.9687195571575593, -0.06755588314905205 -2.96899169050835, -0.06974383528941387 -2.9784098708226923, -0.07231215886287301 -2.987910874330752, -0.07554638091383357 -2.9881948395663605, -0.07782946140812419 -2.997695843074421, -0.08106368345908474 -3.0071731828128483, -0.08410764880218775 -3.0074571480484567, -0.08639072929647837 -3.016934487786882, -0.08943469463958138 -3.023410472743394, -0.09273238292070039 -3.0358418397244673, -0.0951421119100723 -3.0361258049600757, -0.0974251924043629 -3.042578126146953, -0.10053262397762439 -3.054985829358393, -0.10275209625913873 -3.0552697945940013, -0.10503517675342933 -3.0646406473690746, -0.10722298691117338 -3.0740351639137824, -0.10960105377677495 -3.080455933407813, -0.11245480973955971 -3.0928478607728316, -0.11454744421583568 -3.1022423773175385, -0.11692551108143726 -3.1178525773527825, -0.12050844244172479 -3.139500982606309, -0.12386931298776666 -3.222554543496024, -0.12931225023339044 -3.25780799889161, -0.12405772392159276 -3.269482125244396, -0.12037923825952304 -3.284157606379096, -0.11644702965943729 -3.292925033028502, -0.11378329376681379 -3.30479635746157, -0.11169028067022366 -3.3105072138665816, -0.10883633539728185 -3.3222996590675367, -0.10610913327449986 -3.327947412086857, -0.10274783678060462 -3.3397319693646006, -0.09995721575520347 -3.3453402827678644, -0.09627882474821226 -3.357172167584877, -0.09386871713852624 -3.3625438432917996, -0.0882877590529595 -3.362827808527408, -0.09057083954725012 -3.374391503955235, -0.08600448924851184 -3.3797474038157347, -0.08029669335770677 -3.380031369051343, -0.08257977385199738 -3.391531961093479, -0.07750607233230562 -3.3968563092611337, -0.07154460083102382 -3.397140274496742, -0.07382768132531443 -3.4087749612334717, -0.06983210115014878 -3.4139178871672646, -0.062411994888625755 -3.414201852402873, -0.06469507538291637 -3.4144858176384814, -0.06697815587720697 -3.4257576599074886, -0.06006530618155889 -3.4311214476912006, -0.054420929193373005 -3.431405412926809, -0.05670400968766362 -3.443008547970692, -0.052454753902021256 -3.448419663293672, -0.04719089032955047 -3.4487036285292803, -0.049473970823841085 -3.4602988756499515, -0.04516129613557951 -3.465717878896143, -0.03996085146572792 -3.4660018441317515, -0.04224393196001852 -3.4775024361738875, -0.03717023044032676 -3.4831107495771505, -0.03349183943333557 -3.494895306854895, -0.030701218407934418 -3.500503620258158, -0.02702282740094323 -3.512406496384073, -0.025183489914829833 -3.517849163399897, -0.020173301952835794 -3.5181331286355055, -0.02245638244712641 -3.5297125999097547, -0.01801686995362648 -3.5353840166987087, -0.014845830167588753 -3.5472237894389327, -0.01249914146052189 -3.5529188699975203, -0.009518358382341718 -3.5647349789681098, -0.006981412967417298 -3.579469619526895, -0.00352484613697545 -3.633730643297712, -0.0008604003312629102 -3.6887015801575487, -0.0039036557612769016 -3.7071948161265382, -0.006281580644260681 -3.7227931842769655, -0.009769383650619447 -3.735271878797307, -0.01255962605570645 -3.7416926482913393, -0.015413382018491184 -3.754084575656356, -0.01750601649476717 -3.7635619153947832, -0.020549981837870178 -3.763834048745575, -0.022737933978232018 -3.773323220368818, -0.025877027675263807 -3.7797597657092723, -0.0288576214432869 -3.792135917227867, -0.03082341811432452 -3.7924198824634754, -0.03310649860861513 -3.7988958674199864, -0.03640418688973414 -3.81132723440106, -0.038813915879106056 -3.811611199636668, -0.04109699637339667 -3.8180319691306996, -0.0439507523361814 -3.8303765689564493, -0.04566287339674227 -3.8306605341920577, -0.047945953891032886 -3.837136519148568, -0.05124364217215191 -3.849567886129643, -0.053653371161523813 -3.8498518513652513, -0.05593645165581443 -3.8562962846289164, -0.058980464326456705 -3.8686645482242996, -0.06088284209487514 -3.868948513459907, -0.06316592258916576 -3.8754008346467845, -0.06627335416242723 -3.8878085378582243, -0.06849282644394157 -3.8880925030938327, -0.07077590693823219 -3.8975461790626262, -0.07362961557347765 -3.8978301442982337, -0.07591269606776825 -3.9072838202670264, -0.07876640470301371 -3.9167611600054535, -0.08181037004611673 -3.917045125241062, -0.08409345054040734 -3.926522464979488, -0.08713741588351036 -3.93597614094828, -0.08999112451875582 -3.9362482742990714, -0.09217907665911766 -3.945713782152681, -0.0951279136482919 -3.952205542955614, -0.09855243973464925 -3.9646684616295342, -0.10121584433449793 -3.9652127283311165, -0.10559174861522161 -3.974169465137594, -0.10445006638545845 -3.9836704686456557, -0.10768428843641903 -3.9901543415253773, -0.11104539562015722 -4.002625148122508, -0.11377221912262506 -4.0119960008975815, -0.11596002928036908 -4.0276062009328255, -0.11954296064065664 -4.049278269955987, -0.12309408789455603 -4.09514259946833, -0.12607406640456864 -4.103169258060947, -0.12945455533537384 -4.167857419592079, -0.12547045096874399 -4.176553854932583, -0.1222359449525478 -4.185356777236439, -0.1198575941217106 -4.194159699540296, -0.11747924329087339 -4.202986285613787, -0.11529114916789376 -4.214826058354011, -0.11294446046082687 -4.220521138912599, -0.10996367738264673 -4.232337247883188, -0.10742673196772232 -4.238008664672143, -0.1042556921816846 -4.249785334026675, -0.10140165225366427 -4.255401535353149, -0.09778668014929226 -4.267257083939796, -0.09556682924746376 -4.2726524234163525, -0.09017612786975461 -4.272936388651961, -0.09245920836404523 -4.284531635772634, -0.08814653367578368 -4.289903311479557, -0.08256557559021697 -4.290187276715165, -0.08484865608450758 -4.301814075528681, -0.08078965700672273 -4.306964889385688, -0.0734329696478189 -4.307248854621296, -0.07571605014210951 -4.307532819856904, -0.07799913063640013 -4.318812550049122, -0.07114969984337123 -4.324168449909623, -0.06544190395256616 -4.324452415145231, -0.06772498444685678 -4.336071326035537, -0.06360256646645275 -4.3412300278157545, -0.05630929801016811 -4.341513993051363, -0.058592378504458725 -4.341797958286971, -0.06087545899874933 -4.353093464325611, -0.05415286601095878 -4.358480915878958, -0.04869874573063045 -4.358764881114566, -0.05098182622492106 -4.370360128235237, -0.0466691515366595 -4.375779131481428, -0.04146870686680791 -4.376063096717036, -0.043751787361098526 -4.389149161324652, -0.03923297757555498 -4.393172002162435, -0.034999694834415576 -4.404948671516969, -0.03214565490639523 -4.410564872843444, -0.028530682802023234 -4.422373093890822, -0.025930318484479617 -4.428005071063719, -0.022442184185345992 -4.439781740418252, -0.019588144257325656 -4.4453979417447265, -0.015973172152953644 -4.4572692661777955, -0.013880159056363514 -4.462980122582806, -0.011026213783421716 -4.474741016090916, -0.008045336050163006 -4.489436217033645, -0.004271674706625241 -4.5454530925113055, -0.001093507393173758 -4.607766897088581, -0.00465034234830889 -4.6261418142094, -0.006076983692004913 -4.632578359549854, -0.009057577460028006 -4.645001838607716, -0.011403887546780733 -4.6543726913827905, -0.013591697704524765 -4.663767207927497, -0.015969764570126346 -4.6702431928840085, -0.019267452851245356 -4.682674559865083, -0.021677181840617267 -4.682958525100691, -0.023960262334907875 -4.689387182517934, -0.026877437200311792 -4.70177122195974, -0.028906652773968596 -4.702055187195349, -0.031189733268259218 -4.708491732535802, -0.03417032703628231 -4.720867884054397, -0.03613612370731992 -4.721151849290005, -0.03841920420161053 -4.7306291890284315, -0.041463169544713546 -4.730901322379223, -0.043651121685075386 -4.740390494002467, -0.046790215382107175 -4.746811263496498, -0.0496439713448919 -4.759155863322247, -0.05135609240545279 -4.759439828557856, -0.053639172899743404 -4.765915813514367, -0.056936861180862414 -4.778347180495441, -0.05934659017023432 -4.778631145731048, -0.06162967066452493 -4.785067691071504, -0.06461026443254804 -4.797443842590098, -0.06657606110358565 -4.797727807825706, -0.06885914159787626 -4.807157820024865, -0.07152259352526417 -4.807429953375657, -0.07371054566562601 -4.816871797459632, -0.0764691259469427 -4.826349137198058, -0.07951309129004569 -4.826633102433666, -0.0817961717843363 -4.836110442172093, -0.08484013712743932 -4.845564118140885, -0.08769384576268478 -4.845848083376493, -0.0899769262569754 -4.855301759345286, -0.09283063489222086 -4.861777744301797, -0.09612832317333989 -4.874209111282871, -0.09853805216271178 -4.87449307651848, -0.1008211326570024 -4.880937509782145, -0.10386514532764465 -4.893353100916796, -0.10614803651177823 -4.899836973796519, -0.1095091436955164 -4.9123077803936495, -0.11223596719798423 -4.921737792592808, -0.11489941912537213 -4.937383488282503, -0.11876773554744602 -4.959055557305663, -0.12231886280134541 -5.004982990203697, -0.1258061925323115 -5.050889795062797, -0.12912767283024507 -5.086579611863417, -0.12345841529184146 -5.095418029821725, -0.1213654495227906 -5.104209120240765, -0.11889197033802465 -5.113000210659805, -0.11641849115325867 -5.124839983400029, -0.1140718024461918 -5.130535063958616, -0.1110910193680116 -5.142382724622052, -0.10880774956356395 -5.148069917257428, -0.1057635475827646 -5.156872839561285, -0.1033851967519274 -5.165415460399167, -0.09891402213465714 -5.1656994256347755, -0.10119710262894777 -5.177231569369757, -0.09637707671973272 -5.1828556586194425, -0.09282552351797992 -5.194655991743609, -0.09016174029781712 -5.2000118916041105, -0.08445394440701205 -5.200295856839719, -0.08673702490130267 -5.211828000574699, -0.08191699899208764 -5.2171681245887775, -0.0760823652960442 -5.217452089824386, -0.07836544579033482 -5.230544070374409, -0.07389420018175567 -5.2342770300341765, -0.06733027276936125 -5.234560995269785, -0.06961335326365187 -5.2476529758198085, -0.06514210765507271 -5.2513859354795756, -0.0585781802426783 -5.251669900715184, -0.0608612607369689 -5.2632257082197995, -0.05623149153561144 -5.268589496003511, -0.05058711454742555 -5.268873461239119, -0.05287019504171617 -5.280476596283003, -0.04862093925607379 -5.285887711605982, -0.043357075683603016 -5.28617167684159, -0.04564015617789362 -5.297759036039051, -0.04126406258701287 -5.303185927208453, -0.03612703681978045 -5.3034698924440615, -0.03841011731407107 -5.315002036179043, -0.033590091404856054 -5.3206261254287295, -0.03003853820310322 -5.3324027947832615, -0.02718449827508289 -5.338018996109737, -0.023569526170710876 -5.34985876884996, -0.021222837463644013 -5.35550652186928, -0.017861540969748735 -5.367330518763081, -0.015388014457443505 -5.372994047628823, -0.012153555768786607 -5.384770716983357, -0.00929951584076627 -5.4024791045928175, -0.005367259913141277 -5.453344377421151, 0.00021440808551444202 -5.517591511977526, -0.004255630670813373 -5.5359664290983455, -0.005682272014509389 -5.545360945643053, -0.008060338880110977 -5.561002697371142, -0.011896945850875244 -5.573497167737907, -0.014814026061200622 -5.579925825155149, -0.01773120092660454 -5.592309864596956, -0.019760416500261342 -5.592593829832564, -0.02204349699455195 -5.598998823480173, -0.024770415152098317 -5.6113591991523455, -0.02660937401789757 -5.611643164387954, -0.028892454512188186 -5.618103373498041, -0.032063304988068836 -5.63050318878627, -0.034219358366964006 -5.630787154021878, -0.03650243886125461 -5.640217166221037, -0.03916589078864252 -5.640489299571828, -0.04135384292900436 -5.649931143655803, -0.04411242321032105 -5.659384819624597, -0.0469661318455665 -5.6596569529753875, -0.04915408398592834 -5.669122460828997, -0.05210292097510258 -5.675582669939085, -0.055273771450983236 -5.687982485227314, -0.05742982482987839 -5.688266450462923, -0.05971290532416901 -5.694710883726588, -0.06275691799481128 -5.707079147321971, -0.06465929576322973 -5.707363112557579, -0.06694237625752034 -5.71383909751409, -0.07024006453863936 -5.7262704644951645, -0.07264979352801125 -5.726554429730773, -0.07493287402230187 -5.735960778160297, -0.07740606924183223 -5.736232911511088, -0.07959402138219407 -5.74565109182543, -0.0821623449556532 -5.75515209533349, -0.08539656700661376 -5.755436060569099, -0.08767964750090437 -5.7649370640771584, -0.09091386955186494 -5.774414403815586, -0.09395783489496795 -5.774686537166377, -0.09614578703532978 -5.78417570878962, -0.09928488073236158 -5.790596478283652, -0.1021386366951463 -5.802988405648669, -0.10423127117142228 -5.803532672350252, -0.10860717545214596 -5.81248940915673, -0.10746549322238286 -5.821990412664791, -0.11069971527334341 -5.828450621774879, -0.11387056574922405 -5.847121336016123, -0.11767541594113945 -5.865799938180579, -0.12154368503567406 -5.887397071933232, -0.12449233271469123 -5.9538731171066965, -0.12911358206319107 -6.005573937485546, -0.12363433175530081 -6.014258540941232, -0.12030469738517585 -6.023061463245091, -0.11792634655433867 -6.034901235985314, -0.11557965784727178 -6.040596316543902, -0.11259887476909164 -6.052388761744857, -0.10987167264630965 -6.058036514764178, -0.1065103761524144 -6.06986839958119, -0.10410026854272836 -6.075524040523722, -0.10080239095145224 -6.084338794712395, -0.09851916847454381 -6.09286958366546, -0.0939528655033448 -6.093153548901069, -0.09623594599763541 -6.104756683944953, -0.09198669021199303 -6.1101677992679315, -0.08672282663952226 -6.11045176450354, -0.08900590713381287 -6.121983908238522, -0.08418588122459783 -6.127324032252598, -0.07835124752855441 -6.127607997488206, -0.08063432802284502 -6.1406999780382305, -0.07616308241426585 -6.144716902933607, -0.07188223549616206 -6.1535198252374625, -0.06950388466532487 -6.156217494975743, -0.06680853397647031 -6.161825808379006, -0.06313014296947911 -6.1706287306828616, -0.060751792138641916 -6.173357952113986, -0.05831011706026408 -6.178698076128065, -0.05247548336422066 -6.178982041363674, -0.05475856385851126 -6.190561512637923, -0.05031905136501133 -6.195948964191268, -0.044864931084682994 -6.196232929426876, -0.04714801157897361 -6.2078597282403924, -0.043089012501188795 -6.213294507333006, -0.03801540563657556 -6.2135784725686145, -0.040298486130866173 -6.22507117668754, -0.035161365708555214 -6.230687378014015, -0.03154639360418322 -6.242495599061393, -0.028946029286639606 -6.24812757623429, -0.025457894987505975 -6.2599279093584554, -0.022794111767343188 -6.265567774454566, -0.01936939637082874 -6.277391771348367, -0.016895869858523503 -6.28305530021411, -0.013661411169866598 -6.291870054402783, -0.011378188692958181 -6.300684808591458, -0.009094966216049764 -6.312469365869201, -0.006304345190648611 -6.354433117353536, -0.0023082917400902916 -6.360246516760294, -0.00027879220119787773 -6.433517435470443, -0.004146209400025649 -6.455161896762363, -0.00747537049475791 -6.47077998472082, -0.011121720757664627 -6.483227127548317, -0.013658287552274904 -6.492633475977841, -0.01613148277180526 -6.5020398244073645, -0.018604677991335625 -6.511540827915424, -0.021838900042296182 -6.511824793151033, -0.024121980536586797 -6.521325796659094, -0.02735620258754736 -6.527746566153126, -0.030209958550332087 -6.5401384935181435, -0.03230259302660808 -6.540422458753752, -0.034585673520898697 -6.54688266786384, -0.03775652399677934 -6.55928248315207, -0.03991257737567451 -6.559566448387678, -0.04219565786996511 -6.569020124356469, -0.045049366505210575 -6.569292257707262, -0.047237318645572415 -6.57875776556087, -0.050186155634746654 -6.585217974670958, -0.0533570061106273 -6.597617789959187, -0.05551305948952248 -6.597901755194795, -0.05779613998381308 -6.604369852228095, -0.06103040936231291 -6.61680910713238, -0.063503557254304 -6.617093072367989, -0.06578663774859461 -6.62351384186202, -0.06864039371137934 -6.635858441687769, -0.07035251477194024 -6.636142406923377, -0.07263559526623084 -6.642634167726311, -0.07606012135258822 -6.6550970864002315, -0.07872352595243687 -6.65538105163584, -0.08100660644672748 -6.6647874000653635, -0.08347980166625783 -6.665059533416154, -0.08566775380661967 -6.674477713730496, -0.0882360773800788 -6.683955053468922, -0.09128004272318181 -6.684227186819714, -0.09346799486354367 -6.693716358442958, -0.09660708856057543 -6.700192343399469, -0.09990477684169446 -6.712623710380542, -0.10231450583106635 -6.71290767561615, -0.10459758632535696 -6.72229036027604, -0.10688052483702978 -6.73167304493593, -0.10916346334870258 -6.7381411419692325, -0.11239773272720244 -6.750580396873517, -0.11487088061919351 -6.759998577187859, -0.11743920419265264 -6.778610132005016, -0.12076841261492419 -6.797186191167726, -0.12381223597540938 -6.871801192086656, -0.12925530490207301 -6.915576030646748, -0.12466654538673691 -6.924296129756885, -0.12162229607839828 -6.933122715830376, -0.11943420195541865 -6.944930936877754, -0.11683383763787505 -6.95061024158992, -0.11372621675445652 -6.962434238483721, -0.11125269024215126 -6.968097767349463, -0.10801823155349438 -6.979921764243264, -0.10554470504118915 -6.985585293109005, -0.10231024635253225 -6.997361962463541, -0.09945620642451192 -7.002978163790014, -0.09584123432013988 -7.014857376146295, -0.09381164012616897 -7.020276379392485, -0.08861119545631736 -7.020560344628094, -0.09089427595060796 -7.032116152132708, -0.08626450674925047 -7.037763905152029, -0.08290321025535521 -7.046566827455886, -0.08052485942451802 -7.049296048887011, -0.07808318434614019 -7.0546361729010885, -0.07224855065009675 -7.054920138136697, -0.07453163114438736 -7.066554824873424, -0.07053605096922172 -7.07169775080722, -0.0631159447076987 -7.071981716042829, -0.06539902520198931 -7.072265681278437, -0.06768210569627993 -7.0835375235474425, -0.060769256000631836 -7.088901311331154, -0.055124879012445935 -7.089185276566762, -0.05740795950673655 -7.100685868608898, -0.05233425798704479 -7.106010216776553, -0.046372786485763 -7.106294182012161, -0.0486558669800536 -7.117897317056046, -0.04440661119441122 -7.123308432379026, -0.039142747621940435 -7.123592397614634, -0.04142582811623105 -7.135124541349614, -0.036605802207016036 -7.1407486305993, -0.0330542490052632 -7.152548963723466, -0.03039046578510042 -7.1581888288195765, -0.026965750388585966 -7.169989161943742, -0.02430196716842318 -7.175629027039851, -0.020877251771908724 -7.187484575626496, -0.018657400870080228 -7.1931638803386635, -0.01554977998666169 -7.2050036530788875, -0.01320309127959482 -7.210698733637474, -0.010222308201414655 -7.222475402992008, -0.007368268273394318 -7.264391826937074, -0.002991701407120892 -7.2809865865990195, 0.0008941232185175306 -7.29323796212095, -0.0008223205931678426 -7.3464341162582345, -0.004227092164634738 -7.364951015996859, -0.006795273755476068 -7.380549384147288, -0.010283076761834833 -7.393264716363967, -0.014975886245497352 -7.402221453170445, -0.013834204015734236 -7.411722456678507, -0.0170684260666948 -7.418198441635018, -0.02036611434781381 -7.43062980861609, -0.02277584333718572 -7.430913773851699, -0.02505892383147633 -7.437334543345732, -0.027912679794261062 -7.449679143171479, -0.029624800854821942 -7.449963108407087, -0.03190788134911256 -7.459416784375882, -0.03476158998435802 -7.459688917726672, -0.03694954212471986 -7.469154425580283, -0.0398983791138941 -7.4786081015490735, -0.04275208774913955 -7.478880234899866, -0.04494003988950139 -7.4883457427534745, -0.04788887687867563 -7.4978230824919025, -0.05093284222177863 -7.498095215842693, -0.05312079436214047 -7.507584387465937, -0.05625988805917226 -7.514028820729604, -0.059303900729814535 -7.5263970843249846, -0.06120627849823297 -7.526681049560593, -0.06348935899252359 -7.533149146593893, -0.06672362837102341 -7.54558840149818, -0.0691967762630145 -7.545872366733788, -0.07147985675730512 -7.55230102415103, -0.07439703162270904 -7.564637736053567, -0.07604573378065073 -7.564921701289175, -0.07832881427494134 -7.574399041027601, -0.08137277961804436 -7.574671174378394, -0.0835607317584062 -7.584160346001636, -0.08669982545543799 -7.590620555111726, -0.08987067593131862 -7.603020370399954, -0.0920267293102138 -7.6033043356355625, -0.09430980980450443 -7.609764544745652, -0.09748066028038505 -7.622164360033879, -0.09963671365928026 -7.622448325269487, -0.10191979415357086 -7.628900646456365, -0.10502722572683232 -7.641308349667805, -0.10724669800834666 -7.641710633751583, -0.11048106204192501 -7.660073718987586, -0.11181257503169229 -7.660476003071364, -0.11504693906527064 -7.678839088307368, -0.11637845205503788 -7.679229540506328, -0.11951768773468749 -7.697604457627148, -0.12094432907838351 -7.7070226379414875, -0.12351265265184264 -7.752871191607409, -0.12636579335661688 -7.774726287820413, -0.1287730746014894 -7.825589955692764, -0.12579388737210181 -7.837268026007156, -0.12214711116134169 -7.854992189463039, -0.11834169303895506 -7.860671494175205, -0.1152340721555365 -7.872495491069004, -0.11276054564323126 -7.878159019934748, -0.10952608695457436 -7.889959353058914, -0.10686230373441158 -7.8955992181550245, -0.10343758833789712 -7.907407439202401, -0.10083722402035353 -7.913039416375299, -0.09734908972121989 -7.924910740808367, -0.09525607662462976 -7.930337631977772, -0.09011905085739734 -7.9306215972133804, -0.09240213135168795 -7.942232620180472, -0.08821629446866476 -7.9476358475802416, -0.0828890119935748 -7.94791981281585, -0.0851720924878654 -7.959420404857986, -0.08009839096817364 -7.965028718261249, -0.07641999996118246 -7.973867136219558, -0.07432703419213159 -7.976592413689075, -0.07185364966244416 -7.9819483135495775, -0.06614585377163909 -7.982232278785186, -0.0684289342659297 -7.993835413829067, -0.06417967848028734 -7.998962563916439, -0.05663273441352594 -7.999246529152047, -0.058915814907816555 -7.999530494387655, -0.061198895402107156 -8.010810224579874, -0.054349464609078246 -8.016166124440375, -0.048641668718273176 -8.016450089675985, -0.05092474921256379 -8.02802956095023, -0.04648523671906388 -8.033417012503577, -0.04103111643873554 -8.033700977739187, -0.043314196933026156 -8.045327776552703, -0.03925519785524134 -8.050762555645317, -0.034181590990628105 -8.051046520880927, -0.036464671484918706 -8.062594440462327, -0.031771483380942045 -8.068250081404862, -0.028473605789665964 -8.080074078298662, -0.026000079277360727 -8.085737607164404, -0.022765620588703822 -8.09753005236536, -0.020038418465921852 -8.103177805384682, -0.01667712197202658 -8.115057017740959, -0.014647527778055634 -8.120759986222758, -0.011730163602494646 -8.1295510766418, -0.00925668441772868 -8.138389494600109, -0.007163718648677819 -8.147156921249515, -0.004499982756054302 -8.206299698581802, 0.0013767028769619896 -8.265345618686645, -0.0037371101505926374 -8.274763799000986, -0.006305433724051776 -8.29335169004851, -0.009444385438465756 -8.30900527366142, -0.013376120763158798 -8.321499744028184, -0.016293200973484183 -8.327928401445426, -0.019210375838888086 -8.340312440887232, -0.021239591412544896 -8.349813444395295, -0.02447381346350546 -8.350097409630902, -0.02675689395779607 -8.359598413138961, -0.029991116008756633 -8.366058622249053, -0.03316196648463729 -8.37845843753728, -0.035318019863532446 -8.378742402772886, -0.03760110035782306 -8.38824340628095, -0.040835322408783625 -8.388527371516556, -0.04311840290307424 -8.398028375024616, -0.046352624954034805 -8.404480696211493, -0.04946005652729625 -8.416888399422934, -0.05167952880881062 -8.41717236465854, -0.05396260930310123 -8.426626040627333, -0.0568163179383467 -8.426898173978124, -0.05900427007870854 -8.436363681831736, -0.06195310706788276 -8.442823890941824, -0.06512395754376342 -8.45522370623005, -0.06728001092265858 -8.45550767146566, -0.06956309141694919 -8.461959992652538, -0.07267052299021066 -8.474367695863975, -0.07488999527172502 -8.474651661099585, -0.07717307576601563 -8.481088206440038, -0.08015366953403871 -8.493464357958633, -0.08211946620507633 -8.493748323194243, -0.08440254669936695 -8.5031783353934, -0.08706599862675486 -8.503450468744191, -0.0892539507671167 -8.512892312828168, -0.09201253104843339 -8.52234598879696, -0.09486623968367885 -8.522618122147751, -0.09705419182404068 -8.532083630001363, -0.10000302881321493 -8.538520175341816, -0.102983622581238 -8.55089632686041, -0.10494941925227563 -8.551180292096017, -0.10723249974656626 -8.560586640525543, -0.10970569496609661 -8.569992988955068, -0.11217889018562696 -8.576445310141946, -0.11528632175888842 -8.595108136459977, -0.11902775304818466 -8.616788093406349, -0.12264229920470324 -8.66268397461154, -0.1258759533251926 -8.700097626113333, -0.12875863447657454 -8.744347643618553, -0.12406723675698564 -8.753197893461678, -0.12206939934186353 -8.765037666201902, -0.11972271063479667 -8.77073274676049, -0.1167419275566165 -8.78254885573108, -0.11420498214169209 -8.788220272520036, -0.11103394235565434 -8.800044269413835, -0.10856041584334913 -8.805707798279578, -0.1053259571546922 -8.814510720583435, -0.10294760632385502 -8.823053341421318, -0.09847643170658477 -8.823337306656928, -0.1007595122008754 -8.834869450391906, -0.09593948629166035 -8.840493539641592, -0.09238793308990755 -8.852317536535391, -0.0899144065776023 -8.857697100165527, -0.08439686739465478 -8.857981065401134, -0.0866799478889454 -8.869576312521808, -0.08236727320068385 -8.87494798822873, -0.07678631511511715 -8.87523195346434, -0.07906939560940775 -8.888318018071956, -0.07455058582386422 -8.89205689367413, -0.0680342225884342 -8.892340858909737, -0.07031730308272481 -8.905432839459763, -0.06584605747414564 -8.909165799119531, -0.05928213006175123 -8.909449764355138, -0.06156521055604185 -8.92254174490516, -0.05709396494746269 -8.926274704564928, -0.05053003753506828 -8.926558669800535, -0.052813118029358896 -8.938146028997998, -0.04843702443847814 -8.943525592628134, -0.04291948525553063 -8.94380955786374, -0.04520256574982125 -8.952340346816808, -0.04063626277862223 -8.960871135769871, -0.03606995980742318 -8.961155101005481, -0.0383530403017138 -8.972655693047614, -0.033279338782022036 -8.978264006450878, -0.029600947775030848 -8.990056451651832, -0.026873745652248884 -8.995704204671153, -0.023512449158353606 -9.007583417027433, -0.021482854964382653 -9.013286385509232, -0.01856549078882168 -9.025102494479821, -0.01602854537389725 -9.030773911268778, -0.012857505587859537 -9.039588665457451, -0.010574283110951127 -9.048403419646124, -0.008291060634042703 -9.060219528616713, -0.005754115219118283 -9.109470143563687, -0.0018213670850849017 -9.120151969176487, 0.00008137037263197117 -9.175288552423762, -0.004293682012384878 -9.193698965199033, -0.006005708417867232 -9.20312897739819, -0.008669160345255132 -9.21875100931825, -0.012347220059471448 -9.231229703838594, -0.015137462464558459 -9.2376346974862, -0.017864380622104818 -9.249995073158374, -0.01970333948790408 -9.250539339859955, -0.024079243768627752 -9.259496076666434, -0.022937561538864636 -9.268997080174493, -0.0261717835898252 -9.275780694136248, -0.03194280907309238 -9.278498083682553, -0.029406005640785757 -9.288283052426223, -0.034923308186036936 -9.297784055934283, -0.0381575302369975 -9.298068021169893, -0.040440610731288115 -9.307569024677953, -0.04367483278224868 -9.317046364416381, -0.04671879812535169 -9.317330329651988, -0.049001878619642295 -9.326807669390416, -0.05204584396274531 -9.333283654346925, -0.05534353224386432 -9.345715021328001, -0.05775326123323622 -9.345998986563608, -0.06003634172752684 -9.352459195673699, -0.06320719220340748 -9.364859010961926, -0.06536324558230266 -9.365142976197532, -0.06764632607659328 -9.37160318530762, -0.07081717655247391 -9.38400300059585, -0.07297322993136908 -9.384286965831457, -0.0752563104256597 -9.390723511171913, -0.0782369041936828 -9.403099662690508, -0.08020270086472042 -9.403383627926114, -0.08248578135901104 -9.409859612882627, -0.08578346964013005 -9.4222909798637, -0.08819319862950195 -9.42257494509931, -0.09047627912379257 -9.429019378362977, -0.09352029179443486 -9.441387641958357, -0.09542266956285328 -9.441671607193967, -0.09770575005714388 -9.448139704227266, -0.10094001943564374 -9.460578959131553, -0.10341316732763481 -9.46086292436716, -0.10569624782192544 -9.46726791801477, -0.1084231659794718 -9.47962829368694, -0.11026212484527104 -9.486112166566663, -0.11362323202900923 -9.498582973163792, -0.11635005553147706 -9.507977489708502, -0.11872812239707867 -9.526565380756026, -0.12186707411149261 -9.545117776149102, -0.12472064076412029 -9.617967474783157, -0.1284322177819269 -9.663341969240683, -0.12424315322044496 -9.672026572696371, -0.12091351885032 -9.680793999345777, -0.1182497829576965 -9.692617996239576, -0.11577625644539125 -9.698281525105319, -0.11254179775673437 -9.710097634075908, -0.11000485234180993 -9.715769050864864, -0.10683381255577223 -9.727545720219396, -0.10397977262775188 -9.733161921545872, -0.10036480052337987 -9.741976675734545, -0.09808157804647144 -9.750507464687608, -0.09351527507527244 -9.750791429923218, -0.09579835556956304 -9.762418228736735, -0.09173935649177821 -9.767853007829348, -0.08666574962716499 -9.768136973064959, -0.0889488301214556 -9.779684892646358, -0.08425564201747894 -9.785340533588894, -0.08095776442620285 -9.796872677323872, -0.07613773851698781 -9.802212801337951, -0.07030310482094439 -9.802496766573562, -0.07258618531523499 -9.815588747123584, -0.06811493970665584 -9.819321706783352, -0.06155101229426144 -9.819605672018959, -0.06383409278855204 -9.82149088566647, -0.07899121051453693 -9.83671457746436, -0.05508200026186909 -9.845541163537849, -0.052893906138889446 -9.848278272892184, -0.05051564996313079 -9.853634172752685, -0.04480785407232572 -9.853918137988295, -0.04709093456661634 -9.858069439289807, -0.05956629812967065 -9.865497609262544, -0.042651422073116424 -9.870885060815887, -0.03719730179278809 -9.8827169456329, -0.03478719418310203 -9.888372586575432, -0.03148931659182595 -9.900165031776385, -0.028762114469043976 -9.905812784795707, -0.025400817975148704 -9.914221310938998, -0.019851522013352323 -9.917628893766295, -0.022863872560224284 -9.932067737204658, -0.017029096881563045 -9.940835163854064, -0.014365360988939528 -9.949649918042738, -0.012082138512031118 -9.958180706995805, -0.007515835540832086 -9.958464672231411, -0.009798916035122694 - +0.0186,-0.002784 +0.0293,0.000333 +0.04,0.001606 +0.0508,0.001085 +0.0615,-0.00069 +0.0722,-0.003322 +0.0829,-0.006564 +0.0937,-0.010259 +0.1044,-0.014302 +0.1151,-0.018621 +0.1258,-0.023166 +0.1366,-0.027898 +0.1473,-0.032779 +0.158,-0.037749 +0.1688,-0.042758 +0.1795,-0.047769 +0.1902,-0.052754 +0.2009,-0.05769 +0.2117,-0.062558 +0.2224,-0.067341 +0.2331,-0.072027 +0.2438,-0.076601 +0.2546,-0.081054 +0.2653,-0.085375 +0.276,-0.089553 +0.2868,-0.093579 +0.2975,-0.097445 +0.3082,-0.10114 +0.3189,-0.104657 +0.3297,-0.107986 +0.3404,-0.111119 +0.3511,-0.114045 +0.3618,-0.116756 +0.3726,-0.119242 +0.3833,-0.121493 +0.394,-0.123499 +0.4048,-0.125247 +0.4155,-0.126728 +0.4262,-0.127928 +0.4369,-0.128836 +0.4477,-0.129436 +0.4584,-0.129715 +0.4691,-0.129656 +0.4799,-0.129244 +0.4906,-0.12846 +0.5013,-0.127284 +0.512,-0.125702 +0.5228,-0.123728 +0.5335,-0.12138 +0.5442,-0.118682 +0.5549,-0.115655 +0.5657,-0.112324 +0.5764,-0.108713 +0.5871,-0.104846 +0.5979,-0.100751 +0.6086,-0.096454 +0.6193,-0.091981 +0.63,-0.087361 +0.6408,-0.082621 +0.6515,-0.077789 +0.6622,-0.072892 +0.6729,-0.06796 +0.6837,-0.06302 +0.6944,-0.058099 +0.7051,-0.053224 +0.7159,-0.048423 +0.7266,-0.043721 +0.7373,-0.039144 +0.748,-0.034717 +0.7588,-0.030463 +0.7695,-0.026407 +0.7802,-0.022569 +0.7909,-0.018971 +0.8017,-0.015634 +0.8124,-0.012576 +0.8231,-0.009816 +0.8339,-0.007371 +0.8446,-0.005256 +0.8553,-0.003486 +0.866,-0.002076 +0.8768,-0.001038 +0.8875,-0.000384 +0.8982,-0.000124 +0.9089,-0.000268 +0.9197,-0.000819 +0.9304,-0.001758 +0.9411,-0.003055 +0.9519,-0.004685 +0.9626,-0.006622 +0.9733,-0.008845 +0.984,-0.01133 +0.9948,-0.014055 +1.0055,-0.017002 +1.0162,-0.02015 +1.0269,-0.023481 +1.0377,-0.026976 +1.0484,-0.030618 +1.0591,-0.03439 +1.0699,-0.038275 +1.0806,-0.042257 +1.0913,-0.046321 +1.102,-0.05045 +1.1128,-0.05463 +1.1235,-0.058845 +1.1342,-0.06308 +1.1449,-0.06732 +1.1557,-0.071551 +1.1664,-0.075756 +1.1771,-0.079922 +1.1879,-0.084034 +1.1986,-0.088075 +1.2093,-0.092031 +1.22,-0.095886 +1.2308,-0.099623 +1.2415,-0.103228 +1.2522,-0.106683 +1.2629,-0.10997 +1.2737,-0.113074 +1.2844,-0.115974 +1.2951,-0.118652 +1.3059,-0.121089 +1.3166,-0.123265 +1.3273,-0.125157 +1.338,-0.126744 +1.3488,-0.128001 +1.3595,-0.128905 +1.3702,-0.129428 +1.3809,-0.129544 +1.3917,-0.129228 +1.4024,-0.128486 +1.4131,-0.12733 +1.4239,-0.125775 +1.4346,-0.123837 +1.4453,-0.121533 +1.456,-0.118881 +1.4668,-0.115901 +1.4775,-0.112614 +1.4882,-0.109042 +1.4989,-0.10521 +1.5097,-0.101142 +1.5204,-0.096864 +1.5311,-0.092401 +1.5419,-0.087781 +1.5526,-0.083033 +1.5633,-0.078184 +1.574,-0.073264 +1.5848,-0.068301 +1.5955,-0.063324 +1.6062,-0.058362 +1.6169,-0.053444 +1.6277,-0.048597 +1.6384,-0.04385 +1.6491,-0.039229 +1.6599,-0.03476 +1.6706,-0.030469 +1.6813,-0.02638 +1.692,-0.022516 +1.7028,-0.018898 +1.7135,-0.015548 +1.7242,-0.012485 +1.7349,-0.009728 +1.7457,-0.007292 +1.7564,-0.005193 +1.7671,-0.003447 +1.7779,-0.002065 +1.7886,-0.00106 +1.7993,-0.000441 +1.81,-0.000218 +1.8208,-0.000395 +1.8315,-0.000953 +1.8422,-0.001864 +1.8529,-0.003103 +1.8637,-0.004648 +1.8744,-0.006475 +1.8851,-0.008565 +1.8959,-0.010897 +1.9066,-0.013454 +1.9173,-0.016216 +1.928,-0.019167 +1.9388,-0.022291 +1.9495,-0.025572 +1.9602,-0.028996 +1.9709,-0.032546 +1.9817,-0.03621 +1.9924,-0.039972 +2.0031,-0.043821 +2.0139,-0.047741 +2.0246,-0.05172 +2.0353,-0.055745 +2.046,-0.059802 +2.0568,-0.06388 +2.0675,-0.067964 +2.0782,-0.072042 +2.0889,-0.076102 +2.0997,-0.080128 +2.1104,-0.084109 +2.1211,-0.088031 +2.1319,-0.091878 +2.1426,-0.095638 +2.1533,-0.099296 +2.164,-0.102835 +2.1748,-0.10624 +2.1855,-0.109495 +2.1962,-0.112583 +2.2069,-0.115484 +2.2177,-0.118181 +2.2284,-0.120653 +2.2391,-0.122878 +2.2499,-0.124834 +2.2606,-0.126497 +2.2713,-0.12784 +2.282,-0.128834 +2.2928,-0.12945 +2.3035,-0.129654 +2.3142,-0.129417 +2.3249,-0.128737 +2.3357,-0.127622 +2.3464,-0.126081 +2.3571,-0.124126 +2.3679,-0.121772 +2.3786,-0.119034 +2.3893,-0.115932 +2.4,-0.112486 +2.4108,-0.108719 +2.4215,-0.104657 +2.4322,-0.100327 +2.4429,-0.09576 +2.4537,-0.090986 +2.4644,-0.086038 +2.4751,-0.080951 +2.4859,-0.07576 +2.4966,-0.070501 +2.5073,-0.06521 +2.518,-0.059923 +2.5288,-0.054676 +2.5395,-0.049505 +2.5502,-0.044443 +2.5609,-0.039525 +2.5717,-0.03478 +2.5824,-0.030239 +2.5931,-0.02593 +2.6039,-0.021879 +2.6146,-0.018109 +2.6253,-0.014641 +2.636,-0.011495 +2.6468,-0.008687 +2.6575,-0.006234 +2.6682,-0.004146 +2.6789,-0.002436 +2.6897,-0.001112 +2.7004,-0.000181 +2.7111,0.000351 +2.7219,0.000481 +2.7326,0.000215 +2.7433,-0.000417 +2.754,-0.001387 +2.7648,-0.002666 +2.7755,-0.004231 +2.7862,-0.006059 +2.7969,-0.008129 +2.8077,-0.010421 +2.8184,-0.012918 +2.8291,-0.015601 +2.8399,-0.018456 +2.8506,-0.021467 +2.8613,-0.024619 +2.872,-0.0279 +2.8828,-0.031294 +2.8935,-0.034791 +2.9042,-0.038378 +2.9149,-0.042043 +2.9257,-0.045774 +2.9364,-0.04956 +2.9471,-0.053391 +2.9579,-0.057254 +2.9686,-0.06114 +2.9793,-0.065037 +2.99,-0.068936 +3.0008,-0.072824 +3.0115,-0.076691 +3.0222,-0.080527 +3.0329,-0.084319 +3.0437,-0.088056 +3.0544,-0.091727 +3.0651,-0.09532 +3.0759,-0.098821 +3.0866,-0.102218 +3.0973,-0.105498 +3.108,-0.108645 +3.1188,-0.111644 +3.1295,-0.114481 +3.1402,-0.117137 +3.1509,-0.119595 +3.1617,-0.121834 +3.1724,-0.123835 +3.1831,-0.125573 +3.1939,-0.127025 +3.2046,-0.128163 +3.2153,-0.128958 +3.226,-0.129374 +3.2368,-0.129378 +3.2475,-0.128948 +3.2582,-0.128084 +3.2689,-0.126791 +3.2797,-0.125072 +3.2904,-0.122938 +3.3011,-0.120396 +3.3119,-0.117462 +3.3226,-0.114151 +3.3333,-0.110483 +3.344,-0.10648 +3.3548,-0.102168 +3.3655,-0.097577 +3.3762,-0.092737 +3.3869,-0.087685 +3.3977,-0.082457 +3.4084,-0.077093 +3.4191,-0.071633 +3.4299,-0.066121 +3.4406,-0.060598 +3.4513,-0.055109 +3.462,-0.049694 +3.4728,-0.044396 +3.4835,-0.039253 +3.4942,-0.034305 +3.5049,-0.029585 +3.5157,-0.025126 +3.5264,-0.020958 +3.5371,-0.017106 +3.5479,-0.013594 +3.5586,-0.010443 +3.5693,-0.007668 +3.58,-0.005284 +3.5908,-0.003301 +3.6015,-0.001729 +3.6122,-0.000574 +3.6229,0.000162 +3.6337,0.000475 +3.6444,0.000369 +3.6551,-0.000131 +3.6659,-0.000989 +3.6766,-0.002175 +3.6873,-0.00366 +3.698,-0.005418 +3.7088,-0.007426 +3.7195,-0.009662 +3.7302,-0.012107 +3.7409,-0.014743 +3.7517,-0.017551 +3.7624,-0.020517 +3.7731,-0.023624 +3.7839,-0.02686 +3.7946,-0.03021 +3.8053,-0.033662 +3.816,-0.037202 +3.8268,-0.04082 +3.8375,-0.044504 +3.8482,-0.048243 +3.8589,-0.052025 +3.8697,-0.055841 +3.8804,-0.05968 +3.8911,-0.063531 +3.9019,-0.067385 +3.9126,-0.07123 +3.9233,-0.075057 +3.934,-0.078856 +3.9448,-0.082615 +3.9555,-0.086325 +3.9662,-0.089974 +3.9769,-0.093551 +3.9877,-0.097045 +3.9984,-0.100444 +4.0091,-0.103736 +4.0199,-0.106907 +4.0306,-0.109944 +4.0413,-0.112834 +4.052,-0.11556 +4.0628,-0.118107 +4.0735,-0.120458 +4.0842,-0.122594 +4.0949,-0.124496 +4.1057,-0.126141 +4.1164,-0.127508 +4.1271,-0.12857 +4.1379,-0.129299 +4.1486,-0.129664 +4.1593,-0.129631 +4.17,-0.129185 +4.1808,-0.128327 +4.1915,-0.12706 +4.2022,-0.125389 +4.2129,-0.12332 +4.2237,-0.120864 +4.2344,-0.118033 +4.2451,-0.114839 +4.2559,-0.111301 +4.2666,-0.107439 +4.2773,-0.103275 +4.288,-0.098835 +4.2988,-0.094147 +4.3095,-0.089242 +4.3202,-0.084155 +4.3309,-0.07892 +4.3417,-0.073575 +4.3524,-0.06816 +4.3631,-0.062714 +4.3739,-0.057279 +4.3846,-0.051894 +4.3953,-0.0466 +4.406,-0.041437 +4.4168,-0.036442 +4.4275,-0.031652 +4.4382,-0.027101 +4.449,-0.02282 +4.4597,-0.018839 +4.4704,-0.015183 +4.4811,-0.011876 +4.4919,-0.008938 +4.5026,-0.006387 +4.5133,-0.004237 +4.524,-0.0025 +4.5348,-0.001186 +4.5455,-0.000301 +4.5562,0.000151 +4.567,0.000166 +4.5777,-0.000237 +4.5884,-0.001022 +4.5991,-0.002156 +4.6099,-0.00361 +4.6206,-0.005357 +4.6313,-0.007371 +4.642,-0.009631 +4.6528,-0.012114 +4.6635,-0.0148 +4.6742,-0.017673 +4.685,-0.020714 +4.6957,-0.023906 +4.7064,-0.027235 +4.7171,-0.030686 +4.7279,-0.034245 +4.7386,-0.037898 +4.7493,-0.041632 +4.76,-0.045435 +4.7708,-0.049294 +4.7815,-0.053198 +4.7922,-0.057135 +4.803,-0.061092 +4.8137,-0.065059 +4.8244,-0.069024 +4.8351,-0.072975 +4.8459,-0.076902 +4.8566,-0.080792 +4.8673,-0.084633 +4.878,-0.088414 +4.8888,-0.092123 +4.8995,-0.095746 +4.9102,-0.099271 +4.921,-0.102684 +4.9317,-0.105971 +4.9424,-0.109117 +4.9531,-0.112108 +4.9639,-0.114926 +4.9746,-0.117555 +4.9853,-0.119975 +4.996,-0.122168 +5.0068,-0.124112 +5.0175,-0.125784 +5.0282,-0.12716 +5.039,-0.128211 +5.0497,-0.12891 +5.0604,-0.129222 +5.0711,-0.129114 +5.0819,-0.128575 +5.0926,-0.127608 +5.1033,-0.126219 +5.114,-0.124416 +5.1248,-0.122206 +5.1355,-0.119604 +5.1462,-0.116623 +5.157,-0.11328 +5.1677,-0.109596 +5.1784,-0.105592 +5.1891,-0.101295 +5.1999,-0.096733 +5.2106,-0.091936 +5.2213,-0.086937 +5.232,-0.081771 +5.2428,-0.076476 +5.2535,-0.071089 +5.2642,-0.06565 +5.275,-0.060199 +5.2857,-0.054778 +5.2964,-0.049424 +5.3071,-0.044179 +5.3179,-0.039079 +5.3286,-0.034163 +5.3393,-0.029464 +5.35,-0.025014 +5.3608,-0.020845 +5.3715,-0.016983 +5.3822,-0.013453 +5.393,-0.010278 +5.4037,-0.007476 +5.4144,-0.005065 +5.4251,-0.003057 +5.4359,-0.001465 +5.4466,-0.000297 +5.4573,0.00044 +5.468,0.000741 +5.4788,0.000607 +5.4895,6.4e-05 +5.5002,-0.000852 +5.511,-0.00211 +5.5217,-0.003681 +5.5324,-0.005539 +5.5431,-0.007658 +5.5539,-0.010018 +5.5646,-0.012597 +5.5753,-0.015374 +5.586,-0.018333 +5.5968,-0.021456 +5.6075,-0.024727 +5.6182,-0.028129 +5.629,-0.031649 +5.6397,-0.035272 +5.6504,-0.038984 +5.6611,-0.042773 +5.6719,-0.046625 +5.6826,-0.050528 +5.6933,-0.05447 +5.704,-0.058439 +5.7148,-0.062423 +5.7255,-0.06641 +5.7362,-0.07039 +5.747,-0.074349 +5.7577,-0.078276 +5.7684,-0.08216 +5.7791,-0.085989 +5.7899,-0.089749 +5.8006,-0.09343 +5.8113,-0.097018 +5.822,-0.100501 +5.8328,-0.103864 +5.8435,-0.107093 +5.8542,-0.110175 +5.865,-0.113093 +5.8757,-0.115832 +5.8864,-0.118374 +5.8971,-0.120703 +5.9079,-0.122797 +5.9186,-0.124638 +5.9293,-0.126204 +5.94,-0.12747 +5.9508,-0.128411 +5.9615,-0.129 +5.9722,-0.129206 +5.983,-0.129002 +5.9937,-0.128387 +6.0044,-0.127366 +6.0151,-0.125946 +6.0259,-0.124137 +6.0366,-0.121951 +6.0473,-0.119399 +6.058,-0.116498 +6.0688,-0.113265 +6.0795,-0.109719 +6.0902,-0.10588 +6.101,-0.101774 +6.1117,-0.097425 +6.1224,-0.09286 +6.1331,-0.088109 +6.1439,-0.083202 +6.1546,-0.07817 +6.1653,-0.073048 +6.176,-0.067867 +6.1868,-0.062663 +6.1975,-0.05747 +6.2082,-0.052322 +6.219,-0.047252 +6.2297,-0.042295 +6.2404,-0.037481 +6.2511,-0.032842 +6.2619,-0.028407 +6.2726,-0.024205 +6.2833,-0.02026 +6.294,-0.016596 +6.3048,-0.013236 +6.3155,-0.0102 +6.3262,-0.007505 +6.337,-0.005166 +6.3477,-0.003199 +6.3584,-0.001613 +6.3691,-0.000419 +6.3799,0.000375 +6.3906,0.000762 +6.4013,0.000739 +6.412,0.000324 +6.4228,-0.000454 +6.4335,-0.001566 +6.4442,-0.002986 +6.455,-0.004689 +6.4657,-0.006654 +6.4764,-0.008858 +6.4871,-0.011283 +6.4979,-0.013911 +6.5086,-0.016725 +6.5193,-0.019707 +6.53,-0.022843 +6.5408,-0.026118 +6.5515,-0.029517 +6.5622,-0.033028 +6.573,-0.036637 +6.5837,-0.040331 +6.5944,-0.044099 +6.6051,-0.047927 +6.6159,-0.051805 +6.6266,-0.05572 +6.6373,-0.05966 +6.648,-0.063616 +6.6588,-0.067574 +6.6695,-0.071523 +6.6802,-0.075453 +6.691,-0.079351 +6.7017,-0.083205 +6.7124,-0.087004 +6.7231,-0.090734 +6.7339,-0.094384 +6.7446,-0.09794 +6.7553,-0.101389 +6.766,-0.104717 +6.7768,-0.107908 +6.7875,-0.110947 +6.7982,-0.113819 +6.809,-0.116505 +6.8197,-0.118988 +6.8304,-0.121248 +6.8411,-0.123264 +6.8519,-0.125012 +6.8626,-0.12647 +6.8733,-0.127609 +6.884,-0.128402 +6.8948,-0.128816 +6.9055,-0.128816 +6.9162,-0.128385 +6.927,-0.127525 +6.9377,-0.126242 +6.9484,-0.124543 +6.9591,-0.122437 +6.9699,-0.119935 +6.9806,-0.117053 +6.9913,-0.113806 +7.002,-0.110214 +7.0128,-0.106298 +7.0235,-0.102085 +7.0342,-0.0976 +7.045,-0.092874 +7.0557,-0.087939 +7.0664,-0.082829 +7.0771,-0.077581 +7.0879,-0.072232 +7.0986,-0.066821 +7.1093,-0.061387 +7.12,-0.055972 +7.1308,-0.050613 +7.1415,-0.045352 +7.1522,-0.040225 +7.163,-0.035271 +7.1737,-0.030523 +7.1844,-0.026015 +7.1951,-0.021779 +7.2059,-0.017841 +7.2166,-0.014229 +7.2273,-0.010964 +7.238,-0.008068 +7.2488,-0.005558 +7.2595,-0.003449 +7.2702,-0.001753 +7.281,-0.000481 +7.2917,0.00036 +7.3024,0.000764 +7.3131,0.000728 +7.3239,0.000273 +7.3346,-0.000567 +7.3453,-0.001759 +7.356,-0.003273 +7.3668,-0.005083 +7.3775,-0.007164 +7.3882,-0.009492 +7.399,-0.012046 +7.4097,-0.014807 +7.4204,-0.017755 +7.4311,-0.020873 +7.4419,-0.024143 +7.4526,-0.027552 +7.4633,-0.031082 +7.474,-0.034721 +7.4848,-0.038452 +7.4955,-0.042265 +7.5062,-0.046144 +7.517,-0.050078 +7.5277,-0.054053 +7.5384,-0.058059 +7.5491,-0.062081 +7.5599,-0.066109 +7.5706,-0.07013 +7.5813,-0.074133 +7.592,-0.078105 +7.6028,-0.082034 +7.6135,-0.085908 +7.6242,-0.089713 +7.635,-0.093438 +7.6457,-0.097069 +7.6564,-0.100592 +7.6671,-0.103994 +7.6779,-0.107258 +7.6886,-0.110372 +7.6993,-0.113317 +7.71,-0.116077 +7.7208,-0.118634 +7.7315,-0.12097 +7.7422,-0.123063 +7.753,-0.124892 +7.7637,-0.126434 +7.7744,-0.127662 +7.7851,-0.128551 +7.7959,-0.129068 +7.8066,-0.129182 +7.8173,-0.128869 +7.828,-0.12813 +7.8388,-0.12697 +7.8495,-0.125399 +7.8602,-0.123425 +7.871,-0.121061 +7.8817,-0.118321 +7.8924,-0.115222 +7.9031,-0.111782 +7.9139,-0.108023 +7.9246,-0.103968 +7.9353,-0.099644 +7.946,-0.095078 +7.9568,-0.090301 +7.9675,-0.085345 +7.9782,-0.080243 +7.989,-0.07503 +7.9997,-0.069743 +8.0104,-0.064417 +8.0211,-0.059091 +8.0319,-0.053799 +8.0426,-0.048581 +8.0533,-0.043469 +8.064,-0.038501 +8.0748,-0.033708 +8.0855,-0.029122 +8.0962,-0.024772 +8.107,-0.020687 +8.1177,-0.016892 +8.1284,-0.013409 +8.1391,-0.010259 +8.1499,-0.007461 +8.1606,-0.005031 +8.1713,-0.002983 +8.182,-0.001327 +8.1928,-7.4e-05 +8.2035,0.000769 +8.2142,0.001196 +8.225,0.001205 +8.2357,0.000813 +8.2464,5.2e-05 +8.2571,-0.001047 +8.2679,-0.002457 +8.2786,-0.004153 +8.2893,-0.006112 +8.3,-0.008313 +8.3108,-0.010736 +8.3215,-0.013362 +8.3322,-0.016173 +8.343,-0.019153 +8.3537,-0.022287 +8.3644,-0.02556 +8.3751,-0.028956 +8.3859,-0.032464 +8.3966,-0.036068 +8.4073,-0.039758 +8.4181,-0.04352 +8.4288,-0.047342 +8.4395,-0.051213 +8.4502,-0.055121 +8.461,-0.059055 +8.4717,-0.063002 +8.4824,-0.066953 +8.4931,-0.070895 +8.5039,-0.074817 +8.5146,-0.078708 +8.5253,-0.082556 +8.5361,-0.086349 +8.5468,-0.090075 +8.5575,-0.093722 +8.5682,-0.097276 +8.579,-0.100726 +8.5897,-0.104056 +8.6004,-0.107254 +8.6111,-0.110302 +8.6219,-0.113187 +8.6326,-0.11589 +8.6433,-0.118395 +8.6541,-0.120683 +8.6648,-0.122732 +8.6755,-0.124522 +8.6862,-0.126029 +8.697,-0.127228 +8.7077,-0.128089 +8.7184,-0.128584 +8.7291,-0.128679 +8.7399,-0.12836 +8.7506,-0.127629 +8.7613,-0.126491 +8.7721,-0.124952 +8.7828,-0.12302 +8.7935,-0.120705 +8.8042,-0.118019 +8.815,-0.114977 +8.8257,-0.111595 +8.8364,-0.107891 +8.8471,-0.103888 +8.8579,-0.099609 +8.8686,-0.095079 +8.8793,-0.090327 +8.8901,-0.085384 +8.9008,-0.080281 +8.9115,-0.075053 +8.9222,-0.069736 +8.933,-0.064365 +8.9437,-0.058979 +8.9544,-0.053616 +8.9651,-0.048313 +8.9759,-0.043109 +8.9866,-0.038041 +8.9973,-0.033145 +9.0081,-0.028456 +9.0188,-0.024007 +9.0295,-0.01983 +9.0402,-0.015954 +9.051,-0.012405 +9.0617,-0.009208 +9.0724,-0.006386 +9.0831,-0.003957 +9.0939,-0.001939 +9.1046,-0.000346 +9.1153,0.000809 +9.1261,0.001517 +9.1368,0.001779 +9.1475,0.001623 +9.1582,0.001082 +9.169,0.000186 +9.1797,-0.00104 +9.1904,-0.00257 +9.2011,-0.004381 +9.2119,-0.006452 +9.2226,-0.008762 +9.2333,-0.011292 +9.2441,-0.014025 +9.2548,-0.016943 +9.2655,-0.020031 +9.2762,-0.023273 +9.287,-0.026654 +9.2977,-0.03016 +9.3084,-0.033777 +9.3191,-0.037492 +9.3299,-0.041292 +9.3406,-0.045164 +9.3513,-0.049095 +9.3621,-0.053074 +9.3728,-0.057088 +9.3835,-0.061124 +9.3942,-0.065171 +9.405,-0.069217 +9.4157,-0.07325 +9.4264,-0.077256 +9.4371,-0.081224 +9.4479,-0.08514 +9.4586,-0.088992 +9.4693,-0.092765 +9.4801,-0.096447 +9.4908,-0.100022 +9.5015,-0.103476 +9.5122,-0.106793 +9.523,-0.109956 +9.5337,-0.112948 +9.5444,-0.11575 +9.5551,-0.118343 +9.5659,-0.120706 +9.5766,-0.122815 +9.5873,-0.124647 +9.5981,-0.126178 +9.6088,-0.127399 +9.6195,-0.128307 +9.6302,-0.1289 +9.641,-0.129178 +9.6517,-0.129139 +9.6624,-0.128783 +9.6731,-0.128109 +9.6839,-0.127118 +9.6946,-0.125812 +9.7053,-0.124192 +9.7161,-0.12226 +9.7268,-0.12002 +9.7375,-0.117475 +9.7482,-0.114631 +9.759,-0.111492 +9.7697,-0.108067 +9.7804,-0.104361 +9.7911,-0.100383 +9.8019,-0.096144 +9.8126,-0.091652 +9.8233,-0.086921 +9.8341,-0.081961 +9.8448,-0.076787 +9.8555,-0.071413 +9.8662,-0.065854 +9.877,-0.060127 +9.8877,-0.054249 +9.8984,-0.048237 +9.9091,-0.04211 +9.9199,-0.035888 +9.9306,-0.02959 +9.9413,-0.023237 +9.9521,-0.016848 \ No newline at end of file diff --git a/validation/oscillating_beam_2d.jl b/validation/oscillating_beam_2d.jl index 63be4dcef..dfb7b27b4 100644 --- a/validation/oscillating_beam_2d.jl +++ b/validation/oscillating_beam_2d.jl @@ -17,11 +17,14 @@ using JSON using Glob using CSV using DataFrames +using Interpolations +using Statistics +using Printf # ========================================================================================== # ==== Experiment Setup gravity = 2.0 -tspan = (0.0, 0.5) +tspan = (0.0, 10.0) elastic_plate_length = 0.35 elastic_plate_thickness = 0.02 @@ -34,99 +37,96 @@ material_density = 1000.0 E = 1.4e6 nu = 0.4 -# resolution = 20 # 5 particles per plate thickness -# # resolution = 50 # 11 particles per plate thickness +resolution = [20, 50, 100] +for res in resolution -# resolution = [20, 50] -# for res in resolution + particle_spacing = cylinder_diameter/res -# particle_spacing = cylinder_diameter/res + # Add particle_spacing/2 to the clamp_radius to ensure that particles are also placed on the radius + fixed_particles = SphereShape(particle_spacing, cylinder_radius + particle_spacing / 2, + (0.0, elastic_plate_thickness / 2), material_density, + cutout_min=(0.0, 0.0), cutout_max=(cylinder_radius, elastic_plate_thickness), + tlsph=true) -# # Add particle_spacing/2 to the clamp_radius to ensure that particles are also placed on the radius -# fixed_particles = SphereShape(particle_spacing, cylinder_radius + particle_spacing / 2, -# (0.0, elastic_plate_thickness / 2), material_density, -# cutout_min=(0.0, 0.0), cutout_max=(cylinder_radius, elastic_plate_thickness), -# tlsph=true) + n_particles_clamp_x = round(Int, cylinder_radius / particle_spacing) -# n_particles_clamp_x = round(Int, cylinder_radius / particle_spacing) + # Beam and clamped particles + n_particles_per_dimension = (round(Int, elastic_plate_length / particle_spacing) + + n_particles_clamp_x + 1, round(Int, elastic_plate_thickness/particle_spacing)+1) -# # Beam and clamped particles -# n_particles_per_dimension = (round(Int, elastic_plate_length / particle_spacing) + -# n_particles_clamp_x + 1, round(Int, elastic_plate_thickness/particle_spacing)+1) + # Note that the `RectangularShape` puts the first particle half a particle spacing away + # from the boundary, which is correct for fluids, but not for solids. + # We therefore need to pass `tlsph=true`. + elastic_plate = RectangularShape(particle_spacing, n_particles_per_dimension, + (0.0, 0.0), density=material_density, tlsph=true) -# # Note that the `RectangularShape` puts the first particle half a particle spacing away -# # from the boundary, which is correct for fluids, but not for solids. -# # We therefore need to pass `tlsph=true`. -# elastic_plate = RectangularShape(particle_spacing, n_particles_per_dimension, -# (0.0, 0.0), density=material_density, tlsph=true) + solid = union(elastic_plate, fixed_particles) -# solid = union(elastic_plate, fixed_particles) + # ========================================================================================== + # ==== Solid -# # ========================================================================================== -# # ==== Solid + smoothing_length = sqrt(2) * particle_spacing + smoothing_kernel = SchoenbergCubicSplineKernel{2}() -# smoothing_length = sqrt(2) * particle_spacing -# smoothing_kernel = SchoenbergCubicSplineKernel{2}() + solid_system = TotalLagrangianSPHSystem(solid, + smoothing_kernel, smoothing_length, + E, nu, nothing, + n_fixed_particles=nparticles(fixed_particles), + acceleration=(0.0, -gravity), penalty_force=PenaltyForceGanzenmueller(alpha=0.01)) -# solid_system = TotalLagrangianSPHSystem(solid, -# smoothing_kernel, smoothing_length, -# E, nu, nothing, -# n_fixed_particles=nparticles(fixed_particles), -# acceleration=(0.0, -gravity), penalty_force=PenaltyForceGanzenmueller(alpha=0.01)) + # find points at the end of elastic plate + plate_end_x = elastic_plate_length + cylinder_radius + point_ids = [] + for particle in TrixiParticles.eachparticle(solid_system) + particle_coord = solid_system.current_coordinates[:, particle] -# # find points at the end of elastic plate -# plate_end_x = elastic_plate_length + cylinder_radius -# point_ids = [] -# for particle in TrixiParticles.eachparticle(solid_system) -# particle_coord = solid_system.current_coordinates[:, particle] - -# if isapprox(particle_coord[1], plate_end_x, atol=particle_spacing/2) -# push!(point_ids, particle) -# end -# end + if isapprox(particle_coord[1], plate_end_x, atol=particle_spacing/2) + push!(point_ids, particle) + end + end -# # of those find the particle in the middle -# y_coords_at_plate_end = [solid_system.current_coordinates[2, particle] for particle in point_ids] -# if isempty(y_coords_at_plate_end) -# error("No particles found at the specified beam_end_x coordinate.") -# end + # of those find the particle in the middle + y_coords_at_plate_end = [solid_system.current_coordinates[2, particle] for particle in point_ids] + if isempty(y_coords_at_plate_end) + error("No particles found at the specified beam_end_x coordinate.") + end -# sorted_y_coords = sort(y_coords_at_plate_end) + sorted_y_coords = sort(y_coords_at_plate_end) -# # Compute the median -# len = length(sorted_y_coords) -# if isodd(len) -# median_y = sorted_y_coords[ceil(Int, len / 2)] -# else -# half = round(Int, len/2) -# median_y = (sorted_y_coords[half] + sorted_y_coords[half + 1]) / 2 -# end -# closest_to_median_index = argmin(abs.(y_coords_at_plate_end .- median_y)) -# middle_particle_id = point_ids[closest_to_median_index] + # Compute the median + len = length(sorted_y_coords) + if isodd(len) + median_y = sorted_y_coords[ceil(Int, len / 2)] + else + half = round(Int, len/2) + median_y = (sorted_y_coords[half] + sorted_y_coords[half + 1]) / 2 + end + closest_to_median_index = argmin(abs.(y_coords_at_plate_end .- median_y)) + middle_particle_id = point_ids[closest_to_median_index] -# # ========================================================================================== -# # ==== Simulation -# semi = Semidiscretization(solid_system, neighborhood_search=GridNeighborhoodSearch) -# ode = semidiscretize(semi, tspan) + # ========================================================================================== + # ==== Simulation + semi = Semidiscretization(solid_system, neighborhood_search=GridNeighborhoodSearch) + ode = semidiscretize(semi, tspan) -# function particle_position(particle_id, pp, t, system, u, v, system_name) -# TrixiParticles.add_entry!(pp, "pos_x_$particle_id", t, system.current_coordinates[1, particle_id], system_name) -# TrixiParticles.add_entry!(pp, "pos_y_$particle_id", t, system.current_coordinates[2, particle_id], system_name) -# end + function particle_position(particle_id, pp, t, system, u, v, system_name) + TrixiParticles.add_entry!(pp, "pos_x_$particle_id", t, system.current_coordinates[1, particle_id], system_name) + TrixiParticles.add_entry!(pp, "pos_y_$particle_id", t, system.current_coordinates[2, particle_id], system_name) + end -# #point_pos_func = [(pp, t, sys, u, v, sys_name) -> particle_position(point_id, pp, t, sys, u, v, sys_name) for point_id in point_ids] -# point_pos_func = (pp, t, sys, u, v, sys_name) -> particle_position(middle_particle_id, pp, t, sys, u, v, sys_name) -# pp_callback = PostprocessCallback(point_pos_func, dt=0.02, filename="oscillating_beam_2d_positions_"*string(res)) -# info_callback = InfoCallback(interval=500) -# saving_callback = SolutionSavingCallback(dt=0.05, prefix="") + #point_pos_func = [(pp, t, sys, u, v, sys_name) -> particle_position(point_id, pp, t, sys, u, v, sys_name) for point_id in point_ids] + point_pos_func = (pp, t, sys, u, v, sys_name) -> particle_position(middle_particle_id, pp, t, sys, u, v, sys_name) + pp_callback = PostprocessCallback(point_pos_func, dt=0.02, filename="oscillating_beam_2d_positions_"*string(res)) + info_callback = InfoCallback(interval=500) + saving_callback = SolutionSavingCallback(dt=0.05, prefix="") -# callbacks = CallbackSet(info_callback, saving_callback, pp_callback) + callbacks = CallbackSet(info_callback, saving_callback, pp_callback) -# sol = solve(ode, RDPK3SpFSAL49(), abstol=1e-8, reltol=1e-6, dtmax=1e-3, -# save_everystep=false, callback=callbacks); + sol = solve(ode, RDPK3SpFSAL49(), abstol=1e-8, reltol=1e-6, dtmax=1e-3, + save_everystep=false, callback=callbacks); -# end +end # Load the reference simulation data dx_data = CSV.read("validation/Turek_dx_T.csv", DataFrame) @@ -142,11 +142,23 @@ fig, (ax1, ax2) = subplots(1, 2, figsize=(12, 5)) key_pattern_x = r"pos_x_\d+_solid_\d+" key_pattern_y = r"pos_y_\d+_solid_\d+" -# Process each file +function calculate_mse(reference_data, simulation_data) + # Interpolate simulation data + interp_func = LinearInterpolation(simulation_data["time"], simulation_data["values"]) + + # Align with reference data time points + interpolated_values = interp_func(reference_data.time) + + # Calculate MSE + mse = mean((interpolated_values .- reference_data.displacement).^2) + return mse +end + + for json_file in json_files json_data = JSON.parsefile(json_file) - resolution = parse(Int, split(split(json_file, "_")[end], ".")[1]) + local resolution = parse(Int, split(split(json_file, "_")[end], ".")[1]) # Find matching keys and plot data for each key matching_keys_x = sort(collect(filter(key -> occursin(key_pattern_x, key), keys(json_data)))) @@ -154,6 +166,20 @@ for json_file in json_files particle_spacing = cylinder_diameter/resolution + # calculate error compared to reference + mse_results_x = 0 + mse_results_y = 0 + + for key in matching_keys_x + data = json_data[key] + mse_results_x = calculate_mse(dx_data, data) + end + + for key in matching_keys_y + data = json_data[key] + mse_results_y = calculate_mse(dy_data, data) + end + # Plot x-axis displacements for key in matching_keys_x data = json_data[key] @@ -161,7 +187,7 @@ for json_file in json_files values = data["values"] initial_position = values[1] displacements = [value - initial_position for value in values] - ax1.plot(times, displacements, label="dp = $(particle_spacing)") + ax1.plot(times, displacements, label="dp = $(particle_spacing) mse=$(@sprintf("%.5f", mse_results_x))") end # Plot y-axis displacements @@ -171,7 +197,7 @@ for json_file in json_files values = data["values"] initial_position = values[1] displacements = [value - initial_position for value in values] - ax2.plot(times, displacements, label="dp = $(particle_spacing)") + ax2.plot(times, displacements, label="dp = $(particle_spacing) mse=$(@sprintf("%.5f", mse_results_y))") end end From 3df6e545c658bdf8dcbf88bcb7bdda2e07822188 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 25 Jan 2024 12:42:54 +0100 Subject: [PATCH 106/212] performance optimization and some slight adjustment to improve error --- .../solid/total_lagrangian_sph/penalty_force.jl | 12 ++++++------ src/schemes/solid/total_lagrangian_sph/rhs.jl | 5 +++-- src/schemes/solid/total_lagrangian_sph/system.jl | 2 +- validation/oscillating_beam_2d.jl | 10 +++++++--- 4 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/schemes/solid/total_lagrangian_sph/penalty_force.jl b/src/schemes/solid/total_lagrangian_sph/penalty_force.jl index e4cb34588..8e21cb45a 100644 --- a/src/schemes/solid/total_lagrangian_sph/penalty_force.jl +++ b/src/schemes/solid/total_lagrangian_sph/penalty_force.jl @@ -52,16 +52,16 @@ struct PenaltyForceGanzenmueller{ELTYPE} end @inline function calc_penalty_force!(dv, particle, neighbor, initial_pos_diff, - initial_distance, system, + initial_distance, system, m_a, m_b, rho_a, rho_b, penalty_force::PenaltyForceGanzenmueller) - (; mass, material_density, young_modulus) = system + (; young_modulus) = system current_pos_diff = current_coords(system, particle) - current_coords(system, neighbor) current_distance = norm(current_pos_diff) - volume_particle = mass[particle] / material_density[particle] - volume_neighbor = mass[neighbor] / material_density[neighbor] + volume_particle = m_a / rho_a + volume_neighbor = m_b / rho_b kernel_weight = smoothing_kernel(system, initial_distance) @@ -76,9 +76,9 @@ end kernel_weight / initial_distance^2 * young_modulus * delta_sum * current_pos_diff / current_distance - for i in 1:ndims(system) + @inbounds for i in 1:ndims(system) # Divide force by mass to obtain acceleration - dv[i, particle] += f[i] / mass[particle] + dv[i, particle] += f[i] / m_a end return dv diff --git a/src/schemes/solid/total_lagrangian_sph/rhs.jl b/src/schemes/solid/total_lagrangian_sph/rhs.jl index 86d72996b..ecc95f28c 100644 --- a/src/schemes/solid/total_lagrangian_sph/rhs.jl +++ b/src/schemes/solid/total_lagrangian_sph/rhs.jl @@ -35,6 +35,7 @@ end grad_kernel = smoothing_kernel_grad(particle_system, initial_pos_diff, initial_distance) + m_a = particle_system.mass[particle] m_b = neighbor_system.mass[neighbor] dv_particle = m_b * @@ -42,12 +43,12 @@ end pk1_corrected(neighbor_system, neighbor) / rho_b^2) * grad_kernel - for i in 1:ndims(particle_system) + @inbounds for i in 1:ndims(particle_system) dv[i, particle] += dv_particle[i] end calc_penalty_force!(dv, particle, neighbor, initial_pos_diff, - initial_distance, particle_system, penalty_force) + initial_distance, particle_system, m_a, m_b, rho_a, rho_b, penalty_force) # TODO continuity equation? end diff --git a/src/schemes/solid/total_lagrangian_sph/system.jl b/src/schemes/solid/total_lagrangian_sph/system.jl index 2f98bbe2e..a12c049d1 100644 --- a/src/schemes/solid/total_lagrangian_sph/system.jl +++ b/src/schemes/solid/total_lagrangian_sph/system.jl @@ -344,7 +344,7 @@ end end @inline function calc_penalty_force!(dv, particle, neighbor, initial_pos_diff, - initial_distance, system, ::Nothing) + initial_distance, system, m_a, m_b, rho_a, rho_b, ::Nothing) return dv end diff --git a/validation/oscillating_beam_2d.jl b/validation/oscillating_beam_2d.jl index dfb7b27b4..cbcd870e0 100644 --- a/validation/oscillating_beam_2d.jl +++ b/validation/oscillating_beam_2d.jl @@ -117,21 +117,25 @@ for res in resolution #point_pos_func = [(pp, t, sys, u, v, sys_name) -> particle_position(point_id, pp, t, sys, u, v, sys_name) for point_id in point_ids] point_pos_func = (pp, t, sys, u, v, sys_name) -> particle_position(middle_particle_id, pp, t, sys, u, v, sys_name) - pp_callback = PostprocessCallback(point_pos_func, dt=0.02, filename="oscillating_beam_2d_positions_"*string(res)) + pp_callback = PostprocessCallback(point_pos_func, dt=0.025, filename="oscillating_beam_2d_positions_"*string(res)) info_callback = InfoCallback(interval=500) saving_callback = SolutionSavingCallback(dt=0.05, prefix="") callbacks = CallbackSet(info_callback, saving_callback, pp_callback) sol = solve(ode, RDPK3SpFSAL49(), abstol=1e-8, reltol=1e-6, dtmax=1e-3, - save_everystep=false, callback=callbacks); - + save_everystep=false, callback=callbacks); end # Load the reference simulation data dx_data = CSV.read("validation/Turek_dx_T.csv", DataFrame) dy_data = CSV.read("validation/Turek_dy_T.csv", DataFrame) +# fix slight misalignment +dx_data.time = dx_data.time .+ 0.015 +dx_data.displacement = dx_data.displacement .+ 0.00005 +dy_data.displacement = dy_data.displacement .- 0.001 + # Get the list of JSON files json_files = glob("oscillating_beam_2d_positions_*.json", ".") From 21ec719b5ebd802ab3f7f5f41d65a0bf2bf30e2f Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 26 Jan 2024 10:14:48 +0100 Subject: [PATCH 107/212] format --- examples/fluid/rectangular_tank_2d.jl | 3 ++- src/TrixiParticles.jl | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/fluid/rectangular_tank_2d.jl b/examples/fluid/rectangular_tank_2d.jl index 7183e1f09..6b2d6739d 100644 --- a/examples/fluid/rectangular_tank_2d.jl +++ b/examples/fluid/rectangular_tank_2d.jl @@ -47,7 +47,8 @@ fluid_system = WeaklyCompressibleSPHSystem(tank.fluid, fluid_density_calculator, boundary_model = BoundaryModelDummyParticles(tank.boundary.density, tank.boundary.mass, state_equation=state_equation, AdamiPressureExtrapolation(), - smoothing_kernel, smoothing_length, viscosity=viscosity_wall) + smoothing_kernel, smoothing_length, + viscosity=viscosity_wall) # Uncomment to use repulsive boundary particles by Monaghan & Kajtar. # Also change spacing ratio and boundary layers (see comment above). diff --git a/src/TrixiParticles.jl b/src/TrixiParticles.jl index 9d8c6f53e..f9e7ac14b 100644 --- a/src/TrixiParticles.jl +++ b/src/TrixiParticles.jl @@ -63,5 +63,4 @@ export calculate_ekin, calculate_total_mass, max_pressure, min_pressure, avg_pre max_density, min_density, avg_density export interpolate_line, interpolate_point, interpolate_plane_3d, interpolate_plane_2d - end # module From 8da0acd7b90cbf4082d56479b6b4f191792b5324 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 1 Feb 2024 11:52:54 +0100 Subject: [PATCH 108/212] update --- src/callbacks/post_process.jl | 38 +++++++++++++++++++--------------- src/visualization/write2vtk.jl | 3 --- 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index f8fcc9b94..580864316 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -8,18 +8,23 @@ end """ PostprocessCallback(func; interval::Integer=0, dt=0.0, exclude_bnd=true, - filename="values", overwrite=true) + output_directory="values", overwrite=true) Create a callback for post-processing simulation data at regular intervals. -This callback allows for the execution of a user-defined function `func` at specified intervals during the simulation. The function is applied to the current state of the simulation, and its results can be saved or used for further analysis. +This callback allows for the execution of a user-defined function `func` at specified +intervals during the simulation. The function is applied to the current state of the simulation, +and its results can be saved or used for further analysis. -The callback can be triggered either by a fixed number of time steps (`interval`) or by a fixed interval of simulation time (`dt`). +The callback can be triggered either by a fixed number of time steps (`interval`) or by +a fixed interval of simulation time (`dt`). # Keywords -- `interval=0`: Specifies the number of time steps between each invocation of the callback. If set to `0`, the callback will not be triggered based on time steps. -- `dt=0.0`: Specifies the simulation time interval between each invocation of the callback. If set to `0.0`, the callback will not be triggered based on simulation time. +- `interval=0`: Specifies the number of time steps between each invocation of the callback. + If set to `0`, the callback will not be triggered based on time steps. +- `dt=0.0`: Specifies the simulation time interval between each invocation of the callback. + If set to `0.0`, the callback will not be triggered based on simulation time. - `exclude_bnd=true`: If set to `true`, boundary particles will be excluded from the post-processing. -- `filename="values"`: The filename or path where the results of the post-processing will be saved. +- `output_directory="values"`: The filename or path where the results of the post-processing will be saved. - `overwrite=true`: If set to `true`, existing files with the same name as `filename` will be overwritten. # Behavior @@ -28,20 +33,19 @@ The callback can be triggered either by a fixed number of time steps (`interval` - If `interval` is specified and greater than `0`, the callback will be triggered every `interval` time steps. # Usage -The callback is designed to be used with simulation frameworks. The user-defined function `func` should take the current state of the simulation as input and return data for post-processing. +The callback is designed to be used with simulation frameworks. The user-defined function +`func` should take the current state of the simulation as input and return data for post-processing. # Examples ```julia -# Define a custom post-processing function -function my_postprocess_function(simulation_state) - # Custom processing code here -end +example_function = function(pp, t, system, u, v, system_name) println("test_func ", t) end # Create a callback that is triggered every 100 time steps -postprocess_callback = PostprocessCallback(my_postprocess_function, interval=100) +postprocess_callback = PostprocessCallback(example_function, interval=100) # Create a callback that is triggered every 0.1 simulation time units -postprocess_callback = PostprocessCallback(my_postprocess_function, dt=0.1) +postprocess_callback = PostprocessCallback(example_function, dt=0.1) +``` """ mutable struct PostprocessCallback{I, F} interval::I @@ -54,7 +58,7 @@ mutable struct PostprocessCallback{I, F} end function PostprocessCallback(func; interval::Integer=0, dt=0.0, exclude_bnd=true, - filename="values", overwrite=true) + output_directory="values", overwrite=true) if dt > 0 && interval > 0 throw(ArgumentError("Setting both interval and dt is not supported!")) end @@ -64,7 +68,7 @@ function PostprocessCallback(func; interval::Integer=0, dt=0.0, exclude_bnd=true end post_callback = PostprocessCallback(interval, -Inf, Dict{String, Vector{DataEntry}}(), - exclude_bnd, func, filename, overwrite) + exclude_bnd, func, output_directory, overwrite) if dt > 0 # Add a `tstop` every `dt`, and save the final solution. return PeriodicCallback(post_callback, dt, @@ -177,7 +181,7 @@ function (pp::PostprocessCallback{I, F})(integrator) where {I, F <: Array} filenames = system_names(semi.systems) foreach_system(semi) do system - if system isa BoundarySystem + if system isa BoundarySystem && pp.exclude_bnd return end @@ -206,7 +210,7 @@ function prepare_series_data!(data, post_callback) data_times = [data.time for data in sorted_data_array] data_values = [data.value for data in sorted_data_array] - # Assuming each DataEntry in sorted_data_array has a `system` field. + # Assuming each DataEntry in `sorted_data_array` has a `system` field. system_name = isempty(sorted_data_array) ? "" : sorted_data_array[1].system data[key] = create_series_dict(data_values, data_times, system_name) diff --git a/src/visualization/write2vtk.jl b/src/visualization/write2vtk.jl index 45c9115b9..ede61bc39 100644 --- a/src/visualization/write2vtk.jl +++ b/src/visualization/write2vtk.jl @@ -33,9 +33,6 @@ function trixi2vtk(vu_ode, semi, t; iter=nothing, output_directory="out", prefix # still have the values from the last stage of the previous step if not updated here. update_systems_and_nhs(v_ode, u_ode, semi, t) - # Update quantities that are stored in the systems. These quantities (e.g. pressure) - # still have the values from the last stage of the previous step if not updated here. - update_systems_and_nhs(v_ode, u_ode, semi, t) filenames = system_names(systems) From c88bb7fc0a5f0ff9af96ee30a944855ddb1b59a9 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 1 Feb 2024 15:16:33 +0100 Subject: [PATCH 109/212] format --- src/callbacks/post_process.jl | 2 +- src/visualization/write2vtk.jl | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 580864316..8202a4f94 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -58,7 +58,7 @@ mutable struct PostprocessCallback{I, F} end function PostprocessCallback(func; interval::Integer=0, dt=0.0, exclude_bnd=true, - output_directory="values", overwrite=true) + output_directory="values", overwrite=true) if dt > 0 && interval > 0 throw(ArgumentError("Setting both interval and dt is not supported!")) end diff --git a/src/visualization/write2vtk.jl b/src/visualization/write2vtk.jl index ede61bc39..e1aa6bb81 100644 --- a/src/visualization/write2vtk.jl +++ b/src/visualization/write2vtk.jl @@ -33,7 +33,6 @@ function trixi2vtk(vu_ode, semi, t; iter=nothing, output_directory="out", prefix # still have the values from the last stage of the previous step if not updated here. update_systems_and_nhs(v_ode, u_ode, semi, t) - filenames = system_names(systems) foreach_system(semi) do system From 0515b84787e3988a39d7120619ec158cd0533595 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 2 Feb 2024 01:15:57 +0100 Subject: [PATCH 110/212] add reference files --- validation/oscillating_beam_2d.jl | 4 +- .../oscillating_beam_2d_positions_100.json | 1631 +++++++++++++++++ .../oscillating_beam_2d_positions_20.json | 1631 +++++++++++++++++ .../oscillating_beam_2d_positions_50.json | 1631 +++++++++++++++++ 4 files changed, 4895 insertions(+), 2 deletions(-) create mode 100644 validation/oscillating_beam_2d_positions_100.json create mode 100644 validation/oscillating_beam_2d_positions_20.json create mode 100644 validation/oscillating_beam_2d_positions_50.json diff --git a/validation/oscillating_beam_2d.jl b/validation/oscillating_beam_2d.jl index cbcd870e0..714f44b35 100644 --- a/validation/oscillating_beam_2d.jl +++ b/validation/oscillating_beam_2d.jl @@ -66,8 +66,8 @@ for res in resolution # ========================================================================================== # ==== Solid - smoothing_length = sqrt(2) * particle_spacing - smoothing_kernel = SchoenbergCubicSplineKernel{2}() + smoothing_length = 2 * sqrt(2) * particle_spacing + smoothing_kernel = WendlandC2Kernel{2}() solid_system = TotalLagrangianSPHSystem(solid, smoothing_kernel, smoothing_length, diff --git a/validation/oscillating_beam_2d_positions_100.json b/validation/oscillating_beam_2d_positions_100.json new file mode 100644 index 000000000..e6554a3da --- /dev/null +++ b/validation/oscillating_beam_2d_positions_100.json @@ -0,0 +1,1631 @@ +{ + "meta": { + "julia_version": "1.9.4", + "solver_version": "8a7da404f6e05076a7c4eaaa21244ad7ffd49aa7", + "solver_name": "TrixiParticles.jl" + }, + "pos_y_4411_solid_1": { + "time": [ + 0.0, + 0.025, + 0.05, + 0.07500000000000001, + 0.1, + 0.125, + 0.15000000000000002, + 0.17500000000000002, + 0.2, + 0.225, + 0.25, + 0.275, + 0.30000000000000004, + 0.325, + 0.35000000000000003, + 0.375, + 0.4, + 0.42500000000000004, + 0.45, + 0.47500000000000003, + 0.5, + 0.525, + 0.55, + 0.5750000000000001, + 0.6000000000000001, + 0.625, + 0.65, + 0.675, + 0.7000000000000001, + 0.7250000000000001, + 0.75, + 0.775, + 0.8, + 0.8250000000000001, + 0.8500000000000001, + 0.875, + 0.9, + 0.925, + 0.9500000000000001, + 0.9750000000000001, + 1.0, + 1.0250000000000001, + 1.05, + 1.075, + 1.1, + 1.125, + 1.1500000000000001, + 1.175, + 1.2000000000000002, + 1.225, + 1.25, + 1.2750000000000001, + 1.3, + 1.3250000000000002, + 1.35, + 1.375, + 1.4000000000000001, + 1.425, + 1.4500000000000002, + 1.475, + 1.5, + 1.5250000000000001, + 1.55, + 1.5750000000000002, + 1.6, + 1.625, + 1.6500000000000001, + 1.675, + 1.7000000000000002, + 1.725, + 1.75, + 1.7750000000000001, + 1.8, + 1.8250000000000002, + 1.85, + 1.875, + 1.9000000000000001, + 1.925, + 1.9500000000000002, + 1.975, + 2.0, + 2.025, + 2.0500000000000003, + 2.075, + 2.1, + 2.125, + 2.15, + 2.1750000000000003, + 2.2, + 2.225, + 2.25, + 2.275, + 2.3000000000000003, + 2.325, + 2.35, + 2.375, + 2.4000000000000004, + 2.4250000000000003, + 2.45, + 2.475, + 2.5, + 2.5250000000000004, + 2.5500000000000003, + 2.575, + 2.6, + 2.625, + 2.6500000000000004, + 2.6750000000000003, + 2.7, + 2.725, + 2.75, + 2.7750000000000004, + 2.8000000000000003, + 2.825, + 2.85, + 2.875, + 2.9000000000000004, + 2.9250000000000003, + 2.95, + 2.975, + 3.0, + 3.0250000000000004, + 3.0500000000000003, + 3.075, + 3.1, + 3.125, + 3.1500000000000004, + 3.1750000000000003, + 3.2, + 3.225, + 3.25, + 3.2750000000000004, + 3.3000000000000003, + 3.325, + 3.35, + 3.375, + 3.4000000000000004, + 3.4250000000000003, + 3.45, + 3.475, + 3.5, + 3.5250000000000004, + 3.5500000000000003, + 3.575, + 3.6, + 3.625, + 3.6500000000000004, + 3.6750000000000003, + 3.7, + 3.725, + 3.75, + 3.7750000000000004, + 3.8000000000000003, + 3.825, + 3.85, + 3.875, + 3.9000000000000004, + 3.9250000000000003, + 3.95, + 3.975, + 4.0, + 4.025, + 4.05, + 4.075, + 4.1000000000000005, + 4.125, + 4.15, + 4.175, + 4.2, + 4.2250000000000005, + 4.25, + 4.275, + 4.3, + 4.325, + 4.3500000000000005, + 4.375, + 4.4, + 4.425, + 4.45, + 4.4750000000000005, + 4.5, + 4.525, + 4.55, + 4.575, + 4.6000000000000005, + 4.625, + 4.65, + 4.675, + 4.7, + 4.7250000000000005, + 4.75, + 4.775, + 4.800000000000001, + 4.825, + 4.8500000000000005, + 4.875, + 4.9, + 4.925000000000001, + 4.95, + 4.9750000000000005, + 5.0, + 5.025, + 5.050000000000001, + 5.075, + 5.1000000000000005, + 5.125, + 5.15, + 5.175000000000001, + 5.2, + 5.2250000000000005, + 5.25, + 5.275, + 5.300000000000001, + 5.325, + 5.3500000000000005, + 5.375, + 5.4, + 5.425000000000001, + 5.45, + 5.4750000000000005, + 5.5, + 5.525, + 5.550000000000001, + 5.575, + 5.6000000000000005, + 5.625, + 5.65, + 5.675000000000001, + 5.7, + 5.7250000000000005, + 5.75, + 5.775, + 5.800000000000001, + 5.825, + 5.8500000000000005, + 5.875, + 5.9, + 5.925000000000001, + 5.95, + 5.9750000000000005, + 6.0, + 6.025, + 6.050000000000001, + 6.075, + 6.1000000000000005, + 6.125, + 6.15, + 6.175000000000001, + 6.2, + 6.2250000000000005, + 6.25, + 6.275, + 6.300000000000001, + 6.325, + 6.3500000000000005, + 6.375, + 6.4, + 6.425000000000001, + 6.45, + 6.4750000000000005, + 6.5, + 6.525, + 6.550000000000001, + 6.575, + 6.6000000000000005, + 6.625, + 6.65, + 6.675000000000001, + 6.7, + 6.7250000000000005, + 6.75, + 6.775, + 6.800000000000001, + 6.825, + 6.8500000000000005, + 6.875, + 6.9, + 6.925000000000001, + 6.95, + 6.9750000000000005, + 7.0, + 7.025, + 7.050000000000001, + 7.075, + 7.1000000000000005, + 7.125, + 7.15, + 7.175000000000001, + 7.2, + 7.2250000000000005, + 7.25, + 7.275, + 7.300000000000001, + 7.325, + 7.3500000000000005, + 7.375, + 7.4, + 7.425000000000001, + 7.45, + 7.4750000000000005, + 7.5, + 7.525, + 7.550000000000001, + 7.575, + 7.6000000000000005, + 7.625, + 7.65, + 7.675000000000001, + 7.7, + 7.7250000000000005, + 7.75, + 7.775, + 7.800000000000001, + 7.825, + 7.8500000000000005, + 7.875, + 7.9, + 7.925000000000001, + 7.95, + 7.9750000000000005, + 8.0, + 8.025, + 8.05, + 8.075000000000001, + 8.1, + 8.125, + 8.15, + 8.175, + 8.200000000000001, + 8.225, + 8.25, + 8.275, + 8.3, + 8.325000000000001, + 8.35, + 8.375, + 8.4, + 8.425, + 8.450000000000001, + 8.475, + 8.5, + 8.525, + 8.55, + 8.575000000000001, + 8.6, + 8.625, + 8.65, + 8.675, + 8.700000000000001, + 8.725, + 8.75, + 8.775, + 8.8, + 8.825000000000001, + 8.85, + 8.875, + 8.9, + 8.925, + 8.950000000000001, + 8.975, + 9.0, + 9.025, + 9.05, + 9.075000000000001, + 9.1, + 9.125, + 9.15, + 9.175, + 9.200000000000001, + 9.225, + 9.25, + 9.275, + 9.3, + 9.325000000000001, + 9.35, + 9.375, + 9.4, + 9.425, + 9.450000000000001, + 9.475, + 9.5, + 9.525, + 9.55, + 9.575000000000001, + 9.600000000000001, + 9.625, + 9.65, + 9.675, + 9.700000000000001, + 9.725000000000001, + 9.75, + 9.775, + 9.8, + 9.825000000000001, + 9.850000000000001, + 9.875, + 9.9, + 9.925, + 9.950000000000001, + 9.975000000000001, + 10.0 + ], + "system_name": "solid_1", + "values": [ + 0.01, + 0.009363820762406584, + 0.007598603423386623, + 0.003266155098211553, + -0.0035657089526451727, + -0.012500011939207733, + -0.022174572935455213, + -0.031811294660319726, + -0.04174579088038043, + -0.0522733816144176, + -0.06396649515396848, + -0.07542091301063115, + -0.08602570749373017, + -0.09455826513348758, + -0.10159706336576763, + -0.10750597306181553, + -0.11252687362583202, + -0.11638646844205493, + -0.11790629651581351, + -0.11716245152250866, + -0.11387188137339216, + -0.10927965038556192, + -0.1036594293148164, + -0.09710216230333427, + -0.08912156120547356, + -0.07905529865561016, + -0.06782390308843038, + -0.056000189476723694, + -0.04520058980611431, + -0.0350612446025539, + -0.025432684555248504, + -0.015630471856226576, + -0.006331121007580037, + 0.0012818000627697079, + 0.006444894326775798, + 0.008900976669671793, + 0.009950634420942765, + 0.00969172340549048, + 0.008501009608006031, + 0.004955741214880478, + -0.0010386285547241253, + -0.009483901990744394, + -0.01892978363835837, + -0.028568424057422864, + -0.03833897491663423, + -0.04863067082287392, + -0.060126239310757806, + -0.07171587677213227, + -0.08276797295992777, + -0.09183530306276372, + -0.09937567976091108, + -0.10557108654264062, + -0.11099909390025378, + -0.11537593543632194, + -0.11767646932637707, + -0.11773393787111773, + -0.11508060310195792, + -0.11094734121665853, + -0.10559251473304856, + -0.0994659602777271, + -0.09199558160102352, + -0.08253832978145577, + -0.07164075853541879, + -0.059812302685849875, + -0.04876004360312383, + -0.03835809687282671, + -0.028690733682067596, + -0.018793631359334356, + -0.009247988838808513, + -0.0009587745244230903, + 0.004997628720806093, + 0.008207600444959424, + 0.009732944187038314, + 0.009878466758045566, + 0.009214943975844169, + 0.006405736208154202, + 0.0012601181381889108, + -0.006621210418012228, + -0.01576211511205336, + -0.025365823624083045, + -0.034977792816546505, + -0.045031448367823766, + -0.05626718799177686, + -0.0679231835384779, + -0.07936791148790971, + -0.08898147509514241, + -0.09704832701672331, + -0.1035399336894109, + -0.10931837053747391, + -0.11412849146896299, + -0.11716441344120576, + -0.11802851336553387, + -0.11609965118709346, + -0.11249417760249328, + -0.10743879556035367, + -0.1017021284307968, + -0.09469099879875796, + -0.08584795614274777, + -0.0753502745039132, + -0.06363682634024063, + -0.0523987976991377, + -0.041746901485032975, + -0.03200386034189763, + -0.022031778534589232, + -0.012289575926791918, + -0.003399106049047746, + 0.0033259922494152405, + 0.007323856886077627, + 0.009339989985160247, + 0.009889115010636195, + 0.009697487481007511, + 0.0076121333686534395, + 0.003334052535105788, + -0.003884930252563703, + -0.012663471872016507, + -0.022221572354655224, + -0.03171340033882775, + -0.0415540733631856, + -0.052442279478584174, + -0.06405070764712802, + -0.0757720108128162, + -0.08593493896777168, + -0.09456813612013662, + -0.1014203065494056, + -0.10753964176076738, + -0.11271287677376005, + -0.11642261845388435, + -0.11804396610182334, + -0.11689094262353447, + -0.11385901179441604, + -0.10916452557596247, + -0.10380997709304708, + -0.0972321130735726, + -0.08901874773798697, + -0.07896308541082575, + -0.06745308535123462, + -0.056058315577088395, + -0.045165394704519406, + -0.035323149698907715, + -0.02533184534123848, + -0.015485636376367434, + -0.006084287726159553, + 0.001384719707068955, + 0.006244932453165198, + 0.008815058318377528, + 0.009774172284555054, + 0.009967027481609188, + 0.00853335233556748, + 0.005119854488342939, + -0.0013226338721728135, + -0.009616459985708559, + -0.019069727532181363, + -0.028477730414630816, + -0.03817907104693579, + -0.04872183916178019, + -0.060193266054266274, + -0.07206079800421651, + -0.08270356682884746, + -0.09189830978850717, + -0.09916264901021907, + -0.10563199208568709, + -0.11114092327142652, + -0.11547642640531805, + -0.11782491359513159, + -0.1174727509317058, + -0.1150440000681833, + -0.11074149920616962, + -0.10575143388770727, + -0.0995808050866577, + -0.0920081187015569, + -0.08247691518202661, + -0.07128782978510792, + -0.05980436534680691, + -0.04865351433371847, + -0.03863581005786577, + -0.028616108846066246, + -0.018743584588203917, + -0.008969841998365556, + -0.0008407669801298259, + 0.004896077188148059, + 0.008117091490556125, + 0.00955081279199135, + 0.010103937607620102, + 0.009235481617019895, + 0.006608003703177627, + 0.0009856513738553984, + -0.006727902518877551, + -0.01596362126064137, + -0.02526406984185294, + -0.034845115601294475, + -0.045059248783103314, + -0.05634750800550186, + -0.06827362498779418, + -0.0793427996767259, + -0.08906602088196729, + -0.09677681750149165, + -0.10357893216293693, + -0.10939015808584664, + -0.11429682841048343, + -0.11734954336771129, + -0.11784719749249374, + -0.11607742610718477, + -0.11222715226174959, + -0.10757001537899046, + -0.1017544440971294, + -0.09477033014290935, + -0.08579751112587836, + -0.07504854590469746, + -0.06359251263326783, + -0.05225505823283636, + -0.042012820523590566, + -0.031929632007783496, + -0.022037150034405498, + -0.011986769249382098, + -0.0032950860536321036, + 0.003283355973589154, + 0.007186834570590752, + 0.009154775567845193, + 0.010073068106311995, + 0.009754646580779236, + 0.007865975642040834, + 0.003089214282894323, + -0.003987752158639876, + -0.012945189591894779, + -0.022119544884895384, + -0.031599807408133666, + -0.041473850167693456, + -0.052510350359853936, + -0.06438952874445636, + -0.075838418971855, + -0.08608725853048524, + -0.0942960422546464, + -0.10144188809192377, + -0.1075060005825316, + -0.11289875980837306, + -0.11658372946968773, + -0.11793939959384214, + -0.11688438655677398, + -0.11358264200944192, + -0.10929309983432968, + -0.10381607823068853, + -0.09737590156728843, + -0.08895230815257532, + -0.07870605985479316, + -0.06735359730143625, + -0.055901505346825996, + -0.045434814421974556, + -0.0352864791095807, + -0.025397264743751636, + -0.015139081788222817, + -0.0059514377131859785, + 0.0014513144515240373, + 0.006076171495297191, + 0.008607002939878766, + 0.009858474455589983, + 0.010031272230706151, + 0.00883545602353845, + 0.004950444965190077, + -0.0013901807829112788, + -0.009974686023701707, + -0.01901703902128488, + -0.028436974543687515, + -0.038019424514314434, + -0.048749041317952525, + -0.06045118701038273, + -0.07216682609317099, + -0.08289613990392254, + -0.09166265676788389, + -0.09920142366687446, + -0.10554035261879782, + -0.11135378672485478, + -0.11560847758404963, + -0.11778323984169609, + -0.11745017286692076, + -0.11475360233038337, + -0.11085114192728511, + -0.1057283038900998, + -0.09979958315693535, + -0.09195323131910081, + -0.08227476228535813, + -0.07111169681641462, + -0.05959449421816749, + -0.0488725020665947, + -0.03864024448093439, + -0.02877613173102346, + -0.018432960646203363, + -0.008843094300200083, + -0.0006674883701040825, + 0.004752104668139388, + 0.007936820706593508, + 0.00954111336986008, + 0.010143791086156085, + 0.009526052156473624, + 0.006515658099130609, + 0.0009788876413294055, + -0.007084795310172607, + -0.015932204375780315, + -0.025295744088585235, + -0.03465766201302316, + -0.04509883414183861, + -0.05654680172008645, + -0.06842454727570602, + -0.07953556068620034, + -0.08885761312788322, + -0.09680118648492145, + -0.10343689431669187, + -0.10963007585502968, + -0.11441727787748711, + -0.1173998692729466, + -0.11781125740133956, + -0.11578216050981474, + -0.11227106660595665, + -0.10749279882066166, + -0.10201588910934119, + -0.09474575976889071, + -0.08570543125615823, + -0.07484793697734915, + -0.06336750000887661, + -0.052382976406452834, + -0.04200543424308965, + -0.03211852680946727, + -0.021762775103169638, + -0.011893517331869354, + -0.0030584854709954177, + 0.0031470904235491965, + 0.00705706471191354, + 0.009081708013615849, + 0.01011743259812652, + 0.010012127736541407, + 0.007816644284132436, + 0.003094446163879665, + -0.00435810813461733, + -0.01292800705554397, + -0.02218911883562174, + -0.03135111531883002, + -0.04149901224843906, + -0.0526460321701837, + -0.06460731011168555, + -0.07605484524258216, + -0.08593023124525755, + -0.09429493585838761, + -0.10122884229958697, + -0.10773329042047074, + -0.11299441205163895, + -0.11673899720086094, + -0.11792731465603148, + -0.11664228998373709, + -0.11358082770302885, + -0.10915529831149835, + -0.10406683052055941, + -0.0973292391963875, + -0.0889349394511538, + -0.07848311431793402, + -0.06715272496033192, + -0.0559791669918354, + -0.04544840286118957, + -0.03549887535683647, + -0.02514455070268268, + -0.01505442948013129, + -0.00565208399803319, + 0.0013176115400990603, + 0.005969377740723861, + 0.008453248085217416, + 0.00990992428808207, + 0.010284757653218533, + 0.008879848526657233, + 0.0049945020139833375, + -0.001766638208638646, + -0.010021214910133991, + -0.019161666500981264, + -0.02816652679065563, + -0.038012009596529645, + -0.048783128822664626, + -0.060701643452686596, + -0.07240373474037286, + -0.08284006563336042, + -0.09166945065988873, + -0.09895544620189657, + -0.10572018067687976, + -0.11138700703407632, + -0.11581295014546472, + -0.11776159262235299, + -0.11727440937916057, + -0.11472632792598383, + -0.11071424836086637, + -0.10598889356538256, + -0.09976315734167897, + -0.0920000269721387, + -0.08200881362425028, + -0.07090352043204769, + -0.059581350616651894, + -0.04890925334520305, + -0.03888299530970968, + -0.02859322911796461, + -0.018356289710080968, + -0.008472955293237631, + -0.0007462353832897392, + 0.004700254028679534, + 0.007690882073718627, + 0.00954811258127935, + 0.010317817054502371 + ], + "datatype": "Float64", + "type": "series", + "novalues": 401 + }, + "pos_x_4411_solid_1": { + "time": [ + 0.0, + 0.025, + 0.05, + 0.07500000000000001, + 0.1, + 0.125, + 0.15000000000000002, + 0.17500000000000002, + 0.2, + 0.225, + 0.25, + 0.275, + 0.30000000000000004, + 0.325, + 0.35000000000000003, + 0.375, + 0.4, + 0.42500000000000004, + 0.45, + 0.47500000000000003, + 0.5, + 0.525, + 0.55, + 0.5750000000000001, + 0.6000000000000001, + 0.625, + 0.65, + 0.675, + 0.7000000000000001, + 0.7250000000000001, + 0.75, + 0.775, + 0.8, + 0.8250000000000001, + 0.8500000000000001, + 0.875, + 0.9, + 0.925, + 0.9500000000000001, + 0.9750000000000001, + 1.0, + 1.0250000000000001, + 1.05, + 1.075, + 1.1, + 1.125, + 1.1500000000000001, + 1.175, + 1.2000000000000002, + 1.225, + 1.25, + 1.2750000000000001, + 1.3, + 1.3250000000000002, + 1.35, + 1.375, + 1.4000000000000001, + 1.425, + 1.4500000000000002, + 1.475, + 1.5, + 1.5250000000000001, + 1.55, + 1.5750000000000002, + 1.6, + 1.625, + 1.6500000000000001, + 1.675, + 1.7000000000000002, + 1.725, + 1.75, + 1.7750000000000001, + 1.8, + 1.8250000000000002, + 1.85, + 1.875, + 1.9000000000000001, + 1.925, + 1.9500000000000002, + 1.975, + 2.0, + 2.025, + 2.0500000000000003, + 2.075, + 2.1, + 2.125, + 2.15, + 2.1750000000000003, + 2.2, + 2.225, + 2.25, + 2.275, + 2.3000000000000003, + 2.325, + 2.35, + 2.375, + 2.4000000000000004, + 2.4250000000000003, + 2.45, + 2.475, + 2.5, + 2.5250000000000004, + 2.5500000000000003, + 2.575, + 2.6, + 2.625, + 2.6500000000000004, + 2.6750000000000003, + 2.7, + 2.725, + 2.75, + 2.7750000000000004, + 2.8000000000000003, + 2.825, + 2.85, + 2.875, + 2.9000000000000004, + 2.9250000000000003, + 2.95, + 2.975, + 3.0, + 3.0250000000000004, + 3.0500000000000003, + 3.075, + 3.1, + 3.125, + 3.1500000000000004, + 3.1750000000000003, + 3.2, + 3.225, + 3.25, + 3.2750000000000004, + 3.3000000000000003, + 3.325, + 3.35, + 3.375, + 3.4000000000000004, + 3.4250000000000003, + 3.45, + 3.475, + 3.5, + 3.5250000000000004, + 3.5500000000000003, + 3.575, + 3.6, + 3.625, + 3.6500000000000004, + 3.6750000000000003, + 3.7, + 3.725, + 3.75, + 3.7750000000000004, + 3.8000000000000003, + 3.825, + 3.85, + 3.875, + 3.9000000000000004, + 3.9250000000000003, + 3.95, + 3.975, + 4.0, + 4.025, + 4.05, + 4.075, + 4.1000000000000005, + 4.125, + 4.15, + 4.175, + 4.2, + 4.2250000000000005, + 4.25, + 4.275, + 4.3, + 4.325, + 4.3500000000000005, + 4.375, + 4.4, + 4.425, + 4.45, + 4.4750000000000005, + 4.5, + 4.525, + 4.55, + 4.575, + 4.6000000000000005, + 4.625, + 4.65, + 4.675, + 4.7, + 4.7250000000000005, + 4.75, + 4.775, + 4.800000000000001, + 4.825, + 4.8500000000000005, + 4.875, + 4.9, + 4.925000000000001, + 4.95, + 4.9750000000000005, + 5.0, + 5.025, + 5.050000000000001, + 5.075, + 5.1000000000000005, + 5.125, + 5.15, + 5.175000000000001, + 5.2, + 5.2250000000000005, + 5.25, + 5.275, + 5.300000000000001, + 5.325, + 5.3500000000000005, + 5.375, + 5.4, + 5.425000000000001, + 5.45, + 5.4750000000000005, + 5.5, + 5.525, + 5.550000000000001, + 5.575, + 5.6000000000000005, + 5.625, + 5.65, + 5.675000000000001, + 5.7, + 5.7250000000000005, + 5.75, + 5.775, + 5.800000000000001, + 5.825, + 5.8500000000000005, + 5.875, + 5.9, + 5.925000000000001, + 5.95, + 5.9750000000000005, + 6.0, + 6.025, + 6.050000000000001, + 6.075, + 6.1000000000000005, + 6.125, + 6.15, + 6.175000000000001, + 6.2, + 6.2250000000000005, + 6.25, + 6.275, + 6.300000000000001, + 6.325, + 6.3500000000000005, + 6.375, + 6.4, + 6.425000000000001, + 6.45, + 6.4750000000000005, + 6.5, + 6.525, + 6.550000000000001, + 6.575, + 6.6000000000000005, + 6.625, + 6.65, + 6.675000000000001, + 6.7, + 6.7250000000000005, + 6.75, + 6.775, + 6.800000000000001, + 6.825, + 6.8500000000000005, + 6.875, + 6.9, + 6.925000000000001, + 6.95, + 6.9750000000000005, + 7.0, + 7.025, + 7.050000000000001, + 7.075, + 7.1000000000000005, + 7.125, + 7.15, + 7.175000000000001, + 7.2, + 7.2250000000000005, + 7.25, + 7.275, + 7.300000000000001, + 7.325, + 7.3500000000000005, + 7.375, + 7.4, + 7.425000000000001, + 7.45, + 7.4750000000000005, + 7.5, + 7.525, + 7.550000000000001, + 7.575, + 7.6000000000000005, + 7.625, + 7.65, + 7.675000000000001, + 7.7, + 7.7250000000000005, + 7.75, + 7.775, + 7.800000000000001, + 7.825, + 7.8500000000000005, + 7.875, + 7.9, + 7.925000000000001, + 7.95, + 7.9750000000000005, + 8.0, + 8.025, + 8.05, + 8.075000000000001, + 8.1, + 8.125, + 8.15, + 8.175, + 8.200000000000001, + 8.225, + 8.25, + 8.275, + 8.3, + 8.325000000000001, + 8.35, + 8.375, + 8.4, + 8.425, + 8.450000000000001, + 8.475, + 8.5, + 8.525, + 8.55, + 8.575000000000001, + 8.6, + 8.625, + 8.65, + 8.675, + 8.700000000000001, + 8.725, + 8.75, + 8.775, + 8.8, + 8.825000000000001, + 8.85, + 8.875, + 8.9, + 8.925, + 8.950000000000001, + 8.975, + 9.0, + 9.025, + 9.05, + 9.075000000000001, + 9.1, + 9.125, + 9.15, + 9.175, + 9.200000000000001, + 9.225, + 9.25, + 9.275, + 9.3, + 9.325000000000001, + 9.35, + 9.375, + 9.4, + 9.425, + 9.450000000000001, + 9.475, + 9.5, + 9.525, + 9.55, + 9.575000000000001, + 9.600000000000001, + 9.625, + 9.65, + 9.675, + 9.700000000000001, + 9.725000000000001, + 9.75, + 9.775, + 9.8, + 9.825000000000001, + 9.850000000000001, + 9.875, + 9.9, + 9.925, + 9.950000000000001, + 9.975000000000001, + 10.0 + ], + "system_name": "solid_1", + "values": [ + 0.4, + 0.3999991949523069, + 0.3999827978079431, + 0.39992701574539397, + 0.39972986433442464, + 0.39920346564700254, + 0.39831948483759394, + 0.39718296473572656, + 0.3957535758644459, + 0.3938261498696264, + 0.3911607716833759, + 0.3879296116317832, + 0.3845598485451259, + 0.3816808145720769, + 0.37924887957090453, + 0.3769944420046997, + 0.3747622978634665, + 0.3728171601767364, + 0.37193304256714255, + 0.3723962568803077, + 0.3741052792889865, + 0.3762500440713188, + 0.37847929735616065, + 0.3808020753163519, + 0.3835256711204817, + 0.38681688821598736, + 0.39015034380147806, + 0.3930361186964863, + 0.3951695518075019, + 0.3967387382756115, + 0.3979617917429358, + 0.3989517496083467, + 0.3996026460904186, + 0.39988549420489683, + 0.39997168170678665, + 0.3999969629116498, + 0.39999960344460544, + 0.4000003373754484, + 0.3999905761019585, + 0.3999530861898897, + 0.399822943046632, + 0.3994158941963486, + 0.39864406536482505, + 0.39759251677895363, + 0.39628626003866163, + 0.3945435683104889, + 0.39210663222921116, + 0.38902347321233016, + 0.3856296370474522, + 0.38260595045738965, + 0.38004732635842475, + 0.3777648027142694, + 0.375468728688396, + 0.37334289578374197, + 0.37206803115485076, + 0.3720891912790939, + 0.37350244521664977, + 0.37552434319159955, + 0.3777322634481404, + 0.3799657371347136, + 0.3825395350345915, + 0.38570639015079505, + 0.3890929084860907, + 0.39217441951735055, + 0.3945238796899128, + 0.396256347885854, + 0.3975726949329004, + 0.39866030337784003, + 0.39943692533072583, + 0.39982496561057557, + 0.39995439864747606, + 0.3999929497595365, + 0.39999989211628334, + 0.39999964201067884, + 0.39999533666932874, + 0.39996971042524593, + 0.39988535548394216, + 0.39958694711581627, + 0.39893432657886185, + 0.3979695195805254, + 0.39677228678855986, + 0.39519885370330526, + 0.39298721953076504, + 0.39008284184449044, + 0.38671850673130703, + 0.38357112107836017, + 0.3808711679304234, + 0.37854747060036437, + 0.3762128826575832, + 0.37395837652988095, + 0.3723401363332613, + 0.3719177350092225, + 0.37297811047883483, + 0.37482947031857017, + 0.37700140797563697, + 0.3791656844209184, + 0.3816016547462587, + 0.38461079617250055, + 0.3879992564108432, + 0.39124759833156625, + 0.39381498655965363, + 0.39572692707831225, + 0.3971510884330992, + 0.3983305600120634, + 0.399226719028441, + 0.3997372622535225, + 0.39992836961112543, + 0.39998476912518344, + 0.3999999690187658, + 0.3999997336641225, + 0.3999976857313169, + 0.3999806656814744, + 0.39992648427228883, + 0.39971807747393284, + 0.3991855874310403, + 0.3983147617673323, + 0.39721325236300714, + 0.39578923843694014, + 0.3938005897385554, + 0.3910996951688233, + 0.3878196748523689, + 0.38457898085934983, + 0.3817321942267066, + 0.37934268214810035, + 0.37697868763974157, + 0.3746430422974543, + 0.3727335192773999, + 0.3718868389416374, + 0.37254509999431495, + 0.37418121135018934, + 0.3762902243104276, + 0.3783959985571269, + 0.3807142945873634, + 0.3835434535292058, + 0.3868819368524915, + 0.3902553266918621, + 0.39304355384993706, + 0.39515035174442564, + 0.3966962789543194, + 0.39796597519394616, + 0.3989727508731461, + 0.3996146789226557, + 0.39988838071770016, + 0.3999726896663179, + 0.399997789926311, + 0.39999990453590767, + 0.3999996168498951, + 0.3999875230641161, + 0.39995230611899635, + 0.3998163491883645, + 0.39939899367871196, + 0.3986295573890957, + 0.3976182307599978, + 0.39632133476695586, + 0.3945385837595623, + 0.3920586923808145, + 0.3889124437720275, + 0.3856220206693434, + 0.3826338437961037, + 0.3801573454826358, + 0.37776316717698627, + 0.3753788397900628, + 0.3732365841645914, + 0.3719958254280571, + 0.3722181266703052, + 0.3735885797424847, + 0.37560688497292416, + 0.3776586628145118, + 0.3798770618952665, + 0.3825180903773427, + 0.38575761725260055, + 0.38920351970277084, + 0.392198481636193, + 0.39451870982869264, + 0.3962075733732228, + 0.3975690495192842, + 0.3986773663816564, + 0.39945519519293227, + 0.39982866066700756, + 0.3999541901582808, + 0.3999941975744748, + 0.39999949755462666, + 0.3999999999748252, + 0.3999929546887098, + 0.3999674412533632, + 0.3998839403140528, + 0.39957411998057724, + 0.3989127234349518, + 0.3979883735712294, + 0.39680503801355066, + 0.39520805043737917, + 0.3929504271706939, + 0.3899788041290508, + 0.38668854488874727, + 0.3835780841672649, + 0.38099280892523063, + 0.3785672484369483, + 0.37615631879967987, + 0.37383490677473985, + 0.37224255368677256, + 0.37200799822098346, + 0.37306057438446605, + 0.3749448864265301, + 0.3769479599126981, + 0.37908760242159106, + 0.3815476145664758, + 0.38464887330977904, + 0.3881114102061555, + 0.3912875563144921, + 0.39382274211537704, + 0.3956769566728013, + 0.3971394668655082, + 0.398339884889061, + 0.3992523583227946, + 0.39974462681901973, + 0.3999269196017904, + 0.39998723971308786, + 0.39999976878900606, + 0.3999994204428471, + 0.39999588368129085, + 0.39997690035985556, + 0.3999265872392995, + 0.3997094546423851, + 0.3991621734114726, + 0.39832628910608164, + 0.39724169234648654, + 0.39581399274142115, + 0.39377483958513065, + 0.3910053094193948, + 0.3877640567011611, + 0.38455910580057606, + 0.38184924180161933, + 0.37937956187549493, + 0.3769643881491172, + 0.37451686613946894, + 0.3726262346243001, + 0.37193417402592377, + 0.37262312153768223, + 0.3743188753859867, + 0.376256197069438, + 0.37833417556282023, + 0.3806286546242105, + 0.38356467794784055, + 0.38698597576995775, + 0.39031591600206383, + 0.393065883801823, + 0.395100731321105, + 0.39667707965999865, + 0.3979645817398373, + 0.39900283910253087, + 0.3996266606094417, + 0.3998874187425105, + 0.3999748818638124, + 0.39999823488991587, + 0.39999978659157576, + 0.3999977546109385, + 0.3999833317151711, + 0.3999533427185256, + 0.39980966758764314, + 0.39937513085551024, + 0.3986330822580644, + 0.39763762063085833, + 0.3963563135942404, + 0.39452897715638885, + 0.39198337037919884, + 0.3888411377383783, + 0.3855798732954825, + 0.3827364687463191, + 0.3802026517310678, + 0.37778315368419885, + 0.37525790622606003, + 0.37312402001753103, + 0.37199611835022156, + 0.3722874832280759, + 0.37374400278015224, + 0.3755973538161679, + 0.37761626809769433, + 0.379767610940101, + 0.38252084031722144, + 0.3858445410356096, + 0.38928197613613025, + 0.3922414538384853, + 0.39447691496246284, + 0.39618046253307354, + 0.39755450475715315, + 0.3987083926115527, + 0.3994694471520893, + 0.399829318192222, + 0.39995670485602713, + 0.3999941794723096, + 0.3999993363936881, + 0.3999995720999247, + 0.3999884771047233, + 0.3999679665771695, + 0.3998807705043127, + 0.39955354642434976, + 0.39890861860212956, + 0.3979989820128346, + 0.3968434115878967, + 0.3952080375143291, + 0.39289600305207417, + 0.38989847055980253, + 0.386629629416878, + 0.3836582726054961, + 0.3810470715493183, + 0.3786169346635251, + 0.37604742397615865, + 0.37372593444427915, + 0.3721950304881544, + 0.3720639516220303, + 0.3732213282041088, + 0.37496813410191876, + 0.37693078816606346, + 0.3789628119364789, + 0.3815288286751518, + 0.3847070807628841, + 0.3882007653415447, + 0.39134528072211716, + 0.3937956484494289, + 0.39564821288304236, + 0.39711363828104723, + 0.39837031852114185, + 0.3992705828002206, + 0.39974817432628224, + 0.3999289350860375, + 0.3999873375089119, + 0.3999985370614585, + 0.3999996026815646, + 0.3999929174404081, + 0.39997576861193984, + 0.3999254268804632, + 0.39969562068113074, + 0.3991532820112384, + 0.39832802407170315, + 0.39728322751853223, + 0.39582265462333754, + 0.3937393184044991, + 0.3909218307872019, + 0.3876925284135763, + 0.38461112221679045, + 0.38190682284296534, + 0.37945874930360873, + 0.37687430136954136, + 0.37441450110698843, + 0.3725316200306596, + 0.371968811612631, + 0.37277243078567396, + 0.3743698256590537, + 0.376271289322806, + 0.3782098331974815, + 0.3805963004979912, + 0.3835919922646787, + 0.387085929369493, + 0.39038669229438155, + 0.3930517999454157, + 0.3950708065196198, + 0.39663994190780466, + 0.3979894448721912, + 0.3990236358416943, + 0.3996372411683999, + 0.3998890233186563, + 0.39997488725950586, + 0.3999976135292783, + 0.3999996625955702, + 0.39999554394880615, + 0.39998076974222024, + 0.39995142075417234, + 0.3998011507856073, + 0.3993635268020642, + 0.3986261374004436, + 0.3976765156883616, + 0.39637373006329646, + 0.3945128905738657, + 0.39190148278387166, + 0.38876026173415273, + 0.38559704319959026, + 0.3827895815515019, + 0.3803015406289117, + 0.377724639466869, + 0.3751745602546208, + 0.37299692707932414, + 0.3720108134601388, + 0.37241462410983095, + 0.373818117687809, + 0.3756338009448779, + 0.37749742084634214, + 0.37972043044102655, + 0.3825128745584508, + 0.385948282899876, + 0.3893674823992209, + 0.3922500051735576, + 0.39444841770907246, + 0.39613470513949656, + 0.39757023919908757, + 0.39872793952393315, + 0.3994871334786665, + 0.3998320635645742, + 0.3999557646216311, + 0.3999935989420282, + 0.3999999921758742, + 0.3999981012693515 + ], + "datatype": "Float64", + "type": "series", + "novalues": 401 + } +} diff --git a/validation/oscillating_beam_2d_positions_20.json b/validation/oscillating_beam_2d_positions_20.json new file mode 100644 index 000000000..e837d79c3 --- /dev/null +++ b/validation/oscillating_beam_2d_positions_20.json @@ -0,0 +1,1631 @@ +{ + "meta": { + "julia_version": "1.9.4", + "solver_version": "8a7da404f6e05076a7c4eaaa21244ad7ffd49aa7", + "solver_name": "TrixiParticles.jl" + }, + "pos_x_243_solid_1": { + "time": [ + 0.0, + 0.025, + 0.05, + 0.07500000000000001, + 0.1, + 0.125, + 0.15000000000000002, + 0.17500000000000002, + 0.2, + 0.225, + 0.25, + 0.275, + 0.30000000000000004, + 0.325, + 0.35000000000000003, + 0.375, + 0.4, + 0.42500000000000004, + 0.45, + 0.47500000000000003, + 0.5, + 0.525, + 0.55, + 0.5750000000000001, + 0.6000000000000001, + 0.625, + 0.65, + 0.675, + 0.7000000000000001, + 0.7250000000000001, + 0.75, + 0.775, + 0.8, + 0.8250000000000001, + 0.8500000000000001, + 0.875, + 0.9, + 0.925, + 0.9500000000000001, + 0.9750000000000001, + 1.0, + 1.0250000000000001, + 1.05, + 1.075, + 1.1, + 1.125, + 1.1500000000000001, + 1.175, + 1.2000000000000002, + 1.225, + 1.25, + 1.2750000000000001, + 1.3, + 1.3250000000000002, + 1.35, + 1.375, + 1.4000000000000001, + 1.425, + 1.4500000000000002, + 1.475, + 1.5, + 1.5250000000000001, + 1.55, + 1.5750000000000002, + 1.6, + 1.625, + 1.6500000000000001, + 1.675, + 1.7000000000000002, + 1.725, + 1.75, + 1.7750000000000001, + 1.8, + 1.8250000000000002, + 1.85, + 1.875, + 1.9000000000000001, + 1.925, + 1.9500000000000002, + 1.975, + 2.0, + 2.025, + 2.0500000000000003, + 2.075, + 2.1, + 2.125, + 2.15, + 2.1750000000000003, + 2.2, + 2.225, + 2.25, + 2.275, + 2.3000000000000003, + 2.325, + 2.35, + 2.375, + 2.4000000000000004, + 2.4250000000000003, + 2.45, + 2.475, + 2.5, + 2.5250000000000004, + 2.5500000000000003, + 2.575, + 2.6, + 2.625, + 2.6500000000000004, + 2.6750000000000003, + 2.7, + 2.725, + 2.75, + 2.7750000000000004, + 2.8000000000000003, + 2.825, + 2.85, + 2.875, + 2.9000000000000004, + 2.9250000000000003, + 2.95, + 2.975, + 3.0, + 3.0250000000000004, + 3.0500000000000003, + 3.075, + 3.1, + 3.125, + 3.1500000000000004, + 3.1750000000000003, + 3.2, + 3.225, + 3.25, + 3.2750000000000004, + 3.3000000000000003, + 3.325, + 3.35, + 3.375, + 3.4000000000000004, + 3.4250000000000003, + 3.45, + 3.475, + 3.5, + 3.5250000000000004, + 3.5500000000000003, + 3.575, + 3.6, + 3.625, + 3.6500000000000004, + 3.6750000000000003, + 3.7, + 3.725, + 3.75, + 3.7750000000000004, + 3.8000000000000003, + 3.825, + 3.85, + 3.875, + 3.9000000000000004, + 3.9250000000000003, + 3.95, + 3.975, + 4.0, + 4.025, + 4.05, + 4.075, + 4.1000000000000005, + 4.125, + 4.15, + 4.175, + 4.2, + 4.2250000000000005, + 4.25, + 4.275, + 4.3, + 4.325, + 4.3500000000000005, + 4.375, + 4.4, + 4.425, + 4.45, + 4.4750000000000005, + 4.5, + 4.525, + 4.55, + 4.575, + 4.6000000000000005, + 4.625, + 4.65, + 4.675, + 4.7, + 4.7250000000000005, + 4.75, + 4.775, + 4.800000000000001, + 4.825, + 4.8500000000000005, + 4.875, + 4.9, + 4.925000000000001, + 4.95, + 4.9750000000000005, + 5.0, + 5.025, + 5.050000000000001, + 5.075, + 5.1000000000000005, + 5.125, + 5.15, + 5.175000000000001, + 5.2, + 5.2250000000000005, + 5.25, + 5.275, + 5.300000000000001, + 5.325, + 5.3500000000000005, + 5.375, + 5.4, + 5.425000000000001, + 5.45, + 5.4750000000000005, + 5.5, + 5.525, + 5.550000000000001, + 5.575, + 5.6000000000000005, + 5.625, + 5.65, + 5.675000000000001, + 5.7, + 5.7250000000000005, + 5.75, + 5.775, + 5.800000000000001, + 5.825, + 5.8500000000000005, + 5.875, + 5.9, + 5.925000000000001, + 5.95, + 5.9750000000000005, + 6.0, + 6.025, + 6.050000000000001, + 6.075, + 6.1000000000000005, + 6.125, + 6.15, + 6.175000000000001, + 6.2, + 6.2250000000000005, + 6.25, + 6.275, + 6.300000000000001, + 6.325, + 6.3500000000000005, + 6.375, + 6.4, + 6.425000000000001, + 6.45, + 6.4750000000000005, + 6.5, + 6.525, + 6.550000000000001, + 6.575, + 6.6000000000000005, + 6.625, + 6.65, + 6.675000000000001, + 6.7, + 6.7250000000000005, + 6.75, + 6.775, + 6.800000000000001, + 6.825, + 6.8500000000000005, + 6.875, + 6.9, + 6.925000000000001, + 6.95, + 6.9750000000000005, + 7.0, + 7.025, + 7.050000000000001, + 7.075, + 7.1000000000000005, + 7.125, + 7.15, + 7.175000000000001, + 7.2, + 7.2250000000000005, + 7.25, + 7.275, + 7.300000000000001, + 7.325, + 7.3500000000000005, + 7.375, + 7.4, + 7.425000000000001, + 7.45, + 7.4750000000000005, + 7.5, + 7.525, + 7.550000000000001, + 7.575, + 7.6000000000000005, + 7.625, + 7.65, + 7.675000000000001, + 7.7, + 7.7250000000000005, + 7.75, + 7.775, + 7.800000000000001, + 7.825, + 7.8500000000000005, + 7.875, + 7.9, + 7.925000000000001, + 7.95, + 7.9750000000000005, + 8.0, + 8.025, + 8.05, + 8.075000000000001, + 8.1, + 8.125, + 8.15, + 8.175, + 8.200000000000001, + 8.225, + 8.25, + 8.275, + 8.3, + 8.325000000000001, + 8.35, + 8.375, + 8.4, + 8.425, + 8.450000000000001, + 8.475, + 8.5, + 8.525, + 8.55, + 8.575000000000001, + 8.6, + 8.625, + 8.65, + 8.675, + 8.700000000000001, + 8.725, + 8.75, + 8.775, + 8.8, + 8.825000000000001, + 8.85, + 8.875, + 8.9, + 8.925, + 8.950000000000001, + 8.975, + 9.0, + 9.025, + 9.05, + 9.075000000000001, + 9.1, + 9.125, + 9.15, + 9.175, + 9.200000000000001, + 9.225, + 9.25, + 9.275, + 9.3, + 9.325000000000001, + 9.35, + 9.375, + 9.4, + 9.425, + 9.450000000000001, + 9.475, + 9.5, + 9.525, + 9.55, + 9.575000000000001, + 9.600000000000001, + 9.625, + 9.65, + 9.675, + 9.700000000000001, + 9.725000000000001, + 9.75, + 9.775, + 9.8, + 9.825000000000001, + 9.850000000000001, + 9.875, + 9.9, + 9.925, + 9.950000000000001, + 9.975000000000001, + 10.0 + ], + "system_name": "solid_1", + "values": [ + 0.4, + 0.39999922313174524, + 0.3999830058506265, + 0.39992734841177335, + 0.39973137469687664, + 0.39921210675287666, + 0.39834960694652805, + 0.3972411397232045, + 0.39583985194321986, + 0.39394398202613307, + 0.3913336936493223, + 0.38819790872502086, + 0.38498463988637854, + 0.3822583620525521, + 0.3799474241120926, + 0.3778000643650931, + 0.3756748331385639, + 0.37390617588746117, + 0.3732390765945044, + 0.3738730578293041, + 0.37562987784813745, + 0.3777329255427314, + 0.3798885101819791, + 0.3821779248530956, + 0.38490148861772056, + 0.3881068779124885, + 0.3912551055212245, + 0.3938816569615333, + 0.395789956108374, + 0.3972070558896628, + 0.3983197397386531, + 0.39919292525779926, + 0.3997223126936333, + 0.39992513394255585, + 0.39998171141616057, + 0.3999986831600564, + 0.40000099028570646, + 0.39999908623608305, + 0.399982703075286, + 0.39993126982865396, + 0.3997406687056006, + 0.3992290447383168, + 0.3983795810533355, + 0.3972766269768222, + 0.395888822178926, + 0.394004224849817, + 0.3914156958979307, + 0.38828513042610846, + 0.38506710543843725, + 0.3823368427085171, + 0.3800102782998679, + 0.37786681547698214, + 0.3757209536013012, + 0.37394655839225016, + 0.3732365194465692, + 0.3738400404739971, + 0.3755816955503169, + 0.37766825036814283, + 0.3798276824012987, + 0.3820972861745876, + 0.38482252002594713, + 0.38801511687097096, + 0.39117474152297826, + 0.3938180273431007, + 0.3957414339168781, + 0.39717062318317703, + 0.39828920389882605, + 0.39917592111418865, + 0.39971243987439886, + 0.39992104428784825, + 0.39998195819418286, + 0.3999990430752392, + 0.3999998630514736, + 0.39999937999378565, + 0.3999841655931981, + 0.39993336292515586, + 0.3997486231292376, + 0.39924810226657104, + 0.39840846557733794, + 0.39730946610394086, + 0.395938725443635, + 0.3940643958508457, + 0.3914968370090927, + 0.38837216158757065, + 0.38515590272111305, + 0.38241358051881763, + 0.3800727503147081, + 0.3779334812172001, + 0.3757654266822212, + 0.3739864585558255, + 0.37323135918319206, + 0.3738151548143337, + 0.3755314411162085, + 0.37760485565530816, + 0.37976563317662304, + 0.38201722478003514, + 0.38474174094657554, + 0.3879210924897971, + 0.3910983693740465, + 0.3937534442377447, + 0.3956925605806249, + 0.39713440489540264, + 0.3982599112195329, + 0.39915606286372185, + 0.39970236473352094, + 0.39991886795200515, + 0.39998067617598504, + 0.399998241117536, + 0.4000006947978478, + 0.3999995271162026, + 0.39998385435732653, + 0.39993679043569264, + 0.39975740994500436, + 0.39926548544910134, + 0.3984368602075993, + 0.3973454885274939, + 0.3959870412872358, + 0.3941233784213554, + 0.3915792942829022, + 0.3884565875121852, + 0.385242942672339, + 0.38248787644316845, + 0.38013985760896546, + 0.3779980620590044, + 0.37581204544221847, + 0.3740287187667766, + 0.3732254206059701, + 0.3737894871354321, + 0.3754782743336024, + 0.3775463100163957, + 0.37970338424679556, + 0.38193864025114016, + 0.384663778845614, + 0.38782743569379363, + 0.3910195320701481, + 0.3936865666930475, + 0.39564558487594387, + 0.3970958517360307, + 0.39822981344865055, + 0.39913797781900673, + 0.39969211426055873, + 0.39991475384965347, + 0.3999807152757958, + 0.399998783901868, + 0.399999496872246, + 0.39999959052927064, + 0.399985499432434, + 0.3999385690491235, + 0.39976460882059023, + 0.3992849391459834, + 0.3984640183870081, + 0.3973790461953808, + 0.39603504271954565, + 0.3941831240232599, + 0.39166013907462655, + 0.38854056737694265, + 0.3853354262172293, + 0.38255969410187757, + 0.38020747816380157, + 0.3780601346108244, + 0.3758622916740137, + 0.37406926301655796, + 0.37322079726547874, + 0.37377100938061025, + 0.3754239972608905, + 0.377488179143774, + 0.3796372802583085, + 0.38186305280200783, + 0.3845813701010374, + 0.3877332804808308, + 0.3909431970636759, + 0.3936195160709758, + 0.3955969586378129, + 0.3970572728134372, + 0.3982012063659349, + 0.3991170041264177, + 0.39968142373671983, + 0.3999126257836015, + 0.3999794844684719, + 0.39999787224983446, + 0.40000019328954595, + 0.4000000560093844, + 0.39998529771789787, + 0.3999412337931668, + 0.3997730088484052, + 0.3993025089027561, + 0.3984902725991518, + 0.39741580481491195, + 0.3960814705686613, + 0.39424177936116467, + 0.39174110143658114, + 0.3886247444255008, + 0.3854256255262936, + 0.3826313600527793, + 0.38028081646679185, + 0.3781208347320337, + 0.3759140033146896, + 0.3741093979453999, + 0.3732164678140947, + 0.3737491769750971, + 0.37536697800054797, + 0.37743536739832223, + 0.37956981938467593, + 0.38178945598026165, + 0.3844993998816941, + 0.3876406687516437, + 0.3908639251248579, + 0.3935508765667236, + 0.3955508991427451, + 0.3970172412822973, + 0.3981722484973221, + 0.3990971844487917, + 0.39967125450854335, + 0.3999084003299183, + 0.39997895773406783, + 0.39999860211903937, + 0.3999991844855652, + 0.39999992048006855, + 0.39998712852561913, + 0.3999428036571143, + 0.3997797030448152, + 0.3993218484061916, + 0.3985157577434149, + 0.3974506656771296, + 0.39612710117084554, + 0.394303157348907, + 0.3918195462535474, + 0.38870981347064515, + 0.3855182660058589, + 0.38270101525713784, + 0.38035225640995246, + 0.37817828643219986, + 0.3759706317071803, + 0.37414539852582257, + 0.37321713999088524, + 0.37373019417236786, + 0.37531151569493215, + 0.37738102123075784, + 0.3795002132686397, + 0.38171978644106974, + 0.38441452391220726, + 0.38754959798331723, + 0.39078598592497343, + 0.3934830899913535, + 0.3955018945546022, + 0.3969766654025849, + 0.3981443365061794, + 0.39907482010027684, + 0.39966031651987444, + 0.3999061450575903, + 0.3999776306541956, + 0.3999975326243664, + 0.3999997916527617, + 0.4000004637024209, + 0.3999869210057117, + 0.39994483988426316, + 0.3997881025721677, + 0.3993394635836355, + 0.3985405553474477, + 0.3974882341688631, + 0.396171279520941, + 0.3943624319428618, + 0.3918968070046781, + 0.3887954384819591, + 0.38560776177093575, + 0.3827719662097184, + 0.3804286993237685, + 0.37823528482557606, + 0.37602935143806787, + 0.37417942387099057, + 0.37322137265055394, + 0.3737075054874054, + 0.375256530051173, + 0.3773307116712913, + 0.3794302918286138, + 0.3816513059441848, + 0.3843267404839973, + 0.38746104391222363, + 0.39070351824406796, + 0.39341444647393575, + 0.3954543524015748, + 0.3969361934863863, + 0.39811507361005083, + 0.3990533122713997, + 0.39965037230949296, + 0.39990178784010116, + 0.39997659997290086, + 0.39999847142231404, + 0.39999914751253024, + 0.4000000363958431, + 0.3999886185236712, + 0.3999464197418224, + 0.3997944382604939, + 0.399357582757973, + 0.39856532999641947, + 0.39752342955706155, + 0.3962145814988402, + 0.3944252004755847, + 0.3919721166306899, + 0.38888322246764256, + 0.3856969218306526, + 0.38284460947528015, + 0.38050083853762773, + 0.3782917129604623, + 0.3760921463404868, + 0.3742118200906457, + 0.3732298753901701, + 0.3736841234190592, + 0.3752045082630517, + 0.3772754009372124, + 0.3793589058167465, + 0.38158537000338627, + 0.38423802787121186, + 0.38737348107472114, + 0.39062201536535723, + 0.3933477591484908, + 0.3954037786502627, + 0.3968954723201139, + 0.398087220690303, + 0.3990301202261352, + 0.39963925067326855, + 0.39989904955982625, + 0.3999751893357675, + 0.3999971728737142, + 0.39999970163973964, + 0.400000722124868, + 0.39998833622070384, + 0.3999480997873665, + 0.39980288987418955, + 0.3993743665940633, + 0.3985894314581668, + 0.3975608357805535, + 0.39625724121133027, + 0.3944854041317409, + 0.39204609278873864, + 0.3889735494248671, + 0.3857825877197183, + 0.38291969520163255, + 0.38057539583932376, + 0.37834845041000104, + 0.3761527990173143, + 0.37424103281828675, + 0.3732429743665659, + 0.37365566473767725, + 0.3751563238238245, + 0.3772225598438629, + 0.37929116725148876, + 0.3815179698648137, + 0.38414804851155865, + 0.38728862706063283, + 0.39053639532633183, + 0.39328061840910605, + 0.39535393899851395, + 0.396855825370821, + 0.3980564494837385, + 0.39900783465420603, + 0.399629320003006, + 0.39989441088922, + 0.399973872067948, + 0.3999980866585759, + 0.39999931156664653, + 0.39999992914559246, + 0.3999896394763925, + 0.3999498758821149, + 0.3998091380968496, + 0.3993911880901651, + 0.3986149442555601, + 0.3975953176917504, + 0.3962998506807513, + 0.3945478367804819, + 0.392118711372182, + 0.38906310951884665, + 0.38586690996210304, + 0.3829967305966438, + 0.3806444698773455, + 0.3784077394457831, + 0.37621679337787856, + 0.3742725658609008, + 0.37325843514640383, + 0.3736272870482897, + 0.37511114931625306, + 0.37716438655289386, + 0.3792233708530616, + 0.3814524064633134, + 0.38405873499040055, + 0.38720352792299717, + 0.39045065577447585, + 0.3932151081141167, + 0.395300382543256, + 0.39681575357513466, + 0.39802685053997877, + 0.3989846754464285, + 0.399617656301111, + 0.39989106907415833, + 0.399972827504617, + 0.39999685846576194, + 0.3999998387416693, + 0.40000079931247107, + 0.3999891695552114, + 0.39995126164902994, + 0.3998173319850185 + ], + "datatype": "Float64", + "type": "series", + "novalues": 401 + }, + "pos_y_243_solid_1": { + "time": [ + 0.0, + 0.025, + 0.05, + 0.07500000000000001, + 0.1, + 0.125, + 0.15000000000000002, + 0.17500000000000002, + 0.2, + 0.225, + 0.25, + 0.275, + 0.30000000000000004, + 0.325, + 0.35000000000000003, + 0.375, + 0.4, + 0.42500000000000004, + 0.45, + 0.47500000000000003, + 0.5, + 0.525, + 0.55, + 0.5750000000000001, + 0.6000000000000001, + 0.625, + 0.65, + 0.675, + 0.7000000000000001, + 0.7250000000000001, + 0.75, + 0.775, + 0.8, + 0.8250000000000001, + 0.8500000000000001, + 0.875, + 0.9, + 0.925, + 0.9500000000000001, + 0.9750000000000001, + 1.0, + 1.0250000000000001, + 1.05, + 1.075, + 1.1, + 1.125, + 1.1500000000000001, + 1.175, + 1.2000000000000002, + 1.225, + 1.25, + 1.2750000000000001, + 1.3, + 1.3250000000000002, + 1.35, + 1.375, + 1.4000000000000001, + 1.425, + 1.4500000000000002, + 1.475, + 1.5, + 1.5250000000000001, + 1.55, + 1.5750000000000002, + 1.6, + 1.625, + 1.6500000000000001, + 1.675, + 1.7000000000000002, + 1.725, + 1.75, + 1.7750000000000001, + 1.8, + 1.8250000000000002, + 1.85, + 1.875, + 1.9000000000000001, + 1.925, + 1.9500000000000002, + 1.975, + 2.0, + 2.025, + 2.0500000000000003, + 2.075, + 2.1, + 2.125, + 2.15, + 2.1750000000000003, + 2.2, + 2.225, + 2.25, + 2.275, + 2.3000000000000003, + 2.325, + 2.35, + 2.375, + 2.4000000000000004, + 2.4250000000000003, + 2.45, + 2.475, + 2.5, + 2.5250000000000004, + 2.5500000000000003, + 2.575, + 2.6, + 2.625, + 2.6500000000000004, + 2.6750000000000003, + 2.7, + 2.725, + 2.75, + 2.7750000000000004, + 2.8000000000000003, + 2.825, + 2.85, + 2.875, + 2.9000000000000004, + 2.9250000000000003, + 2.95, + 2.975, + 3.0, + 3.0250000000000004, + 3.0500000000000003, + 3.075, + 3.1, + 3.125, + 3.1500000000000004, + 3.1750000000000003, + 3.2, + 3.225, + 3.25, + 3.2750000000000004, + 3.3000000000000003, + 3.325, + 3.35, + 3.375, + 3.4000000000000004, + 3.4250000000000003, + 3.45, + 3.475, + 3.5, + 3.5250000000000004, + 3.5500000000000003, + 3.575, + 3.6, + 3.625, + 3.6500000000000004, + 3.6750000000000003, + 3.7, + 3.725, + 3.75, + 3.7750000000000004, + 3.8000000000000003, + 3.825, + 3.85, + 3.875, + 3.9000000000000004, + 3.9250000000000003, + 3.95, + 3.975, + 4.0, + 4.025, + 4.05, + 4.075, + 4.1000000000000005, + 4.125, + 4.15, + 4.175, + 4.2, + 4.2250000000000005, + 4.25, + 4.275, + 4.3, + 4.325, + 4.3500000000000005, + 4.375, + 4.4, + 4.425, + 4.45, + 4.4750000000000005, + 4.5, + 4.525, + 4.55, + 4.575, + 4.6000000000000005, + 4.625, + 4.65, + 4.675, + 4.7, + 4.7250000000000005, + 4.75, + 4.775, + 4.800000000000001, + 4.825, + 4.8500000000000005, + 4.875, + 4.9, + 4.925000000000001, + 4.95, + 4.9750000000000005, + 5.0, + 5.025, + 5.050000000000001, + 5.075, + 5.1000000000000005, + 5.125, + 5.15, + 5.175000000000001, + 5.2, + 5.2250000000000005, + 5.25, + 5.275, + 5.300000000000001, + 5.325, + 5.3500000000000005, + 5.375, + 5.4, + 5.425000000000001, + 5.45, + 5.4750000000000005, + 5.5, + 5.525, + 5.550000000000001, + 5.575, + 5.6000000000000005, + 5.625, + 5.65, + 5.675000000000001, + 5.7, + 5.7250000000000005, + 5.75, + 5.775, + 5.800000000000001, + 5.825, + 5.8500000000000005, + 5.875, + 5.9, + 5.925000000000001, + 5.95, + 5.9750000000000005, + 6.0, + 6.025, + 6.050000000000001, + 6.075, + 6.1000000000000005, + 6.125, + 6.15, + 6.175000000000001, + 6.2, + 6.2250000000000005, + 6.25, + 6.275, + 6.300000000000001, + 6.325, + 6.3500000000000005, + 6.375, + 6.4, + 6.425000000000001, + 6.45, + 6.4750000000000005, + 6.5, + 6.525, + 6.550000000000001, + 6.575, + 6.6000000000000005, + 6.625, + 6.65, + 6.675000000000001, + 6.7, + 6.7250000000000005, + 6.75, + 6.775, + 6.800000000000001, + 6.825, + 6.8500000000000005, + 6.875, + 6.9, + 6.925000000000001, + 6.95, + 6.9750000000000005, + 7.0, + 7.025, + 7.050000000000001, + 7.075, + 7.1000000000000005, + 7.125, + 7.15, + 7.175000000000001, + 7.2, + 7.2250000000000005, + 7.25, + 7.275, + 7.300000000000001, + 7.325, + 7.3500000000000005, + 7.375, + 7.4, + 7.425000000000001, + 7.45, + 7.4750000000000005, + 7.5, + 7.525, + 7.550000000000001, + 7.575, + 7.6000000000000005, + 7.625, + 7.65, + 7.675000000000001, + 7.7, + 7.7250000000000005, + 7.75, + 7.775, + 7.800000000000001, + 7.825, + 7.8500000000000005, + 7.875, + 7.9, + 7.925000000000001, + 7.95, + 7.9750000000000005, + 8.0, + 8.025, + 8.05, + 8.075000000000001, + 8.1, + 8.125, + 8.15, + 8.175, + 8.200000000000001, + 8.225, + 8.25, + 8.275, + 8.3, + 8.325000000000001, + 8.35, + 8.375, + 8.4, + 8.425, + 8.450000000000001, + 8.475, + 8.5, + 8.525, + 8.55, + 8.575000000000001, + 8.6, + 8.625, + 8.65, + 8.675, + 8.700000000000001, + 8.725, + 8.75, + 8.775, + 8.8, + 8.825000000000001, + 8.85, + 8.875, + 8.9, + 8.925, + 8.950000000000001, + 8.975, + 9.0, + 9.025, + 9.05, + 9.075000000000001, + 9.1, + 9.125, + 9.15, + 9.175, + 9.200000000000001, + 9.225, + 9.25, + 9.275, + 9.3, + 9.325000000000001, + 9.35, + 9.375, + 9.4, + 9.425, + 9.450000000000001, + 9.475, + 9.5, + 9.525, + 9.55, + 9.575000000000001, + 9.600000000000001, + 9.625, + 9.65, + 9.675, + 9.700000000000001, + 9.725000000000001, + 9.75, + 9.775, + 9.8, + 9.825000000000001, + 9.850000000000001, + 9.875, + 9.9, + 9.925, + 9.950000000000001, + 9.975000000000001, + 10.0 + ], + "system_name": "solid_1", + "values": [ + 0.01, + 0.009365928696740196, + 0.007578812055150689, + 0.0032635102358403657, + -0.0035105148056193236, + -0.012332913485388425, + -0.021847333423128668, + -0.03134434527094669, + -0.04116248775635042, + -0.051580901414522, + -0.06310402288286264, + -0.07432123808687655, + -0.08460137157714812, + -0.09284011713554671, + -0.09964558650172847, + -0.10533389081830603, + -0.11014611498421778, + -0.11368981410055008, + -0.11484504212613562, + -0.11376117971030562, + -0.11023189044496495, + -0.10550927539442732, + -0.09979560633038902, + -0.09308793823652567, + -0.08484599123116887, + -0.07463511981539364, + -0.0634183704844901, + -0.05188181639045687, + -0.04146846290132567, + -0.03159902109888222, + -0.02214746693044051, + -0.012562981562357524, + -0.003759935643828417, + 0.003130369554564471, + 0.007465099269808771, + 0.009344638525821219, + 0.009995264983192502, + 0.00940490493928957, + 0.007679559151202838, + 0.0034009512153459504, + -0.0032744112157728988, + -0.01210607895896233, + -0.021547782988200457, + -0.03109277836774797, + -0.040842648821290385, + -0.0512888858177466, + -0.06277444129504613, + -0.07402449886462067, + -0.08434906654639421, + -0.0926047090803172, + -0.0994877333514123, + -0.10515378410636049, + -0.11005725531976679, + -0.11360204011480105, + -0.11485565366449813, + -0.11382397599214407, + -0.11033223055308422, + -0.10567978211887082, + -0.09994766466547957, + -0.09333234379038974, + -0.0850788416899797, + -0.07495550934762558, + -0.06372456195633847, + -0.05219895423212185, + -0.04177018405400104, + -0.03186453391725626, + -0.022439572564400087, + -0.012790619596619231, + -0.004003911686604645, + 0.0030031962894613833, + 0.007342968392250792, + 0.009325600387438389, + 0.009972701447312618, + 0.009448894927115328, + 0.007768038066838217, + 0.0035499442661007527, + -0.003041820664194895, + -0.011871662614795006, + -0.021251981717008046, + -0.030848511980951735, + -0.04052362690396986, + -0.05100815223686337, + -0.06243304852628807, + -0.07373237419320189, + -0.08407640029495941, + -0.09237516496424308, + -0.09932341038244417, + -0.10498025010178101, + -0.10997655755478677, + -0.11350907350188764, + -0.11487450351144739, + -0.11386612902795319, + -0.11043984888685471, + -0.10583643292940635, + -0.10010901228565235, + -0.09357901037701741, + -0.08531284505008147, + -0.07528330995953104, + -0.06401533549195976, + -0.052521551711989405, + -0.04205183642065789, + -0.032142519808629026, + -0.022723174606742436, + -0.013036023011841735, + -0.004249585975430617, + 0.0028685540862905087, + 0.007221195518901308, + 0.009315201351905954, + 0.00994602674838918, + 0.0095037941648076, + 0.007839021263059163, + 0.003705301994312723, + -0.0028284075902833663, + -0.011626695539472412, + -0.020962246675519963, + -0.030590940048698605, + -0.040202768410857445, + -0.05072680864651129, + -0.06208940278391552, + -0.07345450636014556, + -0.08379757401614174, + -0.09215873577721055, + -0.09914452383757381, + -0.10481019928564747, + -0.10988530691792674, + -0.11341454872189094, + -0.11489983909794747, + -0.1139036169749939, + -0.11056017416503074, + -0.10597976779297948, + -0.10027189334650356, + -0.09381233277471684, + -0.0855435372645362, + -0.07561309945527582, + -0.06430582133114, + -0.05286035341034022, + -0.042327315476261056, + -0.032431481151097036, + -0.02299294899726653, + -0.013286157507343542, + -0.004485646903796485, + 0.002726608783797712, + 0.007095367330559111, + 0.009300580691873861, + 0.00991014600654674, + 0.00956616410684759, + 0.007902834178608004, + 0.0038764387127704966, + -0.002624131843056186, + -0.01137050883099364, + -0.02068709652977807, + -0.030332221252631523, + -0.03989283398488101, + -0.05044693099733895, + -0.061740331480673386, + -0.07317792064050471, + -0.08350215304521412, + -0.09195216321823134, + -0.09895405411199362, + -0.10465585824730778, + -0.10978622578704895, + -0.11332240999634334, + -0.11492113100113573, + -0.11392671556244145, + -0.11068662408713748, + -0.10611110642315735, + -0.10045255019575755, + -0.09403750545284183, + -0.08578637840728894, + -0.07593719468252298, + -0.06459194053674529, + -0.05319795295236964, + -0.0425940556184487, + -0.032731058060673585, + -0.023255147111461014, + -0.013554343324796509, + -0.004713063907556861, + 0.002574280851405482, + 0.006982258858633324, + 0.00928477534584743, + 0.009880074095544509, + 0.009626227028712093, + 0.007955098758317031, + 0.004044811026641059, + -0.0024354617711380587, + -0.011104789770041265, + -0.020419125982377852, + -0.0300555213366788, + -0.03958872429707205, + -0.050160245303754195, + -0.06140001347839811, + -0.07290521988372417, + -0.08320615212227851, + -0.09174981113578187, + -0.09874623138228932, + -0.1045051130531828, + -0.10967361825803297, + -0.11323796604338686, + -0.1149436466508021, + -0.11395414009458915, + -0.11082137109510536, + -0.1062283704153912, + -0.10063827440843044, + -0.09424470670241314, + -0.08603510285998744, + -0.07625627075885157, + -0.06488683165972599, + -0.05354165515459224, + -0.042856407910410434, + -0.03303571080370796, + -0.02349965825081472, + -0.013829983560856842, + -0.004928326681916836, + 0.0024026757169487065, + 0.0068711388611426205, + 0.009251949732898595, + 0.009852018014164245, + 0.009686642456122442, + 0.008010409398681504, + 0.004222500891025773, + -0.0022546664945535468, + -0.010830547554266615, + -0.020169493678259983, + -0.029769855732213888, + -0.03929860899938737, + -0.049858953415710006, + -0.061063518302234825, + -0.07262271464865694, + -0.08290794778001265, + -0.09155529400355063, + -0.09853498888022826, + -0.1043705956146299, + -0.10954705326434398, + -0.11316300950500373, + -0.11494855805927655, + -0.11398083226727468, + -0.1109540586414147, + -0.1063438927157531, + -0.1008360983520352, + -0.09444191271197216, + -0.08629374759127077, + -0.0765575874243933, + -0.0651851261156363, + -0.053876386181839445, + -0.0431241667260155, + -0.03334687794003133, + -0.023747613100300134, + -0.014117237358878884, + -0.005135331324846713, + 0.002222779539720869, + 0.006775423403026574, + 0.009211394406114093, + 0.00983317986239451, + 0.009735032055989596, + 0.008064517730863642, + 0.004393435260819854, + -0.0020772652066797506, + -0.010549808282264095, + -0.0199221676316143, + -0.029471060030065277, + -0.039019491712823165, + -0.049551158248448045, + -0.06074290330804336, + -0.07233749461812086, + -0.08261491454465135, + -0.09135550334207505, + -0.09831197126571133, + -0.1042380914311384, + -0.10940656071345095, + -0.11310117988436234, + -0.1149455514092575, + -0.11401692570980033, + -0.11108180260619067, + -0.1064521993105826, + -0.10103502370675872, + -0.09462514362069198, + -0.08656718354478855, + -0.07684972014888648, + -0.06550183443994649, + -0.05420459192184178, + -0.043398442865028426, + -0.03364961805913178, + -0.023989093066299535, + -0.014406339691122615, + -0.00533530825775976, + 0.0020265151251076517, + 0.006685941691595171, + 0.009152029275231708, + 0.009828793464284355, + 0.00977410542946727, + 0.008133018506233122, + 0.00455802589096521, + -0.0018994115837509256, + -0.010276497895251842, + -0.0196867973641784, + -0.029168621868183142, + -0.03875074567227232, + -0.049224538707724544, + -0.06042886479662982, + -0.07203324731315325, + -0.08233287822801773, + -0.09115103912368216, + -0.09809725009627863, + -0.10410987990549216, + -0.1092562531153333, + -0.11304319098453404, + -0.11492370961242643, + -0.11406180482251929, + -0.11120134357675493, + -0.10657201748283927, + -0.10123821650539086, + -0.09480525457285333, + -0.08684339366417665, + -0.07712498521362725, + -0.06582298139178418, + -0.05451913178370005, + -0.04368495928615638, + -0.03395131118329613, + -0.02424009807497608, + -0.014696168635310997, + -0.005532106770811833, + 0.0018287972214559535, + 0.00660710579353109, + 0.009081834561611038, + 0.009829206534849292, + 0.009794647351919126, + 0.008204840524760157, + 0.0047105979997435436, + -0.001712634538687243, + -0.010000470114070745, + -0.019445907360706817, + -0.028860645442773152, + -0.03849024230819884, + -0.04889464517517313, + -0.060130924194581464, + -0.07171755773040515, + -0.08205956025817973, + -0.090932086934149, + -0.097882504235142, + -0.10397924094758289, + -0.10910532254535807, + -0.11299880915521093, + -0.11489159208648667, + -0.11411951500663974, + -0.11130275536106302, + -0.10669295609463315, + -0.10142950969171675, + -0.09498485743602264, + -0.08712728706448465, + -0.07739510288853987, + -0.06616006944658731, + -0.05482022569467934, + -0.04398105911065795, + -0.034234929588740894, + -0.02450016630178252, + -0.014979858588451035, + -0.005739466777189634, + 0.0016236059485423588, + 0.006525782748001098, + 0.00900485827742208, + 0.009842648550487531, + 0.009808276091617935, + 0.008293675908908907, + 0.004849202809419531, + -0.0015185019998529968, + -0.009741089043549206, + -0.0192016715436677, + -0.02855963680272906, + -0.0382270492028444, + -0.04855679085112329, + -0.05983661570721213, + -0.07139177213445401, + -0.08180009577756445, + -0.09070484534578062, + -0.09768217930667655, + -0.1038388947317896, + -0.10895130813351196, + -0.11294834202152278, + -0.11484822647054453, + -0.11418449126092643, + -0.1113959505521932, + -0.10682886610158375, + -0.10161496290637492, + -0.09516601168998477, + -0.08740624025601873, + -0.07765652096830171, + -0.06650270662872901, + -0.05511418328365378, + -0.04429454263016795, + -0.03451282323107797, + -0.024772644937891317, + -0.015253814845606308, + -0.0059481820429729045, + 0.0014267719867455736, + 0.006447275430846969, + 0.008922008048371772, + 0.009857994239725845, + 0.00980512267068529, + 0.008387322208372372, + 0.004974154254924794, + -0.0013097233263477997 + ], + "datatype": "Float64", + "type": "series", + "novalues": 401 + } +} diff --git a/validation/oscillating_beam_2d_positions_50.json b/validation/oscillating_beam_2d_positions_50.json new file mode 100644 index 000000000..47f2948a8 --- /dev/null +++ b/validation/oscillating_beam_2d_positions_50.json @@ -0,0 +1,1631 @@ +{ + "pos_y_1206_solid_1": { + "time": [ + 0.0, + 0.025, + 0.05, + 0.07500000000000001, + 0.1, + 0.125, + 0.15000000000000002, + 0.17500000000000002, + 0.2, + 0.225, + 0.25, + 0.275, + 0.30000000000000004, + 0.325, + 0.35000000000000003, + 0.375, + 0.4, + 0.42500000000000004, + 0.45, + 0.47500000000000003, + 0.5, + 0.525, + 0.55, + 0.5750000000000001, + 0.6000000000000001, + 0.625, + 0.65, + 0.675, + 0.7000000000000001, + 0.7250000000000001, + 0.75, + 0.775, + 0.8, + 0.8250000000000001, + 0.8500000000000001, + 0.875, + 0.9, + 0.925, + 0.9500000000000001, + 0.9750000000000001, + 1.0, + 1.0250000000000001, + 1.05, + 1.075, + 1.1, + 1.125, + 1.1500000000000001, + 1.175, + 1.2000000000000002, + 1.225, + 1.25, + 1.2750000000000001, + 1.3, + 1.3250000000000002, + 1.35, + 1.375, + 1.4000000000000001, + 1.425, + 1.4500000000000002, + 1.475, + 1.5, + 1.5250000000000001, + 1.55, + 1.5750000000000002, + 1.6, + 1.625, + 1.6500000000000001, + 1.675, + 1.7000000000000002, + 1.725, + 1.75, + 1.7750000000000001, + 1.8, + 1.8250000000000002, + 1.85, + 1.875, + 1.9000000000000001, + 1.925, + 1.9500000000000002, + 1.975, + 2.0, + 2.025, + 2.0500000000000003, + 2.075, + 2.1, + 2.125, + 2.15, + 2.1750000000000003, + 2.2, + 2.225, + 2.25, + 2.275, + 2.3000000000000003, + 2.325, + 2.35, + 2.375, + 2.4000000000000004, + 2.4250000000000003, + 2.45, + 2.475, + 2.5, + 2.5250000000000004, + 2.5500000000000003, + 2.575, + 2.6, + 2.625, + 2.6500000000000004, + 2.6750000000000003, + 2.7, + 2.725, + 2.75, + 2.7750000000000004, + 2.8000000000000003, + 2.825, + 2.85, + 2.875, + 2.9000000000000004, + 2.9250000000000003, + 2.95, + 2.975, + 3.0, + 3.0250000000000004, + 3.0500000000000003, + 3.075, + 3.1, + 3.125, + 3.1500000000000004, + 3.1750000000000003, + 3.2, + 3.225, + 3.25, + 3.2750000000000004, + 3.3000000000000003, + 3.325, + 3.35, + 3.375, + 3.4000000000000004, + 3.4250000000000003, + 3.45, + 3.475, + 3.5, + 3.5250000000000004, + 3.5500000000000003, + 3.575, + 3.6, + 3.625, + 3.6500000000000004, + 3.6750000000000003, + 3.7, + 3.725, + 3.75, + 3.7750000000000004, + 3.8000000000000003, + 3.825, + 3.85, + 3.875, + 3.9000000000000004, + 3.9250000000000003, + 3.95, + 3.975, + 4.0, + 4.025, + 4.05, + 4.075, + 4.1000000000000005, + 4.125, + 4.15, + 4.175, + 4.2, + 4.2250000000000005, + 4.25, + 4.275, + 4.3, + 4.325, + 4.3500000000000005, + 4.375, + 4.4, + 4.425, + 4.45, + 4.4750000000000005, + 4.5, + 4.525, + 4.55, + 4.575, + 4.6000000000000005, + 4.625, + 4.65, + 4.675, + 4.7, + 4.7250000000000005, + 4.75, + 4.775, + 4.800000000000001, + 4.825, + 4.8500000000000005, + 4.875, + 4.9, + 4.925000000000001, + 4.95, + 4.9750000000000005, + 5.0, + 5.025, + 5.050000000000001, + 5.075, + 5.1000000000000005, + 5.125, + 5.15, + 5.175000000000001, + 5.2, + 5.2250000000000005, + 5.25, + 5.275, + 5.300000000000001, + 5.325, + 5.3500000000000005, + 5.375, + 5.4, + 5.425000000000001, + 5.45, + 5.4750000000000005, + 5.5, + 5.525, + 5.550000000000001, + 5.575, + 5.6000000000000005, + 5.625, + 5.65, + 5.675000000000001, + 5.7, + 5.7250000000000005, + 5.75, + 5.775, + 5.800000000000001, + 5.825, + 5.8500000000000005, + 5.875, + 5.9, + 5.925000000000001, + 5.95, + 5.9750000000000005, + 6.0, + 6.025, + 6.050000000000001, + 6.075, + 6.1000000000000005, + 6.125, + 6.15, + 6.175000000000001, + 6.2, + 6.2250000000000005, + 6.25, + 6.275, + 6.300000000000001, + 6.325, + 6.3500000000000005, + 6.375, + 6.4, + 6.425000000000001, + 6.45, + 6.4750000000000005, + 6.5, + 6.525, + 6.550000000000001, + 6.575, + 6.6000000000000005, + 6.625, + 6.65, + 6.675000000000001, + 6.7, + 6.7250000000000005, + 6.75, + 6.775, + 6.800000000000001, + 6.825, + 6.8500000000000005, + 6.875, + 6.9, + 6.925000000000001, + 6.95, + 6.9750000000000005, + 7.0, + 7.025, + 7.050000000000001, + 7.075, + 7.1000000000000005, + 7.125, + 7.15, + 7.175000000000001, + 7.2, + 7.2250000000000005, + 7.25, + 7.275, + 7.300000000000001, + 7.325, + 7.3500000000000005, + 7.375, + 7.4, + 7.425000000000001, + 7.45, + 7.4750000000000005, + 7.5, + 7.525, + 7.550000000000001, + 7.575, + 7.6000000000000005, + 7.625, + 7.65, + 7.675000000000001, + 7.7, + 7.7250000000000005, + 7.75, + 7.775, + 7.800000000000001, + 7.825, + 7.8500000000000005, + 7.875, + 7.9, + 7.925000000000001, + 7.95, + 7.9750000000000005, + 8.0, + 8.025, + 8.05, + 8.075000000000001, + 8.1, + 8.125, + 8.15, + 8.175, + 8.200000000000001, + 8.225, + 8.25, + 8.275, + 8.3, + 8.325000000000001, + 8.35, + 8.375, + 8.4, + 8.425, + 8.450000000000001, + 8.475, + 8.5, + 8.525, + 8.55, + 8.575000000000001, + 8.6, + 8.625, + 8.65, + 8.675, + 8.700000000000001, + 8.725, + 8.75, + 8.775, + 8.8, + 8.825000000000001, + 8.85, + 8.875, + 8.9, + 8.925, + 8.950000000000001, + 8.975, + 9.0, + 9.025, + 9.05, + 9.075000000000001, + 9.1, + 9.125, + 9.15, + 9.175, + 9.200000000000001, + 9.225, + 9.25, + 9.275, + 9.3, + 9.325000000000001, + 9.35, + 9.375, + 9.4, + 9.425, + 9.450000000000001, + 9.475, + 9.5, + 9.525, + 9.55, + 9.575000000000001, + 9.600000000000001, + 9.625, + 9.65, + 9.675, + 9.700000000000001, + 9.725000000000001, + 9.75, + 9.775, + 9.8, + 9.825000000000001, + 9.850000000000001, + 9.875, + 9.9, + 9.925, + 9.950000000000001, + 9.975000000000001, + 10.0 + ], + "system_name": "solid_1", + "values": [ + 0.009999999999999998, + 0.009364689703635598, + 0.00758829050444531, + 0.0032455071219336176, + -0.0035740847523214234, + -0.012473494567363142, + -0.022056817695956493, + -0.03162770148710437, + -0.041495608817120506, + -0.05200967641248498, + -0.06363400604853574, + -0.07495584822058228, + -0.08536158159271173, + -0.09366893172787079, + -0.10057339180375187, + -0.1063411387787697, + -0.11127153928719935, + -0.11489383314314681, + -0.1161464598117378, + -0.11509912482156327, + -0.11157529772402203, + -0.10690782218828641, + -0.10117666211506038, + -0.09453957549849239, + -0.08627814735149428, + -0.07604561037546648, + -0.06473794256394926, + -0.05310150423948772, + -0.04258357169141386, + -0.032600709069011226, + -0.023082508426430972, + -0.013312242942105718, + -0.004403754701119852, + 0.00272068719078077, + 0.007177449594463348, + 0.009242949792677237, + 0.009990594838215522, + 0.009547101447632064, + 0.007933677913314115, + 0.0037471487934381117, + -0.0028227776340642562, + -0.011654310461227151, + -0.021018639751821718, + -0.030639286114867912, + -0.04035160717836317, + -0.05095796198358632, + -0.06250933800904047, + -0.07395099937105579, + -0.08441616517786049, + -0.09281842384783016, + -0.09990081453725298, + -0.1057159370940953, + -0.1109312048243637, + -0.11462793757416267, + -0.11619213598260698, + -0.11527729024474116, + -0.111951503297174, + -0.1074487897506279, + -0.10177956315450504, + -0.09536352694131166, + -0.0871228194981758, + -0.0771327041043185, + -0.06579778190878655, + -0.05427207250898726, + -0.043663357480675166, + -0.03364078258018151, + -0.02406224305944983, + -0.014153271891562314, + -0.005197911648307444, + 0.0021746222581091987, + 0.006702960116595482, + 0.009076749180707996, + 0.009900300492356523, + 0.009763770349623203, + 0.008256329991365267, + 0.004323185901412444, + -0.0021173408366349706, + -0.010825279632196927, + -0.020063361650188304, + -0.02966458849054828, + -0.03921970925928149, + -0.04988185023796748, + -0.06132129906577267, + -0.07295267942446725, + -0.08342622314508207, + -0.09203997049210154, + -0.099209247452493, + -0.10514003019026526, + -0.1105446253880338, + -0.11432095677546474, + -0.1161923503614349, + -0.11536763833268442, + -0.11234196962853449, + -0.10793848700553907, + -0.10245477026151598, + -0.09617832962592979, + -0.08800064848813659, + -0.0781969194812525, + -0.06680893351861328, + -0.055428488301219055, + -0.04469544172392963, + -0.03474785217909282, + -0.025038380930422988, + -0.01508513073544427, + -0.005958788848362181, + 0.0016071035880433385, + 0.00628436676768618, + 0.008898191612966216, + 0.009779512078035348, + 0.009925604463978997, + 0.008495818230072042, + 0.004899363668838886, + -0.0014465409798342182, + -0.009921147395914444, + -0.01913870296821253, + -0.02865054011700368, + -0.03816317942726264, + -0.04881028637867471, + -0.06016506675754296, + -0.07192777526078643, + -0.08237620621221627, + -0.091241349158418, + -0.09844577461773614, + -0.10461197022819174, + -0.11012718680419249, + -0.1140804089848244, + -0.11617477405712213, + -0.11544722080724446, + -0.11270375195634029, + -0.10833741081492519, + -0.10312037323394264, + -0.09691386057082134, + -0.08893178557810176, + -0.07924949766070358, + -0.06788312071832783, + -0.05658138763204157, + -0.04571480694780081, + -0.035837602796089954, + -0.025967393958248194, + -0.016067282298453205, + -0.006719249704544027, + 0.0009342538614289299, + 0.005877724778265336, + 0.008672159377913364, + 0.00972302669397676, + 0.010077208938423397, + 0.00874547767832723, + 0.005425438874281445, + -0.0008420339283879628, + -0.009037048993116338, + -0.018254960260878146, + -0.02757100390248055, + -0.03712418311392802, + -0.04767669644722025, + -0.05906992413767428, + -0.07089063252795348, + -0.08137870147447797, + -0.09042791588136306, + -0.09764095439309517, + -0.10405478328088372, + -0.1096139568786169, + -0.11385326434873508, + -0.11609521032727621, + -0.11558189732901422, + -0.11306265831439649, + -0.108762098862536, + -0.10378892243635746, + -0.09758748953460018, + -0.0898538811236494, + -0.08020665083123335, + -0.06899112691129199, + -0.057702938712440914, + -0.04681082421461564, + -0.036931181927141156, + -0.026918992366235288, + -0.017034743378023885, + -0.007446973136445026, + 0.00023451491225968453, + 0.005470909507590385, + 0.008342008391179458, + 0.009661195223312423, + 0.010153084794896778, + 0.009054659764488488, + 0.00593596062497984, + -0.0001931299036266732, + -0.008189785173868726, + -0.017405640288458153, + -0.026526510959664584, + -0.0361255745170831, + -0.04649671640980803, + -0.057982410157741804, + -0.06976839930047056, + -0.08041880139230805, + -0.08957827098164307, + -0.0968934274572345, + -0.10349757031573524, + -0.10909027665822299, + -0.11361483661262578, + -0.11592406690142416, + -0.1157113642175592, + -0.11332780129219754, + -0.10921545000135105, + -0.10443607485349114, + -0.09830302135453138, + -0.09080051234877297, + -0.08113899200946888, + -0.07011009174602058, + -0.05873966317784932, + -0.047931613191760154, + -0.03797793423910269, + -0.027948895726646533, + -0.018006201703319517, + -0.008232566025804161, + -0.00044938941189670757, + 0.005080545686873757, + 0.008014952164030854, + 0.009609066587371875, + 0.010142312766008327, + 0.009345488128585367, + 0.006350080822540446, + 0.0004948533767147997, + -0.007372339010502693, + -0.016488073682293637, + -0.02550776363585129, + -0.03512265189272711, + -0.04535693648127566, + -0.0569282100529223, + -0.06861888013461076, + -0.0794660995071658, + -0.08863359153983161, + -0.09615921480086234, + -0.10287505806909526, + -0.10860989638358297, + -0.11337198374320875, + -0.1157682388289703, + -0.11585775243347629, + -0.11352705831131137, + -0.10966977916107341, + -0.10497452863487998, + -0.0990244234100605, + -0.09169649415699045, + -0.08210872972961979, + -0.07125956850370023, + -0.059790737167369865, + -0.04908232846104067, + -0.03896679143545881, + -0.02899857529333695, + -0.018919124600861453, + -0.009094868706423655, + -0.0011339346613738201, + 0.0046004870907999235, + 0.007696242920351883, + 0.009549007283576275, + 0.010158075646284721, + 0.009653325148211083, + 0.006716566777392159, + 0.0011656520966565691, + -0.006649347345710551, + -0.015548666174273773, + -0.024536302785633086, + -0.03404253610463138, + -0.044235637242923447, + -0.05583611851896676, + -0.06750429495997738, + -0.07853573430149936, + -0.08768440216216965, + -0.095442156251089, + -0.10216592892748526, + -0.10812888470559384, + -0.11303190997552294, + -0.11562669516521909, + -0.11597732268371391, + -0.11374620226413727, + -0.1101651069868863, + -0.10548506658997343, + -0.09977525943672744, + -0.0924985115824581, + -0.0830775617853466, + -0.07233138666743198, + -0.0608683673223836, + -0.05024360775598697, + -0.03999761637303979, + -0.03008877428906989, + -0.019807652196257016, + -0.009979303985873477, + -0.0017595744275145807, + 0.004056181959251459, + 0.007383441157238317, + 0.009383613877007077, + 0.010172132966700656, + 0.009919552278443489, + 0.007123126918952392, + 0.0018528493130375223, + -0.00593106766748589, + -0.014614883033912713, + -0.023643178514345754, + -0.03295545234711065, + -0.04317198199349482, + -0.0546697630431028, + -0.06640043471540005, + -0.07753429443662545, + -0.0867549868573616, + -0.09472784693633117, + -0.10146821658435964, + -0.1076838664278234, + -0.11263147284381093, + -0.11549721375758515, + -0.11599229114611155, + -0.11395497836552856, + -0.1106008551881069, + -0.1059968166259632, + -0.10055866469526324, + -0.09329885751446462, + -0.0841041297654723, + -0.07334370331297786, + -0.061963663810304014, + -0.05131807094693244, + -0.041050501440147776, + -0.03116541596902143, + -0.02075177583597105, + -0.01090613456229158, + -0.0023943935086972045, + 0.003494336951709058, + 0.0071255809039542555, + 0.009179087483022786, + 0.010205402920689253, + 0.010075017549762186, + 0.0075180590949196794, + 0.0024633613932609735, + -0.005174807703922522, + -0.013673405553722125, + -0.02271770671863595, + -0.03186094701380639, + -0.04215326953255625, + -0.053503669381705185, + -0.06535768920890689, + -0.07647001586317988, + -0.08583875299690004, + -0.09392141624109807, + -0.10076902461758994, + -0.10721309297209015, + -0.11223434521143691, + -0.115411345912902, + -0.11597556688574708, + -0.11420250782954795, + -0.11095049340071066, + -0.10649786743041538, + -0.1012576738553228, + -0.09407905958042524, + -0.08513817022889908, + -0.07436365914799557, + -0.06313474957140987, + -0.052368520237009865, + -0.042145544074061826, + -0.03216357902636404, + -0.02171632533940135, + -0.011798396208450294, + -0.003096353940093564, + 0.0028948378302013993, + 0.006821212507268249, + 0.008956256785057222, + 0.010281669718273817, + 0.010217037920291926, + 0.007951632881931832, + 0.0029852472795563693, + -0.004427000298851113, + -0.012826029638195088, + -0.021764324467814688, + -0.030779932751230896, + -0.041078350192964644, + -0.052321850885681004, + -0.0643245031292008, + -0.0754015255184375, + -0.08498563968264464, + -0.0930706471210351, + -0.10009452785376544, + -0.10664694062918373, + -0.11181868333971977, + -0.11526745449874824, + -0.11593785867918426, + -0.11448101809256833, + -0.11128612390404899, + -0.10706833840876771, + -0.1019036478952846, + -0.09487302316481634, + -0.08608605960715905, + -0.07535124402528083, + -0.06428124296239189, + -0.053421791847293607, + -0.04330914299123691, + -0.033168150087284735, + -0.022744531248414145, + -0.0126334417016152, + -0.0038255438290719836, + 0.0023480670122294264, + 0.006448544428461394, + 0.008706091591787191, + 0.01028389913027252, + 0.010333917628155283, + 0.008404218934916285, + 0.0035149492240539515 + ], + "datatype": "Float64", + "type": "series", + "novalues": 401 + }, + "meta": { + "julia_version": "1.9.4", + "solver_version": "8a7da404f6e05076a7c4eaaa21244ad7ffd49aa7", + "solver_name": "TrixiParticles.jl" + }, + "pos_x_1206_solid_1": { + "time": [ + 0.0, + 0.025, + 0.05, + 0.07500000000000001, + 0.1, + 0.125, + 0.15000000000000002, + 0.17500000000000002, + 0.2, + 0.225, + 0.25, + 0.275, + 0.30000000000000004, + 0.325, + 0.35000000000000003, + 0.375, + 0.4, + 0.42500000000000004, + 0.45, + 0.47500000000000003, + 0.5, + 0.525, + 0.55, + 0.5750000000000001, + 0.6000000000000001, + 0.625, + 0.65, + 0.675, + 0.7000000000000001, + 0.7250000000000001, + 0.75, + 0.775, + 0.8, + 0.8250000000000001, + 0.8500000000000001, + 0.875, + 0.9, + 0.925, + 0.9500000000000001, + 0.9750000000000001, + 1.0, + 1.0250000000000001, + 1.05, + 1.075, + 1.1, + 1.125, + 1.1500000000000001, + 1.175, + 1.2000000000000002, + 1.225, + 1.25, + 1.2750000000000001, + 1.3, + 1.3250000000000002, + 1.35, + 1.375, + 1.4000000000000001, + 1.425, + 1.4500000000000002, + 1.475, + 1.5, + 1.5250000000000001, + 1.55, + 1.5750000000000002, + 1.6, + 1.625, + 1.6500000000000001, + 1.675, + 1.7000000000000002, + 1.725, + 1.75, + 1.7750000000000001, + 1.8, + 1.8250000000000002, + 1.85, + 1.875, + 1.9000000000000001, + 1.925, + 1.9500000000000002, + 1.975, + 2.0, + 2.025, + 2.0500000000000003, + 2.075, + 2.1, + 2.125, + 2.15, + 2.1750000000000003, + 2.2, + 2.225, + 2.25, + 2.275, + 2.3000000000000003, + 2.325, + 2.35, + 2.375, + 2.4000000000000004, + 2.4250000000000003, + 2.45, + 2.475, + 2.5, + 2.5250000000000004, + 2.5500000000000003, + 2.575, + 2.6, + 2.625, + 2.6500000000000004, + 2.6750000000000003, + 2.7, + 2.725, + 2.75, + 2.7750000000000004, + 2.8000000000000003, + 2.825, + 2.85, + 2.875, + 2.9000000000000004, + 2.9250000000000003, + 2.95, + 2.975, + 3.0, + 3.0250000000000004, + 3.0500000000000003, + 3.075, + 3.1, + 3.125, + 3.1500000000000004, + 3.1750000000000003, + 3.2, + 3.225, + 3.25, + 3.2750000000000004, + 3.3000000000000003, + 3.325, + 3.35, + 3.375, + 3.4000000000000004, + 3.4250000000000003, + 3.45, + 3.475, + 3.5, + 3.5250000000000004, + 3.5500000000000003, + 3.575, + 3.6, + 3.625, + 3.6500000000000004, + 3.6750000000000003, + 3.7, + 3.725, + 3.75, + 3.7750000000000004, + 3.8000000000000003, + 3.825, + 3.85, + 3.875, + 3.9000000000000004, + 3.9250000000000003, + 3.95, + 3.975, + 4.0, + 4.025, + 4.05, + 4.075, + 4.1000000000000005, + 4.125, + 4.15, + 4.175, + 4.2, + 4.2250000000000005, + 4.25, + 4.275, + 4.3, + 4.325, + 4.3500000000000005, + 4.375, + 4.4, + 4.425, + 4.45, + 4.4750000000000005, + 4.5, + 4.525, + 4.55, + 4.575, + 4.6000000000000005, + 4.625, + 4.65, + 4.675, + 4.7, + 4.7250000000000005, + 4.75, + 4.775, + 4.800000000000001, + 4.825, + 4.8500000000000005, + 4.875, + 4.9, + 4.925000000000001, + 4.95, + 4.9750000000000005, + 5.0, + 5.025, + 5.050000000000001, + 5.075, + 5.1000000000000005, + 5.125, + 5.15, + 5.175000000000001, + 5.2, + 5.2250000000000005, + 5.25, + 5.275, + 5.300000000000001, + 5.325, + 5.3500000000000005, + 5.375, + 5.4, + 5.425000000000001, + 5.45, + 5.4750000000000005, + 5.5, + 5.525, + 5.550000000000001, + 5.575, + 5.6000000000000005, + 5.625, + 5.65, + 5.675000000000001, + 5.7, + 5.7250000000000005, + 5.75, + 5.775, + 5.800000000000001, + 5.825, + 5.8500000000000005, + 5.875, + 5.9, + 5.925000000000001, + 5.95, + 5.9750000000000005, + 6.0, + 6.025, + 6.050000000000001, + 6.075, + 6.1000000000000005, + 6.125, + 6.15, + 6.175000000000001, + 6.2, + 6.2250000000000005, + 6.25, + 6.275, + 6.300000000000001, + 6.325, + 6.3500000000000005, + 6.375, + 6.4, + 6.425000000000001, + 6.45, + 6.4750000000000005, + 6.5, + 6.525, + 6.550000000000001, + 6.575, + 6.6000000000000005, + 6.625, + 6.65, + 6.675000000000001, + 6.7, + 6.7250000000000005, + 6.75, + 6.775, + 6.800000000000001, + 6.825, + 6.8500000000000005, + 6.875, + 6.9, + 6.925000000000001, + 6.95, + 6.9750000000000005, + 7.0, + 7.025, + 7.050000000000001, + 7.075, + 7.1000000000000005, + 7.125, + 7.15, + 7.175000000000001, + 7.2, + 7.2250000000000005, + 7.25, + 7.275, + 7.300000000000001, + 7.325, + 7.3500000000000005, + 7.375, + 7.4, + 7.425000000000001, + 7.45, + 7.4750000000000005, + 7.5, + 7.525, + 7.550000000000001, + 7.575, + 7.6000000000000005, + 7.625, + 7.65, + 7.675000000000001, + 7.7, + 7.7250000000000005, + 7.75, + 7.775, + 7.800000000000001, + 7.825, + 7.8500000000000005, + 7.875, + 7.9, + 7.925000000000001, + 7.95, + 7.9750000000000005, + 8.0, + 8.025, + 8.05, + 8.075000000000001, + 8.1, + 8.125, + 8.15, + 8.175, + 8.200000000000001, + 8.225, + 8.25, + 8.275, + 8.3, + 8.325000000000001, + 8.35, + 8.375, + 8.4, + 8.425, + 8.450000000000001, + 8.475, + 8.5, + 8.525, + 8.55, + 8.575000000000001, + 8.6, + 8.625, + 8.65, + 8.675, + 8.700000000000001, + 8.725, + 8.75, + 8.775, + 8.8, + 8.825000000000001, + 8.85, + 8.875, + 8.9, + 8.925, + 8.950000000000001, + 8.975, + 9.0, + 9.025, + 9.05, + 9.075000000000001, + 9.1, + 9.125, + 9.15, + 9.175, + 9.200000000000001, + 9.225, + 9.25, + 9.275, + 9.3, + 9.325000000000001, + 9.35, + 9.375, + 9.4, + 9.425, + 9.450000000000001, + 9.475, + 9.5, + 9.525, + 9.55, + 9.575000000000001, + 9.600000000000001, + 9.625, + 9.65, + 9.675, + 9.700000000000001, + 9.725000000000001, + 9.75, + 9.775, + 9.8, + 9.825000000000001, + 9.850000000000001, + 9.875, + 9.9, + 9.925, + 9.950000000000001, + 9.975000000000001, + 10.0 + ], + "system_name": "solid_1", + "values": [ + 0.4, + 0.3999992139799211, + 0.3999830116724701, + 0.39992755867912816, + 0.3997307156834245, + 0.3992081130734493, + 0.39833968143127424, + 0.39722436717031995, + 0.3958174645633376, + 0.3939072822889799, + 0.39127530633788205, + 0.3881111851721008, + 0.38485610694589983, + 0.3821050633823781, + 0.3797622300808573, + 0.3775774310113284, + 0.3754076945955024, + 0.3735964290162269, + 0.3728805188298607, + 0.3734987876412705, + 0.37525890002138784, + 0.37735106662006745, + 0.3795222492090636, + 0.3818070549401962, + 0.3845540710657979, + 0.3878006495505476, + 0.3910002826328378, + 0.3936820050956077, + 0.39563494513434105, + 0.3970884612386235, + 0.3982338669624666, + 0.3991456137553911, + 0.3996975907105021, + 0.39991682772553516, + 0.3999817416559372, + 0.39999772336969247, + 0.39999956285479155, + 0.4000007333659587, + 0.39998394557266065, + 0.3999366739608894, + 0.3997619573275067, + 0.39926945878044534, + 0.39844104907826844, + 0.3973579625642234, + 0.39599891706510343, + 0.39412170788026574, + 0.3915481676765536, + 0.3884090468675668, + 0.38516481486847054, + 0.38239713277659626, + 0.3800179328161998, + 0.37781599841577745, + 0.375561916402065, + 0.37371098159727806, + 0.37287507819271054, + 0.3734172364112195, + 0.3750963042194848, + 0.3771336818078233, + 0.3792835894390904, + 0.3815133799168623, + 0.38426059567805604, + 0.38748808884279995, + 0.39073053838478483, + 0.393444325975335, + 0.3954501196547289, + 0.3969464959162415, + 0.3981234084591215, + 0.39907813244891, + 0.3996651807182656, + 0.39990484874767496, + 0.3999775455414134, + 0.3999994333846461, + 0.40000019325129865, + 0.3999984114797667, + 0.39998578117857414, + 0.39994612973572946, + 0.3997855604202344, + 0.39932719735576705, + 0.39853823886891415, + 0.39748691071958137, + 0.3961726142564363, + 0.3943385760357543, + 0.3918228926109506, + 0.38869633399995024, + 0.38548020711891845, + 0.38267900590312554, + 0.3802789889974785, + 0.37804534605903745, + 0.37573505405821245, + 0.3738377591338691, + 0.37287708006953163, + 0.3733588323940126, + 0.3749352635815991, + 0.37693191234099904, + 0.3790294761377983, + 0.3812256258049508, + 0.38396318613512204, + 0.3871705601423053, + 0.39046008663775633, + 0.39320612062656685, + 0.3952654139080867, + 0.3967929422903772, + 0.3980129572696505, + 0.3990055124269288, + 0.39962608727573895, + 0.39989147939202213, + 0.39997491420977427, + 0.3999988061257198, + 0.39999954898720286, + 0.39999902615619837, + 0.39998748041684246, + 0.3999522179330175, + 0.39980943473265207, + 0.3993845805831125, + 0.39862715721650976, + 0.39761526420116494, + 0.3963382239650398, + 0.3945512993525338, + 0.3920907879757618, + 0.3889875082183308, + 0.385801555706019, + 0.38296009366862566, + 0.38055353078154514, + 0.37826620447215314, + 0.37592043431179223, + 0.373953109326984, + 0.3728923841799852, + 0.3733068047801191, + 0.37477905762038094, + 0.3767498939725599, + 0.37877653180757165, + 0.38095449505867207, + 0.3836552927627926, + 0.38685481394450344, + 0.39017925857397767, + 0.3929613854073171, + 0.39507684457218983, + 0.3966352164614921, + 0.3979026321013761, + 0.3989285509125114, + 0.3995859184302032, + 0.39987677454822035, + 0.39997169169584423, + 0.3999971684028586, + 0.3999979878784683, + 0.40000040819124905, + 0.3999890024366144, + 0.39995573556672986, + 0.3998332458869859, + 0.39944068441895686, + 0.3987097900811916, + 0.3977429189597094, + 0.3964993505599712, + 0.3947612665444767, + 0.3923445580853951, + 0.38928195443874125, + 0.3861140629790649, + 0.3832436864657392, + 0.38083663670297135, + 0.3784950313686462, + 0.37612565281478827, + 0.3740610951392625, + 0.3729313957747651, + 0.3732486084873992, + 0.37462789366835075, + 0.37656570031507136, + 0.378526321150006, + 0.38069444264833663, + 0.38334087078760987, + 0.3865528346645922, + 0.38989399648012696, + 0.39271498406408073, + 0.3948782330659085, + 0.39647649847209215, + 0.3977865728336836, + 0.3988435107400022, + 0.39954632448915306, + 0.39986147785348447, + 0.3999642370785813, + 0.39999644476001883, + 0.40000003503672116, + 0.3999990733868603, + 0.3999885770823954, + 0.39996149930388736, + 0.3998533216766896, + 0.39948814505372626, + 0.3987912228742579, + 0.3978657511923416, + 0.39665196827962707, + 0.3949720022552403, + 0.3925959977846436, + 0.38958063065653886, + 0.38641351987296463, + 0.383537755279055, + 0.3811099292422944, + 0.3787250438768175, + 0.3763386732983243, + 0.37417775715139184, + 0.37299438576149574, + 0.37318752382715265, + 0.3745035554270167, + 0.3763796888305308, + 0.37828107352189144, + 0.3804274952153536, + 0.3830246282186421, + 0.38625257490429005, + 0.38959781551989536, + 0.3924745439034293, + 0.3946747378702729, + 0.3963147277795443, + 0.3976625388018758, + 0.398757241966529, + 0.39950140203806483, + 0.39984178237634327, + 0.3999585497411598, + 0.39999555279820415, + 0.40000049494629625, + 0.39999906070238317, + 0.39998855465760025, + 0.3999657879172029, + 0.3998721598744184, + 0.3995329406393107, + 0.3988719841431147, + 0.39798201845603687, + 0.3968026985894809, + 0.39517508117577077, + 0.3928419517207379, + 0.38988050199462027, + 0.3867083350618152, + 0.383846541394835, + 0.3813774415477573, + 0.3789687396439658, + 0.37654438271536955, + 0.3743030660975627, + 0.37306049193445356, + 0.3731266336437546, + 0.37439737926983546, + 0.3761918149622371, + 0.3780591492938545, + 0.3801577679579456, + 0.38271867967482065, + 0.3859467590591905, + 0.38929384077649504, + 0.39222898778437104, + 0.39446279191780487, + 0.39615216095824374, + 0.3975320613103239, + 0.39867241409138515, + 0.399453650297389, + 0.399819643131874, + 0.3999536656300156, + 0.39999441532432484, + 0.3999984813873729, + 0.39999916159751514, + 0.39998942591945846, + 0.3999679705132583, + 0.399888559615975, + 0.3995770319181792, + 0.39895052011749244, + 0.39808946117769295, + 0.39695603819393804, + 0.3953701834717648, + 0.3930832024957641, + 0.3901722809602415, + 0.38700295453923866, + 0.3841553788246515, + 0.38164199453993625, + 0.3792336020183653, + 0.3767488456548582, + 0.37444952018202443, + 0.3731225668922128, + 0.37308157526026314, + 0.3742928049039173, + 0.37599685383573866, + 0.37784901878879895, + 0.37988263188398125, + 0.3824259163885893, + 0.38563460491880114, + 0.38899956782690415, + 0.3919787863624695, + 0.3942434155874478, + 0.3959862806563626, + 0.39739648261486993, + 0.3985813331047507, + 0.3994006958008172, + 0.39979889759846976, + 0.3999452588602492, + 0.3999907552654961, + 0.40000001276637887, + 0.39999936615240295, + 0.39998739757541163, + 0.399972068167881, + 0.3999037489405008, + 0.39961428377744057, + 0.39902490719423944, + 0.39819244551178534, + 0.3971036794256284, + 0.395556763952723, + 0.3933314510087403, + 0.3904566776044711, + 0.38730286965780386, + 0.38445894439894707, + 0.3819097113372327, + 0.37949624169460344, + 0.37694897969327323, + 0.37461949815226514, + 0.3731824332578139, + 0.3730625427569393, + 0.37419045416933455, + 0.3758193568299098, + 0.3776406452405573, + 0.3795998773206854, + 0.382137610812269, + 0.38531168634747776, + 0.3887067130772469, + 0.3917207688418542, + 0.3940298980646011, + 0.39581379540184136, + 0.39725615999866387, + 0.398487416554137, + 0.3993430763342144, + 0.3997739144676373, + 0.399936236694288, + 0.3999884788902941, + 0.40000014168643844, + 0.3999998035360628, + 0.39998729373501724, + 0.39997466373437274, + 0.3999167810044728, + 0.39965156414383096, + 0.39909560909421804, + 0.3982938690137888, + 0.3972472736427094, + 0.3957369448914784, + 0.39357607349569385, + 0.39073146537717734, + 0.3876105151404817, + 0.38475524416424944, + 0.3821934634451117, + 0.3797563495291331, + 0.3771561117771755, + 0.3747945321273831, + 0.3732385909077882, + 0.3730593272610931, + 0.37408093790072566, + 0.37566255160242157, + 0.3774327487613439, + 0.3793331344899101, + 0.38185318354837355, + 0.3849875910137026, + 0.3884120834161423, + 0.3914494671539242, + 0.39381509479096954, + 0.395631785332745, + 0.39711485380356587, + 0.3983902227055099, + 0.3992853823025216, + 0.3997466869924756, + 0.3999265466519241, + 0.39998797261769165, + 0.3999977704976437, + 0.3999982893478102, + 0.39998922629865236, + 0.39997480095352894, + 0.3999257053748397, + 0.3996895493920748, + 0.39916191149043845, + 0.3983911449764955, + 0.3973857525415698, + 0.3959189170839374, + 0.39381121042592365, + 0.3909992726917998, + 0.3879210206114758, + 0.38504164711163935, + 0.38248504667105127, + 0.38001448866458737, + 0.37738795538698816, + 0.37496840830221145, + 0.37330689464009187, + 0.3730675628825753, + 0.3739711328930003, + 0.3755126441877319, + 0.3772134554189266, + 0.3790842431908427, + 0.3815618920777488, + 0.3846704464625407, + 0.3881204734607742, + 0.3911789759077429, + 0.3935948739769472, + 0.3954402017083025, + 0.3969743025744174, + 0.39828299342320933, + 0.3992220433824074, + 0.39971984321390597, + 0.3999152725885011, + 0.39998288784527763, + 0.39999723842785984, + 0.39999958659260954, + 0.3999883943559657, + 0.39997437076973236, + 0.3999369628472589 + ], + "datatype": "Float64", + "type": "series", + "novalues": 401 + } +} From 8108bd7e5b2752149d502280ed1ef70b945088f3 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 2 Feb 2024 10:45:41 +0100 Subject: [PATCH 111/212] add CSV --- Project.toml | 1 + src/callbacks/post_process.jl | 1 + 2 files changed, 2 insertions(+) diff --git a/Project.toml b/Project.toml index 3ab36dd43..a49f9d5d3 100644 --- a/Project.toml +++ b/Project.toml @@ -4,6 +4,7 @@ authors = ["erik.faulhaber <44124897+efaulhaber@users.noreply.github.com>"] version = "0.1.0" [deps] +CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" DiffEqCallbacks = "459566f4-90b8-5000-8ac3-15dfb0a30def" FastPow = "c0e83750-1142-43a8-81cf-6c956b72b4d1" diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 8202a4f94..67dcd3ef1 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -1,4 +1,5 @@ using JSON +using CSV struct DataEntry value::Float64 From 22d71b4a6b5467e3d5cff81fd51236f9171d7165 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 2 Feb 2024 11:53:58 +0100 Subject: [PATCH 112/212] add csv output --- .gitignore | 1 + Project.toml | 1 + src/callbacks/post_process.jl | 61 +++++++++++++++++++++++++++-------- 3 files changed, 49 insertions(+), 14 deletions(-) diff --git a/.gitignore b/.gitignore index be4f7441f..f7151b63f 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,4 @@ run *.vtu *.pvd *.mp4 +*.csv diff --git a/Project.toml b/Project.toml index a49f9d5d3..9135f0b9e 100644 --- a/Project.toml +++ b/Project.toml @@ -5,6 +5,7 @@ version = "0.1.0" [deps] CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" +DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" DiffEqCallbacks = "459566f4-90b8-5000-8ac3-15dfb0a30def" FastPow = "c0e83750-1142-43a8-81cf-6c956b72b4d1" diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 67dcd3ef1..8784d2872 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -1,5 +1,6 @@ using JSON using CSV +using DataFrames struct DataEntry value::Float64 @@ -8,8 +9,8 @@ struct DataEntry end """ - PostprocessCallback(func; interval::Integer=0, dt=0.0, exclude_bnd=true, - output_directory="values", overwrite=true) + PostprocessCallback(func; interval::Integer=0, dt=0.0, exclude_bnd=true, filename="values", + output_directory=".", overwrite=true, write_csv=true, write_json=true) Create a callback for post-processing simulation data at regular intervals. This callback allows for the execution of a user-defined function `func` at specified @@ -25,18 +26,17 @@ a fixed interval of simulation time (`dt`). - `dt=0.0`: Specifies the simulation time interval between each invocation of the callback. If set to `0.0`, the callback will not be triggered based on simulation time. - `exclude_bnd=true`: If set to `true`, boundary particles will be excluded from the post-processing. -- `output_directory="values"`: The filename or path where the results of the post-processing will be saved. +- `filename="values"`: The filename of the postprocessing files to be saved. +- `output_directory="."`: The path where the results of the post-processing will be saved. - `overwrite=true`: If set to `true`, existing files with the same name as `filename` will be overwritten. +- `write_csv=true`: If set to `true`, will write an csv file. +- `write_json=true`: If set to `true`, will write a json file. # Behavior - If both `interval` and `dt` are specified, an `ArgumentError` is thrown as only one mode of time control is allowed. - If `dt` is specified and greater than `0`, the callback will be triggered at regular intervals of simulation time. - If `interval` is specified and greater than `0`, the callback will be triggered every `interval` time steps. -# Usage -The callback is designed to be used with simulation frameworks. The user-defined function -`func` should take the current state of the simulation as input and return data for post-processing. - # Examples ```julia example_function = function(pp, t, system, u, v, system_name) println("test_func ", t) end @@ -55,11 +55,14 @@ mutable struct PostprocessCallback{I, F} exclude_bnd::Bool func::F filename::String + output_directory::String overwrite::Bool + write_csv::Bool + write_json::Bool end function PostprocessCallback(func; interval::Integer=0, dt=0.0, exclude_bnd=true, - output_directory="values", overwrite=true) + output_directory=".", filename="values", overwrite=true, write_csv=true, write_json=true) if dt > 0 && interval > 0 throw(ArgumentError("Setting both interval and dt is not supported!")) end @@ -69,7 +72,7 @@ function PostprocessCallback(func; interval::Integer=0, dt=0.0, exclude_bnd=true end post_callback = PostprocessCallback(interval, -Inf, Dict{String, Vector{DataEntry}}(), - exclude_bnd, func, output_directory, overwrite) + exclude_bnd, func, filename, output_directory, overwrite, write_csv, write_json) if dt > 0 # Add a `tstop` every `dt`, and save the final solution. return PeriodicCallback(post_callback, dt, @@ -248,16 +251,46 @@ function (pp::PostprocessCallback)(integrator, finished::Bool) data = meta_data!(data) data = prepare_series_data!(data, pp) - filename = pp.filename * ".json" + filename_json = pp.filename * ".json" + filename_csv = pp.filename * ".csv" if !pp.overwrite - filename = get_unique_filename(pp.filename, ".json") + filename_json = get_unique_filename(pp.filename, ".json") + filename_csv = get_unique_filename(pp.filename, ".csv") + end + + + if pp.write_json + println("writing a postproccessing results to ", filename_json) + abs_file_path = abspath(normpath(pp.output_directory)) * filename_json + + + open(abs_file_path, "w") do file + JSON.print(file, data, 4) + end + end + if pp.write_csv + println("writing a postproccessing results to ", filename_csv) + abs_file_path = abspath(normpath(pp.output_directory)) * filename_csv + + write_csv(abs_file_path, data) end +end - println("writing a postproccessing results to ", filename) +function write_csv(abs_file_path, data) + times = collect(values(data))[1]["time"] + df = DataFrame(time = times) # Initialize DataFrame with time column - open(filename, "w") do file - JSON.print(file, data, 4) + for (key, series) in data + # Ensure we only process data entries, excluding any meta data or non-data entries + if occursin("_", key) # A simple check to ensure we're dealing with data series + values = series["values"] + # Add a new column to the DataFrame for each series of values + df[!, Symbol(key)] = values + end end + + # Write the DataFrame to a CSV file + CSV.write(abs_file_path, df) end function add_entry!(pp, entry_key, t, value, system_name) From 94a4fa10f1db1f703b2a6d70cbff82a4d70bc323 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 2 Feb 2024 11:57:19 +0100 Subject: [PATCH 113/212] format --- src/callbacks/post_process.jl | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 8784d2872..137bd7d20 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -62,7 +62,8 @@ mutable struct PostprocessCallback{I, F} end function PostprocessCallback(func; interval::Integer=0, dt=0.0, exclude_bnd=true, - output_directory=".", filename="values", overwrite=true, write_csv=true, write_json=true) + output_directory=".", filename="values", overwrite=true, + write_csv=true, write_json=true) if dt > 0 && interval > 0 throw(ArgumentError("Setting both interval and dt is not supported!")) end @@ -72,7 +73,8 @@ function PostprocessCallback(func; interval::Integer=0, dt=0.0, exclude_bnd=true end post_callback = PostprocessCallback(interval, -Inf, Dict{String, Vector{DataEntry}}(), - exclude_bnd, func, filename, output_directory, overwrite, write_csv, write_json) + exclude_bnd, func, filename, output_directory, + overwrite, write_csv, write_json) if dt > 0 # Add a `tstop` every `dt`, and save the final solution. return PeriodicCallback(post_callback, dt, @@ -258,12 +260,10 @@ function (pp::PostprocessCallback)(integrator, finished::Bool) filename_csv = get_unique_filename(pp.filename, ".csv") end - if pp.write_json println("writing a postproccessing results to ", filename_json) abs_file_path = abspath(normpath(pp.output_directory)) * filename_json - open(abs_file_path, "w") do file JSON.print(file, data, 4) end @@ -278,7 +278,7 @@ end function write_csv(abs_file_path, data) times = collect(values(data))[1]["time"] - df = DataFrame(time = times) # Initialize DataFrame with time column + df = DataFrame(time=times) # Initialize DataFrame with time column for (key, series) in data # Ensure we only process data entries, excluding any meta data or non-data entries From f835aa56149af04844b956243f6e6604a04d21c8 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 7 Feb 2024 08:14:28 +0100 Subject: [PATCH 114/212] up --- src/callbacks/post_process.jl | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 137bd7d20..1ecbd58d3 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -50,7 +50,6 @@ postprocess_callback = PostprocessCallback(example_function, dt=0.1) """ mutable struct PostprocessCallback{I, F} interval::I - last_t::Float64 values::Dict{String, Vector{DataEntry}} exclude_bnd::Bool func::F @@ -125,7 +124,6 @@ function initialize_post_callback!(cb, u, t, integrator) end function initialize_post_callback!(cb::PostprocessCallback, u, t, integrator) - cb.last_t = t # Write initial values. if t < eps() # Update systems to compute quantities like density and pressure. @@ -157,7 +155,6 @@ function (pp::PostprocessCallback{I, F})(integrator) where {I, F <: Function} v_ode, u_ode = vu_ode.x semi = integrator.p t = integrator.t - pp.last_t = integrator.t filenames = system_names(semi.systems) foreach_system(semi) do system @@ -183,7 +180,6 @@ function (pp::PostprocessCallback{I, F})(integrator) where {I, F <: Array} v_ode, u_ode = vu_ode.x semi = integrator.p t = integrator.t - pp.last_t = integrator.t filenames = system_names(semi.systems) foreach_system(semi) do system From 0cc4e088854a14cbee1c8e3caa5ee4b04a5edefd Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 7 Feb 2024 16:57:27 +0100 Subject: [PATCH 115/212] fixes --- examples/fluid/rectangular_tank_2d.jl | 4 ++-- examples/postprocessing/investigate_relaxation.jl | 2 +- src/callbacks/post_process.jl | 8 +++++++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/examples/fluid/rectangular_tank_2d.jl b/examples/fluid/rectangular_tank_2d.jl index 66fcb2a9a..30f1f430b 100644 --- a/examples/fluid/rectangular_tank_2d.jl +++ b/examples/fluid/rectangular_tank_2d.jl @@ -35,7 +35,7 @@ smoothing_kernel = SchoenbergCubicSplineKernel{2}() fluid_density_calculator = ContinuityDensity() viscosity = ArtificialViscosityMonaghan(alpha=0.02, beta=0.0) -viscosity_wall = ViscosityAdami(nu=1.0) +viscosity_wall = ViscosityAdami(nu=0.5) fluid_system = WeaklyCompressibleSPHSystem(tank.fluid, fluid_density_calculator, state_equation, smoothing_kernel, @@ -77,7 +77,7 @@ callbacks = CallbackSet(info_callback, saving_callback, pp_callback) # Sometimes, the method fails to do so because forces become extremely large when # fluid particles are very close to boundary particles, and the time integration method # interprets this as an instability. -sol = solve(ode, RDPK3SpFSAL49(), +sol = solve(ode, RDPK3SpFSAL35(), abstol=1e-5, # Default abstol is 1e-6 (may need to be tuned to prevent boundary penetration) reltol=1e-3, # Default reltol is 1e-3 (may need to be tuned to prevent boundary penetration) dtmax=1e-2, # Limit stepsize to prevent crashing diff --git a/examples/postprocessing/investigate_relaxation.jl b/examples/postprocessing/investigate_relaxation.jl index 8971c487e..5f571a410 100644 --- a/examples/postprocessing/investigate_relaxation.jl +++ b/examples/postprocessing/investigate_relaxation.jl @@ -11,7 +11,7 @@ using Printf # see also the implementation for the functions calculate_ekin, calculate_total_mass,... # pp_cb = PostprocessCallback([calculate_ekin, max_pressure, avg_density], interval=10) -pp_cb = PostprocessCallback([calculate_ekin, max_pressure, avg_density], dt=0.1) +pp_cb = PostprocessCallback([calculate_ekin, max_pressure, avg_density], dt=0.05) trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), pp_callback=pp_cb, tspan=(0.0, 5.0)); diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 1ecbd58d3..7408d0d24 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -71,7 +71,7 @@ function PostprocessCallback(func; interval::Integer=0, dt=0.0, exclude_bnd=true interval = Float64(dt) end - post_callback = PostprocessCallback(interval, -Inf, Dict{String, Vector{DataEntry}}(), + post_callback = PostprocessCallback(interval, Dict{String, Vector{DataEntry}}(), exclude_bnd, func, filename, output_directory, overwrite, write_csv, write_json) if dt > 0 @@ -172,6 +172,9 @@ function (pp::PostprocessCallback{I, F})(integrator) where {I, F <: Function} if isfinished(integrator) pp(integrator, true) end + + # Tell OrdinaryDiffEq that u has not been modified + u_modified!(integrator, false) end # affect! function for an array of functions @@ -199,6 +202,9 @@ function (pp::PostprocessCallback{I, F})(integrator) where {I, F <: Array} if isfinished(integrator) pp(integrator, true) end + + # Tell OrdinaryDiffEq that u has not been modified + u_modified!(integrator, false) end # This function prepares the data for writing to a JSON file by creating a dictionary From 82f8d5e3669a5041b66eecd861250ef221ce5247 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 7 Feb 2024 17:35:28 +0100 Subject: [PATCH 116/212] update --- src/callbacks/post_process.jl | 100 ++++++++++++++++++++-------------- 1 file changed, 58 insertions(+), 42 deletions(-) diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 7408d0d24..b54d01a02 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -9,7 +9,7 @@ struct DataEntry end """ - PostprocessCallback(func; interval::Integer=0, dt=0.0, exclude_bnd=true, filename="values", + PostprocessCallback(func; interval::Integer=0, dt=0.0, exclude_boundary=true, filename="values", output_directory=".", overwrite=true, write_csv=true, write_json=true) Create a callback for post-processing simulation data at regular intervals. @@ -23,19 +23,16 @@ a fixed interval of simulation time (`dt`). # Keywords - `interval=0`: Specifies the number of time steps between each invocation of the callback. If set to `0`, the callback will not be triggered based on time steps. + Either interval or dt can be set to something larger than 0. - `dt=0.0`: Specifies the simulation time interval between each invocation of the callback. If set to `0.0`, the callback will not be triggered based on simulation time. -- `exclude_bnd=true`: If set to `true`, boundary particles will be excluded from the post-processing. + Either interval or dt can be set to something larger than 0. +- `exclude_boundary=true`: If set to `true`, boundary particles will be excluded from the post-processing. - `filename="values"`: The filename of the postprocessing files to be saved. -- `output_directory="."`: The path where the results of the post-processing will be saved. +- `output_directory="out"`: The path where the results of the post-processing will be saved. - `overwrite=true`: If set to `true`, existing files with the same name as `filename` will be overwritten. -- `write_csv=true`: If set to `true`, will write an csv file. -- `write_json=true`: If set to `true`, will write a json file. - -# Behavior -- If both `interval` and `dt` are specified, an `ArgumentError` is thrown as only one mode of time control is allowed. -- If `dt` is specified and greater than `0`, the callback will be triggered at regular intervals of simulation time. -- If `interval` is specified and greater than `0`, the callback will be triggered every `interval` time steps. +- `write_csv=true`: If set to `true`, write an csv file. +- `write_json=true`: If set to `true`, write a json file. # Examples ```julia @@ -49,19 +46,19 @@ postprocess_callback = PostprocessCallback(example_function, dt=0.1) ``` """ mutable struct PostprocessCallback{I, F} - interval::I - values::Dict{String, Vector{DataEntry}} - exclude_bnd::Bool - func::F - filename::String - output_directory::String - overwrite::Bool - write_csv::Bool - write_json::Bool + interval :: I + values :: Dict{String, Vector{DataEntry}} + exclude_boundary :: Bool + func :: F + filename :: String + output_directory :: String + overwrite :: Bool + write_csv :: Bool + write_json :: Bool end -function PostprocessCallback(func; interval::Integer=0, dt=0.0, exclude_bnd=true, - output_directory=".", filename="values", overwrite=true, +function PostprocessCallback(func; interval::Integer=0, dt=0.0, exclude_boundary=true, + output_directory="out", filename="values", overwrite=true, write_csv=true, write_json=true) if dt > 0 && interval > 0 throw(ArgumentError("Setting both interval and dt is not supported!")) @@ -72,7 +69,7 @@ function PostprocessCallback(func; interval::Integer=0, dt=0.0, exclude_bnd=true end post_callback = PostprocessCallback(interval, Dict{String, Vector{DataEntry}}(), - exclude_bnd, func, filename, output_directory, + exclude_boundary, func, filename, output_directory, overwrite, write_csv, write_json) if dt > 0 # Add a `tstop` every `dt`, and save the final solution. @@ -90,30 +87,51 @@ end function Base.show(io::IO, cb::DiscreteCallback{<:Any, <:PostprocessCallback}) @nospecialize cb # reduce precompilation time callback = cb.affect! - print(io, "PostprocessCallback(interval=", callback.interval, ", functions=[") + print(io, "PostprocessCallback(interval=", callback.interval) + print(io, "functions=[") + print(io, join(callback.func, ", ")) + print(io, "])") +end + +function Base.show(io::IO, + cb::DiscreteCallback{<:Any, + <:PeriodicCallbackAffect{<:PostprocessCallback}}) + @nospecialize cb # reduce precompilation time + callback = cb.affect!.affect! + print(io, "PostprocessCallback(interval=", callback.interval) + print(io, "functions=[") + print(io, join(callback.func, ", ")) + print(io, "])") +end - funcs = callback.func +function Base.show(io::IO, ::MIME"text/plain", + cb::DiscreteCallback{<:Any, <:PostprocessCallback}) + @nospecialize cb # reduce precompilation time + if get(io, :compact, false) + show(io, cb) + else + callback = cb.affect! + setup = ["interval" => string(callback.interval)] - for (i, func) in enumerate(funcs) - print(io, nameof(func)) - if i < length(funcs) - print(io, ", ") + for (i, f) in enumerate(callback.func) + push!(setup, "function$i" => string(nameof(f))) end + summary_box(io, "PostprocessCallback", setup) end end function Base.show(io::IO, ::MIME"text/plain", - cb::DiscreteCallback{<:Any, <:PostprocessCallback}) + cb::DiscreteCallback{<:Any, + <:PeriodicCallbackAffect{<:PostprocessCallback}}) @nospecialize cb # reduce precompilation time if get(io, :compact, false) show(io, cb) else - callback = cb.affect! + callback = cb.affect!.affect! setup = ["interval" => string(callback.interval)] for (i, f) in enumerate(callback.func) - func_key = "function" * string(i) - setup = [setup..., func_key => string(nameof(f))] + push!(setup, "function$i" => string(nameof(f))) end summary_box(io, "PostprocessCallback", setup) end @@ -124,14 +142,12 @@ function initialize_post_callback!(cb, u, t, integrator) end function initialize_post_callback!(cb::PostprocessCallback, u, t, integrator) - # Write initial values. - if t < eps() - # Update systems to compute quantities like density and pressure. - semi = integrator.p - v_ode, u_ode = u.x - update_systems_and_nhs(v_ode, u_ode, semi, t) - cb(integrator) - end + + # Update systems to compute quantities like density and pressure. + semi = integrator.p + v_ode, u_ode = u.x + update_systems_and_nhs(v_ode, u_ode, semi, t) + cb(integrator) return nothing end @@ -158,7 +174,7 @@ function (pp::PostprocessCallback{I, F})(integrator) where {I, F <: Function} filenames = system_names(semi.systems) foreach_system(semi) do system - if system isa BoundarySystem && pp.exclude_bnd + if system isa BoundarySystem && pp.exclude_boundary return end @@ -186,7 +202,7 @@ function (pp::PostprocessCallback{I, F})(integrator) where {I, F <: Array} filenames = system_names(semi.systems) foreach_system(semi) do system - if system isa BoundarySystem && pp.exclude_bnd + if system isa BoundarySystem && pp.exclude_boundary return end From 07017b3e08f51f22e8918f6d7377178797bdefe5 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 8 Feb 2024 10:57:40 +0100 Subject: [PATCH 117/212] fix paths --- examples/fluid/rectangular_tank_2d.jl | 7 ++++--- examples/postprocessing/investigate_relaxation.jl | 4 ++-- src/callbacks/post_process.jl | 8 ++++---- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/examples/fluid/rectangular_tank_2d.jl b/examples/fluid/rectangular_tank_2d.jl index 30f1f430b..6349b517c 100644 --- a/examples/fluid/rectangular_tank_2d.jl +++ b/examples/fluid/rectangular_tank_2d.jl @@ -6,7 +6,7 @@ using OrdinaryDiffEq fluid_particle_spacing = 0.02 # Change spacing ratio to 3 and boundary layers to 1 when using Monaghan-Kajtar boundary model -boundary_layers = 4 +boundary_layers = 3 spacing_ratio = 1 # ========================================================================================== @@ -66,9 +66,10 @@ ode = semidiscretize(semi, tspan) info_callback = InfoCallback(interval=50) saving_callback = SolutionSavingCallback(dt=0.02, prefix="") -pp_callback = nothing +# This is to easily add a new callback with `trixi_include` +extra_callback = nothing -callbacks = CallbackSet(info_callback, saving_callback, pp_callback) +callbacks = CallbackSet(info_callback, saving_callback, extra_callback) # Use a Runge-Kutta method with automatic (error based) time step size control. # Limiting of the maximum stepsize is necessary to prevent crashing. diff --git a/examples/postprocessing/investigate_relaxation.jl b/examples/postprocessing/investigate_relaxation.jl index 5f571a410..918aa4f5a 100644 --- a/examples/postprocessing/investigate_relaxation.jl +++ b/examples/postprocessing/investigate_relaxation.jl @@ -14,7 +14,7 @@ using Printf pp_cb = PostprocessCallback([calculate_ekin, max_pressure, avg_density], dt=0.05) trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), - pp_callback=pp_cb, tspan=(0.0, 5.0)); +extra_callback=pp_cb, tspan=(0.0, 5.0)); function calculate_regression(data::Vector{Float64}, t::Vector{Float64}) @assert length(data)==length(t) "Data and time vectors must have the same length" @@ -32,7 +32,7 @@ function calculate_regression(data::Vector{Float64}, t::Vector{Float64}) return trend, gradient end -file_path = TrixiParticles.get_latest_unique_filename(pwd(), "values", ".json") +file_path = TrixiParticles.get_latest_unique_filename(joinpath(pwd(), "out"), "values", ".json") if file_path != "" json_string = read(file_path, String) json_data = JSON.parse(json_string) diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index b54d01a02..3393d8bea 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -279,16 +279,16 @@ function (pp::PostprocessCallback)(integrator, finished::Bool) end if pp.write_json - println("writing a postproccessing results to ", filename_json) - abs_file_path = abspath(normpath(pp.output_directory)) * filename_json + abs_file_path = joinpath(abspath(normpath(pp.output_directory)), filename_json) + println("writing a postproccessing results to ", abs_file_path) open(abs_file_path, "w") do file JSON.print(file, data, 4) end end if pp.write_csv - println("writing a postproccessing results to ", filename_csv) - abs_file_path = abspath(normpath(pp.output_directory)) * filename_csv + abs_file_path = joinpath(abspath(normpath(pp.output_directory)), filename_csv) + println("writing a postproccessing results to ", abs_file_path) write_csv(abs_file_path, data) end From b1cd1fdc257446307e1a076c6f8bd070cbfc0a3c Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 8 Feb 2024 13:43:32 +0100 Subject: [PATCH 118/212] fixes --- .../postprocessing/investigate_relaxation.jl | 2 +- src/callbacks/post_process.jl | 41 ++++--------------- 2 files changed, 10 insertions(+), 33 deletions(-) diff --git a/examples/postprocessing/investigate_relaxation.jl b/examples/postprocessing/investigate_relaxation.jl index 918aa4f5a..2c0297398 100644 --- a/examples/postprocessing/investigate_relaxation.jl +++ b/examples/postprocessing/investigate_relaxation.jl @@ -11,7 +11,7 @@ using Printf # see also the implementation for the functions calculate_ekin, calculate_total_mass,... # pp_cb = PostprocessCallback([calculate_ekin, max_pressure, avg_density], interval=10) -pp_cb = PostprocessCallback([calculate_ekin, max_pressure, avg_density], dt=0.05) +pp_cb = PostprocessCallback(calculate_ekin, max_pressure, avg_density; dt=0.05) trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), extra_callback=pp_cb, tspan=(0.0, 5.0)); diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 3393d8bea..25bf3dd06 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -9,7 +9,7 @@ struct DataEntry end """ - PostprocessCallback(func; interval::Integer=0, dt=0.0, exclude_boundary=true, filename="values", + PostprocessCallback(funcs...; interval::Integer=0, dt=0.0, exclude_boundary=true, filename="values", output_directory=".", overwrite=true, write_csv=true, write_json=true) Create a callback for post-processing simulation data at regular intervals. @@ -57,7 +57,7 @@ mutable struct PostprocessCallback{I, F} write_json :: Bool end -function PostprocessCallback(func; interval::Integer=0, dt=0.0, exclude_boundary=true, +function PostprocessCallback(funcs...; interval::Integer=0, dt=0.0, exclude_boundary=true, output_directory="out", filename="values", overwrite=true, write_csv=true, write_json=true) if dt > 0 && interval > 0 @@ -69,7 +69,7 @@ function PostprocessCallback(func; interval::Integer=0, dt=0.0, exclude_boundary end post_callback = PostprocessCallback(interval, Dict{String, Vector{DataEntry}}(), - exclude_boundary, func, filename, output_directory, + exclude_boundary, funcs, filename, output_directory, overwrite, write_csv, write_json) if dt > 0 # Add a `tstop` every `dt`, and save the final solution. @@ -138,6 +138,9 @@ function Base.show(io::IO, ::MIME"text/plain", end function initialize_post_callback!(cb, u, t, integrator) + # The `PostprocessCallback` is either `cb.affect!` (with `DiscreteCallback`) + # or `cb.affect!.affect!` (with `PeriodicCallback`). + # Let recursive dispatch handle this. initialize_post_callback!(cb.affect!, u, t, integrator) end @@ -147,6 +150,8 @@ function initialize_post_callback!(cb::PostprocessCallback, u, t, integrator) semi = integrator.p v_ode, u_ode = u.x update_systems_and_nhs(v_ode, u_ode, semi, t) + + # Apply the callback cb(integrator) return nothing end @@ -165,36 +170,8 @@ function (pp::PostprocessCallback)(u, t, integrator) isfinished(integrator) end -# affect! function for a single function -function (pp::PostprocessCallback{I, F})(integrator) where {I, F <: Function} - vu_ode = integrator.u - v_ode, u_ode = vu_ode.x - semi = integrator.p - t = integrator.t - filenames = system_names(semi.systems) - - foreach_system(semi) do system - if system isa BoundarySystem && pp.exclude_boundary - return - end - - system_index = system_indices(system, semi) - - v = wrap_v(v_ode, system, semi) - u = wrap_u(u_ode, system, semi) - pp.func(pp, t, system, u, v, filenames[system_index]) - end - - if isfinished(integrator) - pp(integrator, true) - end - - # Tell OrdinaryDiffEq that u has not been modified - u_modified!(integrator, false) -end - # affect! function for an array of functions -function (pp::PostprocessCallback{I, F})(integrator) where {I, F <: Array} +function (pp::PostprocessCallback)(integrator) vu_ode = integrator.u v_ode, u_ode = vu_ode.x semi = integrator.p From 58691fa14886d890408a1f0ca97580268e305ef5 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 8 Feb 2024 13:44:03 +0100 Subject: [PATCH 119/212] review --- src/callbacks/post_process.jl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 25bf3dd06..46e1e00ec 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -149,6 +149,8 @@ function initialize_post_callback!(cb::PostprocessCallback, u, t, integrator) # Update systems to compute quantities like density and pressure. semi = integrator.p v_ode, u_ode = u.x + + # Update systems to compute quantities like density and pressure update_systems_and_nhs(v_ode, u_ode, semi, t) # Apply the callback From 1ac5e2d3959eedcbccbb2819b8b48ef6e0c20de4 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 8 Feb 2024 14:50:38 +0100 Subject: [PATCH 120/212] review --- .../postprocessing/investigate_relaxation.jl | 4 +- src/TrixiParticles.jl | 3 ++ src/callbacks/post_process.jl | 38 ++++++++----------- src/callbacks/solution_saving.jl | 4 +- src/general/file_system.jl | 4 -- src/visualization/write2vtk.jl | 2 +- 6 files changed, 24 insertions(+), 31 deletions(-) diff --git a/examples/postprocessing/investigate_relaxation.jl b/examples/postprocessing/investigate_relaxation.jl index 2c0297398..fcdaabb23 100644 --- a/examples/postprocessing/investigate_relaxation.jl +++ b/examples/postprocessing/investigate_relaxation.jl @@ -10,8 +10,8 @@ using Printf # example_cb = PostprocessCallback([a,]) # see also the implementation for the functions calculate_ekin, calculate_total_mass,... -# pp_cb = PostprocessCallback([calculate_ekin, max_pressure, avg_density], interval=10) -pp_cb = PostprocessCallback(calculate_ekin, max_pressure, avg_density; dt=0.05) +pp_cb = PostprocessCallback(calculate_ekin, max_pressure, avg_density, interval=10) +# pp_cb = PostprocessCallback(calculate_ekin, max_pressure, avg_density; dt=0.05) trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), extra_callback=pp_cb, tspan=(0.0, 5.0)); diff --git a/src/TrixiParticles.jl b/src/TrixiParticles.jl index 728559031..4839c2326 100644 --- a/src/TrixiParticles.jl +++ b/src/TrixiParticles.jl @@ -2,10 +2,13 @@ module TrixiParticles using Reexport: @reexport +using CSV using Dates +using DataFrames using DiffEqCallbacks: PeriodicCallback, PeriodicCallbackAffect using FastPow: @fastpow using ForwardDiff: ForwardDiff +using JSON using LinearAlgebra: norm, dot, I, tr, inv, pinv, det using Morton: cartesian2morton using MuladdMacro: @muladd diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 46e1e00ec..0e88b9824 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -1,7 +1,3 @@ -using JSON -using CSV -using DataFrames - struct DataEntry value::Float64 time::Float64 @@ -206,15 +202,12 @@ end # that maps each key to separate arrays of times and values, sorted by time, and includes system name. function prepare_series_data!(data, post_callback) for (key, data_array) in post_callback.values - # Sort the data_array by time - sorted_data_array = sort(data_array, by=data -> data.time) - # Extracting times and values into separate arrays - data_times = [data.time for data in sorted_data_array] - data_values = [data.value for data in sorted_data_array] + data_times = [data_.time for data_ in data_array] + data_values = [data_.value for data_ in data_array] - # Assuming each DataEntry in `sorted_data_array` has a `system` field. - system_name = isempty(sorted_data_array) ? "" : sorted_data_array[1].system + # Assuming each `DataEntry` in `data_array` has a `system` field + system_name = isempty(data_array) ? "" : data_array[1].system data[key] = create_series_dict(data_values, data_times, system_name) end @@ -231,10 +224,10 @@ function create_series_dict(values, times, system_name="") "time" => times) end -function meta_data!(data) +function write_meta_data!(data) meta_data = Dict("solver_name" => "TrixiParticles.jl", "solver_version" => get_git_hash(), - "julia_version" => get_julia_version()) + "julia_version" => string(VERSION)) data["meta"] = meta_data return data @@ -243,12 +236,12 @@ end # After the simulation has finished, this function is called to write the data to a JSON file. function (pp::PostprocessCallback)(integrator, finished::Bool) if isempty(pp.values) - return nothing + return end data = Dict() - data = meta_data!(data) - data = prepare_series_data!(data, pp) + write_meta_data!(data) + prepare_series_data!(data, pp) filename_json = pp.filename * ".json" filename_csv = pp.filename * ".csv" @@ -258,16 +251,17 @@ function (pp::PostprocessCallback)(integrator, finished::Bool) end if pp.write_json - abs_file_path = joinpath(abspath(normpath(pp.output_directory)), filename_json) - println("writing a postproccessing results to ", abs_file_path) + abs_file_path = joinpath(abspath(pp.output_directory), filename_json) + @info "Writing postproccessing results to $abs_file_path" open(abs_file_path, "w") do file + # indent by 4 spaces JSON.print(file, data, 4) end end if pp.write_csv - abs_file_path = joinpath(abspath(normpath(pp.output_directory)), filename_csv) - println("writing a postproccessing results to ", abs_file_path) + abs_file_path = joinpath(abspath(pp.output_directory), filename_csv) + @info "Writing postproccessing results to $abs_file_path" write_csv(abs_file_path, data) end @@ -302,7 +296,7 @@ function calculate_ekin(pp, t, system, u, v, system_name) ekin = 0.0 for particle in each_moving_particle(system) velocity = current_velocity(v, system, particle) - ekin += 0.5 * hydrodynamic_mass(system, particle) * dot(velocity, velocity) + ekin += 0.5 * system.mass[particle] * dot(velocity, velocity) end add_entry!(pp, "ekin", t, ekin, system_name) end @@ -310,7 +304,7 @@ end function calculate_total_mass(pp, t, system, u, v, system_name) total_mass = 0.0 for particle in each_moving_particle(system) - total_mass += hydrodynamic_mass(system, particle) + total_mass += system.mass[particle] end add_entry!(pp, "totalm", t, total_mass, system_name) end diff --git a/src/callbacks/solution_saving.jl b/src/callbacks/solution_saving.jl index 884deb482..0b8af000c 100644 --- a/src/callbacks/solution_saving.jl +++ b/src/callbacks/solution_saving.jl @@ -207,7 +207,7 @@ function Base.show(io::IO, ::MIME"text/plain", "yes" : "no", "save final solution" => solution_saving.save_final_solution ? "yes" : "no", - "output directory" => abspath(normpath(solution_saving.output_directory)), + "output directory" => abspath(solution_saving.output_directory), "prefix" => solution_saving.prefix, ] summary_box(io, "SolutionSavingCallback", setup) @@ -232,7 +232,7 @@ function Base.show(io::IO, ::MIME"text/plain", "yes" : "no", "save final solution" => solution_saving.save_final_solution ? "yes" : "no", - "output directory" => abspath(normpath(solution_saving.output_directory)), + "output directory" => abspath(solution_saving.output_directory), "prefix" => solution_saving.prefix, ] summary_box(io, "SolutionSavingCallback", setup) diff --git a/src/general/file_system.jl b/src/general/file_system.jl index c36726da8..5e05dc6ba 100644 --- a/src/general/file_system.jl +++ b/src/general/file_system.jl @@ -75,7 +75,3 @@ function get_git_hash() end end end - -function get_julia_version() - return string(VERSION) -end diff --git a/src/visualization/write2vtk.jl b/src/visualization/write2vtk.jl index 80e33a285..c52d7b453 100644 --- a/src/visualization/write2vtk.jl +++ b/src/visualization/write2vtk.jl @@ -92,7 +92,7 @@ function trixi2vtk(v, u, t, system, periodic_box; output_directory="out", prefix if write_meta_data vtk["solver_version"] = get_git_hash() - vtk["julia_version"] = get_julia_version() + vtk["julia_version"] = string(VERSION) end # Extract custom quantities for this system From b1ca14963cd249c193ae60c32854c31a739c6fa1 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 8 Feb 2024 14:56:22 +0100 Subject: [PATCH 121/212] change git --- src/general/file_system.jl | 27 ++++----------------------- 1 file changed, 4 insertions(+), 23 deletions(-) diff --git a/src/general/file_system.jl b/src/general/file_system.jl index 5e05dc6ba..455a58e4e 100644 --- a/src/general/file_system.jl +++ b/src/general/file_system.jl @@ -50,28 +50,9 @@ function system_names(systems) end function get_git_hash() - cmd = `git rev-parse HEAD` - out = IOBuffer() - err = IOBuffer() - - # Run the command and wait for it to complete - process = run(pipeline(cmd, stdout=out, stderr=err), wait=true) - - # Rewind the IOBuffers to read from the start - seekstart(out) - seekstart(err) - - git_hash = read(out, String) - git_error = read(err, String) - - # Check the exit code of the process - if process.exitcode == 0 - return string(chomp(git_hash)) - else - if occursin("not a git repository", git_error) - return "Not a Git repository" - else - return "Git is not installed or not accessible" - end + try + return string(readchomp(Cmd(`git describe --tags --always --first-parent --dirty`, dir=pkgdir(@__MODULE__)))) + catch e + return "Git is not installed or not accessible" end end From cd2f7ca1f6cdd9d1053daa6ea415d913ae0ac510 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 8 Feb 2024 15:00:07 +0100 Subject: [PATCH 122/212] change type --- src/callbacks/post_process.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 0e88b9824..d352f91da 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -239,7 +239,7 @@ function (pp::PostprocessCallback)(integrator, finished::Bool) return end - data = Dict() + data = Dict{String, Any}() write_meta_data!(data) prepare_series_data!(data, pp) From ceacf7e33cac377878bbdc1cb99cee66067b424c Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 8 Feb 2024 15:30:27 +0100 Subject: [PATCH 123/212] remove mutable --- src/callbacks/post_process.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index d352f91da..d3de7f09b 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -41,7 +41,7 @@ postprocess_callback = PostprocessCallback(example_function, interval=100) postprocess_callback = PostprocessCallback(example_function, dt=0.1) ``` """ -mutable struct PostprocessCallback{I, F} +struct PostprocessCallback{I, F} interval :: I values :: Dict{String, Vector{DataEntry}} exclude_boundary :: Bool From b12a122a9605569337e6bb4239d30c11cad140dd Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 8 Feb 2024 16:45:47 +0100 Subject: [PATCH 124/212] add new example --- examples/postprocessing/postprocessing.jl | 39 +++++++++++++++++++ src/general/file_system.jl | 3 +- .../investigate_relaxation.jl | 13 ++----- 3 files changed, 45 insertions(+), 10 deletions(-) create mode 100644 examples/postprocessing/postprocessing.jl rename {examples/postprocessing => validation}/investigate_relaxation.jl (85%) diff --git a/examples/postprocessing/postprocessing.jl b/examples/postprocessing/postprocessing.jl new file mode 100644 index 000000000..aa76b765e --- /dev/null +++ b/examples/postprocessing/postprocessing.jl @@ -0,0 +1,39 @@ +using TrixiParticles +using JSON +using CSV +using DataFrames +using Plots + +# Any function can be implemented and will be called every 10th timestep! See example below: +function hello(pp, t, system, u, v, system_name) + # will write "hello" and the current simulation time + println("hello at ", t) +end +example_cb = PostprocessCallback(hello; interval=10) + +trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), + extra_callback=example_cb, tspan=(0.0, 0.1)); + +# Lets write the average pressure and kinetic energy every 0.01s +pp = PostprocessCallback(avg_pressure, calculate_ekin; dt=0.005) + +trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), + extra_callback=pp, tspan=(0.0, 0.1)); + +data = CSV.read("out/values.csv", DataFrame) + +# or alternatively using JSON +# file_content = read("out/values.csv", String) +# data = JSON.parse(file_content) +# time = data["ekin_fluid_1"]["time"] +# values_ekin = data["ekin_fluid_1"]["values"] +# values_avg_p = data["avg_p_fluid_1"]["values"] + +# Create side-by-side subplots +p1 = plot(data.time, data.ekin_fluid_1, label="kinetic energy", color=:blue, + title="Kin. Energy over Time", xlabel="Time", ylabel="Kin. E") +p2 = plot(data.time, data.avg_p_fluid_1, label="average pressure", color=:red, + title="avg P over Time", xlabel="Time", ylabel="Pressure") + +# Combine plots into a single figure +plot(p1, p2, layout=(1, 2), legend=false) diff --git a/src/general/file_system.jl b/src/general/file_system.jl index 455a58e4e..ef65245ff 100644 --- a/src/general/file_system.jl +++ b/src/general/file_system.jl @@ -51,7 +51,8 @@ end function get_git_hash() try - return string(readchomp(Cmd(`git describe --tags --always --first-parent --dirty`, dir=pkgdir(@__MODULE__)))) + return string(readchomp(Cmd(`git describe --tags --always --first-parent --dirty`, + dir=pkgdir(@__MODULE__)))) catch e return "Git is not installed or not accessible" end diff --git a/examples/postprocessing/investigate_relaxation.jl b/validation/investigate_relaxation.jl similarity index 85% rename from examples/postprocessing/investigate_relaxation.jl rename to validation/investigate_relaxation.jl index fcdaabb23..bf573b666 100644 --- a/examples/postprocessing/investigate_relaxation.jl +++ b/validation/investigate_relaxation.jl @@ -5,16 +5,10 @@ using GLM using DataFrames using Printf -# Any function can be implemented and will be called after each timestep! See example below: -# a = function(pp, t, system, u, v, system_name) println("test_func ", t) end -# example_cb = PostprocessCallback([a,]) - -# see also the implementation for the functions calculate_ekin, calculate_total_mass,... -pp_cb = PostprocessCallback(calculate_ekin, max_pressure, avg_density, interval=10) -# pp_cb = PostprocessCallback(calculate_ekin, max_pressure, avg_density; dt=0.05) +pp_cb = PostprocessCallback(calculate_ekin, max_pressure, avg_density; dt=0.05) trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), -extra_callback=pp_cb, tspan=(0.0, 5.0)); + extra_callback=pp_cb, tspan=(0.0, 5.0)); function calculate_regression(data::Vector{Float64}, t::Vector{Float64}) @assert length(data)==length(t) "Data and time vectors must have the same length" @@ -32,7 +26,8 @@ function calculate_regression(data::Vector{Float64}, t::Vector{Float64}) return trend, gradient end -file_path = TrixiParticles.get_latest_unique_filename(joinpath(pwd(), "out"), "values", ".json") +file_path = TrixiParticles.get_latest_unique_filename(joinpath(pwd(), "out"), "values", + ".json") if file_path != "" json_string = read(file_path, String) json_data = JSON.parse(json_string) From 92a88fa459c0c7f997a7c908bc172fe682aa0220 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 8 Feb 2024 17:36:48 +0100 Subject: [PATCH 125/212] change to plots.jl --- validation/investigate_relaxation.jl | 60 ++++++++++++---------------- 1 file changed, 26 insertions(+), 34 deletions(-) diff --git a/validation/investigate_relaxation.jl b/validation/investigate_relaxation.jl index bf573b666..84e124cee 100644 --- a/validation/investigate_relaxation.jl +++ b/validation/investigate_relaxation.jl @@ -1,6 +1,6 @@ using TrixiParticles using JSON -using PythonPlot +using Plots using GLM using DataFrames using Printf @@ -28,6 +28,7 @@ end file_path = TrixiParticles.get_latest_unique_filename(joinpath(pwd(), "out"), "values", ".json") + if file_path != "" json_string = read(file_path, String) json_data = JSON.parse(json_string) @@ -36,43 +37,34 @@ if file_path != "" ekin = Vector{Float64}(json_data["ekin_fluid_1"]["values"]) tl_ekin, grad_ekin = calculate_regression(ekin, time) + x_position_for_annotation = minimum(time) + (maximum(time) - minimum(time)) * 0.5 + p_max = Vector{Float64}(json_data["max_p_fluid_1"]["values"]) tl_p_max, grad_p_max = calculate_regression(p_max, time) avg_rho = Vector{Float64}(json_data["avg_rho_fluid_1"]["values"]) tl_avg_rho, grad_avg_rho = calculate_regression(avg_rho, time) - fig, (subplot1, subplot2, subplot3) = subplots(1, 3, figsize=(18, 5)) - - subplot1.plot(time, ekin, linestyle="-", label="sim") - subplot1.plot(time, tl_ekin, label="trend (gradient=$(@sprintf("%.5f", grad_ekin)))", - color="red", linewidth=2) - subplot1.set_xlabel("Time [s]") - subplot1.set_ylabel("kinetic energy [J]") - subplot1.set_title("Kinetic Energy of the Fluid") - subplot1.legend(loc="lower center", bbox_to_anchor=(0.5, -0.25), ncol=2, fancybox=true, - shadow=true) - - subplot2.plot(time, p_max, linestyle="-", label="sim") - subplot2.plot(time, tl_p_max, label="trend (gradient=$(@sprintf("%.5f", grad_p_max)))", - color="red", linewidth=2) - subplot2.set_xlabel("Time [s]") - subplot2.set_ylabel("Max. Pressure [Pa]") - subplot2.set_title("Maximum Pressure of the Fluid") - subplot2.legend(loc="lower center", bbox_to_anchor=(0.5, -0.25), ncol=2, fancybox=true, - shadow=true) - - subplot3.plot(time, avg_rho, linestyle="-", label="With Endpoint") - subplot3.plot(time, tl_avg_rho, - label="trend (gradient=$(@sprintf("%.5f", grad_avg_rho)))", - color="red", linewidth=2) - subplot3.set_xlabel("Time [s]") - subplot3.set_ylabel("Avg. Density [kg/m^3]") - subplot3.set_title("Avg. Density of the Fluid") - subplot3.legend(loc="lower center", bbox_to_anchor=(0.5, -0.25), ncol=2, fancybox=true, - shadow=true) - - fig.subplots_adjust(left=0.1, right=0.9, bottom=0.2, top=0.9, wspace=0.4, hspace=0.4) - - plotshow() + plot1 = plot(time, [ekin, tl_ekin], label=["sim" "trend"], color=[:blue :red], + linewidth=[2 2], + title="Kinetic Energy of the Fluid", xlabel="Time [s]", + ylabel="kinetic energy [J]") + annotate!(x_position_for_annotation, ylims(plot1)[2]-0.0001, + @sprintf("gradient=%.5f", grad_ekin)) + + plot2 = plot(time, [p_max, tl_p_max], label=["sim" "trend"], color=[:blue :red], + linewidth=[2 2], + title="Maximum Pressure of the Fluid", xlabel="Time [s]", + ylabel="Max. Pressure [Pa]") + annotate!(x_position_for_annotation, ylims(plot2)[2]-5.5, + @sprintf("gradient=%.5f", grad_p_max)) + + plot3 = plot(time, [avg_rho, tl_avg_rho], label=["sim" "trend"], color=[:blue :red], + linewidth=[2 2], + title="Avg. Density of the Fluid", xlabel="Time [s]", + ylabel="Avg. Density [kg/m^3]") + annotate!(x_position_for_annotation, ylims(plot3)[2]-0.003, + @sprintf("gradient=%.5f", grad_avg_rho)) + + plot(plot1, plot2, plot3, layout=(1, 3), legend=:bottom, size=(1800, 500)) end From b22bccb6f0af63275c06e3f6d54cbed0d9029df3 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 8 Feb 2024 17:39:35 +0100 Subject: [PATCH 126/212] increase the resolution --- validation/investigate_relaxation.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/validation/investigate_relaxation.jl b/validation/investigate_relaxation.jl index 84e124cee..2ed36dafd 100644 --- a/validation/investigate_relaxation.jl +++ b/validation/investigate_relaxation.jl @@ -5,7 +5,7 @@ using GLM using DataFrames using Printf -pp_cb = PostprocessCallback(calculate_ekin, max_pressure, avg_density; dt=0.05) +pp_cb = PostprocessCallback(calculate_ekin, max_pressure, avg_density; dt=0.025) trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), extra_callback=pp_cb, tspan=(0.0, 5.0)); From 4e156d270fdc7e0911a0126404a34ba9cf0fd947 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 8 Feb 2024 17:40:28 +0100 Subject: [PATCH 127/212] include into CI --- test/examples/examples.jl | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/examples/examples.jl b/test/examples/examples.jl index cf2301674..66570a0cb 100644 --- a/test/examples/examples.jl +++ b/test/examples/examples.jl @@ -184,5 +184,11 @@ "interpolation_point_line.jl")) @test sol.retcode == ReturnCode.Success end + @trixi_testset "postprocessing/postprocessing.jl" begin + @test_nowarn_mod trixi_include(@__MODULE__, + joinpath(examples_dir(), "postprocessing", + "postprocessing.jl")) + @test sol.retcode == ReturnCode.Success + end end end From 20b0c759e42aad94ccffb4b76f5aa9c045d9b40f Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 8 Feb 2024 18:03:23 +0100 Subject: [PATCH 128/212] move condition --- src/callbacks/callbacks.jl | 12 ++++++++++++ src/callbacks/post_process.jl | 9 +-------- src/callbacks/solution_saving.jl | 10 ++-------- validation/investigate_relaxation.jl | 6 +++--- 4 files changed, 18 insertions(+), 19 deletions(-) diff --git a/src/callbacks/callbacks.jl b/src/callbacks/callbacks.jl index e1266a4cf..9e7ff0b19 100644 --- a/src/callbacks/callbacks.jl +++ b/src/callbacks/callbacks.jl @@ -14,6 +14,18 @@ end integrator.iter == integrator.opts.maxiters end +@inline function condition_integrator_interval(integrator, interval, + save_final_solution=true) + # With error-based step size control, some steps can be rejected. Thus, + # `integrator.iter >= integrator.stats.naccept` + # (total #steps) (#accepted steps) + # We need to check the number of accepted steps since callbacks are not + # activated after a rejected step. + return interval > 0 && (((integrator.stats.naccept % interval == 0) && + !(integrator.stats.naccept == 0 && integrator.iter > 0)) || + (save_final_solution && isfinished(integrator))) +end + include("info.jl") include("solution_saving.jl") include("density_reinit.jl") diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index d3de7f09b..5361eae6f 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -158,14 +158,7 @@ end function (pp::PostprocessCallback)(u, t, integrator) (; interval) = pp - # With error-based step size control, some steps can be rejected. Thus, - # `integrator.iter >= integrator.stats.naccept` - # (total #steps) (#accepted steps) - # We need to check the number of accepted steps since callbacks are not - # activated after a rejected step. - return (interval > 0 && ((integrator.stats.naccept % interval == 0) && - !(integrator.stats.naccept == 0 && integrator.iter > 0))) || - isfinished(integrator) + condition_integrator_interval(integrator, interval) end # affect! function for an array of functions diff --git a/src/callbacks/solution_saving.jl b/src/callbacks/solution_saving.jl index 0b8af000c..e73c083c2 100644 --- a/src/callbacks/solution_saving.jl +++ b/src/callbacks/solution_saving.jl @@ -127,14 +127,8 @@ end function (solution_callback::SolutionSavingCallback)(u, t, integrator) (; interval, save_final_solution) = solution_callback - # With error-based step size control, some steps can be rejected. Thus, - # `integrator.iter >= integrator.stats.naccept` - # (total #steps) (#accepted steps) - # We need to check the number of accepted steps since callbacks are not - # activated after a rejected step. - return interval > 0 && (((integrator.stats.naccept % interval == 0) && - !(integrator.stats.naccept == 0 && integrator.iter > 0)) || - (save_final_solution && isfinished(integrator))) + condition_integrator_interval(integrator, interval, + save_final_solution=save_final_solution) end # affect! diff --git a/validation/investigate_relaxation.jl b/validation/investigate_relaxation.jl index 2ed36dafd..eb7ae8edf 100644 --- a/validation/investigate_relaxation.jl +++ b/validation/investigate_relaxation.jl @@ -49,21 +49,21 @@ if file_path != "" linewidth=[2 2], title="Kinetic Energy of the Fluid", xlabel="Time [s]", ylabel="kinetic energy [J]") - annotate!(x_position_for_annotation, ylims(plot1)[2]-0.0001, + annotate!(x_position_for_annotation, ylims(plot1)[2] - 0.0001, @sprintf("gradient=%.5f", grad_ekin)) plot2 = plot(time, [p_max, tl_p_max], label=["sim" "trend"], color=[:blue :red], linewidth=[2 2], title="Maximum Pressure of the Fluid", xlabel="Time [s]", ylabel="Max. Pressure [Pa]") - annotate!(x_position_for_annotation, ylims(plot2)[2]-5.5, + annotate!(x_position_for_annotation, ylims(plot2)[2] - 5.5, @sprintf("gradient=%.5f", grad_p_max)) plot3 = plot(time, [avg_rho, tl_avg_rho], label=["sim" "trend"], color=[:blue :red], linewidth=[2 2], title="Avg. Density of the Fluid", xlabel="Time [s]", ylabel="Avg. Density [kg/m^3]") - annotate!(x_position_for_annotation, ylims(plot3)[2]-0.003, + annotate!(x_position_for_annotation, ylims(plot3)[2] - 0.003, @sprintf("gradient=%.5f", grad_avg_rho)) plot(plot1, plot2, plot3, layout=(1, 3), legend=:bottom, size=(1800, 500)) From 6e3a9999e16f6a020a31ad8774ed596f9647986e Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 9 Feb 2024 13:34:25 +0100 Subject: [PATCH 129/212] add more output to summary box --- src/callbacks/post_process.jl | 38 +++++++++++++++++++++++++---------- src/general/file_system.jl | 37 ---------------------------------- 2 files changed, 27 insertions(+), 48 deletions(-) diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 5361eae6f..f410ffb7d 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -26,9 +26,9 @@ a fixed interval of simulation time (`dt`). - `exclude_boundary=true`: If set to `true`, boundary particles will be excluded from the post-processing. - `filename="values"`: The filename of the postprocessing files to be saved. - `output_directory="out"`: The path where the results of the post-processing will be saved. -- `overwrite=true`: If set to `true`, existing files with the same name as `filename` will be overwritten. - `write_csv=true`: If set to `true`, write an csv file. - `write_json=true`: If set to `true`, write a json file. +- `append_timestep=false`: If set to `true`, the current timestamp will be added to the filename. # Examples ```julia @@ -48,13 +48,13 @@ struct PostprocessCallback{I, F} func :: F filename :: String output_directory :: String - overwrite :: Bool + append_timestamp :: Bool write_csv :: Bool write_json :: Bool end function PostprocessCallback(funcs...; interval::Integer=0, dt=0.0, exclude_boundary=true, - output_directory="out", filename="values", overwrite=true, + output_directory="out", filename="values", append_timestamp=false, write_csv=true, write_json=true) if dt > 0 && interval > 0 throw(ArgumentError("Setting both interval and dt is not supported!")) @@ -66,7 +66,7 @@ function PostprocessCallback(funcs...; interval::Integer=0, dt=0.0, exclude_boun post_callback = PostprocessCallback(interval, Dict{String, Vector{DataEntry}}(), exclude_boundary, funcs, filename, output_directory, - overwrite, write_csv, write_json) + append_timestamp, write_csv, write_json) if dt > 0 # Add a `tstop` every `dt`, and save the final solution. return PeriodicCallback(post_callback, dt, @@ -107,7 +107,15 @@ function Base.show(io::IO, ::MIME"text/plain", show(io, cb) else callback = cb.affect! - setup = ["interval" => string(callback.interval)] + setup = [ + "interval" => string(callback.interval), + "exclude boundary" => callback.exclude_boundary ? "yes" : "no", + "filename" => callback.filename, + "output directory" => callback.output_directory, + "append timestamp" => callback.append_timestamp ? "yes" : "no", + "write json file" => callback.write_csv ? "yes" : "no", + "write csv file" => callback.write_json ? "yes" : "no", + ] for (i, f) in enumerate(callback.func) push!(setup, "function$i" => string(nameof(f))) @@ -124,7 +132,15 @@ function Base.show(io::IO, ::MIME"text/plain", show(io, cb) else callback = cb.affect!.affect! - setup = ["interval" => string(callback.interval)] + setup = [ + "interval" => string(callback.interval), + "exclude boundary" => callback.exclude_boundary ? "yes" : "no", + "filename" => callback.filename, + "output directory" => callback.output_directory, + "append timestamp" => callback.append_timestamp ? "yes" : "no", + "write json file" => callback.write_csv ? "yes" : "no", + "write csv file" => callback.write_json ? "yes" : "no", + ] for (i, f) in enumerate(callback.func) push!(setup, "function$i" => string(nameof(f))) @@ -236,12 +252,12 @@ function (pp::PostprocessCallback)(integrator, finished::Bool) write_meta_data!(data) prepare_series_data!(data, pp) - filename_json = pp.filename * ".json" - filename_csv = pp.filename * ".csv" - if !pp.overwrite - filename_json = get_unique_filename(pp.filename, ".json") - filename_csv = get_unique_filename(pp.filename, ".csv") + time_stamp = "" + if pp.append_timestamp + time_stamp = string("_", Dates.format(now(), "YY-mm-ddTHHMMSS")) end + filename_json = pp.filename * time_stamp * ".json" + filename_csv = pp.filename * time_stamp * ".csv" if pp.write_json abs_file_path = joinpath(abspath(pp.output_directory), filename_json) diff --git a/src/general/file_system.jl b/src/general/file_system.jl index ef65245ff..39d37394b 100644 --- a/src/general/file_system.jl +++ b/src/general/file_system.jl @@ -1,40 +1,3 @@ -# This function creates a unique filename by appending a number to the base name if needed. -function get_unique_filename(base_name, extension) - # Ensure the extension starts with a dot - extension = startswith(extension, ".") ? extension : "." * extension - - filename = base_name * extension - counter = 1 - - while isfile(filename) - filename = base_name * string(counter) * extension - counter += 1 - end - - return filename -end - -function get_latest_unique_filename(dir_path, base_name, extension) - files = readdir(dir_path) - extension_regex = startswith(extension, ".") ? escape_string(extension) : - "\\." * escape_string(extension) - regex_pattern = "^" * escape_string(base_name) * "\\d*" * extension_regex * "\$" - - regex = Regex(regex_pattern) - - # Filter files based on the constructed regex - matching_files = filter(x -> occursin(regex, x), files) - - if isempty(matching_files) - println("No matching files found.") - return "" - end - - recent_file = sort(matching_files, by=x -> stat(joinpath(dir_path, x)).ctime, rev=true)[1] - file_path = joinpath(dir_path, recent_file) - return file_path -end - vtkname(system::FluidSystem) = "fluid" vtkname(system::SolidSystem) = "solid" vtkname(system::BoundarySystem) = "boundary" From 5f27c345fa76a01d543e5dedc6788c92dc08bdb0 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 9 Feb 2024 15:35:03 +0100 Subject: [PATCH 130/212] update --- examples/postprocessing/postprocessing.jl | 13 +++--- src/TrixiParticles.jl | 2 +- src/callbacks/post_process.jl | 53 +++++++++++++---------- validation/investigate_relaxation.jl | 15 +++---- 4 files changed, 47 insertions(+), 36 deletions(-) diff --git a/examples/postprocessing/postprocessing.jl b/examples/postprocessing/postprocessing.jl index aa76b765e..890a31131 100644 --- a/examples/postprocessing/postprocessing.jl +++ b/examples/postprocessing/postprocessing.jl @@ -5,9 +5,12 @@ using DataFrames using Plots # Any function can be implemented and will be called every 10th timestep! See example below: -function hello(pp, t, system, u, v, system_name) +function hello(t, v, u, system) # will write "hello" and the current simulation time println("hello at ", t) + + # value stored for output in the postprocessing output file + return 2 * t end example_cb = PostprocessCallback(hello; interval=10) @@ -15,15 +18,15 @@ trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2 extra_callback=example_cb, tspan=(0.0, 0.1)); # Lets write the average pressure and kinetic energy every 0.01s -pp = PostprocessCallback(avg_pressure, calculate_ekin; dt=0.005) +pp = PostprocessCallback(avg_pressure, ekin; dt=0.005, filename="example_pressure_ekin") trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), extra_callback=pp, tspan=(0.0, 0.1)); -data = CSV.read("out/values.csv", DataFrame) +data = CSV.read("out/example_pressure_ekin.csv", DataFrame) # or alternatively using JSON -# file_content = read("out/values.csv", String) +# file_content = read("out/example_pressure_ekin.csv", String) # data = JSON.parse(file_content) # time = data["ekin_fluid_1"]["time"] # values_ekin = data["ekin_fluid_1"]["values"] @@ -32,7 +35,7 @@ data = CSV.read("out/values.csv", DataFrame) # Create side-by-side subplots p1 = plot(data.time, data.ekin_fluid_1, label="kinetic energy", color=:blue, title="Kin. Energy over Time", xlabel="Time", ylabel="Kin. E") -p2 = plot(data.time, data.avg_p_fluid_1, label="average pressure", color=:red, +p2 = plot(data.time, data.avg_pressure_fluid_1, label="average pressure", color=:red, title="avg P over Time", xlabel="Time", ylabel="Pressure") # Combine plots into a single figure diff --git a/src/TrixiParticles.jl b/src/TrixiParticles.jl index 4839c2326..e5b7b90bf 100644 --- a/src/TrixiParticles.jl +++ b/src/TrixiParticles.jl @@ -64,7 +64,7 @@ export SourceTermDamping export ShepardKernelCorrection, KernelCorrection, AkinciFreeSurfaceCorrection, GradientCorrection, BlendedGradientCorrection, MixedKernelGradientCorrection export nparticles -export calculate_ekin, calculate_total_mass, max_pressure, min_pressure, avg_pressure, +export ekin, total_mass, max_pressure, min_pressure, avg_pressure, max_density, min_density, avg_density export interpolate_line, interpolate_point, interpolate_plane_3d, interpolate_plane_2d diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index f410ffb7d..3dc311895 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -195,7 +195,9 @@ function (pp::PostprocessCallback)(integrator) v = wrap_v(v_ode, system, semi) u = wrap_u(u_ode, system, semi) for f in pp.func - f(pp, t, system, u, v, filenames[system_index]) + # f(pp, t, system, u, v, filenames[system_index]) + result = f(t, v, u, system) + add_entry!(pp, string(nameof(f)), t, result, filenames[system_index]) end end @@ -277,7 +279,14 @@ function (pp::PostprocessCallback)(integrator, finished::Bool) end function write_csv(abs_file_path, data) - times = collect(values(data))[1]["time"] + times = Float64[] + + for val in values(data) + if haskey(val, "time") + times = val["time"] + break + end + end df = DataFrame(time=times) # Initialize DataFrame with time column for (key, series) in data @@ -301,24 +310,24 @@ function add_entry!(pp, entry_key, t, value, system_name) push!(entries, DataEntry(value, t, system_name)) end -function calculate_ekin(pp, t, system, u, v, system_name) - ekin = 0.0 +function ekin(t, v, u, system) + e_kin = 0.0 for particle in each_moving_particle(system) velocity = current_velocity(v, system, particle) - ekin += 0.5 * system.mass[particle] * dot(velocity, velocity) + e_kin += 0.5 * system.mass[particle] * dot(velocity, velocity) end - add_entry!(pp, "ekin", t, ekin, system_name) + return e_kin end -function calculate_total_mass(pp, t, system, u, v, system_name) - total_mass = 0.0 +function total_mass(t, v, u, system) + tm = 0.0 for particle in each_moving_particle(system) - total_mass += system.mass[particle] + tm += system.mass[particle] end - add_entry!(pp, "totalm", t, total_mass, system_name) + return tm end -function max_pressure(pp, t, system, u, v, system_name) +function max_pressure(t, v, u, system) max_p = 0.0 for particle in each_moving_particle(system) pressure = particle_pressure(v, system, particle) @@ -326,10 +335,10 @@ function max_pressure(pp, t, system, u, v, system_name) max_p = pressure end end - add_entry!(pp, "max_p", t, max_p, system_name) + return max_p end -function min_pressure(pp, t, system, u, v, system_name) +function min_pressure(t, v, u, system) min_p = typemax(Int64) for particle in each_moving_particle(system) pressure = particle_pressure(v, system, particle) @@ -337,10 +346,10 @@ function min_pressure(pp, t, system, u, v, system_name) min_p = pressure end end - add_entry!(pp, "min_p", t, min_p, system_name) + return min_p end -function avg_pressure(pp, t, system, u, v, system_name) +function avg_pressure(t, v, u, system) total_pressure = 0.0 count = 0 @@ -350,10 +359,10 @@ function avg_pressure(pp, t, system, u, v, system_name) end avg_p = count > 0 ? total_pressure / count : 0.0 - add_entry!(pp, "avg_p", t, avg_p, system_name) + return avg_p end -function max_density(pp, t, system, u, v, system_name) +function max_density(t, v, u, system) max_rho = 0.0 for particle in each_moving_particle(system) rho = particle_density(v, system, particle) @@ -361,10 +370,10 @@ function max_density(pp, t, system, u, v, system_name) max_rho = rho end end - add_entry!(pp, "max_rho", t, max_rho, system_name) + return max_rho end -function min_density(pp, t, system, u, v, system_name) +function min_density(t, v, u, system) min_rho = typemax(Int64) for particle in each_moving_particle(system) rho = particle_density(v, system, particle) @@ -372,10 +381,10 @@ function min_density(pp, t, system, u, v, system_name) min_rho = rho end end - add_entry!(pp, "min_rho", t, min_rho, system_name) + return min_rho end -function avg_density(pp, t, system, u, v, system_name) +function avg_density(t, v, u, system) total_density = 0.0 count = 0 @@ -385,5 +394,5 @@ function avg_density(pp, t, system, u, v, system_name) end avg_rho = count > 0 ? total_density / count : 0.0 - add_entry!(pp, "avg_rho", t, avg_rho, system_name) + return avg_rho end diff --git a/validation/investigate_relaxation.jl b/validation/investigate_relaxation.jl index eb7ae8edf..0936f0b58 100644 --- a/validation/investigate_relaxation.jl +++ b/validation/investigate_relaxation.jl @@ -5,7 +5,7 @@ using GLM using DataFrames using Printf -pp_cb = PostprocessCallback(calculate_ekin, max_pressure, avg_density; dt=0.025) +pp_cb = PostprocessCallback(ekin, max_pressure, avg_density; dt=0.025, filename="relaxation") trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), extra_callback=pp_cb, tspan=(0.0, 5.0)); @@ -26,26 +26,25 @@ function calculate_regression(data::Vector{Float64}, t::Vector{Float64}) return trend, gradient end -file_path = TrixiParticles.get_latest_unique_filename(joinpath(pwd(), "out"), "values", - ".json") +file_path = joinpath(pwd(), "out", "relaxation.json") if file_path != "" json_string = read(file_path, String) json_data = JSON.parse(json_string) time = Vector{Float64}(json_data["ekin_fluid_1"]["time"]) - ekin = Vector{Float64}(json_data["ekin_fluid_1"]["values"]) - tl_ekin, grad_ekin = calculate_regression(ekin, time) + e_kin = Vector{Float64}(json_data["ekin_fluid_1"]["values"]) + tl_ekin, grad_ekin = calculate_regression(e_kin, time) x_position_for_annotation = minimum(time) + (maximum(time) - minimum(time)) * 0.5 - p_max = Vector{Float64}(json_data["max_p_fluid_1"]["values"]) + p_max = Vector{Float64}(json_data["max_pressure_fluid_1"]["values"]) tl_p_max, grad_p_max = calculate_regression(p_max, time) - avg_rho = Vector{Float64}(json_data["avg_rho_fluid_1"]["values"]) + avg_rho = Vector{Float64}(json_data["avg_density_fluid_1"]["values"]) tl_avg_rho, grad_avg_rho = calculate_regression(avg_rho, time) - plot1 = plot(time, [ekin, tl_ekin], label=["sim" "trend"], color=[:blue :red], + plot1 = plot(time, [e_kin, tl_ekin], label=["sim" "trend"], color=[:blue :red], linewidth=[2 2], title="Kinetic Energy of the Fluid", xlabel="Time [s]", ylabel="kinetic energy [J]") From d7cd92c579b868883d65f7a82e36eec21a315aca Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Mon, 12 Feb 2024 16:06:46 +0100 Subject: [PATCH 131/212] remove DataEntry --- src/callbacks/post_process.jl | 45 ++++++++++++++-------------- validation/investigate_relaxation.jl | 3 +- 2 files changed, 25 insertions(+), 23 deletions(-) diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 3dc311895..4296b8f54 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -1,9 +1,3 @@ -struct DataEntry - value::Float64 - time::Float64 - system::String -end - """ PostprocessCallback(funcs...; interval::Integer=0, dt=0.0, exclude_boundary=true, filename="values", output_directory=".", overwrite=true, write_csv=true, write_json=true) @@ -43,7 +37,8 @@ postprocess_callback = PostprocessCallback(example_function, dt=0.1) """ struct PostprocessCallback{I, F} interval :: I - values :: Dict{String, Vector{DataEntry}} + data :: Dict{String, Vector{Any}} + times :: Array{Float64, 1} exclude_boundary :: Bool func :: F filename :: String @@ -54,7 +49,8 @@ struct PostprocessCallback{I, F} end function PostprocessCallback(funcs...; interval::Integer=0, dt=0.0, exclude_boundary=true, - output_directory="out", filename="values", append_timestamp=false, + output_directory="out", filename="values", + append_timestamp=false, write_csv=true, write_json=true) if dt > 0 && interval > 0 throw(ArgumentError("Setting both interval and dt is not supported!")) @@ -64,7 +60,7 @@ function PostprocessCallback(funcs...; interval::Integer=0, dt=0.0, exclude_boun interval = Float64(dt) end - post_callback = PostprocessCallback(interval, Dict{String, Vector{DataEntry}}(), + post_callback = PostprocessCallback(interval, Dict{String, Vector{Any}}(), Float64[], exclude_boundary, funcs, filename, output_directory, append_timestamp, write_csv, write_json) if dt > 0 @@ -115,7 +111,7 @@ function Base.show(io::IO, ::MIME"text/plain", "append timestamp" => callback.append_timestamp ? "yes" : "no", "write json file" => callback.write_csv ? "yes" : "no", "write csv file" => callback.write_json ? "yes" : "no", - ] + ] for (i, f) in enumerate(callback.func) push!(setup, "function$i" => string(nameof(f))) @@ -140,7 +136,7 @@ function Base.show(io::IO, ::MIME"text/plain", "append timestamp" => callback.append_timestamp ? "yes" : "no", "write json file" => callback.write_csv ? "yes" : "no", "write csv file" => callback.write_json ? "yes" : "no", - ] + ] for (i, f) in enumerate(callback.func) push!(setup, "function$i" => string(nameof(f))) @@ -184,6 +180,7 @@ function (pp::PostprocessCallback)(integrator) semi = integrator.p t = integrator.t filenames = system_names(semi.systems) + new_data = false foreach_system(semi) do system if system isa BoundarySystem && pp.exclude_boundary @@ -195,12 +192,16 @@ function (pp::PostprocessCallback)(integrator) v = wrap_v(v_ode, system, semi) u = wrap_u(u_ode, system, semi) for f in pp.func - # f(pp, t, system, u, v, filenames[system_index]) result = f(t, v, u, system) add_entry!(pp, string(nameof(f)), t, result, filenames[system_index]) + new_data = true end end + if new_data + push!(pp.times, t) + end + if isfinished(integrator) pp(integrator, true) end @@ -212,15 +213,15 @@ end # This function prepares the data for writing to a JSON file by creating a dictionary # that maps each key to separate arrays of times and values, sorted by time, and includes system name. function prepare_series_data!(data, post_callback) - for (key, data_array) in post_callback.values + for (key, data_array) in post_callback.data # Extracting times and values into separate arrays - data_times = [data_.time for data_ in data_array] - data_values = [data_.value for data_ in data_array] + # data_times = [data_.time for data_ in data_array] + data_values = [value for value in data_array] - # Assuming each `DataEntry` in `data_array` has a `system` field - system_name = isempty(data_array) ? "" : data_array[1].system + # the penultimate string in the key is the system_name + system_name = split(key, '_')[end - 1] - data[key] = create_series_dict(data_values, data_times, system_name) + data[key] = create_series_dict(data_values, post_callback.times, system_name) end return data @@ -246,7 +247,7 @@ end # After the simulation has finished, this function is called to write the data to a JSON file. function (pp::PostprocessCallback)(integrator, finished::Bool) - if isempty(pp.values) + if isempty(pp.data) return end @@ -303,11 +304,11 @@ function write_csv(abs_file_path, data) end function add_entry!(pp, entry_key, t, value, system_name) - # Get the list of DataEntry for the system, or initialize it if it doesn't exist - entries = get!(pp.values, entry_key * "_" * system_name, DataEntry[]) + # Get the list of data entries for the system, or initialize it if it doesn't exist + entries = get!(pp.data, entry_key * "_" * system_name, Any[]) # Add the new entry to the list - push!(entries, DataEntry(value, t, system_name)) + push!(entries, value) end function ekin(t, v, u, system) diff --git a/validation/investigate_relaxation.jl b/validation/investigate_relaxation.jl index 0936f0b58..1bf8a0500 100644 --- a/validation/investigate_relaxation.jl +++ b/validation/investigate_relaxation.jl @@ -5,7 +5,8 @@ using GLM using DataFrames using Printf -pp_cb = PostprocessCallback(ekin, max_pressure, avg_density; dt=0.025, filename="relaxation") +pp_cb = PostprocessCallback(ekin, max_pressure, avg_density; dt=0.025, + filename="relaxation") trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), extra_callback=pp_cb, tspan=(0.0, 5.0)); From 70490c8ffcfaac0e1108c50e78acb882c65ecd3f Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 13 Feb 2024 14:06:05 +0100 Subject: [PATCH 132/212] update file structure --- validation/Turek_dx_T.csv | 886 --------- validation/Turek_dy_T.csv | 928 ---------- .../{ => general}/investigate_relaxation.jl | 0 validation/oscillating_beam_2d/README.md | 8 + .../oscillating_beam_2d.jl | 0 .../oscillating_beam_2d_positions_100.json | 1631 ----------------- .../oscillating_beam_2d_positions_20.json | 1631 ----------------- .../oscillating_beam_2d_positions_50.json | 1631 ----------------- 8 files changed, 8 insertions(+), 6707 deletions(-) delete mode 100644 validation/Turek_dx_T.csv delete mode 100644 validation/Turek_dy_T.csv rename validation/{ => general}/investigate_relaxation.jl (100%) create mode 100644 validation/oscillating_beam_2d/README.md rename validation/{ => oscillating_beam_2d}/oscillating_beam_2d.jl (100%) delete mode 100644 validation/oscillating_beam_2d_positions_100.json delete mode 100644 validation/oscillating_beam_2d_positions_20.json delete mode 100644 validation/oscillating_beam_2d_positions_50.json diff --git a/validation/Turek_dx_T.csv b/validation/Turek_dx_T.csv deleted file mode 100644 index ddf73f253..000000000 --- a/validation/Turek_dx_T.csv +++ /dev/null @@ -1,886 +0,0 @@ -time,displacement -0.0839,-0.000439 -0.095,-0.0007051 -0.1062,-0.0009808 -0.1173,-0.0012802 -0.1284,-0.0016337 -0.1396,-0.0021294 -0.1507,-0.0027992 -0.1619,-0.0033892 -0.173,-0.0039735 -0.1842,-0.0049021 -0.1953,-0.0062478 -0.2065,-0.0069126 -0.2176,-0.0074702 -0.2288,-0.0083288 -0.2399,-0.0096078 -0.2511,-0.0107608 -0.2622,-0.0118011 -0.2734,-0.0143095 -0.2845,-0.0153067 -0.2957,-0.0164922 -0.3068,-0.0176331 -0.318,-0.0187838 -0.3291,-0.0199336 -0.3403,-0.0210842 -0.3514,-0.0222159 -0.3626,-0.0234403 -0.3737,-0.0240734 -0.3849,-0.0246381 -0.396,-0.0255459 -0.4072,-0.0269703 -0.4183,-0.0275897 -0.4295,-0.028126 -0.4406,-0.0292083 -0.4517,-0.029067 -0.4629,-0.0288189 -0.474,-0.0284341 -0.4852,-0.0277854 -0.4963,-0.0267022 -0.5075,-0.0252161 -0.5186,-0.0245501 -0.5298,-0.0239743 -0.5409,-0.0228173 -0.5521,-0.0214747 -0.5632,-0.0201791 -0.5744,-0.0188809 -0.5855,-0.0175818 -0.5967,-0.0162831 -0.6078,-0.014985 -0.619,-0.0136835 -0.6301,-0.0123972 -0.6413,-0.0110465 -0.6524,-0.0099634 -0.6636,-0.0077027 -0.6747,-0.0073983 -0.6859,-0.0059685 -0.697,-0.0044787 -0.7082,-0.0038618 -0.7193,-0.0032249 -0.7305,-0.0023865 -0.7416,-0.0019273 -0.7528,-0.0016266 -0.7639,-0.0013598 -0.775,-0.001088 -0.7862,-0.0002557 -0.7973,-0.0002061 -0.8085,-0.0001724 -0.8196,-0.0001451 -0.8308,-0.0001219 -0.8419,-0.0001023 -0.8531,-8.58e-05 -0.8642,-7.25e-05 -0.8754,-6.22e-05 -0.8865,-5.52e-05 -0.8977,-5.18e-05 -0.9088,-5.23e-05 -0.92,-5.73e-05 -0.9311,-6.76e-05 -0.9423,-8.46e-05 -0.9534,-0.00011 -0.9646,-0.000147 -0.9757,-0.000201 -0.9869,-0.0002785 -0.998,-0.0003901 -1.0092,-0.000556 -1.0203,-0.0008227 -1.0315,-0.0012917 -1.0426,-0.0018736 -1.0538,-0.0024724 -1.0649,-0.0030872 -1.0761,-0.0036668 -1.0872,-0.0041851 -1.0983,-0.0047562 -1.1095,-0.0058715 -1.1206,-0.0066093 -1.1318,-0.007158 -1.1429,-0.0078841 -1.1541,-0.0105106 -1.1652,-0.011535 -1.1764,-0.0127231 -1.1875,-0.0138621 -1.1987,-0.0150143 -1.2098,-0.016163 -1.221,-0.0173126 -1.2321,-0.0184621 -1.2433,-0.0196113 -1.2544,-0.0207606 -1.2656,-0.0219135 -1.2767,-0.0230382 -1.2879,-0.0242817 -1.299,-0.0249261 -1.3102,-0.0254881 -1.3213,-0.0263648 -1.3325,-0.0277982 -1.3436,-0.0284731 -1.3548,-0.0289001 -1.3659,-0.0291098 -1.3771,-0.0290556 -1.3882,-0.0287369 -1.3994,-0.0281813 -1.4105,-0.0272163 -1.4216,-0.0258025 -1.4328,-0.024407 -1.4439,-0.0237266 -1.4551,-0.0231201 -1.4662,-0.021914 -1.4774,-0.0206459 -1.4885,-0.0193482 -1.4997,-0.0180391 -1.5108,-0.0168203 -1.522,-0.0151374 -1.5331,-0.0137718 -1.5443,-0.0113696 -1.5554,-0.0103061 -1.5666,-0.0089368 -1.5777,-0.0077025 -1.5889,-0.0062417 -1.6,-0.0055443 -1.6112,-0.0049466 -1.6223,-0.0037233 -1.6335,-0.0029788 -1.6446,-0.0024004 -1.6558,-0.0017912 -1.6669,-0.0013992 -1.6781,-0.00113 -1.6892,-0.0009167 -1.7004,-0.0007389 -1.7115,-0.0005888 -1.7227,-0.0004622 -1.7338,-0.0003565 -1.7449,-0.0002702 -1.7561,-0.0002019 -1.7672,-0.0001508 -1.7784,-0.0001162 -1.7895,-9.74e-05 -1.8007,-9.36e-05 -1.8118,-0.000103 -1.823,-0.0001237 -1.8341,-0.0001547 -1.8453,-0.0001952 -1.8564,-0.0002446 -1.8676,-0.0003027 -1.8787,-0.0003697 -1.8899,-0.0004458 -1.901,-0.0005319 -1.9122,-0.0006295 -1.9233,-0.0007416 -1.9345,-0.0008748 -1.9456,-0.001046 -1.9568,-0.001306 -1.9679,-0.0020171 -1.9791,-0.002665 -1.9902,-0.0032166 -2.0014,-0.0043437 -2.0125,-0.0050362 -2.0237,-0.0055852 -2.0348,-0.0064951 -2.046,-0.0077743 -2.0571,-0.0088907 -2.0682,-0.0100505 -2.0794,-0.0111971 -2.0905,-0.0123467 -2.1017,-0.0134981 -2.1128,-0.0146409 -2.124,-0.0158114 -2.1351,-0.0169107 -2.1463,-0.0193152 -2.1574,-0.0203926 -2.1686,-0.0215256 -2.1797,-0.0227423 -2.1909,-0.0233422 -2.202,-0.0239155 -2.2132,-0.0250495 -2.2243,-0.0257314 -2.2355,-0.0262795 -2.2466,-0.0273577 -2.2578,-0.0280927 -2.2689,-0.0286081 -2.2801,-0.0291797 -2.2912,-0.0288181 -2.3024,-0.028416 -2.3135,-0.0279446 -2.3247,-0.0273097 -2.3358,-0.0261996 -2.347,-0.0248466 -2.3581,-0.0235574 -2.3693,-0.022257 -2.3804,-0.0209585 -2.3915,-0.0196598 -2.4027,-0.0183611 -2.4138,-0.0170624 -2.425,-0.0157637 -2.4361,-0.014465 -2.4473,-0.0131663 -2.4584,-0.0118677 -2.4696,-0.0105684 -2.4807,-0.0092722 -2.4919,-0.0079638 -2.503,-0.0067013 -2.5142,-0.0052929 -2.5253,-0.0045343 -2.5365,-0.003952 -2.5476,-0.0033575 -2.5588,-0.0027096 -2.5699,-0.002028 -2.5811,-0.0014874 -2.5922,-0.0010728 -2.6034,-0.0007615 -2.6145,-0.000531 -2.6257,-0.0003625 -2.6368,-0.0002429 -2.648,-0.0001617 -2.6591,-0.0001072 -2.6703,-7.18e-05 -2.6814,-5.1e-05 -2.6926,-4.14e-05 -2.7037,-4.1e-05 -2.7148,-4.78e-05 -2.726,-6.05e-05 -2.7371,-7.79e-05 -2.7483,-9.91e-05 -2.7594,-0.0001238 -2.7706,-0.0001532 -2.7817,-0.0001888 -2.7929,-0.0002327 -2.804,-0.0002876 -2.8152,-0.0003581 -2.8263,-0.0004517 -2.8375,-0.0005842 -2.8486,-0.0007921 -2.8598,-0.0011481 -2.8709,-0.0017583 -2.8821,-0.0023846 -2.8932,-0.0029514 -2.9044,-0.0035238 -2.9155,-0.0040917 -2.9267,-0.0046359 -2.9378,-0.0052333 -2.949,-0.0062103 -2.9601,-0.007445 -2.9713,-0.0085715 -2.9824,-0.0097274 -2.9936,-0.0108775 -3.0047,-0.0120181 -3.0159,-0.0132 -3.027,-0.0142613 -3.0381,-0.0167407 -3.0493,-0.0177539 -3.0604,-0.018925 -3.0716,-0.0200712 -3.0827,-0.0212224 -3.0939,-0.0223515 -3.105,-0.023584 -3.1162,-0.024202 -3.1273,-0.0247683 -3.1385,-0.0258372 -3.1496,-0.0266449 -3.1608,-0.0271859 -3.1719,-0.0277141 -3.1831,-0.0282985 -3.1942,-0.0290834 -3.2054,-0.0289702 -3.2165,-0.0285759 -3.2277,-0.028079 -3.2388,-0.027446 -3.25,-0.0263731 -3.2611,-0.0249999 -3.2723,-0.0237138 -3.2834,-0.0224127 -3.2946,-0.0211144 -3.3057,-0.0198157 -3.3169,-0.0185169 -3.328,-0.0172182 -3.3392,-0.0159195 -3.3503,-0.0146208 -3.3614,-0.0133222 -3.3726,-0.0120234 -3.3837,-0.0107251 -3.3949,-0.0094247 -3.406,-0.0081323 -3.4172,-0.0068106 -3.4283,-0.0055974 -3.4395,-0.0041126 -3.4506,-0.0036172 -3.4618,-0.0032343 -3.4729,-0.0028342 -3.4841,-0.0022638 -3.4952,-0.0015926 -3.5064,-0.0011218 -3.5175,-0.0007924 -3.5287,-0.0005566 -3.5398,-0.0003899 -3.551,-0.0002758 -3.5621,-0.0001979 -3.5733,-0.0001449 -3.5844,-0.0001099 -3.5956,-8.8e-05 -3.6067,-7.58e-05 -3.6179,-7.08e-05 -3.629,-7.1e-05 -3.6402,-7.53e-05 -3.6513,-8.38e-05 -3.6625,-9.72e-05 -3.6736,-0.000116 -3.6847,-0.0001411 -3.6959,-0.000174 -3.707,-0.0002163 -3.7182,-0.0002708 -3.7293,-0.0003422 -3.7405,-0.000439 -3.7516,-0.000578 -3.7628,-0.0007844 -3.7739,-0.0011067 -3.7851,-0.0016216 -3.7962,-0.0022305 -3.8074,-0.0028113 -3.8185,-0.0033459 -3.8297,-0.0039515 -3.8408,-0.005095 -3.852,-0.0057934 -3.8631,-0.0063441 -3.8743,-0.007198 -3.8854,-0.0084619 -3.8966,-0.0095806 -3.9077,-0.0107421 -3.9189,-0.0118794 -3.93,-0.0130627 -3.9412,-0.0141219 -3.9523,-0.0166037 -3.9635,-0.0176152 -3.9746,-0.0187873 -3.9858,-0.0199333 -3.9969,-0.0210842 -4.008,-0.0222145 -4.0192,-0.0234436 -4.0303,-0.0240595 -4.0415,-0.0246267 -4.0526,-0.0257016 -4.0638,-0.0265011 -4.0749,-0.0270422 -4.0861,-0.0275759 -4.0972,-0.0281653 -4.1084,-0.0289085 -4.1195,-0.0289749 -4.1307,-0.0286216 -4.1418,-0.0281299 -4.153,-0.0274953 -4.1641,-0.0264291 -4.1753,-0.0250513 -4.1864,-0.0237659 -4.1976,-0.0224647 -4.2087,-0.0211663 -4.2199,-0.0198676 -4.231,-0.0185689 -4.2422,-0.0172702 -4.2533,-0.0159715 -4.2645,-0.0146728 -4.2756,-0.0133741 -4.2868,-0.0120754 -4.2979,-0.0107768 -4.3091,-0.0094776 -4.3202,-0.0081808 -4.3313,-0.0068749 -4.3425,-0.0056022 -4.3536,-0.0042296 -4.3648,-0.0034327 -4.3759,-0.0028862 -4.3871,-0.0024425 -4.3982,-0.0020373 -4.4094,-0.0016339 -4.4205,-0.0012246 -4.4317,-0.0008773 -4.4428,-0.00062 -4.454,-0.000439 -4.4651,-0.0003136 -4.4763,-0.0002241 -4.4874,-0.000159 -4.4986,-0.0001117 -4.5097,-7.79e-05 -4.5209,-5.48e-05 -4.532,-4.02e-05 -4.5432,-3.27e-05 -4.5543,-3.1e-05 -4.5655,-3.51e-05 -4.5766,-4.52e-05 -4.5878,-6.18e-05 -4.5989,-8.58e-05 -4.6101,-0.0001184 -4.6212,-0.0001612 -4.6324,-0.0002172 -4.6435,-0.0002908 -4.6546,-0.0003905 -4.6658,-0.0005332 -4.6769,-0.0007434 -4.6881,-0.0010675 -4.6992,-0.001575 -4.7104,-0.0021793 -4.7215,-0.0027635 -4.7327,-0.0032991 -4.7438,-0.0039046 -4.755,-0.0050496 -4.7661,-0.0057421 -4.7773,-0.0062932 -4.7884,-0.0071788 -4.7996,-0.0084656 -4.8107,-0.0095795 -4.8219,-0.0107424 -4.833,-0.0118796 -4.8442,-0.0130617 -4.8553,-0.0141245 -4.8665,-0.0165533 -4.8776,-0.0175698 -4.8888,-0.0187413 -4.8999,-0.0198874 -4.9111,-0.0210381 -4.9222,-0.0221688 -4.9334,-0.0233969 -4.9445,-0.0240115 -4.9557,-0.024579 -4.9668,-0.0256616 -4.9779,-0.0264454 -4.9891,-0.0269888 -5.0002,-0.0275503 -5.0114,-0.0281536 -5.0225,-0.0287217 -5.0337,-0.0290495 -5.0448,-0.0286864 -5.056,-0.0280882 -5.0671,-0.027473 -5.0783,-0.0264521 -5.0894,-0.0250484 -5.1006,-0.0237665 -5.1117,-0.0224646 -5.1229,-0.0211663 -5.134,-0.0198676 -5.1452,-0.0185691 -5.1563,-0.0172685 -5.1675,-0.0159812 -5.1786,-0.0147301 -5.1898,-0.0134245 -5.2009,-0.0121279 -5.2121,-0.0108278 -5.2232,-0.0095329 -5.2344,-0.0082199 -5.2455,-0.0069748 -5.2567,-0.0055203 -5.2678,-0.0048541 -5.279,-0.0042513 -5.2901,-0.0029614 -5.3012,-0.0024678 -5.3124,-0.0020936 -5.3235,-0.0016873 -5.3347,-0.0011703 -5.3458,-0.0007938 -5.357,-0.0005753 -5.3681,-0.000439 -5.3793,-0.0003483 -5.3904,-0.0002827 -5.4016,-0.0002329 -5.4127,-0.0001943 -5.4239,-0.0001641 -5.435,-0.0001406 -5.4462,-0.0001225 -5.4573,-0.000109 -5.4685,-9.93e-05 -5.4796,-9.29e-05 -5.4908,-8.93e-05 -5.5019,-8.89e-05 -5.5131,-9.39e-05 -5.5242,-0.0001076 -5.5354,-0.0001349 -5.5465,-0.0001832 -5.5577,-0.0002634 -5.5688,-0.0003906 -5.58,-0.0005817 -5.5911,-0.0008437 -5.6023,-0.0011792 -5.6134,-0.0015843 -5.6245,-0.0020498 -5.6357,-0.0026771 -5.6468,-0.003834 -5.658,-0.0045576 -5.6691,-0.005096 -5.6803,-0.0056204 -5.6914,-0.0062177 -5.7026,-0.0071731 -5.7137,-0.0084115 -5.7249,-0.0095362 -5.736,-0.0106957 -5.7472,-0.0118335 -5.7583,-0.0130168 -5.7695,-0.0140754 -5.7806,-0.0165582 -5.7918,-0.0175688 -5.8029,-0.0187419 -5.8141,-0.0198869 -5.8252,-0.0210363 -5.8364,-0.0221892 -5.8475,-0.0233175 -5.8587,-0.0245493 -5.8698,-0.025249 -5.881,-0.0258016 -5.8921,-0.0263581 -5.9033,-0.0269583 -5.9144,-0.0275973 -5.9256,-0.028192 -5.9367,-0.0286331 -5.9478,-0.0288755 -5.959,-0.028891 -5.9701,-0.0286232 -5.9813,-0.0276999 -5.9924,-0.0263244 -6.0036,-0.0249185 -6.0147,-0.0242266 -6.0259,-0.0236243 -6.037,-0.0224456 -6.0482,-0.0211125 -6.0593,-0.0198159 -6.0705,-0.0185087 -6.0816,-0.0172781 -6.0928,-0.015639 -6.1039,-0.0142775 -6.1151,-0.0118364 -6.1262,-0.0107716 -6.1374,-0.0094163 -6.1485,-0.0081225 -6.1597,-0.006856 -6.1708,-0.0054484 -6.182,-0.0046811 -6.1931,-0.0041006 -6.2043,-0.003522 -6.2154,-0.0028678 -6.2266,-0.0021055 -6.2377,-0.001584 -6.2489,-0.0012274 -6.26,-0.0009482 -6.2711,-0.0007214 -6.2823,-0.0005369 -6.2934,-0.0003899 -6.3046,-0.0002769 -6.3157,-0.0001921 -6.3269,-0.0001299 -6.338,-8.61e-05 -6.3492,-5.7e-05 -6.3603,-3.99e-05 -6.3715,-3.25e-05 -6.3826,-3.28e-05 -6.3938,-3.96e-05 -6.4049,-5.31e-05 -6.4161,-7.38e-05 -6.4272,-0.0001022 -6.4384,-0.0001398 -6.4495,-0.0001883 -6.4607,-0.0002506 -6.4718,-0.0003312 -6.483,-0.000439 -6.4941,-0.0005908 -6.5053,-0.0008098 -6.5164,-0.0011361 -6.5276,-0.0016239 -6.5387,-0.0022167 -6.5499,-0.0028101 -6.561,-0.003349 -6.5722,-0.0039523 -6.5833,-0.0050954 -6.5944,-0.0057897 -6.6056,-0.0063406 -6.6167,-0.0072241 -6.6279,-0.0085118 -6.639,-0.0096254 -6.6502,-0.0107884 -6.6613,-0.0119253 -6.6725,-0.0131085 -6.6836,-0.0141683 -6.6948,-0.0166494 -6.7059,-0.0176615 -6.7171,-0.0188332 -6.7282,-0.0199793 -6.7394,-0.0211302 -6.7505,-0.0222608 -6.7617,-0.0234888 -6.7728,-0.024115 -6.784,-0.0246802 -6.7951,-0.0256715 -6.8063,-0.0265613 -6.8174,-0.0270764 -6.8286,-0.0274741 -6.8397,-0.0278387 -6.8509,-0.0282329 -6.862,-0.0288952 -6.8732,-0.0285613 -6.8843,-0.0281663 -6.8955,-0.0276935 -6.9066,-0.0270543 -6.9177,-0.02594 -6.9289,-0.024587 -6.94,-0.0232976 -6.9512,-0.0219973 -6.9623,-0.0206988 -6.9735,-0.0194001 -6.9846,-0.0181014 -6.9958,-0.0168027 -7.0069,-0.015504 -7.0181,-0.0142052 -7.0292,-0.0129066 -7.0404,-0.0116075 -7.0515,-0.0103107 -7.0627,-0.0090043 -7.0738,-0.0077479 -7.085,-0.0064606 -7.0961,-0.0051929 -7.1073,-0.0038047 -7.1184,-0.0030803 -7.1296,-0.0024977 -7.1407,-0.001932 -7.1519,-0.0015227 -7.163,-0.0012295 -7.1742,-0.0009978 -7.1853,-0.0008047 -7.1965,-0.0006409 -7.2076,-0.0005016 -7.2188,-0.0003839 -7.2299,-0.0002861 -7.241,-0.000207 -7.2522,-0.0001456 -7.2633,-0.0001007 -7.2745,-6.99e-05 -7.2856,-5.09e-05 -7.2968,-4.21e-05 -7.3079,-4.27e-05 -7.3191,-5.17e-05 -7.3302,-6.9e-05 -7.3414,-9.43e-05 -7.3525,-0.000128 -7.3637,-0.0001712 -7.3748,-0.0002264 -7.386,-0.0003004 -7.3971,-0.0004077 -7.4083,-0.0005744 -7.4194,-0.0008237 -7.4306,-0.0011343 -7.4417,-0.0015053 -7.4529,-0.0019967 -7.464,-0.0031193 -7.4752,-0.0038357 -7.4863,-0.0043401 -7.4975,-0.004853 -7.5086,-0.0054613 -7.5198,-0.0064471 -7.5309,-0.0076734 -7.5421,-0.0088017 -7.5532,-0.0099578 -7.5643,-0.0111052 -7.5755,-0.0122554 -7.5866,-0.0134041 -7.5978,-0.0145554 -7.6089,-0.0156993 -7.6201,-0.0168649 -7.6312,-0.0179792 -7.6424,-0.0203132 -7.6535,-0.0214609 -7.6647,-0.0225768 -7.6758,-0.0238059 -7.687,-0.0244878 -7.6981,-0.0250405 -7.7093,-0.0256075 -7.7204,-0.0262086 -7.7316,-0.0268166 -7.7427,-0.0274051 -7.7539,-0.0279602 -7.765,-0.028396 -7.7762,-0.0286199 -7.7873,-0.0285684 -7.7985,-0.0282632 -7.8096,-0.0277289 -7.8208,-0.0265859 -7.8319,-0.0257718 -7.8431,-0.0251847 -7.8542,-0.0240926 -7.8654,-0.0227238 -7.8765,-0.0214131 -7.8876,-0.0201117 -7.8988,-0.0187906 -7.9099,-0.0160828 -7.9211,-0.0149799 -7.9322,-0.0136205 -7.9434,-0.0123387 -7.9545,-0.0110357 -7.9657,-0.0097373 -7.9768,-0.0084416 -7.988,-0.0071307 -7.9991,-0.0058768 -8.0103,-0.0044583 -8.0214,-0.00377 -8.0326,-0.0031668 -8.0437,-0.00237 -8.0549,-0.0018793 -8.066,-0.0015627 -8.0772,-0.0012895 -8.0883,-0.0010201 -8.0995,-0.000689 -8.1106,-0.0002645 -8.1218,-0.0002083 -8.1329,-0.0001735 -8.1441,-0.0001469 -8.1552,-0.0001253 -8.1664,-0.0001078 -8.1775,-9.38e-05 -8.1887,-8.31e-05 -8.1998,-7.59e-05 -8.2109,-7.22e-05 -8.2221,-7.23e-05 -8.2332,-7.67e-05 -8.2444,-8.58e-05 -8.2555,-0.0001006 -8.2667,-0.0001223 -8.2778,-0.000153 -8.289,-0.0001957 -8.3001,-0.0002562 -8.3113,-0.0003408 -8.3224,-0.0004598 -8.3336,-0.0006322 -8.3447,-0.0008985 -8.3559,-0.0013406 -8.367,-0.0019226 -8.3782,-0.0025248 -8.3893,-0.0030666 -8.4005,-0.0036712 -8.4116,-0.0048176 -8.4228,-0.0055053 -8.4339,-0.0060567 -8.4451,-0.0069515 -8.4562,-0.0082351 -8.4674,-0.0093497 -8.4785,-0.0105126 -8.4897,-0.0116491 -8.5008,-0.0128339 -8.512,-0.0138885 -8.5231,-0.0163568 -8.5342,-0.017343 -8.5454,-0.0184935 -8.5565,-0.0207722 -8.5677,-0.0219593 -8.5788,-0.0231583 -8.59,-0.0237815 -8.6011,-0.0243469 -8.6123,-0.0254003 -8.6234,-0.0262602 -8.6346,-0.0267814 -8.6457,-0.0272095 -8.6569,-0.0276029 -8.668,-0.0279914 -8.6792,-0.0284018 -8.6903,-0.0286896 -8.7015,-0.0286562 -8.7126,-0.0284251 -8.7238,-0.0280505 -8.7349,-0.0272511 -8.7461,-0.0257083 -8.7572,-0.0244456 -8.7684,-0.0231392 -8.7795,-0.0218418 -8.7907,-0.0205429 -8.8018,-0.0192442 -8.813,-0.0179455 -8.8241,-0.0166467 -8.8353,-0.0153489 -8.8464,-0.0140458 -8.8575,-0.0127696 -8.8687,-0.0115094 -8.8798,-0.010204 -8.891,-0.0089065 -8.9021,-0.0076091 -8.9133,-0.0063043 -8.9244,-0.0050273 -8.9356,-0.0036692 -8.9467,-0.0028673 -8.9579,-0.0023354 -8.969,-0.0019056 -8.9802,-0.0015054 -8.9913,-0.0010876 -9.0025,-0.0006422 -9.0136,-0.0004224 -9.0248,-0.0003219 -9.0359,-0.000264 -9.0471,-0.0002254 -9.0582,-0.0001983 -9.0694,-0.0001789 -9.0805,-0.0001651 -9.0917,-0.0001557 -9.1028,-0.0001496 -9.114,-0.0001463 -9.1251,-0.0001453 -9.1363,-0.0001468 -9.1474,-0.000151 -9.1586,-0.0001582 -9.1697,-0.0001691 -9.1808,-0.0001845 -9.192,-0.0002055 -9.2031,-0.0002341 -9.2143,-0.0002738 -9.2254,-0.0003325 -9.2366,-0.0004259 -9.2477,-0.0005914 -9.2589,-0.0009161 -9.27,-0.0014462 -9.2812,-0.0020909 -9.2923,-0.0027131 -9.3035,-0.0032853 -9.3146,-0.0038319 -9.3258,-0.0044355 -9.3369,-0.0053993 -9.3481,-0.0067609 -9.3592,-0.0074334 -9.3704,-0.0079904 -9.3815,-0.0088309 -9.3927,-0.0101147 -9.4038,-0.0112655 -9.415,-0.0123115 -9.4261,-0.0148092 -9.4373,-0.0158276 -9.4484,-0.0169619 -9.4596,-0.0193561 -9.4707,-0.020439 -9.4819,-0.0215872 -9.493,-0.0227251 -9.5041,-0.0239427 -9.5153,-0.0246353 -9.5264,-0.0251854 -9.5376,-0.0257374 -9.5487,-0.0263377 -9.5599,-0.0270073 -9.571,-0.0275541 -9.5822,-0.0279382 -9.5933,-0.0282407 -9.6045,-0.0284818 -9.6156,-0.0286253 -9.6268,-0.0283863 -9.6379,-0.0277841 -9.6491,-0.0271682 -9.6602,-0.0261407 -9.6714,-0.0247374 -9.6825,-0.0234542 -9.6937,-0.022154 -9.7048,-0.0208535 -9.716,-0.0196057 -9.7271,-0.0183462 -9.7383,-0.0168067 -9.7494,-0.015457 -9.7606,-0.0129279 -9.7717,-0.0118652 -9.7829,-0.0105042 -9.794,-0.0092218 -9.8051,-0.0079169 -9.8163,-0.006628 -9.8274,-0.0053366 -9.8386,-0.0044901 -9.8497,-0.0038512 -9.8609,-0.0031597 -9.872,-0.0019807 -9.8832,-0.0015927 -9.8943,-0.0013343 -9.9055,-0.0011138 -9.9166,-0.0009115 -9.9278,-0.0007192 -9.9389,-0.0005319 \ No newline at end of file diff --git a/validation/Turek_dy_T.csv b/validation/Turek_dy_T.csv deleted file mode 100644 index aad17832c..000000000 --- a/validation/Turek_dy_T.csv +++ /dev/null @@ -1,928 +0,0 @@ -time,displacement -0.0186,-0.002784 -0.0293,0.000333 -0.04,0.001606 -0.0508,0.001085 -0.0615,-0.00069 -0.0722,-0.003322 -0.0829,-0.006564 -0.0937,-0.010259 -0.1044,-0.014302 -0.1151,-0.018621 -0.1258,-0.023166 -0.1366,-0.027898 -0.1473,-0.032779 -0.158,-0.037749 -0.1688,-0.042758 -0.1795,-0.047769 -0.1902,-0.052754 -0.2009,-0.05769 -0.2117,-0.062558 -0.2224,-0.067341 -0.2331,-0.072027 -0.2438,-0.076601 -0.2546,-0.081054 -0.2653,-0.085375 -0.276,-0.089553 -0.2868,-0.093579 -0.2975,-0.097445 -0.3082,-0.10114 -0.3189,-0.104657 -0.3297,-0.107986 -0.3404,-0.111119 -0.3511,-0.114045 -0.3618,-0.116756 -0.3726,-0.119242 -0.3833,-0.121493 -0.394,-0.123499 -0.4048,-0.125247 -0.4155,-0.126728 -0.4262,-0.127928 -0.4369,-0.128836 -0.4477,-0.129436 -0.4584,-0.129715 -0.4691,-0.129656 -0.4799,-0.129244 -0.4906,-0.12846 -0.5013,-0.127284 -0.512,-0.125702 -0.5228,-0.123728 -0.5335,-0.12138 -0.5442,-0.118682 -0.5549,-0.115655 -0.5657,-0.112324 -0.5764,-0.108713 -0.5871,-0.104846 -0.5979,-0.100751 -0.6086,-0.096454 -0.6193,-0.091981 -0.63,-0.087361 -0.6408,-0.082621 -0.6515,-0.077789 -0.6622,-0.072892 -0.6729,-0.06796 -0.6837,-0.06302 -0.6944,-0.058099 -0.7051,-0.053224 -0.7159,-0.048423 -0.7266,-0.043721 -0.7373,-0.039144 -0.748,-0.034717 -0.7588,-0.030463 -0.7695,-0.026407 -0.7802,-0.022569 -0.7909,-0.018971 -0.8017,-0.015634 -0.8124,-0.012576 -0.8231,-0.009816 -0.8339,-0.007371 -0.8446,-0.005256 -0.8553,-0.003486 -0.866,-0.002076 -0.8768,-0.001038 -0.8875,-0.000384 -0.8982,-0.000124 -0.9089,-0.000268 -0.9197,-0.000819 -0.9304,-0.001758 -0.9411,-0.003055 -0.9519,-0.004685 -0.9626,-0.006622 -0.9733,-0.008845 -0.984,-0.01133 -0.9948,-0.014055 -1.0055,-0.017002 -1.0162,-0.02015 -1.0269,-0.023481 -1.0377,-0.026976 -1.0484,-0.030618 -1.0591,-0.03439 -1.0699,-0.038275 -1.0806,-0.042257 -1.0913,-0.046321 -1.102,-0.05045 -1.1128,-0.05463 -1.1235,-0.058845 -1.1342,-0.06308 -1.1449,-0.06732 -1.1557,-0.071551 -1.1664,-0.075756 -1.1771,-0.079922 -1.1879,-0.084034 -1.1986,-0.088075 -1.2093,-0.092031 -1.22,-0.095886 -1.2308,-0.099623 -1.2415,-0.103228 -1.2522,-0.106683 -1.2629,-0.10997 -1.2737,-0.113074 -1.2844,-0.115974 -1.2951,-0.118652 -1.3059,-0.121089 -1.3166,-0.123265 -1.3273,-0.125157 -1.338,-0.126744 -1.3488,-0.128001 -1.3595,-0.128905 -1.3702,-0.129428 -1.3809,-0.129544 -1.3917,-0.129228 -1.4024,-0.128486 -1.4131,-0.12733 -1.4239,-0.125775 -1.4346,-0.123837 -1.4453,-0.121533 -1.456,-0.118881 -1.4668,-0.115901 -1.4775,-0.112614 -1.4882,-0.109042 -1.4989,-0.10521 -1.5097,-0.101142 -1.5204,-0.096864 -1.5311,-0.092401 -1.5419,-0.087781 -1.5526,-0.083033 -1.5633,-0.078184 -1.574,-0.073264 -1.5848,-0.068301 -1.5955,-0.063324 -1.6062,-0.058362 -1.6169,-0.053444 -1.6277,-0.048597 -1.6384,-0.04385 -1.6491,-0.039229 -1.6599,-0.03476 -1.6706,-0.030469 -1.6813,-0.02638 -1.692,-0.022516 -1.7028,-0.018898 -1.7135,-0.015548 -1.7242,-0.012485 -1.7349,-0.009728 -1.7457,-0.007292 -1.7564,-0.005193 -1.7671,-0.003447 -1.7779,-0.002065 -1.7886,-0.00106 -1.7993,-0.000441 -1.81,-0.000218 -1.8208,-0.000395 -1.8315,-0.000953 -1.8422,-0.001864 -1.8529,-0.003103 -1.8637,-0.004648 -1.8744,-0.006475 -1.8851,-0.008565 -1.8959,-0.010897 -1.9066,-0.013454 -1.9173,-0.016216 -1.928,-0.019167 -1.9388,-0.022291 -1.9495,-0.025572 -1.9602,-0.028996 -1.9709,-0.032546 -1.9817,-0.03621 -1.9924,-0.039972 -2.0031,-0.043821 -2.0139,-0.047741 -2.0246,-0.05172 -2.0353,-0.055745 -2.046,-0.059802 -2.0568,-0.06388 -2.0675,-0.067964 -2.0782,-0.072042 -2.0889,-0.076102 -2.0997,-0.080128 -2.1104,-0.084109 -2.1211,-0.088031 -2.1319,-0.091878 -2.1426,-0.095638 -2.1533,-0.099296 -2.164,-0.102835 -2.1748,-0.10624 -2.1855,-0.109495 -2.1962,-0.112583 -2.2069,-0.115484 -2.2177,-0.118181 -2.2284,-0.120653 -2.2391,-0.122878 -2.2499,-0.124834 -2.2606,-0.126497 -2.2713,-0.12784 -2.282,-0.128834 -2.2928,-0.12945 -2.3035,-0.129654 -2.3142,-0.129417 -2.3249,-0.128737 -2.3357,-0.127622 -2.3464,-0.126081 -2.3571,-0.124126 -2.3679,-0.121772 -2.3786,-0.119034 -2.3893,-0.115932 -2.4,-0.112486 -2.4108,-0.108719 -2.4215,-0.104657 -2.4322,-0.100327 -2.4429,-0.09576 -2.4537,-0.090986 -2.4644,-0.086038 -2.4751,-0.080951 -2.4859,-0.07576 -2.4966,-0.070501 -2.5073,-0.06521 -2.518,-0.059923 -2.5288,-0.054676 -2.5395,-0.049505 -2.5502,-0.044443 -2.5609,-0.039525 -2.5717,-0.03478 -2.5824,-0.030239 -2.5931,-0.02593 -2.6039,-0.021879 -2.6146,-0.018109 -2.6253,-0.014641 -2.636,-0.011495 -2.6468,-0.008687 -2.6575,-0.006234 -2.6682,-0.004146 -2.6789,-0.002436 -2.6897,-0.001112 -2.7004,-0.000181 -2.7111,0.000351 -2.7219,0.000481 -2.7326,0.000215 -2.7433,-0.000417 -2.754,-0.001387 -2.7648,-0.002666 -2.7755,-0.004231 -2.7862,-0.006059 -2.7969,-0.008129 -2.8077,-0.010421 -2.8184,-0.012918 -2.8291,-0.015601 -2.8399,-0.018456 -2.8506,-0.021467 -2.8613,-0.024619 -2.872,-0.0279 -2.8828,-0.031294 -2.8935,-0.034791 -2.9042,-0.038378 -2.9149,-0.042043 -2.9257,-0.045774 -2.9364,-0.04956 -2.9471,-0.053391 -2.9579,-0.057254 -2.9686,-0.06114 -2.9793,-0.065037 -2.99,-0.068936 -3.0008,-0.072824 -3.0115,-0.076691 -3.0222,-0.080527 -3.0329,-0.084319 -3.0437,-0.088056 -3.0544,-0.091727 -3.0651,-0.09532 -3.0759,-0.098821 -3.0866,-0.102218 -3.0973,-0.105498 -3.108,-0.108645 -3.1188,-0.111644 -3.1295,-0.114481 -3.1402,-0.117137 -3.1509,-0.119595 -3.1617,-0.121834 -3.1724,-0.123835 -3.1831,-0.125573 -3.1939,-0.127025 -3.2046,-0.128163 -3.2153,-0.128958 -3.226,-0.129374 -3.2368,-0.129378 -3.2475,-0.128948 -3.2582,-0.128084 -3.2689,-0.126791 -3.2797,-0.125072 -3.2904,-0.122938 -3.3011,-0.120396 -3.3119,-0.117462 -3.3226,-0.114151 -3.3333,-0.110483 -3.344,-0.10648 -3.3548,-0.102168 -3.3655,-0.097577 -3.3762,-0.092737 -3.3869,-0.087685 -3.3977,-0.082457 -3.4084,-0.077093 -3.4191,-0.071633 -3.4299,-0.066121 -3.4406,-0.060598 -3.4513,-0.055109 -3.462,-0.049694 -3.4728,-0.044396 -3.4835,-0.039253 -3.4942,-0.034305 -3.5049,-0.029585 -3.5157,-0.025126 -3.5264,-0.020958 -3.5371,-0.017106 -3.5479,-0.013594 -3.5586,-0.010443 -3.5693,-0.007668 -3.58,-0.005284 -3.5908,-0.003301 -3.6015,-0.001729 -3.6122,-0.000574 -3.6229,0.000162 -3.6337,0.000475 -3.6444,0.000369 -3.6551,-0.000131 -3.6659,-0.000989 -3.6766,-0.002175 -3.6873,-0.00366 -3.698,-0.005418 -3.7088,-0.007426 -3.7195,-0.009662 -3.7302,-0.012107 -3.7409,-0.014743 -3.7517,-0.017551 -3.7624,-0.020517 -3.7731,-0.023624 -3.7839,-0.02686 -3.7946,-0.03021 -3.8053,-0.033662 -3.816,-0.037202 -3.8268,-0.04082 -3.8375,-0.044504 -3.8482,-0.048243 -3.8589,-0.052025 -3.8697,-0.055841 -3.8804,-0.05968 -3.8911,-0.063531 -3.9019,-0.067385 -3.9126,-0.07123 -3.9233,-0.075057 -3.934,-0.078856 -3.9448,-0.082615 -3.9555,-0.086325 -3.9662,-0.089974 -3.9769,-0.093551 -3.9877,-0.097045 -3.9984,-0.100444 -4.0091,-0.103736 -4.0199,-0.106907 -4.0306,-0.109944 -4.0413,-0.112834 -4.052,-0.11556 -4.0628,-0.118107 -4.0735,-0.120458 -4.0842,-0.122594 -4.0949,-0.124496 -4.1057,-0.126141 -4.1164,-0.127508 -4.1271,-0.12857 -4.1379,-0.129299 -4.1486,-0.129664 -4.1593,-0.129631 -4.17,-0.129185 -4.1808,-0.128327 -4.1915,-0.12706 -4.2022,-0.125389 -4.2129,-0.12332 -4.2237,-0.120864 -4.2344,-0.118033 -4.2451,-0.114839 -4.2559,-0.111301 -4.2666,-0.107439 -4.2773,-0.103275 -4.288,-0.098835 -4.2988,-0.094147 -4.3095,-0.089242 -4.3202,-0.084155 -4.3309,-0.07892 -4.3417,-0.073575 -4.3524,-0.06816 -4.3631,-0.062714 -4.3739,-0.057279 -4.3846,-0.051894 -4.3953,-0.0466 -4.406,-0.041437 -4.4168,-0.036442 -4.4275,-0.031652 -4.4382,-0.027101 -4.449,-0.02282 -4.4597,-0.018839 -4.4704,-0.015183 -4.4811,-0.011876 -4.4919,-0.008938 -4.5026,-0.006387 -4.5133,-0.004237 -4.524,-0.0025 -4.5348,-0.001186 -4.5455,-0.000301 -4.5562,0.000151 -4.567,0.000166 -4.5777,-0.000237 -4.5884,-0.001022 -4.5991,-0.002156 -4.6099,-0.00361 -4.6206,-0.005357 -4.6313,-0.007371 -4.642,-0.009631 -4.6528,-0.012114 -4.6635,-0.0148 -4.6742,-0.017673 -4.685,-0.020714 -4.6957,-0.023906 -4.7064,-0.027235 -4.7171,-0.030686 -4.7279,-0.034245 -4.7386,-0.037898 -4.7493,-0.041632 -4.76,-0.045435 -4.7708,-0.049294 -4.7815,-0.053198 -4.7922,-0.057135 -4.803,-0.061092 -4.8137,-0.065059 -4.8244,-0.069024 -4.8351,-0.072975 -4.8459,-0.076902 -4.8566,-0.080792 -4.8673,-0.084633 -4.878,-0.088414 -4.8888,-0.092123 -4.8995,-0.095746 -4.9102,-0.099271 -4.921,-0.102684 -4.9317,-0.105971 -4.9424,-0.109117 -4.9531,-0.112108 -4.9639,-0.114926 -4.9746,-0.117555 -4.9853,-0.119975 -4.996,-0.122168 -5.0068,-0.124112 -5.0175,-0.125784 -5.0282,-0.12716 -5.039,-0.128211 -5.0497,-0.12891 -5.0604,-0.129222 -5.0711,-0.129114 -5.0819,-0.128575 -5.0926,-0.127608 -5.1033,-0.126219 -5.114,-0.124416 -5.1248,-0.122206 -5.1355,-0.119604 -5.1462,-0.116623 -5.157,-0.11328 -5.1677,-0.109596 -5.1784,-0.105592 -5.1891,-0.101295 -5.1999,-0.096733 -5.2106,-0.091936 -5.2213,-0.086937 -5.232,-0.081771 -5.2428,-0.076476 -5.2535,-0.071089 -5.2642,-0.06565 -5.275,-0.060199 -5.2857,-0.054778 -5.2964,-0.049424 -5.3071,-0.044179 -5.3179,-0.039079 -5.3286,-0.034163 -5.3393,-0.029464 -5.35,-0.025014 -5.3608,-0.020845 -5.3715,-0.016983 -5.3822,-0.013453 -5.393,-0.010278 -5.4037,-0.007476 -5.4144,-0.005065 -5.4251,-0.003057 -5.4359,-0.001465 -5.4466,-0.000297 -5.4573,0.00044 -5.468,0.000741 -5.4788,0.000607 -5.4895,6.4e-05 -5.5002,-0.000852 -5.511,-0.00211 -5.5217,-0.003681 -5.5324,-0.005539 -5.5431,-0.007658 -5.5539,-0.010018 -5.5646,-0.012597 -5.5753,-0.015374 -5.586,-0.018333 -5.5968,-0.021456 -5.6075,-0.024727 -5.6182,-0.028129 -5.629,-0.031649 -5.6397,-0.035272 -5.6504,-0.038984 -5.6611,-0.042773 -5.6719,-0.046625 -5.6826,-0.050528 -5.6933,-0.05447 -5.704,-0.058439 -5.7148,-0.062423 -5.7255,-0.06641 -5.7362,-0.07039 -5.747,-0.074349 -5.7577,-0.078276 -5.7684,-0.08216 -5.7791,-0.085989 -5.7899,-0.089749 -5.8006,-0.09343 -5.8113,-0.097018 -5.822,-0.100501 -5.8328,-0.103864 -5.8435,-0.107093 -5.8542,-0.110175 -5.865,-0.113093 -5.8757,-0.115832 -5.8864,-0.118374 -5.8971,-0.120703 -5.9079,-0.122797 -5.9186,-0.124638 -5.9293,-0.126204 -5.94,-0.12747 -5.9508,-0.128411 -5.9615,-0.129 -5.9722,-0.129206 -5.983,-0.129002 -5.9937,-0.128387 -6.0044,-0.127366 -6.0151,-0.125946 -6.0259,-0.124137 -6.0366,-0.121951 -6.0473,-0.119399 -6.058,-0.116498 -6.0688,-0.113265 -6.0795,-0.109719 -6.0902,-0.10588 -6.101,-0.101774 -6.1117,-0.097425 -6.1224,-0.09286 -6.1331,-0.088109 -6.1439,-0.083202 -6.1546,-0.07817 -6.1653,-0.073048 -6.176,-0.067867 -6.1868,-0.062663 -6.1975,-0.05747 -6.2082,-0.052322 -6.219,-0.047252 -6.2297,-0.042295 -6.2404,-0.037481 -6.2511,-0.032842 -6.2619,-0.028407 -6.2726,-0.024205 -6.2833,-0.02026 -6.294,-0.016596 -6.3048,-0.013236 -6.3155,-0.0102 -6.3262,-0.007505 -6.337,-0.005166 -6.3477,-0.003199 -6.3584,-0.001613 -6.3691,-0.000419 -6.3799,0.000375 -6.3906,0.000762 -6.4013,0.000739 -6.412,0.000324 -6.4228,-0.000454 -6.4335,-0.001566 -6.4442,-0.002986 -6.455,-0.004689 -6.4657,-0.006654 -6.4764,-0.008858 -6.4871,-0.011283 -6.4979,-0.013911 -6.5086,-0.016725 -6.5193,-0.019707 -6.53,-0.022843 -6.5408,-0.026118 -6.5515,-0.029517 -6.5622,-0.033028 -6.573,-0.036637 -6.5837,-0.040331 -6.5944,-0.044099 -6.6051,-0.047927 -6.6159,-0.051805 -6.6266,-0.05572 -6.6373,-0.05966 -6.648,-0.063616 -6.6588,-0.067574 -6.6695,-0.071523 -6.6802,-0.075453 -6.691,-0.079351 -6.7017,-0.083205 -6.7124,-0.087004 -6.7231,-0.090734 -6.7339,-0.094384 -6.7446,-0.09794 -6.7553,-0.101389 -6.766,-0.104717 -6.7768,-0.107908 -6.7875,-0.110947 -6.7982,-0.113819 -6.809,-0.116505 -6.8197,-0.118988 -6.8304,-0.121248 -6.8411,-0.123264 -6.8519,-0.125012 -6.8626,-0.12647 -6.8733,-0.127609 -6.884,-0.128402 -6.8948,-0.128816 -6.9055,-0.128816 -6.9162,-0.128385 -6.927,-0.127525 -6.9377,-0.126242 -6.9484,-0.124543 -6.9591,-0.122437 -6.9699,-0.119935 -6.9806,-0.117053 -6.9913,-0.113806 -7.002,-0.110214 -7.0128,-0.106298 -7.0235,-0.102085 -7.0342,-0.0976 -7.045,-0.092874 -7.0557,-0.087939 -7.0664,-0.082829 -7.0771,-0.077581 -7.0879,-0.072232 -7.0986,-0.066821 -7.1093,-0.061387 -7.12,-0.055972 -7.1308,-0.050613 -7.1415,-0.045352 -7.1522,-0.040225 -7.163,-0.035271 -7.1737,-0.030523 -7.1844,-0.026015 -7.1951,-0.021779 -7.2059,-0.017841 -7.2166,-0.014229 -7.2273,-0.010964 -7.238,-0.008068 -7.2488,-0.005558 -7.2595,-0.003449 -7.2702,-0.001753 -7.281,-0.000481 -7.2917,0.00036 -7.3024,0.000764 -7.3131,0.000728 -7.3239,0.000273 -7.3346,-0.000567 -7.3453,-0.001759 -7.356,-0.003273 -7.3668,-0.005083 -7.3775,-0.007164 -7.3882,-0.009492 -7.399,-0.012046 -7.4097,-0.014807 -7.4204,-0.017755 -7.4311,-0.020873 -7.4419,-0.024143 -7.4526,-0.027552 -7.4633,-0.031082 -7.474,-0.034721 -7.4848,-0.038452 -7.4955,-0.042265 -7.5062,-0.046144 -7.517,-0.050078 -7.5277,-0.054053 -7.5384,-0.058059 -7.5491,-0.062081 -7.5599,-0.066109 -7.5706,-0.07013 -7.5813,-0.074133 -7.592,-0.078105 -7.6028,-0.082034 -7.6135,-0.085908 -7.6242,-0.089713 -7.635,-0.093438 -7.6457,-0.097069 -7.6564,-0.100592 -7.6671,-0.103994 -7.6779,-0.107258 -7.6886,-0.110372 -7.6993,-0.113317 -7.71,-0.116077 -7.7208,-0.118634 -7.7315,-0.12097 -7.7422,-0.123063 -7.753,-0.124892 -7.7637,-0.126434 -7.7744,-0.127662 -7.7851,-0.128551 -7.7959,-0.129068 -7.8066,-0.129182 -7.8173,-0.128869 -7.828,-0.12813 -7.8388,-0.12697 -7.8495,-0.125399 -7.8602,-0.123425 -7.871,-0.121061 -7.8817,-0.118321 -7.8924,-0.115222 -7.9031,-0.111782 -7.9139,-0.108023 -7.9246,-0.103968 -7.9353,-0.099644 -7.946,-0.095078 -7.9568,-0.090301 -7.9675,-0.085345 -7.9782,-0.080243 -7.989,-0.07503 -7.9997,-0.069743 -8.0104,-0.064417 -8.0211,-0.059091 -8.0319,-0.053799 -8.0426,-0.048581 -8.0533,-0.043469 -8.064,-0.038501 -8.0748,-0.033708 -8.0855,-0.029122 -8.0962,-0.024772 -8.107,-0.020687 -8.1177,-0.016892 -8.1284,-0.013409 -8.1391,-0.010259 -8.1499,-0.007461 -8.1606,-0.005031 -8.1713,-0.002983 -8.182,-0.001327 -8.1928,-7.4e-05 -8.2035,0.000769 -8.2142,0.001196 -8.225,0.001205 -8.2357,0.000813 -8.2464,5.2e-05 -8.2571,-0.001047 -8.2679,-0.002457 -8.2786,-0.004153 -8.2893,-0.006112 -8.3,-0.008313 -8.3108,-0.010736 -8.3215,-0.013362 -8.3322,-0.016173 -8.343,-0.019153 -8.3537,-0.022287 -8.3644,-0.02556 -8.3751,-0.028956 -8.3859,-0.032464 -8.3966,-0.036068 -8.4073,-0.039758 -8.4181,-0.04352 -8.4288,-0.047342 -8.4395,-0.051213 -8.4502,-0.055121 -8.461,-0.059055 -8.4717,-0.063002 -8.4824,-0.066953 -8.4931,-0.070895 -8.5039,-0.074817 -8.5146,-0.078708 -8.5253,-0.082556 -8.5361,-0.086349 -8.5468,-0.090075 -8.5575,-0.093722 -8.5682,-0.097276 -8.579,-0.100726 -8.5897,-0.104056 -8.6004,-0.107254 -8.6111,-0.110302 -8.6219,-0.113187 -8.6326,-0.11589 -8.6433,-0.118395 -8.6541,-0.120683 -8.6648,-0.122732 -8.6755,-0.124522 -8.6862,-0.126029 -8.697,-0.127228 -8.7077,-0.128089 -8.7184,-0.128584 -8.7291,-0.128679 -8.7399,-0.12836 -8.7506,-0.127629 -8.7613,-0.126491 -8.7721,-0.124952 -8.7828,-0.12302 -8.7935,-0.120705 -8.8042,-0.118019 -8.815,-0.114977 -8.8257,-0.111595 -8.8364,-0.107891 -8.8471,-0.103888 -8.8579,-0.099609 -8.8686,-0.095079 -8.8793,-0.090327 -8.8901,-0.085384 -8.9008,-0.080281 -8.9115,-0.075053 -8.9222,-0.069736 -8.933,-0.064365 -8.9437,-0.058979 -8.9544,-0.053616 -8.9651,-0.048313 -8.9759,-0.043109 -8.9866,-0.038041 -8.9973,-0.033145 -9.0081,-0.028456 -9.0188,-0.024007 -9.0295,-0.01983 -9.0402,-0.015954 -9.051,-0.012405 -9.0617,-0.009208 -9.0724,-0.006386 -9.0831,-0.003957 -9.0939,-0.001939 -9.1046,-0.000346 -9.1153,0.000809 -9.1261,0.001517 -9.1368,0.001779 -9.1475,0.001623 -9.1582,0.001082 -9.169,0.000186 -9.1797,-0.00104 -9.1904,-0.00257 -9.2011,-0.004381 -9.2119,-0.006452 -9.2226,-0.008762 -9.2333,-0.011292 -9.2441,-0.014025 -9.2548,-0.016943 -9.2655,-0.020031 -9.2762,-0.023273 -9.287,-0.026654 -9.2977,-0.03016 -9.3084,-0.033777 -9.3191,-0.037492 -9.3299,-0.041292 -9.3406,-0.045164 -9.3513,-0.049095 -9.3621,-0.053074 -9.3728,-0.057088 -9.3835,-0.061124 -9.3942,-0.065171 -9.405,-0.069217 -9.4157,-0.07325 -9.4264,-0.077256 -9.4371,-0.081224 -9.4479,-0.08514 -9.4586,-0.088992 -9.4693,-0.092765 -9.4801,-0.096447 -9.4908,-0.100022 -9.5015,-0.103476 -9.5122,-0.106793 -9.523,-0.109956 -9.5337,-0.112948 -9.5444,-0.11575 -9.5551,-0.118343 -9.5659,-0.120706 -9.5766,-0.122815 -9.5873,-0.124647 -9.5981,-0.126178 -9.6088,-0.127399 -9.6195,-0.128307 -9.6302,-0.1289 -9.641,-0.129178 -9.6517,-0.129139 -9.6624,-0.128783 -9.6731,-0.128109 -9.6839,-0.127118 -9.6946,-0.125812 -9.7053,-0.124192 -9.7161,-0.12226 -9.7268,-0.12002 -9.7375,-0.117475 -9.7482,-0.114631 -9.759,-0.111492 -9.7697,-0.108067 -9.7804,-0.104361 -9.7911,-0.100383 -9.8019,-0.096144 -9.8126,-0.091652 -9.8233,-0.086921 -9.8341,-0.081961 -9.8448,-0.076787 -9.8555,-0.071413 -9.8662,-0.065854 -9.877,-0.060127 -9.8877,-0.054249 -9.8984,-0.048237 -9.9091,-0.04211 -9.9199,-0.035888 -9.9306,-0.02959 -9.9413,-0.023237 -9.9521,-0.016848 \ No newline at end of file diff --git a/validation/investigate_relaxation.jl b/validation/general/investigate_relaxation.jl similarity index 100% rename from validation/investigate_relaxation.jl rename to validation/general/investigate_relaxation.jl diff --git a/validation/oscillating_beam_2d/README.md b/validation/oscillating_beam_2d/README.md new file mode 100644 index 000000000..37ac00088 --- /dev/null +++ b/validation/oscillating_beam_2d/README.md @@ -0,0 +1,8 @@ +The following files are provided here: + +1) Validation simulation: validation_oscillating_beam_2d.jl +2) Comparison with reference: +3) Comparison with TrixiParticles.jl reference: +4) TrixiParticles.jl reference files: +5) Extracted results from Turek S , Hron J. "Proposal for numerical benchmarking of fluid-structure interaction between an elastic object and laminar incompressible flow." + In: Fluid-structure interaction. Springer; 2006. p. 371–85 . https://doi.org/10.1007/3-540-34596-5_15: Turek_dx_T.csv and Turek_dy_T.csv \ No newline at end of file diff --git a/validation/oscillating_beam_2d.jl b/validation/oscillating_beam_2d/oscillating_beam_2d.jl similarity index 100% rename from validation/oscillating_beam_2d.jl rename to validation/oscillating_beam_2d/oscillating_beam_2d.jl diff --git a/validation/oscillating_beam_2d_positions_100.json b/validation/oscillating_beam_2d_positions_100.json deleted file mode 100644 index e6554a3da..000000000 --- a/validation/oscillating_beam_2d_positions_100.json +++ /dev/null @@ -1,1631 +0,0 @@ -{ - "meta": { - "julia_version": "1.9.4", - "solver_version": "8a7da404f6e05076a7c4eaaa21244ad7ffd49aa7", - "solver_name": "TrixiParticles.jl" - }, - "pos_y_4411_solid_1": { - "time": [ - 0.0, - 0.025, - 0.05, - 0.07500000000000001, - 0.1, - 0.125, - 0.15000000000000002, - 0.17500000000000002, - 0.2, - 0.225, - 0.25, - 0.275, - 0.30000000000000004, - 0.325, - 0.35000000000000003, - 0.375, - 0.4, - 0.42500000000000004, - 0.45, - 0.47500000000000003, - 0.5, - 0.525, - 0.55, - 0.5750000000000001, - 0.6000000000000001, - 0.625, - 0.65, - 0.675, - 0.7000000000000001, - 0.7250000000000001, - 0.75, - 0.775, - 0.8, - 0.8250000000000001, - 0.8500000000000001, - 0.875, - 0.9, - 0.925, - 0.9500000000000001, - 0.9750000000000001, - 1.0, - 1.0250000000000001, - 1.05, - 1.075, - 1.1, - 1.125, - 1.1500000000000001, - 1.175, - 1.2000000000000002, - 1.225, - 1.25, - 1.2750000000000001, - 1.3, - 1.3250000000000002, - 1.35, - 1.375, - 1.4000000000000001, - 1.425, - 1.4500000000000002, - 1.475, - 1.5, - 1.5250000000000001, - 1.55, - 1.5750000000000002, - 1.6, - 1.625, - 1.6500000000000001, - 1.675, - 1.7000000000000002, - 1.725, - 1.75, - 1.7750000000000001, - 1.8, - 1.8250000000000002, - 1.85, - 1.875, - 1.9000000000000001, - 1.925, - 1.9500000000000002, - 1.975, - 2.0, - 2.025, - 2.0500000000000003, - 2.075, - 2.1, - 2.125, - 2.15, - 2.1750000000000003, - 2.2, - 2.225, - 2.25, - 2.275, - 2.3000000000000003, - 2.325, - 2.35, - 2.375, - 2.4000000000000004, - 2.4250000000000003, - 2.45, - 2.475, - 2.5, - 2.5250000000000004, - 2.5500000000000003, - 2.575, - 2.6, - 2.625, - 2.6500000000000004, - 2.6750000000000003, - 2.7, - 2.725, - 2.75, - 2.7750000000000004, - 2.8000000000000003, - 2.825, - 2.85, - 2.875, - 2.9000000000000004, - 2.9250000000000003, - 2.95, - 2.975, - 3.0, - 3.0250000000000004, - 3.0500000000000003, - 3.075, - 3.1, - 3.125, - 3.1500000000000004, - 3.1750000000000003, - 3.2, - 3.225, - 3.25, - 3.2750000000000004, - 3.3000000000000003, - 3.325, - 3.35, - 3.375, - 3.4000000000000004, - 3.4250000000000003, - 3.45, - 3.475, - 3.5, - 3.5250000000000004, - 3.5500000000000003, - 3.575, - 3.6, - 3.625, - 3.6500000000000004, - 3.6750000000000003, - 3.7, - 3.725, - 3.75, - 3.7750000000000004, - 3.8000000000000003, - 3.825, - 3.85, - 3.875, - 3.9000000000000004, - 3.9250000000000003, - 3.95, - 3.975, - 4.0, - 4.025, - 4.05, - 4.075, - 4.1000000000000005, - 4.125, - 4.15, - 4.175, - 4.2, - 4.2250000000000005, - 4.25, - 4.275, - 4.3, - 4.325, - 4.3500000000000005, - 4.375, - 4.4, - 4.425, - 4.45, - 4.4750000000000005, - 4.5, - 4.525, - 4.55, - 4.575, - 4.6000000000000005, - 4.625, - 4.65, - 4.675, - 4.7, - 4.7250000000000005, - 4.75, - 4.775, - 4.800000000000001, - 4.825, - 4.8500000000000005, - 4.875, - 4.9, - 4.925000000000001, - 4.95, - 4.9750000000000005, - 5.0, - 5.025, - 5.050000000000001, - 5.075, - 5.1000000000000005, - 5.125, - 5.15, - 5.175000000000001, - 5.2, - 5.2250000000000005, - 5.25, - 5.275, - 5.300000000000001, - 5.325, - 5.3500000000000005, - 5.375, - 5.4, - 5.425000000000001, - 5.45, - 5.4750000000000005, - 5.5, - 5.525, - 5.550000000000001, - 5.575, - 5.6000000000000005, - 5.625, - 5.65, - 5.675000000000001, - 5.7, - 5.7250000000000005, - 5.75, - 5.775, - 5.800000000000001, - 5.825, - 5.8500000000000005, - 5.875, - 5.9, - 5.925000000000001, - 5.95, - 5.9750000000000005, - 6.0, - 6.025, - 6.050000000000001, - 6.075, - 6.1000000000000005, - 6.125, - 6.15, - 6.175000000000001, - 6.2, - 6.2250000000000005, - 6.25, - 6.275, - 6.300000000000001, - 6.325, - 6.3500000000000005, - 6.375, - 6.4, - 6.425000000000001, - 6.45, - 6.4750000000000005, - 6.5, - 6.525, - 6.550000000000001, - 6.575, - 6.6000000000000005, - 6.625, - 6.65, - 6.675000000000001, - 6.7, - 6.7250000000000005, - 6.75, - 6.775, - 6.800000000000001, - 6.825, - 6.8500000000000005, - 6.875, - 6.9, - 6.925000000000001, - 6.95, - 6.9750000000000005, - 7.0, - 7.025, - 7.050000000000001, - 7.075, - 7.1000000000000005, - 7.125, - 7.15, - 7.175000000000001, - 7.2, - 7.2250000000000005, - 7.25, - 7.275, - 7.300000000000001, - 7.325, - 7.3500000000000005, - 7.375, - 7.4, - 7.425000000000001, - 7.45, - 7.4750000000000005, - 7.5, - 7.525, - 7.550000000000001, - 7.575, - 7.6000000000000005, - 7.625, - 7.65, - 7.675000000000001, - 7.7, - 7.7250000000000005, - 7.75, - 7.775, - 7.800000000000001, - 7.825, - 7.8500000000000005, - 7.875, - 7.9, - 7.925000000000001, - 7.95, - 7.9750000000000005, - 8.0, - 8.025, - 8.05, - 8.075000000000001, - 8.1, - 8.125, - 8.15, - 8.175, - 8.200000000000001, - 8.225, - 8.25, - 8.275, - 8.3, - 8.325000000000001, - 8.35, - 8.375, - 8.4, - 8.425, - 8.450000000000001, - 8.475, - 8.5, - 8.525, - 8.55, - 8.575000000000001, - 8.6, - 8.625, - 8.65, - 8.675, - 8.700000000000001, - 8.725, - 8.75, - 8.775, - 8.8, - 8.825000000000001, - 8.85, - 8.875, - 8.9, - 8.925, - 8.950000000000001, - 8.975, - 9.0, - 9.025, - 9.05, - 9.075000000000001, - 9.1, - 9.125, - 9.15, - 9.175, - 9.200000000000001, - 9.225, - 9.25, - 9.275, - 9.3, - 9.325000000000001, - 9.35, - 9.375, - 9.4, - 9.425, - 9.450000000000001, - 9.475, - 9.5, - 9.525, - 9.55, - 9.575000000000001, - 9.600000000000001, - 9.625, - 9.65, - 9.675, - 9.700000000000001, - 9.725000000000001, - 9.75, - 9.775, - 9.8, - 9.825000000000001, - 9.850000000000001, - 9.875, - 9.9, - 9.925, - 9.950000000000001, - 9.975000000000001, - 10.0 - ], - "system_name": "solid_1", - "values": [ - 0.01, - 0.009363820762406584, - 0.007598603423386623, - 0.003266155098211553, - -0.0035657089526451727, - -0.012500011939207733, - -0.022174572935455213, - -0.031811294660319726, - -0.04174579088038043, - -0.0522733816144176, - -0.06396649515396848, - -0.07542091301063115, - -0.08602570749373017, - -0.09455826513348758, - -0.10159706336576763, - -0.10750597306181553, - -0.11252687362583202, - -0.11638646844205493, - -0.11790629651581351, - -0.11716245152250866, - -0.11387188137339216, - -0.10927965038556192, - -0.1036594293148164, - -0.09710216230333427, - -0.08912156120547356, - -0.07905529865561016, - -0.06782390308843038, - -0.056000189476723694, - -0.04520058980611431, - -0.0350612446025539, - -0.025432684555248504, - -0.015630471856226576, - -0.006331121007580037, - 0.0012818000627697079, - 0.006444894326775798, - 0.008900976669671793, - 0.009950634420942765, - 0.00969172340549048, - 0.008501009608006031, - 0.004955741214880478, - -0.0010386285547241253, - -0.009483901990744394, - -0.01892978363835837, - -0.028568424057422864, - -0.03833897491663423, - -0.04863067082287392, - -0.060126239310757806, - -0.07171587677213227, - -0.08276797295992777, - -0.09183530306276372, - -0.09937567976091108, - -0.10557108654264062, - -0.11099909390025378, - -0.11537593543632194, - -0.11767646932637707, - -0.11773393787111773, - -0.11508060310195792, - -0.11094734121665853, - -0.10559251473304856, - -0.0994659602777271, - -0.09199558160102352, - -0.08253832978145577, - -0.07164075853541879, - -0.059812302685849875, - -0.04876004360312383, - -0.03835809687282671, - -0.028690733682067596, - -0.018793631359334356, - -0.009247988838808513, - -0.0009587745244230903, - 0.004997628720806093, - 0.008207600444959424, - 0.009732944187038314, - 0.009878466758045566, - 0.009214943975844169, - 0.006405736208154202, - 0.0012601181381889108, - -0.006621210418012228, - -0.01576211511205336, - -0.025365823624083045, - -0.034977792816546505, - -0.045031448367823766, - -0.05626718799177686, - -0.0679231835384779, - -0.07936791148790971, - -0.08898147509514241, - -0.09704832701672331, - -0.1035399336894109, - -0.10931837053747391, - -0.11412849146896299, - -0.11716441344120576, - -0.11802851336553387, - -0.11609965118709346, - -0.11249417760249328, - -0.10743879556035367, - -0.1017021284307968, - -0.09469099879875796, - -0.08584795614274777, - -0.0753502745039132, - -0.06363682634024063, - -0.0523987976991377, - -0.041746901485032975, - -0.03200386034189763, - -0.022031778534589232, - -0.012289575926791918, - -0.003399106049047746, - 0.0033259922494152405, - 0.007323856886077627, - 0.009339989985160247, - 0.009889115010636195, - 0.009697487481007511, - 0.0076121333686534395, - 0.003334052535105788, - -0.003884930252563703, - -0.012663471872016507, - -0.022221572354655224, - -0.03171340033882775, - -0.0415540733631856, - -0.052442279478584174, - -0.06405070764712802, - -0.0757720108128162, - -0.08593493896777168, - -0.09456813612013662, - -0.1014203065494056, - -0.10753964176076738, - -0.11271287677376005, - -0.11642261845388435, - -0.11804396610182334, - -0.11689094262353447, - -0.11385901179441604, - -0.10916452557596247, - -0.10380997709304708, - -0.0972321130735726, - -0.08901874773798697, - -0.07896308541082575, - -0.06745308535123462, - -0.056058315577088395, - -0.045165394704519406, - -0.035323149698907715, - -0.02533184534123848, - -0.015485636376367434, - -0.006084287726159553, - 0.001384719707068955, - 0.006244932453165198, - 0.008815058318377528, - 0.009774172284555054, - 0.009967027481609188, - 0.00853335233556748, - 0.005119854488342939, - -0.0013226338721728135, - -0.009616459985708559, - -0.019069727532181363, - -0.028477730414630816, - -0.03817907104693579, - -0.04872183916178019, - -0.060193266054266274, - -0.07206079800421651, - -0.08270356682884746, - -0.09189830978850717, - -0.09916264901021907, - -0.10563199208568709, - -0.11114092327142652, - -0.11547642640531805, - -0.11782491359513159, - -0.1174727509317058, - -0.1150440000681833, - -0.11074149920616962, - -0.10575143388770727, - -0.0995808050866577, - -0.0920081187015569, - -0.08247691518202661, - -0.07128782978510792, - -0.05980436534680691, - -0.04865351433371847, - -0.03863581005786577, - -0.028616108846066246, - -0.018743584588203917, - -0.008969841998365556, - -0.0008407669801298259, - 0.004896077188148059, - 0.008117091490556125, - 0.00955081279199135, - 0.010103937607620102, - 0.009235481617019895, - 0.006608003703177627, - 0.0009856513738553984, - -0.006727902518877551, - -0.01596362126064137, - -0.02526406984185294, - -0.034845115601294475, - -0.045059248783103314, - -0.05634750800550186, - -0.06827362498779418, - -0.0793427996767259, - -0.08906602088196729, - -0.09677681750149165, - -0.10357893216293693, - -0.10939015808584664, - -0.11429682841048343, - -0.11734954336771129, - -0.11784719749249374, - -0.11607742610718477, - -0.11222715226174959, - -0.10757001537899046, - -0.1017544440971294, - -0.09477033014290935, - -0.08579751112587836, - -0.07504854590469746, - -0.06359251263326783, - -0.05225505823283636, - -0.042012820523590566, - -0.031929632007783496, - -0.022037150034405498, - -0.011986769249382098, - -0.0032950860536321036, - 0.003283355973589154, - 0.007186834570590752, - 0.009154775567845193, - 0.010073068106311995, - 0.009754646580779236, - 0.007865975642040834, - 0.003089214282894323, - -0.003987752158639876, - -0.012945189591894779, - -0.022119544884895384, - -0.031599807408133666, - -0.041473850167693456, - -0.052510350359853936, - -0.06438952874445636, - -0.075838418971855, - -0.08608725853048524, - -0.0942960422546464, - -0.10144188809192377, - -0.1075060005825316, - -0.11289875980837306, - -0.11658372946968773, - -0.11793939959384214, - -0.11688438655677398, - -0.11358264200944192, - -0.10929309983432968, - -0.10381607823068853, - -0.09737590156728843, - -0.08895230815257532, - -0.07870605985479316, - -0.06735359730143625, - -0.055901505346825996, - -0.045434814421974556, - -0.0352864791095807, - -0.025397264743751636, - -0.015139081788222817, - -0.0059514377131859785, - 0.0014513144515240373, - 0.006076171495297191, - 0.008607002939878766, - 0.009858474455589983, - 0.010031272230706151, - 0.00883545602353845, - 0.004950444965190077, - -0.0013901807829112788, - -0.009974686023701707, - -0.01901703902128488, - -0.028436974543687515, - -0.038019424514314434, - -0.048749041317952525, - -0.06045118701038273, - -0.07216682609317099, - -0.08289613990392254, - -0.09166265676788389, - -0.09920142366687446, - -0.10554035261879782, - -0.11135378672485478, - -0.11560847758404963, - -0.11778323984169609, - -0.11745017286692076, - -0.11475360233038337, - -0.11085114192728511, - -0.1057283038900998, - -0.09979958315693535, - -0.09195323131910081, - -0.08227476228535813, - -0.07111169681641462, - -0.05959449421816749, - -0.0488725020665947, - -0.03864024448093439, - -0.02877613173102346, - -0.018432960646203363, - -0.008843094300200083, - -0.0006674883701040825, - 0.004752104668139388, - 0.007936820706593508, - 0.00954111336986008, - 0.010143791086156085, - 0.009526052156473624, - 0.006515658099130609, - 0.0009788876413294055, - -0.007084795310172607, - -0.015932204375780315, - -0.025295744088585235, - -0.03465766201302316, - -0.04509883414183861, - -0.05654680172008645, - -0.06842454727570602, - -0.07953556068620034, - -0.08885761312788322, - -0.09680118648492145, - -0.10343689431669187, - -0.10963007585502968, - -0.11441727787748711, - -0.1173998692729466, - -0.11781125740133956, - -0.11578216050981474, - -0.11227106660595665, - -0.10749279882066166, - -0.10201588910934119, - -0.09474575976889071, - -0.08570543125615823, - -0.07484793697734915, - -0.06336750000887661, - -0.052382976406452834, - -0.04200543424308965, - -0.03211852680946727, - -0.021762775103169638, - -0.011893517331869354, - -0.0030584854709954177, - 0.0031470904235491965, - 0.00705706471191354, - 0.009081708013615849, - 0.01011743259812652, - 0.010012127736541407, - 0.007816644284132436, - 0.003094446163879665, - -0.00435810813461733, - -0.01292800705554397, - -0.02218911883562174, - -0.03135111531883002, - -0.04149901224843906, - -0.0526460321701837, - -0.06460731011168555, - -0.07605484524258216, - -0.08593023124525755, - -0.09429493585838761, - -0.10122884229958697, - -0.10773329042047074, - -0.11299441205163895, - -0.11673899720086094, - -0.11792731465603148, - -0.11664228998373709, - -0.11358082770302885, - -0.10915529831149835, - -0.10406683052055941, - -0.0973292391963875, - -0.0889349394511538, - -0.07848311431793402, - -0.06715272496033192, - -0.0559791669918354, - -0.04544840286118957, - -0.03549887535683647, - -0.02514455070268268, - -0.01505442948013129, - -0.00565208399803319, - 0.0013176115400990603, - 0.005969377740723861, - 0.008453248085217416, - 0.00990992428808207, - 0.010284757653218533, - 0.008879848526657233, - 0.0049945020139833375, - -0.001766638208638646, - -0.010021214910133991, - -0.019161666500981264, - -0.02816652679065563, - -0.038012009596529645, - -0.048783128822664626, - -0.060701643452686596, - -0.07240373474037286, - -0.08284006563336042, - -0.09166945065988873, - -0.09895544620189657, - -0.10572018067687976, - -0.11138700703407632, - -0.11581295014546472, - -0.11776159262235299, - -0.11727440937916057, - -0.11472632792598383, - -0.11071424836086637, - -0.10598889356538256, - -0.09976315734167897, - -0.0920000269721387, - -0.08200881362425028, - -0.07090352043204769, - -0.059581350616651894, - -0.04890925334520305, - -0.03888299530970968, - -0.02859322911796461, - -0.018356289710080968, - -0.008472955293237631, - -0.0007462353832897392, - 0.004700254028679534, - 0.007690882073718627, - 0.00954811258127935, - 0.010317817054502371 - ], - "datatype": "Float64", - "type": "series", - "novalues": 401 - }, - "pos_x_4411_solid_1": { - "time": [ - 0.0, - 0.025, - 0.05, - 0.07500000000000001, - 0.1, - 0.125, - 0.15000000000000002, - 0.17500000000000002, - 0.2, - 0.225, - 0.25, - 0.275, - 0.30000000000000004, - 0.325, - 0.35000000000000003, - 0.375, - 0.4, - 0.42500000000000004, - 0.45, - 0.47500000000000003, - 0.5, - 0.525, - 0.55, - 0.5750000000000001, - 0.6000000000000001, - 0.625, - 0.65, - 0.675, - 0.7000000000000001, - 0.7250000000000001, - 0.75, - 0.775, - 0.8, - 0.8250000000000001, - 0.8500000000000001, - 0.875, - 0.9, - 0.925, - 0.9500000000000001, - 0.9750000000000001, - 1.0, - 1.0250000000000001, - 1.05, - 1.075, - 1.1, - 1.125, - 1.1500000000000001, - 1.175, - 1.2000000000000002, - 1.225, - 1.25, - 1.2750000000000001, - 1.3, - 1.3250000000000002, - 1.35, - 1.375, - 1.4000000000000001, - 1.425, - 1.4500000000000002, - 1.475, - 1.5, - 1.5250000000000001, - 1.55, - 1.5750000000000002, - 1.6, - 1.625, - 1.6500000000000001, - 1.675, - 1.7000000000000002, - 1.725, - 1.75, - 1.7750000000000001, - 1.8, - 1.8250000000000002, - 1.85, - 1.875, - 1.9000000000000001, - 1.925, - 1.9500000000000002, - 1.975, - 2.0, - 2.025, - 2.0500000000000003, - 2.075, - 2.1, - 2.125, - 2.15, - 2.1750000000000003, - 2.2, - 2.225, - 2.25, - 2.275, - 2.3000000000000003, - 2.325, - 2.35, - 2.375, - 2.4000000000000004, - 2.4250000000000003, - 2.45, - 2.475, - 2.5, - 2.5250000000000004, - 2.5500000000000003, - 2.575, - 2.6, - 2.625, - 2.6500000000000004, - 2.6750000000000003, - 2.7, - 2.725, - 2.75, - 2.7750000000000004, - 2.8000000000000003, - 2.825, - 2.85, - 2.875, - 2.9000000000000004, - 2.9250000000000003, - 2.95, - 2.975, - 3.0, - 3.0250000000000004, - 3.0500000000000003, - 3.075, - 3.1, - 3.125, - 3.1500000000000004, - 3.1750000000000003, - 3.2, - 3.225, - 3.25, - 3.2750000000000004, - 3.3000000000000003, - 3.325, - 3.35, - 3.375, - 3.4000000000000004, - 3.4250000000000003, - 3.45, - 3.475, - 3.5, - 3.5250000000000004, - 3.5500000000000003, - 3.575, - 3.6, - 3.625, - 3.6500000000000004, - 3.6750000000000003, - 3.7, - 3.725, - 3.75, - 3.7750000000000004, - 3.8000000000000003, - 3.825, - 3.85, - 3.875, - 3.9000000000000004, - 3.9250000000000003, - 3.95, - 3.975, - 4.0, - 4.025, - 4.05, - 4.075, - 4.1000000000000005, - 4.125, - 4.15, - 4.175, - 4.2, - 4.2250000000000005, - 4.25, - 4.275, - 4.3, - 4.325, - 4.3500000000000005, - 4.375, - 4.4, - 4.425, - 4.45, - 4.4750000000000005, - 4.5, - 4.525, - 4.55, - 4.575, - 4.6000000000000005, - 4.625, - 4.65, - 4.675, - 4.7, - 4.7250000000000005, - 4.75, - 4.775, - 4.800000000000001, - 4.825, - 4.8500000000000005, - 4.875, - 4.9, - 4.925000000000001, - 4.95, - 4.9750000000000005, - 5.0, - 5.025, - 5.050000000000001, - 5.075, - 5.1000000000000005, - 5.125, - 5.15, - 5.175000000000001, - 5.2, - 5.2250000000000005, - 5.25, - 5.275, - 5.300000000000001, - 5.325, - 5.3500000000000005, - 5.375, - 5.4, - 5.425000000000001, - 5.45, - 5.4750000000000005, - 5.5, - 5.525, - 5.550000000000001, - 5.575, - 5.6000000000000005, - 5.625, - 5.65, - 5.675000000000001, - 5.7, - 5.7250000000000005, - 5.75, - 5.775, - 5.800000000000001, - 5.825, - 5.8500000000000005, - 5.875, - 5.9, - 5.925000000000001, - 5.95, - 5.9750000000000005, - 6.0, - 6.025, - 6.050000000000001, - 6.075, - 6.1000000000000005, - 6.125, - 6.15, - 6.175000000000001, - 6.2, - 6.2250000000000005, - 6.25, - 6.275, - 6.300000000000001, - 6.325, - 6.3500000000000005, - 6.375, - 6.4, - 6.425000000000001, - 6.45, - 6.4750000000000005, - 6.5, - 6.525, - 6.550000000000001, - 6.575, - 6.6000000000000005, - 6.625, - 6.65, - 6.675000000000001, - 6.7, - 6.7250000000000005, - 6.75, - 6.775, - 6.800000000000001, - 6.825, - 6.8500000000000005, - 6.875, - 6.9, - 6.925000000000001, - 6.95, - 6.9750000000000005, - 7.0, - 7.025, - 7.050000000000001, - 7.075, - 7.1000000000000005, - 7.125, - 7.15, - 7.175000000000001, - 7.2, - 7.2250000000000005, - 7.25, - 7.275, - 7.300000000000001, - 7.325, - 7.3500000000000005, - 7.375, - 7.4, - 7.425000000000001, - 7.45, - 7.4750000000000005, - 7.5, - 7.525, - 7.550000000000001, - 7.575, - 7.6000000000000005, - 7.625, - 7.65, - 7.675000000000001, - 7.7, - 7.7250000000000005, - 7.75, - 7.775, - 7.800000000000001, - 7.825, - 7.8500000000000005, - 7.875, - 7.9, - 7.925000000000001, - 7.95, - 7.9750000000000005, - 8.0, - 8.025, - 8.05, - 8.075000000000001, - 8.1, - 8.125, - 8.15, - 8.175, - 8.200000000000001, - 8.225, - 8.25, - 8.275, - 8.3, - 8.325000000000001, - 8.35, - 8.375, - 8.4, - 8.425, - 8.450000000000001, - 8.475, - 8.5, - 8.525, - 8.55, - 8.575000000000001, - 8.6, - 8.625, - 8.65, - 8.675, - 8.700000000000001, - 8.725, - 8.75, - 8.775, - 8.8, - 8.825000000000001, - 8.85, - 8.875, - 8.9, - 8.925, - 8.950000000000001, - 8.975, - 9.0, - 9.025, - 9.05, - 9.075000000000001, - 9.1, - 9.125, - 9.15, - 9.175, - 9.200000000000001, - 9.225, - 9.25, - 9.275, - 9.3, - 9.325000000000001, - 9.35, - 9.375, - 9.4, - 9.425, - 9.450000000000001, - 9.475, - 9.5, - 9.525, - 9.55, - 9.575000000000001, - 9.600000000000001, - 9.625, - 9.65, - 9.675, - 9.700000000000001, - 9.725000000000001, - 9.75, - 9.775, - 9.8, - 9.825000000000001, - 9.850000000000001, - 9.875, - 9.9, - 9.925, - 9.950000000000001, - 9.975000000000001, - 10.0 - ], - "system_name": "solid_1", - "values": [ - 0.4, - 0.3999991949523069, - 0.3999827978079431, - 0.39992701574539397, - 0.39972986433442464, - 0.39920346564700254, - 0.39831948483759394, - 0.39718296473572656, - 0.3957535758644459, - 0.3938261498696264, - 0.3911607716833759, - 0.3879296116317832, - 0.3845598485451259, - 0.3816808145720769, - 0.37924887957090453, - 0.3769944420046997, - 0.3747622978634665, - 0.3728171601767364, - 0.37193304256714255, - 0.3723962568803077, - 0.3741052792889865, - 0.3762500440713188, - 0.37847929735616065, - 0.3808020753163519, - 0.3835256711204817, - 0.38681688821598736, - 0.39015034380147806, - 0.3930361186964863, - 0.3951695518075019, - 0.3967387382756115, - 0.3979617917429358, - 0.3989517496083467, - 0.3996026460904186, - 0.39988549420489683, - 0.39997168170678665, - 0.3999969629116498, - 0.39999960344460544, - 0.4000003373754484, - 0.3999905761019585, - 0.3999530861898897, - 0.399822943046632, - 0.3994158941963486, - 0.39864406536482505, - 0.39759251677895363, - 0.39628626003866163, - 0.3945435683104889, - 0.39210663222921116, - 0.38902347321233016, - 0.3856296370474522, - 0.38260595045738965, - 0.38004732635842475, - 0.3777648027142694, - 0.375468728688396, - 0.37334289578374197, - 0.37206803115485076, - 0.3720891912790939, - 0.37350244521664977, - 0.37552434319159955, - 0.3777322634481404, - 0.3799657371347136, - 0.3825395350345915, - 0.38570639015079505, - 0.3890929084860907, - 0.39217441951735055, - 0.3945238796899128, - 0.396256347885854, - 0.3975726949329004, - 0.39866030337784003, - 0.39943692533072583, - 0.39982496561057557, - 0.39995439864747606, - 0.3999929497595365, - 0.39999989211628334, - 0.39999964201067884, - 0.39999533666932874, - 0.39996971042524593, - 0.39988535548394216, - 0.39958694711581627, - 0.39893432657886185, - 0.3979695195805254, - 0.39677228678855986, - 0.39519885370330526, - 0.39298721953076504, - 0.39008284184449044, - 0.38671850673130703, - 0.38357112107836017, - 0.3808711679304234, - 0.37854747060036437, - 0.3762128826575832, - 0.37395837652988095, - 0.3723401363332613, - 0.3719177350092225, - 0.37297811047883483, - 0.37482947031857017, - 0.37700140797563697, - 0.3791656844209184, - 0.3816016547462587, - 0.38461079617250055, - 0.3879992564108432, - 0.39124759833156625, - 0.39381498655965363, - 0.39572692707831225, - 0.3971510884330992, - 0.3983305600120634, - 0.399226719028441, - 0.3997372622535225, - 0.39992836961112543, - 0.39998476912518344, - 0.3999999690187658, - 0.3999997336641225, - 0.3999976857313169, - 0.3999806656814744, - 0.39992648427228883, - 0.39971807747393284, - 0.3991855874310403, - 0.3983147617673323, - 0.39721325236300714, - 0.39578923843694014, - 0.3938005897385554, - 0.3910996951688233, - 0.3878196748523689, - 0.38457898085934983, - 0.3817321942267066, - 0.37934268214810035, - 0.37697868763974157, - 0.3746430422974543, - 0.3727335192773999, - 0.3718868389416374, - 0.37254509999431495, - 0.37418121135018934, - 0.3762902243104276, - 0.3783959985571269, - 0.3807142945873634, - 0.3835434535292058, - 0.3868819368524915, - 0.3902553266918621, - 0.39304355384993706, - 0.39515035174442564, - 0.3966962789543194, - 0.39796597519394616, - 0.3989727508731461, - 0.3996146789226557, - 0.39988838071770016, - 0.3999726896663179, - 0.399997789926311, - 0.39999990453590767, - 0.3999996168498951, - 0.3999875230641161, - 0.39995230611899635, - 0.3998163491883645, - 0.39939899367871196, - 0.3986295573890957, - 0.3976182307599978, - 0.39632133476695586, - 0.3945385837595623, - 0.3920586923808145, - 0.3889124437720275, - 0.3856220206693434, - 0.3826338437961037, - 0.3801573454826358, - 0.37776316717698627, - 0.3753788397900628, - 0.3732365841645914, - 0.3719958254280571, - 0.3722181266703052, - 0.3735885797424847, - 0.37560688497292416, - 0.3776586628145118, - 0.3798770618952665, - 0.3825180903773427, - 0.38575761725260055, - 0.38920351970277084, - 0.392198481636193, - 0.39451870982869264, - 0.3962075733732228, - 0.3975690495192842, - 0.3986773663816564, - 0.39945519519293227, - 0.39982866066700756, - 0.3999541901582808, - 0.3999941975744748, - 0.39999949755462666, - 0.3999999999748252, - 0.3999929546887098, - 0.3999674412533632, - 0.3998839403140528, - 0.39957411998057724, - 0.3989127234349518, - 0.3979883735712294, - 0.39680503801355066, - 0.39520805043737917, - 0.3929504271706939, - 0.3899788041290508, - 0.38668854488874727, - 0.3835780841672649, - 0.38099280892523063, - 0.3785672484369483, - 0.37615631879967987, - 0.37383490677473985, - 0.37224255368677256, - 0.37200799822098346, - 0.37306057438446605, - 0.3749448864265301, - 0.3769479599126981, - 0.37908760242159106, - 0.3815476145664758, - 0.38464887330977904, - 0.3881114102061555, - 0.3912875563144921, - 0.39382274211537704, - 0.3956769566728013, - 0.3971394668655082, - 0.398339884889061, - 0.3992523583227946, - 0.39974462681901973, - 0.3999269196017904, - 0.39998723971308786, - 0.39999976878900606, - 0.3999994204428471, - 0.39999588368129085, - 0.39997690035985556, - 0.3999265872392995, - 0.3997094546423851, - 0.3991621734114726, - 0.39832628910608164, - 0.39724169234648654, - 0.39581399274142115, - 0.39377483958513065, - 0.3910053094193948, - 0.3877640567011611, - 0.38455910580057606, - 0.38184924180161933, - 0.37937956187549493, - 0.3769643881491172, - 0.37451686613946894, - 0.3726262346243001, - 0.37193417402592377, - 0.37262312153768223, - 0.3743188753859867, - 0.376256197069438, - 0.37833417556282023, - 0.3806286546242105, - 0.38356467794784055, - 0.38698597576995775, - 0.39031591600206383, - 0.393065883801823, - 0.395100731321105, - 0.39667707965999865, - 0.3979645817398373, - 0.39900283910253087, - 0.3996266606094417, - 0.3998874187425105, - 0.3999748818638124, - 0.39999823488991587, - 0.39999978659157576, - 0.3999977546109385, - 0.3999833317151711, - 0.3999533427185256, - 0.39980966758764314, - 0.39937513085551024, - 0.3986330822580644, - 0.39763762063085833, - 0.3963563135942404, - 0.39452897715638885, - 0.39198337037919884, - 0.3888411377383783, - 0.3855798732954825, - 0.3827364687463191, - 0.3802026517310678, - 0.37778315368419885, - 0.37525790622606003, - 0.37312402001753103, - 0.37199611835022156, - 0.3722874832280759, - 0.37374400278015224, - 0.3755973538161679, - 0.37761626809769433, - 0.379767610940101, - 0.38252084031722144, - 0.3858445410356096, - 0.38928197613613025, - 0.3922414538384853, - 0.39447691496246284, - 0.39618046253307354, - 0.39755450475715315, - 0.3987083926115527, - 0.3994694471520893, - 0.399829318192222, - 0.39995670485602713, - 0.3999941794723096, - 0.3999993363936881, - 0.3999995720999247, - 0.3999884771047233, - 0.3999679665771695, - 0.3998807705043127, - 0.39955354642434976, - 0.39890861860212956, - 0.3979989820128346, - 0.3968434115878967, - 0.3952080375143291, - 0.39289600305207417, - 0.38989847055980253, - 0.386629629416878, - 0.3836582726054961, - 0.3810470715493183, - 0.3786169346635251, - 0.37604742397615865, - 0.37372593444427915, - 0.3721950304881544, - 0.3720639516220303, - 0.3732213282041088, - 0.37496813410191876, - 0.37693078816606346, - 0.3789628119364789, - 0.3815288286751518, - 0.3847070807628841, - 0.3882007653415447, - 0.39134528072211716, - 0.3937956484494289, - 0.39564821288304236, - 0.39711363828104723, - 0.39837031852114185, - 0.3992705828002206, - 0.39974817432628224, - 0.3999289350860375, - 0.3999873375089119, - 0.3999985370614585, - 0.3999996026815646, - 0.3999929174404081, - 0.39997576861193984, - 0.3999254268804632, - 0.39969562068113074, - 0.3991532820112384, - 0.39832802407170315, - 0.39728322751853223, - 0.39582265462333754, - 0.3937393184044991, - 0.3909218307872019, - 0.3876925284135763, - 0.38461112221679045, - 0.38190682284296534, - 0.37945874930360873, - 0.37687430136954136, - 0.37441450110698843, - 0.3725316200306596, - 0.371968811612631, - 0.37277243078567396, - 0.3743698256590537, - 0.376271289322806, - 0.3782098331974815, - 0.3805963004979912, - 0.3835919922646787, - 0.387085929369493, - 0.39038669229438155, - 0.3930517999454157, - 0.3950708065196198, - 0.39663994190780466, - 0.3979894448721912, - 0.3990236358416943, - 0.3996372411683999, - 0.3998890233186563, - 0.39997488725950586, - 0.3999976135292783, - 0.3999996625955702, - 0.39999554394880615, - 0.39998076974222024, - 0.39995142075417234, - 0.3998011507856073, - 0.3993635268020642, - 0.3986261374004436, - 0.3976765156883616, - 0.39637373006329646, - 0.3945128905738657, - 0.39190148278387166, - 0.38876026173415273, - 0.38559704319959026, - 0.3827895815515019, - 0.3803015406289117, - 0.377724639466869, - 0.3751745602546208, - 0.37299692707932414, - 0.3720108134601388, - 0.37241462410983095, - 0.373818117687809, - 0.3756338009448779, - 0.37749742084634214, - 0.37972043044102655, - 0.3825128745584508, - 0.385948282899876, - 0.3893674823992209, - 0.3922500051735576, - 0.39444841770907246, - 0.39613470513949656, - 0.39757023919908757, - 0.39872793952393315, - 0.3994871334786665, - 0.3998320635645742, - 0.3999557646216311, - 0.3999935989420282, - 0.3999999921758742, - 0.3999981012693515 - ], - "datatype": "Float64", - "type": "series", - "novalues": 401 - } -} diff --git a/validation/oscillating_beam_2d_positions_20.json b/validation/oscillating_beam_2d_positions_20.json deleted file mode 100644 index e837d79c3..000000000 --- a/validation/oscillating_beam_2d_positions_20.json +++ /dev/null @@ -1,1631 +0,0 @@ -{ - "meta": { - "julia_version": "1.9.4", - "solver_version": "8a7da404f6e05076a7c4eaaa21244ad7ffd49aa7", - "solver_name": "TrixiParticles.jl" - }, - "pos_x_243_solid_1": { - "time": [ - 0.0, - 0.025, - 0.05, - 0.07500000000000001, - 0.1, - 0.125, - 0.15000000000000002, - 0.17500000000000002, - 0.2, - 0.225, - 0.25, - 0.275, - 0.30000000000000004, - 0.325, - 0.35000000000000003, - 0.375, - 0.4, - 0.42500000000000004, - 0.45, - 0.47500000000000003, - 0.5, - 0.525, - 0.55, - 0.5750000000000001, - 0.6000000000000001, - 0.625, - 0.65, - 0.675, - 0.7000000000000001, - 0.7250000000000001, - 0.75, - 0.775, - 0.8, - 0.8250000000000001, - 0.8500000000000001, - 0.875, - 0.9, - 0.925, - 0.9500000000000001, - 0.9750000000000001, - 1.0, - 1.0250000000000001, - 1.05, - 1.075, - 1.1, - 1.125, - 1.1500000000000001, - 1.175, - 1.2000000000000002, - 1.225, - 1.25, - 1.2750000000000001, - 1.3, - 1.3250000000000002, - 1.35, - 1.375, - 1.4000000000000001, - 1.425, - 1.4500000000000002, - 1.475, - 1.5, - 1.5250000000000001, - 1.55, - 1.5750000000000002, - 1.6, - 1.625, - 1.6500000000000001, - 1.675, - 1.7000000000000002, - 1.725, - 1.75, - 1.7750000000000001, - 1.8, - 1.8250000000000002, - 1.85, - 1.875, - 1.9000000000000001, - 1.925, - 1.9500000000000002, - 1.975, - 2.0, - 2.025, - 2.0500000000000003, - 2.075, - 2.1, - 2.125, - 2.15, - 2.1750000000000003, - 2.2, - 2.225, - 2.25, - 2.275, - 2.3000000000000003, - 2.325, - 2.35, - 2.375, - 2.4000000000000004, - 2.4250000000000003, - 2.45, - 2.475, - 2.5, - 2.5250000000000004, - 2.5500000000000003, - 2.575, - 2.6, - 2.625, - 2.6500000000000004, - 2.6750000000000003, - 2.7, - 2.725, - 2.75, - 2.7750000000000004, - 2.8000000000000003, - 2.825, - 2.85, - 2.875, - 2.9000000000000004, - 2.9250000000000003, - 2.95, - 2.975, - 3.0, - 3.0250000000000004, - 3.0500000000000003, - 3.075, - 3.1, - 3.125, - 3.1500000000000004, - 3.1750000000000003, - 3.2, - 3.225, - 3.25, - 3.2750000000000004, - 3.3000000000000003, - 3.325, - 3.35, - 3.375, - 3.4000000000000004, - 3.4250000000000003, - 3.45, - 3.475, - 3.5, - 3.5250000000000004, - 3.5500000000000003, - 3.575, - 3.6, - 3.625, - 3.6500000000000004, - 3.6750000000000003, - 3.7, - 3.725, - 3.75, - 3.7750000000000004, - 3.8000000000000003, - 3.825, - 3.85, - 3.875, - 3.9000000000000004, - 3.9250000000000003, - 3.95, - 3.975, - 4.0, - 4.025, - 4.05, - 4.075, - 4.1000000000000005, - 4.125, - 4.15, - 4.175, - 4.2, - 4.2250000000000005, - 4.25, - 4.275, - 4.3, - 4.325, - 4.3500000000000005, - 4.375, - 4.4, - 4.425, - 4.45, - 4.4750000000000005, - 4.5, - 4.525, - 4.55, - 4.575, - 4.6000000000000005, - 4.625, - 4.65, - 4.675, - 4.7, - 4.7250000000000005, - 4.75, - 4.775, - 4.800000000000001, - 4.825, - 4.8500000000000005, - 4.875, - 4.9, - 4.925000000000001, - 4.95, - 4.9750000000000005, - 5.0, - 5.025, - 5.050000000000001, - 5.075, - 5.1000000000000005, - 5.125, - 5.15, - 5.175000000000001, - 5.2, - 5.2250000000000005, - 5.25, - 5.275, - 5.300000000000001, - 5.325, - 5.3500000000000005, - 5.375, - 5.4, - 5.425000000000001, - 5.45, - 5.4750000000000005, - 5.5, - 5.525, - 5.550000000000001, - 5.575, - 5.6000000000000005, - 5.625, - 5.65, - 5.675000000000001, - 5.7, - 5.7250000000000005, - 5.75, - 5.775, - 5.800000000000001, - 5.825, - 5.8500000000000005, - 5.875, - 5.9, - 5.925000000000001, - 5.95, - 5.9750000000000005, - 6.0, - 6.025, - 6.050000000000001, - 6.075, - 6.1000000000000005, - 6.125, - 6.15, - 6.175000000000001, - 6.2, - 6.2250000000000005, - 6.25, - 6.275, - 6.300000000000001, - 6.325, - 6.3500000000000005, - 6.375, - 6.4, - 6.425000000000001, - 6.45, - 6.4750000000000005, - 6.5, - 6.525, - 6.550000000000001, - 6.575, - 6.6000000000000005, - 6.625, - 6.65, - 6.675000000000001, - 6.7, - 6.7250000000000005, - 6.75, - 6.775, - 6.800000000000001, - 6.825, - 6.8500000000000005, - 6.875, - 6.9, - 6.925000000000001, - 6.95, - 6.9750000000000005, - 7.0, - 7.025, - 7.050000000000001, - 7.075, - 7.1000000000000005, - 7.125, - 7.15, - 7.175000000000001, - 7.2, - 7.2250000000000005, - 7.25, - 7.275, - 7.300000000000001, - 7.325, - 7.3500000000000005, - 7.375, - 7.4, - 7.425000000000001, - 7.45, - 7.4750000000000005, - 7.5, - 7.525, - 7.550000000000001, - 7.575, - 7.6000000000000005, - 7.625, - 7.65, - 7.675000000000001, - 7.7, - 7.7250000000000005, - 7.75, - 7.775, - 7.800000000000001, - 7.825, - 7.8500000000000005, - 7.875, - 7.9, - 7.925000000000001, - 7.95, - 7.9750000000000005, - 8.0, - 8.025, - 8.05, - 8.075000000000001, - 8.1, - 8.125, - 8.15, - 8.175, - 8.200000000000001, - 8.225, - 8.25, - 8.275, - 8.3, - 8.325000000000001, - 8.35, - 8.375, - 8.4, - 8.425, - 8.450000000000001, - 8.475, - 8.5, - 8.525, - 8.55, - 8.575000000000001, - 8.6, - 8.625, - 8.65, - 8.675, - 8.700000000000001, - 8.725, - 8.75, - 8.775, - 8.8, - 8.825000000000001, - 8.85, - 8.875, - 8.9, - 8.925, - 8.950000000000001, - 8.975, - 9.0, - 9.025, - 9.05, - 9.075000000000001, - 9.1, - 9.125, - 9.15, - 9.175, - 9.200000000000001, - 9.225, - 9.25, - 9.275, - 9.3, - 9.325000000000001, - 9.35, - 9.375, - 9.4, - 9.425, - 9.450000000000001, - 9.475, - 9.5, - 9.525, - 9.55, - 9.575000000000001, - 9.600000000000001, - 9.625, - 9.65, - 9.675, - 9.700000000000001, - 9.725000000000001, - 9.75, - 9.775, - 9.8, - 9.825000000000001, - 9.850000000000001, - 9.875, - 9.9, - 9.925, - 9.950000000000001, - 9.975000000000001, - 10.0 - ], - "system_name": "solid_1", - "values": [ - 0.4, - 0.39999922313174524, - 0.3999830058506265, - 0.39992734841177335, - 0.39973137469687664, - 0.39921210675287666, - 0.39834960694652805, - 0.3972411397232045, - 0.39583985194321986, - 0.39394398202613307, - 0.3913336936493223, - 0.38819790872502086, - 0.38498463988637854, - 0.3822583620525521, - 0.3799474241120926, - 0.3778000643650931, - 0.3756748331385639, - 0.37390617588746117, - 0.3732390765945044, - 0.3738730578293041, - 0.37562987784813745, - 0.3777329255427314, - 0.3798885101819791, - 0.3821779248530956, - 0.38490148861772056, - 0.3881068779124885, - 0.3912551055212245, - 0.3938816569615333, - 0.395789956108374, - 0.3972070558896628, - 0.3983197397386531, - 0.39919292525779926, - 0.3997223126936333, - 0.39992513394255585, - 0.39998171141616057, - 0.3999986831600564, - 0.40000099028570646, - 0.39999908623608305, - 0.399982703075286, - 0.39993126982865396, - 0.3997406687056006, - 0.3992290447383168, - 0.3983795810533355, - 0.3972766269768222, - 0.395888822178926, - 0.394004224849817, - 0.3914156958979307, - 0.38828513042610846, - 0.38506710543843725, - 0.3823368427085171, - 0.3800102782998679, - 0.37786681547698214, - 0.3757209536013012, - 0.37394655839225016, - 0.3732365194465692, - 0.3738400404739971, - 0.3755816955503169, - 0.37766825036814283, - 0.3798276824012987, - 0.3820972861745876, - 0.38482252002594713, - 0.38801511687097096, - 0.39117474152297826, - 0.3938180273431007, - 0.3957414339168781, - 0.39717062318317703, - 0.39828920389882605, - 0.39917592111418865, - 0.39971243987439886, - 0.39992104428784825, - 0.39998195819418286, - 0.3999990430752392, - 0.3999998630514736, - 0.39999937999378565, - 0.3999841655931981, - 0.39993336292515586, - 0.3997486231292376, - 0.39924810226657104, - 0.39840846557733794, - 0.39730946610394086, - 0.395938725443635, - 0.3940643958508457, - 0.3914968370090927, - 0.38837216158757065, - 0.38515590272111305, - 0.38241358051881763, - 0.3800727503147081, - 0.3779334812172001, - 0.3757654266822212, - 0.3739864585558255, - 0.37323135918319206, - 0.3738151548143337, - 0.3755314411162085, - 0.37760485565530816, - 0.37976563317662304, - 0.38201722478003514, - 0.38474174094657554, - 0.3879210924897971, - 0.3910983693740465, - 0.3937534442377447, - 0.3956925605806249, - 0.39713440489540264, - 0.3982599112195329, - 0.39915606286372185, - 0.39970236473352094, - 0.39991886795200515, - 0.39998067617598504, - 0.399998241117536, - 0.4000006947978478, - 0.3999995271162026, - 0.39998385435732653, - 0.39993679043569264, - 0.39975740994500436, - 0.39926548544910134, - 0.3984368602075993, - 0.3973454885274939, - 0.3959870412872358, - 0.3941233784213554, - 0.3915792942829022, - 0.3884565875121852, - 0.385242942672339, - 0.38248787644316845, - 0.38013985760896546, - 0.3779980620590044, - 0.37581204544221847, - 0.3740287187667766, - 0.3732254206059701, - 0.3737894871354321, - 0.3754782743336024, - 0.3775463100163957, - 0.37970338424679556, - 0.38193864025114016, - 0.384663778845614, - 0.38782743569379363, - 0.3910195320701481, - 0.3936865666930475, - 0.39564558487594387, - 0.3970958517360307, - 0.39822981344865055, - 0.39913797781900673, - 0.39969211426055873, - 0.39991475384965347, - 0.3999807152757958, - 0.399998783901868, - 0.399999496872246, - 0.39999959052927064, - 0.399985499432434, - 0.3999385690491235, - 0.39976460882059023, - 0.3992849391459834, - 0.3984640183870081, - 0.3973790461953808, - 0.39603504271954565, - 0.3941831240232599, - 0.39166013907462655, - 0.38854056737694265, - 0.3853354262172293, - 0.38255969410187757, - 0.38020747816380157, - 0.3780601346108244, - 0.3758622916740137, - 0.37406926301655796, - 0.37322079726547874, - 0.37377100938061025, - 0.3754239972608905, - 0.377488179143774, - 0.3796372802583085, - 0.38186305280200783, - 0.3845813701010374, - 0.3877332804808308, - 0.3909431970636759, - 0.3936195160709758, - 0.3955969586378129, - 0.3970572728134372, - 0.3982012063659349, - 0.3991170041264177, - 0.39968142373671983, - 0.3999126257836015, - 0.3999794844684719, - 0.39999787224983446, - 0.40000019328954595, - 0.4000000560093844, - 0.39998529771789787, - 0.3999412337931668, - 0.3997730088484052, - 0.3993025089027561, - 0.3984902725991518, - 0.39741580481491195, - 0.3960814705686613, - 0.39424177936116467, - 0.39174110143658114, - 0.3886247444255008, - 0.3854256255262936, - 0.3826313600527793, - 0.38028081646679185, - 0.3781208347320337, - 0.3759140033146896, - 0.3741093979453999, - 0.3732164678140947, - 0.3737491769750971, - 0.37536697800054797, - 0.37743536739832223, - 0.37956981938467593, - 0.38178945598026165, - 0.3844993998816941, - 0.3876406687516437, - 0.3908639251248579, - 0.3935508765667236, - 0.3955508991427451, - 0.3970172412822973, - 0.3981722484973221, - 0.3990971844487917, - 0.39967125450854335, - 0.3999084003299183, - 0.39997895773406783, - 0.39999860211903937, - 0.3999991844855652, - 0.39999992048006855, - 0.39998712852561913, - 0.3999428036571143, - 0.3997797030448152, - 0.3993218484061916, - 0.3985157577434149, - 0.3974506656771296, - 0.39612710117084554, - 0.394303157348907, - 0.3918195462535474, - 0.38870981347064515, - 0.3855182660058589, - 0.38270101525713784, - 0.38035225640995246, - 0.37817828643219986, - 0.3759706317071803, - 0.37414539852582257, - 0.37321713999088524, - 0.37373019417236786, - 0.37531151569493215, - 0.37738102123075784, - 0.3795002132686397, - 0.38171978644106974, - 0.38441452391220726, - 0.38754959798331723, - 0.39078598592497343, - 0.3934830899913535, - 0.3955018945546022, - 0.3969766654025849, - 0.3981443365061794, - 0.39907482010027684, - 0.39966031651987444, - 0.3999061450575903, - 0.3999776306541956, - 0.3999975326243664, - 0.3999997916527617, - 0.4000004637024209, - 0.3999869210057117, - 0.39994483988426316, - 0.3997881025721677, - 0.3993394635836355, - 0.3985405553474477, - 0.3974882341688631, - 0.396171279520941, - 0.3943624319428618, - 0.3918968070046781, - 0.3887954384819591, - 0.38560776177093575, - 0.3827719662097184, - 0.3804286993237685, - 0.37823528482557606, - 0.37602935143806787, - 0.37417942387099057, - 0.37322137265055394, - 0.3737075054874054, - 0.375256530051173, - 0.3773307116712913, - 0.3794302918286138, - 0.3816513059441848, - 0.3843267404839973, - 0.38746104391222363, - 0.39070351824406796, - 0.39341444647393575, - 0.3954543524015748, - 0.3969361934863863, - 0.39811507361005083, - 0.3990533122713997, - 0.39965037230949296, - 0.39990178784010116, - 0.39997659997290086, - 0.39999847142231404, - 0.39999914751253024, - 0.4000000363958431, - 0.3999886185236712, - 0.3999464197418224, - 0.3997944382604939, - 0.399357582757973, - 0.39856532999641947, - 0.39752342955706155, - 0.3962145814988402, - 0.3944252004755847, - 0.3919721166306899, - 0.38888322246764256, - 0.3856969218306526, - 0.38284460947528015, - 0.38050083853762773, - 0.3782917129604623, - 0.3760921463404868, - 0.3742118200906457, - 0.3732298753901701, - 0.3736841234190592, - 0.3752045082630517, - 0.3772754009372124, - 0.3793589058167465, - 0.38158537000338627, - 0.38423802787121186, - 0.38737348107472114, - 0.39062201536535723, - 0.3933477591484908, - 0.3954037786502627, - 0.3968954723201139, - 0.398087220690303, - 0.3990301202261352, - 0.39963925067326855, - 0.39989904955982625, - 0.3999751893357675, - 0.3999971728737142, - 0.39999970163973964, - 0.400000722124868, - 0.39998833622070384, - 0.3999480997873665, - 0.39980288987418955, - 0.3993743665940633, - 0.3985894314581668, - 0.3975608357805535, - 0.39625724121133027, - 0.3944854041317409, - 0.39204609278873864, - 0.3889735494248671, - 0.3857825877197183, - 0.38291969520163255, - 0.38057539583932376, - 0.37834845041000104, - 0.3761527990173143, - 0.37424103281828675, - 0.3732429743665659, - 0.37365566473767725, - 0.3751563238238245, - 0.3772225598438629, - 0.37929116725148876, - 0.3815179698648137, - 0.38414804851155865, - 0.38728862706063283, - 0.39053639532633183, - 0.39328061840910605, - 0.39535393899851395, - 0.396855825370821, - 0.3980564494837385, - 0.39900783465420603, - 0.399629320003006, - 0.39989441088922, - 0.399973872067948, - 0.3999980866585759, - 0.39999931156664653, - 0.39999992914559246, - 0.3999896394763925, - 0.3999498758821149, - 0.3998091380968496, - 0.3993911880901651, - 0.3986149442555601, - 0.3975953176917504, - 0.3962998506807513, - 0.3945478367804819, - 0.392118711372182, - 0.38906310951884665, - 0.38586690996210304, - 0.3829967305966438, - 0.3806444698773455, - 0.3784077394457831, - 0.37621679337787856, - 0.3742725658609008, - 0.37325843514640383, - 0.3736272870482897, - 0.37511114931625306, - 0.37716438655289386, - 0.3792233708530616, - 0.3814524064633134, - 0.38405873499040055, - 0.38720352792299717, - 0.39045065577447585, - 0.3932151081141167, - 0.395300382543256, - 0.39681575357513466, - 0.39802685053997877, - 0.3989846754464285, - 0.399617656301111, - 0.39989106907415833, - 0.399972827504617, - 0.39999685846576194, - 0.3999998387416693, - 0.40000079931247107, - 0.3999891695552114, - 0.39995126164902994, - 0.3998173319850185 - ], - "datatype": "Float64", - "type": "series", - "novalues": 401 - }, - "pos_y_243_solid_1": { - "time": [ - 0.0, - 0.025, - 0.05, - 0.07500000000000001, - 0.1, - 0.125, - 0.15000000000000002, - 0.17500000000000002, - 0.2, - 0.225, - 0.25, - 0.275, - 0.30000000000000004, - 0.325, - 0.35000000000000003, - 0.375, - 0.4, - 0.42500000000000004, - 0.45, - 0.47500000000000003, - 0.5, - 0.525, - 0.55, - 0.5750000000000001, - 0.6000000000000001, - 0.625, - 0.65, - 0.675, - 0.7000000000000001, - 0.7250000000000001, - 0.75, - 0.775, - 0.8, - 0.8250000000000001, - 0.8500000000000001, - 0.875, - 0.9, - 0.925, - 0.9500000000000001, - 0.9750000000000001, - 1.0, - 1.0250000000000001, - 1.05, - 1.075, - 1.1, - 1.125, - 1.1500000000000001, - 1.175, - 1.2000000000000002, - 1.225, - 1.25, - 1.2750000000000001, - 1.3, - 1.3250000000000002, - 1.35, - 1.375, - 1.4000000000000001, - 1.425, - 1.4500000000000002, - 1.475, - 1.5, - 1.5250000000000001, - 1.55, - 1.5750000000000002, - 1.6, - 1.625, - 1.6500000000000001, - 1.675, - 1.7000000000000002, - 1.725, - 1.75, - 1.7750000000000001, - 1.8, - 1.8250000000000002, - 1.85, - 1.875, - 1.9000000000000001, - 1.925, - 1.9500000000000002, - 1.975, - 2.0, - 2.025, - 2.0500000000000003, - 2.075, - 2.1, - 2.125, - 2.15, - 2.1750000000000003, - 2.2, - 2.225, - 2.25, - 2.275, - 2.3000000000000003, - 2.325, - 2.35, - 2.375, - 2.4000000000000004, - 2.4250000000000003, - 2.45, - 2.475, - 2.5, - 2.5250000000000004, - 2.5500000000000003, - 2.575, - 2.6, - 2.625, - 2.6500000000000004, - 2.6750000000000003, - 2.7, - 2.725, - 2.75, - 2.7750000000000004, - 2.8000000000000003, - 2.825, - 2.85, - 2.875, - 2.9000000000000004, - 2.9250000000000003, - 2.95, - 2.975, - 3.0, - 3.0250000000000004, - 3.0500000000000003, - 3.075, - 3.1, - 3.125, - 3.1500000000000004, - 3.1750000000000003, - 3.2, - 3.225, - 3.25, - 3.2750000000000004, - 3.3000000000000003, - 3.325, - 3.35, - 3.375, - 3.4000000000000004, - 3.4250000000000003, - 3.45, - 3.475, - 3.5, - 3.5250000000000004, - 3.5500000000000003, - 3.575, - 3.6, - 3.625, - 3.6500000000000004, - 3.6750000000000003, - 3.7, - 3.725, - 3.75, - 3.7750000000000004, - 3.8000000000000003, - 3.825, - 3.85, - 3.875, - 3.9000000000000004, - 3.9250000000000003, - 3.95, - 3.975, - 4.0, - 4.025, - 4.05, - 4.075, - 4.1000000000000005, - 4.125, - 4.15, - 4.175, - 4.2, - 4.2250000000000005, - 4.25, - 4.275, - 4.3, - 4.325, - 4.3500000000000005, - 4.375, - 4.4, - 4.425, - 4.45, - 4.4750000000000005, - 4.5, - 4.525, - 4.55, - 4.575, - 4.6000000000000005, - 4.625, - 4.65, - 4.675, - 4.7, - 4.7250000000000005, - 4.75, - 4.775, - 4.800000000000001, - 4.825, - 4.8500000000000005, - 4.875, - 4.9, - 4.925000000000001, - 4.95, - 4.9750000000000005, - 5.0, - 5.025, - 5.050000000000001, - 5.075, - 5.1000000000000005, - 5.125, - 5.15, - 5.175000000000001, - 5.2, - 5.2250000000000005, - 5.25, - 5.275, - 5.300000000000001, - 5.325, - 5.3500000000000005, - 5.375, - 5.4, - 5.425000000000001, - 5.45, - 5.4750000000000005, - 5.5, - 5.525, - 5.550000000000001, - 5.575, - 5.6000000000000005, - 5.625, - 5.65, - 5.675000000000001, - 5.7, - 5.7250000000000005, - 5.75, - 5.775, - 5.800000000000001, - 5.825, - 5.8500000000000005, - 5.875, - 5.9, - 5.925000000000001, - 5.95, - 5.9750000000000005, - 6.0, - 6.025, - 6.050000000000001, - 6.075, - 6.1000000000000005, - 6.125, - 6.15, - 6.175000000000001, - 6.2, - 6.2250000000000005, - 6.25, - 6.275, - 6.300000000000001, - 6.325, - 6.3500000000000005, - 6.375, - 6.4, - 6.425000000000001, - 6.45, - 6.4750000000000005, - 6.5, - 6.525, - 6.550000000000001, - 6.575, - 6.6000000000000005, - 6.625, - 6.65, - 6.675000000000001, - 6.7, - 6.7250000000000005, - 6.75, - 6.775, - 6.800000000000001, - 6.825, - 6.8500000000000005, - 6.875, - 6.9, - 6.925000000000001, - 6.95, - 6.9750000000000005, - 7.0, - 7.025, - 7.050000000000001, - 7.075, - 7.1000000000000005, - 7.125, - 7.15, - 7.175000000000001, - 7.2, - 7.2250000000000005, - 7.25, - 7.275, - 7.300000000000001, - 7.325, - 7.3500000000000005, - 7.375, - 7.4, - 7.425000000000001, - 7.45, - 7.4750000000000005, - 7.5, - 7.525, - 7.550000000000001, - 7.575, - 7.6000000000000005, - 7.625, - 7.65, - 7.675000000000001, - 7.7, - 7.7250000000000005, - 7.75, - 7.775, - 7.800000000000001, - 7.825, - 7.8500000000000005, - 7.875, - 7.9, - 7.925000000000001, - 7.95, - 7.9750000000000005, - 8.0, - 8.025, - 8.05, - 8.075000000000001, - 8.1, - 8.125, - 8.15, - 8.175, - 8.200000000000001, - 8.225, - 8.25, - 8.275, - 8.3, - 8.325000000000001, - 8.35, - 8.375, - 8.4, - 8.425, - 8.450000000000001, - 8.475, - 8.5, - 8.525, - 8.55, - 8.575000000000001, - 8.6, - 8.625, - 8.65, - 8.675, - 8.700000000000001, - 8.725, - 8.75, - 8.775, - 8.8, - 8.825000000000001, - 8.85, - 8.875, - 8.9, - 8.925, - 8.950000000000001, - 8.975, - 9.0, - 9.025, - 9.05, - 9.075000000000001, - 9.1, - 9.125, - 9.15, - 9.175, - 9.200000000000001, - 9.225, - 9.25, - 9.275, - 9.3, - 9.325000000000001, - 9.35, - 9.375, - 9.4, - 9.425, - 9.450000000000001, - 9.475, - 9.5, - 9.525, - 9.55, - 9.575000000000001, - 9.600000000000001, - 9.625, - 9.65, - 9.675, - 9.700000000000001, - 9.725000000000001, - 9.75, - 9.775, - 9.8, - 9.825000000000001, - 9.850000000000001, - 9.875, - 9.9, - 9.925, - 9.950000000000001, - 9.975000000000001, - 10.0 - ], - "system_name": "solid_1", - "values": [ - 0.01, - 0.009365928696740196, - 0.007578812055150689, - 0.0032635102358403657, - -0.0035105148056193236, - -0.012332913485388425, - -0.021847333423128668, - -0.03134434527094669, - -0.04116248775635042, - -0.051580901414522, - -0.06310402288286264, - -0.07432123808687655, - -0.08460137157714812, - -0.09284011713554671, - -0.09964558650172847, - -0.10533389081830603, - -0.11014611498421778, - -0.11368981410055008, - -0.11484504212613562, - -0.11376117971030562, - -0.11023189044496495, - -0.10550927539442732, - -0.09979560633038902, - -0.09308793823652567, - -0.08484599123116887, - -0.07463511981539364, - -0.0634183704844901, - -0.05188181639045687, - -0.04146846290132567, - -0.03159902109888222, - -0.02214746693044051, - -0.012562981562357524, - -0.003759935643828417, - 0.003130369554564471, - 0.007465099269808771, - 0.009344638525821219, - 0.009995264983192502, - 0.00940490493928957, - 0.007679559151202838, - 0.0034009512153459504, - -0.0032744112157728988, - -0.01210607895896233, - -0.021547782988200457, - -0.03109277836774797, - -0.040842648821290385, - -0.0512888858177466, - -0.06277444129504613, - -0.07402449886462067, - -0.08434906654639421, - -0.0926047090803172, - -0.0994877333514123, - -0.10515378410636049, - -0.11005725531976679, - -0.11360204011480105, - -0.11485565366449813, - -0.11382397599214407, - -0.11033223055308422, - -0.10567978211887082, - -0.09994766466547957, - -0.09333234379038974, - -0.0850788416899797, - -0.07495550934762558, - -0.06372456195633847, - -0.05219895423212185, - -0.04177018405400104, - -0.03186453391725626, - -0.022439572564400087, - -0.012790619596619231, - -0.004003911686604645, - 0.0030031962894613833, - 0.007342968392250792, - 0.009325600387438389, - 0.009972701447312618, - 0.009448894927115328, - 0.007768038066838217, - 0.0035499442661007527, - -0.003041820664194895, - -0.011871662614795006, - -0.021251981717008046, - -0.030848511980951735, - -0.04052362690396986, - -0.05100815223686337, - -0.06243304852628807, - -0.07373237419320189, - -0.08407640029495941, - -0.09237516496424308, - -0.09932341038244417, - -0.10498025010178101, - -0.10997655755478677, - -0.11350907350188764, - -0.11487450351144739, - -0.11386612902795319, - -0.11043984888685471, - -0.10583643292940635, - -0.10010901228565235, - -0.09357901037701741, - -0.08531284505008147, - -0.07528330995953104, - -0.06401533549195976, - -0.052521551711989405, - -0.04205183642065789, - -0.032142519808629026, - -0.022723174606742436, - -0.013036023011841735, - -0.004249585975430617, - 0.0028685540862905087, - 0.007221195518901308, - 0.009315201351905954, - 0.00994602674838918, - 0.0095037941648076, - 0.007839021263059163, - 0.003705301994312723, - -0.0028284075902833663, - -0.011626695539472412, - -0.020962246675519963, - -0.030590940048698605, - -0.040202768410857445, - -0.05072680864651129, - -0.06208940278391552, - -0.07345450636014556, - -0.08379757401614174, - -0.09215873577721055, - -0.09914452383757381, - -0.10481019928564747, - -0.10988530691792674, - -0.11341454872189094, - -0.11489983909794747, - -0.1139036169749939, - -0.11056017416503074, - -0.10597976779297948, - -0.10027189334650356, - -0.09381233277471684, - -0.0855435372645362, - -0.07561309945527582, - -0.06430582133114, - -0.05286035341034022, - -0.042327315476261056, - -0.032431481151097036, - -0.02299294899726653, - -0.013286157507343542, - -0.004485646903796485, - 0.002726608783797712, - 0.007095367330559111, - 0.009300580691873861, - 0.00991014600654674, - 0.00956616410684759, - 0.007902834178608004, - 0.0038764387127704966, - -0.002624131843056186, - -0.01137050883099364, - -0.02068709652977807, - -0.030332221252631523, - -0.03989283398488101, - -0.05044693099733895, - -0.061740331480673386, - -0.07317792064050471, - -0.08350215304521412, - -0.09195216321823134, - -0.09895405411199362, - -0.10465585824730778, - -0.10978622578704895, - -0.11332240999634334, - -0.11492113100113573, - -0.11392671556244145, - -0.11068662408713748, - -0.10611110642315735, - -0.10045255019575755, - -0.09403750545284183, - -0.08578637840728894, - -0.07593719468252298, - -0.06459194053674529, - -0.05319795295236964, - -0.0425940556184487, - -0.032731058060673585, - -0.023255147111461014, - -0.013554343324796509, - -0.004713063907556861, - 0.002574280851405482, - 0.006982258858633324, - 0.00928477534584743, - 0.009880074095544509, - 0.009626227028712093, - 0.007955098758317031, - 0.004044811026641059, - -0.0024354617711380587, - -0.011104789770041265, - -0.020419125982377852, - -0.0300555213366788, - -0.03958872429707205, - -0.050160245303754195, - -0.06140001347839811, - -0.07290521988372417, - -0.08320615212227851, - -0.09174981113578187, - -0.09874623138228932, - -0.1045051130531828, - -0.10967361825803297, - -0.11323796604338686, - -0.1149436466508021, - -0.11395414009458915, - -0.11082137109510536, - -0.1062283704153912, - -0.10063827440843044, - -0.09424470670241314, - -0.08603510285998744, - -0.07625627075885157, - -0.06488683165972599, - -0.05354165515459224, - -0.042856407910410434, - -0.03303571080370796, - -0.02349965825081472, - -0.013829983560856842, - -0.004928326681916836, - 0.0024026757169487065, - 0.0068711388611426205, - 0.009251949732898595, - 0.009852018014164245, - 0.009686642456122442, - 0.008010409398681504, - 0.004222500891025773, - -0.0022546664945535468, - -0.010830547554266615, - -0.020169493678259983, - -0.029769855732213888, - -0.03929860899938737, - -0.049858953415710006, - -0.061063518302234825, - -0.07262271464865694, - -0.08290794778001265, - -0.09155529400355063, - -0.09853498888022826, - -0.1043705956146299, - -0.10954705326434398, - -0.11316300950500373, - -0.11494855805927655, - -0.11398083226727468, - -0.1109540586414147, - -0.1063438927157531, - -0.1008360983520352, - -0.09444191271197216, - -0.08629374759127077, - -0.0765575874243933, - -0.0651851261156363, - -0.053876386181839445, - -0.0431241667260155, - -0.03334687794003133, - -0.023747613100300134, - -0.014117237358878884, - -0.005135331324846713, - 0.002222779539720869, - 0.006775423403026574, - 0.009211394406114093, - 0.00983317986239451, - 0.009735032055989596, - 0.008064517730863642, - 0.004393435260819854, - -0.0020772652066797506, - -0.010549808282264095, - -0.0199221676316143, - -0.029471060030065277, - -0.039019491712823165, - -0.049551158248448045, - -0.06074290330804336, - -0.07233749461812086, - -0.08261491454465135, - -0.09135550334207505, - -0.09831197126571133, - -0.1042380914311384, - -0.10940656071345095, - -0.11310117988436234, - -0.1149455514092575, - -0.11401692570980033, - -0.11108180260619067, - -0.1064521993105826, - -0.10103502370675872, - -0.09462514362069198, - -0.08656718354478855, - -0.07684972014888648, - -0.06550183443994649, - -0.05420459192184178, - -0.043398442865028426, - -0.03364961805913178, - -0.023989093066299535, - -0.014406339691122615, - -0.00533530825775976, - 0.0020265151251076517, - 0.006685941691595171, - 0.009152029275231708, - 0.009828793464284355, - 0.00977410542946727, - 0.008133018506233122, - 0.00455802589096521, - -0.0018994115837509256, - -0.010276497895251842, - -0.0196867973641784, - -0.029168621868183142, - -0.03875074567227232, - -0.049224538707724544, - -0.06042886479662982, - -0.07203324731315325, - -0.08233287822801773, - -0.09115103912368216, - -0.09809725009627863, - -0.10410987990549216, - -0.1092562531153333, - -0.11304319098453404, - -0.11492370961242643, - -0.11406180482251929, - -0.11120134357675493, - -0.10657201748283927, - -0.10123821650539086, - -0.09480525457285333, - -0.08684339366417665, - -0.07712498521362725, - -0.06582298139178418, - -0.05451913178370005, - -0.04368495928615638, - -0.03395131118329613, - -0.02424009807497608, - -0.014696168635310997, - -0.005532106770811833, - 0.0018287972214559535, - 0.00660710579353109, - 0.009081834561611038, - 0.009829206534849292, - 0.009794647351919126, - 0.008204840524760157, - 0.0047105979997435436, - -0.001712634538687243, - -0.010000470114070745, - -0.019445907360706817, - -0.028860645442773152, - -0.03849024230819884, - -0.04889464517517313, - -0.060130924194581464, - -0.07171755773040515, - -0.08205956025817973, - -0.090932086934149, - -0.097882504235142, - -0.10397924094758289, - -0.10910532254535807, - -0.11299880915521093, - -0.11489159208648667, - -0.11411951500663974, - -0.11130275536106302, - -0.10669295609463315, - -0.10142950969171675, - -0.09498485743602264, - -0.08712728706448465, - -0.07739510288853987, - -0.06616006944658731, - -0.05482022569467934, - -0.04398105911065795, - -0.034234929588740894, - -0.02450016630178252, - -0.014979858588451035, - -0.005739466777189634, - 0.0016236059485423588, - 0.006525782748001098, - 0.00900485827742208, - 0.009842648550487531, - 0.009808276091617935, - 0.008293675908908907, - 0.004849202809419531, - -0.0015185019998529968, - -0.009741089043549206, - -0.0192016715436677, - -0.02855963680272906, - -0.0382270492028444, - -0.04855679085112329, - -0.05983661570721213, - -0.07139177213445401, - -0.08180009577756445, - -0.09070484534578062, - -0.09768217930667655, - -0.1038388947317896, - -0.10895130813351196, - -0.11294834202152278, - -0.11484822647054453, - -0.11418449126092643, - -0.1113959505521932, - -0.10682886610158375, - -0.10161496290637492, - -0.09516601168998477, - -0.08740624025601873, - -0.07765652096830171, - -0.06650270662872901, - -0.05511418328365378, - -0.04429454263016795, - -0.03451282323107797, - -0.024772644937891317, - -0.015253814845606308, - -0.0059481820429729045, - 0.0014267719867455736, - 0.006447275430846969, - 0.008922008048371772, - 0.009857994239725845, - 0.00980512267068529, - 0.008387322208372372, - 0.004974154254924794, - -0.0013097233263477997 - ], - "datatype": "Float64", - "type": "series", - "novalues": 401 - } -} diff --git a/validation/oscillating_beam_2d_positions_50.json b/validation/oscillating_beam_2d_positions_50.json deleted file mode 100644 index 47f2948a8..000000000 --- a/validation/oscillating_beam_2d_positions_50.json +++ /dev/null @@ -1,1631 +0,0 @@ -{ - "pos_y_1206_solid_1": { - "time": [ - 0.0, - 0.025, - 0.05, - 0.07500000000000001, - 0.1, - 0.125, - 0.15000000000000002, - 0.17500000000000002, - 0.2, - 0.225, - 0.25, - 0.275, - 0.30000000000000004, - 0.325, - 0.35000000000000003, - 0.375, - 0.4, - 0.42500000000000004, - 0.45, - 0.47500000000000003, - 0.5, - 0.525, - 0.55, - 0.5750000000000001, - 0.6000000000000001, - 0.625, - 0.65, - 0.675, - 0.7000000000000001, - 0.7250000000000001, - 0.75, - 0.775, - 0.8, - 0.8250000000000001, - 0.8500000000000001, - 0.875, - 0.9, - 0.925, - 0.9500000000000001, - 0.9750000000000001, - 1.0, - 1.0250000000000001, - 1.05, - 1.075, - 1.1, - 1.125, - 1.1500000000000001, - 1.175, - 1.2000000000000002, - 1.225, - 1.25, - 1.2750000000000001, - 1.3, - 1.3250000000000002, - 1.35, - 1.375, - 1.4000000000000001, - 1.425, - 1.4500000000000002, - 1.475, - 1.5, - 1.5250000000000001, - 1.55, - 1.5750000000000002, - 1.6, - 1.625, - 1.6500000000000001, - 1.675, - 1.7000000000000002, - 1.725, - 1.75, - 1.7750000000000001, - 1.8, - 1.8250000000000002, - 1.85, - 1.875, - 1.9000000000000001, - 1.925, - 1.9500000000000002, - 1.975, - 2.0, - 2.025, - 2.0500000000000003, - 2.075, - 2.1, - 2.125, - 2.15, - 2.1750000000000003, - 2.2, - 2.225, - 2.25, - 2.275, - 2.3000000000000003, - 2.325, - 2.35, - 2.375, - 2.4000000000000004, - 2.4250000000000003, - 2.45, - 2.475, - 2.5, - 2.5250000000000004, - 2.5500000000000003, - 2.575, - 2.6, - 2.625, - 2.6500000000000004, - 2.6750000000000003, - 2.7, - 2.725, - 2.75, - 2.7750000000000004, - 2.8000000000000003, - 2.825, - 2.85, - 2.875, - 2.9000000000000004, - 2.9250000000000003, - 2.95, - 2.975, - 3.0, - 3.0250000000000004, - 3.0500000000000003, - 3.075, - 3.1, - 3.125, - 3.1500000000000004, - 3.1750000000000003, - 3.2, - 3.225, - 3.25, - 3.2750000000000004, - 3.3000000000000003, - 3.325, - 3.35, - 3.375, - 3.4000000000000004, - 3.4250000000000003, - 3.45, - 3.475, - 3.5, - 3.5250000000000004, - 3.5500000000000003, - 3.575, - 3.6, - 3.625, - 3.6500000000000004, - 3.6750000000000003, - 3.7, - 3.725, - 3.75, - 3.7750000000000004, - 3.8000000000000003, - 3.825, - 3.85, - 3.875, - 3.9000000000000004, - 3.9250000000000003, - 3.95, - 3.975, - 4.0, - 4.025, - 4.05, - 4.075, - 4.1000000000000005, - 4.125, - 4.15, - 4.175, - 4.2, - 4.2250000000000005, - 4.25, - 4.275, - 4.3, - 4.325, - 4.3500000000000005, - 4.375, - 4.4, - 4.425, - 4.45, - 4.4750000000000005, - 4.5, - 4.525, - 4.55, - 4.575, - 4.6000000000000005, - 4.625, - 4.65, - 4.675, - 4.7, - 4.7250000000000005, - 4.75, - 4.775, - 4.800000000000001, - 4.825, - 4.8500000000000005, - 4.875, - 4.9, - 4.925000000000001, - 4.95, - 4.9750000000000005, - 5.0, - 5.025, - 5.050000000000001, - 5.075, - 5.1000000000000005, - 5.125, - 5.15, - 5.175000000000001, - 5.2, - 5.2250000000000005, - 5.25, - 5.275, - 5.300000000000001, - 5.325, - 5.3500000000000005, - 5.375, - 5.4, - 5.425000000000001, - 5.45, - 5.4750000000000005, - 5.5, - 5.525, - 5.550000000000001, - 5.575, - 5.6000000000000005, - 5.625, - 5.65, - 5.675000000000001, - 5.7, - 5.7250000000000005, - 5.75, - 5.775, - 5.800000000000001, - 5.825, - 5.8500000000000005, - 5.875, - 5.9, - 5.925000000000001, - 5.95, - 5.9750000000000005, - 6.0, - 6.025, - 6.050000000000001, - 6.075, - 6.1000000000000005, - 6.125, - 6.15, - 6.175000000000001, - 6.2, - 6.2250000000000005, - 6.25, - 6.275, - 6.300000000000001, - 6.325, - 6.3500000000000005, - 6.375, - 6.4, - 6.425000000000001, - 6.45, - 6.4750000000000005, - 6.5, - 6.525, - 6.550000000000001, - 6.575, - 6.6000000000000005, - 6.625, - 6.65, - 6.675000000000001, - 6.7, - 6.7250000000000005, - 6.75, - 6.775, - 6.800000000000001, - 6.825, - 6.8500000000000005, - 6.875, - 6.9, - 6.925000000000001, - 6.95, - 6.9750000000000005, - 7.0, - 7.025, - 7.050000000000001, - 7.075, - 7.1000000000000005, - 7.125, - 7.15, - 7.175000000000001, - 7.2, - 7.2250000000000005, - 7.25, - 7.275, - 7.300000000000001, - 7.325, - 7.3500000000000005, - 7.375, - 7.4, - 7.425000000000001, - 7.45, - 7.4750000000000005, - 7.5, - 7.525, - 7.550000000000001, - 7.575, - 7.6000000000000005, - 7.625, - 7.65, - 7.675000000000001, - 7.7, - 7.7250000000000005, - 7.75, - 7.775, - 7.800000000000001, - 7.825, - 7.8500000000000005, - 7.875, - 7.9, - 7.925000000000001, - 7.95, - 7.9750000000000005, - 8.0, - 8.025, - 8.05, - 8.075000000000001, - 8.1, - 8.125, - 8.15, - 8.175, - 8.200000000000001, - 8.225, - 8.25, - 8.275, - 8.3, - 8.325000000000001, - 8.35, - 8.375, - 8.4, - 8.425, - 8.450000000000001, - 8.475, - 8.5, - 8.525, - 8.55, - 8.575000000000001, - 8.6, - 8.625, - 8.65, - 8.675, - 8.700000000000001, - 8.725, - 8.75, - 8.775, - 8.8, - 8.825000000000001, - 8.85, - 8.875, - 8.9, - 8.925, - 8.950000000000001, - 8.975, - 9.0, - 9.025, - 9.05, - 9.075000000000001, - 9.1, - 9.125, - 9.15, - 9.175, - 9.200000000000001, - 9.225, - 9.25, - 9.275, - 9.3, - 9.325000000000001, - 9.35, - 9.375, - 9.4, - 9.425, - 9.450000000000001, - 9.475, - 9.5, - 9.525, - 9.55, - 9.575000000000001, - 9.600000000000001, - 9.625, - 9.65, - 9.675, - 9.700000000000001, - 9.725000000000001, - 9.75, - 9.775, - 9.8, - 9.825000000000001, - 9.850000000000001, - 9.875, - 9.9, - 9.925, - 9.950000000000001, - 9.975000000000001, - 10.0 - ], - "system_name": "solid_1", - "values": [ - 0.009999999999999998, - 0.009364689703635598, - 0.00758829050444531, - 0.0032455071219336176, - -0.0035740847523214234, - -0.012473494567363142, - -0.022056817695956493, - -0.03162770148710437, - -0.041495608817120506, - -0.05200967641248498, - -0.06363400604853574, - -0.07495584822058228, - -0.08536158159271173, - -0.09366893172787079, - -0.10057339180375187, - -0.1063411387787697, - -0.11127153928719935, - -0.11489383314314681, - -0.1161464598117378, - -0.11509912482156327, - -0.11157529772402203, - -0.10690782218828641, - -0.10117666211506038, - -0.09453957549849239, - -0.08627814735149428, - -0.07604561037546648, - -0.06473794256394926, - -0.05310150423948772, - -0.04258357169141386, - -0.032600709069011226, - -0.023082508426430972, - -0.013312242942105718, - -0.004403754701119852, - 0.00272068719078077, - 0.007177449594463348, - 0.009242949792677237, - 0.009990594838215522, - 0.009547101447632064, - 0.007933677913314115, - 0.0037471487934381117, - -0.0028227776340642562, - -0.011654310461227151, - -0.021018639751821718, - -0.030639286114867912, - -0.04035160717836317, - -0.05095796198358632, - -0.06250933800904047, - -0.07395099937105579, - -0.08441616517786049, - -0.09281842384783016, - -0.09990081453725298, - -0.1057159370940953, - -0.1109312048243637, - -0.11462793757416267, - -0.11619213598260698, - -0.11527729024474116, - -0.111951503297174, - -0.1074487897506279, - -0.10177956315450504, - -0.09536352694131166, - -0.0871228194981758, - -0.0771327041043185, - -0.06579778190878655, - -0.05427207250898726, - -0.043663357480675166, - -0.03364078258018151, - -0.02406224305944983, - -0.014153271891562314, - -0.005197911648307444, - 0.0021746222581091987, - 0.006702960116595482, - 0.009076749180707996, - 0.009900300492356523, - 0.009763770349623203, - 0.008256329991365267, - 0.004323185901412444, - -0.0021173408366349706, - -0.010825279632196927, - -0.020063361650188304, - -0.02966458849054828, - -0.03921970925928149, - -0.04988185023796748, - -0.06132129906577267, - -0.07295267942446725, - -0.08342622314508207, - -0.09203997049210154, - -0.099209247452493, - -0.10514003019026526, - -0.1105446253880338, - -0.11432095677546474, - -0.1161923503614349, - -0.11536763833268442, - -0.11234196962853449, - -0.10793848700553907, - -0.10245477026151598, - -0.09617832962592979, - -0.08800064848813659, - -0.0781969194812525, - -0.06680893351861328, - -0.055428488301219055, - -0.04469544172392963, - -0.03474785217909282, - -0.025038380930422988, - -0.01508513073544427, - -0.005958788848362181, - 0.0016071035880433385, - 0.00628436676768618, - 0.008898191612966216, - 0.009779512078035348, - 0.009925604463978997, - 0.008495818230072042, - 0.004899363668838886, - -0.0014465409798342182, - -0.009921147395914444, - -0.01913870296821253, - -0.02865054011700368, - -0.03816317942726264, - -0.04881028637867471, - -0.06016506675754296, - -0.07192777526078643, - -0.08237620621221627, - -0.091241349158418, - -0.09844577461773614, - -0.10461197022819174, - -0.11012718680419249, - -0.1140804089848244, - -0.11617477405712213, - -0.11544722080724446, - -0.11270375195634029, - -0.10833741081492519, - -0.10312037323394264, - -0.09691386057082134, - -0.08893178557810176, - -0.07924949766070358, - -0.06788312071832783, - -0.05658138763204157, - -0.04571480694780081, - -0.035837602796089954, - -0.025967393958248194, - -0.016067282298453205, - -0.006719249704544027, - 0.0009342538614289299, - 0.005877724778265336, - 0.008672159377913364, - 0.00972302669397676, - 0.010077208938423397, - 0.00874547767832723, - 0.005425438874281445, - -0.0008420339283879628, - -0.009037048993116338, - -0.018254960260878146, - -0.02757100390248055, - -0.03712418311392802, - -0.04767669644722025, - -0.05906992413767428, - -0.07089063252795348, - -0.08137870147447797, - -0.09042791588136306, - -0.09764095439309517, - -0.10405478328088372, - -0.1096139568786169, - -0.11385326434873508, - -0.11609521032727621, - -0.11558189732901422, - -0.11306265831439649, - -0.108762098862536, - -0.10378892243635746, - -0.09758748953460018, - -0.0898538811236494, - -0.08020665083123335, - -0.06899112691129199, - -0.057702938712440914, - -0.04681082421461564, - -0.036931181927141156, - -0.026918992366235288, - -0.017034743378023885, - -0.007446973136445026, - 0.00023451491225968453, - 0.005470909507590385, - 0.008342008391179458, - 0.009661195223312423, - 0.010153084794896778, - 0.009054659764488488, - 0.00593596062497984, - -0.0001931299036266732, - -0.008189785173868726, - -0.017405640288458153, - -0.026526510959664584, - -0.0361255745170831, - -0.04649671640980803, - -0.057982410157741804, - -0.06976839930047056, - -0.08041880139230805, - -0.08957827098164307, - -0.0968934274572345, - -0.10349757031573524, - -0.10909027665822299, - -0.11361483661262578, - -0.11592406690142416, - -0.1157113642175592, - -0.11332780129219754, - -0.10921545000135105, - -0.10443607485349114, - -0.09830302135453138, - -0.09080051234877297, - -0.08113899200946888, - -0.07011009174602058, - -0.05873966317784932, - -0.047931613191760154, - -0.03797793423910269, - -0.027948895726646533, - -0.018006201703319517, - -0.008232566025804161, - -0.00044938941189670757, - 0.005080545686873757, - 0.008014952164030854, - 0.009609066587371875, - 0.010142312766008327, - 0.009345488128585367, - 0.006350080822540446, - 0.0004948533767147997, - -0.007372339010502693, - -0.016488073682293637, - -0.02550776363585129, - -0.03512265189272711, - -0.04535693648127566, - -0.0569282100529223, - -0.06861888013461076, - -0.0794660995071658, - -0.08863359153983161, - -0.09615921480086234, - -0.10287505806909526, - -0.10860989638358297, - -0.11337198374320875, - -0.1157682388289703, - -0.11585775243347629, - -0.11352705831131137, - -0.10966977916107341, - -0.10497452863487998, - -0.0990244234100605, - -0.09169649415699045, - -0.08210872972961979, - -0.07125956850370023, - -0.059790737167369865, - -0.04908232846104067, - -0.03896679143545881, - -0.02899857529333695, - -0.018919124600861453, - -0.009094868706423655, - -0.0011339346613738201, - 0.0046004870907999235, - 0.007696242920351883, - 0.009549007283576275, - 0.010158075646284721, - 0.009653325148211083, - 0.006716566777392159, - 0.0011656520966565691, - -0.006649347345710551, - -0.015548666174273773, - -0.024536302785633086, - -0.03404253610463138, - -0.044235637242923447, - -0.05583611851896676, - -0.06750429495997738, - -0.07853573430149936, - -0.08768440216216965, - -0.095442156251089, - -0.10216592892748526, - -0.10812888470559384, - -0.11303190997552294, - -0.11562669516521909, - -0.11597732268371391, - -0.11374620226413727, - -0.1101651069868863, - -0.10548506658997343, - -0.09977525943672744, - -0.0924985115824581, - -0.0830775617853466, - -0.07233138666743198, - -0.0608683673223836, - -0.05024360775598697, - -0.03999761637303979, - -0.03008877428906989, - -0.019807652196257016, - -0.009979303985873477, - -0.0017595744275145807, - 0.004056181959251459, - 0.007383441157238317, - 0.009383613877007077, - 0.010172132966700656, - 0.009919552278443489, - 0.007123126918952392, - 0.0018528493130375223, - -0.00593106766748589, - -0.014614883033912713, - -0.023643178514345754, - -0.03295545234711065, - -0.04317198199349482, - -0.0546697630431028, - -0.06640043471540005, - -0.07753429443662545, - -0.0867549868573616, - -0.09472784693633117, - -0.10146821658435964, - -0.1076838664278234, - -0.11263147284381093, - -0.11549721375758515, - -0.11599229114611155, - -0.11395497836552856, - -0.1106008551881069, - -0.1059968166259632, - -0.10055866469526324, - -0.09329885751446462, - -0.0841041297654723, - -0.07334370331297786, - -0.061963663810304014, - -0.05131807094693244, - -0.041050501440147776, - -0.03116541596902143, - -0.02075177583597105, - -0.01090613456229158, - -0.0023943935086972045, - 0.003494336951709058, - 0.0071255809039542555, - 0.009179087483022786, - 0.010205402920689253, - 0.010075017549762186, - 0.0075180590949196794, - 0.0024633613932609735, - -0.005174807703922522, - -0.013673405553722125, - -0.02271770671863595, - -0.03186094701380639, - -0.04215326953255625, - -0.053503669381705185, - -0.06535768920890689, - -0.07647001586317988, - -0.08583875299690004, - -0.09392141624109807, - -0.10076902461758994, - -0.10721309297209015, - -0.11223434521143691, - -0.115411345912902, - -0.11597556688574708, - -0.11420250782954795, - -0.11095049340071066, - -0.10649786743041538, - -0.1012576738553228, - -0.09407905958042524, - -0.08513817022889908, - -0.07436365914799557, - -0.06313474957140987, - -0.052368520237009865, - -0.042145544074061826, - -0.03216357902636404, - -0.02171632533940135, - -0.011798396208450294, - -0.003096353940093564, - 0.0028948378302013993, - 0.006821212507268249, - 0.008956256785057222, - 0.010281669718273817, - 0.010217037920291926, - 0.007951632881931832, - 0.0029852472795563693, - -0.004427000298851113, - -0.012826029638195088, - -0.021764324467814688, - -0.030779932751230896, - -0.041078350192964644, - -0.052321850885681004, - -0.0643245031292008, - -0.0754015255184375, - -0.08498563968264464, - -0.0930706471210351, - -0.10009452785376544, - -0.10664694062918373, - -0.11181868333971977, - -0.11526745449874824, - -0.11593785867918426, - -0.11448101809256833, - -0.11128612390404899, - -0.10706833840876771, - -0.1019036478952846, - -0.09487302316481634, - -0.08608605960715905, - -0.07535124402528083, - -0.06428124296239189, - -0.053421791847293607, - -0.04330914299123691, - -0.033168150087284735, - -0.022744531248414145, - -0.0126334417016152, - -0.0038255438290719836, - 0.0023480670122294264, - 0.006448544428461394, - 0.008706091591787191, - 0.01028389913027252, - 0.010333917628155283, - 0.008404218934916285, - 0.0035149492240539515 - ], - "datatype": "Float64", - "type": "series", - "novalues": 401 - }, - "meta": { - "julia_version": "1.9.4", - "solver_version": "8a7da404f6e05076a7c4eaaa21244ad7ffd49aa7", - "solver_name": "TrixiParticles.jl" - }, - "pos_x_1206_solid_1": { - "time": [ - 0.0, - 0.025, - 0.05, - 0.07500000000000001, - 0.1, - 0.125, - 0.15000000000000002, - 0.17500000000000002, - 0.2, - 0.225, - 0.25, - 0.275, - 0.30000000000000004, - 0.325, - 0.35000000000000003, - 0.375, - 0.4, - 0.42500000000000004, - 0.45, - 0.47500000000000003, - 0.5, - 0.525, - 0.55, - 0.5750000000000001, - 0.6000000000000001, - 0.625, - 0.65, - 0.675, - 0.7000000000000001, - 0.7250000000000001, - 0.75, - 0.775, - 0.8, - 0.8250000000000001, - 0.8500000000000001, - 0.875, - 0.9, - 0.925, - 0.9500000000000001, - 0.9750000000000001, - 1.0, - 1.0250000000000001, - 1.05, - 1.075, - 1.1, - 1.125, - 1.1500000000000001, - 1.175, - 1.2000000000000002, - 1.225, - 1.25, - 1.2750000000000001, - 1.3, - 1.3250000000000002, - 1.35, - 1.375, - 1.4000000000000001, - 1.425, - 1.4500000000000002, - 1.475, - 1.5, - 1.5250000000000001, - 1.55, - 1.5750000000000002, - 1.6, - 1.625, - 1.6500000000000001, - 1.675, - 1.7000000000000002, - 1.725, - 1.75, - 1.7750000000000001, - 1.8, - 1.8250000000000002, - 1.85, - 1.875, - 1.9000000000000001, - 1.925, - 1.9500000000000002, - 1.975, - 2.0, - 2.025, - 2.0500000000000003, - 2.075, - 2.1, - 2.125, - 2.15, - 2.1750000000000003, - 2.2, - 2.225, - 2.25, - 2.275, - 2.3000000000000003, - 2.325, - 2.35, - 2.375, - 2.4000000000000004, - 2.4250000000000003, - 2.45, - 2.475, - 2.5, - 2.5250000000000004, - 2.5500000000000003, - 2.575, - 2.6, - 2.625, - 2.6500000000000004, - 2.6750000000000003, - 2.7, - 2.725, - 2.75, - 2.7750000000000004, - 2.8000000000000003, - 2.825, - 2.85, - 2.875, - 2.9000000000000004, - 2.9250000000000003, - 2.95, - 2.975, - 3.0, - 3.0250000000000004, - 3.0500000000000003, - 3.075, - 3.1, - 3.125, - 3.1500000000000004, - 3.1750000000000003, - 3.2, - 3.225, - 3.25, - 3.2750000000000004, - 3.3000000000000003, - 3.325, - 3.35, - 3.375, - 3.4000000000000004, - 3.4250000000000003, - 3.45, - 3.475, - 3.5, - 3.5250000000000004, - 3.5500000000000003, - 3.575, - 3.6, - 3.625, - 3.6500000000000004, - 3.6750000000000003, - 3.7, - 3.725, - 3.75, - 3.7750000000000004, - 3.8000000000000003, - 3.825, - 3.85, - 3.875, - 3.9000000000000004, - 3.9250000000000003, - 3.95, - 3.975, - 4.0, - 4.025, - 4.05, - 4.075, - 4.1000000000000005, - 4.125, - 4.15, - 4.175, - 4.2, - 4.2250000000000005, - 4.25, - 4.275, - 4.3, - 4.325, - 4.3500000000000005, - 4.375, - 4.4, - 4.425, - 4.45, - 4.4750000000000005, - 4.5, - 4.525, - 4.55, - 4.575, - 4.6000000000000005, - 4.625, - 4.65, - 4.675, - 4.7, - 4.7250000000000005, - 4.75, - 4.775, - 4.800000000000001, - 4.825, - 4.8500000000000005, - 4.875, - 4.9, - 4.925000000000001, - 4.95, - 4.9750000000000005, - 5.0, - 5.025, - 5.050000000000001, - 5.075, - 5.1000000000000005, - 5.125, - 5.15, - 5.175000000000001, - 5.2, - 5.2250000000000005, - 5.25, - 5.275, - 5.300000000000001, - 5.325, - 5.3500000000000005, - 5.375, - 5.4, - 5.425000000000001, - 5.45, - 5.4750000000000005, - 5.5, - 5.525, - 5.550000000000001, - 5.575, - 5.6000000000000005, - 5.625, - 5.65, - 5.675000000000001, - 5.7, - 5.7250000000000005, - 5.75, - 5.775, - 5.800000000000001, - 5.825, - 5.8500000000000005, - 5.875, - 5.9, - 5.925000000000001, - 5.95, - 5.9750000000000005, - 6.0, - 6.025, - 6.050000000000001, - 6.075, - 6.1000000000000005, - 6.125, - 6.15, - 6.175000000000001, - 6.2, - 6.2250000000000005, - 6.25, - 6.275, - 6.300000000000001, - 6.325, - 6.3500000000000005, - 6.375, - 6.4, - 6.425000000000001, - 6.45, - 6.4750000000000005, - 6.5, - 6.525, - 6.550000000000001, - 6.575, - 6.6000000000000005, - 6.625, - 6.65, - 6.675000000000001, - 6.7, - 6.7250000000000005, - 6.75, - 6.775, - 6.800000000000001, - 6.825, - 6.8500000000000005, - 6.875, - 6.9, - 6.925000000000001, - 6.95, - 6.9750000000000005, - 7.0, - 7.025, - 7.050000000000001, - 7.075, - 7.1000000000000005, - 7.125, - 7.15, - 7.175000000000001, - 7.2, - 7.2250000000000005, - 7.25, - 7.275, - 7.300000000000001, - 7.325, - 7.3500000000000005, - 7.375, - 7.4, - 7.425000000000001, - 7.45, - 7.4750000000000005, - 7.5, - 7.525, - 7.550000000000001, - 7.575, - 7.6000000000000005, - 7.625, - 7.65, - 7.675000000000001, - 7.7, - 7.7250000000000005, - 7.75, - 7.775, - 7.800000000000001, - 7.825, - 7.8500000000000005, - 7.875, - 7.9, - 7.925000000000001, - 7.95, - 7.9750000000000005, - 8.0, - 8.025, - 8.05, - 8.075000000000001, - 8.1, - 8.125, - 8.15, - 8.175, - 8.200000000000001, - 8.225, - 8.25, - 8.275, - 8.3, - 8.325000000000001, - 8.35, - 8.375, - 8.4, - 8.425, - 8.450000000000001, - 8.475, - 8.5, - 8.525, - 8.55, - 8.575000000000001, - 8.6, - 8.625, - 8.65, - 8.675, - 8.700000000000001, - 8.725, - 8.75, - 8.775, - 8.8, - 8.825000000000001, - 8.85, - 8.875, - 8.9, - 8.925, - 8.950000000000001, - 8.975, - 9.0, - 9.025, - 9.05, - 9.075000000000001, - 9.1, - 9.125, - 9.15, - 9.175, - 9.200000000000001, - 9.225, - 9.25, - 9.275, - 9.3, - 9.325000000000001, - 9.35, - 9.375, - 9.4, - 9.425, - 9.450000000000001, - 9.475, - 9.5, - 9.525, - 9.55, - 9.575000000000001, - 9.600000000000001, - 9.625, - 9.65, - 9.675, - 9.700000000000001, - 9.725000000000001, - 9.75, - 9.775, - 9.8, - 9.825000000000001, - 9.850000000000001, - 9.875, - 9.9, - 9.925, - 9.950000000000001, - 9.975000000000001, - 10.0 - ], - "system_name": "solid_1", - "values": [ - 0.4, - 0.3999992139799211, - 0.3999830116724701, - 0.39992755867912816, - 0.3997307156834245, - 0.3992081130734493, - 0.39833968143127424, - 0.39722436717031995, - 0.3958174645633376, - 0.3939072822889799, - 0.39127530633788205, - 0.3881111851721008, - 0.38485610694589983, - 0.3821050633823781, - 0.3797622300808573, - 0.3775774310113284, - 0.3754076945955024, - 0.3735964290162269, - 0.3728805188298607, - 0.3734987876412705, - 0.37525890002138784, - 0.37735106662006745, - 0.3795222492090636, - 0.3818070549401962, - 0.3845540710657979, - 0.3878006495505476, - 0.3910002826328378, - 0.3936820050956077, - 0.39563494513434105, - 0.3970884612386235, - 0.3982338669624666, - 0.3991456137553911, - 0.3996975907105021, - 0.39991682772553516, - 0.3999817416559372, - 0.39999772336969247, - 0.39999956285479155, - 0.4000007333659587, - 0.39998394557266065, - 0.3999366739608894, - 0.3997619573275067, - 0.39926945878044534, - 0.39844104907826844, - 0.3973579625642234, - 0.39599891706510343, - 0.39412170788026574, - 0.3915481676765536, - 0.3884090468675668, - 0.38516481486847054, - 0.38239713277659626, - 0.3800179328161998, - 0.37781599841577745, - 0.375561916402065, - 0.37371098159727806, - 0.37287507819271054, - 0.3734172364112195, - 0.3750963042194848, - 0.3771336818078233, - 0.3792835894390904, - 0.3815133799168623, - 0.38426059567805604, - 0.38748808884279995, - 0.39073053838478483, - 0.393444325975335, - 0.3954501196547289, - 0.3969464959162415, - 0.3981234084591215, - 0.39907813244891, - 0.3996651807182656, - 0.39990484874767496, - 0.3999775455414134, - 0.3999994333846461, - 0.40000019325129865, - 0.3999984114797667, - 0.39998578117857414, - 0.39994612973572946, - 0.3997855604202344, - 0.39932719735576705, - 0.39853823886891415, - 0.39748691071958137, - 0.3961726142564363, - 0.3943385760357543, - 0.3918228926109506, - 0.38869633399995024, - 0.38548020711891845, - 0.38267900590312554, - 0.3802789889974785, - 0.37804534605903745, - 0.37573505405821245, - 0.3738377591338691, - 0.37287708006953163, - 0.3733588323940126, - 0.3749352635815991, - 0.37693191234099904, - 0.3790294761377983, - 0.3812256258049508, - 0.38396318613512204, - 0.3871705601423053, - 0.39046008663775633, - 0.39320612062656685, - 0.3952654139080867, - 0.3967929422903772, - 0.3980129572696505, - 0.3990055124269288, - 0.39962608727573895, - 0.39989147939202213, - 0.39997491420977427, - 0.3999988061257198, - 0.39999954898720286, - 0.39999902615619837, - 0.39998748041684246, - 0.3999522179330175, - 0.39980943473265207, - 0.3993845805831125, - 0.39862715721650976, - 0.39761526420116494, - 0.3963382239650398, - 0.3945512993525338, - 0.3920907879757618, - 0.3889875082183308, - 0.385801555706019, - 0.38296009366862566, - 0.38055353078154514, - 0.37826620447215314, - 0.37592043431179223, - 0.373953109326984, - 0.3728923841799852, - 0.3733068047801191, - 0.37477905762038094, - 0.3767498939725599, - 0.37877653180757165, - 0.38095449505867207, - 0.3836552927627926, - 0.38685481394450344, - 0.39017925857397767, - 0.3929613854073171, - 0.39507684457218983, - 0.3966352164614921, - 0.3979026321013761, - 0.3989285509125114, - 0.3995859184302032, - 0.39987677454822035, - 0.39997169169584423, - 0.3999971684028586, - 0.3999979878784683, - 0.40000040819124905, - 0.3999890024366144, - 0.39995573556672986, - 0.3998332458869859, - 0.39944068441895686, - 0.3987097900811916, - 0.3977429189597094, - 0.3964993505599712, - 0.3947612665444767, - 0.3923445580853951, - 0.38928195443874125, - 0.3861140629790649, - 0.3832436864657392, - 0.38083663670297135, - 0.3784950313686462, - 0.37612565281478827, - 0.3740610951392625, - 0.3729313957747651, - 0.3732486084873992, - 0.37462789366835075, - 0.37656570031507136, - 0.378526321150006, - 0.38069444264833663, - 0.38334087078760987, - 0.3865528346645922, - 0.38989399648012696, - 0.39271498406408073, - 0.3948782330659085, - 0.39647649847209215, - 0.3977865728336836, - 0.3988435107400022, - 0.39954632448915306, - 0.39986147785348447, - 0.3999642370785813, - 0.39999644476001883, - 0.40000003503672116, - 0.3999990733868603, - 0.3999885770823954, - 0.39996149930388736, - 0.3998533216766896, - 0.39948814505372626, - 0.3987912228742579, - 0.3978657511923416, - 0.39665196827962707, - 0.3949720022552403, - 0.3925959977846436, - 0.38958063065653886, - 0.38641351987296463, - 0.383537755279055, - 0.3811099292422944, - 0.3787250438768175, - 0.3763386732983243, - 0.37417775715139184, - 0.37299438576149574, - 0.37318752382715265, - 0.3745035554270167, - 0.3763796888305308, - 0.37828107352189144, - 0.3804274952153536, - 0.3830246282186421, - 0.38625257490429005, - 0.38959781551989536, - 0.3924745439034293, - 0.3946747378702729, - 0.3963147277795443, - 0.3976625388018758, - 0.398757241966529, - 0.39950140203806483, - 0.39984178237634327, - 0.3999585497411598, - 0.39999555279820415, - 0.40000049494629625, - 0.39999906070238317, - 0.39998855465760025, - 0.3999657879172029, - 0.3998721598744184, - 0.3995329406393107, - 0.3988719841431147, - 0.39798201845603687, - 0.3968026985894809, - 0.39517508117577077, - 0.3928419517207379, - 0.38988050199462027, - 0.3867083350618152, - 0.383846541394835, - 0.3813774415477573, - 0.3789687396439658, - 0.37654438271536955, - 0.3743030660975627, - 0.37306049193445356, - 0.3731266336437546, - 0.37439737926983546, - 0.3761918149622371, - 0.3780591492938545, - 0.3801577679579456, - 0.38271867967482065, - 0.3859467590591905, - 0.38929384077649504, - 0.39222898778437104, - 0.39446279191780487, - 0.39615216095824374, - 0.3975320613103239, - 0.39867241409138515, - 0.399453650297389, - 0.399819643131874, - 0.3999536656300156, - 0.39999441532432484, - 0.3999984813873729, - 0.39999916159751514, - 0.39998942591945846, - 0.3999679705132583, - 0.399888559615975, - 0.3995770319181792, - 0.39895052011749244, - 0.39808946117769295, - 0.39695603819393804, - 0.3953701834717648, - 0.3930832024957641, - 0.3901722809602415, - 0.38700295453923866, - 0.3841553788246515, - 0.38164199453993625, - 0.3792336020183653, - 0.3767488456548582, - 0.37444952018202443, - 0.3731225668922128, - 0.37308157526026314, - 0.3742928049039173, - 0.37599685383573866, - 0.37784901878879895, - 0.37988263188398125, - 0.3824259163885893, - 0.38563460491880114, - 0.38899956782690415, - 0.3919787863624695, - 0.3942434155874478, - 0.3959862806563626, - 0.39739648261486993, - 0.3985813331047507, - 0.3994006958008172, - 0.39979889759846976, - 0.3999452588602492, - 0.3999907552654961, - 0.40000001276637887, - 0.39999936615240295, - 0.39998739757541163, - 0.399972068167881, - 0.3999037489405008, - 0.39961428377744057, - 0.39902490719423944, - 0.39819244551178534, - 0.3971036794256284, - 0.395556763952723, - 0.3933314510087403, - 0.3904566776044711, - 0.38730286965780386, - 0.38445894439894707, - 0.3819097113372327, - 0.37949624169460344, - 0.37694897969327323, - 0.37461949815226514, - 0.3731824332578139, - 0.3730625427569393, - 0.37419045416933455, - 0.3758193568299098, - 0.3776406452405573, - 0.3795998773206854, - 0.382137610812269, - 0.38531168634747776, - 0.3887067130772469, - 0.3917207688418542, - 0.3940298980646011, - 0.39581379540184136, - 0.39725615999866387, - 0.398487416554137, - 0.3993430763342144, - 0.3997739144676373, - 0.399936236694288, - 0.3999884788902941, - 0.40000014168643844, - 0.3999998035360628, - 0.39998729373501724, - 0.39997466373437274, - 0.3999167810044728, - 0.39965156414383096, - 0.39909560909421804, - 0.3982938690137888, - 0.3972472736427094, - 0.3957369448914784, - 0.39357607349569385, - 0.39073146537717734, - 0.3876105151404817, - 0.38475524416424944, - 0.3821934634451117, - 0.3797563495291331, - 0.3771561117771755, - 0.3747945321273831, - 0.3732385909077882, - 0.3730593272610931, - 0.37408093790072566, - 0.37566255160242157, - 0.3774327487613439, - 0.3793331344899101, - 0.38185318354837355, - 0.3849875910137026, - 0.3884120834161423, - 0.3914494671539242, - 0.39381509479096954, - 0.395631785332745, - 0.39711485380356587, - 0.3983902227055099, - 0.3992853823025216, - 0.3997466869924756, - 0.3999265466519241, - 0.39998797261769165, - 0.3999977704976437, - 0.3999982893478102, - 0.39998922629865236, - 0.39997480095352894, - 0.3999257053748397, - 0.3996895493920748, - 0.39916191149043845, - 0.3983911449764955, - 0.3973857525415698, - 0.3959189170839374, - 0.39381121042592365, - 0.3909992726917998, - 0.3879210206114758, - 0.38504164711163935, - 0.38248504667105127, - 0.38001448866458737, - 0.37738795538698816, - 0.37496840830221145, - 0.37330689464009187, - 0.3730675628825753, - 0.3739711328930003, - 0.3755126441877319, - 0.3772134554189266, - 0.3790842431908427, - 0.3815618920777488, - 0.3846704464625407, - 0.3881204734607742, - 0.3911789759077429, - 0.3935948739769472, - 0.3954402017083025, - 0.3969743025744174, - 0.39828299342320933, - 0.3992220433824074, - 0.39971984321390597, - 0.3999152725885011, - 0.39998288784527763, - 0.39999723842785984, - 0.39999958659260954, - 0.3999883943559657, - 0.39997437076973236, - 0.3999369628472589 - ], - "datatype": "Float64", - "type": "series", - "novalues": 401 - } -} From bc84f81920e9c4d1b49c94d9feb7e5d8cf493052 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 13 Feb 2024 14:45:33 +0100 Subject: [PATCH 133/212] fix setup --- src/schemes/solid/total_lagrangian_sph/rhs.jl | 3 +- .../solid/total_lagrangian_sph/system.jl | 3 +- validation/oscillating_beam_2d/README.md | 4 +- ...pare_reference_oscillating_beam_results.jl | 1 + .../oscillating_beam_2d.jl | 224 ------------------ .../plot_oscillating_beam_results.jl | 109 +++++++++ .../validation_oscillating_beam_2d.jl | 128 ++++++++++ 7 files changed, 244 insertions(+), 228 deletions(-) create mode 100644 validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl delete mode 100644 validation/oscillating_beam_2d/oscillating_beam_2d.jl create mode 100644 validation/oscillating_beam_2d/plot_oscillating_beam_results.jl create mode 100644 validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl diff --git a/src/schemes/solid/total_lagrangian_sph/rhs.jl b/src/schemes/solid/total_lagrangian_sph/rhs.jl index 6affdefc0..b58585aff 100644 --- a/src/schemes/solid/total_lagrangian_sph/rhs.jl +++ b/src/schemes/solid/total_lagrangian_sph/rhs.jl @@ -48,7 +48,8 @@ end end calc_penalty_force!(dv, particle, neighbor, initial_pos_diff, - initial_distance, particle_system, m_a, m_b, rho_a, rho_b, penalty_force) + initial_distance, particle_system, m_a, m_b, rho_a, rho_b, + penalty_force) # TODO continuity equation? end diff --git a/src/schemes/solid/total_lagrangian_sph/system.jl b/src/schemes/solid/total_lagrangian_sph/system.jl index 765d74c67..f9073edef 100644 --- a/src/schemes/solid/total_lagrangian_sph/system.jl +++ b/src/schemes/solid/total_lagrangian_sph/system.jl @@ -347,7 +347,8 @@ end end @inline function calc_penalty_force!(dv, particle, neighbor, initial_pos_diff, - initial_distance, system, m_a, m_b, rho_a, rho_b, ::Nothing) + initial_distance, system, m_a, m_b, rho_a, rho_b, + ::Nothing) return dv end diff --git a/validation/oscillating_beam_2d/README.md b/validation/oscillating_beam_2d/README.md index 37ac00088..55c869616 100644 --- a/validation/oscillating_beam_2d/README.md +++ b/validation/oscillating_beam_2d/README.md @@ -1,8 +1,8 @@ The following files are provided here: 1) Validation simulation: validation_oscillating_beam_2d.jl -2) Comparison with reference: -3) Comparison with TrixiParticles.jl reference: +2) Comparison with reference: compare_reference_oscillating_beam_results.jl +3) Comparison with TrixiParticles.jl reference: plot_oscillating_beam_results.jl 4) TrixiParticles.jl reference files: 5) Extracted results from Turek S , Hron J. "Proposal for numerical benchmarking of fluid-structure interaction between an elastic object and laminar incompressible flow." In: Fluid-structure interaction. Springer; 2006. p. 371–85 . https://doi.org/10.1007/3-540-34596-5_15: Turek_dx_T.csv and Turek_dy_T.csv \ No newline at end of file diff --git a/validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl b/validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl @@ -0,0 +1 @@ + diff --git a/validation/oscillating_beam_2d/oscillating_beam_2d.jl b/validation/oscillating_beam_2d/oscillating_beam_2d.jl deleted file mode 100644 index 714f44b35..000000000 --- a/validation/oscillating_beam_2d/oscillating_beam_2d.jl +++ /dev/null @@ -1,224 +0,0 @@ -# Results are compared to the results in: -# -# P.N. Sun, D. Le Touzé, A.-M. Zhang. -# "Study of a complex fluid-structure dam-breaking benchmark problem using a multi-phase SPH method with APR". -# In: Engineering Analysis with Boundary Elements 104 (2019), pages 240-258. -# https://doi.org/10.1016/j.enganabound.2019.03.033 -# and -# Turek S , Hron J. -# "Proposal for numerical benchmarking of fluid-structure interaction between an elastic object and laminar incompressible flow." -# In: Fluid-structure interaction. Springer; 2006. p. 371–85 . -# https://doi.org/10.1007/3-540-34596-5_15 - -using TrixiParticles -using OrdinaryDiffEq -using PythonPlot -using JSON -using Glob -using CSV -using DataFrames -using Interpolations -using Statistics -using Printf - -# ========================================================================================== -# ==== Experiment Setup -gravity = 2.0 -tspan = (0.0, 10.0) - -elastic_plate_length = 0.35 -elastic_plate_thickness = 0.02 - -cylinder_radius = 0.05 -cylinder_diameter = 2 * cylinder_radius -material_density = 1000.0 - -# Young's modulus and Poisson ratio -E = 1.4e6 -nu = 0.4 - -resolution = [20, 50, 100] -for res in resolution - - particle_spacing = cylinder_diameter/res - - - # Add particle_spacing/2 to the clamp_radius to ensure that particles are also placed on the radius - fixed_particles = SphereShape(particle_spacing, cylinder_radius + particle_spacing / 2, - (0.0, elastic_plate_thickness / 2), material_density, - cutout_min=(0.0, 0.0), cutout_max=(cylinder_radius, elastic_plate_thickness), - tlsph=true) - - n_particles_clamp_x = round(Int, cylinder_radius / particle_spacing) - - # Beam and clamped particles - n_particles_per_dimension = (round(Int, elastic_plate_length / particle_spacing) + - n_particles_clamp_x + 1, round(Int, elastic_plate_thickness/particle_spacing)+1) - - # Note that the `RectangularShape` puts the first particle half a particle spacing away - # from the boundary, which is correct for fluids, but not for solids. - # We therefore need to pass `tlsph=true`. - elastic_plate = RectangularShape(particle_spacing, n_particles_per_dimension, - (0.0, 0.0), density=material_density, tlsph=true) - - solid = union(elastic_plate, fixed_particles) - - # ========================================================================================== - # ==== Solid - - smoothing_length = 2 * sqrt(2) * particle_spacing - smoothing_kernel = WendlandC2Kernel{2}() - - solid_system = TotalLagrangianSPHSystem(solid, - smoothing_kernel, smoothing_length, - E, nu, nothing, - n_fixed_particles=nparticles(fixed_particles), - acceleration=(0.0, -gravity), penalty_force=PenaltyForceGanzenmueller(alpha=0.01)) - - # find points at the end of elastic plate - plate_end_x = elastic_plate_length + cylinder_radius - point_ids = [] - for particle in TrixiParticles.eachparticle(solid_system) - particle_coord = solid_system.current_coordinates[:, particle] - - if isapprox(particle_coord[1], plate_end_x, atol=particle_spacing/2) - push!(point_ids, particle) - end - end - - # of those find the particle in the middle - y_coords_at_plate_end = [solid_system.current_coordinates[2, particle] for particle in point_ids] - if isempty(y_coords_at_plate_end) - error("No particles found at the specified beam_end_x coordinate.") - end - - sorted_y_coords = sort(y_coords_at_plate_end) - - # Compute the median - len = length(sorted_y_coords) - if isodd(len) - median_y = sorted_y_coords[ceil(Int, len / 2)] - else - half = round(Int, len/2) - median_y = (sorted_y_coords[half] + sorted_y_coords[half + 1]) / 2 - end - closest_to_median_index = argmin(abs.(y_coords_at_plate_end .- median_y)) - middle_particle_id = point_ids[closest_to_median_index] - - # ========================================================================================== - # ==== Simulation - semi = Semidiscretization(solid_system, neighborhood_search=GridNeighborhoodSearch) - ode = semidiscretize(semi, tspan) - - function particle_position(particle_id, pp, t, system, u, v, system_name) - TrixiParticles.add_entry!(pp, "pos_x_$particle_id", t, system.current_coordinates[1, particle_id], system_name) - TrixiParticles.add_entry!(pp, "pos_y_$particle_id", t, system.current_coordinates[2, particle_id], system_name) - end - - #point_pos_func = [(pp, t, sys, u, v, sys_name) -> particle_position(point_id, pp, t, sys, u, v, sys_name) for point_id in point_ids] - point_pos_func = (pp, t, sys, u, v, sys_name) -> particle_position(middle_particle_id, pp, t, sys, u, v, sys_name) - pp_callback = PostprocessCallback(point_pos_func, dt=0.025, filename="oscillating_beam_2d_positions_"*string(res)) - info_callback = InfoCallback(interval=500) - saving_callback = SolutionSavingCallback(dt=0.05, prefix="") - - callbacks = CallbackSet(info_callback, saving_callback, pp_callback) - - sol = solve(ode, RDPK3SpFSAL49(), abstol=1e-8, reltol=1e-6, dtmax=1e-3, - save_everystep=false, callback=callbacks); -end - -# Load the reference simulation data -dx_data = CSV.read("validation/Turek_dx_T.csv", DataFrame) -dy_data = CSV.read("validation/Turek_dy_T.csv", DataFrame) - -# fix slight misalignment -dx_data.time = dx_data.time .+ 0.015 -dx_data.displacement = dx_data.displacement .+ 0.00005 -dy_data.displacement = dy_data.displacement .- 0.001 - -# Get the list of JSON files -json_files = glob("oscillating_beam_2d_positions_*.json", ".") - -# Create subplots -fig, (ax1, ax2) = subplots(1, 2, figsize=(12, 5)) - -# Regular expressions for matching keys -key_pattern_x = r"pos_x_\d+_solid_\d+" -key_pattern_y = r"pos_y_\d+_solid_\d+" - -function calculate_mse(reference_data, simulation_data) - # Interpolate simulation data - interp_func = LinearInterpolation(simulation_data["time"], simulation_data["values"]) - - # Align with reference data time points - interpolated_values = interp_func(reference_data.time) - - # Calculate MSE - mse = mean((interpolated_values .- reference_data.displacement).^2) - return mse -end - - -for json_file in json_files - json_data = JSON.parsefile(json_file) - - local resolution = parse(Int, split(split(json_file, "_")[end], ".")[1]) - - # Find matching keys and plot data for each key - matching_keys_x = sort(collect(filter(key -> occursin(key_pattern_x, key), keys(json_data)))) - matching_keys_y = sort(collect(filter(key -> occursin(key_pattern_y, key), keys(json_data)))) - - particle_spacing = cylinder_diameter/resolution - - # calculate error compared to reference - mse_results_x = 0 - mse_results_y = 0 - - for key in matching_keys_x - data = json_data[key] - mse_results_x = calculate_mse(dx_data, data) - end - - for key in matching_keys_y - data = json_data[key] - mse_results_y = calculate_mse(dy_data, data) - end - - # Plot x-axis displacements - for key in matching_keys_x - data = json_data[key] - times = data["time"] - values = data["values"] - initial_position = values[1] - displacements = [value - initial_position for value in values] - ax1.plot(times, displacements, label="dp = $(particle_spacing) mse=$(@sprintf("%.5f", mse_results_x))") - end - - # Plot y-axis displacements - for key in matching_keys_y - data = json_data[key] - times = data["time"] - values = data["values"] - initial_position = values[1] - displacements = [value - initial_position for value in values] - ax2.plot(times, displacements, label="dp = $(particle_spacing) mse=$(@sprintf("%.5f", mse_results_y))") - end -end - -ax1.plot(dx_data.time, dx_data.displacement, label="Turek and Hron 2006", color="black", linestyle="--") -ax2.plot(dy_data.time, dy_data.displacement, label="Turek and Hron 2006", color="black", linestyle="--") - -ax1.set_xlabel("Time [s]") -ax1.set_ylabel("X Displacement") -ax1.set_title("X-Axis Displacement") -ax1.legend(loc="upper left", bbox_to_anchor=(1, 1)) - -ax2.set_xlabel("Time [s]") -ax2.set_ylabel("Y Displacement") -ax2.set_title("Y-Axis Displacement") -ax2.legend(loc="upper left", bbox_to_anchor=(1, 1)) - -fig.subplots_adjust(right=0.7) -fig.tight_layout() - -plotshow() diff --git a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl new file mode 100644 index 000000000..69b5eecf8 --- /dev/null +++ b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl @@ -0,0 +1,109 @@ +using PythonPlot +using JSON +using Glob +using CSV +using DataFrames +using Interpolations +using Statistics +using Printf + +# Load the reference simulation data +dx_data = CSV.read("validation/Turek_dx_T.csv", DataFrame) +dy_data = CSV.read("validation/Turek_dy_T.csv", DataFrame) + +# fix slight misalignment +dx_data.time = dx_data.time .+ 0.015 +dx_data.displacement = dx_data.displacement .+ 0.00005 +dy_data.displacement = dy_data.displacement .- 0.001 + +# Get the list of JSON files +json_files = glob("oscillating_beam_2d_positions_*.json", ".") + +# Create subplots +fig, (ax1, ax2) = subplots(1, 2, figsize=(12, 5)) + +# Regular expressions for matching keys +key_pattern_x = r"pos_x_\d+_solid_\d+" +key_pattern_y = r"pos_y_\d+_solid_\d+" + +function calculate_mse(reference_data, simulation_data) + # Interpolate simulation data + interp_func = LinearInterpolation(simulation_data["time"], simulation_data["values"]) + + # Align with reference data time points + interpolated_values = interp_func(reference_data.time) + + # Calculate MSE + mse = mean((interpolated_values .- reference_data.displacement) .^ 2) + return mse +end + +for json_file in json_files + json_data = JSON.parsefile(json_file) + + local resolution = parse(Int, split(split(json_file, "_")[end], ".")[1]) + + # Find matching keys and plot data for each key + matching_keys_x = sort(collect(filter(key -> occursin(key_pattern_x, key), + keys(json_data)))) + matching_keys_y = sort(collect(filter(key -> occursin(key_pattern_y, key), + keys(json_data)))) + + particle_spacing = cylinder_diameter / resolution + + # calculate error compared to reference + mse_results_x = 0 + mse_results_y = 0 + + for key in matching_keys_x + data = json_data[key] + mse_results_x = calculate_mse(dx_data, data) + end + + for key in matching_keys_y + data = json_data[key] + mse_results_y = calculate_mse(dy_data, data) + end + + # Plot x-axis displacements + for key in matching_keys_x + data = json_data[key] + times = data["time"] + values = data["values"] + initial_position = values[1] + displacements = [value - initial_position for value in values] + ax1.plot(times, displacements, + label="dp = $(particle_spacing) mse=$(@sprintf("%.5f", mse_results_x))") + end + + # Plot y-axis displacements + for key in matching_keys_y + data = json_data[key] + times = data["time"] + values = data["values"] + initial_position = values[1] + displacements = [value - initial_position for value in values] + ax2.plot(times, displacements, + label="dp = $(particle_spacing) mse=$(@sprintf("%.5f", mse_results_y))") + end +end + +ax1.plot(dx_data.time, dx_data.displacement, label="Turek and Hron 2006", color="black", + linestyle="--") +ax2.plot(dy_data.time, dy_data.displacement, label="Turek and Hron 2006", color="black", + linestyle="--") + +ax1.set_xlabel("Time [s]") +ax1.set_ylabel("X Displacement") +ax1.set_title("X-Axis Displacement") +ax1.legend(loc="upper left", bbox_to_anchor=(1, 1)) + +ax2.set_xlabel("Time [s]") +ax2.set_ylabel("Y Displacement") +ax2.set_title("Y-Axis Displacement") +ax2.legend(loc="upper left", bbox_to_anchor=(1, 1)) + +fig.subplots_adjust(right=0.7) +fig.tight_layout() + +plotshow() diff --git a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl new file mode 100644 index 000000000..a58c4b96c --- /dev/null +++ b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl @@ -0,0 +1,128 @@ +# Results are compared to the results in: +# +# P.N. Sun, D. Le Touzé, A.-M. Zhang. +# "Study of a complex fluid-structure dam-breaking benchmark problem using a multi-phase SPH method with APR". +# In: Engineering Analysis with Boundary Elements 104 (2019), pages 240-258. +# https://doi.org/10.1016/j.enganabound.2019.03.033 +# and +# Turek S , Hron J. +# "Proposal for numerical benchmarking of fluid-structure interaction between an elastic object and laminar incompressible flow." +# In: Fluid-structure interaction. Springer; 2006. p. 371–85 . +# https://doi.org/10.1007/3-540-34596-5_15 + +using TrixiParticles +using OrdinaryDiffEq + +# ========================================================================================== +# ==== Experiment Setup +gravity = 2.0 +tspan = (0.0, 10.0) + +elastic_plate_length = 0.35 +elastic_plate_thickness = 0.02 + +cylinder_radius = 0.05 +cylinder_diameter = 2 * cylinder_radius +material_density = 1000.0 + +# Young's modulus and Poisson ratio +E = 1.4e6 +nu = 0.4 + +#resolution = [20, 50, 100] +resolution = [20] +for res in resolution + particle_spacing = cylinder_diameter / res + + # Add particle_spacing/2 to the clamp_radius to ensure that particles are also placed on the radius + fixed_particles = SphereShape(particle_spacing, cylinder_radius + particle_spacing / 2, + (0.0, elastic_plate_thickness / 2), material_density, + cutout_min=(0.0, 0.0), + cutout_max=(cylinder_radius, elastic_plate_thickness), + tlsph=true) + + n_particles_clamp_x = round(Int, cylinder_radius / particle_spacing) + + # Beam and clamped particles + n_particles_per_dimension = (round(Int, elastic_plate_length / particle_spacing) + + n_particles_clamp_x + 1, + round(Int, elastic_plate_thickness / particle_spacing) + 1) + + # Note that the `RectangularShape` puts the first particle half a particle spacing away + # from the boundary, which is correct for fluids, but not for solids. + # We therefore need to pass `tlsph=true`. + elastic_plate = RectangularShape(particle_spacing, n_particles_per_dimension, + (0.0, 0.0), density=material_density, tlsph=true) + + solid = union(elastic_plate, fixed_particles) + + # ========================================================================================== + # ==== Solid + + smoothing_length = 2 * sqrt(2) * particle_spacing + smoothing_kernel = WendlandC2Kernel{2}() + + solid_system = TotalLagrangianSPHSystem(solid, + smoothing_kernel, smoothing_length, + E, nu, nothing, + n_fixed_particles=nparticles(fixed_particles), + acceleration=(0.0, -gravity), + penalty_force=PenaltyForceGanzenmueller(alpha=0.01)) + + # find points at the end of elastic plate + plate_end_x = elastic_plate_length + cylinder_radius + point_ids = [] + for particle in TrixiParticles.eachparticle(solid_system) + particle_coord = solid_system.current_coordinates[:, particle] + + if isapprox(particle_coord[1], plate_end_x, atol=particle_spacing / 2) + push!(point_ids, particle) + end + end + + # of those find the particle in the middle + y_coords_at_plate_end = [solid_system.current_coordinates[2, particle] + for particle in point_ids] + if isempty(y_coords_at_plate_end) + error("No particles found at the specified beam_end_x coordinate.") + end + + sorted_y_coords = sort(y_coords_at_plate_end) + + # Compute the median + len = length(sorted_y_coords) + if isodd(len) + median_y = sorted_y_coords[ceil(Int, len / 2)] + else + half = round(Int, len / 2) + median_y = (sorted_y_coords[half] + sorted_y_coords[half + 1]) / 2 + end + closest_to_median_index = argmin(abs.(y_coords_at_plate_end .- median_y)) + middle_particle_id = point_ids[closest_to_median_index] + + # ========================================================================================== + # ==== Simulation + semi = Semidiscretization(solid_system, neighborhood_search=GridNeighborhoodSearch) + ode = semidiscretize(semi, tspan) + + function particle_position_x(particle_id, t, v, u, system) + return system.current_coordinates[1, particle_id] + end + + function particle_position_y(particle_id, t, v, u, system) + return system.current_coordinates[2, particle_id] + end + + mid_point_x = (t, v, u, system) -> particle_position_x(middle_particle_id, t, v, u, system) + mid_point_y = (t, v, u, system) -> particle_position_y(middle_particle_id, t, v, u, system) + + pp_callback = PostprocessCallback(mid_point_x, mid_point_y; dt=0.025, output_directory="validation/oscillating_beam_2d", + filename="validation_reference_oscillating_beam_2d_" * string(res), write_csv=false) + info_callback = InfoCallback(interval=2500) + saving_callback = SolutionSavingCallback(dt=0.5, prefix="validation_" * string(res)) + + callbacks = CallbackSet(info_callback, saving_callback, pp_callback) + + sol = solve(ode, RDPK3SpFSAL49(), abstol=1e-8, reltol=1e-6, dtmax=1e-3, + save_everystep=false, callback=callbacks) +end From 3e34bce5ab3f86c744cd1b027453fd89b8187fd8 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 13 Feb 2024 15:35:07 +0100 Subject: [PATCH 134/212] fix plot --- validation/oscillating_beam_2d/README.md | 2 +- .../plot_oscillating_beam_results.jl | 13 ++++++++++--- .../validation_oscillating_beam_2d.jl | 12 ++++++++++-- 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/validation/oscillating_beam_2d/README.md b/validation/oscillating_beam_2d/README.md index 55c869616..acdfc8b14 100644 --- a/validation/oscillating_beam_2d/README.md +++ b/validation/oscillating_beam_2d/README.md @@ -3,6 +3,6 @@ The following files are provided here: 1) Validation simulation: validation_oscillating_beam_2d.jl 2) Comparison with reference: compare_reference_oscillating_beam_results.jl 3) Comparison with TrixiParticles.jl reference: plot_oscillating_beam_results.jl -4) TrixiParticles.jl reference files: +4) TrixiParticles.jl reference files: validation_reference_oscillating_beam_2d_[20, 50, 100].j (20 is the default CI resolution, note that resolution 50 takes about 10-20 minutes while 100 takes about 1-2 hours) 5) Extracted results from Turek S , Hron J. "Proposal for numerical benchmarking of fluid-structure interaction between an elastic object and laminar incompressible flow." In: Fluid-structure interaction. Springer; 2006. p. 371–85 . https://doi.org/10.1007/3-540-34596-5_15: Turek_dx_T.csv and Turek_dy_T.csv \ No newline at end of file diff --git a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl index 69b5eecf8..8d203ba81 100644 --- a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl +++ b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl @@ -7,9 +7,16 @@ using Interpolations using Statistics using Printf +elastic_plate_length = 0.35 +elastic_plate_thickness = 0.02 + +cylinder_radius = 0.05 +cylinder_diameter = 2 * cylinder_radius +material_density = 1000.0 + # Load the reference simulation data -dx_data = CSV.read("validation/Turek_dx_T.csv", DataFrame) -dy_data = CSV.read("validation/Turek_dy_T.csv", DataFrame) +dx_data = CSV.read("validation/oscillating_beam_2d/Turek_dx_T.csv", DataFrame) +dy_data = CSV.read("validation/oscillating_beam_2d/Turek_dy_T.csv", DataFrame) # fix slight misalignment dx_data.time = dx_data.time .+ 0.015 @@ -17,7 +24,7 @@ dx_data.displacement = dx_data.displacement .+ 0.00005 dy_data.displacement = dy_data.displacement .- 0.001 # Get the list of JSON files -json_files = glob("oscillating_beam_2d_positions_*.json", ".") +json_files = glob("validation_reference_oscillating_beam_2d_*.json", "validation/oscillating_beam_2d/") # Create subplots fig, (ax1, ax2) = subplots(1, 2, figsize=(12, 5)) diff --git a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl index a58c4b96c..7b931bee9 100644 --- a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl +++ b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl @@ -113,8 +113,16 @@ for res in resolution return system.current_coordinates[2, particle_id] end - mid_point_x = (t, v, u, system) -> particle_position_x(middle_particle_id, t, v, u, system) - mid_point_y = (t, v, u, system) -> particle_position_y(middle_particle_id, t, v, u, system) + # mid_point_x = (t, v, u, system) -> particle_position_x(middle_particle_id, t, v, u, system) + # mid_point_y = (t, v, u, system) -> particle_position_y(middle_particle_id, t, v, u, system) + + function mid_point_x(t, v, u, system) + particle_position_x(middle_particle_id, t, v, u, system) + end + + function mid_point_y(t, v, u, system) + particle_position_y(middle_particle_id, t, v, u, system) + end pp_callback = PostprocessCallback(mid_point_x, mid_point_y; dt=0.025, output_directory="validation/oscillating_beam_2d", filename="validation_reference_oscillating_beam_2d_" * string(res), write_csv=false) From 8975bf3d8f72d10fd96bfd145fcbacb2f39f8fee Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 14 Feb 2024 03:06:59 +0100 Subject: [PATCH 135/212] update --- examples/fluid/hydrostatic_water_column_2d.jl | 20 +++--- examples/postprocessing/postprocessing.jl | 6 +- .../fluid/weakly_compressible_sph/system.jl | 2 + test/examples/examples.jl | 10 +++ validation/investigate_relaxation.jl | 62 +++++++++++++++---- 5 files changed, 79 insertions(+), 21 deletions(-) diff --git a/examples/fluid/hydrostatic_water_column_2d.jl b/examples/fluid/hydrostatic_water_column_2d.jl index 5b257a2b4..066aa48ef 100644 --- a/examples/fluid/hydrostatic_water_column_2d.jl +++ b/examples/fluid/hydrostatic_water_column_2d.jl @@ -37,15 +37,19 @@ fluid_density_calculator = ContinuityDensity() fluid_system = WeaklyCompressibleSPHSystem(tank.fluid, fluid_density_calculator, state_equation, smoothing_kernel, smoothing_length, viscosity=viscosity, - acceleration=(0.0, -gravity)) + acceleration=(0.0, -gravity), + source_terms=nothing) # ========================================================================================== # ==== Boundary -boundary_density_calculator = AdamiPressureExtrapolation() + +# This is to set wall viscosity with `trixi_include` +viscosity_wall = nothing boundary_model = BoundaryModelDummyParticles(tank.boundary.density, tank.boundary.mass, state_equation=state_equation, - boundary_density_calculator, - smoothing_kernel, smoothing_length) + AdamiPressureExtrapolation(), + smoothing_kernel, smoothing_length, + viscosity=viscosity_wall) boundary_system = BoundarySPHSystem(tank.boundary, boundary_model) # ========================================================================================== @@ -56,8 +60,10 @@ ode = semidiscretize(semi, tspan) info_callback = InfoCallback(interval=50) saving_callback = SolutionSavingCallback(dt=0.02, prefix="") -callbacks = CallbackSet(info_callback, saving_callback) +# This is to easily add a new callback with `trixi_include` +extra_callback = nothing + +callbacks = CallbackSet(info_callback, saving_callback, extra_callback) # Use a Runge-Kutta method with automatic (error based) time step size control -sol = solve(ode, RDPK3SpFSAL35(), - save_everystep=false, callback=callbacks); +sol = solve(ode, RDPK3SpFSAL35(), save_everystep=false, callback=callbacks); diff --git a/examples/postprocessing/postprocessing.jl b/examples/postprocessing/postprocessing.jl index 890a31131..152083754 100644 --- a/examples/postprocessing/postprocessing.jl +++ b/examples/postprocessing/postprocessing.jl @@ -14,13 +14,15 @@ function hello(t, v, u, system) end example_cb = PostprocessCallback(hello; interval=10) -trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), +trixi_include(@__MODULE__, + joinpath(examples_dir(), "fluid", "hydrostatic_water_column_2d.jl"), extra_callback=example_cb, tspan=(0.0, 0.1)); # Lets write the average pressure and kinetic energy every 0.01s pp = PostprocessCallback(avg_pressure, ekin; dt=0.005, filename="example_pressure_ekin") -trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), +trixi_include(@__MODULE__, + joinpath(examples_dir(), "fluid", "hydrostatic_water_column_2d.jl"), extra_callback=pp, tspan=(0.0, 0.1)); data = CSV.read("out/example_pressure_ekin.csv", DataFrame) diff --git a/src/schemes/fluid/weakly_compressible_sph/system.jl b/src/schemes/fluid/weakly_compressible_sph/system.jl index 5ceb2e206..5ed9c56a9 100644 --- a/src/schemes/fluid/weakly_compressible_sph/system.jl +++ b/src/schemes/fluid/weakly_compressible_sph/system.jl @@ -160,6 +160,7 @@ function Base.show(io::IO, system::WeaklyCompressibleSPHSystem) print(io, ", ", system.viscosity) print(io, ", ", system.density_diffusion) print(io, ", ", system.acceleration) + print(io, ", ", system.source_terms) print(io, ") with ", nparticles(system), " particles") end @@ -180,6 +181,7 @@ function Base.show(io::IO, ::MIME"text/plain", system::WeaklyCompressibleSPHSyst summary_line(io, "viscosity", system.viscosity) summary_line(io, "density diffusion", system.density_diffusion) summary_line(io, "acceleration", system.acceleration) + summary_line(io, "source terms", system.source_terms |> typeof |> nameof) summary_footer(io) end end diff --git a/test/examples/examples.jl b/test/examples/examples.jl index e7c904643..5998bdafa 100644 --- a/test/examples/examples.jl +++ b/test/examples/examples.jl @@ -20,6 +20,16 @@ @test count_rhs_allocations(sol, semi) == 0 end + @trixi_testset "fluid/hydrostatic_water_column_2d.jl with source term damping" begin + @test_nowarn_mod trixi_include(@__MODULE__, + joinpath(examples_dir(), "fluid", + "hydrostatic_water_column_2d.jl"), + source_terms=SourceTermDamping(; + damping_coefficient=1e-4)) + @test sol.retcode == ReturnCode.Success + @test count_rhs_allocations(sol, semi) == 0 + end + @trixi_testset "fluid/hydrostatic_water_column_2d.jl with SummationDensity" begin @test_nowarn_mod trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", diff --git a/validation/investigate_relaxation.jl b/validation/investigate_relaxation.jl index 1bf8a0500..bb3185db8 100644 --- a/validation/investigate_relaxation.jl +++ b/validation/investigate_relaxation.jl @@ -6,10 +6,24 @@ using DataFrames using Printf pp_cb = PostprocessCallback(ekin, max_pressure, avg_density; dt=0.025, - filename="relaxation") + filename="relaxation", write_csv=false) -trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "rectangular_tank_2d.jl"), - extra_callback=pp_cb, tspan=(0.0, 5.0)); +pp_damped_cb = PostprocessCallback(ekin, max_pressure, avg_density; dt=0.025, + filename="relaxation_damped", write_csv=false) + +trixi_include(@__MODULE__, + joinpath(examples_dir(), "fluid", "hydrostatic_water_column_2d.jl"), + extra_callback=pp_cb, tspan=(0.0, 5.0), saving_callback=nothing, + fluid_particle_spacing=0.02, + viscosity_wall=ViscosityAdami(nu=1.0)); + +trixi_include(@__MODULE__, + joinpath(examples_dir(), "fluid", "hydrostatic_water_column_2d.jl"), + extra_callback=pp_damped_cb, tspan=(0.0, 5.0), + source_terms=SourceTermDamping(; + damping_coefficient=2.0), + saving_callback=nothing, fluid_particle_spacing=0.02, + viscosity_wall=ViscosityAdami(nu=1.0)); function calculate_regression(data::Vector{Float64}, t::Vector{Float64}) @assert length(data)==length(t) "Data and time vectors must have the same length" @@ -28,27 +42,45 @@ function calculate_regression(data::Vector{Float64}, t::Vector{Float64}) end file_path = joinpath(pwd(), "out", "relaxation.json") +file_path_damped = joinpath(pwd(), "out", "relaxation_damped.json") -if file_path != "" +function read_and_parse(file_path) json_string = read(file_path, String) json_data = JSON.parse(json_string) time = Vector{Float64}(json_data["ekin_fluid_1"]["time"]) e_kin = Vector{Float64}(json_data["ekin_fluid_1"]["values"]) - tl_ekin, grad_ekin = calculate_regression(e_kin, time) + p_max = Vector{Float64}(json_data["max_pressure_fluid_1"]["values"]) + avg_rho = Vector{Float64}(json_data["avg_density_fluid_1"]["values"]) - x_position_for_annotation = minimum(time) + (maximum(time) - minimum(time)) * 0.5 + return time, e_kin, p_max, avg_rho +end + +if file_path != "" + time, e_kin, p_max, avg_rho = read_and_parse(file_path) + time_damped, e_kin_damped, p_max_damped, avg_rho_damped = read_and_parse(file_path_damped) + + tl_ekin, grad_ekin = calculate_regression(e_kin, time) + tl_ekin_damped, grad_ekin_damped = calculate_regression(e_kin_damped, time_damped) - p_max = Vector{Float64}(json_data["max_pressure_fluid_1"]["values"]) tl_p_max, grad_p_max = calculate_regression(p_max, time) + tl_p_max_damped, grad_p_max_damped = calculate_regression(p_max_damped, time_damped) - avg_rho = Vector{Float64}(json_data["avg_density_fluid_1"]["values"]) tl_avg_rho, grad_avg_rho = calculate_regression(avg_rho, time) + tl_avg_rho_damped, grad_avg_rho_damped = calculate_regression(avg_rho_damped, + time_damped) + + x_position_for_annotation = minimum(time) + (maximum(time) - minimum(time)) * 0.5 + + plot1 = plot(time, [e_kin, tl_ekin], label=["undamped" "trend"], + color=[:blue :red], linewidth=[2 2]) + + plot!(time_damped, [e_kin_damped, tl_ekin_damped], + label=["damped" "damped trend"], color=[:green :orange], linewidth=[2 2]) + + plot!(title="Kinetic Energy of the Fluid", xlabel="Time [s]", + ylabel="kinetic energy [J]") - plot1 = plot(time, [e_kin, tl_ekin], label=["sim" "trend"], color=[:blue :red], - linewidth=[2 2], - title="Kinetic Energy of the Fluid", xlabel="Time [s]", - ylabel="kinetic energy [J]") annotate!(x_position_for_annotation, ylims(plot1)[2] - 0.0001, @sprintf("gradient=%.5f", grad_ekin)) @@ -56,6 +88,9 @@ if file_path != "" linewidth=[2 2], title="Maximum Pressure of the Fluid", xlabel="Time [s]", ylabel="Max. Pressure [Pa]") + plot!(time_damped, [p_max_damped, tl_p_max_damped], label=["damped" "damped trend"], + color=[:green :orange]) + annotate!(x_position_for_annotation, ylims(plot2)[2] - 5.5, @sprintf("gradient=%.5f", grad_p_max)) @@ -63,6 +98,9 @@ if file_path != "" linewidth=[2 2], title="Avg. Density of the Fluid", xlabel="Time [s]", ylabel="Avg. Density [kg/m^3]") + plot!(time_damped, [avg_rho_damped, tl_avg_rho_damped], label=["damped" "damped trend"], + color=[:green :orange]) + annotate!(x_position_for_annotation, ylims(plot3)[2] - 0.003, @sprintf("gradient=%.5f", grad_avg_rho)) From 1e9f5324e3af08b40f0d36fc1af024aff54def9a Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 14 Feb 2024 12:05:55 +0100 Subject: [PATCH 136/212] fix --- examples/fluid/hydrostatic_water_column_2d.jl | 2 +- src/TrixiParticles.jl | 2 +- validation/investigate_relaxation.jl | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/fluid/hydrostatic_water_column_2d.jl b/examples/fluid/hydrostatic_water_column_2d.jl index 066aa48ef..6e1225a2f 100644 --- a/examples/fluid/hydrostatic_water_column_2d.jl +++ b/examples/fluid/hydrostatic_water_column_2d.jl @@ -44,7 +44,7 @@ fluid_system = WeaklyCompressibleSPHSystem(tank.fluid, fluid_density_calculator, # ==== Boundary # This is to set wall viscosity with `trixi_include` -viscosity_wall = nothing +viscosity_wall = NoViscosity() boundary_model = BoundaryModelDummyParticles(tank.boundary.density, tank.boundary.mass, state_equation=state_equation, AdamiPressureExtrapolation(), diff --git a/src/TrixiParticles.jl b/src/TrixiParticles.jl index 55c2037d7..6f5c49608 100644 --- a/src/TrixiParticles.jl +++ b/src/TrixiParticles.jl @@ -51,7 +51,7 @@ export SchoenbergCubicSplineKernel, SchoenbergQuarticSplineKernel, SchoenbergQuinticSplineKernel, GaussianKernel, WendlandC2Kernel, WendlandC4Kernel, WendlandC6Kernel, SpikyKernel, Poly6Kernel export StateEquationCole -export ArtificialViscosityMonaghan, ViscosityAdami +export ArtificialViscosityMonaghan, ViscosityAdami, NoViscosity export DensityDiffusion, DensityDiffusionMolteniColagrossi, DensityDiffusionFerrari, DensityDiffusionAntuono export BoundaryModelMonaghanKajtar, BoundaryModelDummyParticles, AdamiPressureExtrapolation, diff --git a/validation/investigate_relaxation.jl b/validation/investigate_relaxation.jl index bb3185db8..12735cc33 100644 --- a/validation/investigate_relaxation.jl +++ b/validation/investigate_relaxation.jl @@ -15,13 +15,13 @@ trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "hydrostatic_water_column_2d.jl"), extra_callback=pp_cb, tspan=(0.0, 5.0), saving_callback=nothing, fluid_particle_spacing=0.02, - viscosity_wall=ViscosityAdami(nu=1.0)); + viscosity_wall=ViscosityAdami(nu=0.5)); trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "hydrostatic_water_column_2d.jl"), extra_callback=pp_damped_cb, tspan=(0.0, 5.0), source_terms=SourceTermDamping(; - damping_coefficient=2.0), + damping_coefficient=1e-4), saving_callback=nothing, fluid_particle_spacing=0.02, viscosity_wall=ViscosityAdami(nu=1.0)); From c696664d2a7eaef72bc86d0525fa90f72cc75008 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 14 Feb 2024 15:36:19 +0100 Subject: [PATCH 137/212] update --- examples/fluid/hydrostatic_water_column_2d.jl | 2 +- validation/investigate_relaxation.jl | 26 +++++++++++-------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/examples/fluid/hydrostatic_water_column_2d.jl b/examples/fluid/hydrostatic_water_column_2d.jl index 6e1225a2f..2694c9ed0 100644 --- a/examples/fluid/hydrostatic_water_column_2d.jl +++ b/examples/fluid/hydrostatic_water_column_2d.jl @@ -57,7 +57,7 @@ boundary_system = BoundarySPHSystem(tank.boundary, boundary_model) semi = Semidiscretization(fluid_system, boundary_system) ode = semidiscretize(semi, tspan) -info_callback = InfoCallback(interval=50) +info_callback = InfoCallback(interval=100) saving_callback = SolutionSavingCallback(dt=0.02, prefix="") # This is to easily add a new callback with `trixi_include` diff --git a/validation/investigate_relaxation.jl b/validation/investigate_relaxation.jl index 12735cc33..80026a722 100644 --- a/validation/investigate_relaxation.jl +++ b/validation/investigate_relaxation.jl @@ -21,9 +21,9 @@ trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "hydrostatic_water_column_2d.jl"), extra_callback=pp_damped_cb, tspan=(0.0, 5.0), source_terms=SourceTermDamping(; - damping_coefficient=1e-4), + damping_coefficient=2.0), saving_callback=nothing, fluid_particle_spacing=0.02, - viscosity_wall=ViscosityAdami(nu=1.0)); + viscosity_wall=ViscosityAdami(nu=0.5)); function calculate_regression(data::Vector{Float64}, t::Vector{Float64}) @assert length(data)==length(t) "Data and time vectors must have the same length" @@ -85,24 +85,28 @@ if file_path != "" @sprintf("gradient=%.5f", grad_ekin)) plot2 = plot(time, [p_max, tl_p_max], label=["sim" "trend"], color=[:blue :red], - linewidth=[2 2], - title="Maximum Pressure of the Fluid", xlabel="Time [s]", - ylabel="Max. Pressure [Pa]") + linewidth=[2 2]) + plot!(time_damped, [p_max_damped, tl_p_max_damped], label=["damped" "damped trend"], - color=[:green :orange]) + color=[:green :orange], linewidth=[2 2]) + + plot!(title="Maximum Pressure of the Fluid", xlabel="Time [s]", + ylabel="Max. Pressure [Pa]") annotate!(x_position_for_annotation, ylims(plot2)[2] - 5.5, @sprintf("gradient=%.5f", grad_p_max)) plot3 = plot(time, [avg_rho, tl_avg_rho], label=["sim" "trend"], color=[:blue :red], - linewidth=[2 2], - title="Avg. Density of the Fluid", xlabel="Time [s]", - ylabel="Avg. Density [kg/m^3]") + linewidth=[2 2]) + plot!(time_damped, [avg_rho_damped, tl_avg_rho_damped], label=["damped" "damped trend"], - color=[:green :orange]) + color=[:green :orange], linewidth=[2 2]) + + plot!(title="Avg. Density of the Fluid", xlabel="Time [s]", + ylabel="Avg. Density [kg/m^3]") annotate!(x_position_for_annotation, ylims(plot3)[2] - 0.003, @sprintf("gradient=%.5f", grad_avg_rho)) - plot(plot1, plot2, plot3, layout=(1, 3), legend=:bottom, size=(1800, 500)) + plot(plot1, plot2, plot3, layout=(2, 2), legend=:bottom, size=(1200, 1200)) end From e38972d215255fa44b8a4bf76c88394c6e366254 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 14 Feb 2024 15:47:38 +0100 Subject: [PATCH 138/212] format --- validation/investigate_relaxation.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/validation/investigate_relaxation.jl b/validation/investigate_relaxation.jl index 80026a722..61b461ee0 100644 --- a/validation/investigate_relaxation.jl +++ b/validation/investigate_relaxation.jl @@ -91,7 +91,7 @@ if file_path != "" color=[:green :orange], linewidth=[2 2]) plot!(title="Maximum Pressure of the Fluid", xlabel="Time [s]", - ylabel="Max. Pressure [Pa]") + ylabel="Max. Pressure [Pa]") annotate!(x_position_for_annotation, ylims(plot2)[2] - 5.5, @sprintf("gradient=%.5f", grad_p_max)) @@ -103,7 +103,7 @@ if file_path != "" color=[:green :orange], linewidth=[2 2]) plot!(title="Avg. Density of the Fluid", xlabel="Time [s]", - ylabel="Avg. Density [kg/m^3]") + ylabel="Avg. Density [kg/m^3]") annotate!(x_position_for_annotation, ylims(plot3)[2] - 0.003, @sprintf("gradient=%.5f", grad_avg_rho)) From 6bf1d93e9505d8ff648327b4b1834da3fcdcff7c Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 14 Feb 2024 16:27:27 +0100 Subject: [PATCH 139/212] review update --- examples/postprocessing/postprocessing.jl | 2 +- src/callbacks/post_process.jl | 27 +++++++++++++---------- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/examples/postprocessing/postprocessing.jl b/examples/postprocessing/postprocessing.jl index 152083754..00d1b29e9 100644 --- a/examples/postprocessing/postprocessing.jl +++ b/examples/postprocessing/postprocessing.jl @@ -5,7 +5,7 @@ using DataFrames using Plots # Any function can be implemented and will be called every 10th timestep! See example below: -function hello(t, v, u, system) +function hello(v, u, t, system) # will write "hello" and the current simulation time println("hello at ", t) diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 4296b8f54..914c9fed1 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -1,11 +1,12 @@ """ PostprocessCallback(funcs...; interval::Integer=0, dt=0.0, exclude_boundary=true, filename="values", - output_directory=".", overwrite=true, write_csv=true, write_json=true) + output_directory="out", overwrite=true, write_csv=true, write_json=true) Create a callback for post-processing simulation data at regular intervals. This callback allows for the execution of a user-defined function `func` at specified intervals during the simulation. The function is applied to the current state of the simulation, -and its results can be saved or used for further analysis. +and its results can be saved or used for further analysis. The provided function cannot be +anonymous as the function name will be used as part of the name of the value. The callback can be triggered either by a fixed number of time steps (`interval`) or by a fixed interval of simulation time (`dt`). @@ -26,7 +27,9 @@ a fixed interval of simulation time (`dt`). # Examples ```julia -example_function = function(pp, t, system, u, v, system_name) println("test_func ", t) end +function example_function(v, u, t, system) + println("test_func ", t) +end # Create a callback that is triggered every 100 time steps postprocess_callback = PostprocessCallback(example_function, interval=100) @@ -192,7 +195,7 @@ function (pp::PostprocessCallback)(integrator) v = wrap_v(v_ode, system, semi) u = wrap_u(u_ode, system, semi) for f in pp.func - result = f(t, v, u, system) + result = f(v, u, t, system) add_entry!(pp, string(nameof(f)), t, result, filenames[system_index]) new_data = true end @@ -311,7 +314,7 @@ function add_entry!(pp, entry_key, t, value, system_name) push!(entries, value) end -function ekin(t, v, u, system) +function ekin(v, u, t, system) e_kin = 0.0 for particle in each_moving_particle(system) velocity = current_velocity(v, system, particle) @@ -320,7 +323,7 @@ function ekin(t, v, u, system) return e_kin end -function total_mass(t, v, u, system) +function total_mass(v, u, t, system) tm = 0.0 for particle in each_moving_particle(system) tm += system.mass[particle] @@ -328,7 +331,7 @@ function total_mass(t, v, u, system) return tm end -function max_pressure(t, v, u, system) +function max_pressure(v, u, t, system) max_p = 0.0 for particle in each_moving_particle(system) pressure = particle_pressure(v, system, particle) @@ -339,7 +342,7 @@ function max_pressure(t, v, u, system) return max_p end -function min_pressure(t, v, u, system) +function min_pressure(v, u, t, system) min_p = typemax(Int64) for particle in each_moving_particle(system) pressure = particle_pressure(v, system, particle) @@ -350,7 +353,7 @@ function min_pressure(t, v, u, system) return min_p end -function avg_pressure(t, v, u, system) +function avg_pressure(v, u, t, system) total_pressure = 0.0 count = 0 @@ -363,7 +366,7 @@ function avg_pressure(t, v, u, system) return avg_p end -function max_density(t, v, u, system) +function max_density(v, u, t, system) max_rho = 0.0 for particle in each_moving_particle(system) rho = particle_density(v, system, particle) @@ -374,7 +377,7 @@ function max_density(t, v, u, system) return max_rho end -function min_density(t, v, u, system) +function min_density(v, u, t, system) min_rho = typemax(Int64) for particle in each_moving_particle(system) rho = particle_density(v, system, particle) @@ -385,7 +388,7 @@ function min_density(t, v, u, system) return min_rho end -function avg_density(t, v, u, system) +function avg_density(v, u, t, system) total_density = 0.0 count = 0 From 439845f4f9d6666e9bfc2fb5731748954fc1730b Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 14 Feb 2024 16:29:49 +0100 Subject: [PATCH 140/212] fix test --- test/systems/wcsph_system.jl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/systems/wcsph_system.jl b/test/systems/wcsph_system.jl index 4c4b9ab9e..80d717700 100644 --- a/test/systems/wcsph_system.jl +++ b/test/systems/wcsph_system.jl @@ -193,7 +193,7 @@ smoothing_length, density_diffusion=density_diffusion) - show_compact = "WeaklyCompressibleSPHSystem{2}(SummationDensity(), nothing, Val{:state_equation}(), Val{:smoothing_kernel}(), TrixiParticles.NoViscosity(), Val{:density_diffusion}(), [0.0, 0.0]) with 2 particles" + show_compact = "WeaklyCompressibleSPHSystem{2}(SummationDensity(), nothing, Val{:state_equation}(), Val{:smoothing_kernel}(), TrixiParticles.NoViscosity(), Val{:density_diffusion}(), [0.0, 0.0], nothing) with 2 particles" @test repr(system) == show_compact show_box = """ ┌──────────────────────────────────────────────────────────────────────────────────────────────────┐ @@ -207,6 +207,7 @@ │ viscosity: …………………………………………………… TrixiParticles.NoViscosity() │ │ density diffusion: ……………………………… Val{:density_diffusion}() │ │ acceleration: …………………………………………… [0.0, 0.0] │ + │ source terms: …………………………………………… Nothing │ └──────────────────────────────────────────────────────────────────────────────────────────────────┘""" @test repr("text/plain", system) == show_box end From aebd69741ee069dde018ace894341d255575bfb5 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 14 Feb 2024 16:37:39 +0100 Subject: [PATCH 141/212] nvalue->n_values --- src/callbacks/post_process.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 914c9fed1..54da6b825 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -233,7 +233,7 @@ end function create_series_dict(values, times, system_name="") return Dict("type" => "series", "datatype" => eltype(values), - "novalues" => length(values), + "n_values" => length(values), "system_name" => system_name, "values" => values, "time" => times) From b2c9d2de9b0d36b7a73a70b4902528ee04850964 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 14 Feb 2024 17:02:50 +0100 Subject: [PATCH 142/212] fix --- test/systems/wcsph_system.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/systems/wcsph_system.jl b/test/systems/wcsph_system.jl index 80d717700..1a7b038d1 100644 --- a/test/systems/wcsph_system.jl +++ b/test/systems/wcsph_system.jl @@ -193,7 +193,7 @@ smoothing_length, density_diffusion=density_diffusion) - show_compact = "WeaklyCompressibleSPHSystem{2}(SummationDensity(), nothing, Val{:state_equation}(), Val{:smoothing_kernel}(), TrixiParticles.NoViscosity(), Val{:density_diffusion}(), [0.0, 0.0], nothing) with 2 particles" + show_compact = "WeaklyCompressibleSPHSystem{2}(SummationDensity(), nothing, Val{:state_equation}(), Val{:smoothing_kernel}(), NoViscosity(), Val{:density_diffusion}(), [0.0, 0.0], nothing) with 2 particles" @test repr(system) == show_compact show_box = """ ┌──────────────────────────────────────────────────────────────────────────────────────────────────┐ @@ -204,7 +204,7 @@ │ correction method: ……………………………… Nothing │ │ state equation: ……………………………………… Val │ │ smoothing kernel: ………………………………… Val │ - │ viscosity: …………………………………………………… TrixiParticles.NoViscosity() │ + │ viscosity: …………………………………………………… NoViscosity() │ │ density diffusion: ……………………………… Val{:density_diffusion}() │ │ acceleration: …………………………………………… [0.0, 0.0] │ │ source terms: …………………………………………… Nothing │ From f1a073dd6d73d8719d4ccf5327200f54d76092f1 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 14 Feb 2024 17:03:18 +0100 Subject: [PATCH 143/212] fixfix --- test/systems/wcsph_system.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/systems/wcsph_system.jl b/test/systems/wcsph_system.jl index 1a7b038d1..0ab9bd469 100644 --- a/test/systems/wcsph_system.jl +++ b/test/systems/wcsph_system.jl @@ -204,7 +204,7 @@ │ correction method: ……………………………… Nothing │ │ state equation: ……………………………………… Val │ │ smoothing kernel: ………………………………… Val │ - │ viscosity: …………………………………………………… NoViscosity() │ + │ viscosity: …………………………………………………… NoViscosity() │ │ density diffusion: ……………………………… Val{:density_diffusion}() │ │ acceleration: …………………………………………… [0.0, 0.0] │ │ source terms: …………………………………………… Nothing │ From 8ef914e5e9f413bb77afd802e9ecf68f44dc5915 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 14 Feb 2024 17:11:48 +0100 Subject: [PATCH 144/212] add check for anonymous functions --- src/callbacks/post_process.jl | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 54da6b825..e78bab871 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -59,6 +59,10 @@ function PostprocessCallback(funcs...; interval::Integer=0, dt=0.0, exclude_boun throw(ArgumentError("Setting both interval and dt is not supported!")) end + if any(f -> occursin(r"^#(\d+)", string(f)) || occursin("->", string(f)), funcs) + throw(ArgumentError("Anonymous functions are not allowed!")) + end + if dt > 0 interval = Float64(dt) end From 08bf3f3d8126aa1fd74d0a73072aa62d0b65974a Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 14 Feb 2024 17:28:38 +0100 Subject: [PATCH 145/212] fix test --- test/systems/edac_system.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/systems/edac_system.jl b/test/systems/edac_system.jl index b85ce7148..384508531 100644 --- a/test/systems/edac_system.jl +++ b/test/systems/edac_system.jl @@ -126,7 +126,7 @@ system = EntropicallyDampedSPHSystem(initial_condition, smoothing_kernel, smoothing_length, sound_speed) - show_compact = "EntropicallyDampedSPHSystem{2}(TrixiParticles.NoViscosity(), Val{:smoothing_kernel}(), [0.0, 0.0]) with 2 particles" + show_compact = "EntropicallyDampedSPHSystem{2}(NoViscosity(), Val{:smoothing_kernel}(), [0.0, 0.0]) with 2 particles" @test repr(system) == show_compact show_box = """ ┌──────────────────────────────────────────────────────────────────────────────────────────────────┐ From 61271d1d742809cd13d16fb8147ab8044b6b303a Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 14 Feb 2024 22:41:26 +0100 Subject: [PATCH 146/212] remove unused 'using' --- examples/postprocessing/postprocessing.jl | 3 --- 1 file changed, 3 deletions(-) diff --git a/examples/postprocessing/postprocessing.jl b/examples/postprocessing/postprocessing.jl index 00d1b29e9..52b3e87e2 100644 --- a/examples/postprocessing/postprocessing.jl +++ b/examples/postprocessing/postprocessing.jl @@ -1,7 +1,4 @@ using TrixiParticles -using JSON -using CSV -using DataFrames using Plots # Any function can be implemented and will be called every 10th timestep! See example below: From 71d2efa1912b0f21bb2e9e425182bdd2a490a541 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 14 Feb 2024 23:35:11 +0100 Subject: [PATCH 147/212] add simple test --- src/TrixiParticles.jl | 4 ++-- src/callbacks/post_process.jl | 6 +++--- test/callbacks/callbacks.jl | 1 + test/callbacks/postprocess.jl | 27 +++++++++++++++++++++++++++ 4 files changed, 33 insertions(+), 5 deletions(-) create mode 100644 test/callbacks/postprocess.jl diff --git a/src/TrixiParticles.jl b/src/TrixiParticles.jl index 6f5c49608..7c227273b 100644 --- a/src/TrixiParticles.jl +++ b/src/TrixiParticles.jl @@ -2,13 +2,13 @@ module TrixiParticles using Reexport: @reexport -using CSV +using CSV: CSV using Dates using DataFrames using DiffEqCallbacks: PeriodicCallback, PeriodicCallbackAffect using FastPow: @fastpow using ForwardDiff: ForwardDiff -using JSON +using JSON: JSON using LinearAlgebra: norm, dot, I, tr, inv, pinv, det using Morton: cartesian2morton using MuladdMacro: @muladd diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index e78bab871..bb162731a 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -87,7 +87,7 @@ function Base.show(io::IO, cb::DiscreteCallback{<:Any, <:PostprocessCallback}) @nospecialize cb # reduce precompilation time callback = cb.affect! print(io, "PostprocessCallback(interval=", callback.interval) - print(io, "functions=[") + print(io, ", functions=[") print(io, join(callback.func, ", ")) print(io, "])") end @@ -97,8 +97,8 @@ function Base.show(io::IO, <:PeriodicCallbackAffect{<:PostprocessCallback}}) @nospecialize cb # reduce precompilation time callback = cb.affect!.affect! - print(io, "PostprocessCallback(interval=", callback.interval) - print(io, "functions=[") + print(io, "PostprocessCallback(dt=", callback.interval) + print(io, ", functions=[") print(io, join(callback.func, ", ")) print(io, "])") end diff --git a/test/callbacks/callbacks.jl b/test/callbacks/callbacks.jl index 3eae738b3..3076b9274 100644 --- a/test/callbacks/callbacks.jl +++ b/test/callbacks/callbacks.jl @@ -1,4 +1,5 @@ @testset verbose=true "Callbacks" begin include("info.jl") include("stepsize.jl") + include("postprocess.jl") end diff --git a/test/callbacks/postprocess.jl b/test/callbacks/postprocess.jl new file mode 100644 index 000000000..edf9963a8 --- /dev/null +++ b/test/callbacks/postprocess.jl @@ -0,0 +1,27 @@ +@testset verbose=true "PostprocessCallback" begin + @testset verbose=true "show" begin + function example_function(v, u, t, system) + return 0 + end + + callback = PostprocessCallback(example_function, interval=10) + + show_compact = "PostprocessCallback(interval=10, functions=[example_function])" + @test repr(callback) == show_compact + + show_box = """ + ┌──────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ PostprocessCallback │ + │ ═══════════════════ │ + │ interval: ……………………………………………………… 10 │ + │ exclude boundary: ………………………………… yes │ + │ filename: ……………………………………………………… values │ + │ output directory: ………………………………… out │ + │ append timestamp: ………………………………… no │ + │ write json file: …………………………………… yes │ + │ write csv file: ……………………………………… yes │ + │ function1: …………………………………………………… example_function │ + └──────────────────────────────────────────────────────────────────────────────────────────────────┘""" + @test repr("text/plain", callback) == show_box + end +end From 5a35aa066727e72b9c69a5c49d7fc8a22851c4ff Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 15 Feb 2024 00:24:08 +0100 Subject: [PATCH 148/212] fix using statements --- examples/postprocessing/postprocessing.jl | 3 +++ test/Project.toml | 3 +++ test/test_util.jl | 3 +++ 3 files changed, 9 insertions(+) diff --git a/examples/postprocessing/postprocessing.jl b/examples/postprocessing/postprocessing.jl index 52b3e87e2..092560bb2 100644 --- a/examples/postprocessing/postprocessing.jl +++ b/examples/postprocessing/postprocessing.jl @@ -1,5 +1,8 @@ using TrixiParticles using Plots +using CSV +using DataFrames +#using JSON # Any function can be implemented and will be called every 10th timestep! See example below: function hello(v, u, t, system) diff --git a/test/Project.toml b/test/Project.toml index 6627d36c2..227b52aea 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -1,4 +1,7 @@ [deps] +CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" +DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" +JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" diff --git a/test/test_util.jl b/test/test_util.jl index d220849d6..8812f7d51 100644 --- a/test/test_util.jl +++ b/test/test_util.jl @@ -2,6 +2,9 @@ using Test using TrixiParticles using LinearAlgebra using Printf +using CSV: CSV +using DataFrames +using JSON: JSON using QuadGK: quadgk # For integration in smoothing kernel tests using Random: Random # For rectangular patch using Polyester: disable_polyester_threads # For `count_rhs_allocations` From 03b4b813ab52f50536345f3a04745b57927863c6 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 15 Feb 2024 02:33:26 +0100 Subject: [PATCH 149/212] ignore --- test/examples/examples.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/examples/examples.jl b/test/examples/examples.jl index 5998bdafa..32b89e2f8 100644 --- a/test/examples/examples.jl +++ b/test/examples/examples.jl @@ -202,7 +202,7 @@ @test sol.retcode == ReturnCode.Success end @trixi_testset "postprocessing/postprocessing.jl" begin - @test_nowarn_mod trixi_include(@__MODULE__, + @test_nowarn_mod additional_ignore_content=ignore_stderr trixi_include(@__MODULE__, joinpath(examples_dir(), "postprocessing", "postprocessing.jl")) @test sol.retcode == ReturnCode.Success From 4fc8d5c0b3011395e3a532b06472b592008c6f08 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 15 Feb 2024 11:42:13 +0100 Subject: [PATCH 150/212] format --- test/examples/examples.jl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/test/examples/examples.jl b/test/examples/examples.jl index 32b89e2f8..75c58efaa 100644 --- a/test/examples/examples.jl +++ b/test/examples/examples.jl @@ -203,8 +203,9 @@ end @trixi_testset "postprocessing/postprocessing.jl" begin @test_nowarn_mod additional_ignore_content=ignore_stderr trixi_include(@__MODULE__, - joinpath(examples_dir(), "postprocessing", - "postprocessing.jl")) + joinpath(examples_dir(), + "postprocessing", + "postprocessing.jl")) @test sol.retcode == ReturnCode.Success end end From 553358544c6feb31303e2936a5f8e24f7b66d796 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 15 Feb 2024 12:30:42 +0100 Subject: [PATCH 151/212] fix ignore string --- test/examples/examples.jl | 1 + 1 file changed, 1 insertion(+) diff --git a/test/examples/examples.jl b/test/examples/examples.jl index 75c58efaa..462a9ee07 100644 --- a/test/examples/examples.jl +++ b/test/examples/examples.jl @@ -202,6 +202,7 @@ @test sol.retcode == ReturnCode.Success end @trixi_testset "postprocessing/postprocessing.jl" begin + ignore_stderr = "*Writing postproccessing results to*" @test_nowarn_mod additional_ignore_content=ignore_stderr trixi_include(@__MODULE__, joinpath(examples_dir(), "postprocessing", From 481bc7967dd42ea3557d8065bb31d576c8008e46 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 15 Feb 2024 13:46:21 +0100 Subject: [PATCH 152/212] fix json reading in example --- examples/fluid/hydrostatic_water_column_2d.jl | 7 +++++-- examples/postprocessing/postprocessing.jl | 12 ++++++------ 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/examples/fluid/hydrostatic_water_column_2d.jl b/examples/fluid/hydrostatic_water_column_2d.jl index 2694c9ed0..3e23586d5 100644 --- a/examples/fluid/hydrostatic_water_column_2d.jl +++ b/examples/fluid/hydrostatic_water_column_2d.jl @@ -43,11 +43,14 @@ fluid_system = WeaklyCompressibleSPHSystem(tank.fluid, fluid_density_calculator, # ========================================================================================== # ==== Boundary +# This is to set another boundary density calculation with `trixi_include` +boundary_density_calculator = AdamiPressureExtrapolation() + # This is to set wall viscosity with `trixi_include` viscosity_wall = NoViscosity() boundary_model = BoundaryModelDummyParticles(tank.boundary.density, tank.boundary.mass, state_equation=state_equation, - AdamiPressureExtrapolation(), + boundary_density_calculator, smoothing_kernel, smoothing_length, viscosity=viscosity_wall) boundary_system = BoundarySPHSystem(tank.boundary, boundary_model) @@ -57,7 +60,7 @@ boundary_system = BoundarySPHSystem(tank.boundary, boundary_model) semi = Semidiscretization(fluid_system, boundary_system) ode = semidiscretize(semi, tspan) -info_callback = InfoCallback(interval=100) +info_callback = InfoCallback(interval=50) saving_callback = SolutionSavingCallback(dt=0.02, prefix="") # This is to easily add a new callback with `trixi_include` diff --git a/examples/postprocessing/postprocessing.jl b/examples/postprocessing/postprocessing.jl index 092560bb2..e4ff912c2 100644 --- a/examples/postprocessing/postprocessing.jl +++ b/examples/postprocessing/postprocessing.jl @@ -2,7 +2,7 @@ using TrixiParticles using Plots using CSV using DataFrames -#using JSON +using JSON # Any function can be implemented and will be called every 10th timestep! See example below: function hello(v, u, t, system) @@ -28,11 +28,11 @@ trixi_include(@__MODULE__, data = CSV.read("out/example_pressure_ekin.csv", DataFrame) # or alternatively using JSON -# file_content = read("out/example_pressure_ekin.csv", String) -# data = JSON.parse(file_content) -# time = data["ekin_fluid_1"]["time"] -# values_ekin = data["ekin_fluid_1"]["values"] -# values_avg_p = data["avg_p_fluid_1"]["values"] +file_content = read("out/example_pressure_ekin.json", String) +data_json = JSON.parse(file_content) +time = data_json["ekin_fluid_1"]["time"] +values_ekin = data_json["ekin_fluid_1"]["values"] +values_avg_p = data_json["avg_pressure_fluid_1"]["values"] # Create side-by-side subplots p1 = plot(data.time, data.ekin_fluid_1, label="kinetic energy", color=:blue, From 338b8d1c3d13ecb979fcf4a33a2aa523df1e3a1f Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 16 Feb 2024 00:21:56 +0100 Subject: [PATCH 153/212] update --- examples/postprocessing/postprocessing.jl | 10 +++--- src/TrixiParticles.jl | 4 +-- src/callbacks/post_process.jl | 39 +++++++++++------------ test/callbacks/postprocess.jl | 20 ++++++++++++ test/test_util.jl | 2 +- 5 files changed, 46 insertions(+), 29 deletions(-) diff --git a/examples/postprocessing/postprocessing.jl b/examples/postprocessing/postprocessing.jl index e4ff912c2..7a0d2536c 100644 --- a/examples/postprocessing/postprocessing.jl +++ b/examples/postprocessing/postprocessing.jl @@ -19,7 +19,7 @@ trixi_include(@__MODULE__, extra_callback=example_cb, tspan=(0.0, 0.1)); # Lets write the average pressure and kinetic energy every 0.01s -pp = PostprocessCallback(avg_pressure, ekin; dt=0.005, filename="example_pressure_ekin") +pp = PostprocessCallback(avg_pressure, kinetic_energy; dt=0.005, filename="example_pressure_ekin") trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "hydrostatic_water_column_2d.jl"), @@ -27,15 +27,15 @@ trixi_include(@__MODULE__, data = CSV.read("out/example_pressure_ekin.csv", DataFrame) -# or alternatively using JSON +# or alternatively using JSON (data is not used in the plot) file_content = read("out/example_pressure_ekin.json", String) data_json = JSON.parse(file_content) -time = data_json["ekin_fluid_1"]["time"] -values_ekin = data_json["ekin_fluid_1"]["values"] +time = data_json["kinetic_energy_fluid_1"]["time"] +values_ekin = data_json["kinetic_energy_fluid_1"]["values"] values_avg_p = data_json["avg_pressure_fluid_1"]["values"] # Create side-by-side subplots -p1 = plot(data.time, data.ekin_fluid_1, label="kinetic energy", color=:blue, +p1 = plot(data.time, data.kinetic_energy_fluid_1, label="kinetic energy", color=:blue, title="Kin. Energy over Time", xlabel="Time", ylabel="Kin. E") p2 = plot(data.time, data.avg_pressure_fluid_1, label="average pressure", color=:red, title="avg P over Time", xlabel="Time", ylabel="Pressure") diff --git a/src/TrixiParticles.jl b/src/TrixiParticles.jl index 7c227273b..3aa241248 100644 --- a/src/TrixiParticles.jl +++ b/src/TrixiParticles.jl @@ -4,7 +4,7 @@ using Reexport: @reexport using CSV: CSV using Dates -using DataFrames +using DataFrames: DataFrame using DiffEqCallbacks: PeriodicCallback, PeriodicCallbackAffect using FastPow: @fastpow using ForwardDiff: ForwardDiff @@ -66,7 +66,7 @@ export SourceTermDamping export ShepardKernelCorrection, KernelCorrection, AkinciFreeSurfaceCorrection, GradientCorrection, BlendedGradientCorrection, MixedKernelGradientCorrection export nparticles -export ekin, total_mass, max_pressure, min_pressure, avg_pressure, +export kinetic_energy, total_mass, max_pressure, min_pressure, avg_pressure, max_density, min_density, avg_density export interpolate_line, interpolate_point, interpolate_plane_3d, interpolate_plane_2d diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index bb162731a..251fb3f31 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -210,7 +210,7 @@ function (pp::PostprocessCallback)(integrator) end if isfinished(integrator) - pp(integrator, true) + write_postprocess_callback(pp) end # Tell OrdinaryDiffEq that u has not been modified @@ -221,11 +221,9 @@ end # that maps each key to separate arrays of times and values, sorted by time, and includes system name. function prepare_series_data!(data, post_callback) for (key, data_array) in post_callback.data - # Extracting times and values into separate arrays - # data_times = [data_.time for data_ in data_array] data_values = [value for value in data_array] - # the penultimate string in the key is the system_name + # The penultimate string in the key is the system_name system_name = split(key, '_')[end - 1] data[key] = create_series_dict(data_values, post_callback.times, system_name) @@ -252,8 +250,8 @@ function write_meta_data!(data) return data end -# After the simulation has finished, this function is called to write the data to a JSON file. -function (pp::PostprocessCallback)(integrator, finished::Bool) +# After the simulation has finished, this function is called to write the data to a JSON file +function write_postprocess_callback(pp::PostprocessCallback) if isempty(pp.data) return end @@ -271,16 +269,16 @@ function (pp::PostprocessCallback)(integrator, finished::Bool) if pp.write_json abs_file_path = joinpath(abspath(pp.output_directory), filename_json) - @info "Writing postproccessing results to $abs_file_path" + @info "Writing postprocessing results to $abs_file_path" open(abs_file_path, "w") do file - # indent by 4 spaces + # Indent by 4 spaces JSON.print(file, data, 4) end end if pp.write_csv abs_file_path = joinpath(abspath(pp.output_directory), filename_csv) - @info "Writing postproccessing results to $abs_file_path" + @info "Writing postprocessing results to $abs_file_path" write_csv(abs_file_path, data) end @@ -295,11 +293,14 @@ function write_csv(abs_file_path, data) break end end - df = DataFrame(time=times) # Initialize DataFrame with time column + + # Initialize DataFrame with time column + df = DataFrame(time=times) for (key, series) in data - # Ensure we only process data entries, excluding any meta data or non-data entries - if occursin("_", key) # A simple check to ensure we're dealing with data series + # Ensure we only process data entries, excluding any meta data or non-data entries. + # Metadata is stored as `data["meta"]`, while data entries contain `_$(system_name)` + if occursin("_", key) values = series["values"] # Add a new column to the DataFrame for each series of values df[!, Symbol(key)] = values @@ -318,21 +319,17 @@ function add_entry!(pp, entry_key, t, value, system_name) push!(entries, value) end -function ekin(v, u, t, system) - e_kin = 0.0 - for particle in each_moving_particle(system) +function kinetic_energy(v, u, t, system) + return sum(each_moving_particle(system)) do particle velocity = current_velocity(v, system, particle) - e_kin += 0.5 * system.mass[particle] * dot(velocity, velocity) + return 0.5 * system.mass[particle] * dot(velocity, velocity) end - return e_kin end function total_mass(v, u, t, system) - tm = 0.0 - for particle in each_moving_particle(system) - tm += system.mass[particle] + return sum(each_moving_particle(system)) do particle + return system.mass[particle] end - return tm end function max_pressure(v, u, t, system) diff --git a/test/callbacks/postprocess.jl b/test/callbacks/postprocess.jl index edf9963a8..0e850dd3e 100644 --- a/test/callbacks/postprocess.jl +++ b/test/callbacks/postprocess.jl @@ -23,5 +23,25 @@ │ function1: …………………………………………………… example_function │ └──────────────────────────────────────────────────────────────────────────────────────────────────┘""" @test repr("text/plain", callback) == show_box + + callback = PostprocessCallback(example_function, dt=0.1) + + show_compact = "PostprocessCallback(dt=0.1, functions=[example_function])" + @test repr(callback) == show_compact + + show_box = """ + ┌──────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ PostprocessCallback │ + │ ═══════════════════ │ + │ dt: ……………………………………………………………………… 0.1 │ + │ exclude boundary: ………………………………… yes │ + │ filename: ……………………………………………………… values │ + │ output directory: ………………………………… out │ + │ append timestamp: ………………………………… no │ + │ write json file: …………………………………… yes │ + │ write csv file: ……………………………………… yes │ + │ function1: …………………………………………………… example_function │ + └──────────────────────────────────────────────────────────────────────────────────────────────────┘""" + @test repr("text/plain", callback) == show_box end end diff --git a/test/test_util.jl b/test/test_util.jl index 8812f7d51..5937cc68f 100644 --- a/test/test_util.jl +++ b/test/test_util.jl @@ -3,7 +3,7 @@ using TrixiParticles using LinearAlgebra using Printf using CSV: CSV -using DataFrames +using DataFrames: DataFrame using JSON: JSON using QuadGK: quadgk # For integration in smoothing kernel tests using Random: Random # For rectangular patch From aae9f222222f839d86d080b8117f03ea5b2934d0 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 16 Feb 2024 01:00:44 +0100 Subject: [PATCH 154/212] update based on review comments --- Project.toml | 3 + examples/postprocessing/postprocessing.jl | 19 ++-- src/callbacks/post_process.jl | 107 +++++++++++----------- 3 files changed, 66 insertions(+), 63 deletions(-) diff --git a/Project.toml b/Project.toml index 4208ef6ba..7a6e56745 100644 --- a/Project.toml +++ b/Project.toml @@ -27,9 +27,12 @@ TrixiBase = "9a0f1c46-06d5-4909-a5a3-ce25d3fa3284" WriteVTK = "64499a7a-5c06-52f2-abe2-ccb03c286192" [compat] +CSV = "0.10" +DataFrames = "1.6" DiffEqCallbacks = "2.25" FastPow = "0.1" ForwardDiff = "0.10" +JSON = "0.21" Morton = "0.1" MuladdMacro = "0.2" Polyester = "0.7.5" diff --git a/examples/postprocessing/postprocessing.jl b/examples/postprocessing/postprocessing.jl index 7a0d2536c..f85c34f4b 100644 --- a/examples/postprocessing/postprocessing.jl +++ b/examples/postprocessing/postprocessing.jl @@ -4,12 +4,13 @@ using CSV using DataFrames using JSON -# Any function can be implemented and will be called every 10th timestep! See example below: +# Any custom function with the arguments `v, u, t, system` can be passed to the callback +# to be called every 10th timestep. See example below: function hello(v, u, t, system) - # will write "hello" and the current simulation time + # Will write "hello" and the current simulation time println("hello at ", t) - # value stored for output in the postprocessing output file + # Value stored for output in the postprocessing output file return 2 * t end example_cb = PostprocessCallback(hello; interval=10) @@ -27,7 +28,7 @@ trixi_include(@__MODULE__, data = CSV.read("out/example_pressure_ekin.csv", DataFrame) -# or alternatively using JSON (data is not used in the plot) +# Or, alternatively using JSON (data is not used in the plot) file_content = read("out/example_pressure_ekin.json", String) data_json = JSON.parse(file_content) time = data_json["kinetic_energy_fluid_1"]["time"] @@ -35,10 +36,10 @@ values_ekin = data_json["kinetic_energy_fluid_1"]["values"] values_avg_p = data_json["avg_pressure_fluid_1"]["values"] # Create side-by-side subplots -p1 = plot(data.time, data.kinetic_energy_fluid_1, label="kinetic energy", color=:blue, - title="Kin. Energy over Time", xlabel="Time", ylabel="Kin. E") -p2 = plot(data.time, data.avg_pressure_fluid_1, label="average pressure", color=:red, - title="avg P over Time", xlabel="Time", ylabel="Pressure") +p1 = plot(data.time, data.kinetic_energy_fluid_1, color=:blue, + title="Kinetic Energy", xlabel="Time", ylabel="Kinetic Energy") +p2 = plot(data.time, data.avg_pressure_fluid_1, color=:red, + title="average Pressure", xlabel="Time", ylabel="Pressure") # Combine plots into a single figure -plot(p1, p2, layout=(1, 2), legend=false) +plot(p1, p2, legend=false) diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 251fb3f31..95e9e94a5 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -1,8 +1,8 @@ """ PostprocessCallback(funcs...; interval::Integer=0, dt=0.0, exclude_boundary=true, filename="values", - output_directory="out", overwrite=true, write_csv=true, write_json=true) + output_directory="out", write_csv=true, write_json=true) -Create a callback for post-processing simulation data at regular intervals. +Create a callback to post-process simulation data at regular intervals. This callback allows for the execution of a user-defined function `func` at specified intervals during the simulation. The function is applied to the current state of the simulation, and its results can be saved or used for further analysis. The provided function cannot be @@ -11,24 +11,28 @@ anonymous as the function name will be used as part of the name of the value. The callback can be triggered either by a fixed number of time steps (`interval`) or by a fixed interval of simulation time (`dt`). +# Arguments +- `func...`: Functions to be executed at specified intervals during the simulation. + The functions must have the arguments `(v, u, t, system)`. + # Keywords - `interval=0`: Specifies the number of time steps between each invocation of the callback. If set to `0`, the callback will not be triggered based on time steps. - Either interval or dt can be set to something larger than 0. + Either `interval` or `dt` must be set to something larger than 0. - `dt=0.0`: Specifies the simulation time interval between each invocation of the callback. If set to `0.0`, the callback will not be triggered based on simulation time. - Either interval or dt can be set to something larger than 0. + Either `interval` or `dt` must be set to something larger than 0. - `exclude_boundary=true`: If set to `true`, boundary particles will be excluded from the post-processing. - `filename="values"`: The filename of the postprocessing files to be saved. - `output_directory="out"`: The path where the results of the post-processing will be saved. -- `write_csv=true`: If set to `true`, write an csv file. +- `write_csv=true`: If set to `true`, write a csv file. - `write_json=true`: If set to `true`, write a json file. - `append_timestep=false`: If set to `true`, the current timestamp will be added to the filename. # Examples ```julia function example_function(v, u, t, system) - println("test_func ", t) + println("test_func ", t) end # Create a callback that is triggered every 100 time steps @@ -56,7 +60,7 @@ function PostprocessCallback(funcs...; interval::Integer=0, dt=0.0, exclude_boun append_timestamp=false, write_csv=true, write_json=true) if dt > 0 && interval > 0 - throw(ArgumentError("Setting both interval and dt is not supported!")) + throw(ArgumentError("setting both `interval` and `dt` is not supported")) end if any(f -> occursin(r"^#(\d+)", string(f)) || occursin("->", string(f)), funcs) @@ -73,13 +77,13 @@ function PostprocessCallback(funcs...; interval::Integer=0, dt=0.0, exclude_boun if dt > 0 # Add a `tstop` every `dt`, and save the final solution. return PeriodicCallback(post_callback, dt, - initialize=initialize_post_callback!, + initialize=initialize_postprocess_callback!, save_positions=(false, false), final_affect=true) else # The first one is the condition, the second the affect! return DiscreteCallback(post_callback, post_callback, save_positions=(false, false), - initialize=initialize_post_callback!) + initialize=initialize_postprocess_callback!) end end @@ -152,22 +156,14 @@ function Base.show(io::IO, ::MIME"text/plain", end end -function initialize_post_callback!(cb, u, t, integrator) +function initialize_postprocess_callback!(cb, u, t, integrator) # The `PostprocessCallback` is either `cb.affect!` (with `DiscreteCallback`) # or `cb.affect!.affect!` (with `PeriodicCallback`). # Let recursive dispatch handle this. - initialize_post_callback!(cb.affect!, u, t, integrator) + initialize_postprocess_callback!(cb.affect!, u, t, integrator) end -function initialize_post_callback!(cb::PostprocessCallback, u, t, integrator) - - # Update systems to compute quantities like density and pressure. - semi = integrator.p - v_ode, u_ode = u.x - - # Update systems to compute quantities like density and pressure - update_systems_and_nhs(v_ode, u_ode, semi, t) - +function initialize_postprocess_callback!(cb::PostprocessCallback, u, t, integrator) # Apply the callback cb(integrator) return nothing @@ -180,7 +176,7 @@ function (pp::PostprocessCallback)(u, t, integrator) condition_integrator_interval(integrator, interval) end -# affect! function for an array of functions +# `affect!` function (pp::PostprocessCallback)(integrator) vu_ode = integrator.u v_ode, u_ode = vu_ode.x @@ -189,6 +185,9 @@ function (pp::PostprocessCallback)(integrator) filenames = system_names(semi.systems) new_data = false + # Update systems to compute quantities like density and pressure + update_systems_and_nhs(v_ode, u_ode, semi, t) + foreach_system(semi) do system if system isa BoundarySystem && pp.exclude_boundary return @@ -217,39 +216,6 @@ function (pp::PostprocessCallback)(integrator) u_modified!(integrator, false) end -# This function prepares the data for writing to a JSON file by creating a dictionary -# that maps each key to separate arrays of times and values, sorted by time, and includes system name. -function prepare_series_data!(data, post_callback) - for (key, data_array) in post_callback.data - data_values = [value for value in data_array] - - # The penultimate string in the key is the system_name - system_name = split(key, '_')[end - 1] - - data[key] = create_series_dict(data_values, post_callback.times, system_name) - end - - return data -end - -function create_series_dict(values, times, system_name="") - return Dict("type" => "series", - "datatype" => eltype(values), - "n_values" => length(values), - "system_name" => system_name, - "values" => values, - "time" => times) -end - -function write_meta_data!(data) - meta_data = Dict("solver_name" => "TrixiParticles.jl", - "solver_version" => get_git_hash(), - "julia_version" => string(VERSION)) - - data["meta"] = meta_data - return data -end - # After the simulation has finished, this function is called to write the data to a JSON file function write_postprocess_callback(pp::PostprocessCallback) if isempty(pp.data) @@ -284,6 +250,39 @@ function write_postprocess_callback(pp::PostprocessCallback) end end +# This function prepares the data for writing to a JSON file by creating a dictionary +# that maps each key to separate arrays of times and values, sorted by time, and includes system name. +function prepare_series_data!(data, post_callback) + for (key, data_array) in post_callback.data + data_values = [value for value in data_array] + + # The penultimate string in the key is the system_name + system_name = split(key, '_')[end - 1] + + data[key] = create_series_dict(data_values, post_callback.times, system_name) + end + + return data +end + +function create_series_dict(values, times, system_name="") + return Dict("type" => "series", + "datatype" => eltype(values), + "n_values" => length(values), + "system_name" => system_name, + "values" => values, + "time" => times) +end + +function write_meta_data!(data) + meta_data = Dict("solver_name" => "TrixiParticles.jl", + "solver_version" => get_git_hash(), + "julia_version" => string(VERSION)) + + data["meta"] = meta_data + return data +end + function write_csv(abs_file_path, data) times = Float64[] From 521b42e0fca470c84cf3e161a9e767e914078c02 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 16 Feb 2024 01:00:53 +0100 Subject: [PATCH 155/212] format --- examples/postprocessing/postprocessing.jl | 3 ++- src/callbacks/post_process.jl | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/examples/postprocessing/postprocessing.jl b/examples/postprocessing/postprocessing.jl index f85c34f4b..16c82792a 100644 --- a/examples/postprocessing/postprocessing.jl +++ b/examples/postprocessing/postprocessing.jl @@ -20,7 +20,8 @@ trixi_include(@__MODULE__, extra_callback=example_cb, tspan=(0.0, 0.1)); # Lets write the average pressure and kinetic energy every 0.01s -pp = PostprocessCallback(avg_pressure, kinetic_energy; dt=0.005, filename="example_pressure_ekin") +pp = PostprocessCallback(avg_pressure, kinetic_energy; dt=0.005, + filename="example_pressure_ekin") trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "hydrostatic_water_column_2d.jl"), diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 95e9e94a5..15e05eec0 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -293,7 +293,7 @@ function write_csv(abs_file_path, data) end end - # Initialize DataFrame with time column + # Initialize DataFrame with time column df = DataFrame(time=times) for (key, series) in data From f327cd01a2165b746a99ccf8f38d07d253231d87 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 16 Feb 2024 09:32:12 +0100 Subject: [PATCH 156/212] change funcs to keyword args --- examples/postprocessing/postprocessing.jl | 5 ++-- src/callbacks/post_process.jl | 31 ++++++++++++++--------- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/examples/postprocessing/postprocessing.jl b/examples/postprocessing/postprocessing.jl index 16c82792a..aa14dc514 100644 --- a/examples/postprocessing/postprocessing.jl +++ b/examples/postprocessing/postprocessing.jl @@ -13,15 +13,14 @@ function hello(v, u, t, system) # Value stored for output in the postprocessing output file return 2 * t end -example_cb = PostprocessCallback(hello; interval=10) +example_cb = PostprocessCallback(;interval=10, hello) trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "hydrostatic_water_column_2d.jl"), extra_callback=example_cb, tspan=(0.0, 0.1)); # Lets write the average pressure and kinetic energy every 0.01s -pp = PostprocessCallback(avg_pressure, kinetic_energy; dt=0.005, - filename="example_pressure_ekin") +pp = PostprocessCallback(; dt=0.005, filename="example_pressure_ekin", avg_pressure, kinetic_energy) trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "hydrostatic_water_column_2d.jl"), diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 15e05eec0..b40d0641c 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -1,6 +1,6 @@ """ - PostprocessCallback(funcs...; interval::Integer=0, dt=0.0, exclude_boundary=true, filename="values", - output_directory="out", write_csv=true, write_json=true) + PostprocessCallback(; interval::Integer=0, dt=0.0, exclude_boundary=true, filename="values", + output_directory="out", write_csv=true, write_json=true, funcs...) Create a callback to post-process simulation data at regular intervals. This callback allows for the execution of a user-defined function `func` at specified @@ -12,7 +12,7 @@ The callback can be triggered either by a fixed number of time steps (`interval` a fixed interval of simulation time (`dt`). # Arguments -- `func...`: Functions to be executed at specified intervals during the simulation. +- `funcs...`: Functions to be executed at specified intervals during the simulation. The functions must have the arguments `(v, u, t, system)`. # Keywords @@ -55,10 +55,13 @@ struct PostprocessCallback{I, F} write_json :: Bool end -function PostprocessCallback(funcs...; interval::Integer=0, dt=0.0, exclude_boundary=true, +function PostprocessCallback(; interval::Integer=0, dt=0.0, exclude_boundary=true, output_directory="out", filename="values", - append_timestamp=false, - write_csv=true, write_json=true) + append_timestamp=false, write_csv=true, write_json=true, funcs...) + if isempty(funcs) + throw(ArgumentError("`funcs` cannot be empty")) + end + if dt > 0 && interval > 0 throw(ArgumentError("setting both `interval` and `dt` is not supported")) end @@ -124,8 +127,10 @@ function Base.show(io::IO, ::MIME"text/plain", "write csv file" => callback.write_json ? "yes" : "no", ] - for (i, f) in enumerate(callback.func) - push!(setup, "function$i" => string(nameof(f))) + i = 0 + for (key, f) in callback.func + push!(setup, "function$i" => string(key)) + i+=1 end summary_box(io, "PostprocessCallback", setup) end @@ -149,8 +154,10 @@ function Base.show(io::IO, ::MIME"text/plain", "write csv file" => callback.write_json ? "yes" : "no", ] - for (i, f) in enumerate(callback.func) - push!(setup, "function$i" => string(nameof(f))) + i = 0 + for (key, f) in callback.func + push!(setup, "function$i" => string(key)) + i+=1 end summary_box(io, "PostprocessCallback", setup) end @@ -197,9 +204,9 @@ function (pp::PostprocessCallback)(integrator) v = wrap_v(v_ode, system, semi) u = wrap_u(u_ode, system, semi) - for f in pp.func + for (key, f) in pp.func result = f(v, u, t, system) - add_entry!(pp, string(nameof(f)), t, result, filenames[system_index]) + add_entry!(pp, string(key), t, result, filenames[system_index]) new_data = true end end From fd98f91eca594f33c25cb7b7b63a9a93611861e5 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 16 Feb 2024 09:32:54 +0100 Subject: [PATCH 157/212] fix docs --- src/callbacks/post_process.jl | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index b40d0641c..31b7ba285 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -11,11 +11,10 @@ anonymous as the function name will be used as part of the name of the value. The callback can be triggered either by a fixed number of time steps (`interval`) or by a fixed interval of simulation time (`dt`). -# Arguments -- `funcs...`: Functions to be executed at specified intervals during the simulation. - The functions must have the arguments `(v, u, t, system)`. # Keywords +- `funcs...`: Functions to be executed at specified intervals during the simulation. + The functions must have the arguments `(v, u, t, system)`. - `interval=0`: Specifies the number of time steps between each invocation of the callback. If set to `0`, the callback will not be triggered based on time steps. Either `interval` or `dt` must be set to something larger than 0. From 0008c526b6d6d5190c64fcaf5fdfcf296a75f6db Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 16 Feb 2024 09:33:03 +0100 Subject: [PATCH 158/212] format --- examples/postprocessing/postprocessing.jl | 5 +++-- src/callbacks/post_process.jl | 7 ++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/examples/postprocessing/postprocessing.jl b/examples/postprocessing/postprocessing.jl index aa14dc514..e4268fedc 100644 --- a/examples/postprocessing/postprocessing.jl +++ b/examples/postprocessing/postprocessing.jl @@ -13,14 +13,15 @@ function hello(v, u, t, system) # Value stored for output in the postprocessing output file return 2 * t end -example_cb = PostprocessCallback(;interval=10, hello) +example_cb = PostprocessCallback(; interval=10, hello) trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "hydrostatic_water_column_2d.jl"), extra_callback=example_cb, tspan=(0.0, 0.1)); # Lets write the average pressure and kinetic energy every 0.01s -pp = PostprocessCallback(; dt=0.005, filename="example_pressure_ekin", avg_pressure, kinetic_energy) +pp = PostprocessCallback(; dt=0.005, filename="example_pressure_ekin", avg_pressure, + kinetic_energy) trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "hydrostatic_water_column_2d.jl"), diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 31b7ba285..ff6c1c37d 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -56,7 +56,8 @@ end function PostprocessCallback(; interval::Integer=0, dt=0.0, exclude_boundary=true, output_directory="out", filename="values", - append_timestamp=false, write_csv=true, write_json=true, funcs...) + append_timestamp=false, write_csv=true, write_json=true, + funcs...) if isempty(funcs) throw(ArgumentError("`funcs` cannot be empty")) end @@ -129,7 +130,7 @@ function Base.show(io::IO, ::MIME"text/plain", i = 0 for (key, f) in callback.func push!(setup, "function$i" => string(key)) - i+=1 + i += 1 end summary_box(io, "PostprocessCallback", setup) end @@ -156,7 +157,7 @@ function Base.show(io::IO, ::MIME"text/plain", i = 0 for (key, f) in callback.func push!(setup, "function$i" => string(key)) - i+=1 + i += 1 end summary_box(io, "PostprocessCallback", setup) end From 3c6e9c5257e7929c69f6a81b1a0ca025b54ea113 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 16 Feb 2024 09:42:32 +0100 Subject: [PATCH 159/212] review comments --- examples/postprocessing/postprocessing.jl | 2 +- src/callbacks/post_process.jl | 69 ++++++----------------- 2 files changed, 18 insertions(+), 53 deletions(-) diff --git a/examples/postprocessing/postprocessing.jl b/examples/postprocessing/postprocessing.jl index e4268fedc..0d49df736 100644 --- a/examples/postprocessing/postprocessing.jl +++ b/examples/postprocessing/postprocessing.jl @@ -40,7 +40,7 @@ values_avg_p = data_json["avg_pressure_fluid_1"]["values"] p1 = plot(data.time, data.kinetic_energy_fluid_1, color=:blue, title="Kinetic Energy", xlabel="Time", ylabel="Kinetic Energy") p2 = plot(data.time, data.avg_pressure_fluid_1, color=:red, - title="average Pressure", xlabel="Time", ylabel="Pressure") + title="Average Pressure", xlabel="Time", ylabel="Pressure") # Combine plots into a single figure plot(p1, p2, legend=false) diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index ff6c1c37d..33605d91f 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -1,6 +1,7 @@ """ PostprocessCallback(; interval::Integer=0, dt=0.0, exclude_boundary=true, filename="values", - output_directory="out", write_csv=true, write_json=true, funcs...) + output_directory="out", append_timestamp=false, write_csv=true, + write_json=true, funcs...) Create a callback to post-process simulation data at regular intervals. This callback allows for the execution of a user-defined function `func` at specified @@ -145,7 +146,7 @@ function Base.show(io::IO, ::MIME"text/plain", else callback = cb.affect!.affect! setup = [ - "interval" => string(callback.interval), + "dt" => string(callback.interval), "exclude boundary" => callback.exclude_boundary ? "yes" : "no", "filename" => callback.filename, "output directory" => callback.output_directory, @@ -242,7 +243,7 @@ function write_postprocess_callback(pp::PostprocessCallback) if pp.write_json abs_file_path = joinpath(abspath(pp.output_directory), filename_json) - @info "Writing postprocessing results to $abs_file_path" + @info "Writing postprocessing results to $abs_file_path" open(abs_file_path, "w") do file # Indent by 4 spaces @@ -251,7 +252,7 @@ function write_postprocess_callback(pp::PostprocessCallback) end if pp.write_csv abs_file_path = joinpath(abspath(pp.output_directory), filename_csv) - @info "Writing postprocessing results to $abs_file_path" + @info "Writing postprocessing results to $abs_file_path" write_csv(abs_file_path, data) end @@ -339,71 +340,35 @@ function total_mass(v, u, t, system) end function max_pressure(v, u, t, system) - max_p = 0.0 - for particle in each_moving_particle(system) - pressure = particle_pressure(v, system, particle) - if max_p < pressure - max_p = pressure - end - end - return max_p + return maximum(particle -> particle_pressure(v, system, particle), each_moving_particle(system)) end function min_pressure(v, u, t, system) - min_p = typemax(Int64) - for particle in each_moving_particle(system) - pressure = particle_pressure(v, system, particle) - if min_p > pressure - min_p = pressure - end - end - return min_p + return minimum(particle -> particle_pressure(v, system, particle), each_moving_particle(system)) end function avg_pressure(v, u, t, system) - total_pressure = 0.0 - count = 0 - - for particle in each_moving_particle(system) - total_pressure += particle_pressure(v, system, particle) - count += 1 + if n_moving_particles(system) == 0 + return 0.0 end - avg_p = count > 0 ? total_pressure / count : 0.0 - return avg_p + sum_ = sum(particle -> particle_pressure(v, system, particle), each_moving_particle(system)) + return sum_ / n_moving_particles(system) end function max_density(v, u, t, system) - max_rho = 0.0 - for particle in each_moving_particle(system) - rho = particle_density(v, system, particle) - if max_rho < rho - max_rho = rho - end - end - return max_rho + return maximum(particle -> particle_density(v, system, particle), each_moving_particle(system)) end function min_density(v, u, t, system) - min_rho = typemax(Int64) - for particle in each_moving_particle(system) - rho = particle_density(v, system, particle) - if min_rho > rho - min_rho = rho - end - end - return min_rho + return minimum(particle -> particle_density(v, system, particle), each_moving_particle(system)) end function avg_density(v, u, t, system) - total_density = 0.0 - count = 0 - - for particle in each_moving_particle(system) - total_density += particle_density(v, system, particle) - count += 1 + if n_moving_particles(system) == 0 + return 0.0 end - avg_rho = count > 0 ? total_density / count : 0.0 - return avg_rho + sum_ = sum(particle -> particle_density(v, system, particle), each_moving_particle(system)) + return sum_ / n_moving_particles(system) end From 0c7a049c636b6f2b6c6a862c0436c8da7e88783e Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 16 Feb 2024 09:42:41 +0100 Subject: [PATCH 160/212] format --- src/callbacks/post_process.jl | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 33605d91f..902f4006e 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -340,11 +340,13 @@ function total_mass(v, u, t, system) end function max_pressure(v, u, t, system) - return maximum(particle -> particle_pressure(v, system, particle), each_moving_particle(system)) + return maximum(particle -> particle_pressure(v, system, particle), + each_moving_particle(system)) end function min_pressure(v, u, t, system) - return minimum(particle -> particle_pressure(v, system, particle), each_moving_particle(system)) + return minimum(particle -> particle_pressure(v, system, particle), + each_moving_particle(system)) end function avg_pressure(v, u, t, system) @@ -352,16 +354,19 @@ function avg_pressure(v, u, t, system) return 0.0 end - sum_ = sum(particle -> particle_pressure(v, system, particle), each_moving_particle(system)) + sum_ = sum(particle -> particle_pressure(v, system, particle), + each_moving_particle(system)) return sum_ / n_moving_particles(system) end function max_density(v, u, t, system) - return maximum(particle -> particle_density(v, system, particle), each_moving_particle(system)) + return maximum(particle -> particle_density(v, system, particle), + each_moving_particle(system)) end function min_density(v, u, t, system) - return minimum(particle -> particle_density(v, system, particle), each_moving_particle(system)) + return minimum(particle -> particle_density(v, system, particle), + each_moving_particle(system)) end function avg_density(v, u, t, system) @@ -369,6 +374,7 @@ function avg_density(v, u, t, system) return 0.0 end - sum_ = sum(particle -> particle_density(v, system, particle), each_moving_particle(system)) + sum_ = sum(particle -> particle_density(v, system, particle), + each_moving_particle(system)) return sum_ / n_moving_particles(system) end From 128ce2ebe361a7010303eede32842895cbcebf1e Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 16 Feb 2024 11:44:59 +0100 Subject: [PATCH 161/212] fix tests --- src/callbacks/post_process.jl | 18 ++++++++++++++---- test/callbacks/postprocess.jl | 5 +++-- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 902f4006e..33c71cf1c 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -96,7 +96,12 @@ function Base.show(io::IO, cb::DiscreteCallback{<:Any, <:PostprocessCallback}) callback = cb.affect! print(io, "PostprocessCallback(interval=", callback.interval) print(io, ", functions=[") - print(io, join(callback.func, ", ")) + print(io, keys(callback.func)[1]) + if length(callback.func) > 1 + for (key, f) in callback.func[2] + print(io, ", " * string(key)) + end + end print(io, "])") end @@ -107,7 +112,12 @@ function Base.show(io::IO, callback = cb.affect!.affect! print(io, "PostprocessCallback(dt=", callback.interval) print(io, ", functions=[") - print(io, join(callback.func, ", ")) + print(io, keys(callback.func)[1]) + if length(callback.func) > 1 + for (key, f) in callback.func[2] + print(io, ", " * string(key)) + end + end print(io, "])") end @@ -128,7 +138,7 @@ function Base.show(io::IO, ::MIME"text/plain", "write csv file" => callback.write_json ? "yes" : "no", ] - i = 0 + i = 1 for (key, f) in callback.func push!(setup, "function$i" => string(key)) i += 1 @@ -155,7 +165,7 @@ function Base.show(io::IO, ::MIME"text/plain", "write csv file" => callback.write_json ? "yes" : "no", ] - i = 0 + i = 1 for (key, f) in callback.func push!(setup, "function$i" => string(key)) i += 1 diff --git a/test/callbacks/postprocess.jl b/test/callbacks/postprocess.jl index 0e850dd3e..48f61b46b 100644 --- a/test/callbacks/postprocess.jl +++ b/test/callbacks/postprocess.jl @@ -1,10 +1,11 @@ +include("../test_util.jl") @testset verbose=true "PostprocessCallback" begin @testset verbose=true "show" begin function example_function(v, u, t, system) return 0 end - callback = PostprocessCallback(example_function, interval=10) + callback = PostprocessCallback(; interval=10, example_function) show_compact = "PostprocessCallback(interval=10, functions=[example_function])" @test repr(callback) == show_compact @@ -24,7 +25,7 @@ └──────────────────────────────────────────────────────────────────────────────────────────────────┘""" @test repr("text/plain", callback) == show_box - callback = PostprocessCallback(example_function, dt=0.1) + callback = PostprocessCallback(; dt=0.1, example_function) show_compact = "PostprocessCallback(dt=0.1, functions=[example_function])" @test repr(callback) == show_compact From 153d0e0d0253d19742f4bb51812f4857cd7b7706 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 16 Feb 2024 13:44:54 +0100 Subject: [PATCH 162/212] fix test --- src/callbacks/post_process.jl | 24 +++++------------------- src/callbacks/solution_saving.jl | 2 +- test/callbacks/postprocess.jl | 8 ++++---- 3 files changed, 10 insertions(+), 24 deletions(-) diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index 33c71cf1c..ab045691e 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -96,12 +96,7 @@ function Base.show(io::IO, cb::DiscreteCallback{<:Any, <:PostprocessCallback}) callback = cb.affect! print(io, "PostprocessCallback(interval=", callback.interval) print(io, ", functions=[") - print(io, keys(callback.func)[1]) - if length(callback.func) > 1 - for (key, f) in callback.func[2] - print(io, ", " * string(key)) - end - end + print(io, join(keys(callback.func), ", ")) print(io, "])") end @@ -112,12 +107,7 @@ function Base.show(io::IO, callback = cb.affect!.affect! print(io, "PostprocessCallback(dt=", callback.interval) print(io, ", functions=[") - print(io, keys(callback.func)[1]) - if length(callback.func) > 1 - for (key, f) in callback.func[2] - print(io, ", " * string(key)) - end - end + print(io, join(keys(callback.func), ", ")) print(io, "])") end @@ -138,10 +128,8 @@ function Base.show(io::IO, ::MIME"text/plain", "write csv file" => callback.write_json ? "yes" : "no", ] - i = 1 - for (key, f) in callback.func + for (i, key) in enumerate(keys(callback.func)) push!(setup, "function$i" => string(key)) - i += 1 end summary_box(io, "PostprocessCallback", setup) end @@ -165,10 +153,8 @@ function Base.show(io::IO, ::MIME"text/plain", "write csv file" => callback.write_json ? "yes" : "no", ] - i = 1 - for (key, f) in callback.func + for (i, key) in enumerate(keys(callback.func)) push!(setup, "function$i" => string(key)) - i += 1 end summary_box(io, "PostprocessCallback", setup) end @@ -191,7 +177,7 @@ end function (pp::PostprocessCallback)(u, t, integrator) (; interval) = pp - condition_integrator_interval(integrator, interval) + return condition_integrator_interval(integrator, interval) end # `affect!` diff --git a/src/callbacks/solution_saving.jl b/src/callbacks/solution_saving.jl index e73c083c2..d32cc88ac 100644 --- a/src/callbacks/solution_saving.jl +++ b/src/callbacks/solution_saving.jl @@ -127,7 +127,7 @@ end function (solution_callback::SolutionSavingCallback)(u, t, integrator) (; interval, save_final_solution) = solution_callback - condition_integrator_interval(integrator, interval, + return condition_integrator_interval(integrator, interval, save_final_solution=save_final_solution) end diff --git a/test/callbacks/postprocess.jl b/test/callbacks/postprocess.jl index 48f61b46b..0c65c2207 100644 --- a/test/callbacks/postprocess.jl +++ b/test/callbacks/postprocess.jl @@ -1,13 +1,12 @@ -include("../test_util.jl") @testset verbose=true "PostprocessCallback" begin @testset verbose=true "show" begin function example_function(v, u, t, system) return 0 end - callback = PostprocessCallback(; interval=10, example_function) + callback = PostprocessCallback(another_function=(v, u, t, system) -> 1; interval=10, example_function) - show_compact = "PostprocessCallback(interval=10, functions=[example_function])" + show_compact = "PostprocessCallback(interval=10, functions=[another_function, example_function])" @test repr(callback) == show_compact show_box = """ @@ -21,7 +20,8 @@ include("../test_util.jl") │ append timestamp: ………………………………… no │ │ write json file: …………………………………… yes │ │ write csv file: ……………………………………… yes │ - │ function1: …………………………………………………… example_function │ + │ function1: …………………………………………………… another_function │ + | function2: …………………………………………………… example_function │ └──────────────────────────────────────────────────────────────────────────────────────────────────┘""" @test repr("text/plain", callback) == show_box From 0e4a6ab60219c74e8b8868de2ef9e741d10a916b Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 16 Feb 2024 13:45:39 +0100 Subject: [PATCH 163/212] format --- src/callbacks/solution_saving.jl | 2 +- test/callbacks/postprocess.jl | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/callbacks/solution_saving.jl b/src/callbacks/solution_saving.jl index d32cc88ac..ab74a3cce 100644 --- a/src/callbacks/solution_saving.jl +++ b/src/callbacks/solution_saving.jl @@ -128,7 +128,7 @@ function (solution_callback::SolutionSavingCallback)(u, t, integrator) (; interval, save_final_solution) = solution_callback return condition_integrator_interval(integrator, interval, - save_final_solution=save_final_solution) + save_final_solution=save_final_solution) end # affect! diff --git a/test/callbacks/postprocess.jl b/test/callbacks/postprocess.jl index 0c65c2207..b8dee1cc0 100644 --- a/test/callbacks/postprocess.jl +++ b/test/callbacks/postprocess.jl @@ -4,7 +4,8 @@ return 0 end - callback = PostprocessCallback(another_function=(v, u, t, system) -> 1; interval=10, example_function) + callback = PostprocessCallback(another_function=(v, u, t, system) -> 1; interval=10, + example_function) show_compact = "PostprocessCallback(interval=10, functions=[another_function, example_function])" @test repr(callback) == show_compact From 3eb44a8517fb01dddbe77914ba33c4f0b5eba101 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 16 Feb 2024 15:15:57 +0100 Subject: [PATCH 164/212] review --- src/callbacks/post_process.jl | 4 ---- test/callbacks/postprocess.jl | 3 ++- validation/investigate_relaxation.jl | 30 ++++++++++++++-------------- 3 files changed, 17 insertions(+), 20 deletions(-) diff --git a/src/callbacks/post_process.jl b/src/callbacks/post_process.jl index ab045691e..33d544dc2 100644 --- a/src/callbacks/post_process.jl +++ b/src/callbacks/post_process.jl @@ -67,10 +67,6 @@ function PostprocessCallback(; interval::Integer=0, dt=0.0, exclude_boundary=tru throw(ArgumentError("setting both `interval` and `dt` is not supported")) end - if any(f -> occursin(r"^#(\d+)", string(f)) || occursin("->", string(f)), funcs) - throw(ArgumentError("Anonymous functions are not allowed!")) - end - if dt > 0 interval = Float64(dt) end diff --git a/test/callbacks/postprocess.jl b/test/callbacks/postprocess.jl index b8dee1cc0..749a70093 100644 --- a/test/callbacks/postprocess.jl +++ b/test/callbacks/postprocess.jl @@ -1,3 +1,4 @@ +include("../test_util.jl") @testset verbose=true "PostprocessCallback" begin @testset verbose=true "show" begin function example_function(v, u, t, system) @@ -22,7 +23,7 @@ │ write json file: …………………………………… yes │ │ write csv file: ……………………………………… yes │ │ function1: …………………………………………………… another_function │ - | function2: …………………………………………………… example_function │ + │ function2: …………………………………………………… example_function │ └──────────────────────────────────────────────────────────────────────────────────────────────────┘""" @test repr("text/plain", callback) == show_box diff --git a/validation/investigate_relaxation.jl b/validation/investigate_relaxation.jl index 61b461ee0..0a7df7962 100644 --- a/validation/investigate_relaxation.jl +++ b/validation/investigate_relaxation.jl @@ -5,25 +5,25 @@ using GLM using DataFrames using Printf -pp_cb = PostprocessCallback(ekin, max_pressure, avg_density; dt=0.025, +pp_cb = PostprocessCallback(; ekin=kinetic_energy, max_pressure, avg_density, dt=0.025, filename="relaxation", write_csv=false) -pp_damped_cb = PostprocessCallback(ekin, max_pressure, avg_density; dt=0.025, +pp_damped_cb = PostprocessCallback(; ekin=kinetic_energy, max_pressure, avg_density, dt=0.025, filename="relaxation_damped", write_csv=false) -trixi_include(@__MODULE__, - joinpath(examples_dir(), "fluid", "hydrostatic_water_column_2d.jl"), - extra_callback=pp_cb, tspan=(0.0, 5.0), saving_callback=nothing, - fluid_particle_spacing=0.02, - viscosity_wall=ViscosityAdami(nu=0.5)); +# trixi_include(@__MODULE__, +# joinpath(examples_dir(), "fluid", "hydrostatic_water_column_2d.jl"), +# extra_callback=pp_cb, tspan=(0.0, 5.0), saving_callback=nothing, +# fluid_particle_spacing=0.02, +# viscosity_wall=ViscosityAdami(nu=0.5)); -trixi_include(@__MODULE__, - joinpath(examples_dir(), "fluid", "hydrostatic_water_column_2d.jl"), - extra_callback=pp_damped_cb, tspan=(0.0, 5.0), - source_terms=SourceTermDamping(; - damping_coefficient=2.0), - saving_callback=nothing, fluid_particle_spacing=0.02, - viscosity_wall=ViscosityAdami(nu=0.5)); +# trixi_include(@__MODULE__, +# joinpath(examples_dir(), "fluid", "hydrostatic_water_column_2d.jl"), +# extra_callback=pp_damped_cb, tspan=(0.0, 5.0), +# source_terms=SourceTermDamping(; +# damping_coefficient=2.0), +# saving_callback=nothing, fluid_particle_spacing=0.02, +# viscosity_wall=ViscosityAdami(nu=0.5)); function calculate_regression(data::Vector{Float64}, t::Vector{Float64}) @assert length(data)==length(t) "Data and time vectors must have the same length" @@ -108,5 +108,5 @@ if file_path != "" annotate!(x_position_for_annotation, ylims(plot3)[2] - 0.003, @sprintf("gradient=%.5f", grad_avg_rho)) - plot(plot1, plot2, plot3, layout=(2, 2), legend=:bottom, size=(1200, 1200)) + plot(plot1, plot2, plot3, layout=(2, 2), size=(1200, 1200)) end From 78527825508c92fda90c5c8cb5710845b26c47d6 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 16 Feb 2024 15:16:08 +0100 Subject: [PATCH 165/212] format --- validation/investigate_relaxation.jl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/validation/investigate_relaxation.jl b/validation/investigate_relaxation.jl index 0a7df7962..be5179fd2 100644 --- a/validation/investigate_relaxation.jl +++ b/validation/investigate_relaxation.jl @@ -8,7 +8,8 @@ using Printf pp_cb = PostprocessCallback(; ekin=kinetic_energy, max_pressure, avg_density, dt=0.025, filename="relaxation", write_csv=false) -pp_damped_cb = PostprocessCallback(; ekin=kinetic_energy, max_pressure, avg_density, dt=0.025, +pp_damped_cb = PostprocessCallback(; ekin=kinetic_energy, max_pressure, avg_density, + dt=0.025, filename="relaxation_damped", write_csv=false) # trixi_include(@__MODULE__, From b11ad701e09b6bb52110f8074a391d532e699042 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 16 Feb 2024 16:00:11 +0100 Subject: [PATCH 166/212] fix plot --- validation/investigate_relaxation.jl | 37 ++++++++++------------------ 1 file changed, 13 insertions(+), 24 deletions(-) diff --git a/validation/investigate_relaxation.jl b/validation/investigate_relaxation.jl index be5179fd2..1537059f6 100644 --- a/validation/investigate_relaxation.jl +++ b/validation/investigate_relaxation.jl @@ -12,19 +12,19 @@ pp_damped_cb = PostprocessCallback(; ekin=kinetic_energy, max_pressure, avg_dens dt=0.025, filename="relaxation_damped", write_csv=false) -# trixi_include(@__MODULE__, -# joinpath(examples_dir(), "fluid", "hydrostatic_water_column_2d.jl"), -# extra_callback=pp_cb, tspan=(0.0, 5.0), saving_callback=nothing, -# fluid_particle_spacing=0.02, -# viscosity_wall=ViscosityAdami(nu=0.5)); - -# trixi_include(@__MODULE__, -# joinpath(examples_dir(), "fluid", "hydrostatic_water_column_2d.jl"), -# extra_callback=pp_damped_cb, tspan=(0.0, 5.0), -# source_terms=SourceTermDamping(; -# damping_coefficient=2.0), -# saving_callback=nothing, fluid_particle_spacing=0.02, -# viscosity_wall=ViscosityAdami(nu=0.5)); +trixi_include(@__MODULE__, + joinpath(examples_dir(), "fluid", "hydrostatic_water_column_2d.jl"), + extra_callback=pp_cb, tspan=(0.0, 5.0), saving_callback=nothing, + fluid_particle_spacing=0.02, + viscosity_wall=ViscosityAdami(nu=0.5)); + +trixi_include(@__MODULE__, + joinpath(examples_dir(), "fluid", "hydrostatic_water_column_2d.jl"), + extra_callback=pp_damped_cb, tspan=(0.0, 5.0), + source_terms=SourceTermDamping(; + damping_coefficient=2.0), + saving_callback=nothing, fluid_particle_spacing=0.02, + viscosity_wall=ViscosityAdami(nu=0.5)); function calculate_regression(data::Vector{Float64}, t::Vector{Float64}) @assert length(data)==length(t) "Data and time vectors must have the same length" @@ -71,8 +71,6 @@ if file_path != "" tl_avg_rho_damped, grad_avg_rho_damped = calculate_regression(avg_rho_damped, time_damped) - x_position_for_annotation = minimum(time) + (maximum(time) - minimum(time)) * 0.5 - plot1 = plot(time, [e_kin, tl_ekin], label=["undamped" "trend"], color=[:blue :red], linewidth=[2 2]) @@ -82,9 +80,6 @@ if file_path != "" plot!(title="Kinetic Energy of the Fluid", xlabel="Time [s]", ylabel="kinetic energy [J]") - annotate!(x_position_for_annotation, ylims(plot1)[2] - 0.0001, - @sprintf("gradient=%.5f", grad_ekin)) - plot2 = plot(time, [p_max, tl_p_max], label=["sim" "trend"], color=[:blue :red], linewidth=[2 2]) @@ -94,9 +89,6 @@ if file_path != "" plot!(title="Maximum Pressure of the Fluid", xlabel="Time [s]", ylabel="Max. Pressure [Pa]") - annotate!(x_position_for_annotation, ylims(plot2)[2] - 5.5, - @sprintf("gradient=%.5f", grad_p_max)) - plot3 = plot(time, [avg_rho, tl_avg_rho], label=["sim" "trend"], color=[:blue :red], linewidth=[2 2]) @@ -106,8 +98,5 @@ if file_path != "" plot!(title="Avg. Density of the Fluid", xlabel="Time [s]", ylabel="Avg. Density [kg/m^3]") - annotate!(x_position_for_annotation, ylims(plot3)[2] - 0.003, - @sprintf("gradient=%.5f", grad_avg_rho)) - plot(plot1, plot2, plot3, layout=(2, 2), size=(1200, 1200)) end From ba39f94dabfd1d3f309ec4a8e9b80095f5015e88 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 16 Feb 2024 17:25:45 +0100 Subject: [PATCH 167/212] fix test --- test/examples/examples.jl | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/test/examples/examples.jl b/test/examples/examples.jl index 462a9ee07..69a7ed849 100644 --- a/test/examples/examples.jl +++ b/test/examples/examples.jl @@ -202,11 +202,11 @@ @test sol.retcode == ReturnCode.Success end @trixi_testset "postprocessing/postprocessing.jl" begin - ignore_stderr = "*Writing postproccessing results to*" - @test_nowarn_mod additional_ignore_content=ignore_stderr trixi_include(@__MODULE__, - joinpath(examples_dir(), - "postprocessing", - "postprocessing.jl")) + ignore_stderr = [r"\[ Info: Writing postprocessing results to .*\n"] + @test_nowarn_mod trixi_include(@__MODULE__, + joinpath(examples_dir(), + "postprocessing", + "postprocessing.jl")) ignore_stderr @test sol.retcode == ReturnCode.Success end end From c43fcf203df3f5d090f6bbb51761b149af64194a Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 16 Feb 2024 17:51:51 +0100 Subject: [PATCH 168/212] remove include --- test/callbacks/postprocess.jl | 1 - 1 file changed, 1 deletion(-) diff --git a/test/callbacks/postprocess.jl b/test/callbacks/postprocess.jl index 749a70093..1d0dd9515 100644 --- a/test/callbacks/postprocess.jl +++ b/test/callbacks/postprocess.jl @@ -1,4 +1,3 @@ -include("../test_util.jl") @testset verbose=true "PostprocessCallback" begin @testset verbose=true "show" begin function example_function(v, u, t, system) From 93932c54c7c0a57258051bc49c5635e3af4a0c66 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 16 Feb 2024 19:47:52 +0100 Subject: [PATCH 169/212] fix test --- test/examples/examples.jl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/test/examples/examples.jl b/test/examples/examples.jl index 69a7ed849..17722d24e 100644 --- a/test/examples/examples.jl +++ b/test/examples/examples.jl @@ -202,11 +202,12 @@ @test sol.retcode == ReturnCode.Success end @trixi_testset "postprocessing/postprocessing.jl" begin - ignore_stderr = [r"\[ Info: Writing postprocessing results to .*\n"] @test_nowarn_mod trixi_include(@__MODULE__, joinpath(examples_dir(), "postprocessing", - "postprocessing.jl")) ignore_stderr + "postprocessing.jl")) [ + r"\[ Info: Writing postprocessing results to .*\n", + ] @test sol.retcode == ReturnCode.Success end end From 283e5f3d9121556957b51e517bdec382d494c7fb Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 20 Feb 2024 10:48:44 +0100 Subject: [PATCH 170/212] rm --- validation/general/investigate_relaxation.jl | 102 ------------------- 1 file changed, 102 deletions(-) delete mode 100644 validation/general/investigate_relaxation.jl diff --git a/validation/general/investigate_relaxation.jl b/validation/general/investigate_relaxation.jl deleted file mode 100644 index 1537059f6..000000000 --- a/validation/general/investigate_relaxation.jl +++ /dev/null @@ -1,102 +0,0 @@ -using TrixiParticles -using JSON -using Plots -using GLM -using DataFrames -using Printf - -pp_cb = PostprocessCallback(; ekin=kinetic_energy, max_pressure, avg_density, dt=0.025, - filename="relaxation", write_csv=false) - -pp_damped_cb = PostprocessCallback(; ekin=kinetic_energy, max_pressure, avg_density, - dt=0.025, - filename="relaxation_damped", write_csv=false) - -trixi_include(@__MODULE__, - joinpath(examples_dir(), "fluid", "hydrostatic_water_column_2d.jl"), - extra_callback=pp_cb, tspan=(0.0, 5.0), saving_callback=nothing, - fluid_particle_spacing=0.02, - viscosity_wall=ViscosityAdami(nu=0.5)); - -trixi_include(@__MODULE__, - joinpath(examples_dir(), "fluid", "hydrostatic_water_column_2d.jl"), - extra_callback=pp_damped_cb, tspan=(0.0, 5.0), - source_terms=SourceTermDamping(; - damping_coefficient=2.0), - saving_callback=nothing, fluid_particle_spacing=0.02, - viscosity_wall=ViscosityAdami(nu=0.5)); - -function calculate_regression(data::Vector{Float64}, t::Vector{Float64}) - @assert length(data)==length(t) "Data and time vectors must have the same length" - - df = DataFrame(Y=data, T=t) - # Perform linear regression - model = lm(@formula(Y~T), df) - - # Get the regression line values - trend = predict(model, df) - - # Extract the gradient of the trend line - gradient = coef(model)[2] - - return trend, gradient -end - -file_path = joinpath(pwd(), "out", "relaxation.json") -file_path_damped = joinpath(pwd(), "out", "relaxation_damped.json") - -function read_and_parse(file_path) - json_string = read(file_path, String) - json_data = JSON.parse(json_string) - - time = Vector{Float64}(json_data["ekin_fluid_1"]["time"]) - e_kin = Vector{Float64}(json_data["ekin_fluid_1"]["values"]) - p_max = Vector{Float64}(json_data["max_pressure_fluid_1"]["values"]) - avg_rho = Vector{Float64}(json_data["avg_density_fluid_1"]["values"]) - - return time, e_kin, p_max, avg_rho -end - -if file_path != "" - time, e_kin, p_max, avg_rho = read_and_parse(file_path) - time_damped, e_kin_damped, p_max_damped, avg_rho_damped = read_and_parse(file_path_damped) - - tl_ekin, grad_ekin = calculate_regression(e_kin, time) - tl_ekin_damped, grad_ekin_damped = calculate_regression(e_kin_damped, time_damped) - - tl_p_max, grad_p_max = calculate_regression(p_max, time) - tl_p_max_damped, grad_p_max_damped = calculate_regression(p_max_damped, time_damped) - - tl_avg_rho, grad_avg_rho = calculate_regression(avg_rho, time) - tl_avg_rho_damped, grad_avg_rho_damped = calculate_regression(avg_rho_damped, - time_damped) - - plot1 = plot(time, [e_kin, tl_ekin], label=["undamped" "trend"], - color=[:blue :red], linewidth=[2 2]) - - plot!(time_damped, [e_kin_damped, tl_ekin_damped], - label=["damped" "damped trend"], color=[:green :orange], linewidth=[2 2]) - - plot!(title="Kinetic Energy of the Fluid", xlabel="Time [s]", - ylabel="kinetic energy [J]") - - plot2 = plot(time, [p_max, tl_p_max], label=["sim" "trend"], color=[:blue :red], - linewidth=[2 2]) - - plot!(time_damped, [p_max_damped, tl_p_max_damped], label=["damped" "damped trend"], - color=[:green :orange], linewidth=[2 2]) - - plot!(title="Maximum Pressure of the Fluid", xlabel="Time [s]", - ylabel="Max. Pressure [Pa]") - - plot3 = plot(time, [avg_rho, tl_avg_rho], label=["sim" "trend"], color=[:blue :red], - linewidth=[2 2]) - - plot!(time_damped, [avg_rho_damped, tl_avg_rho_damped], label=["damped" "damped trend"], - color=[:green :orange], linewidth=[2 2]) - - plot!(title="Avg. Density of the Fluid", xlabel="Time [s]", - ylabel="Avg. Density [kg/m^3]") - - plot(plot1, plot2, plot3, layout=(2, 2), size=(1200, 1200)) -end From acd15a558c1781fdb1680ba895129fc7fa9fcc0a Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 20 Feb 2024 10:48:57 +0100 Subject: [PATCH 171/212] move --- validation/{ => general}/investigate_relaxation.jl | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename validation/{ => general}/investigate_relaxation.jl (100%) diff --git a/validation/investigate_relaxation.jl b/validation/general/investigate_relaxation.jl similarity index 100% rename from validation/investigate_relaxation.jl rename to validation/general/investigate_relaxation.jl From bc6d75a124b5bfe540fb8bf6df6e66ec97318f46 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 20 Feb 2024 10:50:22 +0100 Subject: [PATCH 172/212] add reference curves --- validation/oscillating_beam_2d/Turek_dx_T.csv | 886 +++++++++++++++++ validation/oscillating_beam_2d/Turek_dy_T.csv | 928 ++++++++++++++++++ 2 files changed, 1814 insertions(+) create mode 100644 validation/oscillating_beam_2d/Turek_dx_T.csv create mode 100644 validation/oscillating_beam_2d/Turek_dy_T.csv diff --git a/validation/oscillating_beam_2d/Turek_dx_T.csv b/validation/oscillating_beam_2d/Turek_dx_T.csv new file mode 100644 index 000000000..ddf73f253 --- /dev/null +++ b/validation/oscillating_beam_2d/Turek_dx_T.csv @@ -0,0 +1,886 @@ +time,displacement +0.0839,-0.000439 +0.095,-0.0007051 +0.1062,-0.0009808 +0.1173,-0.0012802 +0.1284,-0.0016337 +0.1396,-0.0021294 +0.1507,-0.0027992 +0.1619,-0.0033892 +0.173,-0.0039735 +0.1842,-0.0049021 +0.1953,-0.0062478 +0.2065,-0.0069126 +0.2176,-0.0074702 +0.2288,-0.0083288 +0.2399,-0.0096078 +0.2511,-0.0107608 +0.2622,-0.0118011 +0.2734,-0.0143095 +0.2845,-0.0153067 +0.2957,-0.0164922 +0.3068,-0.0176331 +0.318,-0.0187838 +0.3291,-0.0199336 +0.3403,-0.0210842 +0.3514,-0.0222159 +0.3626,-0.0234403 +0.3737,-0.0240734 +0.3849,-0.0246381 +0.396,-0.0255459 +0.4072,-0.0269703 +0.4183,-0.0275897 +0.4295,-0.028126 +0.4406,-0.0292083 +0.4517,-0.029067 +0.4629,-0.0288189 +0.474,-0.0284341 +0.4852,-0.0277854 +0.4963,-0.0267022 +0.5075,-0.0252161 +0.5186,-0.0245501 +0.5298,-0.0239743 +0.5409,-0.0228173 +0.5521,-0.0214747 +0.5632,-0.0201791 +0.5744,-0.0188809 +0.5855,-0.0175818 +0.5967,-0.0162831 +0.6078,-0.014985 +0.619,-0.0136835 +0.6301,-0.0123972 +0.6413,-0.0110465 +0.6524,-0.0099634 +0.6636,-0.0077027 +0.6747,-0.0073983 +0.6859,-0.0059685 +0.697,-0.0044787 +0.7082,-0.0038618 +0.7193,-0.0032249 +0.7305,-0.0023865 +0.7416,-0.0019273 +0.7528,-0.0016266 +0.7639,-0.0013598 +0.775,-0.001088 +0.7862,-0.0002557 +0.7973,-0.0002061 +0.8085,-0.0001724 +0.8196,-0.0001451 +0.8308,-0.0001219 +0.8419,-0.0001023 +0.8531,-8.58e-05 +0.8642,-7.25e-05 +0.8754,-6.22e-05 +0.8865,-5.52e-05 +0.8977,-5.18e-05 +0.9088,-5.23e-05 +0.92,-5.73e-05 +0.9311,-6.76e-05 +0.9423,-8.46e-05 +0.9534,-0.00011 +0.9646,-0.000147 +0.9757,-0.000201 +0.9869,-0.0002785 +0.998,-0.0003901 +1.0092,-0.000556 +1.0203,-0.0008227 +1.0315,-0.0012917 +1.0426,-0.0018736 +1.0538,-0.0024724 +1.0649,-0.0030872 +1.0761,-0.0036668 +1.0872,-0.0041851 +1.0983,-0.0047562 +1.1095,-0.0058715 +1.1206,-0.0066093 +1.1318,-0.007158 +1.1429,-0.0078841 +1.1541,-0.0105106 +1.1652,-0.011535 +1.1764,-0.0127231 +1.1875,-0.0138621 +1.1987,-0.0150143 +1.2098,-0.016163 +1.221,-0.0173126 +1.2321,-0.0184621 +1.2433,-0.0196113 +1.2544,-0.0207606 +1.2656,-0.0219135 +1.2767,-0.0230382 +1.2879,-0.0242817 +1.299,-0.0249261 +1.3102,-0.0254881 +1.3213,-0.0263648 +1.3325,-0.0277982 +1.3436,-0.0284731 +1.3548,-0.0289001 +1.3659,-0.0291098 +1.3771,-0.0290556 +1.3882,-0.0287369 +1.3994,-0.0281813 +1.4105,-0.0272163 +1.4216,-0.0258025 +1.4328,-0.024407 +1.4439,-0.0237266 +1.4551,-0.0231201 +1.4662,-0.021914 +1.4774,-0.0206459 +1.4885,-0.0193482 +1.4997,-0.0180391 +1.5108,-0.0168203 +1.522,-0.0151374 +1.5331,-0.0137718 +1.5443,-0.0113696 +1.5554,-0.0103061 +1.5666,-0.0089368 +1.5777,-0.0077025 +1.5889,-0.0062417 +1.6,-0.0055443 +1.6112,-0.0049466 +1.6223,-0.0037233 +1.6335,-0.0029788 +1.6446,-0.0024004 +1.6558,-0.0017912 +1.6669,-0.0013992 +1.6781,-0.00113 +1.6892,-0.0009167 +1.7004,-0.0007389 +1.7115,-0.0005888 +1.7227,-0.0004622 +1.7338,-0.0003565 +1.7449,-0.0002702 +1.7561,-0.0002019 +1.7672,-0.0001508 +1.7784,-0.0001162 +1.7895,-9.74e-05 +1.8007,-9.36e-05 +1.8118,-0.000103 +1.823,-0.0001237 +1.8341,-0.0001547 +1.8453,-0.0001952 +1.8564,-0.0002446 +1.8676,-0.0003027 +1.8787,-0.0003697 +1.8899,-0.0004458 +1.901,-0.0005319 +1.9122,-0.0006295 +1.9233,-0.0007416 +1.9345,-0.0008748 +1.9456,-0.001046 +1.9568,-0.001306 +1.9679,-0.0020171 +1.9791,-0.002665 +1.9902,-0.0032166 +2.0014,-0.0043437 +2.0125,-0.0050362 +2.0237,-0.0055852 +2.0348,-0.0064951 +2.046,-0.0077743 +2.0571,-0.0088907 +2.0682,-0.0100505 +2.0794,-0.0111971 +2.0905,-0.0123467 +2.1017,-0.0134981 +2.1128,-0.0146409 +2.124,-0.0158114 +2.1351,-0.0169107 +2.1463,-0.0193152 +2.1574,-0.0203926 +2.1686,-0.0215256 +2.1797,-0.0227423 +2.1909,-0.0233422 +2.202,-0.0239155 +2.2132,-0.0250495 +2.2243,-0.0257314 +2.2355,-0.0262795 +2.2466,-0.0273577 +2.2578,-0.0280927 +2.2689,-0.0286081 +2.2801,-0.0291797 +2.2912,-0.0288181 +2.3024,-0.028416 +2.3135,-0.0279446 +2.3247,-0.0273097 +2.3358,-0.0261996 +2.347,-0.0248466 +2.3581,-0.0235574 +2.3693,-0.022257 +2.3804,-0.0209585 +2.3915,-0.0196598 +2.4027,-0.0183611 +2.4138,-0.0170624 +2.425,-0.0157637 +2.4361,-0.014465 +2.4473,-0.0131663 +2.4584,-0.0118677 +2.4696,-0.0105684 +2.4807,-0.0092722 +2.4919,-0.0079638 +2.503,-0.0067013 +2.5142,-0.0052929 +2.5253,-0.0045343 +2.5365,-0.003952 +2.5476,-0.0033575 +2.5588,-0.0027096 +2.5699,-0.002028 +2.5811,-0.0014874 +2.5922,-0.0010728 +2.6034,-0.0007615 +2.6145,-0.000531 +2.6257,-0.0003625 +2.6368,-0.0002429 +2.648,-0.0001617 +2.6591,-0.0001072 +2.6703,-7.18e-05 +2.6814,-5.1e-05 +2.6926,-4.14e-05 +2.7037,-4.1e-05 +2.7148,-4.78e-05 +2.726,-6.05e-05 +2.7371,-7.79e-05 +2.7483,-9.91e-05 +2.7594,-0.0001238 +2.7706,-0.0001532 +2.7817,-0.0001888 +2.7929,-0.0002327 +2.804,-0.0002876 +2.8152,-0.0003581 +2.8263,-0.0004517 +2.8375,-0.0005842 +2.8486,-0.0007921 +2.8598,-0.0011481 +2.8709,-0.0017583 +2.8821,-0.0023846 +2.8932,-0.0029514 +2.9044,-0.0035238 +2.9155,-0.0040917 +2.9267,-0.0046359 +2.9378,-0.0052333 +2.949,-0.0062103 +2.9601,-0.007445 +2.9713,-0.0085715 +2.9824,-0.0097274 +2.9936,-0.0108775 +3.0047,-0.0120181 +3.0159,-0.0132 +3.027,-0.0142613 +3.0381,-0.0167407 +3.0493,-0.0177539 +3.0604,-0.018925 +3.0716,-0.0200712 +3.0827,-0.0212224 +3.0939,-0.0223515 +3.105,-0.023584 +3.1162,-0.024202 +3.1273,-0.0247683 +3.1385,-0.0258372 +3.1496,-0.0266449 +3.1608,-0.0271859 +3.1719,-0.0277141 +3.1831,-0.0282985 +3.1942,-0.0290834 +3.2054,-0.0289702 +3.2165,-0.0285759 +3.2277,-0.028079 +3.2388,-0.027446 +3.25,-0.0263731 +3.2611,-0.0249999 +3.2723,-0.0237138 +3.2834,-0.0224127 +3.2946,-0.0211144 +3.3057,-0.0198157 +3.3169,-0.0185169 +3.328,-0.0172182 +3.3392,-0.0159195 +3.3503,-0.0146208 +3.3614,-0.0133222 +3.3726,-0.0120234 +3.3837,-0.0107251 +3.3949,-0.0094247 +3.406,-0.0081323 +3.4172,-0.0068106 +3.4283,-0.0055974 +3.4395,-0.0041126 +3.4506,-0.0036172 +3.4618,-0.0032343 +3.4729,-0.0028342 +3.4841,-0.0022638 +3.4952,-0.0015926 +3.5064,-0.0011218 +3.5175,-0.0007924 +3.5287,-0.0005566 +3.5398,-0.0003899 +3.551,-0.0002758 +3.5621,-0.0001979 +3.5733,-0.0001449 +3.5844,-0.0001099 +3.5956,-8.8e-05 +3.6067,-7.58e-05 +3.6179,-7.08e-05 +3.629,-7.1e-05 +3.6402,-7.53e-05 +3.6513,-8.38e-05 +3.6625,-9.72e-05 +3.6736,-0.000116 +3.6847,-0.0001411 +3.6959,-0.000174 +3.707,-0.0002163 +3.7182,-0.0002708 +3.7293,-0.0003422 +3.7405,-0.000439 +3.7516,-0.000578 +3.7628,-0.0007844 +3.7739,-0.0011067 +3.7851,-0.0016216 +3.7962,-0.0022305 +3.8074,-0.0028113 +3.8185,-0.0033459 +3.8297,-0.0039515 +3.8408,-0.005095 +3.852,-0.0057934 +3.8631,-0.0063441 +3.8743,-0.007198 +3.8854,-0.0084619 +3.8966,-0.0095806 +3.9077,-0.0107421 +3.9189,-0.0118794 +3.93,-0.0130627 +3.9412,-0.0141219 +3.9523,-0.0166037 +3.9635,-0.0176152 +3.9746,-0.0187873 +3.9858,-0.0199333 +3.9969,-0.0210842 +4.008,-0.0222145 +4.0192,-0.0234436 +4.0303,-0.0240595 +4.0415,-0.0246267 +4.0526,-0.0257016 +4.0638,-0.0265011 +4.0749,-0.0270422 +4.0861,-0.0275759 +4.0972,-0.0281653 +4.1084,-0.0289085 +4.1195,-0.0289749 +4.1307,-0.0286216 +4.1418,-0.0281299 +4.153,-0.0274953 +4.1641,-0.0264291 +4.1753,-0.0250513 +4.1864,-0.0237659 +4.1976,-0.0224647 +4.2087,-0.0211663 +4.2199,-0.0198676 +4.231,-0.0185689 +4.2422,-0.0172702 +4.2533,-0.0159715 +4.2645,-0.0146728 +4.2756,-0.0133741 +4.2868,-0.0120754 +4.2979,-0.0107768 +4.3091,-0.0094776 +4.3202,-0.0081808 +4.3313,-0.0068749 +4.3425,-0.0056022 +4.3536,-0.0042296 +4.3648,-0.0034327 +4.3759,-0.0028862 +4.3871,-0.0024425 +4.3982,-0.0020373 +4.4094,-0.0016339 +4.4205,-0.0012246 +4.4317,-0.0008773 +4.4428,-0.00062 +4.454,-0.000439 +4.4651,-0.0003136 +4.4763,-0.0002241 +4.4874,-0.000159 +4.4986,-0.0001117 +4.5097,-7.79e-05 +4.5209,-5.48e-05 +4.532,-4.02e-05 +4.5432,-3.27e-05 +4.5543,-3.1e-05 +4.5655,-3.51e-05 +4.5766,-4.52e-05 +4.5878,-6.18e-05 +4.5989,-8.58e-05 +4.6101,-0.0001184 +4.6212,-0.0001612 +4.6324,-0.0002172 +4.6435,-0.0002908 +4.6546,-0.0003905 +4.6658,-0.0005332 +4.6769,-0.0007434 +4.6881,-0.0010675 +4.6992,-0.001575 +4.7104,-0.0021793 +4.7215,-0.0027635 +4.7327,-0.0032991 +4.7438,-0.0039046 +4.755,-0.0050496 +4.7661,-0.0057421 +4.7773,-0.0062932 +4.7884,-0.0071788 +4.7996,-0.0084656 +4.8107,-0.0095795 +4.8219,-0.0107424 +4.833,-0.0118796 +4.8442,-0.0130617 +4.8553,-0.0141245 +4.8665,-0.0165533 +4.8776,-0.0175698 +4.8888,-0.0187413 +4.8999,-0.0198874 +4.9111,-0.0210381 +4.9222,-0.0221688 +4.9334,-0.0233969 +4.9445,-0.0240115 +4.9557,-0.024579 +4.9668,-0.0256616 +4.9779,-0.0264454 +4.9891,-0.0269888 +5.0002,-0.0275503 +5.0114,-0.0281536 +5.0225,-0.0287217 +5.0337,-0.0290495 +5.0448,-0.0286864 +5.056,-0.0280882 +5.0671,-0.027473 +5.0783,-0.0264521 +5.0894,-0.0250484 +5.1006,-0.0237665 +5.1117,-0.0224646 +5.1229,-0.0211663 +5.134,-0.0198676 +5.1452,-0.0185691 +5.1563,-0.0172685 +5.1675,-0.0159812 +5.1786,-0.0147301 +5.1898,-0.0134245 +5.2009,-0.0121279 +5.2121,-0.0108278 +5.2232,-0.0095329 +5.2344,-0.0082199 +5.2455,-0.0069748 +5.2567,-0.0055203 +5.2678,-0.0048541 +5.279,-0.0042513 +5.2901,-0.0029614 +5.3012,-0.0024678 +5.3124,-0.0020936 +5.3235,-0.0016873 +5.3347,-0.0011703 +5.3458,-0.0007938 +5.357,-0.0005753 +5.3681,-0.000439 +5.3793,-0.0003483 +5.3904,-0.0002827 +5.4016,-0.0002329 +5.4127,-0.0001943 +5.4239,-0.0001641 +5.435,-0.0001406 +5.4462,-0.0001225 +5.4573,-0.000109 +5.4685,-9.93e-05 +5.4796,-9.29e-05 +5.4908,-8.93e-05 +5.5019,-8.89e-05 +5.5131,-9.39e-05 +5.5242,-0.0001076 +5.5354,-0.0001349 +5.5465,-0.0001832 +5.5577,-0.0002634 +5.5688,-0.0003906 +5.58,-0.0005817 +5.5911,-0.0008437 +5.6023,-0.0011792 +5.6134,-0.0015843 +5.6245,-0.0020498 +5.6357,-0.0026771 +5.6468,-0.003834 +5.658,-0.0045576 +5.6691,-0.005096 +5.6803,-0.0056204 +5.6914,-0.0062177 +5.7026,-0.0071731 +5.7137,-0.0084115 +5.7249,-0.0095362 +5.736,-0.0106957 +5.7472,-0.0118335 +5.7583,-0.0130168 +5.7695,-0.0140754 +5.7806,-0.0165582 +5.7918,-0.0175688 +5.8029,-0.0187419 +5.8141,-0.0198869 +5.8252,-0.0210363 +5.8364,-0.0221892 +5.8475,-0.0233175 +5.8587,-0.0245493 +5.8698,-0.025249 +5.881,-0.0258016 +5.8921,-0.0263581 +5.9033,-0.0269583 +5.9144,-0.0275973 +5.9256,-0.028192 +5.9367,-0.0286331 +5.9478,-0.0288755 +5.959,-0.028891 +5.9701,-0.0286232 +5.9813,-0.0276999 +5.9924,-0.0263244 +6.0036,-0.0249185 +6.0147,-0.0242266 +6.0259,-0.0236243 +6.037,-0.0224456 +6.0482,-0.0211125 +6.0593,-0.0198159 +6.0705,-0.0185087 +6.0816,-0.0172781 +6.0928,-0.015639 +6.1039,-0.0142775 +6.1151,-0.0118364 +6.1262,-0.0107716 +6.1374,-0.0094163 +6.1485,-0.0081225 +6.1597,-0.006856 +6.1708,-0.0054484 +6.182,-0.0046811 +6.1931,-0.0041006 +6.2043,-0.003522 +6.2154,-0.0028678 +6.2266,-0.0021055 +6.2377,-0.001584 +6.2489,-0.0012274 +6.26,-0.0009482 +6.2711,-0.0007214 +6.2823,-0.0005369 +6.2934,-0.0003899 +6.3046,-0.0002769 +6.3157,-0.0001921 +6.3269,-0.0001299 +6.338,-8.61e-05 +6.3492,-5.7e-05 +6.3603,-3.99e-05 +6.3715,-3.25e-05 +6.3826,-3.28e-05 +6.3938,-3.96e-05 +6.4049,-5.31e-05 +6.4161,-7.38e-05 +6.4272,-0.0001022 +6.4384,-0.0001398 +6.4495,-0.0001883 +6.4607,-0.0002506 +6.4718,-0.0003312 +6.483,-0.000439 +6.4941,-0.0005908 +6.5053,-0.0008098 +6.5164,-0.0011361 +6.5276,-0.0016239 +6.5387,-0.0022167 +6.5499,-0.0028101 +6.561,-0.003349 +6.5722,-0.0039523 +6.5833,-0.0050954 +6.5944,-0.0057897 +6.6056,-0.0063406 +6.6167,-0.0072241 +6.6279,-0.0085118 +6.639,-0.0096254 +6.6502,-0.0107884 +6.6613,-0.0119253 +6.6725,-0.0131085 +6.6836,-0.0141683 +6.6948,-0.0166494 +6.7059,-0.0176615 +6.7171,-0.0188332 +6.7282,-0.0199793 +6.7394,-0.0211302 +6.7505,-0.0222608 +6.7617,-0.0234888 +6.7728,-0.024115 +6.784,-0.0246802 +6.7951,-0.0256715 +6.8063,-0.0265613 +6.8174,-0.0270764 +6.8286,-0.0274741 +6.8397,-0.0278387 +6.8509,-0.0282329 +6.862,-0.0288952 +6.8732,-0.0285613 +6.8843,-0.0281663 +6.8955,-0.0276935 +6.9066,-0.0270543 +6.9177,-0.02594 +6.9289,-0.024587 +6.94,-0.0232976 +6.9512,-0.0219973 +6.9623,-0.0206988 +6.9735,-0.0194001 +6.9846,-0.0181014 +6.9958,-0.0168027 +7.0069,-0.015504 +7.0181,-0.0142052 +7.0292,-0.0129066 +7.0404,-0.0116075 +7.0515,-0.0103107 +7.0627,-0.0090043 +7.0738,-0.0077479 +7.085,-0.0064606 +7.0961,-0.0051929 +7.1073,-0.0038047 +7.1184,-0.0030803 +7.1296,-0.0024977 +7.1407,-0.001932 +7.1519,-0.0015227 +7.163,-0.0012295 +7.1742,-0.0009978 +7.1853,-0.0008047 +7.1965,-0.0006409 +7.2076,-0.0005016 +7.2188,-0.0003839 +7.2299,-0.0002861 +7.241,-0.000207 +7.2522,-0.0001456 +7.2633,-0.0001007 +7.2745,-6.99e-05 +7.2856,-5.09e-05 +7.2968,-4.21e-05 +7.3079,-4.27e-05 +7.3191,-5.17e-05 +7.3302,-6.9e-05 +7.3414,-9.43e-05 +7.3525,-0.000128 +7.3637,-0.0001712 +7.3748,-0.0002264 +7.386,-0.0003004 +7.3971,-0.0004077 +7.4083,-0.0005744 +7.4194,-0.0008237 +7.4306,-0.0011343 +7.4417,-0.0015053 +7.4529,-0.0019967 +7.464,-0.0031193 +7.4752,-0.0038357 +7.4863,-0.0043401 +7.4975,-0.004853 +7.5086,-0.0054613 +7.5198,-0.0064471 +7.5309,-0.0076734 +7.5421,-0.0088017 +7.5532,-0.0099578 +7.5643,-0.0111052 +7.5755,-0.0122554 +7.5866,-0.0134041 +7.5978,-0.0145554 +7.6089,-0.0156993 +7.6201,-0.0168649 +7.6312,-0.0179792 +7.6424,-0.0203132 +7.6535,-0.0214609 +7.6647,-0.0225768 +7.6758,-0.0238059 +7.687,-0.0244878 +7.6981,-0.0250405 +7.7093,-0.0256075 +7.7204,-0.0262086 +7.7316,-0.0268166 +7.7427,-0.0274051 +7.7539,-0.0279602 +7.765,-0.028396 +7.7762,-0.0286199 +7.7873,-0.0285684 +7.7985,-0.0282632 +7.8096,-0.0277289 +7.8208,-0.0265859 +7.8319,-0.0257718 +7.8431,-0.0251847 +7.8542,-0.0240926 +7.8654,-0.0227238 +7.8765,-0.0214131 +7.8876,-0.0201117 +7.8988,-0.0187906 +7.9099,-0.0160828 +7.9211,-0.0149799 +7.9322,-0.0136205 +7.9434,-0.0123387 +7.9545,-0.0110357 +7.9657,-0.0097373 +7.9768,-0.0084416 +7.988,-0.0071307 +7.9991,-0.0058768 +8.0103,-0.0044583 +8.0214,-0.00377 +8.0326,-0.0031668 +8.0437,-0.00237 +8.0549,-0.0018793 +8.066,-0.0015627 +8.0772,-0.0012895 +8.0883,-0.0010201 +8.0995,-0.000689 +8.1106,-0.0002645 +8.1218,-0.0002083 +8.1329,-0.0001735 +8.1441,-0.0001469 +8.1552,-0.0001253 +8.1664,-0.0001078 +8.1775,-9.38e-05 +8.1887,-8.31e-05 +8.1998,-7.59e-05 +8.2109,-7.22e-05 +8.2221,-7.23e-05 +8.2332,-7.67e-05 +8.2444,-8.58e-05 +8.2555,-0.0001006 +8.2667,-0.0001223 +8.2778,-0.000153 +8.289,-0.0001957 +8.3001,-0.0002562 +8.3113,-0.0003408 +8.3224,-0.0004598 +8.3336,-0.0006322 +8.3447,-0.0008985 +8.3559,-0.0013406 +8.367,-0.0019226 +8.3782,-0.0025248 +8.3893,-0.0030666 +8.4005,-0.0036712 +8.4116,-0.0048176 +8.4228,-0.0055053 +8.4339,-0.0060567 +8.4451,-0.0069515 +8.4562,-0.0082351 +8.4674,-0.0093497 +8.4785,-0.0105126 +8.4897,-0.0116491 +8.5008,-0.0128339 +8.512,-0.0138885 +8.5231,-0.0163568 +8.5342,-0.017343 +8.5454,-0.0184935 +8.5565,-0.0207722 +8.5677,-0.0219593 +8.5788,-0.0231583 +8.59,-0.0237815 +8.6011,-0.0243469 +8.6123,-0.0254003 +8.6234,-0.0262602 +8.6346,-0.0267814 +8.6457,-0.0272095 +8.6569,-0.0276029 +8.668,-0.0279914 +8.6792,-0.0284018 +8.6903,-0.0286896 +8.7015,-0.0286562 +8.7126,-0.0284251 +8.7238,-0.0280505 +8.7349,-0.0272511 +8.7461,-0.0257083 +8.7572,-0.0244456 +8.7684,-0.0231392 +8.7795,-0.0218418 +8.7907,-0.0205429 +8.8018,-0.0192442 +8.813,-0.0179455 +8.8241,-0.0166467 +8.8353,-0.0153489 +8.8464,-0.0140458 +8.8575,-0.0127696 +8.8687,-0.0115094 +8.8798,-0.010204 +8.891,-0.0089065 +8.9021,-0.0076091 +8.9133,-0.0063043 +8.9244,-0.0050273 +8.9356,-0.0036692 +8.9467,-0.0028673 +8.9579,-0.0023354 +8.969,-0.0019056 +8.9802,-0.0015054 +8.9913,-0.0010876 +9.0025,-0.0006422 +9.0136,-0.0004224 +9.0248,-0.0003219 +9.0359,-0.000264 +9.0471,-0.0002254 +9.0582,-0.0001983 +9.0694,-0.0001789 +9.0805,-0.0001651 +9.0917,-0.0001557 +9.1028,-0.0001496 +9.114,-0.0001463 +9.1251,-0.0001453 +9.1363,-0.0001468 +9.1474,-0.000151 +9.1586,-0.0001582 +9.1697,-0.0001691 +9.1808,-0.0001845 +9.192,-0.0002055 +9.2031,-0.0002341 +9.2143,-0.0002738 +9.2254,-0.0003325 +9.2366,-0.0004259 +9.2477,-0.0005914 +9.2589,-0.0009161 +9.27,-0.0014462 +9.2812,-0.0020909 +9.2923,-0.0027131 +9.3035,-0.0032853 +9.3146,-0.0038319 +9.3258,-0.0044355 +9.3369,-0.0053993 +9.3481,-0.0067609 +9.3592,-0.0074334 +9.3704,-0.0079904 +9.3815,-0.0088309 +9.3927,-0.0101147 +9.4038,-0.0112655 +9.415,-0.0123115 +9.4261,-0.0148092 +9.4373,-0.0158276 +9.4484,-0.0169619 +9.4596,-0.0193561 +9.4707,-0.020439 +9.4819,-0.0215872 +9.493,-0.0227251 +9.5041,-0.0239427 +9.5153,-0.0246353 +9.5264,-0.0251854 +9.5376,-0.0257374 +9.5487,-0.0263377 +9.5599,-0.0270073 +9.571,-0.0275541 +9.5822,-0.0279382 +9.5933,-0.0282407 +9.6045,-0.0284818 +9.6156,-0.0286253 +9.6268,-0.0283863 +9.6379,-0.0277841 +9.6491,-0.0271682 +9.6602,-0.0261407 +9.6714,-0.0247374 +9.6825,-0.0234542 +9.6937,-0.022154 +9.7048,-0.0208535 +9.716,-0.0196057 +9.7271,-0.0183462 +9.7383,-0.0168067 +9.7494,-0.015457 +9.7606,-0.0129279 +9.7717,-0.0118652 +9.7829,-0.0105042 +9.794,-0.0092218 +9.8051,-0.0079169 +9.8163,-0.006628 +9.8274,-0.0053366 +9.8386,-0.0044901 +9.8497,-0.0038512 +9.8609,-0.0031597 +9.872,-0.0019807 +9.8832,-0.0015927 +9.8943,-0.0013343 +9.9055,-0.0011138 +9.9166,-0.0009115 +9.9278,-0.0007192 +9.9389,-0.0005319 \ No newline at end of file diff --git a/validation/oscillating_beam_2d/Turek_dy_T.csv b/validation/oscillating_beam_2d/Turek_dy_T.csv new file mode 100644 index 000000000..aad17832c --- /dev/null +++ b/validation/oscillating_beam_2d/Turek_dy_T.csv @@ -0,0 +1,928 @@ +time,displacement +0.0186,-0.002784 +0.0293,0.000333 +0.04,0.001606 +0.0508,0.001085 +0.0615,-0.00069 +0.0722,-0.003322 +0.0829,-0.006564 +0.0937,-0.010259 +0.1044,-0.014302 +0.1151,-0.018621 +0.1258,-0.023166 +0.1366,-0.027898 +0.1473,-0.032779 +0.158,-0.037749 +0.1688,-0.042758 +0.1795,-0.047769 +0.1902,-0.052754 +0.2009,-0.05769 +0.2117,-0.062558 +0.2224,-0.067341 +0.2331,-0.072027 +0.2438,-0.076601 +0.2546,-0.081054 +0.2653,-0.085375 +0.276,-0.089553 +0.2868,-0.093579 +0.2975,-0.097445 +0.3082,-0.10114 +0.3189,-0.104657 +0.3297,-0.107986 +0.3404,-0.111119 +0.3511,-0.114045 +0.3618,-0.116756 +0.3726,-0.119242 +0.3833,-0.121493 +0.394,-0.123499 +0.4048,-0.125247 +0.4155,-0.126728 +0.4262,-0.127928 +0.4369,-0.128836 +0.4477,-0.129436 +0.4584,-0.129715 +0.4691,-0.129656 +0.4799,-0.129244 +0.4906,-0.12846 +0.5013,-0.127284 +0.512,-0.125702 +0.5228,-0.123728 +0.5335,-0.12138 +0.5442,-0.118682 +0.5549,-0.115655 +0.5657,-0.112324 +0.5764,-0.108713 +0.5871,-0.104846 +0.5979,-0.100751 +0.6086,-0.096454 +0.6193,-0.091981 +0.63,-0.087361 +0.6408,-0.082621 +0.6515,-0.077789 +0.6622,-0.072892 +0.6729,-0.06796 +0.6837,-0.06302 +0.6944,-0.058099 +0.7051,-0.053224 +0.7159,-0.048423 +0.7266,-0.043721 +0.7373,-0.039144 +0.748,-0.034717 +0.7588,-0.030463 +0.7695,-0.026407 +0.7802,-0.022569 +0.7909,-0.018971 +0.8017,-0.015634 +0.8124,-0.012576 +0.8231,-0.009816 +0.8339,-0.007371 +0.8446,-0.005256 +0.8553,-0.003486 +0.866,-0.002076 +0.8768,-0.001038 +0.8875,-0.000384 +0.8982,-0.000124 +0.9089,-0.000268 +0.9197,-0.000819 +0.9304,-0.001758 +0.9411,-0.003055 +0.9519,-0.004685 +0.9626,-0.006622 +0.9733,-0.008845 +0.984,-0.01133 +0.9948,-0.014055 +1.0055,-0.017002 +1.0162,-0.02015 +1.0269,-0.023481 +1.0377,-0.026976 +1.0484,-0.030618 +1.0591,-0.03439 +1.0699,-0.038275 +1.0806,-0.042257 +1.0913,-0.046321 +1.102,-0.05045 +1.1128,-0.05463 +1.1235,-0.058845 +1.1342,-0.06308 +1.1449,-0.06732 +1.1557,-0.071551 +1.1664,-0.075756 +1.1771,-0.079922 +1.1879,-0.084034 +1.1986,-0.088075 +1.2093,-0.092031 +1.22,-0.095886 +1.2308,-0.099623 +1.2415,-0.103228 +1.2522,-0.106683 +1.2629,-0.10997 +1.2737,-0.113074 +1.2844,-0.115974 +1.2951,-0.118652 +1.3059,-0.121089 +1.3166,-0.123265 +1.3273,-0.125157 +1.338,-0.126744 +1.3488,-0.128001 +1.3595,-0.128905 +1.3702,-0.129428 +1.3809,-0.129544 +1.3917,-0.129228 +1.4024,-0.128486 +1.4131,-0.12733 +1.4239,-0.125775 +1.4346,-0.123837 +1.4453,-0.121533 +1.456,-0.118881 +1.4668,-0.115901 +1.4775,-0.112614 +1.4882,-0.109042 +1.4989,-0.10521 +1.5097,-0.101142 +1.5204,-0.096864 +1.5311,-0.092401 +1.5419,-0.087781 +1.5526,-0.083033 +1.5633,-0.078184 +1.574,-0.073264 +1.5848,-0.068301 +1.5955,-0.063324 +1.6062,-0.058362 +1.6169,-0.053444 +1.6277,-0.048597 +1.6384,-0.04385 +1.6491,-0.039229 +1.6599,-0.03476 +1.6706,-0.030469 +1.6813,-0.02638 +1.692,-0.022516 +1.7028,-0.018898 +1.7135,-0.015548 +1.7242,-0.012485 +1.7349,-0.009728 +1.7457,-0.007292 +1.7564,-0.005193 +1.7671,-0.003447 +1.7779,-0.002065 +1.7886,-0.00106 +1.7993,-0.000441 +1.81,-0.000218 +1.8208,-0.000395 +1.8315,-0.000953 +1.8422,-0.001864 +1.8529,-0.003103 +1.8637,-0.004648 +1.8744,-0.006475 +1.8851,-0.008565 +1.8959,-0.010897 +1.9066,-0.013454 +1.9173,-0.016216 +1.928,-0.019167 +1.9388,-0.022291 +1.9495,-0.025572 +1.9602,-0.028996 +1.9709,-0.032546 +1.9817,-0.03621 +1.9924,-0.039972 +2.0031,-0.043821 +2.0139,-0.047741 +2.0246,-0.05172 +2.0353,-0.055745 +2.046,-0.059802 +2.0568,-0.06388 +2.0675,-0.067964 +2.0782,-0.072042 +2.0889,-0.076102 +2.0997,-0.080128 +2.1104,-0.084109 +2.1211,-0.088031 +2.1319,-0.091878 +2.1426,-0.095638 +2.1533,-0.099296 +2.164,-0.102835 +2.1748,-0.10624 +2.1855,-0.109495 +2.1962,-0.112583 +2.2069,-0.115484 +2.2177,-0.118181 +2.2284,-0.120653 +2.2391,-0.122878 +2.2499,-0.124834 +2.2606,-0.126497 +2.2713,-0.12784 +2.282,-0.128834 +2.2928,-0.12945 +2.3035,-0.129654 +2.3142,-0.129417 +2.3249,-0.128737 +2.3357,-0.127622 +2.3464,-0.126081 +2.3571,-0.124126 +2.3679,-0.121772 +2.3786,-0.119034 +2.3893,-0.115932 +2.4,-0.112486 +2.4108,-0.108719 +2.4215,-0.104657 +2.4322,-0.100327 +2.4429,-0.09576 +2.4537,-0.090986 +2.4644,-0.086038 +2.4751,-0.080951 +2.4859,-0.07576 +2.4966,-0.070501 +2.5073,-0.06521 +2.518,-0.059923 +2.5288,-0.054676 +2.5395,-0.049505 +2.5502,-0.044443 +2.5609,-0.039525 +2.5717,-0.03478 +2.5824,-0.030239 +2.5931,-0.02593 +2.6039,-0.021879 +2.6146,-0.018109 +2.6253,-0.014641 +2.636,-0.011495 +2.6468,-0.008687 +2.6575,-0.006234 +2.6682,-0.004146 +2.6789,-0.002436 +2.6897,-0.001112 +2.7004,-0.000181 +2.7111,0.000351 +2.7219,0.000481 +2.7326,0.000215 +2.7433,-0.000417 +2.754,-0.001387 +2.7648,-0.002666 +2.7755,-0.004231 +2.7862,-0.006059 +2.7969,-0.008129 +2.8077,-0.010421 +2.8184,-0.012918 +2.8291,-0.015601 +2.8399,-0.018456 +2.8506,-0.021467 +2.8613,-0.024619 +2.872,-0.0279 +2.8828,-0.031294 +2.8935,-0.034791 +2.9042,-0.038378 +2.9149,-0.042043 +2.9257,-0.045774 +2.9364,-0.04956 +2.9471,-0.053391 +2.9579,-0.057254 +2.9686,-0.06114 +2.9793,-0.065037 +2.99,-0.068936 +3.0008,-0.072824 +3.0115,-0.076691 +3.0222,-0.080527 +3.0329,-0.084319 +3.0437,-0.088056 +3.0544,-0.091727 +3.0651,-0.09532 +3.0759,-0.098821 +3.0866,-0.102218 +3.0973,-0.105498 +3.108,-0.108645 +3.1188,-0.111644 +3.1295,-0.114481 +3.1402,-0.117137 +3.1509,-0.119595 +3.1617,-0.121834 +3.1724,-0.123835 +3.1831,-0.125573 +3.1939,-0.127025 +3.2046,-0.128163 +3.2153,-0.128958 +3.226,-0.129374 +3.2368,-0.129378 +3.2475,-0.128948 +3.2582,-0.128084 +3.2689,-0.126791 +3.2797,-0.125072 +3.2904,-0.122938 +3.3011,-0.120396 +3.3119,-0.117462 +3.3226,-0.114151 +3.3333,-0.110483 +3.344,-0.10648 +3.3548,-0.102168 +3.3655,-0.097577 +3.3762,-0.092737 +3.3869,-0.087685 +3.3977,-0.082457 +3.4084,-0.077093 +3.4191,-0.071633 +3.4299,-0.066121 +3.4406,-0.060598 +3.4513,-0.055109 +3.462,-0.049694 +3.4728,-0.044396 +3.4835,-0.039253 +3.4942,-0.034305 +3.5049,-0.029585 +3.5157,-0.025126 +3.5264,-0.020958 +3.5371,-0.017106 +3.5479,-0.013594 +3.5586,-0.010443 +3.5693,-0.007668 +3.58,-0.005284 +3.5908,-0.003301 +3.6015,-0.001729 +3.6122,-0.000574 +3.6229,0.000162 +3.6337,0.000475 +3.6444,0.000369 +3.6551,-0.000131 +3.6659,-0.000989 +3.6766,-0.002175 +3.6873,-0.00366 +3.698,-0.005418 +3.7088,-0.007426 +3.7195,-0.009662 +3.7302,-0.012107 +3.7409,-0.014743 +3.7517,-0.017551 +3.7624,-0.020517 +3.7731,-0.023624 +3.7839,-0.02686 +3.7946,-0.03021 +3.8053,-0.033662 +3.816,-0.037202 +3.8268,-0.04082 +3.8375,-0.044504 +3.8482,-0.048243 +3.8589,-0.052025 +3.8697,-0.055841 +3.8804,-0.05968 +3.8911,-0.063531 +3.9019,-0.067385 +3.9126,-0.07123 +3.9233,-0.075057 +3.934,-0.078856 +3.9448,-0.082615 +3.9555,-0.086325 +3.9662,-0.089974 +3.9769,-0.093551 +3.9877,-0.097045 +3.9984,-0.100444 +4.0091,-0.103736 +4.0199,-0.106907 +4.0306,-0.109944 +4.0413,-0.112834 +4.052,-0.11556 +4.0628,-0.118107 +4.0735,-0.120458 +4.0842,-0.122594 +4.0949,-0.124496 +4.1057,-0.126141 +4.1164,-0.127508 +4.1271,-0.12857 +4.1379,-0.129299 +4.1486,-0.129664 +4.1593,-0.129631 +4.17,-0.129185 +4.1808,-0.128327 +4.1915,-0.12706 +4.2022,-0.125389 +4.2129,-0.12332 +4.2237,-0.120864 +4.2344,-0.118033 +4.2451,-0.114839 +4.2559,-0.111301 +4.2666,-0.107439 +4.2773,-0.103275 +4.288,-0.098835 +4.2988,-0.094147 +4.3095,-0.089242 +4.3202,-0.084155 +4.3309,-0.07892 +4.3417,-0.073575 +4.3524,-0.06816 +4.3631,-0.062714 +4.3739,-0.057279 +4.3846,-0.051894 +4.3953,-0.0466 +4.406,-0.041437 +4.4168,-0.036442 +4.4275,-0.031652 +4.4382,-0.027101 +4.449,-0.02282 +4.4597,-0.018839 +4.4704,-0.015183 +4.4811,-0.011876 +4.4919,-0.008938 +4.5026,-0.006387 +4.5133,-0.004237 +4.524,-0.0025 +4.5348,-0.001186 +4.5455,-0.000301 +4.5562,0.000151 +4.567,0.000166 +4.5777,-0.000237 +4.5884,-0.001022 +4.5991,-0.002156 +4.6099,-0.00361 +4.6206,-0.005357 +4.6313,-0.007371 +4.642,-0.009631 +4.6528,-0.012114 +4.6635,-0.0148 +4.6742,-0.017673 +4.685,-0.020714 +4.6957,-0.023906 +4.7064,-0.027235 +4.7171,-0.030686 +4.7279,-0.034245 +4.7386,-0.037898 +4.7493,-0.041632 +4.76,-0.045435 +4.7708,-0.049294 +4.7815,-0.053198 +4.7922,-0.057135 +4.803,-0.061092 +4.8137,-0.065059 +4.8244,-0.069024 +4.8351,-0.072975 +4.8459,-0.076902 +4.8566,-0.080792 +4.8673,-0.084633 +4.878,-0.088414 +4.8888,-0.092123 +4.8995,-0.095746 +4.9102,-0.099271 +4.921,-0.102684 +4.9317,-0.105971 +4.9424,-0.109117 +4.9531,-0.112108 +4.9639,-0.114926 +4.9746,-0.117555 +4.9853,-0.119975 +4.996,-0.122168 +5.0068,-0.124112 +5.0175,-0.125784 +5.0282,-0.12716 +5.039,-0.128211 +5.0497,-0.12891 +5.0604,-0.129222 +5.0711,-0.129114 +5.0819,-0.128575 +5.0926,-0.127608 +5.1033,-0.126219 +5.114,-0.124416 +5.1248,-0.122206 +5.1355,-0.119604 +5.1462,-0.116623 +5.157,-0.11328 +5.1677,-0.109596 +5.1784,-0.105592 +5.1891,-0.101295 +5.1999,-0.096733 +5.2106,-0.091936 +5.2213,-0.086937 +5.232,-0.081771 +5.2428,-0.076476 +5.2535,-0.071089 +5.2642,-0.06565 +5.275,-0.060199 +5.2857,-0.054778 +5.2964,-0.049424 +5.3071,-0.044179 +5.3179,-0.039079 +5.3286,-0.034163 +5.3393,-0.029464 +5.35,-0.025014 +5.3608,-0.020845 +5.3715,-0.016983 +5.3822,-0.013453 +5.393,-0.010278 +5.4037,-0.007476 +5.4144,-0.005065 +5.4251,-0.003057 +5.4359,-0.001465 +5.4466,-0.000297 +5.4573,0.00044 +5.468,0.000741 +5.4788,0.000607 +5.4895,6.4e-05 +5.5002,-0.000852 +5.511,-0.00211 +5.5217,-0.003681 +5.5324,-0.005539 +5.5431,-0.007658 +5.5539,-0.010018 +5.5646,-0.012597 +5.5753,-0.015374 +5.586,-0.018333 +5.5968,-0.021456 +5.6075,-0.024727 +5.6182,-0.028129 +5.629,-0.031649 +5.6397,-0.035272 +5.6504,-0.038984 +5.6611,-0.042773 +5.6719,-0.046625 +5.6826,-0.050528 +5.6933,-0.05447 +5.704,-0.058439 +5.7148,-0.062423 +5.7255,-0.06641 +5.7362,-0.07039 +5.747,-0.074349 +5.7577,-0.078276 +5.7684,-0.08216 +5.7791,-0.085989 +5.7899,-0.089749 +5.8006,-0.09343 +5.8113,-0.097018 +5.822,-0.100501 +5.8328,-0.103864 +5.8435,-0.107093 +5.8542,-0.110175 +5.865,-0.113093 +5.8757,-0.115832 +5.8864,-0.118374 +5.8971,-0.120703 +5.9079,-0.122797 +5.9186,-0.124638 +5.9293,-0.126204 +5.94,-0.12747 +5.9508,-0.128411 +5.9615,-0.129 +5.9722,-0.129206 +5.983,-0.129002 +5.9937,-0.128387 +6.0044,-0.127366 +6.0151,-0.125946 +6.0259,-0.124137 +6.0366,-0.121951 +6.0473,-0.119399 +6.058,-0.116498 +6.0688,-0.113265 +6.0795,-0.109719 +6.0902,-0.10588 +6.101,-0.101774 +6.1117,-0.097425 +6.1224,-0.09286 +6.1331,-0.088109 +6.1439,-0.083202 +6.1546,-0.07817 +6.1653,-0.073048 +6.176,-0.067867 +6.1868,-0.062663 +6.1975,-0.05747 +6.2082,-0.052322 +6.219,-0.047252 +6.2297,-0.042295 +6.2404,-0.037481 +6.2511,-0.032842 +6.2619,-0.028407 +6.2726,-0.024205 +6.2833,-0.02026 +6.294,-0.016596 +6.3048,-0.013236 +6.3155,-0.0102 +6.3262,-0.007505 +6.337,-0.005166 +6.3477,-0.003199 +6.3584,-0.001613 +6.3691,-0.000419 +6.3799,0.000375 +6.3906,0.000762 +6.4013,0.000739 +6.412,0.000324 +6.4228,-0.000454 +6.4335,-0.001566 +6.4442,-0.002986 +6.455,-0.004689 +6.4657,-0.006654 +6.4764,-0.008858 +6.4871,-0.011283 +6.4979,-0.013911 +6.5086,-0.016725 +6.5193,-0.019707 +6.53,-0.022843 +6.5408,-0.026118 +6.5515,-0.029517 +6.5622,-0.033028 +6.573,-0.036637 +6.5837,-0.040331 +6.5944,-0.044099 +6.6051,-0.047927 +6.6159,-0.051805 +6.6266,-0.05572 +6.6373,-0.05966 +6.648,-0.063616 +6.6588,-0.067574 +6.6695,-0.071523 +6.6802,-0.075453 +6.691,-0.079351 +6.7017,-0.083205 +6.7124,-0.087004 +6.7231,-0.090734 +6.7339,-0.094384 +6.7446,-0.09794 +6.7553,-0.101389 +6.766,-0.104717 +6.7768,-0.107908 +6.7875,-0.110947 +6.7982,-0.113819 +6.809,-0.116505 +6.8197,-0.118988 +6.8304,-0.121248 +6.8411,-0.123264 +6.8519,-0.125012 +6.8626,-0.12647 +6.8733,-0.127609 +6.884,-0.128402 +6.8948,-0.128816 +6.9055,-0.128816 +6.9162,-0.128385 +6.927,-0.127525 +6.9377,-0.126242 +6.9484,-0.124543 +6.9591,-0.122437 +6.9699,-0.119935 +6.9806,-0.117053 +6.9913,-0.113806 +7.002,-0.110214 +7.0128,-0.106298 +7.0235,-0.102085 +7.0342,-0.0976 +7.045,-0.092874 +7.0557,-0.087939 +7.0664,-0.082829 +7.0771,-0.077581 +7.0879,-0.072232 +7.0986,-0.066821 +7.1093,-0.061387 +7.12,-0.055972 +7.1308,-0.050613 +7.1415,-0.045352 +7.1522,-0.040225 +7.163,-0.035271 +7.1737,-0.030523 +7.1844,-0.026015 +7.1951,-0.021779 +7.2059,-0.017841 +7.2166,-0.014229 +7.2273,-0.010964 +7.238,-0.008068 +7.2488,-0.005558 +7.2595,-0.003449 +7.2702,-0.001753 +7.281,-0.000481 +7.2917,0.00036 +7.3024,0.000764 +7.3131,0.000728 +7.3239,0.000273 +7.3346,-0.000567 +7.3453,-0.001759 +7.356,-0.003273 +7.3668,-0.005083 +7.3775,-0.007164 +7.3882,-0.009492 +7.399,-0.012046 +7.4097,-0.014807 +7.4204,-0.017755 +7.4311,-0.020873 +7.4419,-0.024143 +7.4526,-0.027552 +7.4633,-0.031082 +7.474,-0.034721 +7.4848,-0.038452 +7.4955,-0.042265 +7.5062,-0.046144 +7.517,-0.050078 +7.5277,-0.054053 +7.5384,-0.058059 +7.5491,-0.062081 +7.5599,-0.066109 +7.5706,-0.07013 +7.5813,-0.074133 +7.592,-0.078105 +7.6028,-0.082034 +7.6135,-0.085908 +7.6242,-0.089713 +7.635,-0.093438 +7.6457,-0.097069 +7.6564,-0.100592 +7.6671,-0.103994 +7.6779,-0.107258 +7.6886,-0.110372 +7.6993,-0.113317 +7.71,-0.116077 +7.7208,-0.118634 +7.7315,-0.12097 +7.7422,-0.123063 +7.753,-0.124892 +7.7637,-0.126434 +7.7744,-0.127662 +7.7851,-0.128551 +7.7959,-0.129068 +7.8066,-0.129182 +7.8173,-0.128869 +7.828,-0.12813 +7.8388,-0.12697 +7.8495,-0.125399 +7.8602,-0.123425 +7.871,-0.121061 +7.8817,-0.118321 +7.8924,-0.115222 +7.9031,-0.111782 +7.9139,-0.108023 +7.9246,-0.103968 +7.9353,-0.099644 +7.946,-0.095078 +7.9568,-0.090301 +7.9675,-0.085345 +7.9782,-0.080243 +7.989,-0.07503 +7.9997,-0.069743 +8.0104,-0.064417 +8.0211,-0.059091 +8.0319,-0.053799 +8.0426,-0.048581 +8.0533,-0.043469 +8.064,-0.038501 +8.0748,-0.033708 +8.0855,-0.029122 +8.0962,-0.024772 +8.107,-0.020687 +8.1177,-0.016892 +8.1284,-0.013409 +8.1391,-0.010259 +8.1499,-0.007461 +8.1606,-0.005031 +8.1713,-0.002983 +8.182,-0.001327 +8.1928,-7.4e-05 +8.2035,0.000769 +8.2142,0.001196 +8.225,0.001205 +8.2357,0.000813 +8.2464,5.2e-05 +8.2571,-0.001047 +8.2679,-0.002457 +8.2786,-0.004153 +8.2893,-0.006112 +8.3,-0.008313 +8.3108,-0.010736 +8.3215,-0.013362 +8.3322,-0.016173 +8.343,-0.019153 +8.3537,-0.022287 +8.3644,-0.02556 +8.3751,-0.028956 +8.3859,-0.032464 +8.3966,-0.036068 +8.4073,-0.039758 +8.4181,-0.04352 +8.4288,-0.047342 +8.4395,-0.051213 +8.4502,-0.055121 +8.461,-0.059055 +8.4717,-0.063002 +8.4824,-0.066953 +8.4931,-0.070895 +8.5039,-0.074817 +8.5146,-0.078708 +8.5253,-0.082556 +8.5361,-0.086349 +8.5468,-0.090075 +8.5575,-0.093722 +8.5682,-0.097276 +8.579,-0.100726 +8.5897,-0.104056 +8.6004,-0.107254 +8.6111,-0.110302 +8.6219,-0.113187 +8.6326,-0.11589 +8.6433,-0.118395 +8.6541,-0.120683 +8.6648,-0.122732 +8.6755,-0.124522 +8.6862,-0.126029 +8.697,-0.127228 +8.7077,-0.128089 +8.7184,-0.128584 +8.7291,-0.128679 +8.7399,-0.12836 +8.7506,-0.127629 +8.7613,-0.126491 +8.7721,-0.124952 +8.7828,-0.12302 +8.7935,-0.120705 +8.8042,-0.118019 +8.815,-0.114977 +8.8257,-0.111595 +8.8364,-0.107891 +8.8471,-0.103888 +8.8579,-0.099609 +8.8686,-0.095079 +8.8793,-0.090327 +8.8901,-0.085384 +8.9008,-0.080281 +8.9115,-0.075053 +8.9222,-0.069736 +8.933,-0.064365 +8.9437,-0.058979 +8.9544,-0.053616 +8.9651,-0.048313 +8.9759,-0.043109 +8.9866,-0.038041 +8.9973,-0.033145 +9.0081,-0.028456 +9.0188,-0.024007 +9.0295,-0.01983 +9.0402,-0.015954 +9.051,-0.012405 +9.0617,-0.009208 +9.0724,-0.006386 +9.0831,-0.003957 +9.0939,-0.001939 +9.1046,-0.000346 +9.1153,0.000809 +9.1261,0.001517 +9.1368,0.001779 +9.1475,0.001623 +9.1582,0.001082 +9.169,0.000186 +9.1797,-0.00104 +9.1904,-0.00257 +9.2011,-0.004381 +9.2119,-0.006452 +9.2226,-0.008762 +9.2333,-0.011292 +9.2441,-0.014025 +9.2548,-0.016943 +9.2655,-0.020031 +9.2762,-0.023273 +9.287,-0.026654 +9.2977,-0.03016 +9.3084,-0.033777 +9.3191,-0.037492 +9.3299,-0.041292 +9.3406,-0.045164 +9.3513,-0.049095 +9.3621,-0.053074 +9.3728,-0.057088 +9.3835,-0.061124 +9.3942,-0.065171 +9.405,-0.069217 +9.4157,-0.07325 +9.4264,-0.077256 +9.4371,-0.081224 +9.4479,-0.08514 +9.4586,-0.088992 +9.4693,-0.092765 +9.4801,-0.096447 +9.4908,-0.100022 +9.5015,-0.103476 +9.5122,-0.106793 +9.523,-0.109956 +9.5337,-0.112948 +9.5444,-0.11575 +9.5551,-0.118343 +9.5659,-0.120706 +9.5766,-0.122815 +9.5873,-0.124647 +9.5981,-0.126178 +9.6088,-0.127399 +9.6195,-0.128307 +9.6302,-0.1289 +9.641,-0.129178 +9.6517,-0.129139 +9.6624,-0.128783 +9.6731,-0.128109 +9.6839,-0.127118 +9.6946,-0.125812 +9.7053,-0.124192 +9.7161,-0.12226 +9.7268,-0.12002 +9.7375,-0.117475 +9.7482,-0.114631 +9.759,-0.111492 +9.7697,-0.108067 +9.7804,-0.104361 +9.7911,-0.100383 +9.8019,-0.096144 +9.8126,-0.091652 +9.8233,-0.086921 +9.8341,-0.081961 +9.8448,-0.076787 +9.8555,-0.071413 +9.8662,-0.065854 +9.877,-0.060127 +9.8877,-0.054249 +9.8984,-0.048237 +9.9091,-0.04211 +9.9199,-0.035888 +9.9306,-0.02959 +9.9413,-0.023237 +9.9521,-0.016848 \ No newline at end of file From 5ba46e00a73b0f0eaa8ec34df5684a1d0619d1cb Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 20 Feb 2024 14:57:09 +0100 Subject: [PATCH 173/212] fix plot --- examples/fluid/accelerated_tank_2d.jl | 2 +- .../plot_oscillating_beam_results.jl | 29 +++++++++---------- validation/validation_util.jl | 12 ++++++++ 3 files changed, 27 insertions(+), 16 deletions(-) create mode 100644 validation/validation_util.jl diff --git a/examples/fluid/accelerated_tank_2d.jl b/examples/fluid/accelerated_tank_2d.jl index 3dbc416da..06428b9e1 100644 --- a/examples/fluid/accelerated_tank_2d.jl +++ b/examples/fluid/accelerated_tank_2d.jl @@ -58,7 +58,7 @@ boundary_model = BoundaryModelDummyParticles(tank.boundary.density, tank.boundar smoothing_kernel, smoothing_length) boundary_system = BoundarySPHSystem(tank.boundary, boundary_model, - movement=boundary_movement) + movement=movement) # ========================================================================================== # ==== Simulation diff --git a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl index 8d203ba81..b64ac3781 100644 --- a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl +++ b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl @@ -1,9 +1,10 @@ +include("../validation_util.jl") + using PythonPlot using JSON using Glob using CSV using DataFrames -using Interpolations using Statistics using Printf @@ -26,29 +27,25 @@ dy_data.displacement = dy_data.displacement .- 0.001 # Get the list of JSON files json_files = glob("validation_reference_oscillating_beam_2d_*.json", "validation/oscillating_beam_2d/") +println(json_files) + +if length(json_files)==0 + error("No files found") +end + # Create subplots fig, (ax1, ax2) = subplots(1, 2, figsize=(12, 5)) # Regular expressions for matching keys -key_pattern_x = r"pos_x_\d+_solid_\d+" -key_pattern_y = r"pos_y_\d+_solid_\d+" - -function calculate_mse(reference_data, simulation_data) - # Interpolate simulation data - interp_func = LinearInterpolation(simulation_data["time"], simulation_data["values"]) +key_pattern_x = r"mid_point_x_solid_\d+" +key_pattern_y = r"mid_point_y_solid_\d+" - # Align with reference data time points - interpolated_values = interp_func(reference_data.time) - - # Calculate MSE - mse = mean((interpolated_values .- reference_data.displacement) .^ 2) - return mse -end for json_file in json_files json_data = JSON.parsefile(json_file) local resolution = parse(Int, split(split(json_file, "_")[end], ".")[1]) + particle_spacing = cylinder_diameter / resolution # Find matching keys and plot data for each key matching_keys_x = sort(collect(filter(key -> occursin(key_pattern_x, key), @@ -56,7 +53,9 @@ for json_file in json_files matching_keys_y = sort(collect(filter(key -> occursin(key_pattern_y, key), keys(json_data)))) - particle_spacing = cylinder_diameter / resolution + if length(matching_keys_x)!= 1 + error("Not matching keys found in: " * json_file) + end # calculate error compared to reference mse_results_x = 0 diff --git a/validation/validation_util.jl b/validation/validation_util.jl new file mode 100644 index 000000000..973669502 --- /dev/null +++ b/validation/validation_util.jl @@ -0,0 +1,12 @@ +using Interpolations +function calculate_mse(reference_data, simulation_data) + # Interpolate simulation data + interp_func = LinearInterpolation(simulation_data["time"], simulation_data["values"]) + + # Align with reference data time points + interpolated_values = interp_func(reference_data.time) + + # Calculate MSE + mse = mean((interpolated_values .- reference_data.displacement) .^ 2) + return mse +end From c6184f491a63efd1fa3cc9e401ee875e4634cea9 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 20 Feb 2024 15:26:27 +0100 Subject: [PATCH 174/212] fix --- .../oscillating_beam_2d/plot_oscillating_beam_results.jl | 2 -- .../oscillating_beam_2d/validation_oscillating_beam_2d.jl | 6 +++--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl index b64ac3781..0e0637d81 100644 --- a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl +++ b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl @@ -27,8 +27,6 @@ dy_data.displacement = dy_data.displacement .- 0.001 # Get the list of JSON files json_files = glob("validation_reference_oscillating_beam_2d_*.json", "validation/oscillating_beam_2d/") -println(json_files) - if length(json_files)==0 error("No files found") end diff --git a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl index 7b931bee9..f4f49594b 100644 --- a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl +++ b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl @@ -45,7 +45,7 @@ for res in resolution # Beam and clamped particles n_particles_per_dimension = (round(Int, elastic_plate_length / particle_spacing) + - n_particles_clamp_x + 1, + n_particles_clamp_x + 2, round(Int, elastic_plate_thickness / particle_spacing) + 1) # Note that the `RectangularShape` puts the first particle half a particle spacing away @@ -64,7 +64,7 @@ for res in resolution solid_system = TotalLagrangianSPHSystem(solid, smoothing_kernel, smoothing_length, - E, nu, nothing, + E, nu, n_fixed_particles=nparticles(fixed_particles), acceleration=(0.0, -gravity), penalty_force=PenaltyForceGanzenmueller(alpha=0.01)) @@ -124,7 +124,7 @@ for res in resolution particle_position_y(middle_particle_id, t, v, u, system) end - pp_callback = PostprocessCallback(mid_point_x, mid_point_y; dt=0.025, output_directory="validation/oscillating_beam_2d", + pp_callback = PostprocessCallback(; mid_point_x, mid_point_y, dt=0.025, output_directory="validation/oscillating_beam_2d", filename="validation_reference_oscillating_beam_2d_" * string(res), write_csv=false) info_callback = InfoCallback(interval=2500) saving_callback = SolutionSavingCallback(dt=0.5, prefix="validation_" * string(res)) From 7f99b36aaf2d30134b42ef65f890402890da757e Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 21 Feb 2024 07:46:38 +0100 Subject: [PATCH 175/212] add files --- ...tion_reference_oscillating_beam_2d_21.json | 4031 +++++++++++++++++ ...tion_reference_oscillating_beam_2d_35.json | 4031 +++++++++++++++++ ...ation_reference_oscillating_beam_2d_9.json | 4031 +++++++++++++++++ 3 files changed, 12093 insertions(+) create mode 100644 validation/oscillating_beam_2d/validation_reference_oscillating_beam_2d_21.json create mode 100644 validation/oscillating_beam_2d/validation_reference_oscillating_beam_2d_35.json create mode 100644 validation/oscillating_beam_2d/validation_reference_oscillating_beam_2d_9.json diff --git a/validation/oscillating_beam_2d/validation_reference_oscillating_beam_2d_21.json b/validation/oscillating_beam_2d/validation_reference_oscillating_beam_2d_21.json new file mode 100644 index 000000000..059e51a74 --- /dev/null +++ b/validation/oscillating_beam_2d/validation_reference_oscillating_beam_2d_21.json @@ -0,0 +1,4031 @@ +{ + "meta": { + "julia_version": "1.10.1", + "solver_version": "c6184f4-dirty", + "solver_name": "TrixiParticles.jl" + }, + "mid_point_y_solid_1": { + "n_values": 1001, + "time": [ + 0.0, + 0.01, + 0.02, + 0.03, + 0.04, + 0.05, + 0.06, + 0.07, + 0.08, + 0.09, + 0.1, + 0.11, + 0.12, + 0.13, + 0.14, + 0.15, + 0.16, + 0.17, + 0.18, + 0.19, + 0.2, + 0.21, + 0.22, + 0.23, + 0.24, + 0.25, + 0.26, + 0.27, + 0.28, + 0.29, + 0.3, + 0.31, + 0.32, + 0.33, + 0.34, + 0.35000000000000003, + 0.36, + 0.37, + 0.38, + 0.39, + 0.4, + 0.41000000000000003, + 0.42, + 0.43, + 0.44, + 0.45, + 0.46, + 0.47000000000000003, + 0.48, + 0.49, + 0.5, + 0.51, + 0.52, + 0.53, + 0.54, + 0.55, + 0.56, + 0.5700000000000001, + 0.58, + 0.59, + 0.6, + 0.61, + 0.62, + 0.63, + 0.64, + 0.65, + 0.66, + 0.67, + 0.68, + 0.6900000000000001, + 0.7000000000000001, + 0.71, + 0.72, + 0.73, + 0.74, + 0.75, + 0.76, + 0.77, + 0.78, + 0.79, + 0.8, + 0.81, + 0.8200000000000001, + 0.8300000000000001, + 0.84, + 0.85, + 0.86, + 0.87, + 0.88, + 0.89, + 0.9, + 0.91, + 0.92, + 0.93, + 0.9400000000000001, + 0.9500000000000001, + 0.96, + 0.97, + 0.98, + 0.99, + 1.0, + 1.01, + 1.02, + 1.03, + 1.04, + 1.05, + 1.06, + 1.07, + 1.08, + 1.09, + 1.1, + 1.11, + 1.12, + 1.1300000000000001, + 1.1400000000000001, + 1.1500000000000001, + 1.16, + 1.17, + 1.18, + 1.19, + 1.2, + 1.21, + 1.22, + 1.23, + 1.24, + 1.25, + 1.26, + 1.27, + 1.28, + 1.29, + 1.3, + 1.31, + 1.32, + 1.33, + 1.34, + 1.35, + 1.36, + 1.37, + 1.3800000000000001, + 1.3900000000000001, + 1.4000000000000001, + 1.41, + 1.42, + 1.43, + 1.44, + 1.45, + 1.46, + 1.47, + 1.48, + 1.49, + 1.5, + 1.51, + 1.52, + 1.53, + 1.54, + 1.55, + 1.56, + 1.57, + 1.58, + 1.59, + 1.6, + 1.61, + 1.62, + 1.6300000000000001, + 1.6400000000000001, + 1.6500000000000001, + 1.6600000000000001, + 1.67, + 1.68, + 1.69, + 1.7, + 1.71, + 1.72, + 1.73, + 1.74, + 1.75, + 1.76, + 1.77, + 1.78, + 1.79, + 1.8, + 1.81, + 1.82, + 1.83, + 1.84, + 1.85, + 1.86, + 1.87, + 1.8800000000000001, + 1.8900000000000001, + 1.9000000000000001, + 1.9100000000000001, + 1.92, + 1.93, + 1.94, + 1.95, + 1.96, + 1.97, + 1.98, + 1.99, + 2.0, + 2.0100000000000002, + 2.02, + 2.0300000000000002, + 2.04, + 2.05, + 2.06, + 2.07, + 2.08, + 2.09, + 2.1, + 2.11, + 2.12, + 2.13, + 2.14, + 2.15, + 2.16, + 2.17, + 2.18, + 2.19, + 2.2, + 2.21, + 2.22, + 2.23, + 2.24, + 2.25, + 2.2600000000000002, + 2.27, + 2.2800000000000002, + 2.29, + 2.3000000000000003, + 2.31, + 2.32, + 2.33, + 2.34, + 2.35, + 2.36, + 2.37, + 2.38, + 2.39, + 2.4, + 2.41, + 2.42, + 2.43, + 2.44, + 2.45, + 2.46, + 2.47, + 2.48, + 2.49, + 2.5, + 2.5100000000000002, + 2.52, + 2.5300000000000002, + 2.54, + 2.5500000000000003, + 2.56, + 2.57, + 2.58, + 2.59, + 2.6, + 2.61, + 2.62, + 2.63, + 2.64, + 2.65, + 2.66, + 2.67, + 2.68, + 2.69, + 2.7, + 2.71, + 2.72, + 2.73, + 2.74, + 2.75, + 2.7600000000000002, + 2.77, + 2.7800000000000002, + 2.79, + 2.8000000000000003, + 2.81, + 2.82, + 2.83, + 2.84, + 2.85, + 2.86, + 2.87, + 2.88, + 2.89, + 2.9, + 2.91, + 2.92, + 2.93, + 2.94, + 2.95, + 2.96, + 2.97, + 2.98, + 2.99, + 3.0, + 3.0100000000000002, + 3.02, + 3.0300000000000002, + 3.04, + 3.0500000000000003, + 3.06, + 3.0700000000000003, + 3.08, + 3.09, + 3.1, + 3.11, + 3.12, + 3.13, + 3.14, + 3.15, + 3.16, + 3.17, + 3.18, + 3.19, + 3.2, + 3.21, + 3.22, + 3.23, + 3.24, + 3.25, + 3.2600000000000002, + 3.27, + 3.2800000000000002, + 3.29, + 3.3000000000000003, + 3.31, + 3.3200000000000003, + 3.33, + 3.34, + 3.35, + 3.36, + 3.37, + 3.38, + 3.39, + 3.4, + 3.41, + 3.42, + 3.43, + 3.44, + 3.45, + 3.46, + 3.47, + 3.48, + 3.49, + 3.5, + 3.5100000000000002, + 3.52, + 3.5300000000000002, + 3.54, + 3.5500000000000003, + 3.56, + 3.5700000000000003, + 3.58, + 3.59, + 3.6, + 3.61, + 3.62, + 3.63, + 3.64, + 3.65, + 3.66, + 3.67, + 3.68, + 3.69, + 3.7, + 3.71, + 3.72, + 3.73, + 3.74, + 3.75, + 3.7600000000000002, + 3.77, + 3.7800000000000002, + 3.79, + 3.8000000000000003, + 3.81, + 3.8200000000000003, + 3.83, + 3.84, + 3.85, + 3.86, + 3.87, + 3.88, + 3.89, + 3.9, + 3.91, + 3.92, + 3.93, + 3.94, + 3.95, + 3.96, + 3.97, + 3.98, + 3.99, + 4.0, + 4.01, + 4.0200000000000005, + 4.03, + 4.04, + 4.05, + 4.0600000000000005, + 4.07, + 4.08, + 4.09, + 4.1, + 4.11, + 4.12, + 4.13, + 4.14, + 4.15, + 4.16, + 4.17, + 4.18, + 4.19, + 4.2, + 4.21, + 4.22, + 4.23, + 4.24, + 4.25, + 4.26, + 4.2700000000000005, + 4.28, + 4.29, + 4.3, + 4.3100000000000005, + 4.32, + 4.33, + 4.34, + 4.3500000000000005, + 4.36, + 4.37, + 4.38, + 4.39, + 4.4, + 4.41, + 4.42, + 4.43, + 4.44, + 4.45, + 4.46, + 4.47, + 4.48, + 4.49, + 4.5, + 4.51, + 4.5200000000000005, + 4.53, + 4.54, + 4.55, + 4.5600000000000005, + 4.57, + 4.58, + 4.59, + 4.6000000000000005, + 4.61, + 4.62, + 4.63, + 4.64, + 4.65, + 4.66, + 4.67, + 4.68, + 4.69, + 4.7, + 4.71, + 4.72, + 4.73, + 4.74, + 4.75, + 4.76, + 4.7700000000000005, + 4.78, + 4.79, + 4.8, + 4.8100000000000005, + 4.82, + 4.83, + 4.84, + 4.8500000000000005, + 4.86, + 4.87, + 4.88, + 4.89, + 4.9, + 4.91, + 4.92, + 4.93, + 4.94, + 4.95, + 4.96, + 4.97, + 4.98, + 4.99, + 5.0, + 5.01, + 5.0200000000000005, + 5.03, + 5.04, + 5.05, + 5.0600000000000005, + 5.07, + 5.08, + 5.09, + 5.1000000000000005, + 5.11, + 5.12, + 5.13, + 5.14, + 5.15, + 5.16, + 5.17, + 5.18, + 5.19, + 5.2, + 5.21, + 5.22, + 5.23, + 5.24, + 5.25, + 5.26, + 5.2700000000000005, + 5.28, + 5.29, + 5.3, + 5.3100000000000005, + 5.32, + 5.33, + 5.34, + 5.3500000000000005, + 5.36, + 5.37, + 5.38, + 5.39, + 5.4, + 5.41, + 5.42, + 5.43, + 5.44, + 5.45, + 5.46, + 5.47, + 5.48, + 5.49, + 5.5, + 5.51, + 5.5200000000000005, + 5.53, + 5.54, + 5.55, + 5.5600000000000005, + 5.57, + 5.58, + 5.59, + 5.6000000000000005, + 5.61, + 5.62, + 5.63, + 5.64, + 5.65, + 5.66, + 5.67, + 5.68, + 5.69, + 5.7, + 5.71, + 5.72, + 5.73, + 5.74, + 5.75, + 5.76, + 5.7700000000000005, + 5.78, + 5.79, + 5.8, + 5.8100000000000005, + 5.82, + 5.83, + 5.84, + 5.8500000000000005, + 5.86, + 5.87, + 5.88, + 5.89, + 5.9, + 5.91, + 5.92, + 5.93, + 5.94, + 5.95, + 5.96, + 5.97, + 5.98, + 5.99, + 6.0, + 6.01, + 6.0200000000000005, + 6.03, + 6.04, + 6.05, + 6.0600000000000005, + 6.07, + 6.08, + 6.09, + 6.1000000000000005, + 6.11, + 6.12, + 6.13, + 6.140000000000001, + 6.15, + 6.16, + 6.17, + 6.18, + 6.19, + 6.2, + 6.21, + 6.22, + 6.23, + 6.24, + 6.25, + 6.26, + 6.2700000000000005, + 6.28, + 6.29, + 6.3, + 6.3100000000000005, + 6.32, + 6.33, + 6.34, + 6.3500000000000005, + 6.36, + 6.37, + 6.38, + 6.390000000000001, + 6.4, + 6.41, + 6.42, + 6.43, + 6.44, + 6.45, + 6.46, + 6.47, + 6.48, + 6.49, + 6.5, + 6.51, + 6.5200000000000005, + 6.53, + 6.54, + 6.55, + 6.5600000000000005, + 6.57, + 6.58, + 6.59, + 6.6000000000000005, + 6.61, + 6.62, + 6.63, + 6.640000000000001, + 6.65, + 6.66, + 6.67, + 6.68, + 6.69, + 6.7, + 6.71, + 6.72, + 6.73, + 6.74, + 6.75, + 6.76, + 6.7700000000000005, + 6.78, + 6.79, + 6.8, + 6.8100000000000005, + 6.82, + 6.83, + 6.84, + 6.8500000000000005, + 6.86, + 6.87, + 6.88, + 6.890000000000001, + 6.9, + 6.91, + 6.92, + 6.93, + 6.94, + 6.95, + 6.96, + 6.97, + 6.98, + 6.99, + 7.0, + 7.01, + 7.0200000000000005, + 7.03, + 7.04, + 7.05, + 7.0600000000000005, + 7.07, + 7.08, + 7.09, + 7.1000000000000005, + 7.11, + 7.12, + 7.13, + 7.140000000000001, + 7.15, + 7.16, + 7.17, + 7.18, + 7.19, + 7.2, + 7.21, + 7.22, + 7.23, + 7.24, + 7.25, + 7.26, + 7.2700000000000005, + 7.28, + 7.29, + 7.3, + 7.3100000000000005, + 7.32, + 7.33, + 7.34, + 7.3500000000000005, + 7.36, + 7.37, + 7.38, + 7.390000000000001, + 7.4, + 7.41, + 7.42, + 7.43, + 7.44, + 7.45, + 7.46, + 7.47, + 7.48, + 7.49, + 7.5, + 7.51, + 7.5200000000000005, + 7.53, + 7.54, + 7.55, + 7.5600000000000005, + 7.57, + 7.58, + 7.59, + 7.6000000000000005, + 7.61, + 7.62, + 7.63, + 7.640000000000001, + 7.65, + 7.66, + 7.67, + 7.68, + 7.69, + 7.7, + 7.71, + 7.72, + 7.73, + 7.74, + 7.75, + 7.76, + 7.7700000000000005, + 7.78, + 7.79, + 7.8, + 7.8100000000000005, + 7.82, + 7.83, + 7.84, + 7.8500000000000005, + 7.86, + 7.87, + 7.88, + 7.890000000000001, + 7.9, + 7.91, + 7.92, + 7.930000000000001, + 7.94, + 7.95, + 7.96, + 7.97, + 7.98, + 7.99, + 8.0, + 8.01, + 8.02, + 8.03, + 8.040000000000001, + 8.05, + 8.06, + 8.07, + 8.08, + 8.09, + 8.1, + 8.11, + 8.120000000000001, + 8.13, + 8.14, + 8.15, + 8.16, + 8.17, + 8.18, + 8.19, + 8.2, + 8.21, + 8.22, + 8.23, + 8.24, + 8.25, + 8.26, + 8.27, + 8.28, + 8.290000000000001, + 8.3, + 8.31, + 8.32, + 8.33, + 8.34, + 8.35, + 8.36, + 8.370000000000001, + 8.38, + 8.39, + 8.4, + 8.41, + 8.42, + 8.43, + 8.44, + 8.45, + 8.46, + 8.47, + 8.48, + 8.49, + 8.5, + 8.51, + 8.52, + 8.53, + 8.540000000000001, + 8.55, + 8.56, + 8.57, + 8.58, + 8.59, + 8.6, + 8.61, + 8.620000000000001, + 8.63, + 8.64, + 8.65, + 8.66, + 8.67, + 8.68, + 8.69, + 8.700000000000001, + 8.71, + 8.72, + 8.73, + 8.74, + 8.75, + 8.76, + 8.77, + 8.78, + 8.790000000000001, + 8.8, + 8.81, + 8.82, + 8.83, + 8.84, + 8.85, + 8.86, + 8.870000000000001, + 8.88, + 8.89, + 8.9, + 8.91, + 8.92, + 8.93, + 8.94, + 8.950000000000001, + 8.96, + 8.97, + 8.98, + 8.99, + 9.0, + 9.01, + 9.02, + 9.03, + 9.040000000000001, + 9.05, + 9.06, + 9.07, + 9.08, + 9.09, + 9.1, + 9.11, + 9.120000000000001, + 9.13, + 9.14, + 9.15, + 9.16, + 9.17, + 9.18, + 9.19, + 9.200000000000001, + 9.21, + 9.22, + 9.23, + 9.24, + 9.25, + 9.26, + 9.27, + 9.28, + 9.290000000000001, + 9.3, + 9.31, + 9.32, + 9.33, + 9.34, + 9.35, + 9.36, + 9.370000000000001, + 9.38, + 9.39, + 9.4, + 9.41, + 9.42, + 9.43, + 9.44, + 9.450000000000001, + 9.46, + 9.47, + 9.48, + 9.49, + 9.5, + 9.51, + 9.52, + 9.53, + 9.540000000000001, + 9.55, + 9.56, + 9.57, + 9.58, + 9.59, + 9.6, + 9.61, + 9.620000000000001, + 9.63, + 9.64, + 9.65, + 9.66, + 9.67, + 9.68, + 9.69, + 9.700000000000001, + 9.71, + 9.72, + 9.73, + 9.74, + 9.75, + 9.76, + 9.77, + 9.78, + 9.790000000000001, + 9.8, + 9.81, + 9.82, + 9.83, + 9.84, + 9.85, + 9.86, + 9.870000000000001, + 9.88, + 9.89, + 9.9, + 9.91, + 9.92, + 9.93, + 9.94, + 9.950000000000001, + 9.96, + 9.97, + 9.98, + 9.99, + 10.0 + ], + "system_name": "solid", + "values": [ + 0.01, + 0.009900000027477278, + 0.009598224579854263, + 0.009120736097874588, + 0.008530138043973061, + 0.007598603422188598, + 0.006209548115927407, + 0.004367110459334251, + 0.002049829600048696, + -0.0006053600559477594, + -0.00356570895419228, + -0.006911648253035624, + -0.010600257077109343, + -0.014436463005106079, + -0.01835207308271733, + -0.022174572933033994, + -0.025959050740602802, + -0.02984193918443984, + -0.03378087240471843, + -0.03773885667217311, + -0.041745790878917347, + -0.04580765829346273, + -0.05003902658456762, + -0.05457691212100433, + -0.059241827167912965, + -0.06396649515655953, + -0.068642237480742, + -0.07319051466958452, + -0.0776494819692869, + -0.08199165140294387, + -0.08602570748859455, + -0.08970414733710964, + -0.09302756184690186, + -0.09602018636439417, + -0.09889033218456646, + -0.10159706336855419, + -0.10409538482286124, + -0.10640718846843088, + -0.10854288616430569, + -0.11055139525206853, + -0.11252687363398399, + -0.11430571793994596, + -0.11577589989419784, + -0.11689452921019883, + -0.11756657039093941, + -0.11790629651976833, + -0.11792199814205521, + -0.11752865287024525, + -0.11670442404531181, + -0.11547194273724101, + -0.1138718813857606, + -0.11213726192125416, + -0.11027574202746535, + -0.1082449821813424, + -0.1060650057951082, + -0.1036594293158479, + -0.10111010721985338, + -0.09847931697531162, + -0.09566647986938934, + -0.09255573867452145, + -0.08912156120801464, + -0.08527000643162871, + -0.0811686829637631, + -0.07690316526774, + -0.07243766226816843, + -0.06782390308145995, + -0.06308413082619954, + -0.0583188881304433, + -0.05374050359550477, + -0.04941089146875812, + -0.04520058980238842, + -0.04111967665372357, + -0.0370620938833673, + -0.033075308205940464, + -0.029235306323616927, + -0.025432684561338667, + -0.021546947208853542, + -0.017610827128007673, + -0.01365888130800107, + -0.00983367534689891, + -0.006331121008754682, + -0.003064958719995124, + -8.345195959477298e-5, + 0.002544219639442147, + 0.004747742051453262, + 0.006444894329510459, + 0.0076281593399159875, + 0.008527541421434392, + 0.009216314742138618, + 0.009675715007623691, + 0.009950634421635362, + 0.009956978756429206, + 0.009794606848363112, + 0.009566499122309462, + 0.009193933385617387, + 0.008501009605333357, + 0.007440246135621148, + 0.0058869656541872505, + 0.0039298389790492095, + 0.0016573682328289265, + -0.0010386285599947875, + -0.004158825352635816, + -0.007635589578358163, + -0.011370753158815703, + -0.01518276520665492, + -0.01892978364310827, + -0.022751244930238657, + -0.026613730818893618, + -0.030519649277258157, + -0.03445085999502093, + -0.038338974921111914, + -0.04227480051708911, + -0.04644784961541319, + -0.0508587948891786, + -0.055434358333057696, + -0.060126239314324675, + -0.06475355475967753, + -0.069391359672094, + -0.07402949458090415, + -0.07852661016125588, + -0.082767972953653, + -0.08667521559034244, + -0.0901833449528497, + -0.09344335488612551, + -0.09652931020023366, + -0.09937567976329856, + -0.102035417101806, + -0.10444616106563202, + -0.10667892247799263, + -0.10886831504998504, + -0.11099909389535767, + -0.11295236971647353, + -0.11466877936438544, + -0.11599221374834971, + -0.11697076963598396, + -0.11767646931972528, + -0.11800131153473613, + -0.11793404788857853, + -0.11740121347350245, + -0.11639971048287731, + -0.11508060310516058, + -0.11357130030090608, + -0.11185159964241871, + -0.10998796603269168, + -0.10789274295403606, + -0.10559251474053823, + -0.10322724200257109, + -0.10075484097553263, + -0.09813469331213262, + -0.0952583610174085, + -0.09199558160263462, + -0.08838095940003993, + -0.08455498037044527, + -0.08046621225887328, + -0.0761720074366777, + -0.07164075853290208, + -0.06688851648477179, + -0.06213491165702574, + -0.057520132432105756, + -0.05306012984034603, + -0.04876004360217711, + -0.04455328837418075, + -0.04037870069287157, + -0.03639232653523433, + -0.03252167829170331, + -0.02869073367671067, + -0.02481738467972264, + -0.02082566900755256, + -0.016794769209803963, + -0.012928898968255362, + -0.009247988838876462, + -0.005738967077357227, + -0.002492519754027714, + 0.0004961124625615011, + 0.003021505516488285, + 0.004997628722751235, + 0.006526661834056683, + 0.007731925315640119, + 0.008640287855472033, + 0.009332202691254211, + 0.009732944185819728, + 0.009858126461278744, + 0.009892573014909806, + 0.009831407553756315, + 0.009642390083835004, + 0.009214943976480877, + 0.008397470845471927, + 0.007143093584768118, + 0.005584688774301666, + 0.003632873985933873, + 0.0012601181380153769, + -0.0015630670766271432, + -0.004855843494185992, + -0.008414124192562421, + -0.012052201479966124, + -0.01576211511249212, + -0.019561024389979243, + -0.023403718516280887, + -0.027334932598326485, + -0.031186121945817536, + -0.03497779281469019, + -0.038864254192726606, + -0.04292873265055837, + -0.04721450848096135, + -0.051709645195966415, + -0.05626718799215259, + -0.06085765796772751, + -0.06556476051060055, + -0.07027073197619524, + -0.07492991726212475, + -0.07936791148948555, + -0.08343643072389761, + -0.08718269007670042, + -0.09070798389465808, + -0.09398435932721241, + -0.09704832701583815, + -0.09984114687022486, + -0.10233611844017519, + -0.10473179535956817, + -0.10705758815798884, + -0.10931837053716516, + -0.11145388828944855, + -0.11332578245802036, + -0.114869870340842, + -0.11617280489291927, + -0.11716441343883148, + -0.11783048150072847, + -0.11809664224175428, + -0.11782429785429145, + -0.11712833745691813, + -0.11609965118808335, + -0.11481072216598093, + -0.11331989932698372, + -0.11159206339926261, + -0.10957486734038009, + -0.10743879555962654, + -0.10520551623028436, + -0.10289383547735058, + -0.10047176193702943, + -0.09774703416200922, + -0.09469099879720995, + -0.091352831091089, + -0.08774630787187837, + -0.08389705076722408, + -0.07980681933906021, + -0.07535027450731613, + -0.07069296546846748, + -0.06597661225520483, + -0.061313647437664924, + -0.05680856347740823, + -0.05239879769944841, + -0.0480218083214508, + -0.04378563429701005, + -0.03974635189555781, + -0.03582260422363661, + -0.03200386034091371, + -0.02808196476701945, + -0.024051991960586952, + -0.02004024306690145, + -0.016111449775765393, + -0.012289575923085853, + -0.008625338141794711, + -0.005087756378126995, + -0.0018044626816577148, + 0.0009929382943053686, + 0.0033259922501032756, + 0.005188694053576956, + 0.006682465173681381, + 0.007903007488390543, + 0.008812976337220023, + 0.009339989987549025, + 0.009655384131013332, + 0.009831917772614527, + 0.00992601543511479, + 0.00995161586614228, + 0.009697487479176679, + 0.009094139399137639, + 0.00818019197132744, + 0.006951642409360188, + 0.005341219199314659, + 0.0033340525343296045, + 0.000766356222826348, + -0.002257010975006603, + -0.005552889705160785, + -0.009050621939222408, + -0.012663471866537962, + -0.016390157027687938, + -0.020261681967200622, + -0.024160589173728073, + -0.02794093572475133, + -0.03171340033691147, + -0.03550815137114175, + -0.03947713899686917, + -0.04369021923419486, + -0.04803097783057515, + -0.05244227948180681, + -0.0569977783961156, + -0.06167417821465471, + -0.0664496940372219, + -0.07123888087337783, + -0.07577201081231129, + -0.08003558215540181, + -0.08403159324173512, + -0.08777480745613597, + -0.09129912452926699, + -0.09456813612030143, + -0.09747431096073438, + -0.10014444202663556, + -0.10267409423329915, + -0.10511060195820987, + -0.1075396417609488, + -0.10979133744027486, + -0.11179524033818708, + -0.11357581869857498, + -0.11512627595079453, + -0.11642261845619054, + -0.11743568057322573, + -0.11796235012530634, + -0.11800760854987193, + -0.1176412433400124, + -0.1168909426215235, + -0.11589543869373688, + -0.11462121764341193, + -0.1130194367958753, + -0.11117114358506182, + -0.10916452557831294, + -0.10704763965699943, + -0.10492987733662482, + -0.10263313600409177, + -0.10006326570107568, + -0.09723211306850751, + -0.09410921287406203, + -0.09076723743620074, + -0.08719319846235181, + -0.08325898019330367, + -0.07896308541068474, + -0.0744481839531852, + -0.06977395724590474, + -0.0651608493926044, + -0.060608162913968644, + -0.05605831557921532, + -0.05159327094514364, + -0.04727056816446167, + -0.04312289065568436, + -0.039189340623249004, + -0.035323149698504294, + -0.031343550476363675, + -0.027343396810450456, + -0.023316630287105712, + -0.01935052475671043, + -0.01548563637678915, + -0.011648407942797121, + -0.007867688790505365, + -0.004374808442181624, + -0.001266779803812998, + 0.0013847197045963075, + 0.0035615320903688032, + 0.00543527329245712, + 0.006951961496521137, + 0.008062085415332806, + 0.008815058319348342, + 0.009305462824981792, + 0.009616445377068414, + 0.009914310246994781, + 0.010072674115306298, + 0.009967027482701373, + 0.009618677718878059, + 0.00896533934394123, + 0.008041634085818731, + 0.006816633995154854, + 0.005119854487592537, + 0.002851980978729994, + 0.00016776051513357437, + -0.002890415037716486, + -0.006167486859054722, + -0.009616459985486523, + -0.013312981339599595, + -0.017155027491420494, + -0.02098381277582425, + -0.024759941554326984, + -0.028477730414629428, + -0.03220718076649415, + -0.036152963131376746, + -0.04022701452142175, + -0.04441021354220856, + -0.048721839164504455, + -0.05316264650089283, + -0.05778574609221628, + -0.06261402926473326, + -0.06742198025269848, + -0.07206079800302191, + -0.0765098626069818, + -0.08068239566121352, + -0.08468608245333885, + -0.08846554540420325, + -0.09189830978949673, + -0.09498847942140377, + -0.09782913992583306, + -0.10047894984057, + -0.10309855148310139, + -0.10563199208472672, + -0.10796220836813233, + -0.11013522229152803, + -0.11208992742811759, + -0.11386955311015039, + -0.11547642640491114, + -0.11675225408398111, + -0.11757140021123522, + -0.11795972182561094, + -0.11787790527458418, + -0.1174727509309098, + -0.11678378571506585, + -0.11571232395722444, + -0.11431361109719125, + -0.11262263618346675, + -0.11074149920657728, + -0.10881628517819132, + -0.10682480002268784, + -0.10462790011961862, + -0.10224711733470321, + -0.09958080508648229, + -0.09669077303884487, + -0.09363437084900993, + -0.09027350525254706, + -0.0865531096009136, + -0.08247691518147608, + -0.0780827904204708, + -0.07354508662391766, + -0.06901596899113352, + -0.06440710383906145, + -0.05980436534607809, + -0.055238691783212966, + -0.05079167077658866, + -0.04660147158017192, + -0.04260841619297062, + -0.038635810057957506, + -0.034654264813905676, + -0.030642570491276073, + -0.026606741856858875, + -0.022682656206611286, + -0.018743584587500972, + -0.014767535046169058, + -0.01085797073879118, + -0.007140741821911353, + -0.003752933942205226, + -0.0008407669807211504, + 0.0017105214825770677, + 0.0039387451706717575, + 0.0057372219964946115, + 0.007143838298266624, + 0.008117091487205675, + 0.00877079193770745, + 0.009300962354724907, + 0.009760175380875764, + 0.010022332085015111, + 0.010103937605777928, + 0.009923839787496351, + 0.00950852248917383, + 0.008928932869532448, + 0.008006575255648409, + 0.006608003700372564, + 0.004713273834196263, + 0.002338111700591899, + -0.0004261371520429574, + -0.0034117551416990885, + -0.006727902518679058, + -0.010318663522370609, + -0.01406430092616529, + -0.017873840502438586, + -0.021612413889880014, + -0.02526406984641285, + -0.029004228935507834, + -0.03288391975349883, + -0.03683603889413827, + -0.040920126169687335, + -0.04505924878332832, + -0.04937453485571639, + -0.053968887251713685, + -0.058743083521505673, + -0.06353908168956778, + -0.0682736249857748, + -0.07281401101147132, + -0.07719377253760158, + -0.08145453462721326, + -0.0854178583358964, + -0.08906602088320004, + -0.09236500732784683, + -0.09535288228956716, + -0.09819290741989194, + -0.10096985991371629, + -0.10357893216536289, + -0.10604524631605594, + -0.1083204212274933, + -0.11041957608251693, + -0.11245629653191867, + -0.11429682840788907, + -0.11582223445387418, + -0.11695106892985944, + -0.1176192136850593, + -0.11787918213209485, + -0.11784719749052808, + -0.1174185650952581, + -0.11661785529345026, + -0.11544230272342089, + -0.11390858000524859, + -0.11222715226185091, + -0.11045968112530109, + -0.1085711841612959, + -0.10653039087790897, + -0.1042673410727151, + -0.10175444409672794, + -0.09913199657239763, + -0.09629495377985192, + -0.09317002928071974, + -0.08969588377720535, + -0.08579751112665855, + -0.08160725754702895, + -0.07727341052811501, + -0.07280087554165907, + -0.06821989148821245, + -0.06359251263666002, + -0.05891196288453696, + -0.054414049633600185, + -0.05014760252421569, + -0.04603712586307874, + -0.042012820520428075, + -0.03798690458487922, + -0.03392494517082791, + -0.029948740320624393, + -0.02603117324491205, + -0.022037150033830315, + -0.01801854712989523, + -0.013964375264791882, + -0.01006503681995563, + -0.006505127277465531, + -0.003295086053324845, + -0.0003794111528403076, + 0.0021542137942709982, + 0.004305708069225257, + 0.0059966934457559365, + 0.007186834569032803, + 0.008104253860592575, + 0.008842697438254426, + 0.009428916601602074, + 0.009856627866596404, + 0.010073068103437178, + 0.010030058089972003, + 0.009884488105524586, + 0.009557298727567757, + 0.008915412353597992, + 0.00786597563942487, + 0.0062849670710195815, + 0.004235196633443872, + 0.0018551733209873362, + -0.0008666418827988076, + -0.003987752154519033, + -0.0073977454431353945, + -0.011078717151229007, + -0.014805859158750828, + -0.018457248058999134, + -0.022119544890697, + -0.02585197462104282, + -0.02965285299824997, + -0.03355277536680313, + -0.03749336720123242, + -0.04147385016535366, + -0.04570961960170103, + -0.05018418326371849, + -0.054871038258800284, + -0.0596618377480914, + -0.06438952874101427, + -0.06901059060642668, + -0.07359561640091229, + -0.0780270644631468, + -0.08221442620739876, + -0.08608725852913833, + -0.08954286535386949, + -0.0927505275307768, + -0.09580467511121958, + -0.09870274494874892, + -0.10144188809686423, + -0.10400727325246203, + -0.10635659873585708, + -0.10864938104906899, + -0.11086406755711128, + -0.11289875980321554, + -0.11469190634030658, + -0.11606504241397149, + -0.11702837280344086, + -0.11765727860527733, + -0.11793939959790926, + -0.11783201622524465, + -0.1173279146458762, + -0.1163412320341089, + -0.11504967620637824, + -0.11358264200929649, + -0.11195703604125272, + -0.11022196088523362, + -0.10828625418792522, + -0.10611929314259544, + -0.10381607823339277, + -0.1013904090966141, + -0.09875914259831928, + -0.09589908077348923, + -0.09261906375502861, + -0.08895230815706379, + -0.0850175020779656, + -0.08085576531945361, + -0.07652607589502504, + -0.07203393666501455, + -0.0673535973008148, + -0.06264717414173471, + -0.05811476383645488, + -0.05373424785537886, + -0.04955478453721986, + -0.04543481442193553, + -0.041309634874025926, + -0.03726319076039048, + -0.03331680890175584, + -0.029372017194628525, + -0.02539726474377746, + -0.021319448765980163, + -0.01716519319424831, + -0.013188073918444457, + -0.009434310535314402, + -0.005951437720284512, + -0.0027592456536477085, + 0.00013062455678826662, + 0.002631501770050535, + 0.00457540740357052, + 0.006076171493149013, + 0.007258173349861069, + 0.00819443386284999, + 0.008992385168973771, + 0.009556033503932145, + 0.009858474454797265, + 0.010009565713582507, + 0.010075135152382104, + 0.009956159942806747, + 0.009615794981561034, + 0.00883545602107488, + 0.007565899075463796, + 0.005915820690534562, + 0.0038790354821082174, + 0.0014450179023739569, + -0.0013901807846530459, + -0.00463772740675544, + -0.008183473992894744, + -0.011763026563266922, + -0.015383325966433267, + -0.019017039020894685, + -0.02270998933592393, + -0.026514381872247427, + -0.030340098185472838, + -0.03412533955234877, + -0.03801942451579232, + -0.04212407912433622, + -0.046468667642432064, + -0.05108763463520503, + -0.05576549246418413, + -0.06045118701650235, + -0.06516546252681642, + -0.06986426583388454, + -0.07445840893655316, + -0.07886688732710564, + -0.08289613990456864, + -0.08657508042348905, + -0.09002439425149833, + -0.09324575247894777, + -0.09632758328603892, + -0.0992014236657254, + -0.10182651699405845, + -0.10430677752597924, + -0.10674520733742578, + -0.10909507510188131, + -0.1113537867133489, + -0.11332823597461049, + -0.11492355359111862, + -0.11621687780883205, + -0.11716663727152336, + -0.11778323984132885, + -0.11801675683953516, + -0.1177616134977906, + -0.11704939601693035, + -0.11603540895535855, + -0.1147536023308908, + -0.11334076281385574, + -0.1117458905812371, + -0.1098922994121221, + -0.107875338602504, + -0.10572830388961031, + -0.10347148569766616, + -0.10108932648830785, + -0.09841875227120458, + -0.09533761304787391, + -0.0919532313229706, + -0.08824708781918693, + -0.0843189260671745, + -0.08017833789564947, + -0.07574687093317925, + -0.07111169682329861, + -0.0664397451699457, + -0.06183430741541522, + -0.05740419437533867, + -0.05313804385025923, + -0.048872502064389194, + -0.04470223979717719, + -0.04063230334967532, + -0.036658441627781445, + -0.032752982327301575, + -0.028776131728196788, + -0.024629113233099485, + -0.02047525479113433, + -0.016420378853175686, + -0.012509696065059223, + -0.008843094295348351, + -0.00534431474482243, + -0.0021192408979012235, + 0.0006550485693538027, + 0.002921846413385712, + 0.004752104666761893, + 0.00618676721189457, + 0.007407852076808535, + 0.008397416406418074, + 0.009072147108765118, + 0.00954111336975374, + 0.009848125352951763, + 0.010061506021002985, + 0.010187879050778129, + 0.010075553392874205, + 0.009526052152530289, + 0.008614729944063563, + 0.00730651797603954, + 0.005620463951834218, + 0.003554597643371411, + 0.00097888763765882, + -0.0020653026583427334, + -0.005373551349384611, + -0.008824803989232442, + -0.012365313245526683, + -0.01593220436517782, + -0.019652489497058574, + -0.02342121905177571, + -0.02714698470296529, + -0.030867100309486875, + -0.03465766201225857, + -0.038616777658253, + -0.04287925858770678, + -0.04734487010077146, + -0.05188477225294774, + -0.056546801720329005, + -0.06125057346915195, + -0.06602733368816804, + -0.07079322764952514, + -0.07533584402986489, + -0.07953556069166848, + -0.08346181974542011, + -0.0871073338381826, + -0.09056510352661366, + -0.0938390482351863, + -0.09680118648558525, + -0.09955233418856077, + -0.10216483253248818, + -0.10470504641723376, + -0.10722408011363664, + -0.10963007586250759, + -0.11174612665174313, + -0.11360750084466384, + -0.11515932806490549, + -0.11641877745346907, + -0.11739986927867492, + -0.11792466056903358, + -0.117957489092181, + -0.11755946125984597, + -0.11679420518638242, + -0.11578216050074361, + -0.1145918639996553, + -0.11309840672744195, + -0.11139263575461601, + -0.10950711441661416, + -0.10749279882308746, + -0.10544185599062361, + -0.10323080021838245, + -0.10072497727462877, + -0.09790304506134004, + -0.09474575977192216, + -0.09129030421239416, + -0.08764857115382084, + -0.08367118414914798, + -0.07937487895335105, + -0.07484793697539685, + -0.07019120206126436, + -0.06559844949077824, + -0.06114905984855485, + -0.056738800050067664, + -0.05238297640015577, + -0.048147849790867434, + -0.04400553723749686, + -0.040053043654558244, + -0.03613991540720903, + -0.03211852681239311, + -0.02799895449500076, + -0.023847423657556974, + -0.01971749575350816, + -0.01575056700155831, + -0.011893517327553418, + -0.008124039060916704, + -0.004655273000937888, + -0.0015646560415523585, + 0.0010348161330103415, + 0.0031470904226083827, + 0.004916305449562295, + 0.006438773684798963, + 0.007599627172648624, + 0.008467304719390743, + 0.009081708012430871, + 0.009516038837250817, + 0.009934395101063693, + 0.010241836885482301, + 0.010285210034801057, + 0.010012127731577745, + 0.009400298078659289, + 0.008412688439960984, + 0.007133011792714101, + 0.0053831679965703665, + 0.0030944461528674303, + 0.00036265021982445796, + -0.002721899327062195, + -0.006011797864210131, + -0.0093890384580459, + -0.012928007058833933, + -0.016636140331544168, + -0.020336315470882695, + -0.024038299397165012, + -0.027676666189161387, + -0.031351115322921695, + -0.03524665026911611, + -0.03938554100694606, + -0.0436638845313124, + -0.04809805882609053, + -0.0526460321732666, + -0.057316248761300204, + -0.06217643288367995, + -0.0670000433576795, + -0.0716520568806554, + -0.07605484524352278, + -0.08016536090376841, + -0.0840397525886679, + -0.08775559724142806, + -0.0911715004342854, + -0.09429493585505552, + -0.0971887008715833, + -0.09988951319341918, + -0.10258083609162379, + -0.10523848483698647, + -0.10773329042396562, + -0.11001995476403588, + -0.11207619285259371, + -0.11386505562363289, + -0.1154729165441898, + -0.11673899721513331, + -0.11755533650516027, + -0.11792387571695631, + -0.11781093866980406, + -0.11735200542962626, + -0.11664228998242801, + -0.11563372907527553, + -0.11432267491662983, + -0.11277353302576261, + -0.11098428115989957, + -0.10915529831326992, + -0.10726673155948296, + -0.10519280833645, + -0.10288707895690591, + -0.10025902372779849, + -0.0973292391985539, + -0.0941916421606139, + -0.09078060292859605, + -0.08700110741386578, + -0.08291073791399661, + -0.07848311431191297, + -0.07392902753613408, + -0.06940184447784017, + -0.06488964395548782, + -0.060403301724840035, + -0.05597916698767114, + -0.05161549545737446, + -0.04744318078254712, + -0.04347854970870344, + -0.03950643050205969, + -0.035498875343996886, + -0.03138287782241796, + -0.02721381167248693, + -0.023114683450176202, + -0.019093115885515034, + -0.015054429496147364, + -0.011121873962915158, + -0.00739765000558877, + -0.0040139482952781585, + -0.0011480400242223153, + 0.0013176115303529829, + 0.0034466834637354804, + 0.005220500994094258, + 0.0066351472036648125, + 0.007715808277165271, + 0.008453248066189082, + 0.009084121446797676, + 0.00966545157673637, + 0.010098227102504126, + 0.010341036602049401, + 0.010284757658613607, + 0.009909095292011685, + 0.009289700086848129, + 0.00836023745519009, + 0.006920308024181066, + 0.004994502022930971, + 0.0025480998921891284, + -0.0002702545190760563, + -0.0032911700237291154, + -0.006535614854951002, + -0.010021214916336584, + -0.013638681015540683, + -0.01732045986919484, + -0.02097588230038295, + -0.02451805953156675, + -0.028166526783179123, + -0.031977240353982715, + -0.03595837596471649, + -0.040112701348971935, + -0.04439048065739141, + -0.048783128809848635, + -0.053434699947854915, + -0.058271652619917534, + -0.06312021753265819, + -0.06789093183204692, + -0.07240373473944531, + -0.07670210727259223, + -0.0808448903121685, + -0.08475766050740756, + -0.08835644072704431, + -0.09166945063743537, + -0.09466651218343099, + -0.09753362911912665, + -0.10037481263075469, + -0.10310299531996231, + -0.10572018068530674, + -0.10814234300350938, + -0.11034449912347771, + -0.11240015452761219, + -0.11428043701930483, + -0.11581295013913442, + -0.11696491843096403, + -0.11761052187717744, + -0.1178136122446651, + -0.117713131386264, + -0.11727440936122568, + -0.11650567252774037, + -0.11540437401491106, + -0.11397513260471284, + -0.11236681546415836, + -0.11071424835917894, + -0.1089304281011057, + -0.10702871666217958, + -0.10487536501357934, + -0.10242098746835245, + -0.09976315734436662, + -0.09688319285416092, + -0.093707391519515, + -0.09019699634738756, + -0.08627544364689779, + -0.082008813645921, + -0.07763266388974177, + -0.07315519031426604, + -0.06865524364386956, + -0.06412977775123208, + -0.05958135061279661, + -0.05515177355630872, + -0.05095679447019106, + -0.04689700878009754, + -0.04290159576484697, + -0.038882995308307175, + -0.03473890066443287, + -0.030629196178523364, + -0.026553842367442074, + -0.022463834712805462, + -0.018356289713823377, + -0.014275070096115205, + -0.010312356903891104, + -0.006730104339353324, + -0.0035642399269345984, + -0.0007462353752824486, + 0.0016918584519002482, + 0.003796559349402269, + 0.005492265709374153, + 0.00674220240530053, + 0.007690882086872931, + 0.008527183889689077, + 0.009226625706230736, + 0.009831581202175562, + 0.010219757879728519, + 0.010317817047884271 + ], + "datatype": "Float64", + "type": "series" + }, + "mid_point_x_solid_1": { + "n_values": 1001, + "time": [ + 0.0, + 0.01, + 0.02, + 0.03, + 0.04, + 0.05, + 0.06, + 0.07, + 0.08, + 0.09, + 0.1, + 0.11, + 0.12, + 0.13, + 0.14, + 0.15, + 0.16, + 0.17, + 0.18, + 0.19, + 0.2, + 0.21, + 0.22, + 0.23, + 0.24, + 0.25, + 0.26, + 0.27, + 0.28, + 0.29, + 0.3, + 0.31, + 0.32, + 0.33, + 0.34, + 0.35000000000000003, + 0.36, + 0.37, + 0.38, + 0.39, + 0.4, + 0.41000000000000003, + 0.42, + 0.43, + 0.44, + 0.45, + 0.46, + 0.47000000000000003, + 0.48, + 0.49, + 0.5, + 0.51, + 0.52, + 0.53, + 0.54, + 0.55, + 0.56, + 0.5700000000000001, + 0.58, + 0.59, + 0.6, + 0.61, + 0.62, + 0.63, + 0.64, + 0.65, + 0.66, + 0.67, + 0.68, + 0.6900000000000001, + 0.7000000000000001, + 0.71, + 0.72, + 0.73, + 0.74, + 0.75, + 0.76, + 0.77, + 0.78, + 0.79, + 0.8, + 0.81, + 0.8200000000000001, + 0.8300000000000001, + 0.84, + 0.85, + 0.86, + 0.87, + 0.88, + 0.89, + 0.9, + 0.91, + 0.92, + 0.93, + 0.9400000000000001, + 0.9500000000000001, + 0.96, + 0.97, + 0.98, + 0.99, + 1.0, + 1.01, + 1.02, + 1.03, + 1.04, + 1.05, + 1.06, + 1.07, + 1.08, + 1.09, + 1.1, + 1.11, + 1.12, + 1.1300000000000001, + 1.1400000000000001, + 1.1500000000000001, + 1.16, + 1.17, + 1.18, + 1.19, + 1.2, + 1.21, + 1.22, + 1.23, + 1.24, + 1.25, + 1.26, + 1.27, + 1.28, + 1.29, + 1.3, + 1.31, + 1.32, + 1.33, + 1.34, + 1.35, + 1.36, + 1.37, + 1.3800000000000001, + 1.3900000000000001, + 1.4000000000000001, + 1.41, + 1.42, + 1.43, + 1.44, + 1.45, + 1.46, + 1.47, + 1.48, + 1.49, + 1.5, + 1.51, + 1.52, + 1.53, + 1.54, + 1.55, + 1.56, + 1.57, + 1.58, + 1.59, + 1.6, + 1.61, + 1.62, + 1.6300000000000001, + 1.6400000000000001, + 1.6500000000000001, + 1.6600000000000001, + 1.67, + 1.68, + 1.69, + 1.7, + 1.71, + 1.72, + 1.73, + 1.74, + 1.75, + 1.76, + 1.77, + 1.78, + 1.79, + 1.8, + 1.81, + 1.82, + 1.83, + 1.84, + 1.85, + 1.86, + 1.87, + 1.8800000000000001, + 1.8900000000000001, + 1.9000000000000001, + 1.9100000000000001, + 1.92, + 1.93, + 1.94, + 1.95, + 1.96, + 1.97, + 1.98, + 1.99, + 2.0, + 2.0100000000000002, + 2.02, + 2.0300000000000002, + 2.04, + 2.05, + 2.06, + 2.07, + 2.08, + 2.09, + 2.1, + 2.11, + 2.12, + 2.13, + 2.14, + 2.15, + 2.16, + 2.17, + 2.18, + 2.19, + 2.2, + 2.21, + 2.22, + 2.23, + 2.24, + 2.25, + 2.2600000000000002, + 2.27, + 2.2800000000000002, + 2.29, + 2.3000000000000003, + 2.31, + 2.32, + 2.33, + 2.34, + 2.35, + 2.36, + 2.37, + 2.38, + 2.39, + 2.4, + 2.41, + 2.42, + 2.43, + 2.44, + 2.45, + 2.46, + 2.47, + 2.48, + 2.49, + 2.5, + 2.5100000000000002, + 2.52, + 2.5300000000000002, + 2.54, + 2.5500000000000003, + 2.56, + 2.57, + 2.58, + 2.59, + 2.6, + 2.61, + 2.62, + 2.63, + 2.64, + 2.65, + 2.66, + 2.67, + 2.68, + 2.69, + 2.7, + 2.71, + 2.72, + 2.73, + 2.74, + 2.75, + 2.7600000000000002, + 2.77, + 2.7800000000000002, + 2.79, + 2.8000000000000003, + 2.81, + 2.82, + 2.83, + 2.84, + 2.85, + 2.86, + 2.87, + 2.88, + 2.89, + 2.9, + 2.91, + 2.92, + 2.93, + 2.94, + 2.95, + 2.96, + 2.97, + 2.98, + 2.99, + 3.0, + 3.0100000000000002, + 3.02, + 3.0300000000000002, + 3.04, + 3.0500000000000003, + 3.06, + 3.0700000000000003, + 3.08, + 3.09, + 3.1, + 3.11, + 3.12, + 3.13, + 3.14, + 3.15, + 3.16, + 3.17, + 3.18, + 3.19, + 3.2, + 3.21, + 3.22, + 3.23, + 3.24, + 3.25, + 3.2600000000000002, + 3.27, + 3.2800000000000002, + 3.29, + 3.3000000000000003, + 3.31, + 3.3200000000000003, + 3.33, + 3.34, + 3.35, + 3.36, + 3.37, + 3.38, + 3.39, + 3.4, + 3.41, + 3.42, + 3.43, + 3.44, + 3.45, + 3.46, + 3.47, + 3.48, + 3.49, + 3.5, + 3.5100000000000002, + 3.52, + 3.5300000000000002, + 3.54, + 3.5500000000000003, + 3.56, + 3.5700000000000003, + 3.58, + 3.59, + 3.6, + 3.61, + 3.62, + 3.63, + 3.64, + 3.65, + 3.66, + 3.67, + 3.68, + 3.69, + 3.7, + 3.71, + 3.72, + 3.73, + 3.74, + 3.75, + 3.7600000000000002, + 3.77, + 3.7800000000000002, + 3.79, + 3.8000000000000003, + 3.81, + 3.8200000000000003, + 3.83, + 3.84, + 3.85, + 3.86, + 3.87, + 3.88, + 3.89, + 3.9, + 3.91, + 3.92, + 3.93, + 3.94, + 3.95, + 3.96, + 3.97, + 3.98, + 3.99, + 4.0, + 4.01, + 4.0200000000000005, + 4.03, + 4.04, + 4.05, + 4.0600000000000005, + 4.07, + 4.08, + 4.09, + 4.1, + 4.11, + 4.12, + 4.13, + 4.14, + 4.15, + 4.16, + 4.17, + 4.18, + 4.19, + 4.2, + 4.21, + 4.22, + 4.23, + 4.24, + 4.25, + 4.26, + 4.2700000000000005, + 4.28, + 4.29, + 4.3, + 4.3100000000000005, + 4.32, + 4.33, + 4.34, + 4.3500000000000005, + 4.36, + 4.37, + 4.38, + 4.39, + 4.4, + 4.41, + 4.42, + 4.43, + 4.44, + 4.45, + 4.46, + 4.47, + 4.48, + 4.49, + 4.5, + 4.51, + 4.5200000000000005, + 4.53, + 4.54, + 4.55, + 4.5600000000000005, + 4.57, + 4.58, + 4.59, + 4.6000000000000005, + 4.61, + 4.62, + 4.63, + 4.64, + 4.65, + 4.66, + 4.67, + 4.68, + 4.69, + 4.7, + 4.71, + 4.72, + 4.73, + 4.74, + 4.75, + 4.76, + 4.7700000000000005, + 4.78, + 4.79, + 4.8, + 4.8100000000000005, + 4.82, + 4.83, + 4.84, + 4.8500000000000005, + 4.86, + 4.87, + 4.88, + 4.89, + 4.9, + 4.91, + 4.92, + 4.93, + 4.94, + 4.95, + 4.96, + 4.97, + 4.98, + 4.99, + 5.0, + 5.01, + 5.0200000000000005, + 5.03, + 5.04, + 5.05, + 5.0600000000000005, + 5.07, + 5.08, + 5.09, + 5.1000000000000005, + 5.11, + 5.12, + 5.13, + 5.14, + 5.15, + 5.16, + 5.17, + 5.18, + 5.19, + 5.2, + 5.21, + 5.22, + 5.23, + 5.24, + 5.25, + 5.26, + 5.2700000000000005, + 5.28, + 5.29, + 5.3, + 5.3100000000000005, + 5.32, + 5.33, + 5.34, + 5.3500000000000005, + 5.36, + 5.37, + 5.38, + 5.39, + 5.4, + 5.41, + 5.42, + 5.43, + 5.44, + 5.45, + 5.46, + 5.47, + 5.48, + 5.49, + 5.5, + 5.51, + 5.5200000000000005, + 5.53, + 5.54, + 5.55, + 5.5600000000000005, + 5.57, + 5.58, + 5.59, + 5.6000000000000005, + 5.61, + 5.62, + 5.63, + 5.64, + 5.65, + 5.66, + 5.67, + 5.68, + 5.69, + 5.7, + 5.71, + 5.72, + 5.73, + 5.74, + 5.75, + 5.76, + 5.7700000000000005, + 5.78, + 5.79, + 5.8, + 5.8100000000000005, + 5.82, + 5.83, + 5.84, + 5.8500000000000005, + 5.86, + 5.87, + 5.88, + 5.89, + 5.9, + 5.91, + 5.92, + 5.93, + 5.94, + 5.95, + 5.96, + 5.97, + 5.98, + 5.99, + 6.0, + 6.01, + 6.0200000000000005, + 6.03, + 6.04, + 6.05, + 6.0600000000000005, + 6.07, + 6.08, + 6.09, + 6.1000000000000005, + 6.11, + 6.12, + 6.13, + 6.140000000000001, + 6.15, + 6.16, + 6.17, + 6.18, + 6.19, + 6.2, + 6.21, + 6.22, + 6.23, + 6.24, + 6.25, + 6.26, + 6.2700000000000005, + 6.28, + 6.29, + 6.3, + 6.3100000000000005, + 6.32, + 6.33, + 6.34, + 6.3500000000000005, + 6.36, + 6.37, + 6.38, + 6.390000000000001, + 6.4, + 6.41, + 6.42, + 6.43, + 6.44, + 6.45, + 6.46, + 6.47, + 6.48, + 6.49, + 6.5, + 6.51, + 6.5200000000000005, + 6.53, + 6.54, + 6.55, + 6.5600000000000005, + 6.57, + 6.58, + 6.59, + 6.6000000000000005, + 6.61, + 6.62, + 6.63, + 6.640000000000001, + 6.65, + 6.66, + 6.67, + 6.68, + 6.69, + 6.7, + 6.71, + 6.72, + 6.73, + 6.74, + 6.75, + 6.76, + 6.7700000000000005, + 6.78, + 6.79, + 6.8, + 6.8100000000000005, + 6.82, + 6.83, + 6.84, + 6.8500000000000005, + 6.86, + 6.87, + 6.88, + 6.890000000000001, + 6.9, + 6.91, + 6.92, + 6.93, + 6.94, + 6.95, + 6.96, + 6.97, + 6.98, + 6.99, + 7.0, + 7.01, + 7.0200000000000005, + 7.03, + 7.04, + 7.05, + 7.0600000000000005, + 7.07, + 7.08, + 7.09, + 7.1000000000000005, + 7.11, + 7.12, + 7.13, + 7.140000000000001, + 7.15, + 7.16, + 7.17, + 7.18, + 7.19, + 7.2, + 7.21, + 7.22, + 7.23, + 7.24, + 7.25, + 7.26, + 7.2700000000000005, + 7.28, + 7.29, + 7.3, + 7.3100000000000005, + 7.32, + 7.33, + 7.34, + 7.3500000000000005, + 7.36, + 7.37, + 7.38, + 7.390000000000001, + 7.4, + 7.41, + 7.42, + 7.43, + 7.44, + 7.45, + 7.46, + 7.47, + 7.48, + 7.49, + 7.5, + 7.51, + 7.5200000000000005, + 7.53, + 7.54, + 7.55, + 7.5600000000000005, + 7.57, + 7.58, + 7.59, + 7.6000000000000005, + 7.61, + 7.62, + 7.63, + 7.640000000000001, + 7.65, + 7.66, + 7.67, + 7.68, + 7.69, + 7.7, + 7.71, + 7.72, + 7.73, + 7.74, + 7.75, + 7.76, + 7.7700000000000005, + 7.78, + 7.79, + 7.8, + 7.8100000000000005, + 7.82, + 7.83, + 7.84, + 7.8500000000000005, + 7.86, + 7.87, + 7.88, + 7.890000000000001, + 7.9, + 7.91, + 7.92, + 7.930000000000001, + 7.94, + 7.95, + 7.96, + 7.97, + 7.98, + 7.99, + 8.0, + 8.01, + 8.02, + 8.03, + 8.040000000000001, + 8.05, + 8.06, + 8.07, + 8.08, + 8.09, + 8.1, + 8.11, + 8.120000000000001, + 8.13, + 8.14, + 8.15, + 8.16, + 8.17, + 8.18, + 8.19, + 8.2, + 8.21, + 8.22, + 8.23, + 8.24, + 8.25, + 8.26, + 8.27, + 8.28, + 8.290000000000001, + 8.3, + 8.31, + 8.32, + 8.33, + 8.34, + 8.35, + 8.36, + 8.370000000000001, + 8.38, + 8.39, + 8.4, + 8.41, + 8.42, + 8.43, + 8.44, + 8.45, + 8.46, + 8.47, + 8.48, + 8.49, + 8.5, + 8.51, + 8.52, + 8.53, + 8.540000000000001, + 8.55, + 8.56, + 8.57, + 8.58, + 8.59, + 8.6, + 8.61, + 8.620000000000001, + 8.63, + 8.64, + 8.65, + 8.66, + 8.67, + 8.68, + 8.69, + 8.700000000000001, + 8.71, + 8.72, + 8.73, + 8.74, + 8.75, + 8.76, + 8.77, + 8.78, + 8.790000000000001, + 8.8, + 8.81, + 8.82, + 8.83, + 8.84, + 8.85, + 8.86, + 8.870000000000001, + 8.88, + 8.89, + 8.9, + 8.91, + 8.92, + 8.93, + 8.94, + 8.950000000000001, + 8.96, + 8.97, + 8.98, + 8.99, + 9.0, + 9.01, + 9.02, + 9.03, + 9.040000000000001, + 9.05, + 9.06, + 9.07, + 9.08, + 9.09, + 9.1, + 9.11, + 9.120000000000001, + 9.13, + 9.14, + 9.15, + 9.16, + 9.17, + 9.18, + 9.19, + 9.200000000000001, + 9.21, + 9.22, + 9.23, + 9.24, + 9.25, + 9.26, + 9.27, + 9.28, + 9.290000000000001, + 9.3, + 9.31, + 9.32, + 9.33, + 9.34, + 9.35, + 9.36, + 9.370000000000001, + 9.38, + 9.39, + 9.4, + 9.41, + 9.42, + 9.43, + 9.44, + 9.450000000000001, + 9.46, + 9.47, + 9.48, + 9.49, + 9.5, + 9.51, + 9.52, + 9.53, + 9.540000000000001, + 9.55, + 9.56, + 9.57, + 9.58, + 9.59, + 9.6, + 9.61, + 9.620000000000001, + 9.63, + 9.64, + 9.65, + 9.66, + 9.67, + 9.68, + 9.69, + 9.700000000000001, + 9.71, + 9.72, + 9.73, + 9.74, + 9.75, + 9.76, + 9.77, + 9.78, + 9.790000000000001, + 9.8, + 9.81, + 9.82, + 9.83, + 9.84, + 9.85, + 9.86, + 9.870000000000001, + 9.88, + 9.89, + 9.9, + 9.91, + 9.92, + 9.93, + 9.94, + 9.950000000000001, + 9.96, + 9.97, + 9.98, + 9.99, + 10.0 + ], + "system_name": "solid", + "values": [ + 0.4, + 0.39999999975087647, + 0.3999997685917326, + 0.3999980137707291, + 0.3999927035937933, + 0.39998279780798035, + 0.39996708478954407, + 0.39994324690449257, + 0.3999054272915937, + 0.3998385476275208, + 0.39972986433370244, + 0.39956914083785855, + 0.3993411419477183, + 0.3990507189696701, + 0.3987049507039811, + 0.3983194848375019, + 0.39789643635129474, + 0.39743187443911954, + 0.3969242731866516, + 0.39636939639367486, + 0.39575357585903514, + 0.3950587807517414, + 0.394268590060281, + 0.3933498695098687, + 0.3923125639857112, + 0.3911607716871264, + 0.3899176555285561, + 0.3886015441238695, + 0.38724621060639597, + 0.38587975210030734, + 0.384559848549976, + 0.3833323652656341, + 0.38220636569128585, + 0.3811777964152057, + 0.38019108301195315, + 0.3792488795717905, + 0.37833363049529833, + 0.37744282298516924, + 0.3765530005497395, + 0.3756639668546601, + 0.37476229786995274, + 0.37389929687005496, + 0.37314156394437736, + 0.37253611127955955, + 0.3721353250472256, + 0.3719330425646021, + 0.3719502219788595, + 0.37218640572677414, + 0.3726547429527143, + 0.3733101418729932, + 0.37410527928973836, + 0.3749472352954738, + 0.3758132708957546, + 0.37669141777890214, + 0.3775744612095784, + 0.3784792973606718, + 0.3793912235191037, + 0.38032341243390455, + 0.38129513386835606, + 0.38236061048922704, + 0.38352567112239944, + 0.3848021312828017, + 0.3861365069312178, + 0.38749626241661506, + 0.3888460181685501, + 0.39015034379279856, + 0.3913873590475208, + 0.3925184956231022, + 0.39352222190063874, + 0.39439701642224856, + 0.39516955180131563, + 0.3958474493901661, + 0.3964582203109533, + 0.3970077884527934, + 0.39750585823685153, + 0.3979617917452567, + 0.39838519146830725, + 0.3987738561001889, + 0.39911490678168826, + 0.3993923732034911, + 0.39960264608326895, + 0.3997548204281139, + 0.39985206799487794, + 0.39991182767472405, + 0.3999486091393075, + 0.39997168169953656, + 0.39998593635908597, + 0.39999408207161435, + 0.3999990887926806, + 0.4000006851649551, + 0.3999996034495466, + 0.3999994388085971, + 0.4000003184391625, + 0.3999994161078275, + 0.39999609374487727, + 0.39999057610525035, + 0.39997973019260247, + 0.39996375420790137, + 0.3999391160717518, + 0.3998963999898439, + 0.3998229430485824, + 0.39970342303488493, + 0.39952705681716444, + 0.39928914449739383, + 0.39898881209400533, + 0.398644065368061, + 0.39825437597905083, + 0.39782418763958394, + 0.3973534009444251, + 0.3968439756608539, + 0.3962862600377282, + 0.3956614962298161, + 0.39494407286291233, + 0.3941140260960919, + 0.39317142314672787, + 0.39210663222734543, + 0.39094421628546444, + 0.3896828661535189, + 0.38834717205789565, + 0.38697495884101896, + 0.38562963704204256, + 0.38434921472980077, + 0.38316566089414944, + 0.38206617467356874, + 0.381025332698331, + 0.3800473263493643, + 0.37910835209535293, + 0.37821057601778074, + 0.3773147364253905, + 0.3764043904810585, + 0.37546872868252973, + 0.3745588615200806, + 0.3737138378605628, + 0.3730031804767219, + 0.3724509735680446, + 0.3720680311444684, + 0.37190028040803697, + 0.37196274767375137, + 0.3722800067633465, + 0.37281064500781896, + 0.3735024452199343, + 0.3742738418857634, + 0.3751040699982606, + 0.37595679076277255, + 0.37683901139017356, + 0.37773226345111166, + 0.3786171878454986, + 0.3795108516094124, + 0.38043150766204265, + 0.38143265353701983, + 0.3825395350367589, + 0.3837565111223604, + 0.385039501437614, + 0.3863801258800954, + 0.3877378993806518, + 0.389092908482974, + 0.3904009899516654, + 0.39161352083085677, + 0.3927066210820967, + 0.3936720705274129, + 0.3945238796823642, + 0.395276133812861, + 0.3959500647050181, + 0.3965448460336702, + 0.3970828093022105, + 0.3975726949330792, + 0.398030997699756, + 0.3984597800925539, + 0.3988461075697446, + 0.39917366960275413, + 0.3994369253332962, + 0.3996356756317122, + 0.3997741213416085, + 0.39986500792757784, + 0.3999197924239995, + 0.3999543986477541, + 0.3999753410364855, + 0.39998833255815547, + 0.3999962373976589, + 0.3999994465841923, + 0.3999998921145806, + 0.3999997861000775, + 0.39999977247748353, + 0.3999994081609662, + 0.39999873518235185, + 0.399995336670144, + 0.39998769088255137, + 0.3999768277709659, + 0.3999611116159443, + 0.39993432331022943, + 0.39988535548312015, + 0.3998029909998203, + 0.3996740642262948, + 0.399484533774517, + 0.3992353389833877, + 0.39893432657823974, + 0.39858046396732955, + 0.39818390162460643, + 0.3977464365204667, + 0.3972800053280246, + 0.39677228678857823, + 0.3962048553063313, + 0.395556356723011, + 0.39481130896194255, + 0.39395580880561326, + 0.39298721953221594, + 0.39191264194955416, + 0.3907175867403981, + 0.38942883863814914, + 0.38807517137545994, + 0.3867185067342322, + 0.38540449143324984, + 0.3841671607896112, + 0.3829976200747143, + 0.38190078747350015, + 0.380871167927429, + 0.3799077348946444, + 0.3790003070263645, + 0.3780895526303543, + 0.3771648372753321, + 0.3762128826560879, + 0.3752702545075975, + 0.37436927673162274, + 0.3735702475418869, + 0.37287947932962573, + 0.37234013633105933, + 0.3719909026873043, + 0.37187540994227636, + 0.37202969204789516, + 0.37241070360596323, + 0.37297811047712026, + 0.3736582354874149, + 0.3744252005105708, + 0.3752500012538897, + 0.37612724027091277, + 0.3770014079833954, + 0.3778690682498705, + 0.37872910738786336, + 0.3796075140203919, + 0.3805577700890823, + 0.3816016547448476, + 0.3827463716053318, + 0.3839696359576948, + 0.38526756507471244, + 0.38661431345310665, + 0.38799925642122557, + 0.38935516596999614, + 0.390644589107269, + 0.3918226583842312, + 0.39287484019983726, + 0.393814986557815, + 0.39465226466648917, + 0.3953921390438477, + 0.3960413688139324, + 0.39662481129569344, + 0.3971510884358195, + 0.397646399338554, + 0.3981105949923677, + 0.3985380629616003, + 0.3989130201795993, + 0.39922671902901197, + 0.39947805154188853, + 0.39966676313248234, + 0.3997944376592648, + 0.39987628470256115, + 0.3999283696124835, + 0.39995927680960575, + 0.39997818265488333, + 0.3999901267872945, + 0.3999975689708351, + 0.3999999690220473, + 0.3999992485603873, + 0.399999340231284, + 0.39999993085282803, + 0.39999957169514166, + 0.39999768573476424, + 0.3999937132874755, + 0.3999858403147778, + 0.39997455791595043, + 0.3999570042110395, + 0.39992648427303046, + 0.3998733653442186, + 0.39978232224012933, + 0.39964116579297204, + 0.3994428272053311, + 0.3991855874298836, + 0.3988732514782191, + 0.39851203891585985, + 0.3981090069140642, + 0.39768026926650707, + 0.39721325236160426, + 0.39669894668900757, + 0.3961128716606319, + 0.39544053080903596, + 0.39467100388775955, + 0.3938005897410062, + 0.3928125612161865, + 0.3916993759384476, + 0.3904754183995048, + 0.3891602880678682, + 0.3878196748525996, + 0.38648781778331476, + 0.3852036125307019, + 0.38397276004004655, + 0.38281480077318325, + 0.38173219422630955, + 0.3807400345318644, + 0.3798021264956212, + 0.3788778566213145, + 0.3779453498277844, + 0.3769786876407886, + 0.37601925490759497, + 0.37508678148653224, + 0.37421561433728423, + 0.3734137010366485, + 0.3727335192781485, + 0.37221355352646746, + 0.3719331560970065, + 0.3719097980680135, + 0.37212540818761325, + 0.372545099995246, + 0.3731073019684151, + 0.3737986320783386, + 0.37458340380833854, + 0.37543191758776245, + 0.3762902243108387, + 0.3771455138819726, + 0.3779728877430121, + 0.3788241506675563, + 0.37973009338099395, + 0.38071429458578704, + 0.3817869255100324, + 0.38293695388456045, + 0.38417464184643485, + 0.38549569002820294, + 0.3868819368507554, + 0.3882698505545929, + 0.389618479599653, + 0.3908661331813008, + 0.39201030808656034, + 0.3930435538474126, + 0.39396473394270465, + 0.3947797893168826, + 0.3954953772803462, + 0.39612706728097613, + 0.3966962789540493, + 0.3972302527032201, + 0.39772827057244775, + 0.39819369283333506, + 0.39860932302734536, + 0.3989727508741237, + 0.39927931219232976, + 0.3995203383296346, + 0.3996946468833505, + 0.39981326020824626, + 0.39988838071609323, + 0.39993439398300823, + 0.3999626086830688, + 0.3999808894855939, + 0.3999930074876597, + 0.39999778992805457, + 0.3999992790494716, + 0.39999987418313665, + 0.39999965348870353, + 0.3999993089366585, + 0.39999961685024116, + 0.39999734553246064, + 0.3999914682381586, + 0.3999832397535043, + 0.39997119265013353, + 0.39995230611785143, + 0.3999183935411651, + 0.39985961012493787, + 0.39976127208893797, + 0.3996087291760632, + 0.39939899368175313, + 0.399131615667237, + 0.39880769856960635, + 0.3984416463513996, + 0.39804658806084775, + 0.39761823075843866, + 0.3971482598953851, + 0.39661305286354853, + 0.3960105968597554, + 0.39532311498196254, + 0.3945385837626081, + 0.3936402271362414, + 0.3926205071742308, + 0.39146989916815966, + 0.39021709282844774, + 0.3889124437718885, + 0.38758094471165955, + 0.3862691278904769, + 0.38498585102121474, + 0.3837681015398386, + 0.38263384379609794, + 0.3815990777699244, + 0.38062638913329905, + 0.3796849515401633, + 0.37873072026159227, + 0.37776316717770364, + 0.37680313901251783, + 0.3758457988153868, + 0.37492260769314123, + 0.3740384034058073, + 0.37323658416315575, + 0.3725720792400895, + 0.37213136093294363, + 0.3719260298435925, + 0.371970259363182, + 0.3722181266696069, + 0.3726452723024399, + 0.37323901104447516, + 0.37395940397327804, + 0.3747719026197295, + 0.37560688497111483, + 0.3764344217376344, + 0.3772442321464853, + 0.37807977613005916, + 0.3789430826255356, + 0.3798770618950195, + 0.3808772023326025, + 0.3819497131933717, + 0.3831198262897129, + 0.3843937568068654, + 0.38575761725265845, + 0.3871575970810396, + 0.3885395485584856, + 0.3898496146919153, + 0.3910787811598162, + 0.3921984816343902, + 0.3932136656451785, + 0.39411165333335096, + 0.3948949231573502, + 0.3955845731453656, + 0.3962075733712076, + 0.39678086974391963, + 0.39731438290975746, + 0.3978135145929172, + 0.3982662489932458, + 0.39867736638122714, + 0.39903499748566196, + 0.3993323598215013, + 0.3995607630669147, + 0.3997214146661284, + 0.3998286606687495, + 0.39989782406846414, + 0.39993956049268775, + 0.3999663385852537, + 0.39998414521742603, + 0.39999419757700116, + 0.3999984682749843, + 0.3999993359435775, + 0.39999961452506627, + 0.4000000741825685, + 0.3999999999740929, + 0.3999987393339958, + 0.3999956631474058, + 0.3999892323805484, + 0.3999799655225598, + 0.39996744125408656, + 0.3999469486570545, + 0.39991211843234, + 0.39984580115205376, + 0.39973640992620085, + 0.3995741199791836, + 0.3993515136238631, + 0.39907053936346276, + 0.39874347257477605, + 0.39838126342450864, + 0.39798837357630307, + 0.39755496953816327, + 0.39706793383976474, + 0.3965262444487155, + 0.3959083033446711, + 0.3952080504361328, + 0.394400087838443, + 0.39346833439230333, + 0.3924040011556366, + 0.39123382627907344, + 0.3899788041258084, + 0.388673291856768, + 0.38735021851224516, + 0.3860290106485138, + 0.38476495565252333, + 0.3835780841680076, + 0.38249187098202764, + 0.38147924677990447, + 0.3805065080062141, + 0.3795318195929858, + 0.3785672484443111, + 0.3776006121690369, + 0.3766375521483082, + 0.37568335791329727, + 0.37473161497583973, + 0.3738349067745596, + 0.37305215799996033, + 0.3724612019351851, + 0.37208646791239264, + 0.37194618898933224, + 0.3720079982199936, + 0.3722885560193887, + 0.37275847808459395, + 0.37339569645102383, + 0.37415133416337365, + 0.3749448864255055, + 0.3757467262238321, + 0.37654288450731055, + 0.3773567643377601, + 0.37819540405867935, + 0.3790876024199957, + 0.38001517905378446, + 0.38101524250410906, + 0.3821095236342425, + 0.3833238368885702, + 0.3846488733096524, + 0.38603140519249907, + 0.3874236814367707, + 0.38878261082796395, + 0.3900805500755632, + 0.39128755632573897, + 0.3923976059719915, + 0.3933772101493126, + 0.3942393014764774, + 0.39499744953073557, + 0.39567695665852065, + 0.3962961930589216, + 0.3968700703663698, + 0.39740043112353945, + 0.39788818662575015, + 0.39833988489187905, + 0.3987465474061265, + 0.3991021523507573, + 0.399384209375753, + 0.39959509775852803, + 0.3997446268217933, + 0.39984320177884825, + 0.3999046230452398, + 0.3999446484930809, + 0.3999711760086041, + 0.3999872397131938, + 0.399994839799771, + 0.3999985508477, + 0.40000023342149593, + 0.39999986902296036, + 0.3999994204374176, + 0.40000003067189976, + 0.3999984086225179, + 0.3999929382116391, + 0.3999860607224217, + 0.3999769003621363, + 0.3999645655494562, + 0.39994377524919994, + 0.399903146380398, + 0.39983060209562604, + 0.39970945464147056, + 0.399533548891733, + 0.399299030895069, + 0.3990126896516049, + 0.39868658581506505, + 0.39832628910617796, + 0.3979258569081659, + 0.3974820840509239, + 0.39699023374938225, + 0.3964377344349868, + 0.39581399274012913, + 0.39508631934075317, + 0.394244560407618, + 0.39327617906258083, + 0.3921916826316257, + 0.39100530942789813, + 0.38974817591711675, + 0.38843195891068716, + 0.38709652539147055, + 0.3857937464970981, + 0.38455910579909, + 0.38342576825139163, + 0.38236087774881167, + 0.3813452436209261, + 0.38035041356823535, + 0.3793795618728514, + 0.37841172494910985, + 0.37745339795232735, + 0.3764718796040298, + 0.3754789117721366, + 0.3745168661418613, + 0.3736353044309834, + 0.37291450074983723, + 0.37238086765195944, + 0.3720563558811711, + 0.37193417402561024, + 0.3720449972606178, + 0.372372685423961, + 0.3729125702709978, + 0.373581085100413, + 0.37431887539093983, + 0.3750862197352162, + 0.3758622189089094, + 0.37666363112424417, + 0.3774866509297669, + 0.37833417556560106, + 0.3792034311369132, + 0.38013738934140645, + 0.3811528647445794, + 0.3823017961993247, + 0.38356467794643656, + 0.38491031220683386, + 0.3862925102482185, + 0.3876726125922815, + 0.389025127395567, + 0.3903159160035535, + 0.3915099531976712, + 0.39257639633181446, + 0.39352460366640896, + 0.39435438513276055, + 0.3951007313218493, + 0.39577563163613816, + 0.3963908077057172, + 0.39695335152370004, + 0.3974760933913134, + 0.3979645817416738, + 0.3984180193181087, + 0.39882447683876404, + 0.3991625082693523, + 0.3994304260140289, + 0.39962666061107743, + 0.39976419395642215, + 0.3998550516809584, + 0.3999130341106381, + 0.39995095125553887, + 0.3999748818663137, + 0.3999888000457903, + 0.39999629766765404, + 0.3999992873717136, + 0.39999968046960244, + 0.399999786593869, + 0.400000031227346, + 0.39999899623931867, + 0.39999618672059073, + 0.3999908703535771, + 0.3999833317123974, + 0.3999747361883479, + 0.3999624869018363, + 0.39993986089126726, + 0.39989331608168704, + 0.3998096675832021, + 0.39967960535343816, + 0.3994902793894601, + 0.39924818795811523, + 0.3989600578070003, + 0.39863308226242783, + 0.39826495951878205, + 0.3978570501538612, + 0.39740970375739787, + 0.39691675172453345, + 0.39635631359533824, + 0.3957051445402176, + 0.3949515772996186, + 0.39407395251251387, + 0.3930834511942966, + 0.39198337038246983, + 0.3907853972483996, + 0.3894986730972446, + 0.38817277465703454, + 0.38684770684065817, + 0.38557987329349447, + 0.3843926802705917, + 0.3832731376587904, + 0.3822146773645399, + 0.3811872870412485, + 0.38020265173857315, + 0.37923934417584815, + 0.3782794952693759, + 0.3772835817734579, + 0.3762720732525387, + 0.3752579062225191, + 0.37430840268631155, + 0.3734832929346857, + 0.37280294025750804, + 0.3723013219533583, + 0.37199611834934354, + 0.3719305606831565, + 0.3721074544481819, + 0.3725147861703484, + 0.37307511675816346, + 0.3737440027812757, + 0.37445471275564146, + 0.375208449221909, + 0.3759980965851516, + 0.3768019167087485, + 0.37761626809920334, + 0.37844046876779547, + 0.3793067457588364, + 0.3802540882202206, + 0.38133373537337417, + 0.38252084031730793, + 0.3838096640495693, + 0.3851535749363682, + 0.38653776038336973, + 0.3879294498349564, + 0.3892819761438429, + 0.39055413023786556, + 0.391710921973163, + 0.3927415187148356, + 0.39365334356815956, + 0.3944769149672955, + 0.3952104848370023, + 0.39587425950831656, + 0.396475523686294, + 0.39703144367202314, + 0.39755450474500653, + 0.3980501580381896, + 0.39850301277667044, + 0.3988965190984922, + 0.3992191619697347, + 0.39946944714996846, + 0.399656666018076, + 0.39978321352813323, + 0.39986669711519096, + 0.39992153483893184, + 0.39995670485756446, + 0.3999778855666164, + 0.3999900888509506, + 0.39999713622332944, + 0.3999998442782547, + 0.3999993363950667, + 0.39999928305663907, + 0.39999990180702094, + 0.39999842355105875, + 0.3999937904414548, + 0.39998847710391333, + 0.3999817681243615, + 0.39997363483248505, + 0.39996006224736597, + 0.39993261973199506, + 0.399880770511802, + 0.3997882163939158, + 0.3996445738380997, + 0.39944936121774066, + 0.39920080881519887, + 0.3989086186066893, + 0.398571891706838, + 0.3981989577932568, + 0.39779212714078743, + 0.3973467536861819, + 0.3968434115885348, + 0.396264045974167, + 0.39558710895315286, + 0.39480090535636847, + 0.39390878497859216, + 0.3928960030548, + 0.3917730762788311, + 0.3905424010916847, + 0.38924154696157043, + 0.3879161946393369, + 0.38662962941110196, + 0.38539418008950704, + 0.38422366721588563, + 0.3831094613004334, + 0.38204611861720555, + 0.3810470715492806, + 0.38007612071714025, + 0.3791108576210728, + 0.37811339354951323, + 0.3770884130799685, + 0.37604742398357704, + 0.3750568942333477, + 0.37413891843010894, + 0.3733378322473657, + 0.37267827935889236, + 0.3721950304914356, + 0.371951738693764, + 0.37196447909461033, + 0.3722199450607851, + 0.3726546785620345, + 0.3732213282006292, + 0.37386456136599966, + 0.37459162956073344, + 0.37535565749596733, + 0.37614389985887964, + 0.3769307881641287, + 0.3777128939647476, + 0.3785286586571472, + 0.3794186524073383, + 0.38041903625052875, + 0.3815288286826547, + 0.38274500779410187, + 0.38403104806121935, + 0.3853976079202189, + 0.3868005662885306, + 0.3882007653294385, + 0.38954101377456835, + 0.39077513238850786, + 0.39189042871159063, + 0.39289438813580285, + 0.3937956484476981, + 0.3945974981650745, + 0.395318453092196, + 0.39596099169794385, + 0.39655497007726453, + 0.3971136382872568, + 0.39764551721949876, + 0.3981403449353937, + 0.39858319060115643, + 0.39896004091202975, + 0.39927058279812255, + 0.3995110022081293, + 0.39968270761824654, + 0.3998016242253241, + 0.399878691234675, + 0.39992893508174215, + 0.399960287210917, + 0.39998027442039574, + 0.3999926478411091, + 0.39999758999072343, + 0.3999985370668351, + 0.399999387504309, + 0.4000000406854919, + 0.3999989591707115, + 0.39999697596078215, + 0.39999291743847243, + 0.3999865375566009, + 0.39997974935429537, + 0.3999709978421504, + 0.3999563261871862, + 0.39992542688022853, + 0.3998653706516252, + 0.39976527289731406, + 0.39961245514968446, + 0.3994068721255536, + 0.39915328200990524, + 0.398849803451555, + 0.39851039636453495, + 0.3981380995569299, + 0.3977354978266683, + 0.397283227518802, + 0.39676308553184847, + 0.39615728614875645, + 0.3954610836500264, + 0.3946589599264458, + 0.3937393183926086, + 0.39270285310628766, + 0.39153981046124786, + 0.39028794934777694, + 0.388988343121987, + 0.38769252841931984, + 0.3864234752251136, + 0.38520573084861076, + 0.38403506574210616, + 0.38293687113253105, + 0.38190682285291006, + 0.3809211906169942, + 0.3799530430604693, + 0.37895120957438055, + 0.3779194183662454, + 0.37687430136640976, + 0.3758554848763128, + 0.3748731556663674, + 0.37397452366284467, + 0.3731697708480556, + 0.3725316200246957, + 0.3721173985629222, + 0.3719554584113086, + 0.37204455170437944, + 0.37232871697779246, + 0.3727724307944743, + 0.37333750658561754, + 0.3740110252465423, + 0.3747426636172125, + 0.3755163209872489, + 0.3762712893332508, + 0.3770220559874597, + 0.3777980529797777, + 0.3786350972786615, + 0.37956656380082565, + 0.38059630049443655, + 0.3817222891260382, + 0.3829415307449899, + 0.3842667180550403, + 0.3856582147569749, + 0.38708592937900244, + 0.3884692815390493, + 0.38977410917388966, + 0.39097564686303726, + 0.39206761301873094, + 0.39305179993710215, + 0.3939342540706393, + 0.39471568593873996, + 0.3954074258933849, + 0.39604549553661916, + 0.39663994189548646, + 0.3972081175416107, + 0.39773930844356603, + 0.3982251667420313, + 0.39865492252870954, + 0.3990236358525855, + 0.3993218109951477, + 0.3995495422039558, + 0.3997097237867153, + 0.3998169227369808, + 0.3998890233232952, + 0.39993457853321335, + 0.39996423457666447, + 0.3999831016582412, + 0.39999350115434884, + 0.39999761352429825, + 0.3999986197338261, + 0.39999926689212734, + 0.4000000160441306, + 0.3999990999556508, + 0.39999554394666675, + 0.39999090933055176, + 0.3999845747055973, + 0.3999769650364866, + 0.3999681177594456, + 0.3999514207578778, + 0.39991781109351704, + 0.39985136921098857, + 0.3997396311086307, + 0.39957883881096473, + 0.3993635267940255, + 0.3990971268858027, + 0.3987917101362144, + 0.3984530835374079, + 0.3980878969757125, + 0.39767651569590323, + 0.3972093287684575, + 0.39667123257874887, + 0.3960522939737397, + 0.3953352086486521, + 0.3945128905838373, + 0.3935639691241302, + 0.392482919032576, + 0.391299990224501, + 0.3900425065403315, + 0.38876026175137873, + 0.387474938216629, + 0.38621490164009564, + 0.384996679507083, + 0.3838576036020594, + 0.38278958153640846, + 0.3817881230625163, + 0.3807999333408953, + 0.37979159622332703, + 0.3787677785760734, + 0.3777246394664662, + 0.3766887406888693, + 0.37566913131749297, + 0.3746913725912662, + 0.37377069324493456, + 0.37299692707154314, + 0.3724162894083513, + 0.3720872513725028, + 0.3719963031523839, + 0.37211161247645164, + 0.3724146241114546, + 0.3728757533872519, + 0.3734790331864639, + 0.37417362669363047, + 0.3749101236149626, + 0.3756338009515502, + 0.37636657425842357, + 0.37710634444596874, + 0.37790182918838267, + 0.378771122542093, + 0.3797204304409463, + 0.38075655397326214, + 0.3818978660202394, + 0.3831592582869024, + 0.3845235097013534, + 0.3859482829177346, + 0.3873563669289275, + 0.3887195439468662, + 0.3899919045022865, + 0.39117350022436703, + 0.392250005162869, + 0.3932120316552729, + 0.3940594943970294, + 0.39481448220803805, + 0.3955001530399134, + 0.39613470514889104, + 0.39673892159230606, + 0.39730258994139533, + 0.3978276549995741, + 0.39830384328779683, + 0.3987279395256311, + 0.3990883884406058, + 0.39937424477256245, + 0.3995835871314519, + 0.39973197230910656, + 0.39983206355645773, + 0.39989677986645844, + 0.3999399172225342, + 0.39996840245859616, + 0.3999859106282609, + 0.3999935989342228, + 0.39999708745459334, + 0.3999993537077946, + 0.4000003337412692, + 0.399999428284417, + 0.3999981012608997 + ], + "datatype": "Float64", + "type": "series" + } +} diff --git a/validation/oscillating_beam_2d/validation_reference_oscillating_beam_2d_35.json b/validation/oscillating_beam_2d/validation_reference_oscillating_beam_2d_35.json new file mode 100644 index 000000000..4cb325e0f --- /dev/null +++ b/validation/oscillating_beam_2d/validation_reference_oscillating_beam_2d_35.json @@ -0,0 +1,4031 @@ +{ + "meta": { + "julia_version": "1.10.1", + "solver_version": "c6184f4-dirty", + "solver_name": "TrixiParticles.jl" + }, + "mid_point_y_solid_1": { + "n_values": 1001, + "time": [ + 0.0, + 0.01, + 0.02, + 0.03, + 0.04, + 0.05, + 0.06, + 0.07, + 0.08, + 0.09, + 0.1, + 0.11, + 0.12, + 0.13, + 0.14, + 0.15, + 0.16, + 0.17, + 0.18, + 0.19, + 0.2, + 0.21, + 0.22, + 0.23, + 0.24, + 0.25, + 0.26, + 0.27, + 0.28, + 0.29, + 0.3, + 0.31, + 0.32, + 0.33, + 0.34, + 0.35000000000000003, + 0.36, + 0.37, + 0.38, + 0.39, + 0.4, + 0.41000000000000003, + 0.42, + 0.43, + 0.44, + 0.45, + 0.46, + 0.47000000000000003, + 0.48, + 0.49, + 0.5, + 0.51, + 0.52, + 0.53, + 0.54, + 0.55, + 0.56, + 0.5700000000000001, + 0.58, + 0.59, + 0.6, + 0.61, + 0.62, + 0.63, + 0.64, + 0.65, + 0.66, + 0.67, + 0.68, + 0.6900000000000001, + 0.7000000000000001, + 0.71, + 0.72, + 0.73, + 0.74, + 0.75, + 0.76, + 0.77, + 0.78, + 0.79, + 0.8, + 0.81, + 0.8200000000000001, + 0.8300000000000001, + 0.84, + 0.85, + 0.86, + 0.87, + 0.88, + 0.89, + 0.9, + 0.91, + 0.92, + 0.93, + 0.9400000000000001, + 0.9500000000000001, + 0.96, + 0.97, + 0.98, + 0.99, + 1.0, + 1.01, + 1.02, + 1.03, + 1.04, + 1.05, + 1.06, + 1.07, + 1.08, + 1.09, + 1.1, + 1.11, + 1.12, + 1.1300000000000001, + 1.1400000000000001, + 1.1500000000000001, + 1.16, + 1.17, + 1.18, + 1.19, + 1.2, + 1.21, + 1.22, + 1.23, + 1.24, + 1.25, + 1.26, + 1.27, + 1.28, + 1.29, + 1.3, + 1.31, + 1.32, + 1.33, + 1.34, + 1.35, + 1.36, + 1.37, + 1.3800000000000001, + 1.3900000000000001, + 1.4000000000000001, + 1.41, + 1.42, + 1.43, + 1.44, + 1.45, + 1.46, + 1.47, + 1.48, + 1.49, + 1.5, + 1.51, + 1.52, + 1.53, + 1.54, + 1.55, + 1.56, + 1.57, + 1.58, + 1.59, + 1.6, + 1.61, + 1.62, + 1.6300000000000001, + 1.6400000000000001, + 1.6500000000000001, + 1.6600000000000001, + 1.67, + 1.68, + 1.69, + 1.7, + 1.71, + 1.72, + 1.73, + 1.74, + 1.75, + 1.76, + 1.77, + 1.78, + 1.79, + 1.8, + 1.81, + 1.82, + 1.83, + 1.84, + 1.85, + 1.86, + 1.87, + 1.8800000000000001, + 1.8900000000000001, + 1.9000000000000001, + 1.9100000000000001, + 1.92, + 1.93, + 1.94, + 1.95, + 1.96, + 1.97, + 1.98, + 1.99, + 2.0, + 2.0100000000000002, + 2.02, + 2.0300000000000002, + 2.04, + 2.05, + 2.06, + 2.07, + 2.08, + 2.09, + 2.1, + 2.11, + 2.12, + 2.13, + 2.14, + 2.15, + 2.16, + 2.17, + 2.18, + 2.19, + 2.2, + 2.21, + 2.22, + 2.23, + 2.24, + 2.25, + 2.2600000000000002, + 2.27, + 2.2800000000000002, + 2.29, + 2.3000000000000003, + 2.31, + 2.32, + 2.33, + 2.34, + 2.35, + 2.36, + 2.37, + 2.38, + 2.39, + 2.4, + 2.41, + 2.42, + 2.43, + 2.44, + 2.45, + 2.46, + 2.47, + 2.48, + 2.49, + 2.5, + 2.5100000000000002, + 2.52, + 2.5300000000000002, + 2.54, + 2.5500000000000003, + 2.56, + 2.57, + 2.58, + 2.59, + 2.6, + 2.61, + 2.62, + 2.63, + 2.64, + 2.65, + 2.66, + 2.67, + 2.68, + 2.69, + 2.7, + 2.71, + 2.72, + 2.73, + 2.74, + 2.75, + 2.7600000000000002, + 2.77, + 2.7800000000000002, + 2.79, + 2.8000000000000003, + 2.81, + 2.82, + 2.83, + 2.84, + 2.85, + 2.86, + 2.87, + 2.88, + 2.89, + 2.9, + 2.91, + 2.92, + 2.93, + 2.94, + 2.95, + 2.96, + 2.97, + 2.98, + 2.99, + 3.0, + 3.0100000000000002, + 3.02, + 3.0300000000000002, + 3.04, + 3.0500000000000003, + 3.06, + 3.0700000000000003, + 3.08, + 3.09, + 3.1, + 3.11, + 3.12, + 3.13, + 3.14, + 3.15, + 3.16, + 3.17, + 3.18, + 3.19, + 3.2, + 3.21, + 3.22, + 3.23, + 3.24, + 3.25, + 3.2600000000000002, + 3.27, + 3.2800000000000002, + 3.29, + 3.3000000000000003, + 3.31, + 3.3200000000000003, + 3.33, + 3.34, + 3.35, + 3.36, + 3.37, + 3.38, + 3.39, + 3.4, + 3.41, + 3.42, + 3.43, + 3.44, + 3.45, + 3.46, + 3.47, + 3.48, + 3.49, + 3.5, + 3.5100000000000002, + 3.52, + 3.5300000000000002, + 3.54, + 3.5500000000000003, + 3.56, + 3.5700000000000003, + 3.58, + 3.59, + 3.6, + 3.61, + 3.62, + 3.63, + 3.64, + 3.65, + 3.66, + 3.67, + 3.68, + 3.69, + 3.7, + 3.71, + 3.72, + 3.73, + 3.74, + 3.75, + 3.7600000000000002, + 3.77, + 3.7800000000000002, + 3.79, + 3.8000000000000003, + 3.81, + 3.8200000000000003, + 3.83, + 3.84, + 3.85, + 3.86, + 3.87, + 3.88, + 3.89, + 3.9, + 3.91, + 3.92, + 3.93, + 3.94, + 3.95, + 3.96, + 3.97, + 3.98, + 3.99, + 4.0, + 4.01, + 4.0200000000000005, + 4.03, + 4.04, + 4.05, + 4.0600000000000005, + 4.07, + 4.08, + 4.09, + 4.1, + 4.11, + 4.12, + 4.13, + 4.14, + 4.15, + 4.16, + 4.17, + 4.18, + 4.19, + 4.2, + 4.21, + 4.22, + 4.23, + 4.24, + 4.25, + 4.26, + 4.2700000000000005, + 4.28, + 4.29, + 4.3, + 4.3100000000000005, + 4.32, + 4.33, + 4.34, + 4.3500000000000005, + 4.36, + 4.37, + 4.38, + 4.39, + 4.4, + 4.41, + 4.42, + 4.43, + 4.44, + 4.45, + 4.46, + 4.47, + 4.48, + 4.49, + 4.5, + 4.51, + 4.5200000000000005, + 4.53, + 4.54, + 4.55, + 4.5600000000000005, + 4.57, + 4.58, + 4.59, + 4.6000000000000005, + 4.61, + 4.62, + 4.63, + 4.64, + 4.65, + 4.66, + 4.67, + 4.68, + 4.69, + 4.7, + 4.71, + 4.72, + 4.73, + 4.74, + 4.75, + 4.76, + 4.7700000000000005, + 4.78, + 4.79, + 4.8, + 4.8100000000000005, + 4.82, + 4.83, + 4.84, + 4.8500000000000005, + 4.86, + 4.87, + 4.88, + 4.89, + 4.9, + 4.91, + 4.92, + 4.93, + 4.94, + 4.95, + 4.96, + 4.97, + 4.98, + 4.99, + 5.0, + 5.01, + 5.0200000000000005, + 5.03, + 5.04, + 5.05, + 5.0600000000000005, + 5.07, + 5.08, + 5.09, + 5.1000000000000005, + 5.11, + 5.12, + 5.13, + 5.14, + 5.15, + 5.16, + 5.17, + 5.18, + 5.19, + 5.2, + 5.21, + 5.22, + 5.23, + 5.24, + 5.25, + 5.26, + 5.2700000000000005, + 5.28, + 5.29, + 5.3, + 5.3100000000000005, + 5.32, + 5.33, + 5.34, + 5.3500000000000005, + 5.36, + 5.37, + 5.38, + 5.39, + 5.4, + 5.41, + 5.42, + 5.43, + 5.44, + 5.45, + 5.46, + 5.47, + 5.48, + 5.49, + 5.5, + 5.51, + 5.5200000000000005, + 5.53, + 5.54, + 5.55, + 5.5600000000000005, + 5.57, + 5.58, + 5.59, + 5.6000000000000005, + 5.61, + 5.62, + 5.63, + 5.64, + 5.65, + 5.66, + 5.67, + 5.68, + 5.69, + 5.7, + 5.71, + 5.72, + 5.73, + 5.74, + 5.75, + 5.76, + 5.7700000000000005, + 5.78, + 5.79, + 5.8, + 5.8100000000000005, + 5.82, + 5.83, + 5.84, + 5.8500000000000005, + 5.86, + 5.87, + 5.88, + 5.89, + 5.9, + 5.91, + 5.92, + 5.93, + 5.94, + 5.95, + 5.96, + 5.97, + 5.98, + 5.99, + 6.0, + 6.01, + 6.0200000000000005, + 6.03, + 6.04, + 6.05, + 6.0600000000000005, + 6.07, + 6.08, + 6.09, + 6.1000000000000005, + 6.11, + 6.12, + 6.13, + 6.140000000000001, + 6.15, + 6.16, + 6.17, + 6.18, + 6.19, + 6.2, + 6.21, + 6.22, + 6.23, + 6.24, + 6.25, + 6.26, + 6.2700000000000005, + 6.28, + 6.29, + 6.3, + 6.3100000000000005, + 6.32, + 6.33, + 6.34, + 6.3500000000000005, + 6.36, + 6.37, + 6.38, + 6.390000000000001, + 6.4, + 6.41, + 6.42, + 6.43, + 6.44, + 6.45, + 6.46, + 6.47, + 6.48, + 6.49, + 6.5, + 6.51, + 6.5200000000000005, + 6.53, + 6.54, + 6.55, + 6.5600000000000005, + 6.57, + 6.58, + 6.59, + 6.6000000000000005, + 6.61, + 6.62, + 6.63, + 6.640000000000001, + 6.65, + 6.66, + 6.67, + 6.68, + 6.69, + 6.7, + 6.71, + 6.72, + 6.73, + 6.74, + 6.75, + 6.76, + 6.7700000000000005, + 6.78, + 6.79, + 6.8, + 6.8100000000000005, + 6.82, + 6.83, + 6.84, + 6.8500000000000005, + 6.86, + 6.87, + 6.88, + 6.890000000000001, + 6.9, + 6.91, + 6.92, + 6.93, + 6.94, + 6.95, + 6.96, + 6.97, + 6.98, + 6.99, + 7.0, + 7.01, + 7.0200000000000005, + 7.03, + 7.04, + 7.05, + 7.0600000000000005, + 7.07, + 7.08, + 7.09, + 7.1000000000000005, + 7.11, + 7.12, + 7.13, + 7.140000000000001, + 7.15, + 7.16, + 7.17, + 7.18, + 7.19, + 7.2, + 7.21, + 7.22, + 7.23, + 7.24, + 7.25, + 7.26, + 7.2700000000000005, + 7.28, + 7.29, + 7.3, + 7.3100000000000005, + 7.32, + 7.33, + 7.34, + 7.3500000000000005, + 7.36, + 7.37, + 7.38, + 7.390000000000001, + 7.4, + 7.41, + 7.42, + 7.43, + 7.44, + 7.45, + 7.46, + 7.47, + 7.48, + 7.49, + 7.5, + 7.51, + 7.5200000000000005, + 7.53, + 7.54, + 7.55, + 7.5600000000000005, + 7.57, + 7.58, + 7.59, + 7.6000000000000005, + 7.61, + 7.62, + 7.63, + 7.640000000000001, + 7.65, + 7.66, + 7.67, + 7.68, + 7.69, + 7.7, + 7.71, + 7.72, + 7.73, + 7.74, + 7.75, + 7.76, + 7.7700000000000005, + 7.78, + 7.79, + 7.8, + 7.8100000000000005, + 7.82, + 7.83, + 7.84, + 7.8500000000000005, + 7.86, + 7.87, + 7.88, + 7.890000000000001, + 7.9, + 7.91, + 7.92, + 7.930000000000001, + 7.94, + 7.95, + 7.96, + 7.97, + 7.98, + 7.99, + 8.0, + 8.01, + 8.02, + 8.03, + 8.040000000000001, + 8.05, + 8.06, + 8.07, + 8.08, + 8.09, + 8.1, + 8.11, + 8.120000000000001, + 8.13, + 8.14, + 8.15, + 8.16, + 8.17, + 8.18, + 8.19, + 8.2, + 8.21, + 8.22, + 8.23, + 8.24, + 8.25, + 8.26, + 8.27, + 8.28, + 8.290000000000001, + 8.3, + 8.31, + 8.32, + 8.33, + 8.34, + 8.35, + 8.36, + 8.370000000000001, + 8.38, + 8.39, + 8.4, + 8.41, + 8.42, + 8.43, + 8.44, + 8.45, + 8.46, + 8.47, + 8.48, + 8.49, + 8.5, + 8.51, + 8.52, + 8.53, + 8.540000000000001, + 8.55, + 8.56, + 8.57, + 8.58, + 8.59, + 8.6, + 8.61, + 8.620000000000001, + 8.63, + 8.64, + 8.65, + 8.66, + 8.67, + 8.68, + 8.69, + 8.700000000000001, + 8.71, + 8.72, + 8.73, + 8.74, + 8.75, + 8.76, + 8.77, + 8.78, + 8.790000000000001, + 8.8, + 8.81, + 8.82, + 8.83, + 8.84, + 8.85, + 8.86, + 8.870000000000001, + 8.88, + 8.89, + 8.9, + 8.91, + 8.92, + 8.93, + 8.94, + 8.950000000000001, + 8.96, + 8.97, + 8.98, + 8.99, + 9.0, + 9.01, + 9.02, + 9.03, + 9.040000000000001, + 9.05, + 9.06, + 9.07, + 9.08, + 9.09, + 9.1, + 9.11, + 9.120000000000001, + 9.13, + 9.14, + 9.15, + 9.16, + 9.17, + 9.18, + 9.19, + 9.200000000000001, + 9.21, + 9.22, + 9.23, + 9.24, + 9.25, + 9.26, + 9.27, + 9.28, + 9.290000000000001, + 9.3, + 9.31, + 9.32, + 9.33, + 9.34, + 9.35, + 9.36, + 9.370000000000001, + 9.38, + 9.39, + 9.4, + 9.41, + 9.42, + 9.43, + 9.44, + 9.450000000000001, + 9.46, + 9.47, + 9.48, + 9.49, + 9.5, + 9.51, + 9.52, + 9.53, + 9.540000000000001, + 9.55, + 9.56, + 9.57, + 9.58, + 9.59, + 9.6, + 9.61, + 9.620000000000001, + 9.63, + 9.64, + 9.65, + 9.66, + 9.67, + 9.68, + 9.69, + 9.700000000000001, + 9.71, + 9.72, + 9.73, + 9.74, + 9.75, + 9.76, + 9.77, + 9.78, + 9.790000000000001, + 9.8, + 9.81, + 9.82, + 9.83, + 9.84, + 9.85, + 9.86, + 9.870000000000001, + 9.88, + 9.89, + 9.9, + 9.91, + 9.92, + 9.93, + 9.94, + 9.950000000000001, + 9.96, + 9.97, + 9.98, + 9.99, + 10.0 + ], + "system_name": "solid", + "values": [ + 0.010000000000000002, + 0.009900000025642794, + 0.009598529242323321, + 0.009118461363504844, + 0.008531184606357609, + 0.00760970328510565, + 0.006232812740357872, + 0.004399269824378867, + 0.002090063372588566, + -0.0005700289332573109, + -0.0035283567563404454, + -0.006870969185704868, + -0.010573962855279404, + -0.01443688801707456, + -0.018396396410209036, + -0.02227454004816315, + -0.026098665229548526, + -0.030002672275381018, + -0.033982861625231835, + -0.03797063325792887, + -0.042015500598899615, + -0.046100377080675325, + -0.050319619495603485, + -0.05484324648311285, + -0.059536977150607684, + -0.06430485385435428, + -0.06904555554438935, + -0.07367317882569623, + -0.07818807437602897, + -0.08263423690091602, + -0.08680064335245198, + -0.09062377038468071, + -0.09408703217410656, + -0.09719472915260254, + -0.10012470506701983, + -0.10291841624411675, + -0.10550662486574151, + -0.10789961342164847, + -0.1101225502735139, + -0.11216299165803617, + -0.11417822903728127, + -0.11605853615685308, + -0.11767636785278891, + -0.11896066691524392, + -0.11982069278444021, + -0.12029133252223834, + -0.12047067399050757, + -0.12026883294521035, + -0.11963708360844034, + -0.11859984937020183, + -0.11713081158690274, + -0.1154460489979447, + -0.11362667614613067, + -0.11165865180558557, + -0.10954006771522978, + -0.10723988006346787, + -0.104714471035255, + -0.10211094125106755, + -0.09938573697704216, + -0.09642447223918355, + -0.09318291798518666, + -0.08952543007674958, + -0.08552779756918924, + -0.08132817003271552, + -0.07695149142353935, + -0.07237663263255062, + -0.06768027062592678, + -0.0628412053259151, + -0.05807702509827262, + -0.05353797944910765, + -0.049182910743526584, + -0.04498294319174507, + -0.04087354960748235, + -0.03678211688800534, + -0.03279514012065914, + -0.02895573573769592, + -0.0250864385409927, + -0.02118105914148227, + -0.017190652672160096, + -0.013203138207482597, + -0.009417101256332628, + -0.00593446790667583, + -0.0026784058208489834, + 0.0002694489606531966, + 0.0028597569304989693, + 0.005026100466821322, + 0.006622759472359959, + 0.007781807780025798, + 0.008655036585546533, + 0.0093012037877486, + 0.009733456724510122, + 0.009978589950292374, + 0.009935929737047797, + 0.009759990560078976, + 0.009514231340646662, + 0.009090006996364919, + 0.008389888465866371, + 0.007286789519690981, + 0.005691041036520415, + 0.0037095991357367943, + 0.0014123560194998536, + -0.0013285845563261018, + -0.004463722989554431, + -0.007992457053347023, + -0.011783450833591577, + -0.01562604741705615, + -0.01943518131231216, + -0.023312465556476928, + -0.02721622282490208, + -0.03117088351313101, + -0.03516034339786789, + -0.03907371421483408, + -0.04305170674736156, + -0.04723209056509438, + -0.051642486048762655, + -0.0562468136609951, + -0.06097658796027289, + -0.06564133645817417, + -0.07032583878807758, + -0.07501263529500829, + -0.07958034655100256, + -0.08393912738349023, + -0.08795065674454879, + -0.09156110070082873, + -0.09490864854263024, + -0.09805958185601425, + -0.1009744493124699, + -0.10371577399876418, + -0.106184487382034, + -0.10845651316070477, + -0.11066434241290794, + -0.1128099310131291, + -0.1148255876962717, + -0.11664319509406672, + -0.11808079233261087, + -0.11917056662310734, + -0.11997873858624919, + -0.12042673424080763, + -0.12052394674392357, + -0.12016050113036157, + -0.11930649748197353, + -0.11808873896093514, + -0.11662899252853152, + -0.11494880613436859, + -0.11314369635667451, + -0.11110190641946704, + -0.1088362677602173, + -0.10647100796200944, + -0.10399871022225811, + -0.10142919281172376, + -0.09867513341917196, + -0.0955648794300381, + -0.09208404164530262, + -0.0883490720848719, + -0.0843340541627772, + -0.08013484274096735, + -0.07569369018667901, + -0.07098434384433275, + -0.0661665715431359, + -0.061406429405655924, + -0.056771253714931476, + -0.05234572400207638, + -0.0480424027059013, + -0.0437619290427919, + -0.03963959457923443, + -0.03565125927228184, + -0.03177466843839782, + -0.027931365137940273, + -0.023995210882623075, + -0.019926641453510904, + -0.01594426779400348, + -0.01209498725923668, + -0.00842402109741076, + -0.004986111030972451, + -0.001742547625259988, + 0.0011622545028273264, + 0.0035575505516731547, + 0.005441433967644109, + 0.006909655535007493, + 0.008001177593883795, + 0.00888950781831967, + 0.009501226154961675, + 0.00979692618279693, + 0.0098884319199284, + 0.009867214832861744, + 0.009744660951990034, + 0.009526106522222294, + 0.009024526467850139, + 0.008085974030840621, + 0.006810413118603427, + 0.005164674826775656, + 0.0031486916264338396, + 0.0007187299327271382, + -0.002196925683821958, + -0.0055768925140071155, + -0.009161202032907878, + -0.012883054978223528, + -0.016673781602734753, + -0.020500822268291, + -0.024446887125306033, + -0.028425968005891998, + -0.03232217687369646, + -0.03617795849842163, + -0.04011030466675731, + -0.04417299108203722, + -0.0485270877632607, + -0.05303935070945834, + -0.05760589177576121, + -0.06225177991922979, + -0.06697345383665125, + -0.07172208929495394, + -0.07645414322092992, + -0.08095080476101622, + -0.08508538376434022, + -0.08894147623286175, + -0.09249762000158647, + -0.09584237340113481, + -0.09897317361207429, + -0.10180342023945597, + -0.10435093466997587, + -0.1067676309167078, + -0.10906510131316507, + -0.11134468459051394, + -0.11352239232872267, + -0.11541581315859092, + -0.11704427227482146, + -0.11838902022406528, + -0.11944577209690219, + -0.12021776370372757, + -0.12059087236418013, + -0.12044074632171818, + -0.11987556767666839, + -0.1188995663483621, + -0.11765261653926584, + -0.11621575331434027, + -0.11450687078615458, + -0.11254289074303314, + -0.1104025993576305, + -0.10811867161629832, + -0.10579624665275308, + -0.10340956580806192, + -0.10074378347286278, + -0.09780474971715018, + -0.09454255869335855, + -0.09099594377670532, + -0.08724280773573402, + -0.0832348826874506, + -0.07887488305050179, + -0.0742764490101986, + -0.0695060576652634, + -0.06472060819146595, + -0.06010531114691696, + -0.05557001520121182, + -0.05110564541267346, + -0.046753572474082156, + -0.04254283434769279, + -0.03850410524949715, + -0.03466018449846295, + -0.030760938200303217, + -0.02677069082908608, + -0.02274745902429836, + -0.01872618136536787, + -0.014826763161516657, + -0.011076039645143051, + -0.007403520251634691, + -0.00390922746755818, + -0.0007925764249737163, + 0.001911204704859239, + 0.004075786944001233, + 0.00580504861106753, + 0.007234660082989077, + 0.00834750651804078, + 0.009089512994201153, + 0.009552461412202319, + 0.009754316480539543, + 0.009840612280761898, + 0.009924729899369794, + 0.009822307221315238, + 0.009446445121268514, + 0.008758835921916678, + 0.007735284952528809, + 0.006384963904828848, + 0.0047295878092717585, + 0.002548080602999668, + -0.0001389647292191835, + -0.003237225893457821, + -0.006656080571746948, + -0.010227459067595422, + -0.013900668495806505, + -0.017752933137312854, + -0.021712769365999342, + -0.025635938018742824, + -0.02953557831244761, + -0.03333092978299964, + -0.037179275058121526, + -0.04123897373622836, + -0.04548359477702767, + -0.049832389773373904, + -0.05431862903450409, + -0.05887669969226335, + -0.06357663128703052, + -0.06843342271228828, + -0.073214696843236, + -0.07781057946817063, + -0.08213700430340529, + -0.08615955531670802, + -0.08994691869408483, + -0.09354870873919652, + -0.0968091213792886, + -0.09977938018026784, + -0.10246924901637786, + -0.10495814890832929, + -0.107420933128259, + -0.10982542017058594, + -0.11205480590641705, + -0.11408896390466361, + -0.1158780947803593, + -0.11741339454678788, + -0.11878293155799172, + -0.11980814552300147, + -0.12041840368596278, + -0.12056906969603819, + -0.12023637312981893, + -0.11953882323669927, + -0.11858765905234085, + -0.117316112181951, + -0.11575846908062805, + -0.1139253974119432, + -0.11184139095035373, + -0.10971993901566589, + -0.10754176944633664, + -0.10522944818920611, + -0.10271754653323208, + -0.09992200904656158, + -0.09682275782777974, + -0.0935534224272066, + -0.09001724486745627, + -0.08616967932235439, + -0.08200383160283217, + -0.07748348281829416, + -0.07279343672893598, + -0.06810623765537929, + -0.06344690461966707, + -0.05882157757428924, + -0.05427617912703834, + -0.04976929317534604, + -0.04549401718515254, + -0.04145678572793198, + -0.03751612387632308, + -0.03358498097197174, + -0.029600075383463386, + -0.025540361661146087, + -0.02155232988190741, + -0.01766160771349666, + -0.013763433750404161, + -0.00995445185279881, + -0.00627427472652648, + -0.0028847865486843834, + 3.6139582909404516e-5, + 0.0024746016112401465, + 0.004568195388238494, + 0.006270216628589413, + 0.0076215421189892146, + 0.008595573004641224, + 0.009156639906763405, + 0.009510414573627356, + 0.009789552775437504, + 0.009966135001853981, + 0.009979462432731546, + 0.0097762722502994, + 0.009230181284693956, + 0.008474226141237029, + 0.007461361449923086, + 0.006051703411873441, + 0.004170121304132516, + 0.001777951554336057, + -0.0011008709357744355, + -0.004257688219703984, + -0.007616705081751277, + -0.011240570790894988, + -0.01502847529412171, + -0.01896257725747264, + -0.02290721006231497, + -0.026731062974850388, + -0.0304874329791801, + -0.03436295075075233, + -0.03833997701966533, + -0.04248169945046918, + -0.04674011269606311, + -0.05104641769675078, + -0.055533811597088735, + -0.060242634289665184, + -0.0650706042493673, + -0.069903793645392, + -0.07460665209441224, + -0.07901991404110281, + -0.08326460989513178, + -0.08729986185005664, + -0.09107115586424831, + -0.09454392486367573, + -0.09765177763559119, + -0.10044406467003399, + -0.10312159229706008, + -0.10571076261152176, + -0.10818082068646043, + -0.11053419569142695, + -0.1126339484022309, + -0.1145584866255402, + -0.11634824187550134, + -0.11792392026285746, + -0.11919866376077684, + -0.12008573215428493, + -0.12045265941029037, + -0.12042023200464654, + -0.12004518896809563, + -0.11932347708499262, + -0.11830269537236847, + -0.11689597060868825, + -0.11515496315981488, + -0.11324777820419611, + -0.11125309217830465, + -0.1091661181873598, + -0.10699664837665489, + -0.10455785101608842, + -0.10188496842047544, + -0.09902843430849625, + -0.09594732124478084, + -0.09263888213369188, + -0.08901404743066711, + -0.0849684053340414, + -0.08060506139842409, + -0.07608150323471838, + -0.07144028247103161, + -0.06681733936191163, + -0.06214140293006011, + -0.05744056607708669, + -0.05287884050668054, + -0.048545884676742194, + -0.044401544232480966, + -0.04042504726579407, + -0.0364367796486725, + -0.03237993296948527, + -0.028386037198256695, + -0.024420117954029107, + -0.02048521294316586, + -0.016556161515046363, + -0.012607232293597467, + -0.008731757968818091, + -0.005202919985740651, + -0.0020385804512722495, + 0.0007190750492684896, + 0.003089485218300432, + 0.005136488341658708, + 0.006758949000878437, + 0.007887887862682817, + 0.00865633268276393, + 0.009208984353938719, + 0.009598612377723324, + 0.00993387112002435, + 0.010054460716604121, + 0.009917503220091717, + 0.009588663925234012, + 0.009075085728246012, + 0.008294809997463914, + 0.007200149662444554, + 0.005594113363531058, + 0.0034405881305380947, + 0.0009049876566736835, + -0.001984275168674756, + -0.005162737831681018, + -0.008619733007150632, + -0.012362298246892512, + -0.016282794739576688, + -0.020130399591896244, + -0.02394020991602086, + -0.027716678869198725, + -0.03154028738431199, + -0.03551540832545848, + -0.039574133836585736, + -0.04365428999100177, + -0.047864537056453584, + -0.0522782546441756, + -0.056889019344970225, + -0.06173117041623196, + -0.06656007874916292, + -0.07126472631002208, + -0.07583804050301361, + -0.08025644607533389, + -0.08448640353867412, + -0.08850179707260199, + -0.092122116440839, + -0.09536593233821734, + -0.09837491955659924, + -0.10118382507364902, + -0.10390706668414489, + -0.10650321123103947, + -0.10887952925742954, + -0.11107805351100737, + -0.1131748400541516, + -0.11511081390296198, + -0.11692436148632457, + -0.11843364668973466, + -0.11950297162770747, + -0.12016834717713264, + -0.12042806927077673, + -0.12033944708505212, + -0.11993563593223935, + -0.11911363418812684, + -0.11785971319048912, + -0.1163271456259784, + -0.11454770375475029, + -0.11269573486961725, + -0.11075916907950895, + -0.10862304720247627, + -0.1062915638381674, + -0.10377861925095419, + -0.10106824215306863, + -0.09822651604724107, + -0.09514459443744763, + -0.09165813977103106, + -0.08782560285205404, + -0.08364663765584576, + -0.07926156006076211, + -0.07478366935226148, + -0.07017920798933104, + -0.06542864539177326, + -0.06070288037262206, + -0.05605402336830976, + -0.05162463218673837, + -0.04745125064573106, + -0.04334524166312556, + -0.03926776285793492, + -0.03522913864705365, + -0.03122336822354946, + -0.027274706733716892, + -0.02338377367109436, + -0.019360276286984664, + -0.015312123414438694, + -0.011368205533840834, + -0.00764768256672877, + -0.004283563996631154, + -0.0012736517210371777, + 0.0014635303823576642, + 0.003807880394807918, + 0.005651954437205684, + 0.007059455643978291, + 0.008026188281724871, + 0.008757427848405967, + 0.00936638409616403, + 0.00979262322034862, + 0.00997896915352589, + 0.010000539165343566, + 0.009808748785903564, + 0.009488709156571597, + 0.00900466569489985, + 0.008121358960010863, + 0.006768103892888963, + 0.004952977339788685, + 0.0027056911538283117, + 0.0001091509117213482, + -0.002793402688179274, + -0.0061441169111475695, + -0.009784864642063767, + -0.01357692279456177, + -0.017404330467758106, + -0.021170463562466164, + -0.02492484643388411, + -0.02880287268678671, + -0.03273370510613284, + -0.03666820774333663, + -0.040681715909597176, + -0.04475216110646159, + -0.049051918504664, + -0.053640089008064815, + -0.05838557444069477, + -0.06315317237058116, + -0.06791158338298042, + -0.07254720536900591, + -0.07712996841939292, + -0.0815975201765823, + -0.0857474274863094, + -0.08954801626802306, + -0.09299888794277163, + -0.09616007478381598, + -0.09917165594767248, + -0.10205294835150748, + -0.10468666296676654, + -0.10716575572383588, + -0.10946112974230095, + -0.11164815054967091, + -0.11379953888338852, + -0.11578088002360092, + -0.11745153447306707, + -0.11877298853098568, + -0.11967812160395866, + -0.12023031844280513, + -0.1204986869603907, + -0.12032903099083431, + -0.11973869995769784, + -0.1187191453431458, + -0.11733742373962547, + -0.11577048053303793, + -0.11408789099541755, + -0.11221287510304763, + -0.11018655655590079, + -0.10794811047825123, + -0.10552273993721129, + -0.10303833025709415, + -0.1003810634657801, + -0.097458544945939, + -0.0941937426801486, + -0.09053082843165744, + -0.08654779955983705, + -0.08241058713376931, + -0.07803903648683819, + -0.07348213022089498, + -0.06877142083922445, + -0.06396473781867325, + -0.05928186472962635, + -0.05482080251588788, + -0.05050791507815128, + -0.04630339485092869, + -0.04217437760731341, + -0.038049168944470184, + -0.034079779316220644, + -0.030184129885420217, + -0.026235888094440492, + -0.022201756347357902, + -0.018111939592285794, + -0.014054816847078372, + -0.010254542697696089, + -0.006717139346610517, + -0.0033877178327878436, + -0.00038743037919688176, + 0.002247599050168502, + 0.004399293514311419, + 0.0060180009066009696, + 0.007237662558812412, + 0.008240984462311576, + 0.008983895019423002, + 0.009539739704680262, + 0.009859471532560159, + 0.009934162849708468, + 0.00991406254306527, + 0.009817672167945412, + 0.009497482230821563, + 0.008847464739761671, + 0.007777133875820488, + 0.006211691995709241, + 0.004326124388570751, + 0.002064725791556759, + -0.0006429464508137991, + -0.0037780759429392454, + -0.007260316986270538, + -0.010969670798187416, + -0.014675930199752036, + -0.018397997561029153, + -0.022212777628792462, + -0.026057315556593016, + -0.029963406711904617, + -0.0338629028171411, + -0.03772841400085742, + -0.041706428191318735, + -0.04595848433142596, + -0.05040837888245725, + -0.05506696168669896, + -0.05978433886552502, + -0.06447398272636372, + -0.06921146688988312, + -0.07395079514409776, + -0.07853630173056755, + -0.08287202432500837, + -0.08685287967585768, + -0.09045617622407896, + -0.09387291947535914, + -0.0970693904204421, + -0.1000565136992465, + -0.10283089678925582, + -0.10536168961991069, + -0.10773275040763822, + -0.11009265871198906, + -0.11236299842141513, + -0.11448056333645994, + -0.1163514125791902, + -0.11782704842423336, + -0.11900630500769234, + -0.11989241815338708, + -0.12042036870700357, + -0.12054372567601791, + -0.12020178751104288, + -0.1193715100539536, + -0.11825580342186136, + -0.11689586550121382, + -0.11534156962381645, + -0.11362388430430274, + -0.11164761229435785, + -0.10948037037434227, + -0.10723070750841361, + -0.10488422678707471, + -0.10239101257920617, + -0.09967251775159927, + -0.09653692877948064, + -0.0930889826262007, + -0.08937590362050914, + -0.08540926397364144, + -0.08121855065110527, + -0.07676180084355412, + -0.07204335975934044, + -0.0672727973881395, + -0.06258886320722129, + -0.058024260106628436, + -0.053652975538410926, + -0.04932701853369977, + -0.04505858031802393, + -0.04094085370431276, + -0.03697086736549912, + -0.03304814552264803, + -0.029128349621370207, + -0.02505491800353671, + -0.020906795462007275, + -0.016873973939295447, + -0.012971486927680735, + -0.009244363658718922, + -0.0057149593238817395, + -0.002414251845385822, + 0.0005156699924896167, + 0.0028854860444630444, + 0.004811020008157848, + 0.006323538751778172, + 0.007532302408464992, + 0.008514405899178122, + 0.009204334899296077, + 0.009581387913596544, + 0.009806799100663097, + 0.009944398361818683, + 0.009972126780570854, + 0.00987192736770374, + 0.009402580318895447, + 0.008530581003647616, + 0.007316741294790484, + 0.005756495066398492, + 0.003775197921108356, + 0.0013697481416230235, + -0.0015634023337797722, + -0.00488465734433276, + -0.008377395661221795, + -0.011998554757539703, + -0.01569528861037097, + -0.019470738953340384, + -0.02335320134390053, + -0.027251536435291213, + -0.031033883599953946, + -0.03485463456249343, + -0.03876725846978058, + -0.04289352690806382, + -0.04728196622964148, + -0.051807377456638305, + -0.05637745183236629, + -0.061069351794467416, + -0.06585116208036071, + -0.07065374611614333, + -0.07540624563446623, + -0.07985416983863035, + -0.08398171819893697, + -0.08783792616996143, + -0.09144720444238477, + -0.09483432373317313, + -0.09800661567746848, + -0.10084415412483931, + -0.10346579824121502, + -0.1059852828232393, + -0.108424053671122, + -0.11083953590062824, + -0.11308988731819242, + -0.11504776500511393, + -0.11674371189386629, + -0.11818965449689249, + -0.11932988312093419, + -0.12018119842616803, + -0.1205537434371531, + -0.12043355287176204, + -0.11990456091771788, + -0.11901582470233593, + -0.1178810004098773, + -0.11653790081354218, + -0.11489591577352454, + -0.11300711013471136, + -0.11097911435579735, + -0.10881810820343904, + -0.1066452809551401, + -0.10431469833309848, + -0.10168714420319015, + -0.0987570372095139, + -0.09553275343932663, + -0.09202842932955739, + -0.08832124053878959, + -0.08429570220167017, + -0.07991523928875618, + -0.07532205621702213, + -0.07058203145904414, + -0.06589188724209882, + -0.06133233059242786, + -0.0568288608897292, + -0.05236171532449746, + -0.04804730933309153, + -0.04385362505995708, + -0.03986095311832092, + -0.03596999333235117, + -0.03197656662916431, + -0.02789100532077461, + -0.02379011958178177, + -0.019719312548448848, + -0.01576087172385308, + -0.011931525001127912, + -0.008144709266361468, + -0.004618876098901083, + -0.0014713024548382227, + 0.0012135573242220666, + 0.003404482593224901, + 0.0051981729963116565, + 0.0067276931461846155, + 0.00789712861372361, + 0.008705627441197626, + 0.009255387019023162, + 0.009577907978416931, + 0.009852208043247379, + 0.010073451512010362, + 0.010073192566874882, + 0.009755633902045533, + 0.009159140746972983, + 0.008204477937230831, + 0.006960769867755033, + 0.005328485574236298, + 0.003147275891705634, + 0.00047014947113345506, + -0.0025813688027842637, + -0.00591246753580128, + -0.009388792251005145, + -0.012988170262751994, + -0.0168075567373929, + -0.020667160179693896, + -0.0245043102749791, + -0.028281560525609713, + -0.03202039535249098, + -0.03586490571993358, + -0.03996539976360275, + -0.04420735219408397, + -0.04856338280310379, + -0.05306443821455971, + -0.057663606776236255, + -0.062455864168249456, + -0.06735195205053833, + -0.0721406524090841, + -0.07670443478744363, + -0.08102784585363303, + -0.08505207023726141, + -0.08890404582935123, + -0.09251698610192106, + -0.0957891168757867, + -0.09877451557714308, + -0.10151871538989428, + -0.10412468216132136, + -0.1067242710918697, + -0.10923719155913254, + -0.11153332465012455, + -0.11365585887081779, + -0.11551583870907181, + -0.11718300112395875, + -0.11863645110229071, + -0.11971627840788522, + -0.12034104353902737, + -0.12051495892794015, + -0.12022671568990996, + -0.1196280454590859, + -0.11876950761500818, + -0.11755941488375078, + -0.1160743648253698, + -0.11430117785237508, + -0.11235217589735165, + -0.11037210293994754, + -0.10832200074298254, + -0.10607132734500047, + -0.10361256804485248, + -0.10083596512558163, + -0.09780638164484322, + -0.09459318404069415, + -0.09107443187422855, + -0.08722134825237288, + -0.08302073323255942, + -0.07850751312482016, + -0.07386497551170644, + -0.06926222461633637, + -0.06462831482504458, + -0.060044706019436955, + -0.05549652581252942, + -0.051043583379862985, + -0.046830252959141304, + -0.042821679197087105, + -0.03883974956108419, + -0.03483462961339149, + -0.030768361265267597, + -0.02664148985805036, + -0.022626013667822454, + -0.018639070491096393, + -0.014651699347382762, + -0.010736298362117296, + -0.007009665678437957, + -0.0036007879804476426, + -0.0007005555088988633, + 0.0017905838255978432, + 0.0039459723744691075, + 0.005712659930884548, + 0.007119754801429087, + 0.00812534846408982, + 0.008774554672865873, + 0.00926832709613598, + 0.009723254108538387, + 0.01001376041030307, + 0.010148431454834425, + 0.010004648944651699, + 0.009570122266157444, + 0.008923915243958764, + 0.007997448682831955, + 0.006612362855501948, + 0.004737739131555759, + 0.002354227424681067, + -0.00047828641475234425, + -0.0035307038469158847, + -0.006838092307512065, + -0.010399055941116214, + -0.014145610999619432, + -0.01798421559249063, + -0.021817065838934727, + -0.02550739031596941, + -0.029225060079223597, + -0.033083198685414254, + -0.03706109411615984, + -0.04119838950655734, + -0.045432762888086085, + -0.04976120136849687, + -0.054312264362043255, + -0.0591062337163449, + -0.06396117177490179, + -0.06881764312132906, + -0.07347778837911935, + -0.07790524373468685, + -0.08217684310764843, + -0.08624794141059475, + -0.09002187031485867, + -0.09348735884891199, + -0.09659574869433776, + -0.09945001671955372, + -0.1022518237561332, + -0.1049378079090263, + -0.10751634947088544, + -0.10992783277079521, + -0.1121188463567528, + -0.11415261416814133, + -0.11607410217244331, + -0.11772824931870536, + -0.11906242673843283, + -0.11995779519236018, + -0.12035214786920415, + -0.1203949002675571, + -0.12009666574578708, + -0.11945870929753138, + -0.11848087760103702, + -0.11712562318025087, + -0.11546107980997809, + -0.11370352243394416, + -0.11183332303051895, + -0.10987939151675079, + -0.1077701496029094, + -0.10538293899379488, + -0.10277669654330925, + -0.09999463214923228, + -0.09697557491382858, + -0.0936863561701228, + -0.09004481963284026, + -0.0859593829058373, + -0.0816334787332555, + -0.0771428559154555, + -0.07257320913584124, + -0.06797052483200998, + -0.06330796319168708, + -0.05863013100191305, + -0.05414707711006224, + -0.049875986439735766, + -0.04576327207959925, + -0.041765585545726146, + -0.037696481405342236, + -0.03360008967751574, + -0.0295570397965379, + -0.02554858086238199, + -0.02151610458327314, + -0.017489728319094594, + -0.013417592647674387, + -0.009513189825014982, + -0.0059675862064839285, + -0.0027885764053810942, + 1.2739131466392624e-5 + ], + "datatype": "Float64", + "type": "series" + }, + "mid_point_x_solid_1": { + "n_values": 1001, + "time": [ + 0.0, + 0.01, + 0.02, + 0.03, + 0.04, + 0.05, + 0.06, + 0.07, + 0.08, + 0.09, + 0.1, + 0.11, + 0.12, + 0.13, + 0.14, + 0.15, + 0.16, + 0.17, + 0.18, + 0.19, + 0.2, + 0.21, + 0.22, + 0.23, + 0.24, + 0.25, + 0.26, + 0.27, + 0.28, + 0.29, + 0.3, + 0.31, + 0.32, + 0.33, + 0.34, + 0.35000000000000003, + 0.36, + 0.37, + 0.38, + 0.39, + 0.4, + 0.41000000000000003, + 0.42, + 0.43, + 0.44, + 0.45, + 0.46, + 0.47000000000000003, + 0.48, + 0.49, + 0.5, + 0.51, + 0.52, + 0.53, + 0.54, + 0.55, + 0.56, + 0.5700000000000001, + 0.58, + 0.59, + 0.6, + 0.61, + 0.62, + 0.63, + 0.64, + 0.65, + 0.66, + 0.67, + 0.68, + 0.6900000000000001, + 0.7000000000000001, + 0.71, + 0.72, + 0.73, + 0.74, + 0.75, + 0.76, + 0.77, + 0.78, + 0.79, + 0.8, + 0.81, + 0.8200000000000001, + 0.8300000000000001, + 0.84, + 0.85, + 0.86, + 0.87, + 0.88, + 0.89, + 0.9, + 0.91, + 0.92, + 0.93, + 0.9400000000000001, + 0.9500000000000001, + 0.96, + 0.97, + 0.98, + 0.99, + 1.0, + 1.01, + 1.02, + 1.03, + 1.04, + 1.05, + 1.06, + 1.07, + 1.08, + 1.09, + 1.1, + 1.11, + 1.12, + 1.1300000000000001, + 1.1400000000000001, + 1.1500000000000001, + 1.16, + 1.17, + 1.18, + 1.19, + 1.2, + 1.21, + 1.22, + 1.23, + 1.24, + 1.25, + 1.26, + 1.27, + 1.28, + 1.29, + 1.3, + 1.31, + 1.32, + 1.33, + 1.34, + 1.35, + 1.36, + 1.37, + 1.3800000000000001, + 1.3900000000000001, + 1.4000000000000001, + 1.41, + 1.42, + 1.43, + 1.44, + 1.45, + 1.46, + 1.47, + 1.48, + 1.49, + 1.5, + 1.51, + 1.52, + 1.53, + 1.54, + 1.55, + 1.56, + 1.57, + 1.58, + 1.59, + 1.6, + 1.61, + 1.62, + 1.6300000000000001, + 1.6400000000000001, + 1.6500000000000001, + 1.6600000000000001, + 1.67, + 1.68, + 1.69, + 1.7, + 1.71, + 1.72, + 1.73, + 1.74, + 1.75, + 1.76, + 1.77, + 1.78, + 1.79, + 1.8, + 1.81, + 1.82, + 1.83, + 1.84, + 1.85, + 1.86, + 1.87, + 1.8800000000000001, + 1.8900000000000001, + 1.9000000000000001, + 1.9100000000000001, + 1.92, + 1.93, + 1.94, + 1.95, + 1.96, + 1.97, + 1.98, + 1.99, + 2.0, + 2.0100000000000002, + 2.02, + 2.0300000000000002, + 2.04, + 2.05, + 2.06, + 2.07, + 2.08, + 2.09, + 2.1, + 2.11, + 2.12, + 2.13, + 2.14, + 2.15, + 2.16, + 2.17, + 2.18, + 2.19, + 2.2, + 2.21, + 2.22, + 2.23, + 2.24, + 2.25, + 2.2600000000000002, + 2.27, + 2.2800000000000002, + 2.29, + 2.3000000000000003, + 2.31, + 2.32, + 2.33, + 2.34, + 2.35, + 2.36, + 2.37, + 2.38, + 2.39, + 2.4, + 2.41, + 2.42, + 2.43, + 2.44, + 2.45, + 2.46, + 2.47, + 2.48, + 2.49, + 2.5, + 2.5100000000000002, + 2.52, + 2.5300000000000002, + 2.54, + 2.5500000000000003, + 2.56, + 2.57, + 2.58, + 2.59, + 2.6, + 2.61, + 2.62, + 2.63, + 2.64, + 2.65, + 2.66, + 2.67, + 2.68, + 2.69, + 2.7, + 2.71, + 2.72, + 2.73, + 2.74, + 2.75, + 2.7600000000000002, + 2.77, + 2.7800000000000002, + 2.79, + 2.8000000000000003, + 2.81, + 2.82, + 2.83, + 2.84, + 2.85, + 2.86, + 2.87, + 2.88, + 2.89, + 2.9, + 2.91, + 2.92, + 2.93, + 2.94, + 2.95, + 2.96, + 2.97, + 2.98, + 2.99, + 3.0, + 3.0100000000000002, + 3.02, + 3.0300000000000002, + 3.04, + 3.0500000000000003, + 3.06, + 3.0700000000000003, + 3.08, + 3.09, + 3.1, + 3.11, + 3.12, + 3.13, + 3.14, + 3.15, + 3.16, + 3.17, + 3.18, + 3.19, + 3.2, + 3.21, + 3.22, + 3.23, + 3.24, + 3.25, + 3.2600000000000002, + 3.27, + 3.2800000000000002, + 3.29, + 3.3000000000000003, + 3.31, + 3.3200000000000003, + 3.33, + 3.34, + 3.35, + 3.36, + 3.37, + 3.38, + 3.39, + 3.4, + 3.41, + 3.42, + 3.43, + 3.44, + 3.45, + 3.46, + 3.47, + 3.48, + 3.49, + 3.5, + 3.5100000000000002, + 3.52, + 3.5300000000000002, + 3.54, + 3.5500000000000003, + 3.56, + 3.5700000000000003, + 3.58, + 3.59, + 3.6, + 3.61, + 3.62, + 3.63, + 3.64, + 3.65, + 3.66, + 3.67, + 3.68, + 3.69, + 3.7, + 3.71, + 3.72, + 3.73, + 3.74, + 3.75, + 3.7600000000000002, + 3.77, + 3.7800000000000002, + 3.79, + 3.8000000000000003, + 3.81, + 3.8200000000000003, + 3.83, + 3.84, + 3.85, + 3.86, + 3.87, + 3.88, + 3.89, + 3.9, + 3.91, + 3.92, + 3.93, + 3.94, + 3.95, + 3.96, + 3.97, + 3.98, + 3.99, + 4.0, + 4.01, + 4.0200000000000005, + 4.03, + 4.04, + 4.05, + 4.0600000000000005, + 4.07, + 4.08, + 4.09, + 4.1, + 4.11, + 4.12, + 4.13, + 4.14, + 4.15, + 4.16, + 4.17, + 4.18, + 4.19, + 4.2, + 4.21, + 4.22, + 4.23, + 4.24, + 4.25, + 4.26, + 4.2700000000000005, + 4.28, + 4.29, + 4.3, + 4.3100000000000005, + 4.32, + 4.33, + 4.34, + 4.3500000000000005, + 4.36, + 4.37, + 4.38, + 4.39, + 4.4, + 4.41, + 4.42, + 4.43, + 4.44, + 4.45, + 4.46, + 4.47, + 4.48, + 4.49, + 4.5, + 4.51, + 4.5200000000000005, + 4.53, + 4.54, + 4.55, + 4.5600000000000005, + 4.57, + 4.58, + 4.59, + 4.6000000000000005, + 4.61, + 4.62, + 4.63, + 4.64, + 4.65, + 4.66, + 4.67, + 4.68, + 4.69, + 4.7, + 4.71, + 4.72, + 4.73, + 4.74, + 4.75, + 4.76, + 4.7700000000000005, + 4.78, + 4.79, + 4.8, + 4.8100000000000005, + 4.82, + 4.83, + 4.84, + 4.8500000000000005, + 4.86, + 4.87, + 4.88, + 4.89, + 4.9, + 4.91, + 4.92, + 4.93, + 4.94, + 4.95, + 4.96, + 4.97, + 4.98, + 4.99, + 5.0, + 5.01, + 5.0200000000000005, + 5.03, + 5.04, + 5.05, + 5.0600000000000005, + 5.07, + 5.08, + 5.09, + 5.1000000000000005, + 5.11, + 5.12, + 5.13, + 5.14, + 5.15, + 5.16, + 5.17, + 5.18, + 5.19, + 5.2, + 5.21, + 5.22, + 5.23, + 5.24, + 5.25, + 5.26, + 5.2700000000000005, + 5.28, + 5.29, + 5.3, + 5.3100000000000005, + 5.32, + 5.33, + 5.34, + 5.3500000000000005, + 5.36, + 5.37, + 5.38, + 5.39, + 5.4, + 5.41, + 5.42, + 5.43, + 5.44, + 5.45, + 5.46, + 5.47, + 5.48, + 5.49, + 5.5, + 5.51, + 5.5200000000000005, + 5.53, + 5.54, + 5.55, + 5.5600000000000005, + 5.57, + 5.58, + 5.59, + 5.6000000000000005, + 5.61, + 5.62, + 5.63, + 5.64, + 5.65, + 5.66, + 5.67, + 5.68, + 5.69, + 5.7, + 5.71, + 5.72, + 5.73, + 5.74, + 5.75, + 5.76, + 5.7700000000000005, + 5.78, + 5.79, + 5.8, + 5.8100000000000005, + 5.82, + 5.83, + 5.84, + 5.8500000000000005, + 5.86, + 5.87, + 5.88, + 5.89, + 5.9, + 5.91, + 5.92, + 5.93, + 5.94, + 5.95, + 5.96, + 5.97, + 5.98, + 5.99, + 6.0, + 6.01, + 6.0200000000000005, + 6.03, + 6.04, + 6.05, + 6.0600000000000005, + 6.07, + 6.08, + 6.09, + 6.1000000000000005, + 6.11, + 6.12, + 6.13, + 6.140000000000001, + 6.15, + 6.16, + 6.17, + 6.18, + 6.19, + 6.2, + 6.21, + 6.22, + 6.23, + 6.24, + 6.25, + 6.26, + 6.2700000000000005, + 6.28, + 6.29, + 6.3, + 6.3100000000000005, + 6.32, + 6.33, + 6.34, + 6.3500000000000005, + 6.36, + 6.37, + 6.38, + 6.390000000000001, + 6.4, + 6.41, + 6.42, + 6.43, + 6.44, + 6.45, + 6.46, + 6.47, + 6.48, + 6.49, + 6.5, + 6.51, + 6.5200000000000005, + 6.53, + 6.54, + 6.55, + 6.5600000000000005, + 6.57, + 6.58, + 6.59, + 6.6000000000000005, + 6.61, + 6.62, + 6.63, + 6.640000000000001, + 6.65, + 6.66, + 6.67, + 6.68, + 6.69, + 6.7, + 6.71, + 6.72, + 6.73, + 6.74, + 6.75, + 6.76, + 6.7700000000000005, + 6.78, + 6.79, + 6.8, + 6.8100000000000005, + 6.82, + 6.83, + 6.84, + 6.8500000000000005, + 6.86, + 6.87, + 6.88, + 6.890000000000001, + 6.9, + 6.91, + 6.92, + 6.93, + 6.94, + 6.95, + 6.96, + 6.97, + 6.98, + 6.99, + 7.0, + 7.01, + 7.0200000000000005, + 7.03, + 7.04, + 7.05, + 7.0600000000000005, + 7.07, + 7.08, + 7.09, + 7.1000000000000005, + 7.11, + 7.12, + 7.13, + 7.140000000000001, + 7.15, + 7.16, + 7.17, + 7.18, + 7.19, + 7.2, + 7.21, + 7.22, + 7.23, + 7.24, + 7.25, + 7.26, + 7.2700000000000005, + 7.28, + 7.29, + 7.3, + 7.3100000000000005, + 7.32, + 7.33, + 7.34, + 7.3500000000000005, + 7.36, + 7.37, + 7.38, + 7.390000000000001, + 7.4, + 7.41, + 7.42, + 7.43, + 7.44, + 7.45, + 7.46, + 7.47, + 7.48, + 7.49, + 7.5, + 7.51, + 7.5200000000000005, + 7.53, + 7.54, + 7.55, + 7.5600000000000005, + 7.57, + 7.58, + 7.59, + 7.6000000000000005, + 7.61, + 7.62, + 7.63, + 7.640000000000001, + 7.65, + 7.66, + 7.67, + 7.68, + 7.69, + 7.7, + 7.71, + 7.72, + 7.73, + 7.74, + 7.75, + 7.76, + 7.7700000000000005, + 7.78, + 7.79, + 7.8, + 7.8100000000000005, + 7.82, + 7.83, + 7.84, + 7.8500000000000005, + 7.86, + 7.87, + 7.88, + 7.890000000000001, + 7.9, + 7.91, + 7.92, + 7.930000000000001, + 7.94, + 7.95, + 7.96, + 7.97, + 7.98, + 7.99, + 8.0, + 8.01, + 8.02, + 8.03, + 8.040000000000001, + 8.05, + 8.06, + 8.07, + 8.08, + 8.09, + 8.1, + 8.11, + 8.120000000000001, + 8.13, + 8.14, + 8.15, + 8.16, + 8.17, + 8.18, + 8.19, + 8.2, + 8.21, + 8.22, + 8.23, + 8.24, + 8.25, + 8.26, + 8.27, + 8.28, + 8.290000000000001, + 8.3, + 8.31, + 8.32, + 8.33, + 8.34, + 8.35, + 8.36, + 8.370000000000001, + 8.38, + 8.39, + 8.4, + 8.41, + 8.42, + 8.43, + 8.44, + 8.45, + 8.46, + 8.47, + 8.48, + 8.49, + 8.5, + 8.51, + 8.52, + 8.53, + 8.540000000000001, + 8.55, + 8.56, + 8.57, + 8.58, + 8.59, + 8.6, + 8.61, + 8.620000000000001, + 8.63, + 8.64, + 8.65, + 8.66, + 8.67, + 8.68, + 8.69, + 8.700000000000001, + 8.71, + 8.72, + 8.73, + 8.74, + 8.75, + 8.76, + 8.77, + 8.78, + 8.790000000000001, + 8.8, + 8.81, + 8.82, + 8.83, + 8.84, + 8.85, + 8.86, + 8.870000000000001, + 8.88, + 8.89, + 8.9, + 8.91, + 8.92, + 8.93, + 8.94, + 8.950000000000001, + 8.96, + 8.97, + 8.98, + 8.99, + 9.0, + 9.01, + 9.02, + 9.03, + 9.040000000000001, + 9.05, + 9.06, + 9.07, + 9.08, + 9.09, + 9.1, + 9.11, + 9.120000000000001, + 9.13, + 9.14, + 9.15, + 9.16, + 9.17, + 9.18, + 9.19, + 9.200000000000001, + 9.21, + 9.22, + 9.23, + 9.24, + 9.25, + 9.26, + 9.27, + 9.28, + 9.290000000000001, + 9.3, + 9.31, + 9.32, + 9.33, + 9.34, + 9.35, + 9.36, + 9.370000000000001, + 9.38, + 9.39, + 9.4, + 9.41, + 9.42, + 9.43, + 9.44, + 9.450000000000001, + 9.46, + 9.47, + 9.48, + 9.49, + 9.5, + 9.51, + 9.52, + 9.53, + 9.540000000000001, + 9.55, + 9.56, + 9.57, + 9.58, + 9.59, + 9.6, + 9.61, + 9.620000000000001, + 9.63, + 9.64, + 9.65, + 9.66, + 9.67, + 9.68, + 9.69, + 9.700000000000001, + 9.71, + 9.72, + 9.73, + 9.74, + 9.75, + 9.76, + 9.77, + 9.78, + 9.790000000000001, + 9.8, + 9.81, + 9.82, + 9.83, + 9.84, + 9.85, + 9.86, + 9.870000000000001, + 9.88, + 9.89, + 9.9, + 9.91, + 9.92, + 9.93, + 9.94, + 9.950000000000001, + 9.96, + 9.97, + 9.98, + 9.99, + 10.0 + ], + "system_name": "solid", + "values": [ + 0.4, + 0.39999999974225997, + 0.39999976623090666, + 0.39999799761121113, + 0.3999926610011586, + 0.3999826527419404, + 0.3999668270445292, + 0.39994285402080304, + 0.39990545607945444, + 0.3998393250365364, + 0.3997315517646374, + 0.39957216161039727, + 0.3993445334781353, + 0.39905198083702087, + 0.39870158460002714, + 0.3983090191034258, + 0.3978774866226446, + 0.3974057747157464, + 0.3968885014365186, + 0.3963259136498855, + 0.39570266370692675, + 0.3950038419228168, + 0.3942118132999215, + 0.39329362017001807, + 0.3922501902879486, + 0.39108680635262816, + 0.38982706727884664, + 0.3884829215800469, + 0.3870949094740106, + 0.38567808823937333, + 0.38429653439526895, + 0.3829952740542575, + 0.3818021511928941, + 0.3807107642196332, + 0.3796795357995005, + 0.37869360211371816, + 0.3777392041836874, + 0.3768159125173208, + 0.37589575551206705, + 0.37498792661762853, + 0.37405766366223625, + 0.3731484273138404, + 0.37231135507726354, + 0.3716180055432207, + 0.3711105684236986, + 0.3708139014401648, + 0.37072638274048375, + 0.37086131997166777, + 0.37123651971506416, + 0.37182375069872414, + 0.37259119076990765, + 0.37343830451316007, + 0.37433219423611397, + 0.3752334316422915, + 0.3761481320413753, + 0.37706960679886353, + 0.3780155280910067, + 0.3789655212828599, + 0.37994040637406007, + 0.3809808163727515, + 0.38211447992119824, + 0.38336916306287033, + 0.38470924804948115, + 0.3861027497190414, + 0.38749988011858016, + 0.3888807892425687, + 0.39020521265293373, + 0.39145281620626815, + 0.392575429522646, + 0.39356875982978684, + 0.39443989594767753, + 0.39520244142488037, + 0.39587975113659674, + 0.3964900103512137, + 0.397041642480629, + 0.3975377491584472, + 0.3979984530113996, + 0.3984235713694601, + 0.3988138177330575, + 0.39914960604224226, + 0.3994208506551483, + 0.39962551710162153, + 0.3997684874782983, + 0.39986036858528085, + 0.39991786060192563, + 0.3999515074364325, + 0.39997250394589284, + 0.3999870012094942, + 0.3999953145067718, + 0.3999988637161575, + 0.3999999801545136, + 0.40000018685912186, + 0.3999998483729921, + 0.39999956841588347, + 0.3999993255098781, + 0.3999966687660344, + 0.3999893522058359, + 0.39997753171875056, + 0.3999619997145939, + 0.3999351042334939, + 0.3998894999158813, + 0.3998133098669886, + 0.39969030326051413, + 0.39950769637217837, + 0.39926153394316993, + 0.398953121843555, + 0.39859637585572033, + 0.3981925139026697, + 0.397747639731867, + 0.39726288845475577, + 0.39673532944131706, + 0.39616450538383274, + 0.39552608291868907, + 0.3947973652991905, + 0.39395435921506783, + 0.3929984592628998, + 0.3919158771637259, + 0.3907311634529576, + 0.3894447958574257, + 0.3880757794270997, + 0.3866589974750519, + 0.3852536002114514, + 0.38391324164676854, + 0.382666518675324, + 0.381510337997011, + 0.3804196095112997, + 0.3793983814650433, + 0.3784183908090778, + 0.37749093257363264, + 0.376575587558793, + 0.3756507619917191, + 0.37469735497357026, + 0.37375508630836374, + 0.37285996064900095, + 0.3720830722924322, + 0.37146011603521134, + 0.3710023635967423, + 0.37074841336533126, + 0.3707163620950601, + 0.3709499589616591, + 0.37141856774971804, + 0.37208090175970115, + 0.3728534733584303, + 0.3737019949589949, + 0.37457689766194396, + 0.37548997714483556, + 0.37642023134182595, + 0.377346848793396, + 0.37827171249143693, + 0.37920535259401006, + 0.3801949633654984, + 0.3812774181674148, + 0.38247738397713, + 0.38376075857730874, + 0.38511613584612503, + 0.3865000144048281, + 0.38790524710891827, + 0.38928608145344784, + 0.3905973363569672, + 0.3918004228241543, + 0.3928759143593361, + 0.39382164220448385, + 0.3946565360169683, + 0.3954023734226452, + 0.39605990945341096, + 0.3966489494647963, + 0.39717682711693514, + 0.39766551362767005, + 0.39812202406665037, + 0.3985474028885972, + 0.3989228079791511, + 0.3992391290223143, + 0.3994872823035788, + 0.3996716950570985, + 0.3998004334481598, + 0.3998801923497575, + 0.39992910563659906, + 0.3999594985412323, + 0.3999786480659127, + 0.39999018984153173, + 0.399996359479426, + 0.3999996795506511, + 0.40000052943981684, + 0.39999939155908953, + 0.39999916670727786, + 0.3999999272988257, + 0.39999889355925033, + 0.3999939325707399, + 0.399986209075592, + 0.3999744179059349, + 0.39995591437187905, + 0.39992463688065366, + 0.3998702943988908, + 0.39978198417364286, + 0.39964054609038274, + 0.39943903169646694, + 0.3991770200863563, + 0.398856969566719, + 0.3984854676848683, + 0.3980671658047902, + 0.39761058940517274, + 0.3971199442627373, + 0.39659196284731696, + 0.3960017734901501, + 0.3953358940027475, + 0.39456404443288756, + 0.39368534279479334, + 0.3926945020099995, + 0.39159031374509057, + 0.39036466916235124, + 0.38903854731187626, + 0.38764229085886936, + 0.3862298858913535, + 0.38486539909281015, + 0.38356416191928494, + 0.38234602749165786, + 0.3811940767660344, + 0.38012231546876174, + 0.37911996695400824, + 0.3781825124645126, + 0.37725497223874305, + 0.3763225636568148, + 0.37535788076623766, + 0.37438747632696595, + 0.37346562839150804, + 0.3726210873036678, + 0.37188971280494526, + 0.37129088842778296, + 0.3708775687676329, + 0.37068492049684204, + 0.370770363610839, + 0.37109664079185517, + 0.37163881549685485, + 0.372315807663016, + 0.37309247545967905, + 0.3739449493936207, + 0.37484829114457613, + 0.3757735116224678, + 0.3766929600526376, + 0.3775955299044562, + 0.37849263942325384, + 0.3794509502436006, + 0.38048396415677205, + 0.38162169852961414, + 0.38284270473300014, + 0.3841421469819127, + 0.38550211805169304, + 0.3869136843209839, + 0.38832741082736727, + 0.3896979773644251, + 0.39097206841916854, + 0.39212004270730083, + 0.3931529446067065, + 0.3940669325096426, + 0.3948799331013525, + 0.3955957660448497, + 0.39622923613270516, + 0.39679000330528724, + 0.39731131572262746, + 0.3977992768693478, + 0.39825462664209793, + 0.3986669014388353, + 0.3990221226367607, + 0.39931738188194293, + 0.3995485809730382, + 0.39971576392184877, + 0.39982791234765463, + 0.39989799121276, + 0.3999397989760107, + 0.3999666569364724, + 0.3999823802260336, + 0.3999922778411565, + 0.3999984300216462, + 0.3999999679248971, + 0.3999994347173138, + 0.39999926167576316, + 0.399999932797384, + 0.39999960567546866, + 0.3999974129883621, + 0.39999211545030144, + 0.3999836324959998, + 0.39996958328951615, + 0.39994756312249397, + 0.39991187390752464, + 0.39984823337734243, + 0.3997438865095456, + 0.3995876148732429, + 0.39936882557522396, + 0.3990897016040159, + 0.3987540019151949, + 0.39836434557914047, + 0.3979382057245399, + 0.3974777031723045, + 0.39698721698128003, + 0.39644282801784725, + 0.3958263146137349, + 0.3951205247163643, + 0.3943240782455363, + 0.3934158035315237, + 0.3923910783531591, + 0.39124361833598187, + 0.38997082898102914, + 0.38861328293704434, + 0.3872181754838875, + 0.38583785873085175, + 0.3844942200641107, + 0.38321691189067586, + 0.3820004148100094, + 0.38088182415649496, + 0.37984526975485, + 0.3788829212591375, + 0.37794781824654716, + 0.3769965029428369, + 0.3760243711706132, + 0.3750528419687533, + 0.3741097367340113, + 0.3732101331262365, + 0.3723953204569335, + 0.37166919214830546, + 0.37111214949713095, + 0.37077120023857596, + 0.3706972296384622, + 0.3708750228917907, + 0.37127163363744253, + 0.3718310747376181, + 0.37253020459739145, + 0.3733374992569695, + 0.37422051417773095, + 0.375143668320603, + 0.376042496045376, + 0.3769283620429394, + 0.37781158989905983, + 0.378738689071268, + 0.37972813513565795, + 0.38080845163547183, + 0.3819576330251792, + 0.3831945281342103, + 0.38451703772519413, + 0.3859137145108462, + 0.387349668751263, + 0.3887552015657975, + 0.39008846776469464, + 0.3913135292966282, + 0.3924272217354911, + 0.3934239502415771, + 0.39431664830464325, + 0.3950921430216876, + 0.3957730675650719, + 0.39637995307653695, + 0.3969353526690971, + 0.3974533782439147, + 0.3979388000248745, + 0.3983817157378583, + 0.3987744061873139, + 0.39911473051766827, + 0.3993922668571949, + 0.39960687651088783, + 0.3997551152126983, + 0.3998520175663883, + 0.39991302164147086, + 0.3999491325802789, + 0.39997114597581646, + 0.39998614991647347, + 0.399994844586263, + 0.3999989271690888, + 0.3999997384271962, + 0.39999947910677225, + 0.3999994919668774, + 0.4000002097977651, + 0.39999931490449486, + 0.39999599924928925, + 0.3999897140054491, + 0.3999795320518198, + 0.39996402439687595, + 0.39993797731849756, + 0.3998958734807433, + 0.3998236216968388, + 0.39970340911320523, + 0.3995296785207943, + 0.3992940250398652, + 0.3989952729150091, + 0.39863920845489664, + 0.3982430071953142, + 0.39781465103916824, + 0.3973557114999231, + 0.3968455423869088, + 0.3962778891654846, + 0.39563466433640426, + 0.3949053542458691, + 0.39408096114072605, + 0.39314007134405243, + 0.39206651815529997, + 0.39086359522049957, + 0.3895668096961034, + 0.38819927689036404, + 0.3868223534455133, + 0.38545026853297304, + 0.38411871843630424, + 0.38284724724804925, + 0.3816723971453399, + 0.3805996051339936, + 0.3796066112533247, + 0.37864175598432337, + 0.377674993254742, + 0.37670728008647325, + 0.3757299290550733, + 0.3747801833898391, + 0.37384799982664924, + 0.3729553530467968, + 0.3721293137528044, + 0.3714505841958088, + 0.3709665263838327, + 0.370739369550144, + 0.37075496245944173, + 0.37099087305929146, + 0.37141978592153746, + 0.37201533983365814, + 0.3727708362100829, + 0.3736217603383086, + 0.37451640592955165, + 0.37540042508191934, + 0.37627838856939333, + 0.3771447427627905, + 0.3780558710182729, + 0.37901302520970803, + 0.3800288134046091, + 0.38111237679942744, + 0.3822811491607388, + 0.3835544169659486, + 0.3849243842657865, + 0.3863558918555437, + 0.3877820804654426, + 0.38916106272682616, + 0.3904480648450898, + 0.3916477300569331, + 0.39273339547949765, + 0.3936986995971981, + 0.3945436924420517, + 0.3952849729704237, + 0.39593832668991763, + 0.39653387500787884, + 0.39708847820214693, + 0.39759914368521576, + 0.39807032137414977, + 0.3984966891244314, + 0.398879326539903, + 0.3992053800361956, + 0.39946599672811167, + 0.39965777559038534, + 0.3997898179182987, + 0.3998722966142965, + 0.3999242163974356, + 0.39995650101172137, + 0.3999760921839897, + 0.3999893271259221, + 0.39999694406960784, + 0.3999997510629285, + 0.3999994322218917, + 0.39999965370725094, + 0.4000003731935026, + 0.3999999069648029, + 0.39999807227790224, + 0.39999446613430295, + 0.39998682877150077, + 0.3999738181385358, + 0.399956805501918, + 0.3999292993730693, + 0.3998788151244801, + 0.39979366120123055, + 0.39966004702859936, + 0.3994656679797543, + 0.3992089514816541, + 0.39888994759422414, + 0.3985282813157369, + 0.39812895760289463, + 0.39769665491071043, + 0.3972216240476586, + 0.39669257762579546, + 0.39610214489266654, + 0.3954422814300035, + 0.39469288123004664, + 0.39382547326994266, + 0.3928372373819705, + 0.3917135668893558, + 0.3904815864907149, + 0.38916700427908213, + 0.38780774040356564, + 0.3864206864947696, + 0.3850494231063863, + 0.3837277297721354, + 0.382504704094282, + 0.38138771201307065, + 0.38034468737852906, + 0.37935082985262214, + 0.3783642878868963, + 0.37739016020791266, + 0.37642404144499086, + 0.37547252528461783, + 0.37450829901326427, + 0.37356637849304175, + 0.372662560988745, + 0.37187581858855673, + 0.3712724976078406, + 0.3708918346542918, + 0.37074203089678115, + 0.37080583859448796, + 0.3710865685372027, + 0.3715746490474808, + 0.3722546037577725, + 0.37304605960063014, + 0.37390934900377326, + 0.3747690747423569, + 0.37563071048249874, + 0.3765016092068756, + 0.3773980227527897, + 0.3783225739901393, + 0.3792885296423098, + 0.3803070680959672, + 0.3814062509184527, + 0.38262709192441774, + 0.3839529411492219, + 0.38536345140027195, + 0.38678648284820716, + 0.3881902066672244, + 0.3895403314225329, + 0.390816167772361, + 0.3919819180636102, + 0.39303152555097814, + 0.3939500511226857, + 0.394751207336589, + 0.39546553654780514, + 0.3961084389252356, + 0.3966975384828907, + 0.3972368594984813, + 0.3977353655765372, + 0.3981919598924016, + 0.3986138568231418, + 0.39898391328529625, + 0.3992944555133267, + 0.39953247460922964, + 0.3997013181205875, + 0.39981685814022627, + 0.39989025194334077, + 0.3999342423058758, + 0.3999627569051186, + 0.39998157478492447, + 0.3999931101246152, + 0.39999798662845704, + 0.39999931678025197, + 0.40000023190664236, + 0.40000029314429275, + 0.39999952980333925, + 0.3999992961237556, + 0.3999976294590278, + 0.3999913453517534, + 0.39998191841967357, + 0.39996954206573077, + 0.3999508517921804, + 0.39991879375165024, + 0.3998585913135434, + 0.3997602080427923, + 0.39960806620234396, + 0.3993923792690333, + 0.39911603927194494, + 0.39878987283635026, + 0.39842121938251635, + 0.3980160014048169, + 0.39756810294827766, + 0.3970751555269196, + 0.3965363138618237, + 0.39593146138740304, + 0.3952494783515056, + 0.39446019805217614, + 0.3935492562523711, + 0.3925081769061361, + 0.39135941346911896, + 0.3901053194065201, + 0.38877857507799546, + 0.3873974102118941, + 0.3859998080931012, + 0.38464543522520234, + 0.3833751407894403, + 0.3822056469483469, + 0.38111241147266217, + 0.38007398847669555, + 0.37906074043010185, + 0.3780895504788238, + 0.3771243267038296, + 0.3761692131406861, + 0.3751961306689713, + 0.37421132125777523, + 0.3732508385444134, + 0.3723870426150306, + 0.37167477853599645, + 0.3711505483350672, + 0.37083568697160496, + 0.37072168505472997, + 0.3708533389445204, + 0.371214074629334, + 0.37179454489731123, + 0.37251662130780605, + 0.3733189549107275, + 0.3741481094343086, + 0.3750029228183486, + 0.3758684976686802, + 0.37675596211090684, + 0.37766290969119426, + 0.37857744571903323, + 0.3795389689775153, + 0.38057825707213777, + 0.38173875213035213, + 0.38301243979844113, + 0.38437893505690485, + 0.3857788720544914, + 0.38719739616075294, + 0.3885896379292477, + 0.38993158583574533, + 0.39118214004633295, + 0.3923061055718647, + 0.393301850941477, + 0.3941776858127248, + 0.394955085306537, + 0.39564928908267993, + 0.3962830051518634, + 0.3968518959748302, + 0.3973761068224016, + 0.39786336679185763, + 0.39831923065664054, + 0.39873302308401143, + 0.3990885817325615, + 0.3993725175032572, + 0.39958800711131504, + 0.3997404190759884, + 0.39984059992329696, + 0.39990491381755994, + 0.3999440764285255, + 0.39997014299805206, + 0.3999862198900498, + 0.3999946435254662, + 0.39999886011326025, + 0.4000004220597278, + 0.39999981763864, + 0.39999936092877986, + 0.39999989182098666, + 0.399998885517204, + 0.3999949357908362, + 0.3999880612485402, + 0.39997870266793817, + 0.39996605010228875, + 0.3999437724761242, + 0.39990458675803964, + 0.3998354518230543, + 0.3997186941835657, + 0.3995475683578831, + 0.39931479344643217, + 0.39902607899873954, + 0.3986911198241174, + 0.398311503886171, + 0.3978920185143149, + 0.3974315591452631, + 0.3969326548257678, + 0.39638174051946806, + 0.3957604742428835, + 0.3950361074576025, + 0.39420549745211014, + 0.393252711331798, + 0.3921831935129629, + 0.3910051273260115, + 0.3897274225057207, + 0.38836471165751896, + 0.3869657256334924, + 0.38559211870958837, + 0.3842795382826184, + 0.38306013547472056, + 0.38190452955743404, + 0.3808186723123431, + 0.37977968223787856, + 0.3787920437427274, + 0.37783213021829476, + 0.376877827019525, + 0.3758898179207213, + 0.37488226206879766, + 0.37389170121495185, + 0.3729623102800658, + 0.37216438891253406, + 0.3715090631725452, + 0.37103000192399516, + 0.37074997270741583, + 0.3707229464421881, + 0.3709465264670728, + 0.37141011128260026, + 0.3720303914236756, + 0.37276201584850144, + 0.37355168607693084, + 0.374381636390462, + 0.3752519167456091, + 0.3761339247741565, + 0.3770159001911352, + 0.37789457237779267, + 0.378811028603819, + 0.3797917212042068, + 0.38089778316319295, + 0.3821078102225966, + 0.3834125201006218, + 0.3847771647714222, + 0.38618573313531057, + 0.3876103217180677, + 0.38900646415731915, + 0.39032383428691964, + 0.3915262883533503, + 0.39260319764546725, + 0.39355128111129134, + 0.3944029957363565, + 0.3951599605429149, + 0.39583646377314485, + 0.39644112371738277, + 0.3969960975925041, + 0.3975111381577431, + 0.3980003386491395, + 0.39845174186118504, + 0.39884821360387074, + 0.39918020304012963, + 0.3994415427508539, + 0.3996385309466498, + 0.3997747154731298, + 0.3998623753659934, + 0.3999184920317445, + 0.3999541125755435, + 0.39997560401055754, + 0.3999891546391445, + 0.3999966573165025, + 0.3999996285168199, + 0.3999998403187683, + 0.39999947276234166, + 0.39999947912549144, + 0.3999994042315414, + 0.3999976767884355, + 0.39999285324381517, + 0.3999854831267889, + 0.3999755985051322, + 0.3999614232298254, + 0.399934818159181, + 0.3998866942542933, + 0.3998054269433189, + 0.3996731443422765, + 0.39948289156305533, + 0.3992364060219965, + 0.39893637076939137, + 0.39858556356011565, + 0.39819266747133414, + 0.397762111502184, + 0.3973028364196399, + 0.3967938283251919, + 0.3962235751993683, + 0.39556609447144825, + 0.3948070235384893, + 0.39393625247790953, + 0.3929576785005311, + 0.3918586184871025, + 0.39063545283585077, + 0.38931826928051005, + 0.38793610882272767, + 0.38655677688316303, + 0.3852155396197892, + 0.38394319546585914, + 0.382730660071285, + 0.38159054472281434, + 0.38051449127015663, + 0.3795140016203001, + 0.37854865386192527, + 0.37758219192791864, + 0.37659442861145087, + 0.37557374067262944, + 0.37456156582071726, + 0.37359932289797504, + 0.37272634946055966, + 0.371949500773, + 0.3713280692055868, + 0.37088872565686626, + 0.37070541429549464, + 0.37078216452872403, + 0.37110344142194307, + 0.37161032368746694, + 0.37224524549736493, + 0.3729778433849762, + 0.3737878513846185, + 0.3746497163496909, + 0.3755173885881505, + 0.3763882810501062, + 0.37723442177758654, + 0.37811177134242113, + 0.37905574324887276, + 0.3801011188931363, + 0.3812412621104222, + 0.38247624043919637, + 0.38378901238739427, + 0.38517586805302906, + 0.3866113120842035, + 0.38804148312159115, + 0.38942163932877794, + 0.39069020566222973, + 0.3918434489680618, + 0.3928788644990426, + 0.39380705067017896, + 0.39462674215428506, + 0.39535872217151957, + 0.39600452484656723, + 0.3965898736550134, + 0.39713929236674633, + 0.3976587020349369, + 0.39814210996095, + 0.39857554937422013, + 0.3989516012719805, + 0.3992631795079376, + 0.3995080664822808, + 0.39968390561960654, + 0.3998058748463197, + 0.3998823749303232, + 0.39993014579758834, + 0.3999613703853521, + 0.39998056016931466, + 0.39999181944261497, + 0.3999978763827741, + 0.399999803874825, + 0.39999937461755075, + 0.3999990270857816, + 0.3999997980861276, + 0.3999994103071853, + 0.39999611946669805, + 0.3999904798990737, + 0.3999835333730849, + 0.39997177913633847, + 0.3999533952730454, + 0.39992378885033936, + 0.3998669957672487, + 0.39977036687257267, + 0.3996233387948289, + 0.39941719172866275, + 0.39915530381578734, + 0.3988359803975, + 0.3984725330387327, + 0.3980725248921446, + 0.3976429248676949, + 0.3971739555926526, + 0.3966501922145464, + 0.3960457211209203, + 0.3953553596156753, + 0.394571168807722, + 0.393672275043939, + 0.3926538628556342, + 0.3915054041686367, + 0.3902425788428991, + 0.38889740319329386, + 0.3875320563184459, + 0.38617162144912737, + 0.3848567324827554, + 0.38358727144984406, + 0.38239125123516815, + 0.3812817881074146, + 0.3802503779554594, + 0.3792700042280499, + 0.37829606227837526, + 0.3772981990600845, + 0.37627361104848445, + 0.3752667907950337, + 0.37427447828554744, + 0.37334081749076314, + 0.3724708930984057, + 0.3717186629510265, + 0.37113866607915436, + 0.3708021399677288, + 0.3707238481286351, + 0.3708920168338568, + 0.3712585727145814, + 0.3717810850673913, + 0.37245071259424595, + 0.37321627647960426, + 0.37406181110866116, + 0.37491956894441103, + 0.37576482706585407, + 0.3765920797780905, + 0.3774507142949507, + 0.3783559351172256, + 0.3793459051681743, + 0.38041924201004484, + 0.3815752869248869, + 0.38282933259013635, + 0.3841762143103714, + 0.3856045855292859, + 0.38705522773577333, + 0.38847179348530714, + 0.3898005074228845, + 0.39103479635513533, + 0.39214963694335003, + 0.39315918058165183, + 0.3940553595984641, + 0.3948412501964441, + 0.39553410073857603, + 0.39616257044852443, + 0.3967462467931029, + 0.39729326360018546, + 0.39780693410461365, + 0.398272426123965, + 0.3986909242134577, + 0.3990491283439463, + 0.39934383443903126, + 0.39956933772282793, + 0.3997269559248173, + 0.3998307782021847, + 0.399898914365569, + 0.39994087268378314, + 0.39996707735336245, + 0.3999843217808336, + 0.3999945391070274, + 0.39999882587724533, + 0.39999900860572307, + 0.3999991970872223, + 0.4000001440950682, + 0.40000006296751167, + 0.39999797099269796, + 0.3999947914383718, + 0.39998863850702737, + 0.399978920531413, + 0.39996654405945686, + 0.3999461790513626, + 0.39991055336957526, + 0.39984389582358265, + 0.39973291246377873, + 0.3995691268121864, + 0.39934634565579497, + 0.39906239700980434, + 0.39873112121273385, + 0.39836002753535726, + 0.39796173206215546, + 0.3975254760359114, + 0.39703680734771823, + 0.3964859660026623, + 0.3958594328719472, + 0.3951466966955643, + 0.39433064057734546, + 0.39339606812658384, + 0.39232092664586327, + 0.391130690974315, + 0.38984139565959736, + 0.3885011080106159, + 0.3871412679117514, + 0.38579230135001347, + 0.38447465674070735, + 0.3832286937547377, + 0.38207464781820805, + 0.38101022987399824, + 0.3800075448381193, + 0.37900603293001317, + 0.37800606703098877, + 0.37698975712768057, + 0.3759812800972085, + 0.3749794541192018, + 0.37400301386750384, + 0.3730525088110202, + 0.3721964022449802, + 0.3714941265910668, + 0.3710093537808852, + 0.370778936276989, + 0.37077678997369945, + 0.370990809100327, + 0.37138868656298374, + 0.37196786781681895, + 0.3726855602221878, + 0.37349883683455204, + 0.3743246030338424, + 0.3751545583209907, + 0.37597163765446734, + 0.376808630557494, + 0.37769260584456277, + 0.37863291338147775, + 0.3796367071544038, + 0.38071793030934453, + 0.38190479258600085, + 0.3832009002431873, + 0.38460650200941354, + 0.38604939871233646, + 0.38748981614310435, + 0.3888669415639746, + 0.3901663636176307, + 0.3913697990125811, + 0.3924632004640476, + 0.393430778756802, + 0.39428171941216716, + 0.39503366410271445, + 0.39570536340409945, + 0.3963292153039344, + 0.3969077738797642, + 0.3974470326431988, + 0.39794250369512973, + 0.3983971401652699, + 0.39880117930980113, + 0.39914810265507145, + 0.3994208871898264, + 0.3996227989138774, + 0.3997624913418358, + 0.399853321001195 + ], + "datatype": "Float64", + "type": "series" + } +} diff --git a/validation/oscillating_beam_2d/validation_reference_oscillating_beam_2d_9.json b/validation/oscillating_beam_2d/validation_reference_oscillating_beam_2d_9.json new file mode 100644 index 000000000..27d64c988 --- /dev/null +++ b/validation/oscillating_beam_2d/validation_reference_oscillating_beam_2d_9.json @@ -0,0 +1,4031 @@ +{ + "meta": { + "julia_version": "1.10.1", + "solver_version": "c6184f4-dirty", + "solver_name": "TrixiParticles.jl" + }, + "mid_point_y_solid_1": { + "n_values": 1001, + "time": [ + 0.0, + 0.01, + 0.02, + 0.03, + 0.04, + 0.05, + 0.06, + 0.07, + 0.08, + 0.09, + 0.1, + 0.11, + 0.12, + 0.13, + 0.14, + 0.15, + 0.16, + 0.17, + 0.18, + 0.19, + 0.2, + 0.21, + 0.22, + 0.23, + 0.24, + 0.25, + 0.26, + 0.27, + 0.28, + 0.29, + 0.3, + 0.31, + 0.32, + 0.33, + 0.34, + 0.35000000000000003, + 0.36, + 0.37, + 0.38, + 0.39, + 0.4, + 0.41000000000000003, + 0.42, + 0.43, + 0.44, + 0.45, + 0.46, + 0.47000000000000003, + 0.48, + 0.49, + 0.5, + 0.51, + 0.52, + 0.53, + 0.54, + 0.55, + 0.56, + 0.5700000000000001, + 0.58, + 0.59, + 0.6, + 0.61, + 0.62, + 0.63, + 0.64, + 0.65, + 0.66, + 0.67, + 0.68, + 0.6900000000000001, + 0.7000000000000001, + 0.71, + 0.72, + 0.73, + 0.74, + 0.75, + 0.76, + 0.77, + 0.78, + 0.79, + 0.8, + 0.81, + 0.8200000000000001, + 0.8300000000000001, + 0.84, + 0.85, + 0.86, + 0.87, + 0.88, + 0.89, + 0.9, + 0.91, + 0.92, + 0.93, + 0.9400000000000001, + 0.9500000000000001, + 0.96, + 0.97, + 0.98, + 0.99, + 1.0, + 1.01, + 1.02, + 1.03, + 1.04, + 1.05, + 1.06, + 1.07, + 1.08, + 1.09, + 1.1, + 1.11, + 1.12, + 1.1300000000000001, + 1.1400000000000001, + 1.1500000000000001, + 1.16, + 1.17, + 1.18, + 1.19, + 1.2, + 1.21, + 1.22, + 1.23, + 1.24, + 1.25, + 1.26, + 1.27, + 1.28, + 1.29, + 1.3, + 1.31, + 1.32, + 1.33, + 1.34, + 1.35, + 1.36, + 1.37, + 1.3800000000000001, + 1.3900000000000001, + 1.4000000000000001, + 1.41, + 1.42, + 1.43, + 1.44, + 1.45, + 1.46, + 1.47, + 1.48, + 1.49, + 1.5, + 1.51, + 1.52, + 1.53, + 1.54, + 1.55, + 1.56, + 1.57, + 1.58, + 1.59, + 1.6, + 1.61, + 1.62, + 1.6300000000000001, + 1.6400000000000001, + 1.6500000000000001, + 1.6600000000000001, + 1.67, + 1.68, + 1.69, + 1.7, + 1.71, + 1.72, + 1.73, + 1.74, + 1.75, + 1.76, + 1.77, + 1.78, + 1.79, + 1.8, + 1.81, + 1.82, + 1.83, + 1.84, + 1.85, + 1.86, + 1.87, + 1.8800000000000001, + 1.8900000000000001, + 1.9000000000000001, + 1.9100000000000001, + 1.92, + 1.93, + 1.94, + 1.95, + 1.96, + 1.97, + 1.98, + 1.99, + 2.0, + 2.0100000000000002, + 2.02, + 2.0300000000000002, + 2.04, + 2.05, + 2.06, + 2.07, + 2.08, + 2.09, + 2.1, + 2.11, + 2.12, + 2.13, + 2.14, + 2.15, + 2.16, + 2.17, + 2.18, + 2.19, + 2.2, + 2.21, + 2.22, + 2.23, + 2.24, + 2.25, + 2.2600000000000002, + 2.27, + 2.2800000000000002, + 2.29, + 2.3000000000000003, + 2.31, + 2.32, + 2.33, + 2.34, + 2.35, + 2.36, + 2.37, + 2.38, + 2.39, + 2.4, + 2.41, + 2.42, + 2.43, + 2.44, + 2.45, + 2.46, + 2.47, + 2.48, + 2.49, + 2.5, + 2.5100000000000002, + 2.52, + 2.5300000000000002, + 2.54, + 2.5500000000000003, + 2.56, + 2.57, + 2.58, + 2.59, + 2.6, + 2.61, + 2.62, + 2.63, + 2.64, + 2.65, + 2.66, + 2.67, + 2.68, + 2.69, + 2.7, + 2.71, + 2.72, + 2.73, + 2.74, + 2.75, + 2.7600000000000002, + 2.77, + 2.7800000000000002, + 2.79, + 2.8000000000000003, + 2.81, + 2.82, + 2.83, + 2.84, + 2.85, + 2.86, + 2.87, + 2.88, + 2.89, + 2.9, + 2.91, + 2.92, + 2.93, + 2.94, + 2.95, + 2.96, + 2.97, + 2.98, + 2.99, + 3.0, + 3.0100000000000002, + 3.02, + 3.0300000000000002, + 3.04, + 3.0500000000000003, + 3.06, + 3.0700000000000003, + 3.08, + 3.09, + 3.1, + 3.11, + 3.12, + 3.13, + 3.14, + 3.15, + 3.16, + 3.17, + 3.18, + 3.19, + 3.2, + 3.21, + 3.22, + 3.23, + 3.24, + 3.25, + 3.2600000000000002, + 3.27, + 3.2800000000000002, + 3.29, + 3.3000000000000003, + 3.31, + 3.3200000000000003, + 3.33, + 3.34, + 3.35, + 3.36, + 3.37, + 3.38, + 3.39, + 3.4, + 3.41, + 3.42, + 3.43, + 3.44, + 3.45, + 3.46, + 3.47, + 3.48, + 3.49, + 3.5, + 3.5100000000000002, + 3.52, + 3.5300000000000002, + 3.54, + 3.5500000000000003, + 3.56, + 3.5700000000000003, + 3.58, + 3.59, + 3.6, + 3.61, + 3.62, + 3.63, + 3.64, + 3.65, + 3.66, + 3.67, + 3.68, + 3.69, + 3.7, + 3.71, + 3.72, + 3.73, + 3.74, + 3.75, + 3.7600000000000002, + 3.77, + 3.7800000000000002, + 3.79, + 3.8000000000000003, + 3.81, + 3.8200000000000003, + 3.83, + 3.84, + 3.85, + 3.86, + 3.87, + 3.88, + 3.89, + 3.9, + 3.91, + 3.92, + 3.93, + 3.94, + 3.95, + 3.96, + 3.97, + 3.98, + 3.99, + 4.0, + 4.01, + 4.0200000000000005, + 4.03, + 4.04, + 4.05, + 4.0600000000000005, + 4.07, + 4.08, + 4.09, + 4.1, + 4.11, + 4.12, + 4.13, + 4.14, + 4.15, + 4.16, + 4.17, + 4.18, + 4.19, + 4.2, + 4.21, + 4.22, + 4.23, + 4.24, + 4.25, + 4.26, + 4.2700000000000005, + 4.28, + 4.29, + 4.3, + 4.3100000000000005, + 4.32, + 4.33, + 4.34, + 4.3500000000000005, + 4.36, + 4.37, + 4.38, + 4.39, + 4.4, + 4.41, + 4.42, + 4.43, + 4.44, + 4.45, + 4.46, + 4.47, + 4.48, + 4.49, + 4.5, + 4.51, + 4.5200000000000005, + 4.53, + 4.54, + 4.55, + 4.5600000000000005, + 4.57, + 4.58, + 4.59, + 4.6000000000000005, + 4.61, + 4.62, + 4.63, + 4.64, + 4.65, + 4.66, + 4.67, + 4.68, + 4.69, + 4.7, + 4.71, + 4.72, + 4.73, + 4.74, + 4.75, + 4.76, + 4.7700000000000005, + 4.78, + 4.79, + 4.8, + 4.8100000000000005, + 4.82, + 4.83, + 4.84, + 4.8500000000000005, + 4.86, + 4.87, + 4.88, + 4.89, + 4.9, + 4.91, + 4.92, + 4.93, + 4.94, + 4.95, + 4.96, + 4.97, + 4.98, + 4.99, + 5.0, + 5.01, + 5.0200000000000005, + 5.03, + 5.04, + 5.05, + 5.0600000000000005, + 5.07, + 5.08, + 5.09, + 5.1000000000000005, + 5.11, + 5.12, + 5.13, + 5.14, + 5.15, + 5.16, + 5.17, + 5.18, + 5.19, + 5.2, + 5.21, + 5.22, + 5.23, + 5.24, + 5.25, + 5.26, + 5.2700000000000005, + 5.28, + 5.29, + 5.3, + 5.3100000000000005, + 5.32, + 5.33, + 5.34, + 5.3500000000000005, + 5.36, + 5.37, + 5.38, + 5.39, + 5.4, + 5.41, + 5.42, + 5.43, + 5.44, + 5.45, + 5.46, + 5.47, + 5.48, + 5.49, + 5.5, + 5.51, + 5.5200000000000005, + 5.53, + 5.54, + 5.55, + 5.5600000000000005, + 5.57, + 5.58, + 5.59, + 5.6000000000000005, + 5.61, + 5.62, + 5.63, + 5.64, + 5.65, + 5.66, + 5.67, + 5.68, + 5.69, + 5.7, + 5.71, + 5.72, + 5.73, + 5.74, + 5.75, + 5.76, + 5.7700000000000005, + 5.78, + 5.79, + 5.8, + 5.8100000000000005, + 5.82, + 5.83, + 5.84, + 5.8500000000000005, + 5.86, + 5.87, + 5.88, + 5.89, + 5.9, + 5.91, + 5.92, + 5.93, + 5.94, + 5.95, + 5.96, + 5.97, + 5.98, + 5.99, + 6.0, + 6.01, + 6.0200000000000005, + 6.03, + 6.04, + 6.05, + 6.0600000000000005, + 6.07, + 6.08, + 6.09, + 6.1000000000000005, + 6.11, + 6.12, + 6.13, + 6.140000000000001, + 6.15, + 6.16, + 6.17, + 6.18, + 6.19, + 6.2, + 6.21, + 6.22, + 6.23, + 6.24, + 6.25, + 6.26, + 6.2700000000000005, + 6.28, + 6.29, + 6.3, + 6.3100000000000005, + 6.32, + 6.33, + 6.34, + 6.3500000000000005, + 6.36, + 6.37, + 6.38, + 6.390000000000001, + 6.4, + 6.41, + 6.42, + 6.43, + 6.44, + 6.45, + 6.46, + 6.47, + 6.48, + 6.49, + 6.5, + 6.51, + 6.5200000000000005, + 6.53, + 6.54, + 6.55, + 6.5600000000000005, + 6.57, + 6.58, + 6.59, + 6.6000000000000005, + 6.61, + 6.62, + 6.63, + 6.640000000000001, + 6.65, + 6.66, + 6.67, + 6.68, + 6.69, + 6.7, + 6.71, + 6.72, + 6.73, + 6.74, + 6.75, + 6.76, + 6.7700000000000005, + 6.78, + 6.79, + 6.8, + 6.8100000000000005, + 6.82, + 6.83, + 6.84, + 6.8500000000000005, + 6.86, + 6.87, + 6.88, + 6.890000000000001, + 6.9, + 6.91, + 6.92, + 6.93, + 6.94, + 6.95, + 6.96, + 6.97, + 6.98, + 6.99, + 7.0, + 7.01, + 7.0200000000000005, + 7.03, + 7.04, + 7.05, + 7.0600000000000005, + 7.07, + 7.08, + 7.09, + 7.1000000000000005, + 7.11, + 7.12, + 7.13, + 7.140000000000001, + 7.15, + 7.16, + 7.17, + 7.18, + 7.19, + 7.2, + 7.21, + 7.22, + 7.23, + 7.24, + 7.25, + 7.26, + 7.2700000000000005, + 7.28, + 7.29, + 7.3, + 7.3100000000000005, + 7.32, + 7.33, + 7.34, + 7.3500000000000005, + 7.36, + 7.37, + 7.38, + 7.390000000000001, + 7.4, + 7.41, + 7.42, + 7.43, + 7.44, + 7.45, + 7.46, + 7.47, + 7.48, + 7.49, + 7.5, + 7.51, + 7.5200000000000005, + 7.53, + 7.54, + 7.55, + 7.5600000000000005, + 7.57, + 7.58, + 7.59, + 7.6000000000000005, + 7.61, + 7.62, + 7.63, + 7.640000000000001, + 7.65, + 7.66, + 7.67, + 7.68, + 7.69, + 7.7, + 7.71, + 7.72, + 7.73, + 7.74, + 7.75, + 7.76, + 7.7700000000000005, + 7.78, + 7.79, + 7.8, + 7.8100000000000005, + 7.82, + 7.83, + 7.84, + 7.8500000000000005, + 7.86, + 7.87, + 7.88, + 7.890000000000001, + 7.9, + 7.91, + 7.92, + 7.930000000000001, + 7.94, + 7.95, + 7.96, + 7.97, + 7.98, + 7.99, + 8.0, + 8.01, + 8.02, + 8.03, + 8.040000000000001, + 8.05, + 8.06, + 8.07, + 8.08, + 8.09, + 8.1, + 8.11, + 8.120000000000001, + 8.13, + 8.14, + 8.15, + 8.16, + 8.17, + 8.18, + 8.19, + 8.2, + 8.21, + 8.22, + 8.23, + 8.24, + 8.25, + 8.26, + 8.27, + 8.28, + 8.290000000000001, + 8.3, + 8.31, + 8.32, + 8.33, + 8.34, + 8.35, + 8.36, + 8.370000000000001, + 8.38, + 8.39, + 8.4, + 8.41, + 8.42, + 8.43, + 8.44, + 8.45, + 8.46, + 8.47, + 8.48, + 8.49, + 8.5, + 8.51, + 8.52, + 8.53, + 8.540000000000001, + 8.55, + 8.56, + 8.57, + 8.58, + 8.59, + 8.6, + 8.61, + 8.620000000000001, + 8.63, + 8.64, + 8.65, + 8.66, + 8.67, + 8.68, + 8.69, + 8.700000000000001, + 8.71, + 8.72, + 8.73, + 8.74, + 8.75, + 8.76, + 8.77, + 8.78, + 8.790000000000001, + 8.8, + 8.81, + 8.82, + 8.83, + 8.84, + 8.85, + 8.86, + 8.870000000000001, + 8.88, + 8.89, + 8.9, + 8.91, + 8.92, + 8.93, + 8.94, + 8.950000000000001, + 8.96, + 8.97, + 8.98, + 8.99, + 9.0, + 9.01, + 9.02, + 9.03, + 9.040000000000001, + 9.05, + 9.06, + 9.07, + 9.08, + 9.09, + 9.1, + 9.11, + 9.120000000000001, + 9.13, + 9.14, + 9.15, + 9.16, + 9.17, + 9.18, + 9.19, + 9.200000000000001, + 9.21, + 9.22, + 9.23, + 9.24, + 9.25, + 9.26, + 9.27, + 9.28, + 9.290000000000001, + 9.3, + 9.31, + 9.32, + 9.33, + 9.34, + 9.35, + 9.36, + 9.370000000000001, + 9.38, + 9.39, + 9.4, + 9.41, + 9.42, + 9.43, + 9.44, + 9.450000000000001, + 9.46, + 9.47, + 9.48, + 9.49, + 9.5, + 9.51, + 9.52, + 9.53, + 9.540000000000001, + 9.55, + 9.56, + 9.57, + 9.58, + 9.59, + 9.6, + 9.61, + 9.620000000000001, + 9.63, + 9.64, + 9.65, + 9.66, + 9.67, + 9.68, + 9.69, + 9.700000000000001, + 9.71, + 9.72, + 9.73, + 9.74, + 9.75, + 9.76, + 9.77, + 9.78, + 9.790000000000001, + 9.8, + 9.81, + 9.82, + 9.83, + 9.84, + 9.85, + 9.86, + 9.870000000000001, + 9.88, + 9.89, + 9.9, + 9.91, + 9.92, + 9.93, + 9.94, + 9.950000000000001, + 9.96, + 9.97, + 9.98, + 9.99, + 10.0 + ], + "system_name": "solid", + "values": [ + 0.01, + 0.00990000000509576, + 0.009598716780332335, + 0.009120875012238476, + 0.008525556087139008, + 0.0075870198207858, + 0.006194865293138953, + 0.004349345125559572, + 0.0020368414837839558, + -0.0006090912651748233, + -0.003561356329041525, + -0.006896326592064282, + -0.01056378440171105, + -0.014366309924391495, + -0.018242666143839265, + -0.022025908765049416, + -0.0257804099891023, + -0.02963397995354452, + -0.03354399583885791, + -0.03747120034038949, + -0.04145279506305573, + -0.045499474428649635, + -0.04972468274468592, + -0.05424750472493311, + -0.058885467339755374, + -0.06356900750970179, + -0.06818926647607539, + -0.07268045611921191, + -0.07707993886870672, + -0.08134924325232577, + -0.08528800576441274, + -0.08887067611626687, + -0.09210780294565608, + -0.095038890894997, + -0.09785356922202339, + -0.10050446794168155, + -0.10294366108244588, + -0.10520068314183542, + -0.10729836860390322, + -0.10927052968923083, + -0.11119954977230323, + -0.11290476246240039, + -0.11427960262081248, + -0.11528553089476556, + -0.1158529593090568, + -0.11609103518027038, + -0.11600518255763424, + -0.11549282080062871, + -0.11454311429610142, + -0.11321527992042962, + -0.11155815824214803, + -0.10979351074143331, + -0.10790421898371008, + -0.10583562084827075, + -0.10360941536229529, + -0.1011801374810048, + -0.09860164523825718, + -0.0959362746335227, + -0.09305943879194005, + -0.08984735488017478, + -0.08630206104088668, + -0.08236328146622887, + -0.0782089088752725, + -0.07391243687243125, + -0.06942619811100194, + -0.06478752459696983, + -0.06008688710364543, + -0.05541538258441259, + -0.050969291497549404, + -0.046762837052809196, + -0.042636994352999544, + -0.03861425956434256, + -0.03463177463211459, + -0.03072097245066487, + -0.026925641809701247, + -0.023149308328871663, + -0.019256431102829746, + -0.015345265248515478, + -0.011476786243251382, + -0.00780000828778654, + -0.004466204336282469, + -0.0013865974141626877, + 0.0014076595431873696, + 0.0037993717748830177, + 0.0057207725559476, + 0.007158865331696217, + 0.008137633396629873, + 0.008909693494679535, + 0.009491539498536256, + 0.009838258951233374, + 0.009981355122154372, + 0.00991125401758055, + 0.009685054360445491, + 0.009380170474170581, + 0.00886637452647606, + 0.0079536732438411, + 0.006643841688235364, + 0.004852241661885256, + 0.0026823455247848914, + 0.00018936470949852194, + -0.0027162471276134157, + -0.006049313597476328, + -0.009649867974345921, + -0.013416080979991333, + -0.01718649109210308, + -0.02089678704383296, + -0.024705794421393305, + -0.02856816678893326, + -0.032443891400851986, + -0.03632601510685425, + -0.040230578695751654, + -0.04424350119179409, + -0.04855288198915646, + -0.05305749786109926, + -0.05766538739818639, + -0.062324097390700224, + -0.0669137162131423, + -0.07147671809248175, + -0.07599069923260864, + -0.08028640423664737, + -0.08424107670440577, + -0.08785999467181375, + -0.09111371307403096, + -0.09419074860025953, + -0.09710415811190419, + -0.099775920946307, + -0.10224189728330609, + -0.10452239965585577, + -0.1066720197811933, + -0.10879644452890429, + -0.11080957236633794, + -0.11254098665096395, + -0.11398129124668205, + -0.11501640415648207, + -0.11571654571309532, + -0.11611668380726145, + -0.11611419676264081, + -0.11565553217245016, + -0.11476585339803101, + -0.11347147672516776, + -0.1119598967643281, + -0.11032186549848137, + -0.10846435259520457, + -0.10644468391914311, + -0.10421870733795663, + -0.10184077393765716, + -0.09939806479396429, + -0.09682506258090416, + -0.0939681893704046, + -0.09080560934688212, + -0.08725568047763257, + -0.08340209829080997, + -0.07938268810710306, + -0.07511960699952074, + -0.07063962909951478, + -0.06598692377423274, + -0.0612582452656782, + -0.056637498353225006, + -0.052258731786493866, + -0.047985013810995215, + -0.043821845831147, + -0.03973900710184165, + -0.03572739160815349, + -0.03187712216862, + -0.028093324161804115, + -0.024229492135202, + -0.020282528558262833, + -0.0163243860013382, + -0.012420924008752228, + -0.008784230826099474, + -0.005357903991347236, + -0.0021396388866570253, + 0.0007518998994200226, + 0.003223074473954689, + 0.005201188281509898, + 0.006661217845882009, + 0.00778871825626515, + 0.00870766099224805, + 0.009339259138219312, + 0.00974952026736696, + 0.009908881853015802, + 0.00989245914581763, + 0.009815371100606261, + 0.009632089834326667, + 0.009140507704265539, + 0.008301849033336148, + 0.00703841805937299, + 0.005358021477648473, + 0.0033683372356377523, + 0.0009519685723149777, + -0.0019340239545356894, + -0.005213062406229529, + -0.008762313553376363, + -0.012443434130476674, + -0.01609139909351414, + -0.01983227871684172, + -0.02366341457571404, + -0.027502248098068355, + -0.031343111818558554, + -0.035146681882760045, + -0.03899040370919372, + -0.04306270747359594, + -0.04738883114550445, + -0.051846268336048724, + -0.05643738107382051, + -0.06103012364509748, + -0.06565303320993866, + -0.07032376870379399, + -0.07488539588039583, + -0.07918451661436329, + -0.08317320660979297, + -0.08679576884475158, + -0.09015869847825023, + -0.09336996216710187, + -0.09631264233043814, + -0.09901867116068061, + -0.10149758053832006, + -0.10381169483874299, + -0.10609007505715286, + -0.10833000108230396, + -0.11036219470780013, + -0.112155211519349, + -0.1136194755331182, + -0.11474342744464049, + -0.1156180631460188, + -0.11611972227419395, + -0.11617962650736256, + -0.11578016854177639, + -0.1149276769220799, + -0.11374553111200775, + -0.11239575332378211, + -0.11080485445913783, + -0.10900528956169553, + -0.1069956621695975, + -0.1047905491676683, + -0.10253837779786497, + -0.10020796565350244, + -0.09766989479860018, + -0.09485651776935647, + -0.09170303298874578, + -0.08819549196680979, + -0.08449611457942045, + -0.08053810115255519, + -0.0763023659825911, + -0.0718233677829476, + -0.06714414181280001, + -0.06244924650642106, + -0.05792036890254661, + -0.0535154048830566, + -0.049194763339576085, + -0.044987976450555175, + -0.04084040670700258, + -0.03688403246286254, + -0.0330671596267089, + -0.029227507331532874, + -0.025297116804959136, + -0.02131052561461157, + -0.017302127007068503, + -0.013449773570929182, + -0.009777393916507792, + -0.006216961479606769, + -0.0029050278839044125, + 8.022610298206793e-5, + 0.0026097952721350092, + 0.004606910746325181, + 0.006169291485409618, + 0.007473872369390442, + 0.008460208259411508, + 0.009169127705237406, + 0.009602760096672418, + 0.009786822704919077, + 0.009901567012838777, + 0.009961029812572682, + 0.009822026151168681, + 0.009384512388791903, + 0.008598811022782059, + 0.00739852125256891, + 0.005910668610697942, + 0.004028766598757717, + 0.0016529296525323119, + -0.001184300923748326, + -0.004407613112754888, + -0.00788195774303957, + -0.011420415418619632, + -0.015045694918086095, + -0.01882300195827447, + -0.02262707128399744, + -0.026455032904147833, + -0.030214954132452156, + -0.033939856277923425, + -0.037807085680429925, + -0.0419245689165019, + -0.04620333931482644, + -0.050642786510230756, + -0.05516059624760778, + -0.059730848160057644, + -0.0644508953207509, + -0.0691730388428178, + -0.07374577541043316, + -0.07806182252445115, + -0.08205198769556808, + -0.08573618578735258, + -0.08925565919311514, + -0.09251221234430514, + -0.09549174523653742, + -0.09821843156928817, + -0.10070651952337431, + -0.10312626746570223, + -0.10553238765307564, + -0.10781179718674745, + -0.10988464967648068, + -0.11171170503669149, + -0.11321784140865009, + -0.11451467828337852, + -0.11550480718797895, + -0.11607883377339025, + -0.11620374579592739, + -0.11583951853155194, + -0.11507284086747241, + -0.1140616515640764, + -0.11279725243398099, + -0.11125788785735259, + -0.10949856754326003, + -0.10748278242950457, + -0.10538849394370202, + -0.10325586615142723, + -0.10098436389599753, + -0.09848798665468651, + -0.0956933101952322, + -0.09255380345056431, + -0.08918864783395267, + -0.0855904496955354, + -0.0816662916772691, + -0.07746415131158677, + -0.07295502979808544, + -0.06830176013216571, + -0.06370071479938563, + -0.05919847643102073, + -0.05474850250343657, + -0.050400094264142575, + -0.04611277370772373, + -0.04199284262711722, + -0.03809531881405239, + -0.03424077328053848, + -0.030345877972646873, + -0.02636618346597365, + -0.022328814816656464, + -0.01835220139497868, + -0.014525361172776806, + -0.010736022501411577, + -0.007088751176200681, + -0.003678608370587935, + -0.0006239613085418777, + 0.0019177626771442878, + 0.003985236211993985, + 0.005718129405901778, + 0.007125956909635872, + 0.008189640407288316, + 0.008953832265026504, + 0.00938184749631737, + 0.009679048160168947, + 0.009934742329666152, + 0.010066170852829081, + 0.009971566686725677, + 0.009587587874577409, + 0.008836855433116344, + 0.00780295278037058, + 0.006462834098685713, + 0.004632270822596594, + 0.0023188797042718867, + -0.0004727514777571354, + -0.003620847837936334, + -0.006951882368418429, + -0.010408089451213774, + -0.014067219271925445, + -0.01781863190844931, + -0.021618529772388328, + -0.02538471486809803, + -0.02904325578171386, + -0.03276494079705346, + -0.036678401836961944, + -0.04077360472448696, + -0.045021827686316185, + -0.049401417671247956, + -0.05384401392664287, + -0.05848870103302884, + -0.06326265426291694, + -0.06799973558983392, + -0.0725814465974657, + -0.07688918992925155, + -0.0809059523742098, + -0.0847338391501076, + -0.08833508994438027, + -0.09162121416897467, + -0.09463965735689737, + -0.09735433238321328, + -0.09992763625557816, + -0.10247686577551156, + -0.10494651388462714, + -0.10725476768793873, + -0.10936657829635622, + -0.11120684384954761, + -0.11285392891194829, + -0.11429352590614243, + -0.11535539895902656, + -0.11600627797919587, + -0.11616186421565007, + -0.1158680748283833, + -0.11525830526322059, + -0.1143721446123763, + -0.11316230742023145, + -0.11168617417007899, + -0.10991453912122318, + -0.10797917723841169, + -0.10602068665841734, + -0.1039583051842346, + -0.10173829956592645, + -0.09926312564878766, + -0.0964736965140838, + -0.09343768001958493, + -0.09020959182559062, + -0.08665571312999645, + -0.08278844012649453, + -0.07856578275012799, + -0.07406839205018412, + -0.06951155403640459, + -0.06497147234136977, + -0.06045064870618512, + -0.05597817285978229, + -0.05155992073389257, + -0.04725386116718869, + -0.04321517146094083, + -0.039298312704618955, + -0.035402991194024694, + -0.0314510387913845, + -0.027416760533332828, + -0.023390777847849042, + -0.01947093552830646, + -0.015570400469522853, + -0.011691916825314582, + -0.007962029398679295, + -0.0044579306543020445, + -0.0014034155655434674, + 0.0011842446123752723, + 0.0033946209875529683, + 0.005265079527989661, + 0.0067530182003360684, + 0.00789923382862267, + 0.008654565731886657, + 0.009159346642838934, + 0.009605176609036838, + 0.00994755095515291, + 0.010138150400880456, + 0.010084368238316314, + 0.009725559722169133, + 0.009093052336595561, + 0.008239646875238494, + 0.0069619183667881555, + 0.005205439675326147, + 0.0029376893097575003, + 0.00020700554343234138, + -0.002799507004671748, + -0.006007042166076634, + -0.009460814142837773, + -0.013109914276729837, + -0.01684373020653816, + -0.020614734018916215, + -0.024259221806278656, + -0.027891093292647013, + -0.031646728801111454, + -0.03556259235293241, + -0.03962846979604252, + -0.04382866859276572, + -0.048105503505981764, + -0.052573209056379556, + -0.05728566938852463, + -0.06206392757424871, + -0.06681618472019285, + -0.0713731430562555, + -0.07568310187703031, + -0.07980697030050325, + -0.08374894057504663, + -0.0873808802212675, + -0.09071544431569775, + -0.09372048932711555, + -0.09648413226419435, + -0.0991925314108934, + -0.10181851122460003, + -0.10432623440751518, + -0.10666528186822742, + -0.10878296652766341, + -0.1107134086776956, + -0.11252326766882645, + -0.11403687720326501, + -0.1151817404313312, + -0.11586925957201494, + -0.11607078331009245, + -0.11592035397189825, + -0.1154566313064785, + -0.11464642217182527, + -0.1135041114416203, + -0.11203763569236742, + -0.11030460291359255, + -0.10851535890880268, + -0.10663835230130156, + -0.10464186907932924, + -0.10245035339678, + -0.09997106698977863, + -0.09725293774187466, + -0.09436196745240368, + -0.09120294801239126, + -0.08770992047898062, + -0.08385588012758624, + -0.07961751810108396, + -0.0752175866904953, + -0.07074464779150132, + -0.06622533724426842, + -0.06168991274017625, + -0.05716532864288356, + -0.052698704796399834, + -0.04846779024085524, + -0.04444211124136884, + -0.04048870631520615, + -0.036552182641964706, + -0.032525907375631165, + -0.0284897286646938, + -0.024525725231562105, + -0.020586960558205584, + -0.016597165547943295, + -0.012655684776948804, + -0.008820244722589195, + -0.00530767442529818, + -0.0022405665881991685, + 0.0004623336817325673, + 0.002813195008115951, + 0.004786534205469504, + 0.006366785157754755, + 0.0075265490742896755, + 0.008314219354261953, + 0.008973156101280333, + 0.00951523912849459, + 0.00993468828605093, + 0.010167705983786968, + 0.01012837141904994, + 0.00984550966500239, + 0.009391918852756437, + 0.008632840344064509, + 0.007424638173688787, + 0.005730949406306819, + 0.003498750873826151, + 0.0009086037060825512, + -0.001953919207402524, + -0.005111150207755924, + -0.008556840863220451, + -0.012177022268364545, + -0.015903291274528567, + -0.019555717901015308, + -0.023132273210085166, + -0.02679153343117845, + -0.03055471694393443, + -0.03445921749254441, + -0.038479952315100506, + -0.04257931024603125, + -0.046823393671965086, + -0.05136079428039122, + -0.05607237239208719, + -0.06086835972264101, + -0.06559004112361436, + -0.07011563091225208, + -0.07450074220465909, + -0.07874322826440054, + -0.08273353297440174, + -0.08640890344974107, + -0.0897499082322298, + -0.0927605252054191, + -0.09565718663382455, + -0.09845484224502411, + -0.10113349379444693, + -0.10366860512869666, + -0.10600877715484962, + -0.10817800407078432, + -0.11026337691407777, + -0.11216557566646843, + -0.11375389689913051, + -0.11495573947453308, + -0.11565988488052695, + -0.11599018353105149, + -0.11599072422166415, + -0.11563047961964937, + -0.1148919841677468, + -0.11378405118347819, + -0.1123311561929654, + -0.11073276401666497, + -0.10904970665909992, + -0.10724118610945493, + -0.10529650082592815, + -0.10308943186194477, + -0.1006601209181833, + -0.09807073472873579, + -0.09528079649547203, + -0.09218172272718442, + -0.08873325525292708, + -0.08485161107951864, + -0.08069497449582848, + -0.0764002628804804, + -0.07197415965003057, + -0.06747108247002966, + -0.06289453423437574, + -0.058315797780030834, + -0.053895173767615864, + -0.049717626908965924, + -0.04565692006216931, + -0.04168244003940532, + -0.0376608815965094, + -0.033610773517656366, + -0.029631615775391636, + -0.025685318339404076, + -0.02168291847005077, + -0.017632745047570297, + -0.01359654102873562, + -0.009724211901139646, + -0.00623767510539141, + -0.003077084700876565, + -0.00025117779204852534, + 0.002222143841664529, + 0.004297397974670214, + 0.005918345087503594, + 0.007084058486452115, + 0.00800509235855709, + 0.008784209877659037, + 0.009408713711399863, + 0.009894366004155747, + 0.010125539315769665, + 0.01013964665297557, + 0.010005957712071618, + 0.009679918993527138, + 0.008986803585857775, + 0.00785781660023666, + 0.006183919660033518, + 0.004069046139917442, + 0.0016448991312943743, + -0.001132620095569088, + -0.0042585937541761215, + -0.007678430046853225, + -0.011286220251999664, + -0.014922473231210896, + -0.018462988125578075, + -0.022053884586635184, + -0.025716284779237285, + -0.02948665812611111, + -0.03335988683600126, + -0.03728207535056098, + -0.04131129467845686, + -0.04560231015092775, + -0.050153339388265154, + -0.05486669629768532, + -0.059648166209026035, + -0.0643026941681358, + -0.06887055267124975, + -0.07335739741004968, + -0.07767119452389251, + -0.08170155317205435, + -0.08539574849455543, + -0.08872012475461895, + -0.09183914549192577, + -0.09484680220799943, + -0.09770038541681052, + -0.10042441318132933, + -0.10295062506571472, + -0.10531615382636583, + -0.1076115056774952, + -0.10981515110619772, + -0.1117818956004674, + -0.11344007724303752, + -0.11464790266984015, + -0.11544978021065133, + -0.11593485788015896, + -0.11605215267123195, + -0.11578309731351062, + -0.11508933877480529, + -0.11399233431616415, + -0.1126434983847923, + -0.1111809403647398, + -0.10956743342107428, + -0.10783381090028103, + -0.10587742552376257, + -0.10369380756761994, + -0.10137540788567881, + -0.098900598223088, + -0.09618440115361479, + -0.09314101460764963, + -0.08967757717391657, + -0.08584201824084403, + -0.08181136030072733, + -0.07757975260848927, + -0.07320483866298264, + -0.06867843186151892, + -0.06404954355929852, + -0.05948996738894092, + -0.05514198983945185, + -0.050953447582872145, + -0.04687761088665062, + -0.042831632118628456, + -0.03874937535445945, + -0.03475356622182196, + -0.030806455785345535, + -0.026833201022843974, + -0.022771843653422958, + -0.018643507438798407, + -0.014544103613646135, + -0.010714574802701217, + -0.007176034683411909, + -0.003907410719349495, + -0.0009630059531357805, + 0.0016332516679745859, + 0.003762828982492431, + 0.005390744158987948, + 0.006649353730664833, + 0.007712291022905681, + 0.00857666288162401, + 0.009296506186158928, + 0.009779801259578648, + 0.01003581746800573, + 0.010171397521294789, + 0.010176883220028403, + 0.00993110607272463, + 0.009315657702663478, + 0.008214374342903633, + 0.006613406819716747, + 0.004679092523190954, + 0.002362110980384998, + -0.0003486422713368084, + -0.003447078861774855, + -0.006849317870113628, + -0.010390820087613523, + -0.013891874196115817, + -0.017411473911316127, + -0.021008560994910077, + -0.02467391086768647, + -0.028444454248869846, + -0.032222036708078126, + -0.0360574369613888, + -0.04009178580208723, + -0.044412770802064454, + -0.04895369855854519, + -0.05366643296992802, + -0.058362105411144595, + -0.06301285590008032, + -0.06766653344163441, + -0.07222455786327028, + -0.07658943571693223, + -0.08063942722209706, + -0.08431555404436678, + -0.08770144359905097, + -0.09095235241464117, + -0.09401994446049293, + -0.09693682902378362, + -0.09965326154237433, + -0.10218214576109715, + -0.10464595946173044, + -0.10706342970089956, + -0.10933946295358501, + -0.11137478495286823, + -0.1130472676313888, + -0.11430493653834627, + -0.11526642550762368, + -0.11587138687414353, + -0.11609854890922855, + -0.11588627725853456, + -0.1152100214475324, + -0.11418759828236531, + -0.11298215093987228, + -0.11160910114501675, + -0.11007976134460103, + -0.10836018370350545, + -0.10639448733750234, + -0.10431292372350041, + -0.10210335840032005, + -0.09972145363283756, + -0.09706805601240931, + -0.09403095665408331, + -0.0905802435148532, + -0.08686914026356776, + -0.08292618202030387, + -0.07876467751043288, + -0.0744049872064585, + -0.06982423706072417, + -0.0652070407649915, + -0.06071377734961524, + -0.05639203229486822, + -0.05219176396611372, + -0.04807231350421648, + -0.04393485069194269, + -0.03988779626270897, + -0.03593815077496781, + -0.03198743602537618, + -0.027975538671256996, + -0.02383977396546826, + -0.019643412658590053, + -0.01557141126783298, + -0.011742273974271314, + -0.008108986511232989, + -0.004746200164006955, + -0.0016608627920292362, + 0.001005890765771269, + 0.003145738600292489, + 0.0048356676760933056, + 0.006234599552534393, + 0.007400060771231877, + 0.008369898061076913, + 0.009119312154037728, + 0.009594346852542268, + 0.00995304905064691, + 0.010215467940660338, + 0.01032533489874252, + 0.010154587384035595, + 0.009577390722907447, + 0.008513312693109808, + 0.0070823989182157215, + 0.00528178622813799, + 0.003050770594423193, + 0.00039526842145554646, + -0.0026919720318170155, + -0.006035603329030596, + -0.009444939018414715, + -0.012874120738082008, + -0.016399170506229018, + -0.019987098741796064, + -0.02367626902181299, + -0.027367612663063423, + -0.031043889590583514, + -0.034855846106752617, + -0.03891244031229204, + -0.04323211051651107, + -0.04777123071747395, + -0.05240655623753994, + -0.05704237917216881, + -0.06176201860949449, + -0.06647354302710211, + -0.07109330320939787, + -0.07548003210046338, + -0.07951094660367342, + -0.08321247064138258, + -0.08672521303553592, + -0.09005420820715684, + -0.09318903423710619, + -0.09612228506925691, + -0.09881364111117702, + -0.1014209460749505, + -0.10399730330826555, + -0.10650333694563438, + -0.10884253955360966, + -0.11090382619149931, + -0.11259126419515218, + -0.11399044991327283, + -0.11508102269955851, + -0.11580117586691314, + -0.11611036698129072, + -0.11591217255281853, + -0.11529730752397976, + -0.114408423722252, + -0.11331941387715248, + -0.112032276389598, + -0.11055188445860258, + -0.10880610252233393, + -0.10691978094677232, + -0.10494518706342319, + -0.1028369208485534, + -0.10053495386270091, + -0.0978954548298006, + -0.09486140592171916, + -0.09151015227562823, + -0.08791183118190027, + -0.08404482780444571, + -0.07994432842717042, + -0.07553551973941032, + -0.070957294110648, + -0.06640182760709283, + -0.06196144610365778, + -0.05764665330655428, + -0.05341964231525313, + -0.049208004510991436, + -0.04506558599704013, + -0.0410786036153278, + -0.037132222295390774, + -0.033176262856051714, + -0.02908927965848404, + -0.024883237712210165, + -0.020693956035067074, + -0.016659181657536475, + -0.012763523367169885, + -0.009053512514506465, + -0.005559108098266782, + -0.0023721760005490497, + 0.00030152234150816943, + 0.002489405650510641, + 0.004292107188384204, + 0.005816938823197188, + 0.007092642394893765, + 0.008131113667587044, + 0.008854686553812477, + 0.009407849957529246, + 0.009883678250044613, + 0.010256535240276882, + 0.010458077836501125, + 0.010325298024424945, + 0.009769379720215349, + 0.008833247964618856, + 0.007565382832531308, + 0.005859631065608996, + 0.003718093183474711, + 0.0010714356735214894, + -0.001964409915722163, + -0.005184148187593981, + -0.008486808725459738, + -0.011895111094046848, + -0.0154071616289345, + -0.019020292419637767, + -0.02267022778679988, + -0.026240442344885012, + -0.029878576925871415, + -0.03368948638897835, + -0.03775912495672156, + -0.04207533361795416, + -0.04655671904551609, + -0.051094963328562205, + -0.055760345480864774, + -0.06053004296350948, + -0.06529662436070194, + -0.06995566349609598, + -0.0743104389130836, + -0.07834775821963136, + -0.0821458030544696, + -0.08575904573803096, + -0.08915413044374636, + -0.0923357785783209, + -0.09523097221674294, + -0.09797159210001229, + -0.1006843830761446, + -0.10335217697805815, + -0.10593149319899936, + -0.10829721193825366, + -0.11036082996108262, + -0.11214750668476992, + -0.11368915850432107, + -0.11488850454291354, + -0.1157177488057579, + -0.11604390860065611, + -0.11589240800931616, + -0.1153966330262159, + -0.11463682946665532, + -0.11365021060334422, + -0.11243287343176721, + -0.11093735877364252, + -0.10923406962632014, + -0.10746088437869628, + -0.10557835763391912, + -0.10357376272746893, + -0.10129539503116881, + -0.09865445620676754, + -0.0956887725302643, + -0.09245946227749137, + -0.08895135955506653, + -0.08516980111324991, + -0.08105199694891473, + -0.0766268724228843, + -0.07211429228861166, + -0.06761506173252906, + -0.06321769972643637, + -0.05889219398459339, + -0.05458834409111546, + -0.05033264377515836, + -0.046250610393929574, + -0.042277839525693924, + -0.038343234946927394, + -0.03433544340856156, + -0.03016458518421576, + -0.025953638745379638, + -0.0218057837212888, + -0.01775279575744693, + -0.013793185247857147, + -0.009979038241475028, + -0.006355956351756888, + -0.003159547603906818, + -0.00045140443038940747, + 0.0018260975435088881, + 0.0037519283849972813, + 0.00540187118927042, + 0.006771907106233313, + 0.007801236214068674, + 0.008562106412589941, + 0.009231481574554798, + 0.009807663438772733, + 0.010295455448836161, + 0.010537059669869382, + 0.01041889974777223, + 0.00994943445351582, + 0.009177816491016436, + 0.00802041312678988, + 0.006423486359378787, + 0.004313429996777155 + ], + "datatype": "Float64", + "type": "series" + }, + "mid_point_x_solid_1": { + "n_values": 1001, + "time": [ + 0.0, + 0.01, + 0.02, + 0.03, + 0.04, + 0.05, + 0.06, + 0.07, + 0.08, + 0.09, + 0.1, + 0.11, + 0.12, + 0.13, + 0.14, + 0.15, + 0.16, + 0.17, + 0.18, + 0.19, + 0.2, + 0.21, + 0.22, + 0.23, + 0.24, + 0.25, + 0.26, + 0.27, + 0.28, + 0.29, + 0.3, + 0.31, + 0.32, + 0.33, + 0.34, + 0.35000000000000003, + 0.36, + 0.37, + 0.38, + 0.39, + 0.4, + 0.41000000000000003, + 0.42, + 0.43, + 0.44, + 0.45, + 0.46, + 0.47000000000000003, + 0.48, + 0.49, + 0.5, + 0.51, + 0.52, + 0.53, + 0.54, + 0.55, + 0.56, + 0.5700000000000001, + 0.58, + 0.59, + 0.6, + 0.61, + 0.62, + 0.63, + 0.64, + 0.65, + 0.66, + 0.67, + 0.68, + 0.6900000000000001, + 0.7000000000000001, + 0.71, + 0.72, + 0.73, + 0.74, + 0.75, + 0.76, + 0.77, + 0.78, + 0.79, + 0.8, + 0.81, + 0.8200000000000001, + 0.8300000000000001, + 0.84, + 0.85, + 0.86, + 0.87, + 0.88, + 0.89, + 0.9, + 0.91, + 0.92, + 0.93, + 0.9400000000000001, + 0.9500000000000001, + 0.96, + 0.97, + 0.98, + 0.99, + 1.0, + 1.01, + 1.02, + 1.03, + 1.04, + 1.05, + 1.06, + 1.07, + 1.08, + 1.09, + 1.1, + 1.11, + 1.12, + 1.1300000000000001, + 1.1400000000000001, + 1.1500000000000001, + 1.16, + 1.17, + 1.18, + 1.19, + 1.2, + 1.21, + 1.22, + 1.23, + 1.24, + 1.25, + 1.26, + 1.27, + 1.28, + 1.29, + 1.3, + 1.31, + 1.32, + 1.33, + 1.34, + 1.35, + 1.36, + 1.37, + 1.3800000000000001, + 1.3900000000000001, + 1.4000000000000001, + 1.41, + 1.42, + 1.43, + 1.44, + 1.45, + 1.46, + 1.47, + 1.48, + 1.49, + 1.5, + 1.51, + 1.52, + 1.53, + 1.54, + 1.55, + 1.56, + 1.57, + 1.58, + 1.59, + 1.6, + 1.61, + 1.62, + 1.6300000000000001, + 1.6400000000000001, + 1.6500000000000001, + 1.6600000000000001, + 1.67, + 1.68, + 1.69, + 1.7, + 1.71, + 1.72, + 1.73, + 1.74, + 1.75, + 1.76, + 1.77, + 1.78, + 1.79, + 1.8, + 1.81, + 1.82, + 1.83, + 1.84, + 1.85, + 1.86, + 1.87, + 1.8800000000000001, + 1.8900000000000001, + 1.9000000000000001, + 1.9100000000000001, + 1.92, + 1.93, + 1.94, + 1.95, + 1.96, + 1.97, + 1.98, + 1.99, + 2.0, + 2.0100000000000002, + 2.02, + 2.0300000000000002, + 2.04, + 2.05, + 2.06, + 2.07, + 2.08, + 2.09, + 2.1, + 2.11, + 2.12, + 2.13, + 2.14, + 2.15, + 2.16, + 2.17, + 2.18, + 2.19, + 2.2, + 2.21, + 2.22, + 2.23, + 2.24, + 2.25, + 2.2600000000000002, + 2.27, + 2.2800000000000002, + 2.29, + 2.3000000000000003, + 2.31, + 2.32, + 2.33, + 2.34, + 2.35, + 2.36, + 2.37, + 2.38, + 2.39, + 2.4, + 2.41, + 2.42, + 2.43, + 2.44, + 2.45, + 2.46, + 2.47, + 2.48, + 2.49, + 2.5, + 2.5100000000000002, + 2.52, + 2.5300000000000002, + 2.54, + 2.5500000000000003, + 2.56, + 2.57, + 2.58, + 2.59, + 2.6, + 2.61, + 2.62, + 2.63, + 2.64, + 2.65, + 2.66, + 2.67, + 2.68, + 2.69, + 2.7, + 2.71, + 2.72, + 2.73, + 2.74, + 2.75, + 2.7600000000000002, + 2.77, + 2.7800000000000002, + 2.79, + 2.8000000000000003, + 2.81, + 2.82, + 2.83, + 2.84, + 2.85, + 2.86, + 2.87, + 2.88, + 2.89, + 2.9, + 2.91, + 2.92, + 2.93, + 2.94, + 2.95, + 2.96, + 2.97, + 2.98, + 2.99, + 3.0, + 3.0100000000000002, + 3.02, + 3.0300000000000002, + 3.04, + 3.0500000000000003, + 3.06, + 3.0700000000000003, + 3.08, + 3.09, + 3.1, + 3.11, + 3.12, + 3.13, + 3.14, + 3.15, + 3.16, + 3.17, + 3.18, + 3.19, + 3.2, + 3.21, + 3.22, + 3.23, + 3.24, + 3.25, + 3.2600000000000002, + 3.27, + 3.2800000000000002, + 3.29, + 3.3000000000000003, + 3.31, + 3.3200000000000003, + 3.33, + 3.34, + 3.35, + 3.36, + 3.37, + 3.38, + 3.39, + 3.4, + 3.41, + 3.42, + 3.43, + 3.44, + 3.45, + 3.46, + 3.47, + 3.48, + 3.49, + 3.5, + 3.5100000000000002, + 3.52, + 3.5300000000000002, + 3.54, + 3.5500000000000003, + 3.56, + 3.5700000000000003, + 3.58, + 3.59, + 3.6, + 3.61, + 3.62, + 3.63, + 3.64, + 3.65, + 3.66, + 3.67, + 3.68, + 3.69, + 3.7, + 3.71, + 3.72, + 3.73, + 3.74, + 3.75, + 3.7600000000000002, + 3.77, + 3.7800000000000002, + 3.79, + 3.8000000000000003, + 3.81, + 3.8200000000000003, + 3.83, + 3.84, + 3.85, + 3.86, + 3.87, + 3.88, + 3.89, + 3.9, + 3.91, + 3.92, + 3.93, + 3.94, + 3.95, + 3.96, + 3.97, + 3.98, + 3.99, + 4.0, + 4.01, + 4.0200000000000005, + 4.03, + 4.04, + 4.05, + 4.0600000000000005, + 4.07, + 4.08, + 4.09, + 4.1, + 4.11, + 4.12, + 4.13, + 4.14, + 4.15, + 4.16, + 4.17, + 4.18, + 4.19, + 4.2, + 4.21, + 4.22, + 4.23, + 4.24, + 4.25, + 4.26, + 4.2700000000000005, + 4.28, + 4.29, + 4.3, + 4.3100000000000005, + 4.32, + 4.33, + 4.34, + 4.3500000000000005, + 4.36, + 4.37, + 4.38, + 4.39, + 4.4, + 4.41, + 4.42, + 4.43, + 4.44, + 4.45, + 4.46, + 4.47, + 4.48, + 4.49, + 4.5, + 4.51, + 4.5200000000000005, + 4.53, + 4.54, + 4.55, + 4.5600000000000005, + 4.57, + 4.58, + 4.59, + 4.6000000000000005, + 4.61, + 4.62, + 4.63, + 4.64, + 4.65, + 4.66, + 4.67, + 4.68, + 4.69, + 4.7, + 4.71, + 4.72, + 4.73, + 4.74, + 4.75, + 4.76, + 4.7700000000000005, + 4.78, + 4.79, + 4.8, + 4.8100000000000005, + 4.82, + 4.83, + 4.84, + 4.8500000000000005, + 4.86, + 4.87, + 4.88, + 4.89, + 4.9, + 4.91, + 4.92, + 4.93, + 4.94, + 4.95, + 4.96, + 4.97, + 4.98, + 4.99, + 5.0, + 5.01, + 5.0200000000000005, + 5.03, + 5.04, + 5.05, + 5.0600000000000005, + 5.07, + 5.08, + 5.09, + 5.1000000000000005, + 5.11, + 5.12, + 5.13, + 5.14, + 5.15, + 5.16, + 5.17, + 5.18, + 5.19, + 5.2, + 5.21, + 5.22, + 5.23, + 5.24, + 5.25, + 5.26, + 5.2700000000000005, + 5.28, + 5.29, + 5.3, + 5.3100000000000005, + 5.32, + 5.33, + 5.34, + 5.3500000000000005, + 5.36, + 5.37, + 5.38, + 5.39, + 5.4, + 5.41, + 5.42, + 5.43, + 5.44, + 5.45, + 5.46, + 5.47, + 5.48, + 5.49, + 5.5, + 5.51, + 5.5200000000000005, + 5.53, + 5.54, + 5.55, + 5.5600000000000005, + 5.57, + 5.58, + 5.59, + 5.6000000000000005, + 5.61, + 5.62, + 5.63, + 5.64, + 5.65, + 5.66, + 5.67, + 5.68, + 5.69, + 5.7, + 5.71, + 5.72, + 5.73, + 5.74, + 5.75, + 5.76, + 5.7700000000000005, + 5.78, + 5.79, + 5.8, + 5.8100000000000005, + 5.82, + 5.83, + 5.84, + 5.8500000000000005, + 5.86, + 5.87, + 5.88, + 5.89, + 5.9, + 5.91, + 5.92, + 5.93, + 5.94, + 5.95, + 5.96, + 5.97, + 5.98, + 5.99, + 6.0, + 6.01, + 6.0200000000000005, + 6.03, + 6.04, + 6.05, + 6.0600000000000005, + 6.07, + 6.08, + 6.09, + 6.1000000000000005, + 6.11, + 6.12, + 6.13, + 6.140000000000001, + 6.15, + 6.16, + 6.17, + 6.18, + 6.19, + 6.2, + 6.21, + 6.22, + 6.23, + 6.24, + 6.25, + 6.26, + 6.2700000000000005, + 6.28, + 6.29, + 6.3, + 6.3100000000000005, + 6.32, + 6.33, + 6.34, + 6.3500000000000005, + 6.36, + 6.37, + 6.38, + 6.390000000000001, + 6.4, + 6.41, + 6.42, + 6.43, + 6.44, + 6.45, + 6.46, + 6.47, + 6.48, + 6.49, + 6.5, + 6.51, + 6.5200000000000005, + 6.53, + 6.54, + 6.55, + 6.5600000000000005, + 6.57, + 6.58, + 6.59, + 6.6000000000000005, + 6.61, + 6.62, + 6.63, + 6.640000000000001, + 6.65, + 6.66, + 6.67, + 6.68, + 6.69, + 6.7, + 6.71, + 6.72, + 6.73, + 6.74, + 6.75, + 6.76, + 6.7700000000000005, + 6.78, + 6.79, + 6.8, + 6.8100000000000005, + 6.82, + 6.83, + 6.84, + 6.8500000000000005, + 6.86, + 6.87, + 6.88, + 6.890000000000001, + 6.9, + 6.91, + 6.92, + 6.93, + 6.94, + 6.95, + 6.96, + 6.97, + 6.98, + 6.99, + 7.0, + 7.01, + 7.0200000000000005, + 7.03, + 7.04, + 7.05, + 7.0600000000000005, + 7.07, + 7.08, + 7.09, + 7.1000000000000005, + 7.11, + 7.12, + 7.13, + 7.140000000000001, + 7.15, + 7.16, + 7.17, + 7.18, + 7.19, + 7.2, + 7.21, + 7.22, + 7.23, + 7.24, + 7.25, + 7.26, + 7.2700000000000005, + 7.28, + 7.29, + 7.3, + 7.3100000000000005, + 7.32, + 7.33, + 7.34, + 7.3500000000000005, + 7.36, + 7.37, + 7.38, + 7.390000000000001, + 7.4, + 7.41, + 7.42, + 7.43, + 7.44, + 7.45, + 7.46, + 7.47, + 7.48, + 7.49, + 7.5, + 7.51, + 7.5200000000000005, + 7.53, + 7.54, + 7.55, + 7.5600000000000005, + 7.57, + 7.58, + 7.59, + 7.6000000000000005, + 7.61, + 7.62, + 7.63, + 7.640000000000001, + 7.65, + 7.66, + 7.67, + 7.68, + 7.69, + 7.7, + 7.71, + 7.72, + 7.73, + 7.74, + 7.75, + 7.76, + 7.7700000000000005, + 7.78, + 7.79, + 7.8, + 7.8100000000000005, + 7.82, + 7.83, + 7.84, + 7.8500000000000005, + 7.86, + 7.87, + 7.88, + 7.890000000000001, + 7.9, + 7.91, + 7.92, + 7.930000000000001, + 7.94, + 7.95, + 7.96, + 7.97, + 7.98, + 7.99, + 8.0, + 8.01, + 8.02, + 8.03, + 8.040000000000001, + 8.05, + 8.06, + 8.07, + 8.08, + 8.09, + 8.1, + 8.11, + 8.120000000000001, + 8.13, + 8.14, + 8.15, + 8.16, + 8.17, + 8.18, + 8.19, + 8.2, + 8.21, + 8.22, + 8.23, + 8.24, + 8.25, + 8.26, + 8.27, + 8.28, + 8.290000000000001, + 8.3, + 8.31, + 8.32, + 8.33, + 8.34, + 8.35, + 8.36, + 8.370000000000001, + 8.38, + 8.39, + 8.4, + 8.41, + 8.42, + 8.43, + 8.44, + 8.45, + 8.46, + 8.47, + 8.48, + 8.49, + 8.5, + 8.51, + 8.52, + 8.53, + 8.540000000000001, + 8.55, + 8.56, + 8.57, + 8.58, + 8.59, + 8.6, + 8.61, + 8.620000000000001, + 8.63, + 8.64, + 8.65, + 8.66, + 8.67, + 8.68, + 8.69, + 8.700000000000001, + 8.71, + 8.72, + 8.73, + 8.74, + 8.75, + 8.76, + 8.77, + 8.78, + 8.790000000000001, + 8.8, + 8.81, + 8.82, + 8.83, + 8.84, + 8.85, + 8.86, + 8.870000000000001, + 8.88, + 8.89, + 8.9, + 8.91, + 8.92, + 8.93, + 8.94, + 8.950000000000001, + 8.96, + 8.97, + 8.98, + 8.99, + 9.0, + 9.01, + 9.02, + 9.03, + 9.040000000000001, + 9.05, + 9.06, + 9.07, + 9.08, + 9.09, + 9.1, + 9.11, + 9.120000000000001, + 9.13, + 9.14, + 9.15, + 9.16, + 9.17, + 9.18, + 9.19, + 9.200000000000001, + 9.21, + 9.22, + 9.23, + 9.24, + 9.25, + 9.26, + 9.27, + 9.28, + 9.290000000000001, + 9.3, + 9.31, + 9.32, + 9.33, + 9.34, + 9.35, + 9.36, + 9.370000000000001, + 9.38, + 9.39, + 9.4, + 9.41, + 9.42, + 9.43, + 9.44, + 9.450000000000001, + 9.46, + 9.47, + 9.48, + 9.49, + 9.5, + 9.51, + 9.52, + 9.53, + 9.540000000000001, + 9.55, + 9.56, + 9.57, + 9.58, + 9.59, + 9.6, + 9.61, + 9.620000000000001, + 9.63, + 9.64, + 9.65, + 9.66, + 9.67, + 9.68, + 9.69, + 9.700000000000001, + 9.71, + 9.72, + 9.73, + 9.74, + 9.75, + 9.76, + 9.77, + 9.78, + 9.790000000000001, + 9.8, + 9.81, + 9.82, + 9.83, + 9.84, + 9.85, + 9.86, + 9.870000000000001, + 9.88, + 9.89, + 9.9, + 9.91, + 9.92, + 9.93, + 9.94, + 9.950000000000001, + 9.96, + 9.97, + 9.98, + 9.99, + 10.0 + ], + "system_name": "solid", + "values": [ + 0.4, + 0.39999999979728634, + 0.3999997781177494, + 0.39999806667465837, + 0.39999284158039095, + 0.39998306422772956, + 0.39996758787974435, + 0.3999439511456976, + 0.3999061994717787, + 0.39983977887158256, + 0.39973181878060726, + 0.3995720750870086, + 0.3993468819053718, + 0.3990617959877447, + 0.3987229007007335, + 0.3983461890897384, + 0.3979325983335376, + 0.39747815866152403, + 0.396981250685435, + 0.3964379046450675, + 0.39583228541020155, + 0.39514685460060495, + 0.39436610469807676, + 0.39346010511734447, + 0.39243915250326633, + 0.3913079019395572, + 0.39009183806874803, + 0.3888089321149231, + 0.38749231352681324, + 0.3861723298435519, + 0.3849098038919999, + 0.3837380527522159, + 0.38266451923526185, + 0.38168043767908927, + 0.38073399613444137, + 0.37982690165327776, + 0.3789452374206431, + 0.37808421711390916, + 0.37721802057864506, + 0.37635566051396796, + 0.3754870738475809, + 0.3746712321888947, + 0.3739688781154372, + 0.3734304639883497, + 0.3730967142546369, + 0.372959364786561, + 0.37303651253552067, + 0.37333200894008123, + 0.37384521327621956, + 0.3745208651596761, + 0.37531473832130496, + 0.37613768385847596, + 0.37697898913816896, + 0.3778303513696736, + 0.3786893282733405, + 0.37956412188711575, + 0.3804539516541779, + 0.38137049997939276, + 0.38233972755558854, + 0.3834080709853328, + 0.38457617075585276, + 0.38584491855857356, + 0.3871508004642634, + 0.38846816224786135, + 0.38976375026756865, + 0.3910041821894216, + 0.3921585741080628, + 0.39320568471967493, + 0.3941264356701611, + 0.39492619142518376, + 0.3956346808560798, + 0.39626128591485077, + 0.3968267100634205, + 0.3973354532228258, + 0.39780154232889126, + 0.3982301738166438, + 0.39862575743022355, + 0.39897980747950723, + 0.3992848806197303, + 0.39952331946594294, + 0.3996950743215812, + 0.3998152623081552, + 0.3998912590547159, + 0.39993533382866797, + 0.39996158942545507, + 0.3999808754624371, + 0.3999930837729136, + 0.3999966795113278, + 0.3999986982424709, + 0.4000014593350106, + 0.4000004420604036, + 0.39999827404949384, + 0.3999997988876305, + 0.39999987393707304, + 0.39999306105818866, + 0.3999837171784309, + 0.3999726094988871, + 0.3999535023381898, + 0.399918190187456, + 0.3998601784242599, + 0.3997665062300543, + 0.3996158164432257, + 0.39940516237130524, + 0.39913915776694264, + 0.3988193654268896, + 0.39845684820413113, + 0.3980540422432952, + 0.3976156140465287, + 0.3971340399150859, + 0.39660887292554214, + 0.39602543139908364, + 0.39536484279817924, + 0.3945928715655493, + 0.3937103272628974, + 0.39271833723598654, + 0.3916128328492118, + 0.3904147293503343, + 0.3891430621514253, + 0.387826144411381, + 0.3865046515014841, + 0.385248510806135, + 0.3840743932033735, + 0.38299772484489153, + 0.3819784262247657, + 0.38101605862514787, + 0.3801008755024107, + 0.37921459788565803, + 0.37834311832777395, + 0.3774659872911153, + 0.3765677934258114, + 0.3756662403601399, + 0.3748387694288974, + 0.37411096509480923, + 0.3735462720279769, + 0.3731539658467432, + 0.3729626168662139, + 0.37298731356492737, + 0.3732519093232679, + 0.3737361956980234, + 0.37438897256461073, + 0.3751336790331212, + 0.37592080127689986, + 0.37675096425907106, + 0.3775867316965575, + 0.37844404097937534, + 0.3793036894481414, + 0.3801698646739469, + 0.38105648576925016, + 0.38202235125094863, + 0.38308378037534263, + 0.3842529794925402, + 0.38550550852775145, + 0.3868025447502561, + 0.38812596697629176, + 0.3894313852813727, + 0.3906980257393616, + 0.3918781412475722, + 0.39294104813358804, + 0.3938740226679273, + 0.3947041031980078, + 0.39543340999164955, + 0.39608096349136457, + 0.39666359943276924, + 0.39718737300611034, + 0.39766472915741885, + 0.39810820993366125, + 0.3985246126137955, + 0.3988986552405215, + 0.39921566777857104, + 0.39946636589867696, + 0.3996583886007603, + 0.3997890736512709, + 0.3998715695410199, + 0.3999250065033258, + 0.39995849110802956, + 0.39997762669380893, + 0.3999887622250559, + 0.39999713601703357, + 0.4000007810146111, + 0.3999992533565463, + 0.3999989210797495, + 0.4000007831281585, + 0.4000001206574324, + 0.3999971411781919, + 0.3999945093488825, + 0.399987612030103, + 0.3999750217959638, + 0.39995858424140546, + 0.39993139849139936, + 0.39988033929473665, + 0.39979239321369386, + 0.39965644378025716, + 0.39946529043770135, + 0.39921137681385216, + 0.39890950178968604, + 0.39856281089707607, + 0.3981723086599191, + 0.3977443929973221, + 0.3972829356451139, + 0.3967803818277374, + 0.39621511828848344, + 0.3955667542094948, + 0.3948156602236194, + 0.3939620631193063, + 0.3929898697069873, + 0.3919140774775046, + 0.39073484193901314, + 0.3894680199244331, + 0.3881509148917769, + 0.3868462300665516, + 0.38559181268772524, + 0.3844152682912862, + 0.3833187207888844, + 0.3822767933527409, + 0.3813040438034377, + 0.38037910829681854, + 0.37949534519517164, + 0.37861075754707924, + 0.37770588450173637, + 0.3767745766531013, + 0.3758676293421188, + 0.3750154481221163, + 0.3742685615290572, + 0.37366527556335527, + 0.37321306868005405, + 0.37296691885922145, + 0.3729545967870115, + 0.37319359039819294, + 0.37364256684286085, + 0.3742536645592868, + 0.3749500103812333, + 0.375718081454693, + 0.37652406213784984, + 0.37736079382889876, + 0.3782080968344403, + 0.379039199141342, + 0.3798769155708606, + 0.3807546026018362, + 0.38171254259617626, + 0.38276644565613066, + 0.3839302208879423, + 0.3851594838031786, + 0.38645187278703247, + 0.38777704162332455, + 0.38910642785412025, + 0.3903928943316532, + 0.3915873537206072, + 0.3926647348575619, + 0.393623743290543, + 0.3944747889202052, + 0.39522636379277876, + 0.3959007647101688, + 0.3964941826717887, + 0.39702898635559325, + 0.3975229035817792, + 0.3979881718557692, + 0.39841960926479886, + 0.3988094778857409, + 0.399141322025552, + 0.3994096944402292, + 0.3996143243103894, + 0.39975829497612053, + 0.39985482481967355, + 0.39991353216432696, + 0.3999504172275494, + 0.39997398054390704, + 0.39998766275405095, + 0.3999953598877379, + 0.3999993958525358, + 0.4000001448367308, + 0.39999937710074673, + 0.39999942685951945, + 0.3999999321173253, + 0.3999986755995132, + 0.39999453688856934, + 0.3999880145033375, + 0.39997924944882146, + 0.39996439990611965, + 0.39993980317549527, + 0.3998964521955841, + 0.3998184147548527, + 0.3996954966744497, + 0.3995174762684556, + 0.3992826279323796, + 0.39899620836468147, + 0.3986591280695695, + 0.39828380444348843, + 0.3978717575738082, + 0.3974295515969343, + 0.3969445167718609, + 0.3963970530170649, + 0.39576137471435013, + 0.3950353219107688, + 0.3942051102987231, + 0.3932624295330811, + 0.39220999870907824, + 0.3910417544961566, + 0.3897859929393914, + 0.388481834064924, + 0.3871889334475185, + 0.3859374821838814, + 0.3847565907781903, + 0.38362938026463034, + 0.3825792385612237, + 0.38159805428306875, + 0.3806721571950183, + 0.37978057532781634, + 0.3788762637695418, + 0.3779432495011907, + 0.37699549230552637, + 0.3760792603078944, + 0.37520942628667764, + 0.37444048631631527, + 0.3737769176545832, + 0.373278555610755, + 0.3729875604319806, + 0.3729445321134937, + 0.3731508163331112, + 0.37356050122093604, + 0.3741142786214713, + 0.37477446717969665, + 0.3755238381697182, + 0.37631603861758617, + 0.377148542816226, + 0.3779668798948894, + 0.3787748882577191, + 0.37958971881927966, + 0.3804603048384848, + 0.38141147889139254, + 0.3824607131132056, + 0.3835955804771919, + 0.3848097082091941, + 0.38610081484249603, + 0.3874319339452916, + 0.38878272683456044, + 0.39008171495600413, + 0.39128864479752745, + 0.39238161964024604, + 0.3933677357948394, + 0.3942416391991251, + 0.3950203272524786, + 0.39570879207833715, + 0.39631654391965004, + 0.3968671262245287, + 0.39737759543317364, + 0.3978628135680502, + 0.39831189126436656, + 0.3987137831142739, + 0.3990600753004132, + 0.399348706897933, + 0.3995676726013482, + 0.3997261270117838, + 0.39983390324767953, + 0.3999014366729129, + 0.399941963973817, + 0.39996778215100615, + 0.39998570653512794, + 0.3999946819919351, + 0.39999744270496745, + 0.3999998321286095, + 0.40000068154116236, + 0.3999989487428273, + 0.39999876998078887, + 0.3999998267232612, + 0.39999574257177345, + 0.3999882714533148, + 0.39998094078683427, + 0.3999697896910335, + 0.39994767272155907, + 0.3999083999564472, + 0.3998428549268752, + 0.399733049794469, + 0.3995664169996196, + 0.39934890980685056, + 0.3990764381520013, + 0.3987524640365302, + 0.39838877761008207, + 0.3979969042799853, + 0.3975748444792874, + 0.3971025812393237, + 0.39656724584116654, + 0.39595409576104035, + 0.395252129406747, + 0.3944431052468077, + 0.39353258126053053, + 0.39249678600292526, + 0.3913419307256825, + 0.3900999062895627, + 0.388818336700998, + 0.3875348963931994, + 0.38628444909822995, + 0.3850846766276482, + 0.38394451116192607, + 0.3828872391064095, + 0.38189838658019176, + 0.38097807330472555, + 0.38006531520264786, + 0.37913555152102413, + 0.37818344222957767, + 0.37723478944347305, + 0.3763000169565856, + 0.3754186823939601, + 0.3746078649699448, + 0.3738927856052649, + 0.3733513225809135, + 0.3730261200171764, + 0.3729584138798001, + 0.37311692527406004, + 0.3734735873048873, + 0.3739776276698729, + 0.3746128951932141, + 0.3753355741657247, + 0.3761291268110091, + 0.3769364025427768, + 0.37772188315739313, + 0.378507944250262, + 0.37931269182564714, + 0.380176435425344, + 0.3811173250949519, + 0.3821499698369716, + 0.3832555056974095, + 0.3844596142441091, + 0.3857457367230819, + 0.387098447549412, + 0.38845491002264093, + 0.38975910522744717, + 0.39098155295077847, + 0.39209772173038443, + 0.39310449166584016, + 0.3940063386474646, + 0.3948104400976927, + 0.3955077036030826, + 0.3961311431091842, + 0.39670039607777136, + 0.39723364574549314, + 0.3977322687590052, + 0.39819525932038113, + 0.39861329193089734, + 0.3989771096228407, + 0.399279537048098, + 0.39951882216024664, + 0.39969478920150725, + 0.3998092123381671, + 0.3998843320936858, + 0.3999335699379967, + 0.39996325363121304, + 0.39998009491214775, + 0.3999919246265908, + 0.3999993184920275, + 0.39999949185075045, + 0.3999980665845488, + 0.4000000602493737, + 0.4000012816742158, + 0.3999979192513247, + 0.39999467642873954, + 0.39999158796910367, + 0.39998282580313665, + 0.3999702281614605, + 0.39995393247599004, + 0.3999233981480203, + 0.3998638117030707, + 0.3997636114911085, + 0.39961608365540796, + 0.39941139016674937, + 0.3991474528867311, + 0.39884046294929637, + 0.3984945553563351, + 0.39811992937131346, + 0.39770982660897164, + 0.3972546032875937, + 0.39673413452159384, + 0.39614007655949757, + 0.3954604300957999, + 0.39468459362463393, + 0.39379261511307156, + 0.39276942785897995, + 0.3916386565275583, + 0.3904174589156011, + 0.38915276075592026, + 0.38787832908764075, + 0.3866263294443084, + 0.3854055923360838, + 0.38426126463919424, + 0.3831989437801715, + 0.3822157829602436, + 0.3812791687351678, + 0.38034256311658987, + 0.37939778352427284, + 0.37843544603717055, + 0.37747904515256175, + 0.3765370821056727, + 0.37563279960625556, + 0.3747662591959534, + 0.37401815099037566, + 0.37344045700262934, + 0.37308939901421617, + 0.3729809682336243, + 0.3730885466870943, + 0.3733864846222222, + 0.37384964059166725, + 0.37446112568548473, + 0.3751733686208918, + 0.37594836978167934, + 0.3767162070080024, + 0.37748373328172025, + 0.37824754960338536, + 0.37904538106998636, + 0.3799036434949889, + 0.38083130825274103, + 0.3818278891256442, + 0.3829154501808498, + 0.38411258932170983, + 0.38540295582887085, + 0.3867638739280041, + 0.3881196919573498, + 0.3894343539927031, + 0.39066698762308427, + 0.39180757882933265, + 0.3928433617740409, + 0.39377146342851865, + 0.3945847956712859, + 0.3953013712335858, + 0.39594448922983044, + 0.39653056070967935, + 0.397083274163948, + 0.39759848101047174, + 0.3980737742257598, + 0.39850408923461034, + 0.39888813733555506, + 0.39921127804498274, + 0.3994680456386826, + 0.3996546123334622, + 0.3997837086881476, + 0.39986818386658957, + 0.3999207393019245, + 0.3999552376860563, + 0.39997738115117853, + 0.39999036265256455, + 0.3999967667335248, + 0.3999991629268288, + 0.399999519036888, + 0.3999998789830745, + 0.400000095989984, + 0.3999988855381064, + 0.3999959000198569, + 0.3999906420891463, + 0.3999833794983306, + 0.39997352399482894, + 0.3999589744604352, + 0.3999340453395752, + 0.39988370236783394, + 0.3997945924747667, + 0.3996588255495844, + 0.3994658423741863, + 0.3992184432727316, + 0.3989238629904276, + 0.39859604225593853, + 0.3982386224495453, + 0.3978407757304672, + 0.3973972217772391, + 0.3968948040310518, + 0.39632374565848333, + 0.3956676874393372, + 0.39491704153605756, + 0.3940404048141844, + 0.39304144895341314, + 0.39192969231403335, + 0.3907349924335699, + 0.38948912615799663, + 0.388218789721506, + 0.3869543950489341, + 0.3857306379284482, + 0.3845847033568692, + 0.3835200728791997, + 0.3825376540458876, + 0.3815750155628507, + 0.3806220572324563, + 0.3796625341984307, + 0.3787017596188514, + 0.3777380274046624, + 0.37678275148700885, + 0.3758369125222765, + 0.37493608457462485, + 0.3741558129245181, + 0.37354872679889023, + 0.3731744026003055, + 0.3730091600991936, + 0.373059139653957, + 0.3733041261232971, + 0.37374010945444597, + 0.374326667154453, + 0.3750265944380076, + 0.3757629291916252, + 0.3765013990007157, + 0.3772456079739104, + 0.37799776869472695, + 0.37879525269663966, + 0.3796356942305153, + 0.38053723020347363, + 0.3815043257875242, + 0.3825796389777927, + 0.38376802767948537, + 0.3850706073682648, + 0.386423045159535, + 0.3877777122264872, + 0.3890996608867673, + 0.3903504569895844, + 0.3915174054312022, + 0.39257882216860174, + 0.3935260090181809, + 0.3943527630986738, + 0.39508962069140646, + 0.3957501845452742, + 0.3963614059148584, + 0.39692791492241314, + 0.3974552406934863, + 0.3979445375258824, + 0.39839252664491576, + 0.39879447159532794, + 0.3991393538071778, + 0.3994129873312467, + 0.3996119152588196, + 0.39975379878919826, + 0.3998484652047487, + 0.39990836744377173, + 0.39994603665901696, + 0.3999726237509675, + 0.3999891014985131, + 0.3999949239487874, + 0.3999974902885761, + 0.40000066235861703, + 0.40000087272306756, + 0.3999986522408348, + 0.3999986259411658, + 0.3999974520918512, + 0.3999904269798153, + 0.3999823052862309, + 0.3999756409905476, + 0.39996554761161046, + 0.39994268743551226, + 0.39989976353208023, + 0.39982389574880084, + 0.3996974852920409, + 0.39951552623187125, + 0.3992848032586401, + 0.39900714813076404, + 0.39869513525589034, + 0.3983485687566191, + 0.39796665962001065, + 0.3975355269475755, + 0.39705043047424016, + 0.39650316167323957, + 0.3958744202231593, + 0.39513761100436867, + 0.3942804978209398, + 0.39330938821426903, + 0.39222130526991034, + 0.39105169191011957, + 0.389818934266577, + 0.3885519117211622, + 0.3872787660379173, + 0.386057789737936, + 0.3849136978945048, + 0.38385473299428385, + 0.3828483107867876, + 0.38186753070559387, + 0.3809048063295568, + 0.3799366455992515, + 0.3789764934571622, + 0.378007124895364, + 0.37702541353345836, + 0.37603723788490295, + 0.3751165781469121, + 0.3743083629100932, + 0.3736820306514586, + 0.37325912132151357, + 0.3730398608976617, + 0.3730312873211004, + 0.37323272967622384, + 0.3736459994450306, + 0.3742150801871464, + 0.374878952433878, + 0.3755727343526544, + 0.376293004202871, + 0.3770131227742962, + 0.3777644380201167, + 0.37855070012699404, + 0.37937002506327294, + 0.3802349733747548, + 0.3811828742245744, + 0.38224941906949045, + 0.3834387576782197, + 0.3847338063464159, + 0.3860752095441227, + 0.38743315873309053, + 0.3887569706176049, + 0.39003446309269346, + 0.3912286465792192, + 0.3923098993001354, + 0.3932671510513035, + 0.3941174046679904, + 0.39487387043137934, + 0.39555484037117633, + 0.39618628216824103, + 0.39676730832587465, + 0.3973065247666521, + 0.3978070213552649, + 0.3982773674394538, + 0.39870167284220476, + 0.3990624824850588, + 0.3993492705136879, + 0.3995682481969159, + 0.3997220414952453, + 0.39982389226961507, + 0.399893388791531, + 0.39993929968677905, + 0.39996711178343414, + 0.3999833219079496, + 0.3999942787909761, + 0.399998968052238, + 0.3999989099147147, + 0.39999936387254464, + 0.40000085979786754, + 0.3999991551165248, + 0.3999947971524351, + 0.39999085950113283, + 0.39998461858511203, + 0.39997622525356813, + 0.39996806323354084, + 0.3999526347397118, + 0.39991581949081717, + 0.3998454991853158, + 0.399731577412913, + 0.3995664396600175, + 0.3993463198592771, + 0.3990854367869416, + 0.3987900545255855, + 0.3984553634197628, + 0.39808245169499046, + 0.39766742313482734, + 0.39720701844035833, + 0.3966789640979377, + 0.39606797845278785, + 0.39535004904506577, + 0.39452029986765036, + 0.393567769778052, + 0.39251208327957543, + 0.39136611669875604, + 0.3901405436531091, + 0.38887213741443466, + 0.3876057331439355, + 0.38639169796738865, + 0.38524897788635815, + 0.38418397868246895, + 0.38315486010351507, + 0.38216321116671953, + 0.38118584415996853, + 0.3802266953033849, + 0.3792627545834406, + 0.3782735637825347, + 0.3772598147897247, + 0.37625248164454383, + 0.37530797776740454, + 0.37448023736068387, + 0.37382961991295766, + 0.37334646903949764, + 0.3730709525720445, + 0.37301007676093384, + 0.37318753454184284, + 0.3735715121894357, + 0.37411023567620205, + 0.374729970697512, + 0.37539273669150497, + 0.37608422435638067, + 0.3767990661183428, + 0.3775492253614373, + 0.3783064101526169, + 0.3790979016252986, + 0.3799363578400112, + 0.380871209380707, + 0.38192730585298934, + 0.38311757669448127, + 0.38439334647415696, + 0.3857236494725902, + 0.38707750812450015, + 0.38842034550821286, + 0.38972266680136713, + 0.39093175554519555, + 0.3920310803727421, + 0.39300619483138954, + 0.3938751732619709, + 0.3946513531810125, + 0.39536181178553303, + 0.39600512852856345, + 0.39659615803245163, + 0.3971492440771975, + 0.39767002958137826, + 0.39815889558240314, + 0.39860125122455875, + 0.3989805622207661, + 0.3992843759671969, + 0.39951696677195087, + 0.3996847365322879, + 0.3998016138417789, + 0.39987731521991077, + 0.3999275946764231, + 0.39996094853504693, + 0.39998066219078926, + 0.39999122899856626, + 0.39999725273246856, + 0.3999998388172056, + 0.3999995801817055, + 0.39999930825100705, + 0.3999990723156294, + 0.3999962254508177, + 0.39999022444975707, + 0.39998385464412145, + 0.3999790525265094, + 0.3999718083214847, + 0.39995794424343317, + 0.3999280089669272, + 0.39986722652450646, + 0.3997634632168057, + 0.39961027008750516, + 0.39940755798914535, + 0.3991626449998487, + 0.39887616666250464, + 0.398555015841833, + 0.3981951660931224, + 0.3977986216199328, + 0.3973570021988043, + 0.3968497636444798, + 0.3962544465136914, + 0.3955569641865608, + 0.3947512433539019, + 0.39382855046863985, + 0.3928020640268971, + 0.3916681412946326, + 0.39045512458312004, + 0.38919181490914107, + 0.3879362957124513, + 0.3867295070467884, + 0.3855912234139291, + 0.3845034255984985, + 0.38346061825402394, + 0.3824593949416633, + 0.38148207304420567, + 0.3805269903090735, + 0.37954847210150217, + 0.3785386202274089, + 0.37749752038064593, + 0.376477194082305, + 0.37551587596787456, + 0.374675382483868, + 0.3739714320691982, + 0.37343695776347113, + 0.373107341022431, + 0.37300814022179674, + 0.3731615328776988, + 0.37351248248741675, + 0.3740060253900149, + 0.3745790194694097, + 0.3752172379209714, + 0.37588916489532603, + 0.37660520762505173, + 0.3773307684998847, + 0.3780646039153998, + 0.37882234351603905, + 0.37964107788100204, + 0.3805690021301209, + 0.3816200932901708, + 0.3827903945962285, + 0.384044574289785, + 0.38536831650657377, + 0.3867206419785163, + 0.38808829129445355, + 0.3894057591963778, + 0.3906313535937774, + 0.39174146465544946, + 0.3927375655662232, + 0.3936291310740182, + 0.3944314476772008, + 0.39515925354393505, + 0.39581516454695465, + 0.39642060641257104, + 0.3969857067395732, + 0.39752933638442967, + 0.3980380805300554, + 0.39849649095385314, + 0.39889027644300556, + 0.39921416665883286, + 0.39946299491427745, + 0.39964570996560167, + 0.39977480126711973, + 0.399860488076863, + 0.3999158267574198, + 0.3999519276044031, + 0.39997650156333436, + 0.3999895352288566, + 0.39999513334427444, + 0.3999986923148317, + 0.40000032929780177, + 0.39999912086720396, + 0.39999795912430786, + 0.399996862655421, + 0.3999912628105704, + 0.3999837349670887, + 0.3999793148064427, + 0.3999750556658332, + 0.39996301460253025, + 0.3999365514442569, + 0.39988613781391175, + 0.3997944814848225, + 0.39965192307452657, + 0.3994648581063184, + 0.39923425855708783, + 0.3989591453674949, + 0.3986473030180346, + 0.3983038983304627, + 0.39792957942716006, + 0.3975019774566981, + 0.3970106804820383, + 0.396434326606543, + 0.3957606068986428, + 0.39497628446241867, + 0.39408783964832605, + 0.39308297976616763, + 0.39196294862463477, + 0.3907600483611513, + 0.3895118875458318, + 0.38827277271701593, + 0.3870695038521089, + 0.3859234201047978, + 0.38481917485972633, + 0.3837674878570029, + 0.38275686469716574, + 0.3817932730220915, + 0.3808282068897156, + 0.37983013991688147, + 0.378798606144511, + 0.37774603625394865, + 0.37671351323345437, + 0.37574137382502454, + 0.3748721767733644, + 0.3741135417426515, + 0.3735297247209204, + 0.37315294732795373, + 0.373034423862542, + 0.3731491863852479, + 0.37345687921646203, + 0.373900162600743, + 0.3744363696257824, + 0.3750472494482206, + 0.3757169130804434, + 0.37641956168523016, + 0.3771121722459004, + 0.3778194789831702, + 0.37855026073543174, + 0.3793607086668942, + 0.3802772297286728, + 0.3813174265145454, + 0.3824589136193614, + 0.3836932890601371, + 0.3850066165167234, + 0.3863765554490362, + 0.38775718786640045, + 0.3890820719978693, + 0.3903236218338344, + 0.39144757625282195, + 0.3924640750058743, + 0.39338112237124334, + 0.3942110811243659, + 0.3949486361678642, + 0.39561734781274716, + 0.39623725714416547, + 0.3968241822944717, + 0.3973850702372737, + 0.3979096938879524, + 0.398386632441441, + 0.39879639200242184, + 0.39913604662370933, + 0.3994055290881115, + 0.39960731310116754, + 0.399744713266889, + 0.3998387715984811, + 0.3999032969828926, + 0.3999443997626981, + 0.3999689260515926, + 0.39998560462590543, + 0.39999579366252314, + 0.39999760112922145, + 0.3999974819544468, + 0.3999999146705953, + 0.40000038601705235, + 0.3999954392975821, + 0.39999028021887045, + 0.399986460988963, + 0.3999802887474053, + 0.3999736843778419, + 0.3999663455963614, + 0.39994767412685295 + ], + "datatype": "Float64", + "type": "series" + } +} From 8a5c9ea51ed1d4d7bfef313697da5f27bc9073b7 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 21 Feb 2024 07:46:49 +0100 Subject: [PATCH 176/212] update --- .../plot_oscillating_beam_results.jl | 35 ++++++++++------ .../validation_oscillating_beam_2d.jl | 33 ++++++++------- validation/validation_util.jl | 42 +++++++++++++++---- 3 files changed, 75 insertions(+), 35 deletions(-) diff --git a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl index 0e0637d81..82f93ca2a 100644 --- a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl +++ b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl @@ -25,9 +25,11 @@ dx_data.displacement = dx_data.displacement .+ 0.00005 dy_data.displacement = dy_data.displacement .- 0.001 # Get the list of JSON files -json_files = glob("validation_reference_oscillating_beam_2d_*.json", "validation/oscillating_beam_2d/") +json_files = glob("validation_reference_oscillating_beam_2d_*.json", + "validation/oscillating_beam_2d/") +json_files = sort(json_files, by=extract_number) -if length(json_files)==0 +if length(json_files) == 0 error("No files found") end @@ -38,12 +40,13 @@ fig, (ax1, ax2) = subplots(1, 2, figsize=(12, 5)) key_pattern_x = r"mid_point_x_solid_\d+" key_pattern_y = r"mid_point_y_solid_\d+" - for json_file in json_files + println(json_file) json_data = JSON.parsefile(json_file) local resolution = parse(Int, split(split(json_file, "_")[end], ".")[1]) - particle_spacing = cylinder_diameter / resolution + #particle_spacing = cylinder_diameter / resolution + particle_spacing = elastic_plate_thickness / resolution # Find matching keys and plot data for each key matching_keys_x = sort(collect(filter(key -> occursin(key_pattern_x, key), @@ -51,8 +54,8 @@ for json_file in json_files matching_keys_y = sort(collect(filter(key -> occursin(key_pattern_y, key), keys(json_data)))) - if length(matching_keys_x)!= 1 - error("Not matching keys found in: " * json_file) + if length(matching_keys_x) == 0 + error("No matching keys found in: " * json_file) end # calculate error compared to reference @@ -61,12 +64,18 @@ for json_file in json_files for key in matching_keys_x data = json_data[key] - mse_results_x = calculate_mse(dx_data, data) + values = data["values"] + initial_position = values[1] + displacements = [value - initial_position for value in values] + mse_results_x = calculate_mse(dx_data, data["time"], displacements) end for key in matching_keys_y data = json_data[key] - mse_results_y = calculate_mse(dy_data, data) + values = data["values"] + initial_position = values[1] + displacements = [value - initial_position for value in values] + mse_results_y = calculate_mse(dy_data, data["time"], displacements) end # Plot x-axis displacements @@ -77,7 +86,7 @@ for json_file in json_files initial_position = values[1] displacements = [value - initial_position for value in values] ax1.plot(times, displacements, - label="dp = $(particle_spacing) mse=$(@sprintf("%.5f", mse_results_x))") + label="dp = $(@sprintf("%.8f", particle_spacing)) mse=$(@sprintf("%.8f", mse_results_x))") end # Plot y-axis displacements @@ -88,7 +97,7 @@ for json_file in json_files initial_position = values[1] displacements = [value - initial_position for value in values] ax2.plot(times, displacements, - label="dp = $(particle_spacing) mse=$(@sprintf("%.5f", mse_results_y))") + label="dp = $(@sprintf("%.8f", particle_spacing)) mse=$(@sprintf("%.8f", mse_results_y))") end end @@ -100,14 +109,14 @@ ax2.plot(dy_data.time, dy_data.displacement, label="Turek and Hron 2006", color= ax1.set_xlabel("Time [s]") ax1.set_ylabel("X Displacement") ax1.set_title("X-Axis Displacement") -ax1.legend(loc="upper left", bbox_to_anchor=(1, 1)) +ax1.legend(loc="upper center", bbox_to_anchor=(0.5, -0.1)) ax2.set_xlabel("Time [s]") ax2.set_ylabel("Y Displacement") ax2.set_title("Y-Axis Displacement") -ax2.legend(loc="upper left", bbox_to_anchor=(1, 1)) +ax2.legend(loc="upper center", bbox_to_anchor=(0.5, -0.1)) -fig.subplots_adjust(right=0.7) +#fig.subplots_adjust(right=0.5) fig.tight_layout() plotshow() diff --git a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl index f4f49594b..6280734d0 100644 --- a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl +++ b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl @@ -29,10 +29,12 @@ material_density = 1000.0 E = 1.4e6 nu = 0.4 -#resolution = [20, 50, 100] -resolution = [20] +#resolution = [9, 21, 35] +resolution = [35] for res in resolution - particle_spacing = cylinder_diameter / res + #particle_spacing = cylinder_diameter / res + n_particles_y = res + particle_spacing = elastic_plate_thickness / (n_particles_y - 1) # Add particle_spacing/2 to the clamp_radius to ensure that particles are also placed on the radius fixed_particles = SphereShape(particle_spacing, cylinder_radius + particle_spacing / 2, @@ -45,8 +47,7 @@ for res in resolution # Beam and clamped particles n_particles_per_dimension = (round(Int, elastic_plate_length / particle_spacing) + - n_particles_clamp_x + 2, - round(Int, elastic_plate_thickness / particle_spacing) + 1) + n_particles_clamp_x + 1, n_particles_y) # Note that the `RectangularShape` puts the first particle half a particle spacing away # from the boundary, which is correct for fluids, but not for solids. @@ -105,27 +106,29 @@ for res in resolution semi = Semidiscretization(solid_system, neighborhood_search=GridNeighborhoodSearch) ode = semidiscretize(semi, tspan) - function particle_position_x(particle_id, t, v, u, system) - return system.current_coordinates[1, particle_id] - end + # function particle_position_x(particle_id, t, v, u, system) + # return system.current_coordinates[1, particle_id] + # end - function particle_position_y(particle_id, t, v, u, system) - return system.current_coordinates[2, particle_id] - end + # function particle_position_y(particle_id, t, v, u, system) + # return system.current_coordinates[2, particle_id] + # end # mid_point_x = (t, v, u, system) -> particle_position_x(middle_particle_id, t, v, u, system) # mid_point_y = (t, v, u, system) -> particle_position_y(middle_particle_id, t, v, u, system) function mid_point_x(t, v, u, system) - particle_position_x(middle_particle_id, t, v, u, system) + return system.current_coordinates[1, middle_particle_id] end function mid_point_y(t, v, u, system) - particle_position_y(middle_particle_id, t, v, u, system) + return system.current_coordinates[2, middle_particle_id] end - pp_callback = PostprocessCallback(; mid_point_x, mid_point_y, dt=0.025, output_directory="validation/oscillating_beam_2d", - filename="validation_reference_oscillating_beam_2d_" * string(res), write_csv=false) + pp_callback = PostprocessCallback(; mid_point_x, mid_point_y, dt=0.01, + output_directory="validation/oscillating_beam_2d", + filename="validation_reference_oscillating_beam_2d_" * + string(res), write_csv=false) info_callback = InfoCallback(interval=2500) saving_callback = SolutionSavingCallback(dt=0.5, prefix="validation_" * string(res)) diff --git a/validation/validation_util.jl b/validation/validation_util.jl index 973669502..cdd09d0f7 100644 --- a/validation/validation_util.jl +++ b/validation/validation_util.jl @@ -1,12 +1,40 @@ using Interpolations -function calculate_mse(reference_data, simulation_data) - # Interpolate simulation data - interp_func = LinearInterpolation(simulation_data["time"], simulation_data["values"]) - # Align with reference data time points - interpolated_values = interp_func(reference_data.time) +function calculate_mse(reference_data, simulation_time, simulation_values) + interp_func = LinearInterpolation(simulation_time, simulation_values, + extrapolation_bc=Flat()) - # Calculate MSE - mse = mean((interpolated_values .- reference_data.displacement) .^ 2) + # Find the common time range + common_time_range = filter(t -> t >= maximum([ + minimum(simulation_time), + minimum(reference_data.time), + ]) && + t <= minimum([ + maximum(simulation_time), + maximum(reference_data.time), + ]), reference_data.time) + + # Interpolate simulation data at the common time points + interpolated_values = [interp_func(t) for t in common_time_range] + + # Extract the corresponding reference displacement values + reference_displacement = [reference_data.displacement[findfirst(==(t), + reference_data.time)] + for t in common_time_range] + + # Calculate MSE only over the common time range + mse = mean((interpolated_values .- reference_displacement) .^ 2) return mse end + +function extract_number(filename) + # This regex matches the last sequence of digits in the filename + m = match(r"(\d+)(?!.*\d)", filename) + if m !== nothing + num = parse(Int, m.captures[1]) + return num + else + println("No numeric sequence found in filename: ", filename) + return -1 + end +end From 217f9c310b958331f185ad7a31a46fcd9efa80b9 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 21 Feb 2024 11:46:57 +0100 Subject: [PATCH 177/212] cleanup --- validation/oscillating_beam_2d/README.md | 4 +-- .../validation_oscillating_beam_2d.jl | 35 +++++++------------ 2 files changed, 15 insertions(+), 24 deletions(-) diff --git a/validation/oscillating_beam_2d/README.md b/validation/oscillating_beam_2d/README.md index acdfc8b14..a20e58e0e 100644 --- a/validation/oscillating_beam_2d/README.md +++ b/validation/oscillating_beam_2d/README.md @@ -2,7 +2,7 @@ The following files are provided here: 1) Validation simulation: validation_oscillating_beam_2d.jl 2) Comparison with reference: compare_reference_oscillating_beam_results.jl -3) Comparison with TrixiParticles.jl reference: plot_oscillating_beam_results.jl -4) TrixiParticles.jl reference files: validation_reference_oscillating_beam_2d_[20, 50, 100].j (20 is the default CI resolution, note that resolution 50 takes about 10-20 minutes while 100 takes about 1-2 hours) +3) Comparison with TrixiParticles.jl and literature reference: plot_oscillating_beam_results.jl +4) TrixiParticles.jl reference files: validation_reference_oscillating_beam_2d_[9, 21, 35].j (9 is the default CI resolution, note that resolution 21 takes about 30-50 minutes while 35 takes about 4-6 hours) 5) Extracted results from Turek S , Hron J. "Proposal for numerical benchmarking of fluid-structure interaction between an elastic object and laminar incompressible flow." In: Fluid-structure interaction. Springer; 2006. p. 371–85 . https://doi.org/10.1007/3-540-34596-5_15: Turek_dx_T.csv and Turek_dy_T.csv \ No newline at end of file diff --git a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl index 6280734d0..b6b5d74aa 100644 --- a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl +++ b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl @@ -25,14 +25,12 @@ cylinder_radius = 0.05 cylinder_diameter = 2 * cylinder_radius material_density = 1000.0 -# Young's modulus and Poisson ratio E = 1.4e6 nu = 0.4 #resolution = [9, 21, 35] -resolution = [35] +resolution = [9] for res in resolution - #particle_spacing = cylinder_diameter / res n_particles_y = res particle_spacing = elastic_plate_thickness / (n_particles_y - 1) @@ -70,6 +68,9 @@ for res in resolution acceleration=(0.0, -gravity), penalty_force=PenaltyForceGanzenmueller(alpha=0.01)) + # ========================================================================================== + # ==== Postprocessing Setup + # find points at the end of elastic plate plate_end_x = elastic_plate_length + cylinder_radius point_ids = [] @@ -83,7 +84,7 @@ for res in resolution # of those find the particle in the middle y_coords_at_plate_end = [solid_system.current_coordinates[2, particle] - for particle in point_ids] + for particle in point_ids] if isempty(y_coords_at_plate_end) error("No particles found at the specified beam_end_x coordinate.") end @@ -101,22 +102,6 @@ for res in resolution closest_to_median_index = argmin(abs.(y_coords_at_plate_end .- median_y)) middle_particle_id = point_ids[closest_to_median_index] - # ========================================================================================== - # ==== Simulation - semi = Semidiscretization(solid_system, neighborhood_search=GridNeighborhoodSearch) - ode = semidiscretize(semi, tspan) - - # function particle_position_x(particle_id, t, v, u, system) - # return system.current_coordinates[1, particle_id] - # end - - # function particle_position_y(particle_id, t, v, u, system) - # return system.current_coordinates[2, particle_id] - # end - - # mid_point_x = (t, v, u, system) -> particle_position_x(middle_particle_id, t, v, u, system) - # mid_point_y = (t, v, u, system) -> particle_position_y(middle_particle_id, t, v, u, system) - function mid_point_x(t, v, u, system) return system.current_coordinates[1, middle_particle_id] end @@ -126,14 +111,20 @@ for res in resolution end pp_callback = PostprocessCallback(; mid_point_x, mid_point_y, dt=0.01, - output_directory="validation/oscillating_beam_2d", - filename="validation_reference_oscillating_beam_2d_" * + output_directory="out", + filename="validation_run_oscillating_beam_2d_" * string(res), write_csv=false) info_callback = InfoCallback(interval=2500) saving_callback = SolutionSavingCallback(dt=0.5, prefix="validation_" * string(res)) callbacks = CallbackSet(info_callback, saving_callback, pp_callback) + # ========================================================================================== + # ==== Simulation + + semi = Semidiscretization(solid_system, neighborhood_search=GridNeighborhoodSearch) + ode = semidiscretize(semi, tspan) + sol = solve(ode, RDPK3SpFSAL49(), abstol=1e-8, reltol=1e-6, dtmax=1e-3, save_everystep=false, callback=callbacks) end From 8293d8e43eb46bdae72d152366281eb31085ea67 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 21 Feb 2024 11:47:15 +0100 Subject: [PATCH 178/212] format --- .../oscillating_beam_2d/validation_oscillating_beam_2d.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl index b6b5d74aa..122a081bd 100644 --- a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl +++ b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl @@ -84,7 +84,7 @@ for res in resolution # of those find the particle in the middle y_coords_at_plate_end = [solid_system.current_coordinates[2, particle] - for particle in point_ids] + for particle in point_ids] if isempty(y_coords_at_plate_end) error("No particles found at the specified beam_end_x coordinate.") end From 7437abc203cf48f7eb3cd8a038ac873e09bc0781 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 21 Feb 2024 13:01:09 +0100 Subject: [PATCH 179/212] update --- .../validation_oscillating_beam_2d.jl | 33 ++++++++----------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl index 122a081bd..686f403e6 100644 --- a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl +++ b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl @@ -18,42 +18,37 @@ using OrdinaryDiffEq gravity = 2.0 tspan = (0.0, 10.0) -elastic_plate_length = 0.35 -elastic_plate_thickness = 0.02 - +elastic_plate = (length=0.35, thickness=0.02) cylinder_radius = 0.05 -cylinder_diameter = 2 * cylinder_radius -material_density = 1000.0 -E = 1.4e6 -nu = 0.4 +material = (density=1000.0, E=1.4e6, nu=0.4) #resolution = [9, 21, 35] resolution = [9] for res in resolution - n_particles_y = res - particle_spacing = elastic_plate_thickness / (n_particles_y - 1) + particle_spacing = elastic_plate.thickness / (res - 1) # Add particle_spacing/2 to the clamp_radius to ensure that particles are also placed on the radius fixed_particles = SphereShape(particle_spacing, cylinder_radius + particle_spacing / 2, - (0.0, elastic_plate_thickness / 2), material_density, + (0.0, elastic_plate.thickness / 2), material.density, cutout_min=(0.0, 0.0), - cutout_max=(cylinder_radius, elastic_plate_thickness), + cutout_max=(cylinder_radius, elastic_plate.thickness), tlsph=true) n_particles_clamp_x = round(Int, cylinder_radius / particle_spacing) - # Beam and clamped particles - n_particles_per_dimension = (round(Int, elastic_plate_length / particle_spacing) + - n_particles_clamp_x + 1, n_particles_y) + # Plate and clamped particles + n_particles_per_dimension = (round(Int, elastic_plate.length / particle_spacing) + + n_particles_clamp_x + 1, res) # Note that the `RectangularShape` puts the first particle half a particle spacing away # from the boundary, which is correct for fluids, but not for solids. # We therefore need to pass `tlsph=true`. - elastic_plate = RectangularShape(particle_spacing, n_particles_per_dimension, - (0.0, 0.0), density=material_density, tlsph=true) + elastic_plate_particles = RectangularShape(particle_spacing, n_particles_per_dimension, + (0.0, 0.0), density=material.density, + tlsph=true) - solid = union(elastic_plate, fixed_particles) + solid = union(elastic_plate_particles, fixed_particles) # ========================================================================================== # ==== Solid @@ -63,7 +58,7 @@ for res in resolution solid_system = TotalLagrangianSPHSystem(solid, smoothing_kernel, smoothing_length, - E, nu, + material.E, material.nu, n_fixed_particles=nparticles(fixed_particles), acceleration=(0.0, -gravity), penalty_force=PenaltyForceGanzenmueller(alpha=0.01)) @@ -72,7 +67,7 @@ for res in resolution # ==== Postprocessing Setup # find points at the end of elastic plate - plate_end_x = elastic_plate_length + cylinder_radius + plate_end_x = elastic_plate.length + cylinder_radius point_ids = [] for particle in TrixiParticles.eachparticle(solid_system) particle_coord = solid_system.current_coordinates[:, particle] From ecbdb3b72c61c84c1867419defa825ae865f3029 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 21 Feb 2024 13:32:03 +0100 Subject: [PATCH 180/212] cleanup plot --- .../plot_oscillating_beam_results.jl | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl index 82f93ca2a..d3cb0ca84 100644 --- a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl +++ b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl @@ -8,12 +8,7 @@ using DataFrames using Statistics using Printf -elastic_plate_length = 0.35 -elastic_plate_thickness = 0.02 - -cylinder_radius = 0.05 -cylinder_diameter = 2 * cylinder_radius -material_density = 1000.0 +elastic_plate = (length=0.35, thickness=0.02) # Load the reference simulation data dx_data = CSV.read("validation/oscillating_beam_2d/Turek_dx_T.csv", DataFrame) @@ -25,14 +20,18 @@ dx_data.displacement = dx_data.displacement .+ 0.00005 dy_data.displacement = dy_data.displacement .- 0.001 # Get the list of JSON files -json_files = glob("validation_reference_oscillating_beam_2d_*.json", - "validation/oscillating_beam_2d/") -json_files = sort(json_files, by=extract_number) +reference_files = glob("validation_reference_oscillating_beam_2d_*.json", + "validation/oscillating_beam_2d/") -if length(json_files) == 0 +if length(reference_files) == 0 error("No files found") end +simulation_files = glob("validation_run_oscillating_beam_2d_*.json", "out") +merged_files = vcat(reference_files, simulation_files) + +input_files = sort(merged_files, by=extract_number) + # Create subplots fig, (ax1, ax2) = subplots(1, 2, figsize=(12, 5)) @@ -40,13 +39,12 @@ fig, (ax1, ax2) = subplots(1, 2, figsize=(12, 5)) key_pattern_x = r"mid_point_x_solid_\d+" key_pattern_y = r"mid_point_y_solid_\d+" -for json_file in json_files - println(json_file) - json_data = JSON.parsefile(json_file) +for file_name in input_files + println("Loading the input file: " * file_name) + json_data = JSON.parsefile(file_name) - local resolution = parse(Int, split(split(json_file, "_")[end], ".")[1]) - #particle_spacing = cylinder_diameter / resolution - particle_spacing = elastic_plate_thickness / resolution + local resolution = parse(Int, split(split(file_name, "_")[end], ".")[1]) + particle_spacing = elastic_plate.thickness / resolution # Find matching keys and plot data for each key matching_keys_x = sort(collect(filter(key -> occursin(key_pattern_x, key), @@ -55,7 +53,7 @@ for json_file in json_files keys(json_data)))) if length(matching_keys_x) == 0 - error("No matching keys found in: " * json_file) + error("No matching keys found in: " * file_name) end # calculate error compared to reference @@ -78,6 +76,8 @@ for json_file in json_files mse_results_y = calculate_mse(dy_data, data["time"], displacements) end + label_prefix = occursin("reference", file_name) ? "Reference" : "" + # Plot x-axis displacements for key in matching_keys_x data = json_data[key] @@ -86,7 +86,7 @@ for json_file in json_files initial_position = values[1] displacements = [value - initial_position for value in values] ax1.plot(times, displacements, - label="dp = $(@sprintf("%.8f", particle_spacing)) mse=$(@sprintf("%.8f", mse_results_x))") + label="$label_prefix dp = $(@sprintf("%.8f", particle_spacing)) mse=$(@sprintf("%.8f", mse_results_x))") end # Plot y-axis displacements @@ -97,7 +97,7 @@ for json_file in json_files initial_position = values[1] displacements = [value - initial_position for value in values] ax2.plot(times, displacements, - label="dp = $(@sprintf("%.8f", particle_spacing)) mse=$(@sprintf("%.8f", mse_results_y))") + label="$label_prefix dp = $(@sprintf("%.8f", particle_spacing)) mse=$(@sprintf("%.8f", mse_results_y))") end end From 97d0e6c31535abd068fd959c53df24e2b40478ad Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 21 Feb 2024 13:49:49 +0100 Subject: [PATCH 181/212] simplify plot --- .../plot_oscillating_beam_results.jl | 66 ++++++------------- 1 file changed, 20 insertions(+), 46 deletions(-) diff --git a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl index d3cb0ca84..c1f668c3d 100644 --- a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl +++ b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl @@ -40,64 +40,38 @@ key_pattern_x = r"mid_point_x_solid_\d+" key_pattern_y = r"mid_point_y_solid_\d+" for file_name in input_files - println("Loading the input file: " * file_name) + println("Loading the input file: $file_name") json_data = JSON.parsefile(file_name) - local resolution = parse(Int, split(split(file_name, "_")[end], ".")[1]) + resolution = parse(Int, split(split(file_name, "_")[end], ".")[1]) particle_spacing = elastic_plate.thickness / resolution - # Find matching keys and plot data for each key matching_keys_x = sort(collect(filter(key -> occursin(key_pattern_x, key), keys(json_data)))) matching_keys_y = sort(collect(filter(key -> occursin(key_pattern_y, key), keys(json_data)))) - if length(matching_keys_x) == 0 - error("No matching keys found in: " * file_name) - end - - # calculate error compared to reference - mse_results_x = 0 - mse_results_y = 0 - - for key in matching_keys_x - data = json_data[key] - values = data["values"] - initial_position = values[1] - displacements = [value - initial_position for value in values] - mse_results_x = calculate_mse(dx_data, data["time"], displacements) - end - - for key in matching_keys_y - data = json_data[key] - values = data["values"] - initial_position = values[1] - displacements = [value - initial_position for value in values] - mse_results_y = calculate_mse(dy_data, data["time"], displacements) - end + isempty(matching_keys_x) && error("No matching keys found in: $file_name") label_prefix = occursin("reference", file_name) ? "Reference" : "" - # Plot x-axis displacements - for key in matching_keys_x - data = json_data[key] - times = data["time"] - values = data["values"] - initial_position = values[1] - displacements = [value - initial_position for value in values] - ax1.plot(times, displacements, - label="$label_prefix dp = $(@sprintf("%.8f", particle_spacing)) mse=$(@sprintf("%.8f", mse_results_x))") - end - - # Plot y-axis displacements - for key in matching_keys_y - data = json_data[key] - times = data["time"] - values = data["values"] - initial_position = values[1] - displacements = [value - initial_position for value in values] - ax2.plot(times, displacements, - label="$label_prefix dp = $(@sprintf("%.8f", particle_spacing)) mse=$(@sprintf("%.8f", mse_results_y))") + # Calculate MSE results and plot for both X and Y displacements + for (matching_keys, ax) in ((matching_keys_x, ax1), (matching_keys_y, ax2)) + mse_results = 0 + for key in matching_keys + data = json_data[key] + values = data["values"] + initial_position = values[1] + displacements = [value - initial_position for value in values] + times = data["time"] + + mse_results = occursin(key_pattern_x, key) ? + calculate_mse(dx_data, times, displacements) : + calculate_mse(dy_data, times, displacements) + + label = "$label_prefix dp = $(@sprintf("%.8f", particle_spacing)) mse=$(@sprintf("%.8f", mse_results))" + ax.plot(times, displacements, label=label) + end end end From 6ea4bea2e428be2757e879c438b12728549c73b1 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 21 Feb 2024 14:26:34 +0100 Subject: [PATCH 182/212] switch to makie --- .../plot_oscillating_beam_results.jl | 79 ++++++++----------- validation/validation_util.jl | 1 + 2 files changed, 35 insertions(+), 45 deletions(-) diff --git a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl index c1f668c3d..f2f1f84fe 100644 --- a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl +++ b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl @@ -1,11 +1,12 @@ include("../validation_util.jl") -using PythonPlot -using JSON -using Glob +# activate for interactive plot +#using GLMakie +using CairoMakie using CSV using DataFrames -using Statistics +using JSON +using Glob using Printf elastic_plate = (length=0.35, thickness=0.02) @@ -14,31 +15,29 @@ elastic_plate = (length=0.35, thickness=0.02) dx_data = CSV.read("validation/oscillating_beam_2d/Turek_dx_T.csv", DataFrame) dy_data = CSV.read("validation/oscillating_beam_2d/Turek_dy_T.csv", DataFrame) -# fix slight misalignment -dx_data.time = dx_data.time .+ 0.015 -dx_data.displacement = dx_data.displacement .+ 0.00005 -dy_data.displacement = dy_data.displacement .- 0.001 +# Adjustments to data +dx_data.time .+= 0.015 +dx_data.displacement .+= 0.00005 +dy_data.displacement .-= 0.001 # Get the list of JSON files reference_files = glob("validation_reference_oscillating_beam_2d_*.json", "validation/oscillating_beam_2d/") - -if length(reference_files) == 0 - error("No files found") -end - simulation_files = glob("validation_run_oscillating_beam_2d_*.json", "out") merged_files = vcat(reference_files, simulation_files) - input_files = sort(merged_files, by=extract_number) -# Create subplots -fig, (ax1, ax2) = subplots(1, 2, figsize=(12, 5)) - # Regular expressions for matching keys key_pattern_x = r"mid_point_x_solid_\d+" key_pattern_y = r"mid_point_y_solid_\d+" +# Setup for Makie plotting +fig = Figure(size=(1200, 800)) +ax1 = Axis(fig, title="X-Axis Displacement", xlabel="Time [s]", ylabel="X Displacement") +ax2 = Axis(fig, title="Y-Axis Displacement", xlabel="Time [s]", ylabel="Y Displacement") +fig[1, 1] = ax1 +fig[2, 1] = ax2 + for file_name in input_files println("Loading the input file: $file_name") json_data = JSON.parsefile(file_name) @@ -51,46 +50,36 @@ for file_name in input_files matching_keys_y = sort(collect(filter(key -> occursin(key_pattern_y, key), keys(json_data)))) - isempty(matching_keys_x) && error("No matching keys found in: $file_name") + if isempty(matching_keys_x) + error("No matching keys found in: $file_name") + end label_prefix = occursin("reference", file_name) ? "Reference" : "" - # Calculate MSE results and plot for both X and Y displacements for (matching_keys, ax) in ((matching_keys_x, ax1), (matching_keys_y, ax2)) - mse_results = 0 for key in matching_keys data = json_data[key] - values = data["values"] - initial_position = values[1] - displacements = [value - initial_position for value in values] - times = data["time"] + times = Float64.(data["time"]) + positions = Float64.(data["values"]) + initial_position = positions[1] + displacements = [v - initial_position for v in positions] mse_results = occursin(key_pattern_x, key) ? - calculate_mse(dx_data, times, displacements) : - calculate_mse(dy_data, times, displacements) + calculate_mse(dx_data, data["time"], displacements) : + calculate_mse(dy_data, data["time"], displacements) label = "$label_prefix dp = $(@sprintf("%.8f", particle_spacing)) mse=$(@sprintf("%.8f", mse_results))" - ax.plot(times, displacements, label=label) + lines!(ax, times, displacements, label=label) end end end -ax1.plot(dx_data.time, dx_data.displacement, label="Turek and Hron 2006", color="black", - linestyle="--") -ax2.plot(dy_data.time, dy_data.displacement, label="Turek and Hron 2006", color="black", - linestyle="--") - -ax1.set_xlabel("Time [s]") -ax1.set_ylabel("X Displacement") -ax1.set_title("X-Axis Displacement") -ax1.legend(loc="upper center", bbox_to_anchor=(0.5, -0.1)) - -ax2.set_xlabel("Time [s]") -ax2.set_ylabel("Y Displacement") -ax2.set_title("Y-Axis Displacement") -ax2.legend(loc="upper center", bbox_to_anchor=(0.5, -0.1)) - -#fig.subplots_adjust(right=0.5) -fig.tight_layout() +# Plot reference data +lines!(ax1, dx_data.time, dx_data.displacement, color=:black, linestyle=:dash, + label="Turek and Hron 2006") +lines!(ax2, dy_data.time, dy_data.displacement, color=:black, linestyle=:dash, + label="Turek and Hron 2006") -plotshow() +legend_ax1 = Legend(fig[1, 2], ax1) +legend_ax2 = Legend(fig[2, 2], ax2) +fig diff --git a/validation/validation_util.jl b/validation/validation_util.jl index cdd09d0f7..e12bcc45d 100644 --- a/validation/validation_util.jl +++ b/validation/validation_util.jl @@ -1,4 +1,5 @@ using Interpolations +using Statistics function calculate_mse(reference_data, simulation_time, simulation_values) interp_func = LinearInterpolation(simulation_time, simulation_values, From b0ad1457b83aa1817b4cf4532779582631146111 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 21 Feb 2024 14:51:50 +0100 Subject: [PATCH 183/212] implement check --- src/TrixiParticles.jl | 2 +- src/util.jl | 16 +++++++++++ ...pare_reference_oscillating_beam_results.jl | 19 +++++++++++++ .../validation_oscillating_beam_2d.jl | 4 +-- validation/validation_util.jl | 28 +++++++++++++++++++ 5 files changed, 66 insertions(+), 3 deletions(-) diff --git a/src/TrixiParticles.jl b/src/TrixiParticles.jl index 3aa241248..9692f5864 100644 --- a/src/TrixiParticles.jl +++ b/src/TrixiParticles.jl @@ -58,7 +58,7 @@ export BoundaryModelMonaghanKajtar, BoundaryModelDummyParticles, AdamiPressureEx PressureMirroring, PressureZeroing export BoundaryMovement export GridNeighborhoodSearch, TrivialNeighborhoodSearch -export examples_dir, trixi_include +export examples_dir, validation_dir, trixi_include export trixi2vtk export RectangularTank, RectangularShape, SphereShape export VoxelSphere, RoundSphere, reset_wall! diff --git a/src/util.jl b/src/util.jl index 1a24ec23b..17c92a0f7 100644 --- a/src/util.jl +++ b/src/util.jl @@ -136,6 +136,22 @@ readdir(examples_dir()) """ examples_dir() = pkgdir(TrixiParticles, "examples") +""" + validation_dir() + +Return the directory where the validation files provided with TrixiParticles.jl are located. If TrixiParticles is +installed as a regular package (with `]add TrixiParticles`), these files are read-only and should *not* be +modified. To find out which files are available, use, e.g., `readdir`. + +Copied from [Trixi.jl](https://github.com/trixi-framework/Trixi.jl). + +# Examples +```@example +readdir(validation_dir()) +``` +""" +validation_dir() = pkgdir(TrixiParticles, "validation") + """ @autoinfiltrate @autoinfiltrate condition::Bool diff --git a/validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl b/validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl index 8b1378917..87e522eef 100644 --- a/validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl +++ b/validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl @@ -1 +1,20 @@ +include("../validation_util.jl") +using TrixiParticles +using JSON + +trixi_include(@__MODULE__, + joinpath(validation_dir(), "oscillating_beam_2d", "validation_oscillating_beam_2d.jl"), + resolution=[9]) + +reference_file_name = "validation/oscillating_beam_2d/validation_reference_oscillating_beam_2d_9.json" +run_file_name = "out/validation_run_oscillating_beam_2d_9.json" + +reference_data = JSON.parsefile(reference_file_name) +run_data = JSON.parsefile(run_file_name) + +error = calculate_error(reference_data, run_data) + +if error > 7e-19 + return -1 +end diff --git a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl index 686f403e6..fa9735992 100644 --- a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl +++ b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl @@ -23,8 +23,8 @@ cylinder_radius = 0.05 material = (density=1000.0, E=1.4e6, nu=0.4) -#resolution = [9, 21, 35] -resolution = [9] +# for the brave add 35 +resolution = [9, 21] for res in resolution particle_spacing = elastic_plate.thickness / (res - 1) diff --git a/validation/validation_util.jl b/validation/validation_util.jl index e12bcc45d..ca2803355 100644 --- a/validation/validation_util.jl +++ b/validation/validation_util.jl @@ -39,3 +39,31 @@ function extract_number(filename) return -1 end end + +function find_and_compare_values(ref_data, run_data, errors = []) + if isa(ref_data, Dict) && isa(run_data, Dict) + for key in keys(ref_data) + if key == "values" && haskey(run_data, key) + ref_values = ref_data[key] + run_values = run_data[key] + if isa(ref_values, Array) && isa(run_values, Array) + for (ref_value, run_value) in zip(ref_values, run_values) + if isa(ref_value, Number) && isa(run_value, Number) + push!(errors, (ref_value - run_value)^2) + else + println("Non-numeric data encountered under 'values' key.") + end + end + end + elseif haskey(run_data, key) + # Recursively search for "values" keys in nested dictionaries + find_and_compare_values(ref_data[key], run_data[key], errors) + end + end + end + return errors +end + +function calculate_error(ref_data, run_data) + return sum(find_and_compare_values(ref_data, run_data)) +end From 3e7ee92d367d658cfbb8d65b5dcaee6e7349c58a Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 21 Feb 2024 14:52:14 +0100 Subject: [PATCH 184/212] format --- .../compare_reference_oscillating_beam_results.jl | 3 ++- validation/validation_util.jl | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl b/validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl index 87e522eef..f1a8d30ab 100644 --- a/validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl +++ b/validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl @@ -4,7 +4,8 @@ using TrixiParticles using JSON trixi_include(@__MODULE__, - joinpath(validation_dir(), "oscillating_beam_2d", "validation_oscillating_beam_2d.jl"), + joinpath(validation_dir(), "oscillating_beam_2d", + "validation_oscillating_beam_2d.jl"), resolution=[9]) reference_file_name = "validation/oscillating_beam_2d/validation_reference_oscillating_beam_2d_9.json" diff --git a/validation/validation_util.jl b/validation/validation_util.jl index ca2803355..ac687225d 100644 --- a/validation/validation_util.jl +++ b/validation/validation_util.jl @@ -40,7 +40,7 @@ function extract_number(filename) end end -function find_and_compare_values(ref_data, run_data, errors = []) +function find_and_compare_values(ref_data, run_data, errors=[]) if isa(ref_data, Dict) && isa(run_data, Dict) for key in keys(ref_data) if key == "values" && haskey(run_data, key) From 21c7bcdff319537c6bc11b1c679213fc0bcfac1d Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 22 Feb 2024 19:21:38 +0100 Subject: [PATCH 185/212] update to new reference --- validation/oscillating_beam_2d/README.md | 5 +- validation/oscillating_beam_2d/Turek_dx_T.csv | 886 -------- validation/oscillating_beam_2d/Turek_dy_T.csv | 928 -------- .../oscillating_beam_l5_dt_005.csv | 2002 +++++++++++++++++ .../plot_oscillating_beam_results.jl | 20 +- validation/validation_util.jl | 14 +- 6 files changed, 2019 insertions(+), 1836 deletions(-) delete mode 100644 validation/oscillating_beam_2d/Turek_dx_T.csv delete mode 100644 validation/oscillating_beam_2d/Turek_dy_T.csv create mode 100644 validation/oscillating_beam_2d/oscillating_beam_l5_dt_005.csv diff --git a/validation/oscillating_beam_2d/README.md b/validation/oscillating_beam_2d/README.md index a20e58e0e..b22ddbd8c 100644 --- a/validation/oscillating_beam_2d/README.md +++ b/validation/oscillating_beam_2d/README.md @@ -4,5 +4,6 @@ The following files are provided here: 2) Comparison with reference: compare_reference_oscillating_beam_results.jl 3) Comparison with TrixiParticles.jl and literature reference: plot_oscillating_beam_results.jl 4) TrixiParticles.jl reference files: validation_reference_oscillating_beam_2d_[9, 21, 35].j (9 is the default CI resolution, note that resolution 21 takes about 30-50 minutes while 35 takes about 4-6 hours) -5) Extracted results from Turek S , Hron J. "Proposal for numerical benchmarking of fluid-structure interaction between an elastic object and laminar incompressible flow." - In: Fluid-structure interaction. Springer; 2006. p. 371–85 . https://doi.org/10.1007/3-540-34596-5_15: Turek_dx_T.csv and Turek_dy_T.csv \ No newline at end of file +5) Reference results obtained from here: + https://wwwold.mathematik.tu-dortmund.de/~featflow/en/benchmarks/cfdbenchmarking/fsi_benchmark/fsi_tests/fsi_csm_tests.html + diff --git a/validation/oscillating_beam_2d/Turek_dx_T.csv b/validation/oscillating_beam_2d/Turek_dx_T.csv deleted file mode 100644 index ddf73f253..000000000 --- a/validation/oscillating_beam_2d/Turek_dx_T.csv +++ /dev/null @@ -1,886 +0,0 @@ -time,displacement -0.0839,-0.000439 -0.095,-0.0007051 -0.1062,-0.0009808 -0.1173,-0.0012802 -0.1284,-0.0016337 -0.1396,-0.0021294 -0.1507,-0.0027992 -0.1619,-0.0033892 -0.173,-0.0039735 -0.1842,-0.0049021 -0.1953,-0.0062478 -0.2065,-0.0069126 -0.2176,-0.0074702 -0.2288,-0.0083288 -0.2399,-0.0096078 -0.2511,-0.0107608 -0.2622,-0.0118011 -0.2734,-0.0143095 -0.2845,-0.0153067 -0.2957,-0.0164922 -0.3068,-0.0176331 -0.318,-0.0187838 -0.3291,-0.0199336 -0.3403,-0.0210842 -0.3514,-0.0222159 -0.3626,-0.0234403 -0.3737,-0.0240734 -0.3849,-0.0246381 -0.396,-0.0255459 -0.4072,-0.0269703 -0.4183,-0.0275897 -0.4295,-0.028126 -0.4406,-0.0292083 -0.4517,-0.029067 -0.4629,-0.0288189 -0.474,-0.0284341 -0.4852,-0.0277854 -0.4963,-0.0267022 -0.5075,-0.0252161 -0.5186,-0.0245501 -0.5298,-0.0239743 -0.5409,-0.0228173 -0.5521,-0.0214747 -0.5632,-0.0201791 -0.5744,-0.0188809 -0.5855,-0.0175818 -0.5967,-0.0162831 -0.6078,-0.014985 -0.619,-0.0136835 -0.6301,-0.0123972 -0.6413,-0.0110465 -0.6524,-0.0099634 -0.6636,-0.0077027 -0.6747,-0.0073983 -0.6859,-0.0059685 -0.697,-0.0044787 -0.7082,-0.0038618 -0.7193,-0.0032249 -0.7305,-0.0023865 -0.7416,-0.0019273 -0.7528,-0.0016266 -0.7639,-0.0013598 -0.775,-0.001088 -0.7862,-0.0002557 -0.7973,-0.0002061 -0.8085,-0.0001724 -0.8196,-0.0001451 -0.8308,-0.0001219 -0.8419,-0.0001023 -0.8531,-8.58e-05 -0.8642,-7.25e-05 -0.8754,-6.22e-05 -0.8865,-5.52e-05 -0.8977,-5.18e-05 -0.9088,-5.23e-05 -0.92,-5.73e-05 -0.9311,-6.76e-05 -0.9423,-8.46e-05 -0.9534,-0.00011 -0.9646,-0.000147 -0.9757,-0.000201 -0.9869,-0.0002785 -0.998,-0.0003901 -1.0092,-0.000556 -1.0203,-0.0008227 -1.0315,-0.0012917 -1.0426,-0.0018736 -1.0538,-0.0024724 -1.0649,-0.0030872 -1.0761,-0.0036668 -1.0872,-0.0041851 -1.0983,-0.0047562 -1.1095,-0.0058715 -1.1206,-0.0066093 -1.1318,-0.007158 -1.1429,-0.0078841 -1.1541,-0.0105106 -1.1652,-0.011535 -1.1764,-0.0127231 -1.1875,-0.0138621 -1.1987,-0.0150143 -1.2098,-0.016163 -1.221,-0.0173126 -1.2321,-0.0184621 -1.2433,-0.0196113 -1.2544,-0.0207606 -1.2656,-0.0219135 -1.2767,-0.0230382 -1.2879,-0.0242817 -1.299,-0.0249261 -1.3102,-0.0254881 -1.3213,-0.0263648 -1.3325,-0.0277982 -1.3436,-0.0284731 -1.3548,-0.0289001 -1.3659,-0.0291098 -1.3771,-0.0290556 -1.3882,-0.0287369 -1.3994,-0.0281813 -1.4105,-0.0272163 -1.4216,-0.0258025 -1.4328,-0.024407 -1.4439,-0.0237266 -1.4551,-0.0231201 -1.4662,-0.021914 -1.4774,-0.0206459 -1.4885,-0.0193482 -1.4997,-0.0180391 -1.5108,-0.0168203 -1.522,-0.0151374 -1.5331,-0.0137718 -1.5443,-0.0113696 -1.5554,-0.0103061 -1.5666,-0.0089368 -1.5777,-0.0077025 -1.5889,-0.0062417 -1.6,-0.0055443 -1.6112,-0.0049466 -1.6223,-0.0037233 -1.6335,-0.0029788 -1.6446,-0.0024004 -1.6558,-0.0017912 -1.6669,-0.0013992 -1.6781,-0.00113 -1.6892,-0.0009167 -1.7004,-0.0007389 -1.7115,-0.0005888 -1.7227,-0.0004622 -1.7338,-0.0003565 -1.7449,-0.0002702 -1.7561,-0.0002019 -1.7672,-0.0001508 -1.7784,-0.0001162 -1.7895,-9.74e-05 -1.8007,-9.36e-05 -1.8118,-0.000103 -1.823,-0.0001237 -1.8341,-0.0001547 -1.8453,-0.0001952 -1.8564,-0.0002446 -1.8676,-0.0003027 -1.8787,-0.0003697 -1.8899,-0.0004458 -1.901,-0.0005319 -1.9122,-0.0006295 -1.9233,-0.0007416 -1.9345,-0.0008748 -1.9456,-0.001046 -1.9568,-0.001306 -1.9679,-0.0020171 -1.9791,-0.002665 -1.9902,-0.0032166 -2.0014,-0.0043437 -2.0125,-0.0050362 -2.0237,-0.0055852 -2.0348,-0.0064951 -2.046,-0.0077743 -2.0571,-0.0088907 -2.0682,-0.0100505 -2.0794,-0.0111971 -2.0905,-0.0123467 -2.1017,-0.0134981 -2.1128,-0.0146409 -2.124,-0.0158114 -2.1351,-0.0169107 -2.1463,-0.0193152 -2.1574,-0.0203926 -2.1686,-0.0215256 -2.1797,-0.0227423 -2.1909,-0.0233422 -2.202,-0.0239155 -2.2132,-0.0250495 -2.2243,-0.0257314 -2.2355,-0.0262795 -2.2466,-0.0273577 -2.2578,-0.0280927 -2.2689,-0.0286081 -2.2801,-0.0291797 -2.2912,-0.0288181 -2.3024,-0.028416 -2.3135,-0.0279446 -2.3247,-0.0273097 -2.3358,-0.0261996 -2.347,-0.0248466 -2.3581,-0.0235574 -2.3693,-0.022257 -2.3804,-0.0209585 -2.3915,-0.0196598 -2.4027,-0.0183611 -2.4138,-0.0170624 -2.425,-0.0157637 -2.4361,-0.014465 -2.4473,-0.0131663 -2.4584,-0.0118677 -2.4696,-0.0105684 -2.4807,-0.0092722 -2.4919,-0.0079638 -2.503,-0.0067013 -2.5142,-0.0052929 -2.5253,-0.0045343 -2.5365,-0.003952 -2.5476,-0.0033575 -2.5588,-0.0027096 -2.5699,-0.002028 -2.5811,-0.0014874 -2.5922,-0.0010728 -2.6034,-0.0007615 -2.6145,-0.000531 -2.6257,-0.0003625 -2.6368,-0.0002429 -2.648,-0.0001617 -2.6591,-0.0001072 -2.6703,-7.18e-05 -2.6814,-5.1e-05 -2.6926,-4.14e-05 -2.7037,-4.1e-05 -2.7148,-4.78e-05 -2.726,-6.05e-05 -2.7371,-7.79e-05 -2.7483,-9.91e-05 -2.7594,-0.0001238 -2.7706,-0.0001532 -2.7817,-0.0001888 -2.7929,-0.0002327 -2.804,-0.0002876 -2.8152,-0.0003581 -2.8263,-0.0004517 -2.8375,-0.0005842 -2.8486,-0.0007921 -2.8598,-0.0011481 -2.8709,-0.0017583 -2.8821,-0.0023846 -2.8932,-0.0029514 -2.9044,-0.0035238 -2.9155,-0.0040917 -2.9267,-0.0046359 -2.9378,-0.0052333 -2.949,-0.0062103 -2.9601,-0.007445 -2.9713,-0.0085715 -2.9824,-0.0097274 -2.9936,-0.0108775 -3.0047,-0.0120181 -3.0159,-0.0132 -3.027,-0.0142613 -3.0381,-0.0167407 -3.0493,-0.0177539 -3.0604,-0.018925 -3.0716,-0.0200712 -3.0827,-0.0212224 -3.0939,-0.0223515 -3.105,-0.023584 -3.1162,-0.024202 -3.1273,-0.0247683 -3.1385,-0.0258372 -3.1496,-0.0266449 -3.1608,-0.0271859 -3.1719,-0.0277141 -3.1831,-0.0282985 -3.1942,-0.0290834 -3.2054,-0.0289702 -3.2165,-0.0285759 -3.2277,-0.028079 -3.2388,-0.027446 -3.25,-0.0263731 -3.2611,-0.0249999 -3.2723,-0.0237138 -3.2834,-0.0224127 -3.2946,-0.0211144 -3.3057,-0.0198157 -3.3169,-0.0185169 -3.328,-0.0172182 -3.3392,-0.0159195 -3.3503,-0.0146208 -3.3614,-0.0133222 -3.3726,-0.0120234 -3.3837,-0.0107251 -3.3949,-0.0094247 -3.406,-0.0081323 -3.4172,-0.0068106 -3.4283,-0.0055974 -3.4395,-0.0041126 -3.4506,-0.0036172 -3.4618,-0.0032343 -3.4729,-0.0028342 -3.4841,-0.0022638 -3.4952,-0.0015926 -3.5064,-0.0011218 -3.5175,-0.0007924 -3.5287,-0.0005566 -3.5398,-0.0003899 -3.551,-0.0002758 -3.5621,-0.0001979 -3.5733,-0.0001449 -3.5844,-0.0001099 -3.5956,-8.8e-05 -3.6067,-7.58e-05 -3.6179,-7.08e-05 -3.629,-7.1e-05 -3.6402,-7.53e-05 -3.6513,-8.38e-05 -3.6625,-9.72e-05 -3.6736,-0.000116 -3.6847,-0.0001411 -3.6959,-0.000174 -3.707,-0.0002163 -3.7182,-0.0002708 -3.7293,-0.0003422 -3.7405,-0.000439 -3.7516,-0.000578 -3.7628,-0.0007844 -3.7739,-0.0011067 -3.7851,-0.0016216 -3.7962,-0.0022305 -3.8074,-0.0028113 -3.8185,-0.0033459 -3.8297,-0.0039515 -3.8408,-0.005095 -3.852,-0.0057934 -3.8631,-0.0063441 -3.8743,-0.007198 -3.8854,-0.0084619 -3.8966,-0.0095806 -3.9077,-0.0107421 -3.9189,-0.0118794 -3.93,-0.0130627 -3.9412,-0.0141219 -3.9523,-0.0166037 -3.9635,-0.0176152 -3.9746,-0.0187873 -3.9858,-0.0199333 -3.9969,-0.0210842 -4.008,-0.0222145 -4.0192,-0.0234436 -4.0303,-0.0240595 -4.0415,-0.0246267 -4.0526,-0.0257016 -4.0638,-0.0265011 -4.0749,-0.0270422 -4.0861,-0.0275759 -4.0972,-0.0281653 -4.1084,-0.0289085 -4.1195,-0.0289749 -4.1307,-0.0286216 -4.1418,-0.0281299 -4.153,-0.0274953 -4.1641,-0.0264291 -4.1753,-0.0250513 -4.1864,-0.0237659 -4.1976,-0.0224647 -4.2087,-0.0211663 -4.2199,-0.0198676 -4.231,-0.0185689 -4.2422,-0.0172702 -4.2533,-0.0159715 -4.2645,-0.0146728 -4.2756,-0.0133741 -4.2868,-0.0120754 -4.2979,-0.0107768 -4.3091,-0.0094776 -4.3202,-0.0081808 -4.3313,-0.0068749 -4.3425,-0.0056022 -4.3536,-0.0042296 -4.3648,-0.0034327 -4.3759,-0.0028862 -4.3871,-0.0024425 -4.3982,-0.0020373 -4.4094,-0.0016339 -4.4205,-0.0012246 -4.4317,-0.0008773 -4.4428,-0.00062 -4.454,-0.000439 -4.4651,-0.0003136 -4.4763,-0.0002241 -4.4874,-0.000159 -4.4986,-0.0001117 -4.5097,-7.79e-05 -4.5209,-5.48e-05 -4.532,-4.02e-05 -4.5432,-3.27e-05 -4.5543,-3.1e-05 -4.5655,-3.51e-05 -4.5766,-4.52e-05 -4.5878,-6.18e-05 -4.5989,-8.58e-05 -4.6101,-0.0001184 -4.6212,-0.0001612 -4.6324,-0.0002172 -4.6435,-0.0002908 -4.6546,-0.0003905 -4.6658,-0.0005332 -4.6769,-0.0007434 -4.6881,-0.0010675 -4.6992,-0.001575 -4.7104,-0.0021793 -4.7215,-0.0027635 -4.7327,-0.0032991 -4.7438,-0.0039046 -4.755,-0.0050496 -4.7661,-0.0057421 -4.7773,-0.0062932 -4.7884,-0.0071788 -4.7996,-0.0084656 -4.8107,-0.0095795 -4.8219,-0.0107424 -4.833,-0.0118796 -4.8442,-0.0130617 -4.8553,-0.0141245 -4.8665,-0.0165533 -4.8776,-0.0175698 -4.8888,-0.0187413 -4.8999,-0.0198874 -4.9111,-0.0210381 -4.9222,-0.0221688 -4.9334,-0.0233969 -4.9445,-0.0240115 -4.9557,-0.024579 -4.9668,-0.0256616 -4.9779,-0.0264454 -4.9891,-0.0269888 -5.0002,-0.0275503 -5.0114,-0.0281536 -5.0225,-0.0287217 -5.0337,-0.0290495 -5.0448,-0.0286864 -5.056,-0.0280882 -5.0671,-0.027473 -5.0783,-0.0264521 -5.0894,-0.0250484 -5.1006,-0.0237665 -5.1117,-0.0224646 -5.1229,-0.0211663 -5.134,-0.0198676 -5.1452,-0.0185691 -5.1563,-0.0172685 -5.1675,-0.0159812 -5.1786,-0.0147301 -5.1898,-0.0134245 -5.2009,-0.0121279 -5.2121,-0.0108278 -5.2232,-0.0095329 -5.2344,-0.0082199 -5.2455,-0.0069748 -5.2567,-0.0055203 -5.2678,-0.0048541 -5.279,-0.0042513 -5.2901,-0.0029614 -5.3012,-0.0024678 -5.3124,-0.0020936 -5.3235,-0.0016873 -5.3347,-0.0011703 -5.3458,-0.0007938 -5.357,-0.0005753 -5.3681,-0.000439 -5.3793,-0.0003483 -5.3904,-0.0002827 -5.4016,-0.0002329 -5.4127,-0.0001943 -5.4239,-0.0001641 -5.435,-0.0001406 -5.4462,-0.0001225 -5.4573,-0.000109 -5.4685,-9.93e-05 -5.4796,-9.29e-05 -5.4908,-8.93e-05 -5.5019,-8.89e-05 -5.5131,-9.39e-05 -5.5242,-0.0001076 -5.5354,-0.0001349 -5.5465,-0.0001832 -5.5577,-0.0002634 -5.5688,-0.0003906 -5.58,-0.0005817 -5.5911,-0.0008437 -5.6023,-0.0011792 -5.6134,-0.0015843 -5.6245,-0.0020498 -5.6357,-0.0026771 -5.6468,-0.003834 -5.658,-0.0045576 -5.6691,-0.005096 -5.6803,-0.0056204 -5.6914,-0.0062177 -5.7026,-0.0071731 -5.7137,-0.0084115 -5.7249,-0.0095362 -5.736,-0.0106957 -5.7472,-0.0118335 -5.7583,-0.0130168 -5.7695,-0.0140754 -5.7806,-0.0165582 -5.7918,-0.0175688 -5.8029,-0.0187419 -5.8141,-0.0198869 -5.8252,-0.0210363 -5.8364,-0.0221892 -5.8475,-0.0233175 -5.8587,-0.0245493 -5.8698,-0.025249 -5.881,-0.0258016 -5.8921,-0.0263581 -5.9033,-0.0269583 -5.9144,-0.0275973 -5.9256,-0.028192 -5.9367,-0.0286331 -5.9478,-0.0288755 -5.959,-0.028891 -5.9701,-0.0286232 -5.9813,-0.0276999 -5.9924,-0.0263244 -6.0036,-0.0249185 -6.0147,-0.0242266 -6.0259,-0.0236243 -6.037,-0.0224456 -6.0482,-0.0211125 -6.0593,-0.0198159 -6.0705,-0.0185087 -6.0816,-0.0172781 -6.0928,-0.015639 -6.1039,-0.0142775 -6.1151,-0.0118364 -6.1262,-0.0107716 -6.1374,-0.0094163 -6.1485,-0.0081225 -6.1597,-0.006856 -6.1708,-0.0054484 -6.182,-0.0046811 -6.1931,-0.0041006 -6.2043,-0.003522 -6.2154,-0.0028678 -6.2266,-0.0021055 -6.2377,-0.001584 -6.2489,-0.0012274 -6.26,-0.0009482 -6.2711,-0.0007214 -6.2823,-0.0005369 -6.2934,-0.0003899 -6.3046,-0.0002769 -6.3157,-0.0001921 -6.3269,-0.0001299 -6.338,-8.61e-05 -6.3492,-5.7e-05 -6.3603,-3.99e-05 -6.3715,-3.25e-05 -6.3826,-3.28e-05 -6.3938,-3.96e-05 -6.4049,-5.31e-05 -6.4161,-7.38e-05 -6.4272,-0.0001022 -6.4384,-0.0001398 -6.4495,-0.0001883 -6.4607,-0.0002506 -6.4718,-0.0003312 -6.483,-0.000439 -6.4941,-0.0005908 -6.5053,-0.0008098 -6.5164,-0.0011361 -6.5276,-0.0016239 -6.5387,-0.0022167 -6.5499,-0.0028101 -6.561,-0.003349 -6.5722,-0.0039523 -6.5833,-0.0050954 -6.5944,-0.0057897 -6.6056,-0.0063406 -6.6167,-0.0072241 -6.6279,-0.0085118 -6.639,-0.0096254 -6.6502,-0.0107884 -6.6613,-0.0119253 -6.6725,-0.0131085 -6.6836,-0.0141683 -6.6948,-0.0166494 -6.7059,-0.0176615 -6.7171,-0.0188332 -6.7282,-0.0199793 -6.7394,-0.0211302 -6.7505,-0.0222608 -6.7617,-0.0234888 -6.7728,-0.024115 -6.784,-0.0246802 -6.7951,-0.0256715 -6.8063,-0.0265613 -6.8174,-0.0270764 -6.8286,-0.0274741 -6.8397,-0.0278387 -6.8509,-0.0282329 -6.862,-0.0288952 -6.8732,-0.0285613 -6.8843,-0.0281663 -6.8955,-0.0276935 -6.9066,-0.0270543 -6.9177,-0.02594 -6.9289,-0.024587 -6.94,-0.0232976 -6.9512,-0.0219973 -6.9623,-0.0206988 -6.9735,-0.0194001 -6.9846,-0.0181014 -6.9958,-0.0168027 -7.0069,-0.015504 -7.0181,-0.0142052 -7.0292,-0.0129066 -7.0404,-0.0116075 -7.0515,-0.0103107 -7.0627,-0.0090043 -7.0738,-0.0077479 -7.085,-0.0064606 -7.0961,-0.0051929 -7.1073,-0.0038047 -7.1184,-0.0030803 -7.1296,-0.0024977 -7.1407,-0.001932 -7.1519,-0.0015227 -7.163,-0.0012295 -7.1742,-0.0009978 -7.1853,-0.0008047 -7.1965,-0.0006409 -7.2076,-0.0005016 -7.2188,-0.0003839 -7.2299,-0.0002861 -7.241,-0.000207 -7.2522,-0.0001456 -7.2633,-0.0001007 -7.2745,-6.99e-05 -7.2856,-5.09e-05 -7.2968,-4.21e-05 -7.3079,-4.27e-05 -7.3191,-5.17e-05 -7.3302,-6.9e-05 -7.3414,-9.43e-05 -7.3525,-0.000128 -7.3637,-0.0001712 -7.3748,-0.0002264 -7.386,-0.0003004 -7.3971,-0.0004077 -7.4083,-0.0005744 -7.4194,-0.0008237 -7.4306,-0.0011343 -7.4417,-0.0015053 -7.4529,-0.0019967 -7.464,-0.0031193 -7.4752,-0.0038357 -7.4863,-0.0043401 -7.4975,-0.004853 -7.5086,-0.0054613 -7.5198,-0.0064471 -7.5309,-0.0076734 -7.5421,-0.0088017 -7.5532,-0.0099578 -7.5643,-0.0111052 -7.5755,-0.0122554 -7.5866,-0.0134041 -7.5978,-0.0145554 -7.6089,-0.0156993 -7.6201,-0.0168649 -7.6312,-0.0179792 -7.6424,-0.0203132 -7.6535,-0.0214609 -7.6647,-0.0225768 -7.6758,-0.0238059 -7.687,-0.0244878 -7.6981,-0.0250405 -7.7093,-0.0256075 -7.7204,-0.0262086 -7.7316,-0.0268166 -7.7427,-0.0274051 -7.7539,-0.0279602 -7.765,-0.028396 -7.7762,-0.0286199 -7.7873,-0.0285684 -7.7985,-0.0282632 -7.8096,-0.0277289 -7.8208,-0.0265859 -7.8319,-0.0257718 -7.8431,-0.0251847 -7.8542,-0.0240926 -7.8654,-0.0227238 -7.8765,-0.0214131 -7.8876,-0.0201117 -7.8988,-0.0187906 -7.9099,-0.0160828 -7.9211,-0.0149799 -7.9322,-0.0136205 -7.9434,-0.0123387 -7.9545,-0.0110357 -7.9657,-0.0097373 -7.9768,-0.0084416 -7.988,-0.0071307 -7.9991,-0.0058768 -8.0103,-0.0044583 -8.0214,-0.00377 -8.0326,-0.0031668 -8.0437,-0.00237 -8.0549,-0.0018793 -8.066,-0.0015627 -8.0772,-0.0012895 -8.0883,-0.0010201 -8.0995,-0.000689 -8.1106,-0.0002645 -8.1218,-0.0002083 -8.1329,-0.0001735 -8.1441,-0.0001469 -8.1552,-0.0001253 -8.1664,-0.0001078 -8.1775,-9.38e-05 -8.1887,-8.31e-05 -8.1998,-7.59e-05 -8.2109,-7.22e-05 -8.2221,-7.23e-05 -8.2332,-7.67e-05 -8.2444,-8.58e-05 -8.2555,-0.0001006 -8.2667,-0.0001223 -8.2778,-0.000153 -8.289,-0.0001957 -8.3001,-0.0002562 -8.3113,-0.0003408 -8.3224,-0.0004598 -8.3336,-0.0006322 -8.3447,-0.0008985 -8.3559,-0.0013406 -8.367,-0.0019226 -8.3782,-0.0025248 -8.3893,-0.0030666 -8.4005,-0.0036712 -8.4116,-0.0048176 -8.4228,-0.0055053 -8.4339,-0.0060567 -8.4451,-0.0069515 -8.4562,-0.0082351 -8.4674,-0.0093497 -8.4785,-0.0105126 -8.4897,-0.0116491 -8.5008,-0.0128339 -8.512,-0.0138885 -8.5231,-0.0163568 -8.5342,-0.017343 -8.5454,-0.0184935 -8.5565,-0.0207722 -8.5677,-0.0219593 -8.5788,-0.0231583 -8.59,-0.0237815 -8.6011,-0.0243469 -8.6123,-0.0254003 -8.6234,-0.0262602 -8.6346,-0.0267814 -8.6457,-0.0272095 -8.6569,-0.0276029 -8.668,-0.0279914 -8.6792,-0.0284018 -8.6903,-0.0286896 -8.7015,-0.0286562 -8.7126,-0.0284251 -8.7238,-0.0280505 -8.7349,-0.0272511 -8.7461,-0.0257083 -8.7572,-0.0244456 -8.7684,-0.0231392 -8.7795,-0.0218418 -8.7907,-0.0205429 -8.8018,-0.0192442 -8.813,-0.0179455 -8.8241,-0.0166467 -8.8353,-0.0153489 -8.8464,-0.0140458 -8.8575,-0.0127696 -8.8687,-0.0115094 -8.8798,-0.010204 -8.891,-0.0089065 -8.9021,-0.0076091 -8.9133,-0.0063043 -8.9244,-0.0050273 -8.9356,-0.0036692 -8.9467,-0.0028673 -8.9579,-0.0023354 -8.969,-0.0019056 -8.9802,-0.0015054 -8.9913,-0.0010876 -9.0025,-0.0006422 -9.0136,-0.0004224 -9.0248,-0.0003219 -9.0359,-0.000264 -9.0471,-0.0002254 -9.0582,-0.0001983 -9.0694,-0.0001789 -9.0805,-0.0001651 -9.0917,-0.0001557 -9.1028,-0.0001496 -9.114,-0.0001463 -9.1251,-0.0001453 -9.1363,-0.0001468 -9.1474,-0.000151 -9.1586,-0.0001582 -9.1697,-0.0001691 -9.1808,-0.0001845 -9.192,-0.0002055 -9.2031,-0.0002341 -9.2143,-0.0002738 -9.2254,-0.0003325 -9.2366,-0.0004259 -9.2477,-0.0005914 -9.2589,-0.0009161 -9.27,-0.0014462 -9.2812,-0.0020909 -9.2923,-0.0027131 -9.3035,-0.0032853 -9.3146,-0.0038319 -9.3258,-0.0044355 -9.3369,-0.0053993 -9.3481,-0.0067609 -9.3592,-0.0074334 -9.3704,-0.0079904 -9.3815,-0.0088309 -9.3927,-0.0101147 -9.4038,-0.0112655 -9.415,-0.0123115 -9.4261,-0.0148092 -9.4373,-0.0158276 -9.4484,-0.0169619 -9.4596,-0.0193561 -9.4707,-0.020439 -9.4819,-0.0215872 -9.493,-0.0227251 -9.5041,-0.0239427 -9.5153,-0.0246353 -9.5264,-0.0251854 -9.5376,-0.0257374 -9.5487,-0.0263377 -9.5599,-0.0270073 -9.571,-0.0275541 -9.5822,-0.0279382 -9.5933,-0.0282407 -9.6045,-0.0284818 -9.6156,-0.0286253 -9.6268,-0.0283863 -9.6379,-0.0277841 -9.6491,-0.0271682 -9.6602,-0.0261407 -9.6714,-0.0247374 -9.6825,-0.0234542 -9.6937,-0.022154 -9.7048,-0.0208535 -9.716,-0.0196057 -9.7271,-0.0183462 -9.7383,-0.0168067 -9.7494,-0.015457 -9.7606,-0.0129279 -9.7717,-0.0118652 -9.7829,-0.0105042 -9.794,-0.0092218 -9.8051,-0.0079169 -9.8163,-0.006628 -9.8274,-0.0053366 -9.8386,-0.0044901 -9.8497,-0.0038512 -9.8609,-0.0031597 -9.872,-0.0019807 -9.8832,-0.0015927 -9.8943,-0.0013343 -9.9055,-0.0011138 -9.9166,-0.0009115 -9.9278,-0.0007192 -9.9389,-0.0005319 \ No newline at end of file diff --git a/validation/oscillating_beam_2d/Turek_dy_T.csv b/validation/oscillating_beam_2d/Turek_dy_T.csv deleted file mode 100644 index aad17832c..000000000 --- a/validation/oscillating_beam_2d/Turek_dy_T.csv +++ /dev/null @@ -1,928 +0,0 @@ -time,displacement -0.0186,-0.002784 -0.0293,0.000333 -0.04,0.001606 -0.0508,0.001085 -0.0615,-0.00069 -0.0722,-0.003322 -0.0829,-0.006564 -0.0937,-0.010259 -0.1044,-0.014302 -0.1151,-0.018621 -0.1258,-0.023166 -0.1366,-0.027898 -0.1473,-0.032779 -0.158,-0.037749 -0.1688,-0.042758 -0.1795,-0.047769 -0.1902,-0.052754 -0.2009,-0.05769 -0.2117,-0.062558 -0.2224,-0.067341 -0.2331,-0.072027 -0.2438,-0.076601 -0.2546,-0.081054 -0.2653,-0.085375 -0.276,-0.089553 -0.2868,-0.093579 -0.2975,-0.097445 -0.3082,-0.10114 -0.3189,-0.104657 -0.3297,-0.107986 -0.3404,-0.111119 -0.3511,-0.114045 -0.3618,-0.116756 -0.3726,-0.119242 -0.3833,-0.121493 -0.394,-0.123499 -0.4048,-0.125247 -0.4155,-0.126728 -0.4262,-0.127928 -0.4369,-0.128836 -0.4477,-0.129436 -0.4584,-0.129715 -0.4691,-0.129656 -0.4799,-0.129244 -0.4906,-0.12846 -0.5013,-0.127284 -0.512,-0.125702 -0.5228,-0.123728 -0.5335,-0.12138 -0.5442,-0.118682 -0.5549,-0.115655 -0.5657,-0.112324 -0.5764,-0.108713 -0.5871,-0.104846 -0.5979,-0.100751 -0.6086,-0.096454 -0.6193,-0.091981 -0.63,-0.087361 -0.6408,-0.082621 -0.6515,-0.077789 -0.6622,-0.072892 -0.6729,-0.06796 -0.6837,-0.06302 -0.6944,-0.058099 -0.7051,-0.053224 -0.7159,-0.048423 -0.7266,-0.043721 -0.7373,-0.039144 -0.748,-0.034717 -0.7588,-0.030463 -0.7695,-0.026407 -0.7802,-0.022569 -0.7909,-0.018971 -0.8017,-0.015634 -0.8124,-0.012576 -0.8231,-0.009816 -0.8339,-0.007371 -0.8446,-0.005256 -0.8553,-0.003486 -0.866,-0.002076 -0.8768,-0.001038 -0.8875,-0.000384 -0.8982,-0.000124 -0.9089,-0.000268 -0.9197,-0.000819 -0.9304,-0.001758 -0.9411,-0.003055 -0.9519,-0.004685 -0.9626,-0.006622 -0.9733,-0.008845 -0.984,-0.01133 -0.9948,-0.014055 -1.0055,-0.017002 -1.0162,-0.02015 -1.0269,-0.023481 -1.0377,-0.026976 -1.0484,-0.030618 -1.0591,-0.03439 -1.0699,-0.038275 -1.0806,-0.042257 -1.0913,-0.046321 -1.102,-0.05045 -1.1128,-0.05463 -1.1235,-0.058845 -1.1342,-0.06308 -1.1449,-0.06732 -1.1557,-0.071551 -1.1664,-0.075756 -1.1771,-0.079922 -1.1879,-0.084034 -1.1986,-0.088075 -1.2093,-0.092031 -1.22,-0.095886 -1.2308,-0.099623 -1.2415,-0.103228 -1.2522,-0.106683 -1.2629,-0.10997 -1.2737,-0.113074 -1.2844,-0.115974 -1.2951,-0.118652 -1.3059,-0.121089 -1.3166,-0.123265 -1.3273,-0.125157 -1.338,-0.126744 -1.3488,-0.128001 -1.3595,-0.128905 -1.3702,-0.129428 -1.3809,-0.129544 -1.3917,-0.129228 -1.4024,-0.128486 -1.4131,-0.12733 -1.4239,-0.125775 -1.4346,-0.123837 -1.4453,-0.121533 -1.456,-0.118881 -1.4668,-0.115901 -1.4775,-0.112614 -1.4882,-0.109042 -1.4989,-0.10521 -1.5097,-0.101142 -1.5204,-0.096864 -1.5311,-0.092401 -1.5419,-0.087781 -1.5526,-0.083033 -1.5633,-0.078184 -1.574,-0.073264 -1.5848,-0.068301 -1.5955,-0.063324 -1.6062,-0.058362 -1.6169,-0.053444 -1.6277,-0.048597 -1.6384,-0.04385 -1.6491,-0.039229 -1.6599,-0.03476 -1.6706,-0.030469 -1.6813,-0.02638 -1.692,-0.022516 -1.7028,-0.018898 -1.7135,-0.015548 -1.7242,-0.012485 -1.7349,-0.009728 -1.7457,-0.007292 -1.7564,-0.005193 -1.7671,-0.003447 -1.7779,-0.002065 -1.7886,-0.00106 -1.7993,-0.000441 -1.81,-0.000218 -1.8208,-0.000395 -1.8315,-0.000953 -1.8422,-0.001864 -1.8529,-0.003103 -1.8637,-0.004648 -1.8744,-0.006475 -1.8851,-0.008565 -1.8959,-0.010897 -1.9066,-0.013454 -1.9173,-0.016216 -1.928,-0.019167 -1.9388,-0.022291 -1.9495,-0.025572 -1.9602,-0.028996 -1.9709,-0.032546 -1.9817,-0.03621 -1.9924,-0.039972 -2.0031,-0.043821 -2.0139,-0.047741 -2.0246,-0.05172 -2.0353,-0.055745 -2.046,-0.059802 -2.0568,-0.06388 -2.0675,-0.067964 -2.0782,-0.072042 -2.0889,-0.076102 -2.0997,-0.080128 -2.1104,-0.084109 -2.1211,-0.088031 -2.1319,-0.091878 -2.1426,-0.095638 -2.1533,-0.099296 -2.164,-0.102835 -2.1748,-0.10624 -2.1855,-0.109495 -2.1962,-0.112583 -2.2069,-0.115484 -2.2177,-0.118181 -2.2284,-0.120653 -2.2391,-0.122878 -2.2499,-0.124834 -2.2606,-0.126497 -2.2713,-0.12784 -2.282,-0.128834 -2.2928,-0.12945 -2.3035,-0.129654 -2.3142,-0.129417 -2.3249,-0.128737 -2.3357,-0.127622 -2.3464,-0.126081 -2.3571,-0.124126 -2.3679,-0.121772 -2.3786,-0.119034 -2.3893,-0.115932 -2.4,-0.112486 -2.4108,-0.108719 -2.4215,-0.104657 -2.4322,-0.100327 -2.4429,-0.09576 -2.4537,-0.090986 -2.4644,-0.086038 -2.4751,-0.080951 -2.4859,-0.07576 -2.4966,-0.070501 -2.5073,-0.06521 -2.518,-0.059923 -2.5288,-0.054676 -2.5395,-0.049505 -2.5502,-0.044443 -2.5609,-0.039525 -2.5717,-0.03478 -2.5824,-0.030239 -2.5931,-0.02593 -2.6039,-0.021879 -2.6146,-0.018109 -2.6253,-0.014641 -2.636,-0.011495 -2.6468,-0.008687 -2.6575,-0.006234 -2.6682,-0.004146 -2.6789,-0.002436 -2.6897,-0.001112 -2.7004,-0.000181 -2.7111,0.000351 -2.7219,0.000481 -2.7326,0.000215 -2.7433,-0.000417 -2.754,-0.001387 -2.7648,-0.002666 -2.7755,-0.004231 -2.7862,-0.006059 -2.7969,-0.008129 -2.8077,-0.010421 -2.8184,-0.012918 -2.8291,-0.015601 -2.8399,-0.018456 -2.8506,-0.021467 -2.8613,-0.024619 -2.872,-0.0279 -2.8828,-0.031294 -2.8935,-0.034791 -2.9042,-0.038378 -2.9149,-0.042043 -2.9257,-0.045774 -2.9364,-0.04956 -2.9471,-0.053391 -2.9579,-0.057254 -2.9686,-0.06114 -2.9793,-0.065037 -2.99,-0.068936 -3.0008,-0.072824 -3.0115,-0.076691 -3.0222,-0.080527 -3.0329,-0.084319 -3.0437,-0.088056 -3.0544,-0.091727 -3.0651,-0.09532 -3.0759,-0.098821 -3.0866,-0.102218 -3.0973,-0.105498 -3.108,-0.108645 -3.1188,-0.111644 -3.1295,-0.114481 -3.1402,-0.117137 -3.1509,-0.119595 -3.1617,-0.121834 -3.1724,-0.123835 -3.1831,-0.125573 -3.1939,-0.127025 -3.2046,-0.128163 -3.2153,-0.128958 -3.226,-0.129374 -3.2368,-0.129378 -3.2475,-0.128948 -3.2582,-0.128084 -3.2689,-0.126791 -3.2797,-0.125072 -3.2904,-0.122938 -3.3011,-0.120396 -3.3119,-0.117462 -3.3226,-0.114151 -3.3333,-0.110483 -3.344,-0.10648 -3.3548,-0.102168 -3.3655,-0.097577 -3.3762,-0.092737 -3.3869,-0.087685 -3.3977,-0.082457 -3.4084,-0.077093 -3.4191,-0.071633 -3.4299,-0.066121 -3.4406,-0.060598 -3.4513,-0.055109 -3.462,-0.049694 -3.4728,-0.044396 -3.4835,-0.039253 -3.4942,-0.034305 -3.5049,-0.029585 -3.5157,-0.025126 -3.5264,-0.020958 -3.5371,-0.017106 -3.5479,-0.013594 -3.5586,-0.010443 -3.5693,-0.007668 -3.58,-0.005284 -3.5908,-0.003301 -3.6015,-0.001729 -3.6122,-0.000574 -3.6229,0.000162 -3.6337,0.000475 -3.6444,0.000369 -3.6551,-0.000131 -3.6659,-0.000989 -3.6766,-0.002175 -3.6873,-0.00366 -3.698,-0.005418 -3.7088,-0.007426 -3.7195,-0.009662 -3.7302,-0.012107 -3.7409,-0.014743 -3.7517,-0.017551 -3.7624,-0.020517 -3.7731,-0.023624 -3.7839,-0.02686 -3.7946,-0.03021 -3.8053,-0.033662 -3.816,-0.037202 -3.8268,-0.04082 -3.8375,-0.044504 -3.8482,-0.048243 -3.8589,-0.052025 -3.8697,-0.055841 -3.8804,-0.05968 -3.8911,-0.063531 -3.9019,-0.067385 -3.9126,-0.07123 -3.9233,-0.075057 -3.934,-0.078856 -3.9448,-0.082615 -3.9555,-0.086325 -3.9662,-0.089974 -3.9769,-0.093551 -3.9877,-0.097045 -3.9984,-0.100444 -4.0091,-0.103736 -4.0199,-0.106907 -4.0306,-0.109944 -4.0413,-0.112834 -4.052,-0.11556 -4.0628,-0.118107 -4.0735,-0.120458 -4.0842,-0.122594 -4.0949,-0.124496 -4.1057,-0.126141 -4.1164,-0.127508 -4.1271,-0.12857 -4.1379,-0.129299 -4.1486,-0.129664 -4.1593,-0.129631 -4.17,-0.129185 -4.1808,-0.128327 -4.1915,-0.12706 -4.2022,-0.125389 -4.2129,-0.12332 -4.2237,-0.120864 -4.2344,-0.118033 -4.2451,-0.114839 -4.2559,-0.111301 -4.2666,-0.107439 -4.2773,-0.103275 -4.288,-0.098835 -4.2988,-0.094147 -4.3095,-0.089242 -4.3202,-0.084155 -4.3309,-0.07892 -4.3417,-0.073575 -4.3524,-0.06816 -4.3631,-0.062714 -4.3739,-0.057279 -4.3846,-0.051894 -4.3953,-0.0466 -4.406,-0.041437 -4.4168,-0.036442 -4.4275,-0.031652 -4.4382,-0.027101 -4.449,-0.02282 -4.4597,-0.018839 -4.4704,-0.015183 -4.4811,-0.011876 -4.4919,-0.008938 -4.5026,-0.006387 -4.5133,-0.004237 -4.524,-0.0025 -4.5348,-0.001186 -4.5455,-0.000301 -4.5562,0.000151 -4.567,0.000166 -4.5777,-0.000237 -4.5884,-0.001022 -4.5991,-0.002156 -4.6099,-0.00361 -4.6206,-0.005357 -4.6313,-0.007371 -4.642,-0.009631 -4.6528,-0.012114 -4.6635,-0.0148 -4.6742,-0.017673 -4.685,-0.020714 -4.6957,-0.023906 -4.7064,-0.027235 -4.7171,-0.030686 -4.7279,-0.034245 -4.7386,-0.037898 -4.7493,-0.041632 -4.76,-0.045435 -4.7708,-0.049294 -4.7815,-0.053198 -4.7922,-0.057135 -4.803,-0.061092 -4.8137,-0.065059 -4.8244,-0.069024 -4.8351,-0.072975 -4.8459,-0.076902 -4.8566,-0.080792 -4.8673,-0.084633 -4.878,-0.088414 -4.8888,-0.092123 -4.8995,-0.095746 -4.9102,-0.099271 -4.921,-0.102684 -4.9317,-0.105971 -4.9424,-0.109117 -4.9531,-0.112108 -4.9639,-0.114926 -4.9746,-0.117555 -4.9853,-0.119975 -4.996,-0.122168 -5.0068,-0.124112 -5.0175,-0.125784 -5.0282,-0.12716 -5.039,-0.128211 -5.0497,-0.12891 -5.0604,-0.129222 -5.0711,-0.129114 -5.0819,-0.128575 -5.0926,-0.127608 -5.1033,-0.126219 -5.114,-0.124416 -5.1248,-0.122206 -5.1355,-0.119604 -5.1462,-0.116623 -5.157,-0.11328 -5.1677,-0.109596 -5.1784,-0.105592 -5.1891,-0.101295 -5.1999,-0.096733 -5.2106,-0.091936 -5.2213,-0.086937 -5.232,-0.081771 -5.2428,-0.076476 -5.2535,-0.071089 -5.2642,-0.06565 -5.275,-0.060199 -5.2857,-0.054778 -5.2964,-0.049424 -5.3071,-0.044179 -5.3179,-0.039079 -5.3286,-0.034163 -5.3393,-0.029464 -5.35,-0.025014 -5.3608,-0.020845 -5.3715,-0.016983 -5.3822,-0.013453 -5.393,-0.010278 -5.4037,-0.007476 -5.4144,-0.005065 -5.4251,-0.003057 -5.4359,-0.001465 -5.4466,-0.000297 -5.4573,0.00044 -5.468,0.000741 -5.4788,0.000607 -5.4895,6.4e-05 -5.5002,-0.000852 -5.511,-0.00211 -5.5217,-0.003681 -5.5324,-0.005539 -5.5431,-0.007658 -5.5539,-0.010018 -5.5646,-0.012597 -5.5753,-0.015374 -5.586,-0.018333 -5.5968,-0.021456 -5.6075,-0.024727 -5.6182,-0.028129 -5.629,-0.031649 -5.6397,-0.035272 -5.6504,-0.038984 -5.6611,-0.042773 -5.6719,-0.046625 -5.6826,-0.050528 -5.6933,-0.05447 -5.704,-0.058439 -5.7148,-0.062423 -5.7255,-0.06641 -5.7362,-0.07039 -5.747,-0.074349 -5.7577,-0.078276 -5.7684,-0.08216 -5.7791,-0.085989 -5.7899,-0.089749 -5.8006,-0.09343 -5.8113,-0.097018 -5.822,-0.100501 -5.8328,-0.103864 -5.8435,-0.107093 -5.8542,-0.110175 -5.865,-0.113093 -5.8757,-0.115832 -5.8864,-0.118374 -5.8971,-0.120703 -5.9079,-0.122797 -5.9186,-0.124638 -5.9293,-0.126204 -5.94,-0.12747 -5.9508,-0.128411 -5.9615,-0.129 -5.9722,-0.129206 -5.983,-0.129002 -5.9937,-0.128387 -6.0044,-0.127366 -6.0151,-0.125946 -6.0259,-0.124137 -6.0366,-0.121951 -6.0473,-0.119399 -6.058,-0.116498 -6.0688,-0.113265 -6.0795,-0.109719 -6.0902,-0.10588 -6.101,-0.101774 -6.1117,-0.097425 -6.1224,-0.09286 -6.1331,-0.088109 -6.1439,-0.083202 -6.1546,-0.07817 -6.1653,-0.073048 -6.176,-0.067867 -6.1868,-0.062663 -6.1975,-0.05747 -6.2082,-0.052322 -6.219,-0.047252 -6.2297,-0.042295 -6.2404,-0.037481 -6.2511,-0.032842 -6.2619,-0.028407 -6.2726,-0.024205 -6.2833,-0.02026 -6.294,-0.016596 -6.3048,-0.013236 -6.3155,-0.0102 -6.3262,-0.007505 -6.337,-0.005166 -6.3477,-0.003199 -6.3584,-0.001613 -6.3691,-0.000419 -6.3799,0.000375 -6.3906,0.000762 -6.4013,0.000739 -6.412,0.000324 -6.4228,-0.000454 -6.4335,-0.001566 -6.4442,-0.002986 -6.455,-0.004689 -6.4657,-0.006654 -6.4764,-0.008858 -6.4871,-0.011283 -6.4979,-0.013911 -6.5086,-0.016725 -6.5193,-0.019707 -6.53,-0.022843 -6.5408,-0.026118 -6.5515,-0.029517 -6.5622,-0.033028 -6.573,-0.036637 -6.5837,-0.040331 -6.5944,-0.044099 -6.6051,-0.047927 -6.6159,-0.051805 -6.6266,-0.05572 -6.6373,-0.05966 -6.648,-0.063616 -6.6588,-0.067574 -6.6695,-0.071523 -6.6802,-0.075453 -6.691,-0.079351 -6.7017,-0.083205 -6.7124,-0.087004 -6.7231,-0.090734 -6.7339,-0.094384 -6.7446,-0.09794 -6.7553,-0.101389 -6.766,-0.104717 -6.7768,-0.107908 -6.7875,-0.110947 -6.7982,-0.113819 -6.809,-0.116505 -6.8197,-0.118988 -6.8304,-0.121248 -6.8411,-0.123264 -6.8519,-0.125012 -6.8626,-0.12647 -6.8733,-0.127609 -6.884,-0.128402 -6.8948,-0.128816 -6.9055,-0.128816 -6.9162,-0.128385 -6.927,-0.127525 -6.9377,-0.126242 -6.9484,-0.124543 -6.9591,-0.122437 -6.9699,-0.119935 -6.9806,-0.117053 -6.9913,-0.113806 -7.002,-0.110214 -7.0128,-0.106298 -7.0235,-0.102085 -7.0342,-0.0976 -7.045,-0.092874 -7.0557,-0.087939 -7.0664,-0.082829 -7.0771,-0.077581 -7.0879,-0.072232 -7.0986,-0.066821 -7.1093,-0.061387 -7.12,-0.055972 -7.1308,-0.050613 -7.1415,-0.045352 -7.1522,-0.040225 -7.163,-0.035271 -7.1737,-0.030523 -7.1844,-0.026015 -7.1951,-0.021779 -7.2059,-0.017841 -7.2166,-0.014229 -7.2273,-0.010964 -7.238,-0.008068 -7.2488,-0.005558 -7.2595,-0.003449 -7.2702,-0.001753 -7.281,-0.000481 -7.2917,0.00036 -7.3024,0.000764 -7.3131,0.000728 -7.3239,0.000273 -7.3346,-0.000567 -7.3453,-0.001759 -7.356,-0.003273 -7.3668,-0.005083 -7.3775,-0.007164 -7.3882,-0.009492 -7.399,-0.012046 -7.4097,-0.014807 -7.4204,-0.017755 -7.4311,-0.020873 -7.4419,-0.024143 -7.4526,-0.027552 -7.4633,-0.031082 -7.474,-0.034721 -7.4848,-0.038452 -7.4955,-0.042265 -7.5062,-0.046144 -7.517,-0.050078 -7.5277,-0.054053 -7.5384,-0.058059 -7.5491,-0.062081 -7.5599,-0.066109 -7.5706,-0.07013 -7.5813,-0.074133 -7.592,-0.078105 -7.6028,-0.082034 -7.6135,-0.085908 -7.6242,-0.089713 -7.635,-0.093438 -7.6457,-0.097069 -7.6564,-0.100592 -7.6671,-0.103994 -7.6779,-0.107258 -7.6886,-0.110372 -7.6993,-0.113317 -7.71,-0.116077 -7.7208,-0.118634 -7.7315,-0.12097 -7.7422,-0.123063 -7.753,-0.124892 -7.7637,-0.126434 -7.7744,-0.127662 -7.7851,-0.128551 -7.7959,-0.129068 -7.8066,-0.129182 -7.8173,-0.128869 -7.828,-0.12813 -7.8388,-0.12697 -7.8495,-0.125399 -7.8602,-0.123425 -7.871,-0.121061 -7.8817,-0.118321 -7.8924,-0.115222 -7.9031,-0.111782 -7.9139,-0.108023 -7.9246,-0.103968 -7.9353,-0.099644 -7.946,-0.095078 -7.9568,-0.090301 -7.9675,-0.085345 -7.9782,-0.080243 -7.989,-0.07503 -7.9997,-0.069743 -8.0104,-0.064417 -8.0211,-0.059091 -8.0319,-0.053799 -8.0426,-0.048581 -8.0533,-0.043469 -8.064,-0.038501 -8.0748,-0.033708 -8.0855,-0.029122 -8.0962,-0.024772 -8.107,-0.020687 -8.1177,-0.016892 -8.1284,-0.013409 -8.1391,-0.010259 -8.1499,-0.007461 -8.1606,-0.005031 -8.1713,-0.002983 -8.182,-0.001327 -8.1928,-7.4e-05 -8.2035,0.000769 -8.2142,0.001196 -8.225,0.001205 -8.2357,0.000813 -8.2464,5.2e-05 -8.2571,-0.001047 -8.2679,-0.002457 -8.2786,-0.004153 -8.2893,-0.006112 -8.3,-0.008313 -8.3108,-0.010736 -8.3215,-0.013362 -8.3322,-0.016173 -8.343,-0.019153 -8.3537,-0.022287 -8.3644,-0.02556 -8.3751,-0.028956 -8.3859,-0.032464 -8.3966,-0.036068 -8.4073,-0.039758 -8.4181,-0.04352 -8.4288,-0.047342 -8.4395,-0.051213 -8.4502,-0.055121 -8.461,-0.059055 -8.4717,-0.063002 -8.4824,-0.066953 -8.4931,-0.070895 -8.5039,-0.074817 -8.5146,-0.078708 -8.5253,-0.082556 -8.5361,-0.086349 -8.5468,-0.090075 -8.5575,-0.093722 -8.5682,-0.097276 -8.579,-0.100726 -8.5897,-0.104056 -8.6004,-0.107254 -8.6111,-0.110302 -8.6219,-0.113187 -8.6326,-0.11589 -8.6433,-0.118395 -8.6541,-0.120683 -8.6648,-0.122732 -8.6755,-0.124522 -8.6862,-0.126029 -8.697,-0.127228 -8.7077,-0.128089 -8.7184,-0.128584 -8.7291,-0.128679 -8.7399,-0.12836 -8.7506,-0.127629 -8.7613,-0.126491 -8.7721,-0.124952 -8.7828,-0.12302 -8.7935,-0.120705 -8.8042,-0.118019 -8.815,-0.114977 -8.8257,-0.111595 -8.8364,-0.107891 -8.8471,-0.103888 -8.8579,-0.099609 -8.8686,-0.095079 -8.8793,-0.090327 -8.8901,-0.085384 -8.9008,-0.080281 -8.9115,-0.075053 -8.9222,-0.069736 -8.933,-0.064365 -8.9437,-0.058979 -8.9544,-0.053616 -8.9651,-0.048313 -8.9759,-0.043109 -8.9866,-0.038041 -8.9973,-0.033145 -9.0081,-0.028456 -9.0188,-0.024007 -9.0295,-0.01983 -9.0402,-0.015954 -9.051,-0.012405 -9.0617,-0.009208 -9.0724,-0.006386 -9.0831,-0.003957 -9.0939,-0.001939 -9.1046,-0.000346 -9.1153,0.000809 -9.1261,0.001517 -9.1368,0.001779 -9.1475,0.001623 -9.1582,0.001082 -9.169,0.000186 -9.1797,-0.00104 -9.1904,-0.00257 -9.2011,-0.004381 -9.2119,-0.006452 -9.2226,-0.008762 -9.2333,-0.011292 -9.2441,-0.014025 -9.2548,-0.016943 -9.2655,-0.020031 -9.2762,-0.023273 -9.287,-0.026654 -9.2977,-0.03016 -9.3084,-0.033777 -9.3191,-0.037492 -9.3299,-0.041292 -9.3406,-0.045164 -9.3513,-0.049095 -9.3621,-0.053074 -9.3728,-0.057088 -9.3835,-0.061124 -9.3942,-0.065171 -9.405,-0.069217 -9.4157,-0.07325 -9.4264,-0.077256 -9.4371,-0.081224 -9.4479,-0.08514 -9.4586,-0.088992 -9.4693,-0.092765 -9.4801,-0.096447 -9.4908,-0.100022 -9.5015,-0.103476 -9.5122,-0.106793 -9.523,-0.109956 -9.5337,-0.112948 -9.5444,-0.11575 -9.5551,-0.118343 -9.5659,-0.120706 -9.5766,-0.122815 -9.5873,-0.124647 -9.5981,-0.126178 -9.6088,-0.127399 -9.6195,-0.128307 -9.6302,-0.1289 -9.641,-0.129178 -9.6517,-0.129139 -9.6624,-0.128783 -9.6731,-0.128109 -9.6839,-0.127118 -9.6946,-0.125812 -9.7053,-0.124192 -9.7161,-0.12226 -9.7268,-0.12002 -9.7375,-0.117475 -9.7482,-0.114631 -9.759,-0.111492 -9.7697,-0.108067 -9.7804,-0.104361 -9.7911,-0.100383 -9.8019,-0.096144 -9.8126,-0.091652 -9.8233,-0.086921 -9.8341,-0.081961 -9.8448,-0.076787 -9.8555,-0.071413 -9.8662,-0.065854 -9.877,-0.060127 -9.8877,-0.054249 -9.8984,-0.048237 -9.9091,-0.04211 -9.9199,-0.035888 -9.9306,-0.02959 -9.9413,-0.023237 -9.9521,-0.016848 \ No newline at end of file diff --git a/validation/oscillating_beam_2d/oscillating_beam_l5_dt_005.csv b/validation/oscillating_beam_2d/oscillating_beam_l5_dt_005.csv new file mode 100644 index 000000000..c430dd375 --- /dev/null +++ b/validation/oscillating_beam_2d/oscillating_beam_l5_dt_005.csv @@ -0,0 +1,2002 @@ +time,Ux,Uy +0,0,0 +0.005,-1.28887291E-10,-0.0000250016078 +0.01,-5.21615594E-09,-0.000100029128 +0.015,-0.0000000503818185,-0.000225192623 +0.02,-0.000000251664243,-0.000400416792 +0.025,-0.000000822230722,-0.000623303599 +0.03,-0.0000020090807,-0.00088498406 +0.035,-0.00000405769322,-0.0011729782 +0.04,-0.00000726767088,-0.00149216761 +0.045,-0.0000118168678,-0.00188229221 +0.05,-0.0000175463851,-0.00238932119 +0.055,-0.0000245173175,-0.00302065635 +0.06,-0.0000331818263,-0.00376330894 +0.065,-0.0000440003463,-0.00462421016 +0.07,-0.0000576160284,-0.00560726522 +0.075,-0.0000747113963,-0.00669709427 +0.08,-0.0000963471539,-0.00789109466 +0.085,-0.000124562934,-0.00918913168 +0.09,-0.000161813513,-0.0105749533 +0.095,-0.000210465895,-0.0120400969 +0.1,-0.00027174696,-0.0135772202 +0.105,-0.000345775182,-0.015180168 +0.11,-0.000433950495,-0.0168689154 +0.115,-0.000538664558,-0.0186606843 +0.12,-0.000661516827,-0.0205446711 +0.125,-0.000802442461,-0.0224877616 +0.13,-0.000959433671,-0.0244489676 +0.135,-0.00113115727,-0.0264170902 +0.14,-0.00131637391,-0.0283940864 +0.145,-0.00151187142,-0.0303623681 +0.15,-0.00171606744,-0.0323120984 +0.155,-0.0019297883,-0.0342490448 +0.16,-0.00215406887,-0.0361787273 +0.165,-0.00238827949,-0.0380990331 +0.17,-0.00263097619,-0.0400171741 +0.175,-0.00288397983,-0.0419629318 +0.18,-0.00314973815,-0.0439489694 +0.185,-0.00342964253,-0.0459660972 +0.19,-0.00372444995,-0.0479997243 +0.195,-0.00403267708,-0.0500246501 +0.2,-0.00435533417,-0.0520372745 +0.205,-0.00469721466,-0.0540651512 +0.21,-0.00506131869,-0.0561293322 +0.215,-0.00544752198,-0.0582266546 +0.22,-0.00585882143,-0.0603587447 +0.225,-0.00630189785,-0.0625430309 +0.23,-0.00677826759,-0.0647824656 +0.235,-0.00728607976,-0.0670741377 +0.24,-0.00782441608,-0.0694168608 +0.245,-0.00839420954,-0.0718047341 +0.25,-0.00899759471,-0.0742219766 +0.255,-0.00962899148,-0.0766262204 +0.26,-0.0102795689,-0.0789849421 +0.265,-0.0109467511,-0.0813028938 +0.27,-0.0116295912,-0.0835920902 +0.275,-0.0123249809,-0.0858564028 +0.28,-0.0130293059,-0.0880948522 +0.285,-0.013736657,-0.0902919406 +0.29,-0.0144414263,-0.0924307367 +0.295,-0.0151434639,-0.0945205067 +0.3,-0.0158362291,-0.0965625453 +0.305,-0.0165079552,-0.0985358599 +0.31,-0.0171549094,-0.10042767 +0.315,-0.0177779374,-0.102231295 +0.32,-0.0183757173,-0.103934671 +0.325,-0.018941165,-0.105525359 +0.33,-0.0194746874,-0.107021597 +0.335,-0.01998809,-0.108463479 +0.34,-0.0204884006,-0.109869251 +0.345,-0.0209775933,-0.111236957 +0.35,-0.0214569246,-0.112560891 +0.355,-0.0219284116,-0.113841487 +0.36,-0.0223976701,-0.115090938 +0.365,-0.0228665712,-0.116316705 +0.37,-0.0233295957,-0.117508111 +0.375,-0.0237860989,-0.118652065 +0.38,-0.024238504,-0.119735487 +0.385,-0.0246889771,-0.120757939 +0.39,-0.0251397312,-0.12173839 +0.395,-0.0255843517,-0.122682532 +0.4,-0.0260224342,-0.123599168 +0.405,-0.0264623257,-0.124504293 +0.41,-0.0269000245,-0.125381563 +0.415,-0.0273205885,-0.126197108 +0.42,-0.027716068,-0.126943181 +0.425,-0.0280857935,-0.127629182 +0.43,-0.0284211493,-0.128242973 +0.435,-0.0287092152,-0.128759098 +0.44,-0.0289402617,-0.129157637 +0.445,-0.029110062,-0.129428865 +0.45,-0.0292220212,-0.129583793 +0.455,-0.029277952,-0.129644081 +0.46,-0.029274757,-0.129621174 +0.465,-0.0292134213,-0.129517783 +0.47,-0.0290984522,-0.129329917 +0.475,-0.0289336621,-0.129051994 +0.48,-0.0287189754,-0.128681634 +0.485,-0.0284485692,-0.128211613 +0.49,-0.0281273924,-0.127648254 +0.495,-0.0277669435,-0.127002666 +0.5,-0.0273703098,-0.126266069 +0.505,-0.0269378789,-0.125424957 +0.51,-0.0264759291,-0.124489259 +0.515,-0.0260019274,-0.123503042 +0.52,-0.025526797,-0.122496352 +0.525,-0.0250480455,-0.121468788 +0.53,-0.0245689331,-0.12042306 +0.535,-0.0240951259,-0.119355302 +0.54,-0.0236260302,-0.11825422 +0.545,-0.0231615897,-0.117123698 +0.55,-0.0226962834,-0.115963159 +0.555,-0.022222522,-0.114757043 +0.56,-0.0217436109,-0.113499684 +0.565,-0.0212610958,-0.112187605 +0.57,-0.0207689942,-0.110810991 +0.575,-0.0202643858,-0.109375454 +0.58,-0.019749306,-0.107903709 +0.585,-0.0192267193,-0.106412239 +0.59,-0.0186938704,-0.10489305 +0.595,-0.0181403567,-0.103311258 +0.6,-0.0175624372,-0.101646417 +0.605,-0.0169650142,-0.0999071321 +0.61,-0.0163461973,-0.0980905428 +0.615,-0.0157005463,-0.0961850648 +0.62,-0.0150281824,-0.0941866143 +0.625,-0.0143363451,-0.0920983261 +0.63,-0.0136335063,-0.08992477 +0.635,-0.0129260087,-0.0876813687 +0.64,-0.012220622,-0.0853983764 +0.645,-0.0115223518,-0.0830948386 +0.65,-0.0108378025,-0.0807844761 +0.655,-0.0101730311,-0.0784736727 +0.66,-0.00952781809,-0.0761437553 +0.665,-0.00890189607,-0.0737789811 +0.67,-0.00830091853,-0.0713972745 +0.675,-0.00773065158,-0.0690289328 +0.68,-0.00718968498,-0.0666779528 +0.685,-0.00667489423,-0.0643365521 +0.69,-0.00618908651,-0.0620174736 +0.695,-0.00573608157,-0.0597401368 +0.7,-0.00531613433,-0.0575225773 +0.705,-0.00492603195,-0.0553756421 +0.71,-0.00456144526,-0.0532968941 +0.715,-0.00422173427,-0.0512832855 +0.72,-0.00390505406,-0.0493102566 +0.725,-0.00360625053,-0.0473422678 +0.73,-0.00332243993,-0.0453695542 +0.735,-0.00305195817,-0.0433931499 +0.74,-0.00279331766,-0.0414203456 +0.745,-0.00254689959,-0.0394681278 +0.75,-0.00231016326,-0.0375256484 +0.755,-0.00208111923,-0.0355725676 +0.76,-0.0018630986,-0.0336268238 +0.765,-0.00165759939,-0.0317099789 +0.77,-0.00146333381,-0.0298189569 +0.775,-0.0012783709,-0.0279376788 +0.78,-0.00110285253,-0.0260578955 +0.785,-0.000939177167,-0.0241755458 +0.79,-0.000788451565,-0.0222777879 +0.795,-0.000651717673,-0.0203721008 +0.8,-0.000530433551,-0.0184897571 +0.805,-0.000425441674,-0.0166649579 +0.81,-0.000336355261,-0.0149227631 +0.815,-0.00026174523,-0.0132679091 +0.82,-0.000201022147,-0.0116979725 +0.825,-0.000153245817,-0.0102212345 +0.83,-0.000116985771,-0.0088552247 +0.835,-0.0000897373959,-0.00760911365 +0.84,-0.0000688703161,-0.00647007476 +0.845,-0.000052864005,-0.00541559527 +0.85,-0.000040599137,-0.00443813187 +0.855,-0.0000316138961,-0.00355367486 +0.86,-0.0000248917324,-0.00276792622 +0.865,-0.0000193403779,-0.00208284938 +0.87,-0.0000144176269,-0.0015258858 +0.875,-0.00000981593078,-0.00110368213 +0.88,-0.00000596529564,-0.000783771923 +0.885,-0.00000324843255,-0.000537173607 +0.89,-0.00000142379579,-0.00035366283 +0.895,-0.000000505167239,-0.000225164256 +0.9,-0.000000244108649,-0.00014733235 +0.905,-0.000000434604602,-0.000109370529 +0.91,-0.000000606459753,-0.0000858947664 +0.915,-0.000000512203822,-0.0000721319773 +0.92,-0.000000161201739,-0.0000869109994 +0.925,0.000000217211108,-0.000150908032 +0.93,0.000000351298227,-0.000278782598 +0.935,0.000000123162532,-0.00047366611 +0.94,-0.00000057964094,-0.000737943662 +0.945,-0.00000183264249,-0.00106803507 +0.95,-0.00000372989539,-0.00143784362 +0.955,-0.00000648872478,-0.00183772387 +0.96,-0.0000104186062,-0.00229295475 +0.965,-0.0000159721207,-0.00282804122 +0.97,-0.0000235816925,-0.0034477353 +0.975,-0.0000333925754,-0.00414556198 +0.98,-0.0000458580244,-0.00493662149 +0.985,-0.0000612586963,-0.00584566735 +0.99,-0.0000800821282,-0.00688425305 +0.995,-0.000103499319,-0.00806752006 +1,-0.000133208833,-0.00938527391 +1.005,-0.000171691439,-0.0108061071 +1.01,-0.000221475248,-0.0123172505 +1.015,-0.00028374277,-0.0139011434 +1.02,-0.000358650005,-0.0155366132 +1.025,-0.00044710128,-0.0172286879 +1.03,-0.000551988438,-0.0189984585 +1.035,-0.00067527424,-0.0208451734 +1.04,-0.000816770827,-0.0227453179 +1.045,-0.000975832712,-0.0246822389 +1.05,-0.00115130949,-0.0266575585 +1.055,-0.00134287545,-0.0286799284 +1.06,-0.00154881296,-0.0307330534 +1.065,-0.00176618627,-0.0327857823 +1.07,-0.00199373697,-0.0348194165 +1.075,-0.00223058317,-0.0368200548 +1.08,-0.00247512648,-0.0387800907 +1.085,-0.00272648366,-0.0407149655 +1.09,-0.00298535015,-0.0426475642 +1.095,-0.00325399589,-0.0445933138 +1.1,-0.00353710491,-0.0465704776 +1.105,-0.00383657078,-0.0485794556 +1.11,-0.00415048025,-0.0506016991 +1.115,-0.00447945358,-0.0526379256 +1.12,-0.00482753086,-0.0547106093 +1.125,-0.0051975918,-0.0568257145 +1.13,-0.00558840117,-0.0589575897 +1.135,-0.00600006007,-0.061090502 +1.14,-0.00643810574,-0.0632361445 +1.145,-0.00690530553,-0.0654062984 +1.15,-0.007401724,-0.0676146021 +1.155,-0.00792888206,-0.0698773612 +1.16,-0.00848813747,-0.0721969123 +1.165,-0.00908244351,-0.0745641795 +1.17,-0.00971106893,-0.0769563034 +1.175,-0.0103656872,-0.0793424667 +1.18,-0.0110401427,-0.0817091079 +1.185,-0.0117318209,-0.0840511518 +1.19,-0.0124370328,-0.0863581593 +1.195,-0.0131512555,-0.0886169723 +1.2,-0.0138644329,-0.0908009371 +1.205,-0.0145694673,-0.0928984126 +1.21,-0.0152702155,-0.0949404228 +1.215,-0.0159649949,-0.0969458208 +1.22,-0.0166439369,-0.0989010543 +1.225,-0.0173043416,-0.100800017 +1.23,-0.0179465253,-0.10263524 +1.235,-0.0185669959,-0.104388576 +1.24,-0.0191582174,-0.106044469 +1.245,-0.019715395,-0.10760532 +1.25,-0.020242454,-0.109085583 +1.255,-0.0207444538,-0.110488947 +1.26,-0.0212267396,-0.111819354 +1.265,-0.021690653,-0.113078165 +1.27,-0.0221389057,-0.114275871 +1.275,-0.0225813255,-0.11544403 +1.28,-0.023025489,-0.116607277 +1.285,-0.0234722294,-0.117767151 +1.29,-0.0239161789,-0.118899095 +1.295,-0.0243570019,-0.11998355 +1.3,-0.0247991908,-0.121022119 +1.305,-0.0252400188,-0.122015377 +1.31,-0.025671396,-0.122957103 +1.315,-0.0260895248,-0.123844295 +1.32,-0.0265001421,-0.124685728 +1.325,-0.0269053142,-0.125478493 +1.33,-0.0272947396,-0.126207223 +1.335,-0.0276643321,-0.126883626 +1.34,-0.0280159748,-0.127525997 +1.345,-0.0283430262,-0.128124221 +1.35,-0.0286379628,-0.128659453 +1.355,-0.0288893719,-0.129104088 +1.36,-0.0290821128,-0.12942702 +1.365,-0.02921571,-0.129629711 +1.37,-0.0292913863,-0.129727266 +1.375,-0.0293014544,-0.129717517 +1.38,-0.0292425471,-0.129592361 +1.385,-0.0291194518,-0.129353299 +1.39,-0.0289426121,-0.129014594 +1.395,-0.0287180225,-0.128591871 +1.4,-0.0284431539,-0.128091477 +1.405,-0.0281219076,-0.127522301 +1.41,-0.0277655519,-0.126892892 +1.415,-0.0273765117,-0.126187021 +1.42,-0.0269512775,-0.125380645 +1.425,-0.0264922711,-0.124475328 +1.43,-0.0260096787,-0.123494395 +1.435,-0.0255135838,-0.122457483 +1.44,-0.0250078867,-0.121371403 +1.445,-0.0244960893,-0.120240672 +1.45,-0.0239840264,-0.119069368 +1.455,-0.0234778329,-0.117869959 +1.46,-0.0229843114,-0.116670873 +1.465,-0.022500456,-0.115478563 +1.47,-0.0220161188,-0.114268218 +1.475,-0.0215319467,-0.113025306 +1.48,-0.0210499729,-0.111739498 +1.485,-0.0205622774,-0.110389398 +1.49,-0.0200601499,-0.108966187 +1.495,-0.0195432088,-0.107484208 +1.5,-0.0190145276,-0.105957182 +1.505,-0.0184731473,-0.104380345 +1.51,-0.0179149671,-0.102740093 +1.515,-0.017337584,-0.101032143 +1.52,-0.0167455872,-0.0992736162 +1.525,-0.0161412934,-0.0974755814 +1.53,-0.0155186752,-0.0956244587 +1.535,-0.0148742672,-0.0937014151 +1.54,-0.0142088873,-0.0916856047 +1.545,-0.0135261607,-0.0895651916 +1.55,-0.0128347112,-0.0873578407 +1.555,-0.0121389451,-0.0850842377 +1.56,-0.0114402059,-0.0827514947 +1.565,-0.0107495506,-0.0803863262 +1.57,-0.0100770073,-0.0780116975 +1.575,-0.00942537098,-0.0756250645 +1.58,-0.00879673499,-0.0732295386 +1.585,-0.00819460847,-0.0708464813 +1.59,-0.00762476439,-0.0685025639 +1.595,-0.0070855781,-0.0661881014 +1.6,-0.00657270204,-0.0638786444 +1.605,-0.00608723897,-0.0615704652 +1.61,-0.00563109181,-0.0592692046 +1.615,-0.00520609461,-0.0569997318 +1.62,-0.00481074542,-0.0547862276 +1.625,-0.00444101564,-0.0526350388 +1.63,-0.00409624632,-0.0505487753 +1.635,-0.00377681478,-0.0485228905 +1.64,-0.00348069398,-0.0465467682 +1.645,-0.00320422179,-0.044608871 +1.65,-0.00294347338,-0.0426961832 +1.655,-0.00269597,-0.0408023752 +1.66,-0.00246125646,-0.0389237916 +1.665,-0.00223598473,-0.0370336316 +1.67,-0.00201658944,-0.0351020658 +1.675,-0.00180563094,-0.033149657 +1.68,-0.00160595008,-0.0312145304 +1.685,-0.0014168891,-0.0293054713 +1.69,-0.00123746842,-0.0274239451 +1.695,-0.00106831727,-0.0255690854 +1.7,-0.000910976374,-0.0237308121 +1.705,-0.000766974183,-0.0219037466 +1.71,-0.000636792486,-0.0200913306 +1.715,-0.000520351322,-0.0182977247 +1.72,-0.000417699392,-0.016531219 +1.725,-0.000329317254,-0.01480703 +1.73,-0.000254883477,-0.0131326602 +1.735,-0.000194160316,-0.0115130841 +1.74,-0.000146729608,-0.00996966335 +1.745,-0.000111032456,-0.00854208242 +1.75,-0.00008472747,-0.00726202602 +1.755,-0.0000648408699,-0.00611926029 +1.76,-0.0000496835446,-0.00508473513 +1.765,-0.0000382816125,-0.0041479824 +1.77,-0.0000301061921,-0.00330899498 +1.775,-0.0000242714823,-0.00256309101 +1.78,-0.0000197237416,-0.00190452466 +1.785,-0.0000157926222,-0.00134153913 +1.79,-0.0000120292649,-0.000881250933 +1.795,-0.0000086197677,-0.00050887824 +1.8,-0.00000572010239,-0.000221700293 +1.805,-0.00000328140057,-0.0000259957913 +1.81,-0.00000161853118,0.0000831984082 +1.815,-0.00000055668034,0.00010112149 +1.82,-0.000000251221128,0.0000431389594 +1.825,-0.000000573758751,-0.0000401054478 +1.83,-0.000000796483415,-0.000122459739 +1.835,-0.000000867230616,-0.000214541352 +1.84,-0.000000595938778,-0.000330448817 +1.845,-0.000000245110193,-0.000481055979 +1.85,-0.000000109315231,-0.000671101435 +1.855,-0.000000372623389,-0.000914398064 +1.86,-0.00000150009253,-0.00122442825 +1.865,-0.00000365791689,-0.00159719918 +1.87,-0.00000685069944,-0.00203505337 +1.875,-0.0000111444065,-0.0025531177 +1.88,-0.0000168021554,-0.00316134574 +1.885,-0.000024523929,-0.00384598752 +1.89,-0.0000347622817,-0.00459021375 +1.895,-0.000047825416,-0.00539274248 +1.9,-0.0000641884131,-0.00626728206 +1.905,-0.0000844908396,-0.00724931988 +1.91,-0.000109711586,-0.00836830577 +1.915,-0.000141230787,-0.00961983891 +1.92,-0.000181244574,-0.0109893189 +1.925,-0.000231906851,-0.0124775363 +1.93,-0.00029495322,-0.0140782739 +1.935,-0.000371046094,-0.0157652296 +1.94,-0.000461108603,-0.0175236632 +1.945,-0.000568188889,-0.0193547907 +1.95,-0.000693937429,-0.021239183 +1.955,-0.000837762167,-0.0231466117 +1.96,-0.000998737126,-0.0250692257 +1.965,-0.00117555352,-0.0270150499 +1.97,-0.00136877519,-0.0290059281 +1.975,-0.00157923073,-0.0310510125 +1.98,-0.00180484548,-0.0331283493 +1.985,-0.00204362949,-0.0352135494 +1.99,-0.00229354525,-0.0372865663 +1.995,-0.00255267116,-0.0393375106 +2,-0.00281952486,-0.0413695993 +2.005,-0.00309214849,-0.0433790592 +2.01,-0.00337065437,-0.0453603366 +2.015,-0.00365976723,-0.0473309928 +2.02,-0.00396246511,-0.0493027082 +2.025,-0.00427700097,-0.0512680904 +2.03,-0.0046056069,-0.0532507482 +2.035,-0.00495370541,-0.0552890076 +2.04,-0.00532476325,-0.0573913664 +2.045,-0.00571936777,-0.0595383228 +2.05,-0.00613614621,-0.0617033778 +2.055,-0.00657692724,-0.0638792463 +2.06,-0.00704373701,-0.0660661962 +2.065,-0.00753735792,-0.068272316 +2.07,-0.0080591841,-0.0705080901 +2.075,-0.00860828268,-0.0727652065 +2.08,-0.00918848761,-0.0750433488 +2.085,-0.00980292409,-0.0773467128 +2.09,-0.0104474685,-0.0796693111 +2.095,-0.0111167881,-0.0820058701 +2.1,-0.0118080397,-0.0843519376 +2.105,-0.0125208694,-0.0866981762 +2.11,-0.0132492903,-0.0890152088 +2.115,-0.0139800412,-0.0912573553 +2.12,-0.0147026128,-0.0934023877 +2.125,-0.0154158523,-0.0954676835 +2.13,-0.0161189272,-0.0974698136 +2.135,-0.0168037854,-0.0994004757 +2.14,-0.0174663695,-0.101257469 +2.145,-0.0181099261,-0.103046972 +2.15,-0.0187328722,-0.104764725 +2.155,-0.0193333867,-0.106417079 +2.16,-0.0199093915,-0.108013999 +2.165,-0.0204555084,-0.10954507 +2.17,-0.0209746011,-0.111000705 +2.175,-0.021471634,-0.112375982 +2.18,-0.0219426133,-0.1136561 +2.185,-0.0223865361,-0.114842728 +2.19,-0.0228116056,-0.115964912 +2.195,-0.0232289942,-0.117055921 +2.2,-0.023645659,-0.118128994 +2.205,-0.0240581069,-0.119169983 +2.21,-0.0244685118,-0.12017645 +2.215,-0.0248852242,-0.121165315 +2.22,-0.0253076011,-0.122142061 +2.225,-0.025728583,-0.123096181 +2.23,-0.0261410815,-0.124008886 +2.235,-0.0265438055,-0.124865248 +2.24,-0.0269360397,-0.125649478 +2.245,-0.0273106075,-0.126352238 +2.25,-0.0276615101,-0.126985609 +2.255,-0.0279876801,-0.127563506 +2.26,-0.0282876659,-0.128087836 +2.265,-0.0285618443,-0.128558294 +2.27,-0.028803953,-0.128961583 +2.275,-0.0289984904,-0.129272786 +2.28,-0.0291436092,-0.129496426 +2.285,-0.029241958,-0.129646782 +2.29,-0.0292817963,-0.129703025 +2.295,-0.0292510813,-0.129633628 +2.3,-0.0291490378,-0.129428047 +2.305,-0.028981877,-0.129092827 +2.31,-0.0287561207,-0.128645715 +2.315,-0.0284735046,-0.128103418 +2.32,-0.028138495,-0.127479654 +2.325,-0.0277639097,-0.126788602 +2.33,-0.0273589491,-0.126029971 +2.335,-0.0269255606,-0.125198637 +2.34,-0.0264650821,-0.124300164 +2.345,-0.0259822478,-0.123345347 +2.35,-0.0254825558,-0.122337147 +2.355,-0.0249714662,-0.121272054 +2.36,-0.0244502063,-0.120140461 +2.365,-0.0239167872,-0.118929326 +2.37,-0.0233807447,-0.117660786 +2.375,-0.0228538982,-0.116377802 +2.38,-0.0223355537,-0.11509243 +2.385,-0.0218210578,-0.113795612 +2.39,-0.0213117821,-0.112482844 +2.395,-0.0208129892,-0.11115616 +2.4,-0.0203205801,-0.109804946 +2.405,-0.0198234763,-0.108413989 +2.41,-0.0193172296,-0.10698253 +2.415,-0.0187992124,-0.105497596 +2.42,-0.0182658672,-0.103938326 +2.425,-0.0177152387,-0.102295075 +2.43,-0.0171424659,-0.100563004 +2.435,-0.0165497786,-0.0987607245 +2.44,-0.0159445042,-0.0969165565 +2.445,-0.0153258725,-0.0950343267 +2.45,-0.0146923109,-0.0931034724 +2.455,-0.0140427718,-0.0911031048 +2.46,-0.0133796408,-0.0890256545 +2.465,-0.0127113547,-0.0868890725 +2.47,-0.0120382173,-0.0846939076 +2.475,-0.011356941,-0.0824245064 +2.48,-0.0106750742,-0.080086885 +2.485,-0.0100037848,-0.0776990711 +2.49,-0.0093480221,-0.075265308 +2.495,-0.00871177839,-0.0728041847 +2.5,-0.00810137992,-0.0703568016 +2.505,-0.00752195706,-0.0679521268 +2.51,-0.0069756394,-0.0655968321 +2.515,-0.00646100396,-0.0632798728 +2.52,-0.00597648461,-0.0609867651 +2.525,-0.00552189129,-0.0587128029 +2.53,-0.00509844259,-0.0564722439 +2.535,-0.00470457035,-0.0542781147 +2.54,-0.00433553346,-0.0521203648 +2.545,-0.00398889378,-0.0499886972 +2.55,-0.00366583608,-0.047890555 +2.555,-0.00336765453,-0.0458430093 +2.56,-0.00309114952,-0.043852337 +2.565,-0.00283259654,-0.0419172391 +2.57,-0.00259044058,-0.0400394671 +2.575,-0.00236368839,-0.038209025 +2.58,-0.00214973637,-0.0363915242 +2.585,-0.00194406707,-0.0345488575 +2.59,-0.0017461339,-0.0326801817 +2.595,-0.00155740454,-0.0308057787 +2.6,-0.00137678033,-0.0289289783 +2.605,-0.00120376237,-0.0270527764 +2.61,-0.0010391007,-0.0251813547 +2.615,-0.00088495013,-0.0233139869 +2.62,-0.000744134681,-0.0214716998 +2.625,-0.00061821753,-0.0196831374 +2.63,-0.000505970987,-0.0179448519 +2.635,-0.000406369633,-0.0162484008 +2.64,-0.000320092127,-0.0145996892 +2.645,-0.000247085079,-0.0129886325 +2.65,-0.000187458728,-0.0114087839 +2.655,-0.000140680376,-0.00987260664 +2.66,-0.000105422585,-0.00841577817 +2.665,-0.0000799652837,-0.00707964777 +2.67,-0.0000613410061,-0.00586611741 +2.675,-0.000047564248,-0.00476711585 +2.68,-0.0000378509758,-0.00378803176 +2.685,-0.0000308468888,-0.00293780319 +2.69,-0.0000257510678,-0.00221976298 +2.695,-0.0000213680195,-0.0016212106 +2.7,-0.0000174264602,-0.00112413744 +2.705,-0.0000139336696,-0.000706853735 +2.71,-0.0000107714925,-0.000353203133 +2.715,-0.00000800369272,-0.0000670062401 +2.72,-0.00000536875955,0.000148158293 +2.725,-0.00000315904515,0.000286907802 +2.73,-0.0000014766961,0.000327071709 +2.735,-0.000000393592703,0.00026970861 +2.74,-0.000000230918462,0.000153499908 +2.745,-0.000000505854682,0.00000502261106 +2.75,-0.000000742288795,-0.000182693638 +2.755,-0.000000878399312,-0.000412041819 +2.76,-0.000000913356285,-0.000668388915 +2.765,-0.00000111532392,-0.000941998006 +2.77,-0.00000149748097,-0.0012269685 +2.775,-0.00000240452132,-0.00153276529 +2.78,-0.00000430150063,-0.0018822145 +2.785,-0.00000732689792,-0.00229464764 +2.79,-0.000011893618,-0.00279480343 +2.795,-0.000018167177,-0.00339880521 +2.8,-0.0000267268,-0.00410157667 +2.805,-0.0000380775517,-0.00489129749 +2.81,-0.0000521007671,-0.00575125672 +2.815,-0.000069265027,-0.0066763093 +2.82,-0.0000903089856,-0.00769295259 +2.825,-0.000116781707,-0.00881946192 +2.83,-0.000149880633,-0.0100387361 +2.835,-0.000191146773,-0.0113434834 +2.84,-0.000242665449,-0.0127532906 +2.845,-0.000305852951,-0.0142830299 +2.85,-0.000382168748,-0.0159319069 +2.855,-0.000473321032,-0.0176943512 +2.86,-0.000581747248,-0.0195599457 +2.865,-0.000709991939,-0.0214991597 +2.87,-0.000857607835,-0.0234746235 +2.875,-0.0010234756,-0.0254663894 +2.88,-0.00120526219,-0.0274642409 +2.885,-0.00140256754,-0.0294748196 +2.89,-0.00161740419,-0.0315158162 +2.895,-0.00184801985,-0.0335753302 +2.9,-0.00209204315,-0.0356344043 +2.905,-0.00234837491,-0.0376926182 +2.91,-0.00261660027,-0.0397608805 +2.915,-0.00289629128,-0.0418495703 +2.92,-0.00318463706,-0.0439422199 +2.925,-0.00347948117,-0.0460135263 +2.93,-0.00378298364,-0.0480607149 +2.935,-0.00409670418,-0.0500804588 +2.94,-0.00441871359,-0.0520630693 +2.945,-0.00475019374,-0.0540305785 +2.95,-0.0050969638,-0.0560219781 +2.955,-0.00546382835,-0.0580551733 +2.96,-0.00585386172,-0.0601313255 +2.965,-0.00626848795,-0.0622473375 +2.97,-0.00670718679,-0.0643964291 +2.975,-0.00717194645,-0.0665819483 +2.98,-0.00766677971,-0.0688180526 +2.985,-0.00819060806,-0.0710911781 +2.99,-0.00874029683,-0.0733689126 +2.995,-0.00931672636,-0.0756370323 +3,-0.00992254642,-0.077899093 +3.005,-0.0105565408,-0.0801629873 +3.01,-0.0112136762,-0.0824303973 +3.015,-0.0118925673,-0.0847075219 +3.02,-0.0125967198,-0.0870016348 +3.025,-0.0133226267,-0.089291523 +3.03,-0.01405999,-0.0915428196 +3.035,-0.0147985114,-0.0937358128 +3.04,-0.0155314596,-0.0958679407 +3.045,-0.0162564161,-0.0979391901 +3.05,-0.0169644879,-0.0999274313 +3.055,-0.0176467145,-0.10181436 +3.06,-0.0183008717,-0.103595594 +3.065,-0.0189253805,-0.105274077 +3.07,-0.0195245916,-0.106880465 +3.075,-0.0201003337,-0.108437651 +3.08,-0.0206470464,-0.109937775 +3.085,-0.0211685861,-0.11137796 +3.09,-0.0216729701,-0.112762374 +3.095,-0.0221559521,-0.114075678 +3.1,-0.0226110061,-0.115305512 +3.105,-0.0230420525,-0.116467149 +3.11,-0.0234562702,-0.117573576 +3.115,-0.0238589468,-0.118623344 +3.12,-0.0242494303,-0.119607764 +3.125,-0.0246285689,-0.120529685 +3.13,-0.0250066819,-0.121419736 +3.135,-0.0253900689,-0.122302641 +3.14,-0.0257780639,-0.1231845 +3.145,-0.0261666606,-0.12405486 +3.15,-0.0265518392,-0.124891395 +3.155,-0.0269320557,-0.125677367 +3.16,-0.0273029929,-0.126405226 +3.165,-0.0276558019,-0.12707231 +3.17,-0.0279791805,-0.127665645 +3.175,-0.0282699071,-0.128176257 +3.18,-0.0285307905,-0.128607381 +3.185,-0.0287557279,-0.128950591 +3.19,-0.0289339074,-0.129197279 +3.195,-0.0290655638,-0.129367563 +3.2,-0.0291573164,-0.129485163 +3.205,-0.0292031745,-0.129537013 +3.21,-0.0291907061,-0.129491981 +3.215,-0.0291147132,-0.129333327 +3.22,-0.0289756461,-0.129056526 +3.225,-0.028773788,-0.12866361 +3.23,-0.0285109131,-0.128163401 +3.235,-0.0281863572,-0.127554188 +3.24,-0.0278047813,-0.126832137 +3.245,-0.0273822269,-0.126011885 +3.25,-0.0269268784,-0.125108594 +3.255,-0.0264441661,-0.124143333 +3.26,-0.025940829,-0.123136006 +3.265,-0.0254224356,-0.122092676 +3.27,-0.0248998006,-0.121019121 +3.275,-0.0243733128,-0.11989883 +3.28,-0.0238348065,-0.118706114 +3.285,-0.0232905221,-0.11745352 +3.29,-0.0227498117,-0.116168726 +3.295,-0.0222115732,-0.114852182 +3.3,-0.021672809,-0.11349344 +3.305,-0.0211354126,-0.112095219 +3.31,-0.0206061567,-0.11067061 +3.315,-0.0200872695,-0.109232262 +3.32,-0.0195743683,-0.107789693 +3.325,-0.019062439,-0.106342302 +3.33,-0.0185459853,-0.104867956 +3.335,-0.0180226908,-0.103343686 +3.34,-0.0174899515,-0.10175365 +3.345,-0.0169386781,-0.100079079 +3.35,-0.0163639864,-0.0983168932 +3.355,-0.0157696989,-0.0964833923 +3.36,-0.0151588438,-0.0945877168 +3.365,-0.0145300276,-0.0926202265 +3.37,-0.0138831818,-0.0905724434 +3.375,-0.0132249624,-0.0884598616 +3.38,-0.0125646477,-0.0863125609 +3.385,-0.0119048132,-0.0841398827 +3.39,-0.011241239,-0.0819228263 +3.395,-0.0105764957,-0.0796495964 +3.4,-0.00991894649,-0.077320708 +3.405,-0.0092726754,-0.0749292873 +3.41,-0.00864146279,-0.0724890468 +3.415,-0.00803042031,-0.0700307751 +3.42,-0.00744347443,-0.0675734886 +3.425,-0.00688599303,-0.0651370044 +3.43,-0.00636188948,-0.0627382994 +3.435,-0.00587010513,-0.0603766108 +3.44,-0.00540999442,-0.0580570761 +3.445,-0.00498410142,-0.0558081791 +3.45,-0.00459104055,-0.0536377494 +3.455,-0.00422539419,-0.0515190069 +3.46,-0.00388327074,-0.0494226331 +3.465,-0.00356350902,-0.047339144 +3.47,-0.00326769612,-0.0452832225 +3.475,-0.00299309908,-0.0432637832 +3.48,-0.0027353379,-0.041284215 +3.485,-0.00249398922,-0.0393579654 +3.49,-0.00226883527,-0.0374841428 +3.495,-0.002058912,-0.0356487099 +3.5,-0.0018619063,-0.0338357184 +3.505,-0.00167507256,-0.0320358331 +3.51,-0.0014979182,-0.0302525133 +3.515,-0.00132906302,-0.028475701 +3.52,-0.00116724118,-0.0266913023 +3.525,-0.00101220757,-0.0248829287 +3.53,-0.00086446175,-0.0230370003 +3.535,-0.000727750075,-0.0211877897 +3.54,-0.000604451852,-0.01937959 +3.545,-0.000493743489,-0.0176199958 +3.55,-0.000395020233,-0.015911683 +3.555,-0.000309462015,-0.0142683303 +3.56,-0.000237754438,-0.012689607 +3.565,-0.000179605223,-0.0111648914 +3.57,-0.000134105797,-0.00969848416 +3.575,-0.0000995170922,-0.00830443471 +3.58,-0.0000742502086,-0.00699571069 +3.585,-0.0000563063674,-0.00577458961 +3.59,-0.000043736215,-0.00463550388 +3.595,-0.0000358190039,-0.00358857121 +3.6,-0.0000312512998,-0.00266238375 +3.605,-0.0000282011848,-0.00188299394 +3.61,-0.0000253820805,-0.00125875978 +3.615,-0.0000218246149,-0.000771286581 +3.62,-0.0000180849921,-0.000386066393 +3.625,-0.0000141682608,-0.0000886134012 +3.63,-0.0000104204289,0.000125525515 +3.635,-0.00000720242474,0.000276152303 +3.64,-0.00000466848492,0.000370545008 +3.645,-0.00000289525909,0.000396588633 +3.65,-0.00000153597755,0.000354002536 +3.655,-0.000000703539496,0.00026210834 +3.66,-0.000000111447119,0.000127424058 +3.665,0.00000014773473,-0.0000708820728 +3.67,0.0000000933551034,-0.000342790015 +3.675,-0.000000493359947,-0.000677632993 +3.68,-0.00000168586205,-0.0010559188 +3.685,-0.00000307172995,-0.00144761542 +3.69,-0.00000450693649,-0.00184009469 +3.695,-0.00000635648708,-0.00225246457 +3.7,-0.00000902468638,-0.00270213083 +3.705,-0.000013234915,-0.0032006175 +3.71,-0.0000196766425,-0.00376855142 +3.715,-0.0000289216704,-0.00442198523 +3.72,-0.0000415125065,-0.00516974303 +3.725,-0.0000571169199,-0.00601282283 +3.73,-0.0000757403124,-0.00695083891 +3.735,-0.0000980205712,-0.0080065107 +3.74,-0.000125670776,-0.00918527764 +3.745,-0.0001603988,-0.0104500782 +3.75,-0.000203388164,-0.0117802254 +3.755,-0.000256033354,-0.0131828355 +3.76,-0.000319731255,-0.0146715971 +3.765,-0.000395987147,-0.0162630822 +3.77,-0.00048695228,-0.0179675115 +3.775,-0.000595093078,-0.0197791687 +3.78,-0.000722920486,-0.0216806945 +3.785,-0.000872049656,-0.0236596527 +3.79,-0.00104161799,-0.0256999126 +3.795,-0.00122921198,-0.0277749516 +3.8,-0.00143395433,-0.0298735746 +3.805,-0.00165714082,-0.031992935 +3.81,-0.00189687386,-0.0341080355 +3.815,-0.00214919392,-0.0361904395 +3.82,-0.00241188405,-0.0382400309 +3.825,-0.00268572905,-0.0402862711 +3.83,-0.00297178297,-0.0423541956 +3.835,-0.00326826833,-0.0444399032 +3.84,-0.00357453647,-0.046531823 +3.845,-0.00389037049,-0.0486191147 +3.85,-0.00421696719,-0.0506961583 +3.855,-0.00455336661,-0.0527544718 +3.86,-0.0048976182,-0.0547936151 +3.865,-0.0052531132,-0.0568295247 +3.87,-0.00562275503,-0.0588612087 +3.875,-0.00601076977,-0.0608960704 +3.88,-0.00642054566,-0.0629460732 +3.885,-0.00685062645,-0.065010648 +3.89,-0.00730517868,-0.0671157557 +3.895,-0.00779204593,-0.0692969579 +3.9,-0.00831149776,-0.0715462258 +3.905,-0.00885991396,-0.0738258639 +3.91,-0.00943662516,-0.0761143531 +3.915,-0.0100422873,-0.0784038842 +3.92,-0.0106754321,-0.0806894878 +3.925,-0.0113312969,-0.0829640329 +3.93,-0.012006012,-0.0852219072 +3.935,-0.0127011975,-0.0874642265 +3.94,-0.0134159865,-0.0896831681 +3.945,-0.0141444798,-0.0918688082 +3.95,-0.0148797393,-0.094021269 +3.955,-0.015615749,-0.0961437385 +3.96,-0.01635043,-0.0982345746 +3.965,-0.0170791363,-0.100276088 +3.97,-0.0177902028,-0.102235214 +3.975,-0.0184723391,-0.104082307 +3.98,-0.0191201584,-0.105811247 +3.985,-0.0197363742,-0.10744594 +3.99,-0.0203215058,-0.109002096 +3.995,-0.0208693074,-0.110469147 +4,-0.0213840901,-0.111852276 +4.005,-0.0218777791,-0.113172811 +4.01,-0.0223519401,-0.114435172 +4.015,-0.0228032294,-0.115642766 +4.02,-0.0232344171,-0.116811204 +4.025,-0.0236498984,-0.117941227 +4.03,-0.0240520998,-0.119016644 +4.035,-0.024441089,-0.120022167 +4.04,-0.0248138519,-0.120950329 +4.045,-0.0251722738,-0.121812467 +4.05,-0.0255257426,-0.122636473 +4.055,-0.0258787405,-0.123438291 +4.06,-0.0262287767,-0.124213048 +4.065,-0.0265752135,-0.124952025 +4.07,-0.0269194557,-0.125655543 +4.075,-0.0272646993,-0.126337449 +4.08,-0.0276062531,-0.127000393 +4.085,-0.0279272254,-0.127615316 +4.09,-0.0282213667,-0.128160279 +4.095,-0.0284888888,-0.128625151 +4.1,-0.0287185733,-0.128985995 +4.105,-0.028899813,-0.129234549 +4.11,-0.0290290304,-0.129386265 +4.115,-0.0291098163,-0.129459278 +4.12,-0.0291433917,-0.129453347 +4.125,-0.0291228783,-0.129354507 +4.13,-0.0290465074,-0.129161351 +4.135,-0.0289132003,-0.12887459 +4.14,-0.0287251063,-0.12850255 +4.145,-0.0284861258,-0.128054712 +4.15,-0.0281889112,-0.127507998 +4.155,-0.0278288731,-0.126835862 +4.16,-0.0274162791,-0.126039928 +4.165,-0.0269611468,-0.125136456 +4.17,-0.0264681988,-0.124143439 +4.175,-0.0259430583,-0.123077905 +4.18,-0.0253960681,-0.121957286 +4.185,-0.024842305,-0.120798487 +4.19,-0.024288348,-0.119603733 +4.195,-0.0237304609,-0.118366027 +4.2,-0.023171574,-0.117099496 +4.205,-0.0226195279,-0.115823774 +4.21,-0.0220728774,-0.114525987 +4.215,-0.0215273946,-0.113182336 +4.22,-0.0209820568,-0.111782887 +4.225,-0.0204376052,-0.110325331 +4.23,-0.0198976129,-0.10882808 +4.235,-0.0193645909,-0.10731829 +4.24,-0.0188328999,-0.105796477 +4.245,-0.0182981731,-0.104247814 +4.25,-0.0177642642,-0.102670355 +4.255,-0.0172319275,-0.101064781 +4.26,-0.0166933228,-0.0994169592 +4.265,-0.0161393752,-0.0977133404 +4.27,-0.0155681431,-0.0959509151 +4.275,-0.0149803731,-0.0941193663 +4.28,-0.0143726934,-0.0921949058 +4.285,-0.0137417723,-0.0901619129 +4.29,-0.013093666,-0.088038459 +4.295,-0.0124377559,-0.0858592446 +4.3,-0.0117792988,-0.0836447891 +4.305,-0.0111199045,-0.0813977926 +4.31,-0.0104610932,-0.0791108564 +4.315,-0.00981010977,-0.0767853233 +4.32,-0.00917332445,-0.0744273415 +4.325,-0.00855341628,-0.0720459231 +4.33,-0.0079526193,-0.06965128 +4.335,-0.00737046165,-0.0672332379 +4.34,-0.00681178967,-0.0647970711 +4.345,-0.00628382379,-0.0623653579 +4.35,-0.0057853057,-0.0599388337 +4.355,-0.00531653923,-0.0575368496 +4.36,-0.00488196792,-0.0552068747 +4.365,-0.00448196508,-0.0529704988 +4.37,-0.00411298207,-0.0508130296 +4.375,-0.00377150829,-0.0487113907 +4.38,-0.00345512793,-0.0466524176 +4.385,-0.00316373084,-0.0446375204 +4.39,-0.00289492171,-0.04266649 +4.395,-0.00264375662,-0.0407290068 +4.4,-0.00240787342,-0.0388153458 +4.405,-0.00218633885,-0.036917807 +4.41,-0.00197944973,-0.0350387994 +4.415,-0.00178625674,-0.0331869586 +4.42,-0.00160444189,-0.0313702839 +4.425,-0.00143304697,-0.0295940694 +4.43,-0.00127141688,-0.0278581158 +4.435,-0.00111950624,-0.0261514792 +4.44,-0.000975515293,-0.0244367915 +4.445,-0.000838391717,-0.0226886654 +4.45,-0.000710422532,-0.0209266941 +4.455,-0.000592938824,-0.0191772372 +4.46,-0.000485602328,-0.0174440392 +4.465,-0.000388025339,-0.0157268006 +4.47,-0.000302371847,-0.0140460719 +4.475,-0.000230683848,-0.0124218671 +4.48,-0.000173137338,-0.0108676833 +4.485,-0.000128530202,-0.00940790936 +4.49,-0.0000944792267,-0.00804953093 +4.495,-0.0000690522288,-0.00678664703 +4.5,-0.0000507544412,-0.00561665165 +4.505,-0.000038582988,-0.004522802 +4.51,-0.0000317223325,-0.0034960337 +4.515,-0.0000289837927,-0.00255623142 +4.52,-0.0000282651678,-0.00173582782 +4.525,-0.0000277107947,-0.00105274622 +4.53,-0.0000258882805,-0.000499814391 +4.535,-0.0000230712384,-0.0000584190838 +4.54,-0.0000194060816,0.000266763132 +4.545,-0.0000150918763,0.000464500579 +4.55,-0.0000110441934,0.000557452506 +4.555,-0.00000751828264,0.000566981757 +4.56,-0.0000049261882,0.00050469212 +4.565,-0.00000301338673,0.000395596076 +4.57,-0.00000151820108,0.000260850214 +4.575,-0.000000322509908,0.000101827903 +4.58,0.00000059020451,-0.0000969816739 +4.585,0.000000798347415,-0.00035567596 +4.59,0.0000000493169074,-0.000685129476 +4.595,-0.00000147805531,-0.00107994784 +4.6,-0.00000366677826,-0.00151357051 +4.605,-0.0000058465042,-0.00197252105 +4.61,-0.00000830115863,-0.00247737831 +4.615,-0.0000115672131,-0.00303117843 +4.62,-0.0000162920148,-0.00361952015 +4.625,-0.0000232616575,-0.00423969241 +4.63,-0.0000329975803,-0.00490043258 +4.635,-0.000045941114,-0.00561845716 +4.64,-0.0000620619089,-0.00640847064 +4.645,-0.0000815659614,-0.00729379773 +4.65,-0.000105259569,-0.00830563896 +4.655,-0.000134719447,-0.00945652815 +4.66,-0.000171768354,-0.0107253236 +4.665,-0.000217100066,-0.012085938 +4.67,-0.000271429726,-0.0135316201 +4.675,-0.000336091611,-0.0150612449 +4.68,-0.00041299797,-0.0166802141 +4.685,-0.000505029091,-0.0183920775 +4.69,-0.000613622592,-0.0201743899 +4.695,-0.000740874417,-0.0220142069 +4.7,-0.000889209496,-0.0239314897 +4.705,-0.00105841315,-0.0259290629 +4.71,-0.00124733059,-0.0279936167 +4.715,-0.00145615414,-0.0301215739 +4.72,-0.00168597739,-0.0322997427 +4.725,-0.00193579321,-0.0344957311 +4.73,-0.00220086965,-0.0366680602 +4.735,-0.00247678618,-0.0387996534 +4.74,-0.00276247521,-0.0409047169 +4.745,-0.00305794064,-0.0429970521 +4.75,-0.00336270313,-0.0450795341 +4.755,-0.00367587788,-0.0471479508 +4.76,-0.0039974206,-0.0492005426 +4.765,-0.00432953984,-0.0512498407 +4.77,-0.00467424342,-0.053312951 +4.775,-0.00503045021,-0.0553946149 +4.78,-0.00539779108,-0.0574875577 +4.785,-0.00577765692,-0.0595761867 +4.79,-0.00617338685,-0.0616550645 +4.795,-0.00658729576,-0.0637240036 +4.8,-0.00701664629,-0.065774815 +4.805,-0.00746473372,-0.0678316582 +4.81,-0.00794088632,-0.0699382994 +4.815,-0.00844800493,-0.0720989378 +4.82,-0.00898430575,-0.0742938059 +4.825,-0.00955068017,-0.076519576 +4.83,-0.0101482409,-0.0787780715 +4.835,-0.010776794,-0.081065867 +4.84,-0.011434438,-0.0833758779 +4.845,-0.0121152749,-0.0856810904 +4.85,-0.0128142393,-0.0879521534 +4.855,-0.013529478,-0.0901733726 +4.86,-0.014256647,-0.0923402355 +4.865,-0.0149881671,-0.0944575722 +4.87,-0.0157185001,-0.09653115 +4.875,-0.0164474811,-0.0985699792 +4.88,-0.017175532,-0.100573839 +4.885,-0.0178957116,-0.102523562 +4.89,-0.018594586,-0.104391085 +4.895,-0.0192647932,-0.106169732 +4.9,-0.0199086893,-0.107876839 +4.905,-0.0205210687,-0.109503569 +4.91,-0.0210932324,-0.111022846 +4.915,-0.0216241003,-0.112427493 +4.92,-0.022118993,-0.113726878 +4.925,-0.0225846531,-0.114940129 +4.93,-0.0230222706,-0.11608796 +4.935,-0.0234364659,-0.117193994 +4.94,-0.0238339554,-0.118265738 +4.945,-0.0242189483,-0.119294552 +4.95,-0.0245981564,-0.120283579 +4.955,-0.0249673665,-0.121223771 +4.96,-0.0253200942,-0.122107564 +4.965,-0.0256641851,-0.122950814 +4.97,-0.0260033724,-0.123754648 +4.975,-0.0263333283,-0.124501232 +4.98,-0.0266512326,-0.125178608 +4.985,-0.0269591198,-0.125796931 +4.99,-0.0272649495,-0.126386921 +4.995,-0.0275700025,-0.126965061 +5,-0.0278626237,-0.127515455 +5.005,-0.028137734,-0.128022491 +5.01,-0.0283960205,-0.128476871 +5.015,-0.0286285502,-0.128858279 +5.02,-0.028824016,-0.129153748 +5.025,-0.0289729188,-0.129361494 +5.03,-0.0290687001,-0.129471586 +5.035,-0.0291088721,-0.129470281 +5.04,-0.0290916579,-0.129353683 +5.045,-0.0290127016,-0.129121232 +5.05,-0.0288702805,-0.128780492 +5.055,-0.0286738205,-0.12835971 +5.06,-0.0284320131,-0.127879314 +5.065,-0.0281407158,-0.127323082 +5.07,-0.0277935426,-0.126664318 +5.075,-0.0273958998,-0.125901904 +5.08,-0.0269568087,-0.125047825 +5.085,-0.0264775073,-0.124103955 +5.09,-0.0259581051,-0.123068558 +5.095,-0.0254056145,-0.1219442 +5.1,-0.0248327836,-0.120739088 +5.105,-0.0242498593,-0.119465724 +5.11,-0.0236611523,-0.118140991 +5.115,-0.0230706563,-0.116790759 +5.12,-0.0224871188,-0.115439306 +5.125,-0.0219156395,-0.114088397 +5.13,-0.02135537,-0.112723442 +5.135,-0.020803467,-0.111329245 +5.14,-0.0202548916,-0.109890716 +5.145,-0.0197098704,-0.108413254 +5.15,-0.0191723552,-0.1069157 +5.155,-0.0186343429,-0.105381453 +5.16,-0.0180879879,-0.103785647 +5.165,-0.0175404233,-0.102140943 +5.17,-0.0169954612,-0.100463522 +5.175,-0.0164488969,-0.0987576247 +5.18,-0.0158958461,-0.0970274312 +5.185,-0.0153325615,-0.0952689827 +5.19,-0.0147596395,-0.0934686762 +5.195,-0.0141749482,-0.0916017369 +5.2,-0.0135723888,-0.0896446675 +5.205,-0.0129520175,-0.0875975135 +5.21,-0.0123167648,-0.0854703118 +5.215,-0.0116714039,-0.0832752303 +5.22,-0.0110198422,-0.0810182138 +5.225,-0.0103638689,-0.0786937026 +5.23,-0.0097113383,-0.0763139378 +5.235,-0.00907266324,-0.0739085131 +5.24,-0.00845474178,-0.0715098071 +5.245,-0.00785840222,-0.069125534 +5.25,-0.00728118997,-0.0667369095 +5.255,-0.00672722993,-0.0643424371 +5.26,-0.00620244947,-0.0619485725 +5.265,-0.00570615513,-0.0595476093 +5.27,-0.0052373492,-0.0571481476 +5.275,-0.00479897023,-0.0547849426 +5.28,-0.00439279639,-0.0524810558 +5.285,-0.00401701902,-0.0502353199 +5.29,-0.00366998796,-0.0480494597 +5.295,-0.00335045836,-0.0459294665 +5.3,-0.00305727388,-0.0438814404 +5.305,-0.00279002541,-0.0419202693 +5.31,-0.00254496708,-0.0400332161 +5.315,-0.00231682119,-0.0381816752 +5.32,-0.00210372389,-0.0363403439 +5.325,-0.00190462187,-0.0345010734 +5.33,-0.00171840743,-0.0326709953 +5.335,-0.00154279817,-0.0308565605 +5.34,-0.00137560616,-0.0290608419 +5.345,-0.00121801023,-0.0272984998 +5.35,-0.00107108974,-0.0255761487 +5.355,-0.000933703366,-0.023872212 +5.36,-0.000804670053,-0.0221726198 +5.365,-0.000684796878,-0.0204935217 +5.37,-0.000574382317,-0.0188430412 +5.375,-0.000472846412,-0.0172082809 +5.38,-0.000380182899,-0.0155747903 +5.385,-0.000297513357,-0.0139376878 +5.39,-0.000227276402,-0.0123124683 +5.395,-0.000170099107,-0.0107306736 +5.4,-0.000125276018,-0.00923084559 +5.405,-0.0000906558319,-0.00783002873 +5.41,-0.0000646938446,-0.0065290762 +5.415,-0.0000464469997,-0.00534344976 +5.42,-0.0000350679348,-0.00426821089 +5.425,-0.0000293220114,-0.00328417727 +5.43,-0.0000274065072,-0.00239739334 +5.435,-0.0000272809236,-0.00162238264 +5.44,-0.0000273284611,-0.000959600962 +5.445,-0.0000266899875,-0.000393383823 +5.45,-0.0000251621569,0.0000901159147 +5.455,-0.0000231207817,0.000475699539 +5.46,-0.0000201536414,0.000733804852 +5.465,-0.0000166087167,0.000861291056 +5.47,-0.0000125476023,0.000867833348 +5.475,-0.00000855119715,0.000769874171 +5.48,-0.0000049339304,0.000599186441 +5.485,-0.00000214435106,0.000378417549 +5.49,-0.00000023133506,0.000118787103 +5.495,0.000000549811441,-0.000169832377 +5.5,0.00000019224375,-0.00048394447 +5.505,-0.000000967135669,-0.000838720961 +5.51,-0.00000255843884,-0.00123384113 +5.515,-0.00000414761328,-0.00164951999 +5.52,-0.00000615179814,-0.00209903759 +5.525,-0.00000898287234,-0.00261483863 +5.53,-0.00001344535,-0.00321058992 +5.535,-0.0000199353173,-0.00387149035 +5.54,-0.0000285308706,-0.00457577989 +5.545,-0.0000392620928,-0.00531706165 +5.55,-0.0000524551593,-0.00609508434 +5.555,-0.0000685319626,-0.00691855964 +5.56,-0.0000884003622,-0.00780857194 +5.565,-0.000113099963,-0.00878476844 +5.57,-0.000144335753,-0.00986629833 +5.575,-0.000183379574,-0.011061928 +5.58,-0.00023068354,-0.0123666363 +5.585,-0.000286447545,-0.013783376 +5.59,-0.000351946958,-0.0153164561 +5.595,-0.000430023265,-0.0169711725 +5.6,-0.000523892772,-0.0187371961 +5.605,-0.00063520152,-0.0205667886 +5.61,-0.000764435618,-0.0224323722 +5.615,-0.000913611665,-0.02434943 +5.62,-0.00108270381,-0.0263245466 +5.625,-0.0012710463,-0.0283525409 +5.63,-0.00148002188,-0.0304412516 +5.635,-0.00171135898,-0.0325886481 +5.64,-0.0019650568,-0.0347742319 +5.645,-0.00223856357,-0.0369784475 +5.65,-0.00252722533,-0.0391841735 +5.655,-0.00282721602,-0.0413825922 +5.66,-0.00313792836,-0.0435707078 +5.665,-0.00345835235,-0.045735577 +5.67,-0.00378586939,-0.0478569663 +5.675,-0.00411801787,-0.0499223695 +5.68,-0.00445623021,-0.0519485405 +5.685,-0.00480484739,-0.0539746092 +5.69,-0.00516503511,-0.0560217204 +5.695,-0.00553626286,-0.0580874441 +5.7,-0.00592052463,-0.0601653765 +5.705,-0.00632214323,-0.0622576901 +5.71,-0.00674306362,-0.0643606207 +5.715,-0.00717990143,-0.0664577445 +5.72,-0.00763353847,-0.0685567252 +5.725,-0.00810929134,-0.0706742588 +5.73,-0.00861044096,-0.0728053829 +5.735,-0.00913707122,-0.074939399 +5.74,-0.0096893505,-0.0770807107 +5.745,-0.010270305,-0.0792460923 +5.75,-0.0108821584,-0.0814509629 +5.755,-0.0115283238,-0.0837089944 +5.76,-0.0122052783,-0.08600088 +5.765,-0.0129037809,-0.0882814657 +5.77,-0.0136221464,-0.0905328697 +5.775,-0.0143574755,-0.0927478567 +5.78,-0.0150990183,-0.0949103505 +5.785,-0.015838882,-0.097011331 +5.79,-0.0165728693,-0.0990462274 +5.795,-0.0173005659,-0.101015059 +5.8,-0.0180189314,-0.102914423 +5.805,-0.0187162765,-0.104731875 +5.81,-0.0193887608,-0.106479458 +5.815,-0.0200404519,-0.108181174 +5.82,-0.0206683497,-0.109828959 +5.825,-0.0212652933,-0.111397339 +5.83,-0.0218247333,-0.112864875 +5.835,-0.0223429847,-0.114220721 +5.84,-0.0228230308,-0.115472141 +5.845,-0.0232679713,-0.116637695 +5.85,-0.0236794687,-0.117728798 +5.855,-0.0240605767,-0.11874349 +5.86,-0.0244205142,-0.119689847 +5.865,-0.024772078,-0.120593001 +5.87,-0.0251154575,-0.121461936 +5.875,-0.0254462299,-0.122299368 +5.88,-0.025771215,-0.123121386 +5.885,-0.0260963381,-0.123926027 +5.89,-0.0264172738,-0.124685479 +5.895,-0.0267266164,-0.125375215 +5.9,-0.0270225881,-0.125996272 +5.905,-0.0273082551,-0.126564855 +5.91,-0.0275849459,-0.127092547 +5.915,-0.02784732,-0.127573687 +5.92,-0.0280895242,-0.127996564 +5.925,-0.0283142216,-0.128363751 +5.93,-0.0285216499,-0.128679121 +5.935,-0.0287060523,-0.128947582 +5.94,-0.0288590012,-0.129167694 +5.945,-0.0289676157,-0.129312585 +5.95,-0.0290257075,-0.129357772 +5.955,-0.0290322252,-0.129293559 +5.96,-0.0289768423,-0.129104502 +5.965,-0.0288498796,-0.128783912 +5.97,-0.0286594808,-0.128356394 +5.975,-0.0284152132,-0.12784274 +5.98,-0.0281148935,-0.127231296 +5.985,-0.0277590555,-0.126515685 +5.99,-0.0273538351,-0.12570912 +5.995,-0.0269104015,-0.124832392 +6,-0.0264352516,-0.123898173 +6.005,-0.0259259773,-0.122897295 +6.01,-0.0253844422,-0.121816124 +6.015,-0.0248155625,-0.120641941 +6.02,-0.0242272572,-0.119377088 +6.025,-0.0236271105,-0.118041586 +6.03,-0.0230166153,-0.116651211 +6.035,-0.0224024299,-0.115223552 +6.04,-0.0217961856,-0.113775117 +6.045,-0.0212034544,-0.11231234 +6.05,-0.0206246627,-0.11083673 +6.055,-0.0200554124,-0.109345563 +6.06,-0.0194963379,-0.107851317 +6.065,-0.0189527671,-0.106368291 +6.07,-0.0184157166,-0.104864036 +6.075,-0.0178745093,-0.103299018 +6.08,-0.0173309874,-0.101670633 +6.085,-0.016786112,-0.0999858432 +6.09,-0.0162369483,-0.0982520414 +6.095,-0.015680065,-0.0964798959 +6.1,-0.0151130528,-0.0946712689 +6.105,-0.014537285,-0.0928179179 +6.11,-0.0139561191,-0.0909181735 +6.115,-0.0133690388,-0.088972701 +6.12,-0.0127706031,-0.0869727018 +6.125,-0.0121596296,-0.0849166027 +6.13,-0.011538748,-0.082802647 +6.135,-0.0109092422,-0.0806167116 +6.14,-0.0102719237,-0.0783413186 +6.145,-0.00963006857,-0.0759730273 +6.15,-0.00899461691,-0.0735470515 +6.155,-0.00837602564,-0.0711080984 +6.16,-0.00777580508,-0.0686700334 +6.165,-0.00719411635,-0.0662305473 +6.17,-0.00663690679,-0.0638003258 +6.175,-0.00611030272,-0.0613922499 +6.18,-0.00561560565,-0.0590081019 +6.185,-0.00515136646,-0.0566530189 +6.19,-0.00471632951,-0.0543337103 +6.195,-0.00431072001,-0.0520488041 +6.2,-0.00393369435,-0.0497905784 +6.205,-0.00358451596,-0.0475642128 +6.21,-0.00326185122,-0.0453792046 +6.215,-0.00296453227,-0.0432514257 +6.22,-0.00269403666,-0.0412184409 +6.225,-0.00244853428,-0.0392875487 +6.23,-0.00222278668,-0.0374235913 +6.235,-0.00201414463,-0.0356015344 +6.24,-0.00182182639,-0.0338158874 +6.245,-0.00164408506,-0.0320613656 +6.25,-0.00147809109,-0.0303280824 +6.255,-0.00132074857,-0.0285995877 +6.26,-0.0011710944,-0.0268702613 +6.265,-0.00103058662,-0.0251462694 +6.27,-0.000898290074,-0.0234221221 +6.275,-0.000773597148,-0.0217052199 +6.28,-0.000657817541,-0.0200244137 +6.285,-0.00055125819,-0.0183923402 +6.29,-0.000454231367,-0.0168066022 +6.295,-0.00036702246,-0.0152526096 +6.3,-0.000289464481,-0.0137051936 +6.305,-0.000222589971,-0.0121605477 +6.31,-0.00016701107,-0.0106442959 +6.315,-0.000122358611,-0.00918412205 +6.32,-0.0000871505504,-0.00778078066 +6.325,-0.0000606110512,-0.0064385906 +6.33,-0.0000427671181,-0.00518805622 +6.335,-0.0000328182226,-0.00404680325 +6.34,-0.0000289094512,-0.00302161652 +6.345,-0.0000281414964,-0.00212686078 +6.35,-0.0000283518795,-0.00137313777 +6.355,-0.0000280373552,-0.000751560221 +6.36,-0.000027267655,-0.000232209709 +6.365,-0.0000262866007,0.000207115661 +6.37,-0.0000252051782,0.000569471573 +6.375,-0.0000236490019,0.000837701584 +6.38,-0.0000209101027,0.00099190329 +6.385,-0.0000168561809,0.00103653589 +6.39,-0.000011973795,0.000982393105 +6.395,-0.0000072177733,0.000841432025 +6.4,-0.00000332218862,0.000616829756 +6.405,-0.000000812215464,0.000303293012 +6.41,0.000000134520439,-0.0000754644603 +6.415,-0.000000431620384,-0.000495151042 +6.42,-0.00000196463334,-0.000954385733 +6.425,-0.00000374911593,-0.00143205858 +6.43,-0.00000557944903,-0.00190058082 +6.435,-0.00000768028696,-0.002374015 +6.44,-0.000010986496,-0.00288783708 +6.445,-0.0000162427267,-0.00346541918 +6.45,-0.0000236962378,-0.00411352109 +6.455,-0.0000333884884,-0.00482354105 +6.46,-0.0000450771767,-0.00558869662 +6.465,-0.000059131848,-0.00641338429 +6.47,-0.0000763142749,-0.0073080384 +6.475,-0.000097675062,-0.0082762553 +6.48,-0.000124155957,-0.00930918944 +6.485,-0.000157048763,-0.0104050749 +6.49,-0.000197430135,-0.0115751347 +6.495,-0.000245511702,-0.012827035 +6.5,-0.000301671838,-0.0141712295 +6.505,-0.000367573663,-0.0156323 +6.51,-0.00044647691,-0.0172346397 +6.515,-0.000541879112,-0.0189753423 +6.52,-0.000655336474,-0.0208133445 +6.525,-0.000787050727,-0.0227169844 +6.53,-0.000937919886,-0.0246872691 +6.535,-0.00110876947,-0.0267175048 +6.54,-0.0012999534,-0.0287914145 +6.545,-0.00151219101,-0.0309016105 +6.55,-0.00174629057,-0.0330345463 +6.555,-0.00200177144,-0.0351793081 +6.56,-0.00227777148,-0.0373449583 +6.565,-0.00257129754,-0.039536187 +6.57,-0.00287862711,-0.0417462319 +6.575,-0.00319970317,-0.0439748034 +6.58,-0.0035355976,-0.0462130827 +6.585,-0.00388174147,-0.0484236567 +6.59,-0.00423297119,-0.0505765228 +6.595,-0.00458790887,-0.0526752673 +6.6,-0.00494813437,-0.0547426897 +6.605,-0.00531636631,-0.0567986309 +6.61,-0.00569144381,-0.058837742 +6.615,-0.00607561087,-0.0608612937 +6.62,-0.00647564912,-0.062891962 +6.625,-0.00689461094,-0.0649424509 +6.63,-0.0073326006,-0.0670204227 +6.635,-0.00779015543,-0.0691344745 +6.64,-0.00826848935,-0.0712790804 +6.645,-0.00877078849,-0.0734374752 +6.65,-0.00929820337,-0.0755931176 +6.655,-0.00984842944,-0.077736403 +6.66,-0.0104214843,-0.0798717511 +6.665,-0.0110199343,-0.0820165771 +6.67,-0.011650055,-0.0841970147 +6.675,-0.0123107608,-0.0864052298 +6.68,-0.0129936765,-0.0886073998 +6.685,-0.0136999745,-0.0908057775 +6.69,-0.0144302346,-0.0930065326 +6.695,-0.0151765326,-0.0951957197 +6.7,-0.0159297095,-0.097351543 +6.705,-0.0166812164,-0.0994481592 +6.71,-0.0174253742,-0.10146465 +6.715,-0.0181560998,-0.103385065 +6.72,-0.0188636626,-0.105204535 +6.725,-0.0195414747,-0.106933104 +6.73,-0.0201920168,-0.108593317 +6.735,-0.0208183088,-0.110193463 +6.74,-0.021417511,-0.111724322 +6.745,-0.021985603,-0.113177908 +6.75,-0.0225164736,-0.114544402 +6.755,-0.0230111398,-0.115830802 +6.76,-0.0234755792,-0.11705453 +6.765,-0.0239061084,-0.11820258 +6.77,-0.0242971372,-0.119248092 +6.775,-0.0246555313,-0.120192278 +6.78,-0.0249927338,-0.12105863 +6.785,-0.0253110628,-0.121862485 +6.79,-0.0256108959,-0.122619851 +6.795,-0.0259006528,-0.123354974 +6.8,-0.0261897726,-0.124074765 +6.805,-0.0264812246,-0.124769418 +6.81,-0.0267705709,-0.125428142 +6.815,-0.0270534735,-0.126049836 +6.82,-0.0273284929,-0.126636321 +6.825,-0.0275941808,-0.127182367 +6.83,-0.0278474782,-0.127673133 +6.835,-0.0280779202,-0.128083012 +6.84,-0.0282813791,-0.12840365 +6.845,-0.0284628045,-0.128654047 +6.85,-0.0286218784,-0.128854658 +6.855,-0.0287525346,-0.129010257 +6.86,-0.0288455479,-0.129103793 +6.865,-0.0288964671,-0.129119379 +6.87,-0.0289092646,-0.129059297 +6.875,-0.0288743582,-0.128909128 +6.88,-0.0287759317,-0.128649833 +6.885,-0.0286156125,-0.12828943 +6.89,-0.0283944345,-0.12782251 +6.895,-0.0281084125,-0.127227242 +6.9,-0.027758746,-0.12650108 +6.905,-0.0273498296,-0.12565858 +6.91,-0.0268928796,-0.124725911 +6.915,-0.0264014916,-0.123731351 +6.92,-0.0258809364,-0.122684345 +6.925,-0.0253319001,-0.12157308 +6.93,-0.0247573757,-0.120386521 +6.935,-0.0241667497,-0.119134423 +6.94,-0.0235671274,-0.117831642 +6.945,-0.0229567868,-0.116476093 +6.95,-0.0223361742,-0.11506089 +6.955,-0.0217133434,-0.113588384 +6.96,-0.0210979305,-0.112069259 +6.965,-0.0204911076,-0.110511296 +6.97,-0.0198907967,-0.108926024 +6.975,-0.0193026035,-0.107344323 +6.98,-0.018732758,-0.105784925 +6.985,-0.0181788398,-0.10423145 +6.99,-0.0176336466,-0.10265635 +6.995,-0.017092957,-0.101047204 +7,-0.0165553196,-0.0994015455 +7.005,-0.0160161097,-0.0977138816 +7.01,-0.0154707838,-0.0959815307 +7.015,-0.0149139018,-0.0941874773 +7.02,-0.0143420252,-0.0923108907 +7.025,-0.013762254,-0.0903670838 +7.03,-0.0131784827,-0.0883783028 +7.035,-0.0125855209,-0.0863459706 +7.04,-0.0119825996,-0.0842765923 +7.045,-0.0113745233,-0.0821769687 +7.05,-0.010762948,-0.080033247 +7.055,-0.0101482115,-0.0778233155 +7.06,-0.0095298334,-0.0755339945 +7.065,-0.00891258822,-0.0731786702 +7.07,-0.00830547294,-0.070784008 +7.075,-0.00770991124,-0.0683539897 +7.08,-0.00712737639,-0.065885609 +7.085,-0.00656525242,-0.063396608 +7.09,-0.00603123701,-0.0609129687 +7.095,-0.00553033674,-0.0584636567 +7.1,-0.00506365484,-0.056076275 +7.105,-0.004627825,-0.0537513864 +7.11,-0.00422148511,-0.0514763814 +7.115,-0.00384522021,-0.0492447912 +7.12,-0.00349859215,-0.0470515782 +7.125,-0.00317883388,-0.0448893133 +7.13,-0.00288326817,-0.0427600258 +7.135,-0.00261282973,-0.0406951723 +7.14,-0.00236658574,-0.0387072401 +7.145,-0.0021397595,-0.0367731912 +7.15,-0.00193053265,-0.0348894368 +7.155,-0.00173912696,-0.033068127 +7.16,-0.00156470963,-0.0313174777 +7.165,-0.0014054609,-0.0296318766 +7.17,-0.00125751963,-0.027984982 +7.175,-0.00111853051,-0.0263480874 +7.18,-0.000987552441,-0.0247017342 +7.185,-0.000863871687,-0.0230404564 +7.19,-0.000746542949,-0.0213686052 +7.195,-0.000635748493,-0.019701517 +7.2,-0.000532655814,-0.0180584324 +7.205,-0.000438352693,-0.0164510595 +7.21,-0.000354123411,-0.0148868922 +7.215,-0.000279709296,-0.0133542653 +7.22,-0.000215301687,-0.0118494952 +7.225,-0.000161276464,-0.010404528 +7.23,-0.000117397853,-0.00903086474 +7.235,-0.0000825539834,-0.00770386777 +7.24,-0.0000562787021,-0.00641409761 +7.245,-0.0000390317334,-0.00517476088 +7.25,-0.0000298806164,-0.00400429166 +7.255,-0.0000269358895,-0.0029286346 +7.26,-0.0000272473938,-0.00197423347 +7.265,-0.0000285249286,-0.00115953474 +7.27,-0.0000297146538,-0.000488683354 +7.275,-0.0000303649644,0.0000485130257 +7.28,-0.0000305527423,0.00046541445 +7.285,-0.0000299666134,0.000778461888 +7.29,-0.0000280074269,0.000988579432 +7.295,-0.0000243872079,0.00108805414 +7.3,-0.0000194180033,0.00109612983 +7.305,-0.000014059402,0.00103903337 +7.31,-0.00000909820911,0.000924988752 +7.315,-0.00000517559697,0.000736193741 +7.32,-0.00000231053411,0.000449772487 +7.325,-0.000000667849763,0.0000730807466 +7.33,-0.000000449006325,-0.000377821786 +7.335,-0.00000122393772,-0.000896392 +7.34,-0.00000311355977,-0.00145953239 +7.345,-0.00000597764101,-0.00203356444 +7.35,-0.00000979902158,-0.00261699311 +7.355,-0.0000149923487,-0.00321992381 +7.36,-0.0000215295963,-0.00384609905 +7.365,-0.0000296357559,-0.00450772101 +7.37,-0.000039260974,-0.00520427259 +7.375,-0.0000507246044,-0.00593488144 +7.38,-0.0000653057791,-0.00672641863 +7.385,-0.0000840854285,-0.0076147434 +7.39,-0.000107883644,-0.00860759485 +7.395,-0.000137093663,-0.00968598756 +7.4,-0.000172013815,-0.0108358757 +7.405,-0.000213623687,-0.0120546609 +7.41,-0.000262525315,-0.0133411222 +7.415,-0.000319602649,-0.0146955477 +7.42,-0.000386615046,-0.0161327378 +7.425,-0.000466804859,-0.0176793171 +7.43,-0.000562994998,-0.0193416692 +7.435,-0.000676584081,-0.0211031123 +7.44,-0.000808093893,-0.0229581057 +7.445,-0.000958339371,-0.024910524 +7.45,-0.00112959956,-0.026959335 +7.455,-0.00132421669,-0.029092005 +7.46,-0.00154262391,-0.0312760328 +7.465,-0.00178364337,-0.0334732884 +7.47,-0.00204531999,-0.0356596113 +7.475,-0.0023262444,-0.0378440421 +7.48,-0.0026246048,-0.040037199 +7.485,-0.00293593819,-0.0422279736 +7.49,-0.00326194948,-0.0444291025 +7.495,-0.00360525466,-0.046649835 +7.5,-0.00396219594,-0.0488649862 +7.505,-0.00432841623,-0.0510579859 +7.51,-0.00470048175,-0.0532284617 +7.515,-0.00507802867,-0.0553825612 +7.52,-0.00546263322,-0.0575203846 +7.525,-0.00585275809,-0.0596214334 +7.53,-0.00624772745,-0.0616714976 +7.535,-0.00665132118,-0.0636832194 +7.54,-0.0070680491,-0.0656819376 +7.545,-0.00750127251,-0.0676966639 +7.55,-0.00795279095,-0.0697482875 +7.555,-0.00842465506,-0.0718360942 +7.56,-0.00892064514,-0.0739534363 +7.565,-0.00944564709,-0.0760996695 +7.57,-0.00999742601,-0.0782633505 +7.575,-0.0105710691,-0.0804275378 +7.58,-0.0111683204,-0.0825974648 +7.585,-0.011793601,-0.0847808987 +7.59,-0.0124448713,-0.086957304 +7.595,-0.0131154124,-0.0891016324 +7.6,-0.0138054065,-0.0912228161 +7.605,-0.0145180262,-0.0933445307 +7.61,-0.0152511544,-0.0954716333 +7.615,-0.0159989675,-0.09759605 +7.62,-0.016753758,-0.0996946701 +7.625,-0.0175075441,-0.101737598 +7.63,-0.0182540406,-0.103706683 +7.635,-0.018985111,-0.105593532 +7.64,-0.0196890952,-0.107388312 +7.645,-0.0203589411,-0.109085352 +7.65,-0.0209966425,-0.110686969 +7.655,-0.0216008638,-0.112191004 +7.66,-0.0221674604,-0.113596906 +7.665,-0.0226939415,-0.114910991 +7.67,-0.0231836376,-0.116155361 +7.675,-0.0236479728,-0.117359359 +7.68,-0.0240863232,-0.118513616 +7.685,-0.0244886953,-0.119583917 +7.69,-0.0248583678,-0.120565534 +7.695,-0.0252017541,-0.121468236 +7.7,-0.0255180593,-0.122292931 +7.705,-0.0258097502,-0.123050337 +7.71,-0.0260805115,-0.12375003 +7.715,-0.0263370259,-0.12439186 +7.72,-0.0265893213,-0.124986269 +7.725,-0.0268396426,-0.125547482 +7.73,-0.0270861157,-0.126087578 +7.735,-0.0273284505,-0.126614892 +7.74,-0.0275689345,-0.127129475 +7.745,-0.0278088431,-0.127619544 +7.75,-0.0280356773,-0.128048717 +7.755,-0.0282377952,-0.128393233 +7.76,-0.0284160761,-0.128662141 +7.765,-0.0285684376,-0.128864559 +7.77,-0.0286882624,-0.128997008 +7.775,-0.0287650698,-0.129039885 +7.78,-0.0287976427,-0.128989875 +7.785,-0.0287931136,-0.128863194 +7.79,-0.0287483131,-0.128664208 +7.795,-0.02865455,-0.128393524 +7.8,-0.0285077246,-0.128050645 +7.805,-0.0283063699,-0.127621074 +7.81,-0.0280460638,-0.127078227 +7.815,-0.0277252459,-0.126411542 +7.82,-0.02734213,-0.125621652 +7.825,-0.0268980711,-0.12471196 +7.83,-0.0264060956,-0.123706324 +7.835,-0.0258770843,-0.122621002 +7.84,-0.025310738,-0.121444321 +7.845,-0.0247133887,-0.120180972 +7.85,-0.0241012852,-0.118864039 +7.855,-0.0234844239,-0.117519715 +7.86,-0.0228647123,-0.116152732 +7.865,-0.0222397549,-0.11474823 +7.87,-0.021611962,-0.113294348 +7.875,-0.0209896739,-0.111790557 +7.88,-0.0203730331,-0.110235143 +7.885,-0.0197591856,-0.108634203 +7.89,-0.0191521183,-0.10700858 +7.895,-0.0185567866,-0.105371448 +7.9,-0.0179760031,-0.103721773 +7.905,-0.0174092133,-0.102058736 +7.91,-0.0168523569,-0.100382521 +7.915,-0.0163037388,-0.0986981451 +7.92,-0.0157634679,-0.0970136064 +7.925,-0.0152279638,-0.0953209863 +7.93,-0.0146882378,-0.0935832185 +7.935,-0.0141358365,-0.0917618585 +7.94,-0.0135733748,-0.0898594292 +7.945,-0.0130042188,-0.0878939484 +7.95,-0.0124219099,-0.0858614096 +7.955,-0.0118251666,-0.0837681921 +7.96,-0.0112209667,-0.0816303529 +7.965,-0.0106139107,-0.0794459232 +7.97,-0.0100079606,-0.077215863 +7.975,-0.00940411902,-0.0749436921 +7.98,-0.00880323256,-0.0726368338 +7.985,-0.00821070377,-0.0703072523 +7.99,-0.00762881308,-0.0679472684 +7.995,-0.00705824523,-0.0655400263 +8,-0.00650333732,-0.0630806631 +8.005,-0.00597041658,-0.0605862145 +8.01,-0.00546618726,-0.0580949776 +8.015,-0.00499391575,-0.0556457878 +8.02,-0.00455128451,-0.0532488866 +8.025,-0.00413742241,-0.0509002153 +8.03,-0.00375587638,-0.0486153411 +8.035,-0.00340827459,-0.0464060099 +8.04,-0.00309073804,-0.0442596725 +8.045,-0.00279930714,-0.0421722931 +8.05,-0.00253297051,-0.0401525068 +8.055,-0.00228926617,-0.0381873766 +8.06,-0.00206509694,-0.0362537095 +8.065,-0.00185798452,-0.0343458137 +8.07,-0.0016675991,-0.032477857 +8.075,-0.00149461367,-0.0306742645 +8.08,-0.00133737964,-0.0289478736 +8.085,-0.0011935621,-0.0272918366 +8.09,-0.00106018326,-0.0256770669 +8.095,-0.00093563832,-0.024080276 +8.1,-0.000820209116,-0.0225033216 +8.105,-0.000712412387,-0.0209378429 +8.11,-0.000610967727,-0.019371729 +8.115,-0.000515652776,-0.0178020039 +8.12,-0.000426920227,-0.0162306456 +8.125,-0.000346114516,-0.0146680027 +8.13,-0.000273367011,-0.013115252 +8.135,-0.000209306927,-0.0115868142 +8.14,-0.000155587387,-0.0101293241 +8.145,-0.000112114022,-0.00876419366 +8.15,-0.0000781050262,-0.00747310059 +8.155,-0.0000528468985,-0.00624245956 +8.16,-0.0000359275266,-0.00506832874 +8.165,-0.0000264482717,-0.00395273748 +8.17,-0.0000226904058,-0.00291620651 +8.175,-0.0000228161593,-0.00197659541 +8.18,-0.0000250287513,-0.00113319911 +8.185,-0.0000285985682,-0.000395674829 +8.19,-0.0000323688664,0.00021807065 +8.195,-0.000035343805,0.000700586023 +8.2,-0.000036422717,0.00105060719 +8.205,-0.0000345276111,0.00126221869 +8.21,-0.0000297860817,0.00132889674 +8.215,-0.0000233708072,0.0012770548 +8.22,-0.000017066593,0.00115236327 +8.225,-0.0000118306564,0.000977577804 +8.23,-0.00000762338271,0.000747104573 +8.235,-0.00000425094123,0.000444324341 +8.24,-0.00000165335342,0.0000712918675 +8.245,0.0000000448391163,-0.000365032969 +8.25,0.000000243548231,-0.000864164881 +8.255,-0.00000132188393,-0.00141884697 +8.26,-0.00000519382815,-0.0020257635 +8.265,-0.0000109391744,-0.00268419074 +8.27,-0.0000180924896,-0.00338716618 +8.275,-0.0000264935999,-0.00412083885 +8.28,-0.0000358170609,-0.00487912734 +8.285,-0.0000465921107,-0.00565034166 +8.29,-0.0000589109975,-0.00641611199 +8.295,-0.0000742979604,-0.00720378853 +8.3,-0.0000943298173,-0.00806557734 +8.305,-0.000119446125,-0.00901775507 +8.31,-0.000150012456,-0.0100568526 +8.315,-0.000186332044,-0.011184694 +8.32,-0.00022916915,-0.0124016678 +8.325,-0.000279830591,-0.0137142964 +8.33,-0.000339378691,-0.0151203845 +8.335,-0.000409321047,-0.0166118089 +8.34,-0.000491897044,-0.0181908307 +8.345,-0.000589484006,-0.0198472059 +8.35,-0.000703187868,-0.0215722934 +8.355,-0.000833590173,-0.0233709854 +8.36,-0.000981910825,-0.0252527255 +8.365,-0.00115135749,-0.0272371364 +8.37,-0.0013460907,-0.0293337299 +8.375,-0.00156712579,-0.0315188076 +8.38,-0.00181265326,-0.0337472647 +8.385,-0.00208023225,-0.0359923761 +8.39,-0.0023690104,-0.0382563915 +8.395,-0.00267668347,-0.0405286637 +8.4,-0.00299916578,-0.0427833757 +8.405,-0.00333561293,-0.0450161122 +8.41,-0.00368714219,-0.0472301295 +8.415,-0.00405095401,-0.0494168076 +8.42,-0.00442369821,-0.0515804896 +8.425,-0.00480383674,-0.0537389424 +8.43,-0.0051910877,-0.0559024054 +8.435,-0.0055880209,-0.058072606 +8.44,-0.00599510141,-0.0602344257 +8.445,-0.00640866804,-0.0623580124 +8.45,-0.00682681263,-0.0644313933 +8.455,-0.00725280072,-0.0664715797 +8.46,-0.00769012025,-0.0685004744 +8.465,-0.00814031579,-0.0705294654 +8.47,-0.0086053387,-0.0725564802 +8.475,-0.00908998853,-0.0745862652 +8.48,-0.00960235843,-0.0766442658 +8.485,-0.0101439252,-0.0787407346 +8.49,-0.0107096618,-0.080868823 +8.495,-0.0113016327,-0.0830349821 +8.5,-0.0119236428,-0.0852350884 +8.505,-0.012572817,-0.0874336911 +8.51,-0.0132438375,-0.0896000174 +8.515,-0.0139326242,-0.0917300947 +8.52,-0.0146376122,-0.0938300953 +8.525,-0.0153593564,-0.0959115491 +8.53,-0.0160952148,-0.0979773667 +8.535,-0.0168375952,-0.100009612 +8.54,-0.0175809987,-0.101992442 +8.545,-0.0183230507,-0.103926127 +8.55,-0.019061718,-0.105820302 +8.555,-0.019785751,-0.10766201 +8.56,-0.0204812206,-0.109423078 +8.565,-0.0211462013,-0.111091595 +8.57,-0.0217758845,-0.112650785 +8.575,-0.0223622605,-0.114087819 +8.58,-0.0229006712,-0.115407076 +8.585,-0.0233923535,-0.116628264 +8.59,-0.0238498475,-0.117784122 +8.595,-0.0242774049,-0.118877184 +8.6,-0.0246702154,-0.119892353 +8.605,-0.0250323126,-0.120837474 +8.61,-0.0253691924,-0.121725316 +8.615,-0.0256835734,-0.122562966 +8.62,-0.0259783134,-0.123354987 +8.625,-0.0262513581,-0.124088097 +8.63,-0.026501091,-0.124739052 +8.635,-0.0267349784,-0.125311445 +8.64,-0.0269601025,-0.125827931 +8.645,-0.0271729359,-0.126298326 +8.65,-0.0273734941,-0.12673343 +8.655,-0.0275717836,-0.12715163 +8.66,-0.0277727872,-0.127552356 +8.665,-0.0279706162,-0.127917935 +8.67,-0.0281559131,-0.128236505 +8.675,-0.0283247288,-0.128511898 +8.68,-0.0284761075,-0.128745879 +8.685,-0.0286010469,-0.128915965 +8.69,-0.0286855762,-0.128988617 +8.695,-0.028723885,-0.128948833 +8.7,-0.0287161275,-0.128802426 +8.705,-0.0286625001,-0.128563862 +8.71,-0.0285605972,-0.128247854 +8.715,-0.0284051224,-0.127855498 +8.72,-0.0281960994,-0.127377792 +8.725,-0.027937145,-0.126808766 +8.73,-0.0276300006,-0.126151895 +8.735,-0.027270704,-0.125404173 +8.74,-0.0268526033,-0.124554253 +8.745,-0.0263827651,-0.123608325 +8.75,-0.0258701043,-0.12256614 +8.755,-0.0253105963,-0.121402773 +8.76,-0.0247083691,-0.120119288 +8.765,-0.0240804378,-0.1187542 +8.77,-0.023439648,-0.117339861 +8.775,-0.0227932297,-0.11589351 +8.78,-0.0221447439,-0.114418486 +8.785,-0.0214959402,-0.11290849 +8.79,-0.0208555394,-0.11136973 +8.795,-0.0202281766,-0.109811938 +8.8,-0.0196099084,-0.108235067 +8.805,-0.0189997119,-0.106636817 +8.81,-0.0183967588,-0.105005303 +8.815,-0.017803709,-0.103331928 +8.82,-0.0172228394,-0.101622538 +8.825,-0.01664916,-0.0998795507 +8.83,-0.0160812453,-0.0981160835 +8.835,-0.0155241218,-0.0963584073 +8.84,-0.0149792283,-0.0946131112 +8.845,-0.0144393972,-0.0928508972 +8.85,-0.0138961488,-0.0910403778 +8.855,-0.0133502442,-0.089184394 +8.86,-0.0128011514,-0.0872856776 +8.865,-0.0122419307,-0.0853278719 +8.87,-0.0116684189,-0.0832991835 +8.875,-0.0110812424,-0.0811902935 +8.88,-0.0104855039,-0.0789986381 +8.885,-0.00988659358,-0.0767379542 +8.89,-0.0092883672,-0.074432058 +8.895,-0.00869254849,-0.0720985538 +8.9,-0.00810350559,-0.0697499386 +8.905,-0.00752796076,-0.0673963935 +8.91,-0.00696849138,-0.0650258934 +8.915,-0.00642540457,-0.0626198578 +8.92,-0.00590242299,-0.0601846237 +8.925,-0.00540422888,-0.0577432876 +8.93,-0.00493354695,-0.0553169173 +8.935,-0.00448951496,-0.0529062883 +8.94,-0.00407069776,-0.0505022891 +8.945,-0.0036829598,-0.0481352289 +8.95,-0.00333007902,-0.0458391343 +8.955,-0.00300886178,-0.0436224604 +8.96,-0.00271620098,-0.0415007761 +8.965,-0.00244963583,-0.0394757418 +8.97,-0.00220674277,-0.0375270018 +8.975,-0.00198593032,-0.0356319192 +8.98,-0.00178480298,-0.0337757245 +8.985,-0.00160064176,-0.031949556 +8.99,-0.00143251915,-0.0301609196 +8.995,-0.00127937961,-0.0284269699 +9,-0.0011384267,-0.0267423242 +9.005,-0.00100727668,-0.0250872972 +9.01,-0.000885236124,-0.0234579135 +9.015,-0.000773691694,-0.0218768394 +9.02,-0.000672463082,-0.0203519849 +9.025,-0.000578959784,-0.0188635972 +9.03,-0.000491963318,-0.0173929231 +9.035,-0.00041063318,-0.0159238597 +9.04,-0.000335624171,-0.0144473367 +9.045,-0.000267052555,-0.0129585784 +9.05,-0.00020563211,-0.0114681164 +9.055,-0.000153072134,-0.0100122365 +9.06,-0.000109991138,-0.00861789774 +9.065,-0.0000760723008,-0.0072900849 +9.07,-0.0000508093435,-0.0060337866 +9.075,-0.0000337643025,-0.00485327131 +9.08,-0.0000237606918,-0.00375786696 +9.085,-0.0000192598102,-0.00277155158 +9.09,-0.00001886098,-0.00189854627 +9.095,-0.0000212754566,-0.00110945752 +9.1,-0.0000258042454,-0.000393750008 +9.105,-0.0000312729089,0.000229422319 +9.11,-0.0000359431538,0.000749918455 +9.115,-0.0000388281838,0.00115806579 +9.12,-0.0000383524484,0.00143044501 +9.125,-0.0000349247339,0.00155293466 +9.13,-0.0000294262844,0.0015356837 +9.135,-0.0000232550353,0.00140446682 +9.14,-0.0000173987319,0.00118498967 +9.145,-0.000011606064,0.000880842497 +9.15,-0.00000629688489,0.000493842882 +9.155,-0.00000212697858,0.0000422130136 +9.16,0.000000251863795,-0.000454668412 +9.165,0.000000565538487,-0.000975259038 +9.17,-0.00000147193248,-0.00151974868 +9.175,-0.00000562415212,-0.00211239184 +9.18,-0.0000116564546,-0.00276710139 +9.185,-0.0000192275761,-0.00348350059 +9.19,-0.0000284019039,-0.00425448408 +9.195,-0.0000394272552,-0.00507687808 +9.2,-0.0000527475311,-0.00593523773 +9.205,-0.0000681974411,-0.00679840497 +9.21,-0.0000862627104,-0.00767675991 +9.215,-0.000108116319,-0.00860152481 +9.22,-0.000134202492,-0.0095753308 +9.225,-0.000165184486,-0.010598027 +9.23,-0.0002017926,-0.0116780422 +9.235,-0.000245336763,-0.012830762 +9.24,-0.000297508914,-0.0140848452 +9.245,-0.000359565744,-0.0154639536 +9.25,-0.000432542107,-0.0169640873 +9.255,-0.000517551259,-0.018567391 +9.26,-0.000616668286,-0.0202584547 +9.265,-0.000731791388,-0.0220220754 +9.27,-0.000863344969,-0.0238488713 +9.275,-0.00101262324,-0.0257359504 +9.28,-0.00118236503,-0.027693216 +9.285,-0.00137647878,-0.0297389927 +9.29,-0.00159666747,-0.0318631367 +9.295,-0.00184079788,-0.0340351032 +9.3,-0.00210833587,-0.0362519719 +9.305,-0.00239989045,-0.0385267658 +9.31,-0.00271460193,-0.0408482051 +9.315,-0.00304983957,-0.0431860792 +9.32,-0.00340235025,-0.0455125141 +9.325,-0.00376889969,-0.0478020024 +9.33,-0.00414585869,-0.0500394539 +9.335,-0.00453027812,-0.052232532 +9.34,-0.00491950595,-0.0543944452 +9.345,-0.00531358259,-0.0565353449 +9.35,-0.00571618201,-0.0586692983 +9.355,-0.00613054669,-0.0608033804 +9.36,-0.00655426399,-0.0629233355 +9.365,-0.00698309108,-0.0650173461 +9.37,-0.0074199248,-0.0671034925 +9.375,-0.00786871206,-0.0691948792 +9.38,-0.00832882447,-0.0712778839 +9.385,-0.00880063706,-0.0733332648 +9.39,-0.00928557337,-0.075354057 +9.395,-0.00978992492,-0.0773624159 +9.4,-0.0103185674,-0.0793847198 +9.405,-0.0108686892,-0.081428969 +9.41,-0.0114439936,-0.0835128689 +9.415,-0.0120500393,-0.08564082 +9.42,-0.0126865175,-0.087789804 +9.425,-0.0133526739,-0.0899478002 +9.43,-0.0140421352,-0.092102264 +9.435,-0.0147482091,-0.0942378793 +9.44,-0.0154710025,-0.0963522253 +9.445,-0.0162081642,-0.0984355493 +9.45,-0.0169496792,-0.100457631 +9.455,-0.0176865582,-0.102398393 +9.46,-0.018419363,-0.104275673 +9.465,-0.0191496118,-0.106114899 +9.47,-0.0198697066,-0.107914619 +9.475,-0.0205695664,-0.109658243 +9.48,-0.0212451791,-0.111332997 +9.485,-0.0218934404,-0.112925035 +9.49,-0.0225066506,-0.114419957 +9.495,-0.0230754661,-0.115809831 +9.5,-0.0235954299,-0.117096051 +9.505,-0.0240697296,-0.118283881 +9.51,-0.0245014379,-0.119368952 +9.515,-0.0248906602,-0.12034868 +9.52,-0.0252392222,-0.121234419 +9.525,-0.0255544731,-0.122049678 +9.53,-0.0258474514,-0.122823449 +9.535,-0.0261253978,-0.123571812 +9.54,-0.026387779,-0.124283557 +9.545,-0.0266288761,-0.124930564 +9.55,-0.02685375,-0.12551357 +9.555,-0.0270709125,-0.126051584 +9.56,-0.0272729594,-0.126534831 +9.565,-0.0274558863,-0.12695869 +9.57,-0.0276279876,-0.127332623 +9.575,-0.0277931695,-0.127654471 +9.58,-0.0279510271,-0.127924044 +9.585,-0.0280986679,-0.128152043 +9.59,-0.0282333719,-0.128353052 +9.595,-0.0283569934,-0.12853366 +9.6,-0.0284678071,-0.128682573 +9.605,-0.0285538616,-0.128768484 +9.61,-0.0286038495,-0.12876521 +9.615,-0.0286108824,-0.128664067 +9.62,-0.0285710033,-0.128466666 +9.625,-0.0284823844,-0.128179425 +9.63,-0.0283344864,-0.127787258 +9.635,-0.0281229588,-0.1272738 +9.64,-0.0278568113,-0.126651489 +9.645,-0.0275429667,-0.125940999 +9.65,-0.0271807638,-0.125153024 +9.655,-0.0267659765,-0.124286757 +9.66,-0.0263048034,-0.123348565 +9.665,-0.0258053668,-0.122334035 +9.67,-0.0252639099,-0.121214661 +9.675,-0.0246804743,-0.11998419 +9.68,-0.024063475,-0.118660503 +9.685,-0.0234211086,-0.117256721 +9.69,-0.0227623572,-0.115785297 +9.695,-0.0220934566,-0.114253119 +9.7,-0.0214178858,-0.112659424 +9.705,-0.0207456841,-0.111023365 +9.71,-0.0200891314,-0.109380689 +9.715,-0.0194507825,-0.107751394 +9.72,-0.018826212,-0.106127385 +9.725,-0.0182134731,-0.10449121 +9.73,-0.0176147935,-0.102831714 +9.735,-0.0170307764,-0.101142088 +9.74,-0.0164563519,-0.0994168498 +9.745,-0.0158849961,-0.097651453 +9.75,-0.015319709,-0.0958628014 +9.755,-0.0147650051,-0.0940615017 +9.76,-0.0142143349,-0.0922262844 +9.765,-0.0136644327,-0.0903521412 +9.77,-0.0131170977,-0.0884558264 +9.775,-0.0125717142,-0.0865452847 +9.78,-0.0120263673,-0.0846179033 +9.785,-0.0114760947,-0.0826549371 +9.79,-0.0109148321,-0.080622947 +9.795,-0.0103433848,-0.0785021711 +9.8,-0.00976560428,-0.0762996545 +9.805,-0.00918402627,-0.0740321552 +9.81,-0.00859907653,-0.0717056243 +9.815,-0.00801380469,-0.0693297276 +9.82,-0.00743913389,-0.0669297171 +9.825,-0.00688104938,-0.0645140312 +9.83,-0.0063408867,-0.0620809884 +9.835,-0.00582211437,-0.059647616 +9.84,-0.00532823398,-0.0572370838 +9.845,-0.00486185757,-0.0548586931 +9.85,-0.00442221234,-0.0524971793 +9.855,-0.00400753664,-0.0501310396 +9.86,-0.0036212075,-0.0477695222 +9.865,-0.0032667499,-0.0454417902 +9.87,-0.00294259737,-0.0431695305 +9.875,-0.0026460562,-0.0409764059 +9.88,-0.00237515718,-0.0388726362 +9.885,-0.00212855043,-0.0368499527 +9.89,-0.00190691787,-0.0349127759 +9.895,-0.00170887039,-0.03306149 +9.9,-0.0015298894,-0.0312759628 +9.905,-0.00136733222,-0.0295481342 +9.91,-0.00121988737,-0.0278804258 +9.915,-0.00108481404,-0.0262481674 +9.92,-0.000959134178,-0.0246181613 +9.925,-0.000842049186,-0.0229893325 +9.93,-0.000734780623,-0.021388893 +9.935,-0.000637439777,-0.0198394325 +9.94,-0.000548060897,-0.0183416893 +9.945,-0.000465159069,-0.0168848397 +9.95,-0.000388334571,-0.0154558919 +9.955,-0.000318195149,-0.014047896 +9.96,-0.000255091002,-0.0126545569 +9.965,-0.000199008978,-0.0112747949 +9.97,-0.000150436311,-0.00991284094 +9.975,-0.000109327953,-0.00857090876 +9.98,-0.0000757193017,-0.0072595631 +9.985,-0.0000499472341,-0.00598592666 +9.99,-0.0000317691554,-0.00476120977 +9.995,-0.0000212651478,-0.00361780561 +10,-0.0000170890481,-0.00259659438 diff --git a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl index f2f1f84fe..7f520de8b 100644 --- a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl +++ b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl @@ -1,8 +1,8 @@ include("../validation_util.jl") # activate for interactive plot -#using GLMakie -using CairoMakie +using GLMakie +#using CairoMakie using CSV using DataFrames using JSON @@ -12,13 +12,7 @@ using Printf elastic_plate = (length=0.35, thickness=0.02) # Load the reference simulation data -dx_data = CSV.read("validation/oscillating_beam_2d/Turek_dx_T.csv", DataFrame) -dy_data = CSV.read("validation/oscillating_beam_2d/Turek_dy_T.csv", DataFrame) - -# Adjustments to data -dx_data.time .+= 0.015 -dx_data.displacement .+= 0.00005 -dy_data.displacement .-= 0.001 +ref = CSV.read("validation/oscillating_beam_2d/oscillating_beam_l5_dt_005.csv", DataFrame) # Get the list of JSON files reference_files = glob("validation_reference_oscillating_beam_2d_*.json", @@ -65,8 +59,8 @@ for file_name in input_files displacements = [v - initial_position for v in positions] mse_results = occursin(key_pattern_x, key) ? - calculate_mse(dx_data, data["time"], displacements) : - calculate_mse(dy_data, data["time"], displacements) + calculate_mse(ref.time, ref.Ux, data["time"], displacements) : + calculate_mse(ref.time, ref.Uy, data["time"], displacements) label = "$label_prefix dp = $(@sprintf("%.8f", particle_spacing)) mse=$(@sprintf("%.8f", mse_results))" lines!(ax, times, displacements, label=label) @@ -75,9 +69,9 @@ for file_name in input_files end # Plot reference data -lines!(ax1, dx_data.time, dx_data.displacement, color=:black, linestyle=:dash, +lines!(ax1, ref.time, ref.Ux, color=:black, linestyle=:dash, label="Turek and Hron 2006") -lines!(ax2, dy_data.time, dy_data.displacement, color=:black, linestyle=:dash, +lines!(ax2, ref.time, ref.Uy, color=:black, linestyle=:dash, label="Turek and Hron 2006") legend_ax1 = Legend(fig[1, 2], ax1) diff --git a/validation/validation_util.jl b/validation/validation_util.jl index ac687225d..0c89d44ed 100644 --- a/validation/validation_util.jl +++ b/validation/validation_util.jl @@ -1,30 +1,30 @@ using Interpolations using Statistics -function calculate_mse(reference_data, simulation_time, simulation_values) +function calculate_mse(reference_time, reference_values, simulation_time, simulation_values) interp_func = LinearInterpolation(simulation_time, simulation_values, extrapolation_bc=Flat()) # Find the common time range common_time_range = filter(t -> t >= maximum([ minimum(simulation_time), - minimum(reference_data.time), + minimum(reference_time), ]) && t <= minimum([ maximum(simulation_time), - maximum(reference_data.time), - ]), reference_data.time) + maximum(reference_time), + ]), reference_time) # Interpolate simulation data at the common time points interpolated_values = [interp_func(t) for t in common_time_range] # Extract the corresponding reference displacement values - reference_displacement = [reference_data.displacement[findfirst(==(t), - reference_data.time)] + filtered_values = [reference_values[findfirst(==(t), + reference_time)] for t in common_time_range] # Calculate MSE only over the common time range - mse = mean((interpolated_values .- reference_displacement) .^ 2) + mse = mean((interpolated_values .- filtered_values) .^ 2) return mse end From b7c0911904e427c75b0f9b2888a748851ac1c46d Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 22 Feb 2024 19:22:00 +0100 Subject: [PATCH 186/212] update --- .../oscillating_beam_2d/plot_oscillating_beam_results.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl index 7f520de8b..913ab30dd 100644 --- a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl +++ b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl @@ -1,8 +1,8 @@ include("../validation_util.jl") # activate for interactive plot -using GLMakie -#using CairoMakie +#using GLMakie +using CairoMakie using CSV using DataFrames using JSON From 95eecd4f2a43a56ece5afae6b23920ebd6a11f13 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 27 Feb 2024 03:15:40 +0100 Subject: [PATCH 187/212] format --- validation/validation_util.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/validation/validation_util.jl b/validation/validation_util.jl index 0c89d44ed..857a9f1e5 100644 --- a/validation/validation_util.jl +++ b/validation/validation_util.jl @@ -20,8 +20,8 @@ function calculate_mse(reference_time, reference_values, simulation_time, simula # Extract the corresponding reference displacement values filtered_values = [reference_values[findfirst(==(t), - reference_time)] - for t in common_time_range] + reference_time)] + for t in common_time_range] # Calculate MSE only over the common time range mse = mean((interpolated_values .- filtered_values) .^ 2) From 178e68b21ee4de5cd6912cedd275213f5cc39537 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 27 Feb 2024 17:37:17 +0100 Subject: [PATCH 188/212] rename --- validation/oscillating_beam_2d/README.md | 2 +- validation/oscillating_beam_2d/plot_oscillating_beam_results.jl | 2 +- .../{oscillating_beam_l5_dt_005.csv => reference_turek.csv} | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename validation/oscillating_beam_2d/{oscillating_beam_l5_dt_005.csv => reference_turek.csv} (100%) diff --git a/validation/oscillating_beam_2d/README.md b/validation/oscillating_beam_2d/README.md index b22ddbd8c..1e75d9619 100644 --- a/validation/oscillating_beam_2d/README.md +++ b/validation/oscillating_beam_2d/README.md @@ -4,6 +4,6 @@ The following files are provided here: 2) Comparison with reference: compare_reference_oscillating_beam_results.jl 3) Comparison with TrixiParticles.jl and literature reference: plot_oscillating_beam_results.jl 4) TrixiParticles.jl reference files: validation_reference_oscillating_beam_2d_[9, 21, 35].j (9 is the default CI resolution, note that resolution 21 takes about 30-50 minutes while 35 takes about 4-6 hours) -5) Reference results obtained from here: +5) Reference file reference_turek.csv obtained from here: https://wwwold.mathematik.tu-dortmund.de/~featflow/en/benchmarks/cfdbenchmarking/fsi_benchmark/fsi_tests/fsi_csm_tests.html diff --git a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl index 913ab30dd..8a837586f 100644 --- a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl +++ b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl @@ -12,7 +12,7 @@ using Printf elastic_plate = (length=0.35, thickness=0.02) # Load the reference simulation data -ref = CSV.read("validation/oscillating_beam_2d/oscillating_beam_l5_dt_005.csv", DataFrame) +ref = CSV.read("validation/oscillating_beam_2d/reference_turek.csv", DataFrame) # Get the list of JSON files reference_files = glob("validation_reference_oscillating_beam_2d_*.json", diff --git a/validation/oscillating_beam_2d/oscillating_beam_l5_dt_005.csv b/validation/oscillating_beam_2d/reference_turek.csv similarity index 100% rename from validation/oscillating_beam_2d/oscillating_beam_l5_dt_005.csv rename to validation/oscillating_beam_2d/reference_turek.csv From 47144313e469653a3195f927882366a18aafd197 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Tue, 27 Feb 2024 22:01:10 +0100 Subject: [PATCH 189/212] remove the dependencies --- Project.toml | 2 ++ validation/validation_util.jl | 19 ++++++++++++------- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/Project.toml b/Project.toml index 7a6e56745..751ed2396 100644 --- a/Project.toml +++ b/Project.toml @@ -10,6 +10,7 @@ Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" DiffEqCallbacks = "459566f4-90b8-5000-8ac3-15dfb0a30def" FastPow = "c0e83750-1142-43a8-81cf-6c956b72b4d1" ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" +Glob = "c27321d9-0574-5035-807b-f59d2c89b15c" JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" Morton = "2a6d852e-3fac-5a38-885c-fe708af2d09e" @@ -32,6 +33,7 @@ DataFrames = "1.6" DiffEqCallbacks = "2.25" FastPow = "0.1" ForwardDiff = "0.10" +Glob = "1.3" JSON = "0.21" Morton = "0.1" MuladdMacro = "0.2" diff --git a/validation/validation_util.jl b/validation/validation_util.jl index 857a9f1e5..7a01b5004 100644 --- a/validation/validation_util.jl +++ b/validation/validation_util.jl @@ -1,10 +1,15 @@ -using Interpolations -using Statistics +function linear_interpolation(t, xp, yp) + for i in 1:length(xp)-1 + if xp[i] <= t && t <= xp[i+1] + # Calculate the slope and interpolate + slope = (yp[i+1] - yp[i]) / (xp[i+1] - xp[i]) + return yp[i] + slope * (t - xp[i]) + end + end + error("t $t is outside the interpolation range") +end function calculate_mse(reference_time, reference_values, simulation_time, simulation_values) - interp_func = LinearInterpolation(simulation_time, simulation_values, - extrapolation_bc=Flat()) - # Find the common time range common_time_range = filter(t -> t >= maximum([ minimum(simulation_time), @@ -16,7 +21,7 @@ function calculate_mse(reference_time, reference_values, simulation_time, simula ]), reference_time) # Interpolate simulation data at the common time points - interpolated_values = [interp_func(t) for t in common_time_range] + interpolated_values = [linear_interpolation(t, simulation_time, simulation_values) for t in common_time_range] # Extract the corresponding reference displacement values filtered_values = [reference_values[findfirst(==(t), @@ -24,7 +29,7 @@ function calculate_mse(reference_time, reference_values, simulation_time, simula for t in common_time_range] # Calculate MSE only over the common time range - mse = mean((interpolated_values .- filtered_values) .^ 2) + mse = sum((interpolated_values .- filtered_values) .^ 2) / length(common_time_range) return mse end From cbeee991ba88767db9cb1be03cd4a7c9f0e45dd0 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 28 Feb 2024 02:27:10 +0100 Subject: [PATCH 190/212] remove dependencies --- .../compare_reference_oscillating_beam_results.jl | 4 ---- validation/validation_util.jl | 1 + 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl b/validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl index f1a8d30ab..bf821ed0d 100644 --- a/validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl +++ b/validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl @@ -15,7 +15,3 @@ reference_data = JSON.parsefile(reference_file_name) run_data = JSON.parsefile(run_file_name) error = calculate_error(reference_data, run_data) - -if error > 7e-19 - return -1 -end diff --git a/validation/validation_util.jl b/validation/validation_util.jl index 7a01b5004..3bc4d717a 100644 --- a/validation/validation_util.jl +++ b/validation/validation_util.jl @@ -69,6 +69,7 @@ function find_and_compare_values(ref_data, run_data, errors=[]) return errors end +# sum of squared errors between two json based dicts function calculate_error(ref_data, run_data) return sum(find_and_compare_values(ref_data, run_data)) end From 30b7e5f8f4ce4f87b0c1e11de5b2a3b1dea2798e Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 28 Feb 2024 03:32:32 +0100 Subject: [PATCH 191/212] add 5 resolution back --- ...pare_reference_oscillating_beam_results.jl | 9 +- .../plot_oscillating_beam_results.jl | 7 +- ...ation_reference_oscillating_beam_2d_5.json | 831 ++++++++++++++++++ validation/validation_util.jl | 14 +- 4 files changed, 849 insertions(+), 12 deletions(-) create mode 100644 validation/oscillating_beam_2d/validation_reference_oscillating_beam_2d_5.json diff --git a/validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl b/validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl index bf821ed0d..f11f93ea2 100644 --- a/validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl +++ b/validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl @@ -6,12 +6,15 @@ using JSON trixi_include(@__MODULE__, joinpath(validation_dir(), "oscillating_beam_2d", "validation_oscillating_beam_2d.jl"), - resolution=[9]) + resolution=[5], tspan=(0, 2)) -reference_file_name = "validation/oscillating_beam_2d/validation_reference_oscillating_beam_2d_9.json" -run_file_name = "out/validation_run_oscillating_beam_2d_9.json" +reference_file_name = joinpath(validation_dir(), + "oscillating_beam_2d/validation_reference_oscillating_beam_2d_5.json") +run_file_name = joinpath(pkgdir(TrixiParticles), + "out/validation_run_oscillating_beam_2d_5.json") reference_data = JSON.parsefile(reference_file_name) run_data = JSON.parsefile(run_file_name) error = calculate_error(reference_data, run_data) +error diff --git a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl index 8a837586f..a2f2fc463 100644 --- a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl +++ b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl @@ -12,12 +12,13 @@ using Printf elastic_plate = (length=0.35, thickness=0.02) # Load the reference simulation data -ref = CSV.read("validation/oscillating_beam_2d/reference_turek.csv", DataFrame) +ref = CSV.read(joinpath(validation_dir(), "oscillating_beam_2d/reference_turek.csv"), DataFrame) # Get the list of JSON files reference_files = glob("validation_reference_oscillating_beam_2d_*.json", - "validation/oscillating_beam_2d/") -simulation_files = glob("validation_run_oscillating_beam_2d_*.json", "out") + joinpath(validation_dir(), "oscillating_beam_2d/")) +simulation_files = glob("validation_run_oscillating_beam_2d_*.json", + joinpath(pkgdir(TrixiParticles), "out/")) merged_files = vcat(reference_files, simulation_files) input_files = sort(merged_files, by=extract_number) diff --git a/validation/oscillating_beam_2d/validation_reference_oscillating_beam_2d_5.json b/validation/oscillating_beam_2d/validation_reference_oscillating_beam_2d_5.json new file mode 100644 index 000000000..67d0a0628 --- /dev/null +++ b/validation/oscillating_beam_2d/validation_reference_oscillating_beam_2d_5.json @@ -0,0 +1,831 @@ +{ + "meta": { + "julia_version": "1.10.1", + "solver_version": "cbeee99-dirty", + "solver_name": "TrixiParticles.jl" + }, + "mid_point_y_solid_1": { + "n_values": 201, + "time": [ + 0.0, + 0.01, + 0.02, + 0.03, + 0.04, + 0.05, + 0.06, + 0.07, + 0.08, + 0.09, + 0.1, + 0.11, + 0.12, + 0.13, + 0.14, + 0.15, + 0.16, + 0.17, + 0.18, + 0.19, + 0.2, + 0.21, + 0.22, + 0.23, + 0.24, + 0.25, + 0.26, + 0.27, + 0.28, + 0.29, + 0.3, + 0.31, + 0.32, + 0.33, + 0.34, + 0.35000000000000003, + 0.36, + 0.37, + 0.38, + 0.39, + 0.4, + 0.41000000000000003, + 0.42, + 0.43, + 0.44, + 0.45, + 0.46, + 0.47000000000000003, + 0.48, + 0.49, + 0.5, + 0.51, + 0.52, + 0.53, + 0.54, + 0.55, + 0.56, + 0.5700000000000001, + 0.58, + 0.59, + 0.6, + 0.61, + 0.62, + 0.63, + 0.64, + 0.65, + 0.66, + 0.67, + 0.68, + 0.6900000000000001, + 0.7000000000000001, + 0.71, + 0.72, + 0.73, + 0.74, + 0.75, + 0.76, + 0.77, + 0.78, + 0.79, + 0.8, + 0.81, + 0.8200000000000001, + 0.8300000000000001, + 0.84, + 0.85, + 0.86, + 0.87, + 0.88, + 0.89, + 0.9, + 0.91, + 0.92, + 0.93, + 0.9400000000000001, + 0.9500000000000001, + 0.96, + 0.97, + 0.98, + 0.99, + 1.0, + 1.01, + 1.02, + 1.03, + 1.04, + 1.05, + 1.06, + 1.07, + 1.08, + 1.09, + 1.1, + 1.11, + 1.12, + 1.1300000000000001, + 1.1400000000000001, + 1.1500000000000001, + 1.16, + 1.17, + 1.18, + 1.19, + 1.2, + 1.21, + 1.22, + 1.23, + 1.24, + 1.25, + 1.26, + 1.27, + 1.28, + 1.29, + 1.3, + 1.31, + 1.32, + 1.33, + 1.34, + 1.35, + 1.36, + 1.37, + 1.3800000000000001, + 1.3900000000000001, + 1.4000000000000001, + 1.41, + 1.42, + 1.43, + 1.44, + 1.45, + 1.46, + 1.47, + 1.48, + 1.49, + 1.5, + 1.51, + 1.52, + 1.53, + 1.54, + 1.55, + 1.56, + 1.57, + 1.58, + 1.59, + 1.6, + 1.61, + 1.62, + 1.6300000000000001, + 1.6400000000000001, + 1.6500000000000001, + 1.6600000000000001, + 1.67, + 1.68, + 1.69, + 1.7, + 1.71, + 1.72, + 1.73, + 1.74, + 1.75, + 1.76, + 1.77, + 1.78, + 1.79, + 1.8, + 1.81, + 1.82, + 1.83, + 1.84, + 1.85, + 1.86, + 1.87, + 1.8800000000000001, + 1.8900000000000001, + 1.9000000000000001, + 1.9100000000000001, + 1.92, + 1.93, + 1.94, + 1.95, + 1.96, + 1.97, + 1.98, + 1.99, + 2.0 + ], + "system_name": "solid", + "values": [ + 0.01, + 0.009900000003057264, + 0.009599789546828065, + 0.009118370698679776, + 0.008518033420726054, + 0.007578812044666174, + 0.0061923485126022595, + 0.0043513746327066855, + 0.0020580496242352422, + -0.0005798406500071957, + -0.003510514846166772, + -0.0068200653320975805, + -0.010458797938149331, + -0.014231236645932368, + -0.018077953699214073, + -0.021847333363430834, + -0.025580878320669805, + -0.029393923523497706, + -0.03329172609215341, + -0.03719185434606216, + -0.0411624876173075, + -0.04518439745891413, + -0.04937833045400679, + -0.05385371519288999, + -0.058471958172015656, + -0.0631040228812182, + -0.06768658744102923, + -0.0721454466541176, + -0.07648071483059049, + -0.08070298388259853, + -0.08460137146757643, + -0.08815230844962407, + -0.09135640992891196, + -0.09426394882957183, + -0.09700744294793011, + -0.09964558693185724, + -0.10205455483488089, + -0.10428052241019263, + -0.10634870619619144, + -0.10827644344403074, + -0.11014611574645099, + -0.1118218369051334, + -0.11315797029541358, + -0.11411960509168075, + -0.11467800850678962, + -0.11484504262839616, + -0.11472731547042021, + -0.11419298502770492, + -0.11323087582387606, + -0.11188967560501728, + -0.11023189132155821, + -0.10841218104211296, + -0.10652290339197558, + -0.10445399768890086, + -0.10220748543661398, + -0.09979560604339374, + -0.09718784805816087, + -0.0944896196977692, + -0.0916077568765125, + -0.08840525938954175, + -0.0848459900443991, + -0.08095094072826964, + -0.076764436299159, + -0.07247510060297314, + -0.06802761801651501, + -0.06341837037971738, + -0.05876124021669529, + -0.0541451451796428, + -0.04969611554909209, + -0.045512910846534194, + -0.04146846199343597, + -0.037464278084344, + -0.033546758327335696, + -0.029658606750787693, + -0.02587279909332117, + -0.022147466738992774, + -0.01834718713416385, + -0.014464315062448786, + -0.010682219245645571, + -0.007061868431165168, + -0.0037599368719649392, + -0.0007933325904006025, + 0.0019059367915453388, + 0.004233484171564698, + 0.006079409941293344, + 0.007465099654798107, + 0.008422332869024343, + 0.009065113886272088, + 0.009590010400372544, + 0.00990601095869174, + 0.009995263733218976, + 0.009886131120761688, + 0.009606049352542115, + 0.009179996251848914, + 0.008618971971316605, + 0.00767955812777912, + 0.006283899698034218, + 0.004467219204136206, + 0.00222578273585947, + -0.00036038449104736233, + -0.003274413437741526, + -0.006593663880806339, + -0.010236688637536084, + -0.01399014542903491, + -0.017802273111815238, + -0.021547785531123045, + -0.025293898620849957, + -0.02913947790033047, + -0.033039660219049624, + -0.036908695620814336, + -0.04084264779778111, + -0.044859685397983566, + -0.04907627967125113, + -0.053568656534813526, + -0.05816910490946189, + -0.06277443864151402, + -0.06734594495232597, + -0.07182352790807489, + -0.07619999781758931, + -0.08045307404114331, + -0.08434906471003331, + -0.08788490123680973, + -0.09109737115022189, + -0.09404751739637067, + -0.09684035277392224, + -0.09948773193607081, + -0.10187927834209837, + -0.10409742646629329, + -0.10618471464801782, + -0.10814872922504842, + -0.11005725700707901, + -0.11174578046786672, + -0.11307576455051499, + -0.11403853733455371, + -0.11462852302063793, + -0.11485565323995087, + -0.11478384662873367, + -0.1142556140034486, + -0.1132845013802224, + -0.11195455390339915, + -0.1103322277513747, + -0.10855897276267205, + -0.10669158706819837, + -0.10461607632794258, + -0.10235541099125794, + -0.09994766222448197, + -0.09737438188404118, + -0.094725512279956, + -0.09186120646065714, + -0.08864403849757936, + -0.0850788353520208, + -0.08120709110231814, + -0.07706663887278485, + -0.07280851331141348, + -0.06835738741825421, + -0.06372456083866038, + -0.05905534283034235, + -0.05444476854846088, + -0.05002188038387304, + -0.045846721880096385, + -0.04177018433883645, + -0.037725525893851905, + -0.033802408565275055, + -0.029940460972162793, + -0.026178939967640782, + -0.02243957156753779, + -0.018598918505154247, + -0.014698350032650067, + -0.010922966183224036, + -0.007314170529729425, + -0.0040039131198071525, + -0.0009995570848110014, + 0.0017559720413796941, + 0.004111858337608319, + 0.005959667013574326, + 0.007342967151121229, + 0.008326071683030282, + 0.00902398228876772, + 0.009590839803111595, + 0.009902021960537927, + 0.009972704851717135, + 0.009872993936227717, + 0.009629907504675322, + 0.009250640034104467, + 0.008710749404480307, + 0.007768035108443492, + 0.006373968401693793, + 0.004589709347840719, + 0.002399263810263675, + -0.00013612784730573913, + -0.0030418236985947375, + -0.006379723116155152, + -0.010019321120756847, + -0.01373497747811938, + -0.017511929592617236, + -0.021251982348258126, + -0.02502268042576975, + -0.02888986794127188, + -0.032775371414900535, + -0.036614076730865794, + -0.04052362837635896 + ], + "datatype": "Float64", + "type": "series" + }, + "mid_point_x_solid_1": { + "n_values": 201, + "time": [ + 0.0, + 0.01, + 0.02, + 0.03, + 0.04, + 0.05, + 0.06, + 0.07, + 0.08, + 0.09, + 0.1, + 0.11, + 0.12, + 0.13, + 0.14, + 0.15, + 0.16, + 0.17, + 0.18, + 0.19, + 0.2, + 0.21, + 0.22, + 0.23, + 0.24, + 0.25, + 0.26, + 0.27, + 0.28, + 0.29, + 0.3, + 0.31, + 0.32, + 0.33, + 0.34, + 0.35000000000000003, + 0.36, + 0.37, + 0.38, + 0.39, + 0.4, + 0.41000000000000003, + 0.42, + 0.43, + 0.44, + 0.45, + 0.46, + 0.47000000000000003, + 0.48, + 0.49, + 0.5, + 0.51, + 0.52, + 0.53, + 0.54, + 0.55, + 0.56, + 0.5700000000000001, + 0.58, + 0.59, + 0.6, + 0.61, + 0.62, + 0.63, + 0.64, + 0.65, + 0.66, + 0.67, + 0.68, + 0.6900000000000001, + 0.7000000000000001, + 0.71, + 0.72, + 0.73, + 0.74, + 0.75, + 0.76, + 0.77, + 0.78, + 0.79, + 0.8, + 0.81, + 0.8200000000000001, + 0.8300000000000001, + 0.84, + 0.85, + 0.86, + 0.87, + 0.88, + 0.89, + 0.9, + 0.91, + 0.92, + 0.93, + 0.9400000000000001, + 0.9500000000000001, + 0.96, + 0.97, + 0.98, + 0.99, + 1.0, + 1.01, + 1.02, + 1.03, + 1.04, + 1.05, + 1.06, + 1.07, + 1.08, + 1.09, + 1.1, + 1.11, + 1.12, + 1.1300000000000001, + 1.1400000000000001, + 1.1500000000000001, + 1.16, + 1.17, + 1.18, + 1.19, + 1.2, + 1.21, + 1.22, + 1.23, + 1.24, + 1.25, + 1.26, + 1.27, + 1.28, + 1.29, + 1.3, + 1.31, + 1.32, + 1.33, + 1.34, + 1.35, + 1.36, + 1.37, + 1.3800000000000001, + 1.3900000000000001, + 1.4000000000000001, + 1.41, + 1.42, + 1.43, + 1.44, + 1.45, + 1.46, + 1.47, + 1.48, + 1.49, + 1.5, + 1.51, + 1.52, + 1.53, + 1.54, + 1.55, + 1.56, + 1.57, + 1.58, + 1.59, + 1.6, + 1.61, + 1.62, + 1.6300000000000001, + 1.6400000000000001, + 1.6500000000000001, + 1.6600000000000001, + 1.67, + 1.68, + 1.69, + 1.7, + 1.71, + 1.72, + 1.73, + 1.74, + 1.75, + 1.76, + 1.77, + 1.78, + 1.79, + 1.8, + 1.81, + 1.82, + 1.83, + 1.84, + 1.85, + 1.86, + 1.87, + 1.8800000000000001, + 1.8900000000000001, + 1.9000000000000001, + 1.9100000000000001, + 1.92, + 1.93, + 1.94, + 1.95, + 1.96, + 1.97, + 1.98, + 1.99, + 2.0 + ], + "system_name": "solid", + "values": [ + 0.4, + 0.3999999997824367, + 0.3999997789958192, + 0.39999806620694045, + 0.3999928428024424, + 0.39998300585054947, + 0.3999675218618222, + 0.3999436659354054, + 0.39990580833431155, + 0.399839234990466, + 0.3997313746962118, + 0.39957178812928623, + 0.399347445055603, + 0.3990631110340628, + 0.39872559423040754, + 0.3983496069626268, + 0.3979362967099483, + 0.3974848366413246, + 0.3969876565351798, + 0.39644634645703847, + 0.3958398519571036, + 0.3951572006475971, + 0.3943766124756363, + 0.39347728040460894, + 0.39245781348060577, + 0.3913336935845073, + 0.3901241793111952, + 0.3888478194347051, + 0.3875432786821061, + 0.38623412842963145, + 0.38498463988319975, + 0.383817983657794, + 0.38275732790742917, + 0.3817772860756451, + 0.3808514371519754, + 0.37994742387320823, + 0.37907834881330327, + 0.3782242086815014, + 0.3773729270579829, + 0.3765230838285794, + 0.3756748328260026, + 0.3748775638863493, + 0.3741893974782273, + 0.373672864900755, + 0.37334747629362214, + 0.37323907621561286, + 0.37332689387681645, + 0.37364095614461246, + 0.3741532468159804, + 0.3748382246646243, + 0.37562987733324865, + 0.37646657076440593, + 0.37730631991182406, + 0.37815726724345583, + 0.3790184571880302, + 0.37988851026494563, + 0.3807844775244541, + 0.38170115400018884, + 0.38267635495705954, + 0.3837343552123141, + 0.38490148914352784, + 0.38615239663022, + 0.38745695810321945, + 0.38875593210799997, + 0.39003545646243615, + 0.3912551055772839, + 0.3923870145601527, + 0.3934121243458913, + 0.3943169031557319, + 0.39510258645298607, + 0.39578995641636694, + 0.39640355548171213, + 0.3969518172682867, + 0.39745117555067705, + 0.3979028679252927, + 0.39831974010224236, + 0.3987009043785601, + 0.3990421239071712, + 0.39933104891011584, + 0.3995600385287601, + 0.3997223124973209, + 0.3998320381230018, + 0.3999020131940758, + 0.3999422382828337, + 0.3999658835913331, + 0.3999817114590693, + 0.39999338843673266, + 0.39999836275343365, + 0.3999987920858129, + 0.4000000610998933, + 0.40000099021194013, + 0.3999995284182771, + 0.39999884462744745, + 0.3999988749171032, + 0.39999377823600457, + 0.3999827031135402, + 0.39996843089349565, + 0.39994708141599306, + 0.39990954796326234, + 0.3998441514316594, + 0.39974066880777337, + 0.3995847596155587, + 0.39936240631050657, + 0.39908294122615084, + 0.3987520705402826, + 0.3983795807082439, + 0.3979671696320562, + 0.3975179906543821, + 0.3970251852029529, + 0.396488375344724, + 0.3958888223530197, + 0.3952127805982676, + 0.39443584695046197, + 0.3935396399565496, + 0.3925297658695064, + 0.3914156965903248, + 0.3902116679654676, + 0.38893665758992124, + 0.38763084537319065, + 0.3863176385142378, + 0.38506710610588374, + 0.38390454402653307, + 0.38284247175345587, + 0.38185100188595716, + 0.38091361767776666, + 0.38001027894945283, + 0.3791448045612632, + 0.37829126979226013, + 0.3774364879136963, + 0.3765803030888833, + 0.375720953090891, + 0.3749178249190803, + 0.3742291955555547, + 0.37370814459649715, + 0.3733671066423486, + 0.3732365199428526, + 0.3733061845944545, + 0.37361096079708866, + 0.3741216773411531, + 0.3748018724107235, + 0.3755816974294828, + 0.37640495915019134, + 0.37724169611068215, + 0.3780946808727151, + 0.3789581753044554, + 0.3798276839293431, + 0.3807180230586862, + 0.3816231818315242, + 0.3825925254218996, + 0.38365401177441205, + 0.3848225213587522, + 0.3860676988129094, + 0.38736564379057525, + 0.3886649575781712, + 0.3899480836276167, + 0.3911747421462554, + 0.39231572053136327, + 0.3933481080620862, + 0.39425465305085106, + 0.3950450736495997, + 0.39574143339084455, + 0.396362386664725, + 0.39691389451831705, + 0.3974157649647909, + 0.3978699259885784, + 0.3982892038870415, + 0.39867529079797676, + 0.39902243587384434, + 0.3993150686341553, + 0.399545859592759, + 0.3997124403675941, + 0.39982663283043146, + 0.39989778327979797, + 0.39993891840172924, + 0.3999652863203745, + 0.3999819573333857, + 0.3999922633591487, + 0.39999767994874175, + 0.3999997816710297, + 0.40000024258315464, + 0.39999986324041964, + 0.39999969365898863, + 0.399999781344013, + 0.3999983693489697, + 0.39999331254182957, + 0.3999841650374032, + 0.3999700090654538, + 0.39994848101795727, + 0.39991323117202143, + 0.3998507547869959, + 0.3997486226404035, + 0.39959565021061505, + 0.3993787518691433, + 0.39910441850172623, + 0.3987771299999775, + 0.3984084656492843, + 0.3979987936073304, + 0.3975503373166449, + 0.3970617586661804, + 0.39653211243506725, + 0.39593872593663565 + ], + "datatype": "Float64", + "type": "series" + } +} diff --git a/validation/validation_util.jl b/validation/validation_util.jl index 3bc4d717a..c33a5833a 100644 --- a/validation/validation_util.jl +++ b/validation/validation_util.jl @@ -1,8 +1,8 @@ function linear_interpolation(t, xp, yp) - for i in 1:length(xp)-1 - if xp[i] <= t && t <= xp[i+1] + for i in 1:(length(xp) - 1) + if xp[i] <= t && t <= xp[i + 1] # Calculate the slope and interpolate - slope = (yp[i+1] - yp[i]) / (xp[i+1] - xp[i]) + slope = (yp[i + 1] - yp[i]) / (xp[i + 1] - xp[i]) return yp[i] + slope * (t - xp[i]) end end @@ -21,7 +21,8 @@ function calculate_mse(reference_time, reference_values, simulation_time, simula ]), reference_time) # Interpolate simulation data at the common time points - interpolated_values = [linear_interpolation(t, simulation_time, simulation_values) for t in common_time_range] + interpolated_values = [linear_interpolation(t, simulation_time, simulation_values) + for t in common_time_range] # Extract the corresponding reference displacement values filtered_values = [reference_values[findfirst(==(t), @@ -69,7 +70,8 @@ function find_and_compare_values(ref_data, run_data, errors=[]) return errors end -# sum of squared errors between two json based dicts +# Returns the MSE of json-based dicts function calculate_error(ref_data, run_data) - return sum(find_and_compare_values(ref_data, run_data)) + errors = find_and_compare_values(ref_data, run_data) + return sum(errors) / length(errors) end From b4112b49ad71fd4a84c78550fa7bc86ba7d9ea04 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 28 Feb 2024 03:32:42 +0100 Subject: [PATCH 192/212] format --- .../oscillating_beam_2d/plot_oscillating_beam_results.jl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl index a2f2fc463..b0fb08476 100644 --- a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl +++ b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl @@ -12,7 +12,8 @@ using Printf elastic_plate = (length=0.35, thickness=0.02) # Load the reference simulation data -ref = CSV.read(joinpath(validation_dir(), "oscillating_beam_2d/reference_turek.csv"), DataFrame) +ref = CSV.read(joinpath(validation_dir(), "oscillating_beam_2d/reference_turek.csv"), + DataFrame) # Get the list of JSON files reference_files = glob("validation_reference_oscillating_beam_2d_*.json", From ca0efab53c406fc32a19546e8e4344d0a8cc3ee0 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 28 Feb 2024 12:50:04 +0100 Subject: [PATCH 193/212] use include --- examples/postprocessing/postprocessing.jl | 4 +- examples/solid/oscillating_beam_2d.jl | 44 +++------ validation/general/investigate_relaxation.jl | 4 +- .../validation_oscillating_beam_2d.jl | 97 +------------------ 4 files changed, 23 insertions(+), 126 deletions(-) diff --git a/examples/postprocessing/postprocessing.jl b/examples/postprocessing/postprocessing.jl index 0d49df736..21d10fb44 100644 --- a/examples/postprocessing/postprocessing.jl +++ b/examples/postprocessing/postprocessing.jl @@ -13,7 +13,7 @@ function hello(v, u, t, system) # Value stored for output in the postprocessing output file return 2 * t end -example_cb = PostprocessCallback(; interval=10, hello) +example_cb = PostprocessCallback(; interval=10, hello, write_file_interval=0) trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "hydrostatic_water_column_2d.jl"), @@ -21,7 +21,7 @@ trixi_include(@__MODULE__, # Lets write the average pressure and kinetic energy every 0.01s pp = PostprocessCallback(; dt=0.005, filename="example_pressure_ekin", avg_pressure, - kinetic_energy) + kinetic_energy, write_file_interval=0) trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "hydrostatic_water_column_2d.jl"), diff --git a/examples/solid/oscillating_beam_2d.jl b/examples/solid/oscillating_beam_2d.jl index b542d5ed7..29473361a 100644 --- a/examples/solid/oscillating_beam_2d.jl +++ b/examples/solid/oscillating_beam_2d.jl @@ -10,36 +10,32 @@ n_particles_y = 5 gravity = 2.0 tspan = (0.0, 5.0) -length_beam = 0.35 -thickness = 0.02 +elastic_plate = (length=0.35, thickness=0.02) +material = (density=1000.0, E=1.4e6, nu=0.4) clamp_radius = 0.05 -material_density = 1000.0 -# Young's modulus and Poisson ratio -E = 1.4e6 -nu = 0.4 # The structure starts at the position of the first particle and ends # at the position of the last particle. -particle_spacing = thickness / (n_particles_y - 1) +particle_spacing = elastic_plate.thickness / (n_particles_y - 1) # Add particle_spacing/2 to the clamp_radius to ensure that particles are also placed on the radius fixed_particles = SphereShape(particle_spacing, clamp_radius + particle_spacing / 2, - (0.0, thickness / 2), material_density, - cutout_min=(0.0, 0.0), cutout_max=(clamp_radius, thickness), + (0.0, elastic_plate.thickness / 2), material.density, + cutout_min=(0.0, 0.0), cutout_max=(clamp_radius, elastic_plate.thickness), tlsph=true) n_particles_clamp_x = round(Int, clamp_radius / particle_spacing) # Beam and clamped particles -n_particles_per_dimension = (round(Int, length_beam / particle_spacing) + +n_particles_per_dimension = (round(Int, elastic_plate.length / particle_spacing) + n_particles_clamp_x + 1, n_particles_y) # Note that the `RectangularShape` puts the first particle half a particle spacing away # from the boundary, which is correct for fluids, but not for solids. # We therefore need to pass `tlsph=true`. beam = RectangularShape(particle_spacing, n_particles_per_dimension, - (0.0, 0.0), density=material_density, tlsph=true) + (0.0, 0.0), density=material.density, tlsph=true) solid = union(beam, fixed_particles) @@ -51,9 +47,9 @@ smoothing_length = 2 * sqrt(2) * particle_spacing smoothing_kernel = WendlandC2Kernel{2}() solid_system = TotalLagrangianSPHSystem(solid, smoothing_kernel, smoothing_length, - E, nu, - n_fixed_particles=nparticles(fixed_particles), - acceleration=(0.0, -gravity)) + material.E, material.nu, n_fixed_particles=nparticles(fixed_particles), + acceleration=(0.0, -gravity), + penalty_force=nothing) # ========================================================================================== # ==== Simulation @@ -63,26 +59,18 @@ ode = semidiscretize(semi, tspan) info_callback = InfoCallback(interval=100) # Track the position of the particle in the middle of the tip of the beam. -particle_id = Int(n_particles_per_dimension[1] * (n_particles_per_dimension[2] + 1) / 2) +middle_particle_id = Int(n_particles_per_dimension[1] * (n_particles_per_dimension[2] + 1) / 2) -shift_x = beam.coordinates[1, particle_id] -shift_y = beam.coordinates[2, particle_id] - -function x_deflection(v, u, t, system) - particle_position = TrixiParticles.current_coords(u, system, particle_id) - - return particle_position[1] - shift_x +function mid_point_x(v, u, t, system) + return system.current_coordinates[1, middle_particle_id] end -function y_deflection(v, u, t, system) - particle_position = TrixiParticles.current_coords(u, system, particle_id) - - return particle_position[2] - shift_y +function mid_point_y(v, u, t, system) + return system.current_coordinates[2, middle_particle_id] end saving_callback = SolutionSavingCallback(dt=0.02, prefix="", - x_deflection=x_deflection, - y_deflection=y_deflection) +mid_point_x=mid_point_x, mid_point_y=mid_point_y) callbacks = CallbackSet(info_callback, saving_callback) diff --git a/validation/general/investigate_relaxation.jl b/validation/general/investigate_relaxation.jl index 1537059f6..6cc0fbb2f 100644 --- a/validation/general/investigate_relaxation.jl +++ b/validation/general/investigate_relaxation.jl @@ -6,11 +6,11 @@ using DataFrames using Printf pp_cb = PostprocessCallback(; ekin=kinetic_energy, max_pressure, avg_density, dt=0.025, - filename="relaxation", write_csv=false) + filename="relaxation", write_csv=false, write_file_interval=0) pp_damped_cb = PostprocessCallback(; ekin=kinetic_energy, max_pressure, avg_density, dt=0.025, - filename="relaxation_damped", write_csv=false) + filename="relaxation_damped", write_csv=false, write_file_interval=0) trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "hydrostatic_water_column_2d.jl"), diff --git a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl index fa9735992..9386a2e89 100644 --- a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl +++ b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl @@ -13,113 +13,22 @@ using TrixiParticles using OrdinaryDiffEq -# ========================================================================================== -# ==== Experiment Setup -gravity = 2.0 -tspan = (0.0, 10.0) - -elastic_plate = (length=0.35, thickness=0.02) -cylinder_radius = 0.05 - -material = (density=1000.0, E=1.4e6, nu=0.4) - # for the brave add 35 resolution = [9, 21] for res in resolution - particle_spacing = elastic_plate.thickness / (res - 1) - - # Add particle_spacing/2 to the clamp_radius to ensure that particles are also placed on the radius - fixed_particles = SphereShape(particle_spacing, cylinder_radius + particle_spacing / 2, - (0.0, elastic_plate.thickness / 2), material.density, - cutout_min=(0.0, 0.0), - cutout_max=(cylinder_radius, elastic_plate.thickness), - tlsph=true) - - n_particles_clamp_x = round(Int, cylinder_radius / particle_spacing) - - # Plate and clamped particles - n_particles_per_dimension = (round(Int, elastic_plate.length / particle_spacing) + - n_particles_clamp_x + 1, res) - - # Note that the `RectangularShape` puts the first particle half a particle spacing away - # from the boundary, which is correct for fluids, but not for solids. - # We therefore need to pass `tlsph=true`. - elastic_plate_particles = RectangularShape(particle_spacing, n_particles_per_dimension, - (0.0, 0.0), density=material.density, - tlsph=true) - - solid = union(elastic_plate_particles, fixed_particles) - - # ========================================================================================== - # ==== Solid - - smoothing_length = 2 * sqrt(2) * particle_spacing - smoothing_kernel = WendlandC2Kernel{2}() - solid_system = TotalLagrangianSPHSystem(solid, - smoothing_kernel, smoothing_length, - material.E, material.nu, - n_fixed_particles=nparticles(fixed_particles), - acceleration=(0.0, -gravity), - penalty_force=PenaltyForceGanzenmueller(alpha=0.01)) - - # ========================================================================================== - # ==== Postprocessing Setup - - # find points at the end of elastic plate - plate_end_x = elastic_plate.length + cylinder_radius - point_ids = [] - for particle in TrixiParticles.eachparticle(solid_system) - particle_coord = solid_system.current_coordinates[:, particle] - - if isapprox(particle_coord[1], plate_end_x, atol=particle_spacing / 2) - push!(point_ids, particle) - end - end - - # of those find the particle in the middle - y_coords_at_plate_end = [solid_system.current_coordinates[2, particle] - for particle in point_ids] - if isempty(y_coords_at_plate_end) - error("No particles found at the specified beam_end_x coordinate.") - end - - sorted_y_coords = sort(y_coords_at_plate_end) - - # Compute the median - len = length(sorted_y_coords) - if isodd(len) - median_y = sorted_y_coords[ceil(Int, len / 2)] - else - half = round(Int, len / 2) - median_y = (sorted_y_coords[half] + sorted_y_coords[half + 1]) / 2 - end - closest_to_median_index = argmin(abs.(y_coords_at_plate_end .- median_y)) - middle_particle_id = point_ids[closest_to_median_index] - - function mid_point_x(t, v, u, system) - return system.current_coordinates[1, middle_particle_id] - end - - function mid_point_y(t, v, u, system) - return system.current_coordinates[2, middle_particle_id] - end + trixi_include(@__MODULE__, + joinpath(examples_dir(), "solid", "oscillating_beam_2d.jl"), n_particles_y=res, sol=nothing, tspan=tspan, penalty_force=PenaltyForceGanzenmueller(alpha=0.01)) pp_callback = PostprocessCallback(; mid_point_x, mid_point_y, dt=0.01, output_directory="out", filename="validation_run_oscillating_beam_2d_" * - string(res), write_csv=false) + string(res), write_csv=false, write_file_interval=0) info_callback = InfoCallback(interval=2500) saving_callback = SolutionSavingCallback(dt=0.5, prefix="validation_" * string(res)) callbacks = CallbackSet(info_callback, saving_callback, pp_callback) - # ========================================================================================== - # ==== Simulation - - semi = Semidiscretization(solid_system, neighborhood_search=GridNeighborhoodSearch) - ode = semidiscretize(semi, tspan) - sol = solve(ode, RDPK3SpFSAL49(), abstol=1e-8, reltol=1e-6, dtmax=1e-3, save_everystep=false, callback=callbacks) end From fcf2da1a355f5a0c9f13bbf5230ab5bb570309ea Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 28 Feb 2024 12:50:29 +0100 Subject: [PATCH 194/212] format --- examples/fluid/accelerated_tank_2d.jl | 1 - examples/postprocessing/postprocessing.jl | 4 ++-- examples/solid/oscillating_beam_2d.jl | 12 +++++++----- validation/general/investigate_relaxation.jl | 5 +++-- .../validation_oscillating_beam_2d.jl | 8 +++++--- 5 files changed, 17 insertions(+), 13 deletions(-) diff --git a/examples/fluid/accelerated_tank_2d.jl b/examples/fluid/accelerated_tank_2d.jl index 8510f93ce..a179a035c 100644 --- a/examples/fluid/accelerated_tank_2d.jl +++ b/examples/fluid/accelerated_tank_2d.jl @@ -35,7 +35,6 @@ is_moving(t) = true boundary_movement = BoundaryMovement(movement_function, is_moving) - # Import the setup from `hydrostatic_water_column_2d.jl` trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "hydrostatic_water_column_2d.jl"), diff --git a/examples/postprocessing/postprocessing.jl b/examples/postprocessing/postprocessing.jl index 21d10fb44..b73da7b6d 100644 --- a/examples/postprocessing/postprocessing.jl +++ b/examples/postprocessing/postprocessing.jl @@ -13,7 +13,7 @@ function hello(v, u, t, system) # Value stored for output in the postprocessing output file return 2 * t end -example_cb = PostprocessCallback(; interval=10, hello, write_file_interval=0) +example_cb = PostprocessCallback(; interval=10, hello, write_file_interval=0) trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "hydrostatic_water_column_2d.jl"), @@ -21,7 +21,7 @@ trixi_include(@__MODULE__, # Lets write the average pressure and kinetic energy every 0.01s pp = PostprocessCallback(; dt=0.005, filename="example_pressure_ekin", avg_pressure, - kinetic_energy, write_file_interval=0) + kinetic_energy, write_file_interval=0) trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "hydrostatic_water_column_2d.jl"), diff --git a/examples/solid/oscillating_beam_2d.jl b/examples/solid/oscillating_beam_2d.jl index 29473361a..07b181f5b 100644 --- a/examples/solid/oscillating_beam_2d.jl +++ b/examples/solid/oscillating_beam_2d.jl @@ -14,7 +14,6 @@ elastic_plate = (length=0.35, thickness=0.02) material = (density=1000.0, E=1.4e6, nu=0.4) clamp_radius = 0.05 - # The structure starts at the position of the first particle and ends # at the position of the last particle. particle_spacing = elastic_plate.thickness / (n_particles_y - 1) @@ -22,7 +21,8 @@ particle_spacing = elastic_plate.thickness / (n_particles_y - 1) # Add particle_spacing/2 to the clamp_radius to ensure that particles are also placed on the radius fixed_particles = SphereShape(particle_spacing, clamp_radius + particle_spacing / 2, (0.0, elastic_plate.thickness / 2), material.density, - cutout_min=(0.0, 0.0), cutout_max=(clamp_radius, elastic_plate.thickness), + cutout_min=(0.0, 0.0), + cutout_max=(clamp_radius, elastic_plate.thickness), tlsph=true) n_particles_clamp_x = round(Int, clamp_radius / particle_spacing) @@ -47,7 +47,8 @@ smoothing_length = 2 * sqrt(2) * particle_spacing smoothing_kernel = WendlandC2Kernel{2}() solid_system = TotalLagrangianSPHSystem(solid, smoothing_kernel, smoothing_length, - material.E, material.nu, n_fixed_particles=nparticles(fixed_particles), + material.E, material.nu, + n_fixed_particles=nparticles(fixed_particles), acceleration=(0.0, -gravity), penalty_force=nothing) @@ -59,7 +60,8 @@ ode = semidiscretize(semi, tspan) info_callback = InfoCallback(interval=100) # Track the position of the particle in the middle of the tip of the beam. -middle_particle_id = Int(n_particles_per_dimension[1] * (n_particles_per_dimension[2] + 1) / 2) +middle_particle_id = Int(n_particles_per_dimension[1] * (n_particles_per_dimension[2] + 1) / + 2) function mid_point_x(v, u, t, system) return system.current_coordinates[1, middle_particle_id] @@ -70,7 +72,7 @@ function mid_point_y(v, u, t, system) end saving_callback = SolutionSavingCallback(dt=0.02, prefix="", -mid_point_x=mid_point_x, mid_point_y=mid_point_y) + mid_point_x=mid_point_x, mid_point_y=mid_point_y) callbacks = CallbackSet(info_callback, saving_callback) diff --git a/validation/general/investigate_relaxation.jl b/validation/general/investigate_relaxation.jl index 6cc0fbb2f..fa692b5ef 100644 --- a/validation/general/investigate_relaxation.jl +++ b/validation/general/investigate_relaxation.jl @@ -6,11 +6,12 @@ using DataFrames using Printf pp_cb = PostprocessCallback(; ekin=kinetic_energy, max_pressure, avg_density, dt=0.025, - filename="relaxation", write_csv=false, write_file_interval=0) + filename="relaxation", write_csv=false, write_file_interval=0) pp_damped_cb = PostprocessCallback(; ekin=kinetic_energy, max_pressure, avg_density, dt=0.025, - filename="relaxation_damped", write_csv=false, write_file_interval=0) + filename="relaxation_damped", write_csv=false, + write_file_interval=0) trixi_include(@__MODULE__, joinpath(examples_dir(), "fluid", "hydrostatic_water_column_2d.jl"), diff --git a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl index 9386a2e89..78fb37f27 100644 --- a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl +++ b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl @@ -16,14 +16,16 @@ using OrdinaryDiffEq # for the brave add 35 resolution = [9, 21] for res in resolution - trixi_include(@__MODULE__, - joinpath(examples_dir(), "solid", "oscillating_beam_2d.jl"), n_particles_y=res, sol=nothing, tspan=tspan, penalty_force=PenaltyForceGanzenmueller(alpha=0.01)) + joinpath(examples_dir(), "solid", "oscillating_beam_2d.jl"), + n_particles_y=res, sol=nothing, tspan=tspan, + penalty_force=PenaltyForceGanzenmueller(alpha=0.01)) pp_callback = PostprocessCallback(; mid_point_x, mid_point_y, dt=0.01, output_directory="out", filename="validation_run_oscillating_beam_2d_" * - string(res), write_csv=false, write_file_interval=0) + string(res), write_csv=false, + write_file_interval=0) info_callback = InfoCallback(interval=2500) saving_callback = SolutionSavingCallback(dt=0.5, prefix="validation_" * string(res)) From 2f2740afdfcdfffa522acdb97ad3b4066956d8d3 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 28 Feb 2024 12:52:53 +0100 Subject: [PATCH 195/212] renaming --- .../compare_reference_oscillating_beam_results.jl | 2 +- validation/oscillating_beam_2d/plot_oscillating_beam_results.jl | 2 +- ...oscillating_beam_2d_21.json => validation_reference_21.json} | 0 ...oscillating_beam_2d_35.json => validation_reference_35.json} | 0 ...e_oscillating_beam_2d_5.json => validation_reference_5.json} | 0 ...e_oscillating_beam_2d_9.json => validation_reference_9.json} | 0 6 files changed, 2 insertions(+), 2 deletions(-) rename validation/oscillating_beam_2d/{validation_reference_oscillating_beam_2d_21.json => validation_reference_21.json} (100%) rename validation/oscillating_beam_2d/{validation_reference_oscillating_beam_2d_35.json => validation_reference_35.json} (100%) rename validation/oscillating_beam_2d/{validation_reference_oscillating_beam_2d_5.json => validation_reference_5.json} (100%) rename validation/oscillating_beam_2d/{validation_reference_oscillating_beam_2d_9.json => validation_reference_9.json} (100%) diff --git a/validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl b/validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl index f11f93ea2..e8827182e 100644 --- a/validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl +++ b/validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl @@ -9,7 +9,7 @@ trixi_include(@__MODULE__, resolution=[5], tspan=(0, 2)) reference_file_name = joinpath(validation_dir(), - "oscillating_beam_2d/validation_reference_oscillating_beam_2d_5.json") + "oscillating_beam_2d/validation_reference_5.json") run_file_name = joinpath(pkgdir(TrixiParticles), "out/validation_run_oscillating_beam_2d_5.json") diff --git a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl index b0fb08476..2be6c4b4a 100644 --- a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl +++ b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl @@ -16,7 +16,7 @@ ref = CSV.read(joinpath(validation_dir(), "oscillating_beam_2d/reference_turek.c DataFrame) # Get the list of JSON files -reference_files = glob("validation_reference_oscillating_beam_2d_*.json", +reference_files = glob("validation_reference_*.json", joinpath(validation_dir(), "oscillating_beam_2d/")) simulation_files = glob("validation_run_oscillating_beam_2d_*.json", joinpath(pkgdir(TrixiParticles), "out/")) diff --git a/validation/oscillating_beam_2d/validation_reference_oscillating_beam_2d_21.json b/validation/oscillating_beam_2d/validation_reference_21.json similarity index 100% rename from validation/oscillating_beam_2d/validation_reference_oscillating_beam_2d_21.json rename to validation/oscillating_beam_2d/validation_reference_21.json diff --git a/validation/oscillating_beam_2d/validation_reference_oscillating_beam_2d_35.json b/validation/oscillating_beam_2d/validation_reference_35.json similarity index 100% rename from validation/oscillating_beam_2d/validation_reference_oscillating_beam_2d_35.json rename to validation/oscillating_beam_2d/validation_reference_35.json diff --git a/validation/oscillating_beam_2d/validation_reference_oscillating_beam_2d_5.json b/validation/oscillating_beam_2d/validation_reference_5.json similarity index 100% rename from validation/oscillating_beam_2d/validation_reference_oscillating_beam_2d_5.json rename to validation/oscillating_beam_2d/validation_reference_5.json diff --git a/validation/oscillating_beam_2d/validation_reference_oscillating_beam_2d_9.json b/validation/oscillating_beam_2d/validation_reference_9.json similarity index 100% rename from validation/oscillating_beam_2d/validation_reference_oscillating_beam_2d_9.json rename to validation/oscillating_beam_2d/validation_reference_9.json From b1f1d58f43fa34bb74842daa8483befc8fc4e181 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 28 Feb 2024 12:54:44 +0100 Subject: [PATCH 196/212] fix readme --- validation/oscillating_beam_2d/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/validation/oscillating_beam_2d/README.md b/validation/oscillating_beam_2d/README.md index 1e75d9619..eabca970d 100644 --- a/validation/oscillating_beam_2d/README.md +++ b/validation/oscillating_beam_2d/README.md @@ -3,7 +3,7 @@ The following files are provided here: 1) Validation simulation: validation_oscillating_beam_2d.jl 2) Comparison with reference: compare_reference_oscillating_beam_results.jl 3) Comparison with TrixiParticles.jl and literature reference: plot_oscillating_beam_results.jl -4) TrixiParticles.jl reference files: validation_reference_oscillating_beam_2d_[9, 21, 35].j (9 is the default CI resolution, note that resolution 21 takes about 30-50 minutes while 35 takes about 4-6 hours) +4) TrixiParticles.jl reference files: validation_reference_[9, 21, 35].j (9 is the default CI resolution, note that resolution 21 takes about 30-50 minutes while 35 takes about 4-6 hours) 5) Reference file reference_turek.csv obtained from here: https://wwwold.mathematik.tu-dortmund.de/~featflow/en/benchmarks/cfdbenchmarking/fsi_benchmark/fsi_tests/fsi_csm_tests.html From 4d46ef0ad977b6a5be45d3ba39b04a46c7d6afdf Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 28 Feb 2024 13:42:38 +0100 Subject: [PATCH 197/212] fix test [skip ci] --- examples/fsi/falling_water_column_2d.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/fsi/falling_water_column_2d.jl b/examples/fsi/falling_water_column_2d.jl index b4fa52836..a0436bfca 100644 --- a/examples/fsi/falling_water_column_2d.jl +++ b/examples/fsi/falling_water_column_2d.jl @@ -58,7 +58,7 @@ boundary_model = BoundaryModelMonaghanKajtar(k, spacing_ratio, particle_spacing, solid_system = TotalLagrangianSPHSystem(solid, smoothing_kernel, smoothing_length, - E, nu, boundary_model=boundary_model, + material.E, material.nu, boundary_model=boundary_model, n_fixed_particles=nparticles(fixed_particles), acceleration=(0.0, -gravity)) From 222b8b018c8ca8b993ee7d125cd66db31fc38d56 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 28 Feb 2024 13:58:06 +0100 Subject: [PATCH 198/212] [skip ci] remove save for compare --- .../compare_reference_oscillating_beam_results.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl b/validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl index e8827182e..0e4da640c 100644 --- a/validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl +++ b/validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl @@ -6,7 +6,7 @@ using JSON trixi_include(@__MODULE__, joinpath(validation_dir(), "oscillating_beam_2d", "validation_oscillating_beam_2d.jl"), - resolution=[5], tspan=(0, 2)) + resolution=[5], tspan=(0, 2), saving_callback=nothing) reference_file_name = joinpath(validation_dir(), "oscillating_beam_2d/validation_reference_5.json") From 552c0af8760cda12e7ab8f79ca484ad9a6bae65d Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 28 Feb 2024 13:59:22 +0100 Subject: [PATCH 199/212] [skip ci] add tspan back --- .../oscillating_beam_2d/validation_oscillating_beam_2d.jl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl index 78fb37f27..cf226fa65 100644 --- a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl +++ b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl @@ -13,6 +13,8 @@ using TrixiParticles using OrdinaryDiffEq +tspan = (0, 10) + # for the brave add 35 resolution = [9, 21] for res in resolution From 9998b5319ce3170afc068fd1ee1ea7be86e14a4e Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 28 Feb 2024 17:57:40 +0100 Subject: [PATCH 200/212] review comments --- examples/fsi/falling_water_column_2d.jl | 3 +- examples/solid/oscillating_beam_2d.jl | 13 +- validation/oscillating_beam_2d/README.md | 4 +- .../plot_oscillating_beam_results.jl | 8 +- .../validation_oscillating_beam_2d.jl | 2 +- .../validation_reference_21.json | 4008 ++++++++--------- .../validation_reference_35.json | 4008 ++++++++--------- .../validation_reference_5.json | 808 ++-- .../validation_reference_9.json | 4008 ++++++++--------- 9 files changed, 6432 insertions(+), 6430 deletions(-) diff --git a/examples/fsi/falling_water_column_2d.jl b/examples/fsi/falling_water_column_2d.jl index a0436bfca..430512e07 100644 --- a/examples/fsi/falling_water_column_2d.jl +++ b/examples/fsi/falling_water_column_2d.jl @@ -58,7 +58,8 @@ boundary_model = BoundaryModelMonaghanKajtar(k, spacing_ratio, particle_spacing, solid_system = TotalLagrangianSPHSystem(solid, smoothing_kernel, smoothing_length, - material.E, material.nu, boundary_model=boundary_model, + material.E, material.nu, + boundary_model=boundary_model, n_fixed_particles=nparticles(fixed_particles), acceleration=(0.0, -gravity)) diff --git a/examples/solid/oscillating_beam_2d.jl b/examples/solid/oscillating_beam_2d.jl index 07b181f5b..1d87803ea 100644 --- a/examples/solid/oscillating_beam_2d.jl +++ b/examples/solid/oscillating_beam_2d.jl @@ -62,17 +62,20 @@ info_callback = InfoCallback(interval=100) # Track the position of the particle in the middle of the tip of the beam. middle_particle_id = Int(n_particles_per_dimension[1] * (n_particles_per_dimension[2] + 1) / 2) +startposition_x = beam.coordinates[1, middle_particle_id] +startposition_y = beam.coordinates[2, middle_particle_id] -function mid_point_x(v, u, t, system) - return system.current_coordinates[1, middle_particle_id] +function deflection_x(v, u, t, system) + return system.current_coordinates[1, middle_particle_id] - startposition_x end -function mid_point_y(v, u, t, system) - return system.current_coordinates[2, middle_particle_id] +function deflection_y(v, u, t, system) + return system.current_coordinates[2, middle_particle_id] - startposition_y end saving_callback = SolutionSavingCallback(dt=0.02, prefix="", - mid_point_x=mid_point_x, mid_point_y=mid_point_y) + deflection_x=deflection_x, + deflection_y=deflection_y) callbacks = CallbackSet(info_callback, saving_callback) diff --git a/validation/oscillating_beam_2d/README.md b/validation/oscillating_beam_2d/README.md index eabca970d..008447998 100644 --- a/validation/oscillating_beam_2d/README.md +++ b/validation/oscillating_beam_2d/README.md @@ -3,7 +3,7 @@ The following files are provided here: 1) Validation simulation: validation_oscillating_beam_2d.jl 2) Comparison with reference: compare_reference_oscillating_beam_results.jl 3) Comparison with TrixiParticles.jl and literature reference: plot_oscillating_beam_results.jl -4) TrixiParticles.jl reference files: validation_reference_[9, 21, 35].j (9 is the default CI resolution, note that resolution 21 takes about 30-50 minutes while 35 takes about 4-6 hours) -5) Reference file reference_turek.csv obtained from here: +4) TrixiParticles.jl reference files: validation_reference_[5, 9, 21, 35].j (5 is the default CI resolution, note that resolution 21 takes about 30-50 minutes while 35 takes about 4-6 hours) +5) Reference file reference_turek.csv extracted from the file csm3_l4_t0p005.point here: https://wwwold.mathematik.tu-dortmund.de/~featflow/en/benchmarks/cfdbenchmarking/fsi_benchmark/fsi_tests/fsi_csm_tests.html diff --git a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl index 2be6c4b4a..b415c2f65 100644 --- a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl +++ b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl @@ -24,8 +24,8 @@ merged_files = vcat(reference_files, simulation_files) input_files = sort(merged_files, by=extract_number) # Regular expressions for matching keys -key_pattern_x = r"mid_point_x_solid_\d+" -key_pattern_y = r"mid_point_y_solid_\d+" +key_pattern_x = r"deflection_x_solid_\d+" +key_pattern_y = r"deflection_y_solid_\d+" # Setup for Makie plotting fig = Figure(size=(1200, 800)) @@ -56,9 +56,7 @@ for file_name in input_files for key in matching_keys data = json_data[key] times = Float64.(data["time"]) - positions = Float64.(data["values"]) - initial_position = positions[1] - displacements = [v - initial_position for v in positions] + displacements = Float64.(data["values"]) mse_results = occursin(key_pattern_x, key) ? calculate_mse(ref.time, ref.Ux, data["time"], displacements) : diff --git a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl index cf226fa65..93a7e5a05 100644 --- a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl +++ b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl @@ -23,7 +23,7 @@ for res in resolution n_particles_y=res, sol=nothing, tspan=tspan, penalty_force=PenaltyForceGanzenmueller(alpha=0.01)) - pp_callback = PostprocessCallback(; mid_point_x, mid_point_y, dt=0.01, + pp_callback = PostprocessCallback(; deflection_x, deflection_y, dt=0.01, output_directory="out", filename="validation_run_oscillating_beam_2d_" * string(res), write_csv=false, diff --git a/validation/oscillating_beam_2d/validation_reference_21.json b/validation/oscillating_beam_2d/validation_reference_21.json index 059e51a74..850af5b34 100644 --- a/validation/oscillating_beam_2d/validation_reference_21.json +++ b/validation/oscillating_beam_2d/validation_reference_21.json @@ -4,7 +4,7 @@ "solver_version": "c6184f4-dirty", "solver_name": "TrixiParticles.jl" }, - "mid_point_y_solid_1": { + "deflection_y_solid_1": { "n_values": 1001, "time": [ 0.0, @@ -1011,1012 +1011,1012 @@ ], "system_name": "solid", "values": [ - 0.01, - 0.009900000027477278, - 0.009598224579854263, - 0.009120736097874588, - 0.008530138043973061, - 0.007598603422188598, - 0.006209548115927407, - 0.004367110459334251, - 0.002049829600048696, - -0.0006053600559477594, - -0.00356570895419228, - -0.006911648253035624, - -0.010600257077109343, - -0.014436463005106079, - -0.01835207308271733, - -0.022174572933033994, - -0.025959050740602802, - -0.02984193918443984, - -0.03378087240471843, - -0.03773885667217311, - -0.041745790878917347, - -0.04580765829346273, - -0.05003902658456762, - -0.05457691212100433, - -0.059241827167912965, - -0.06396649515655953, - -0.068642237480742, - -0.07319051466958452, - -0.0776494819692869, - -0.08199165140294387, - -0.08602570748859455, - -0.08970414733710964, - -0.09302756184690186, - -0.09602018636439417, - -0.09889033218456646, - -0.10159706336855419, - -0.10409538482286124, - -0.10640718846843088, - -0.10854288616430569, - -0.11055139525206853, - -0.11252687363398399, - -0.11430571793994596, - -0.11577589989419784, - -0.11689452921019883, - -0.11756657039093941, - -0.11790629651976833, - -0.11792199814205521, - -0.11752865287024525, - -0.11670442404531181, - -0.11547194273724101, - -0.1138718813857606, - -0.11213726192125416, - -0.11027574202746535, - -0.1082449821813424, - -0.1060650057951082, - -0.1036594293158479, - -0.10111010721985338, - -0.09847931697531162, - -0.09566647986938934, - -0.09255573867452145, - -0.08912156120801464, - -0.08527000643162871, - -0.0811686829637631, - -0.07690316526774, - -0.07243766226816843, - -0.06782390308145995, - -0.06308413082619954, - -0.0583188881304433, - -0.05374050359550477, - -0.04941089146875812, - -0.04520058980238842, - -0.04111967665372357, - -0.0370620938833673, - -0.033075308205940464, - -0.029235306323616927, - -0.025432684561338667, - -0.021546947208853542, - -0.017610827128007673, - -0.01365888130800107, - -0.00983367534689891, - -0.006331121008754682, - -0.003064958719995124, - -8.345195959477298e-5, - 0.002544219639442147, - 0.004747742051453262, - 0.006444894329510459, - 0.0076281593399159875, - 0.008527541421434392, - 0.009216314742138618, - 0.009675715007623691, - 0.009950634421635362, - 0.009956978756429206, - 0.009794606848363112, - 0.009566499122309462, - 0.009193933385617387, - 0.008501009605333357, - 0.007440246135621148, - 0.0058869656541872505, - 0.0039298389790492095, - 0.0016573682328289265, - -0.0010386285599947875, - -0.004158825352635816, - -0.007635589578358163, - -0.011370753158815703, - -0.01518276520665492, - -0.01892978364310827, - -0.022751244930238657, - -0.026613730818893618, - -0.030519649277258157, - -0.03445085999502093, - -0.038338974921111914, - -0.04227480051708911, - -0.04644784961541319, - -0.0508587948891786, - -0.055434358333057696, - -0.060126239314324675, - -0.06475355475967753, - -0.069391359672094, - -0.07402949458090415, - -0.07852661016125588, - -0.082767972953653, - -0.08667521559034244, - -0.0901833449528497, - -0.09344335488612551, - -0.09652931020023366, - -0.09937567976329856, - -0.102035417101806, - -0.10444616106563202, - -0.10667892247799263, - -0.10886831504998504, - -0.11099909389535767, - -0.11295236971647353, - -0.11466877936438544, - -0.11599221374834971, - -0.11697076963598396, - -0.11767646931972528, - -0.11800131153473613, - -0.11793404788857853, - -0.11740121347350245, - -0.11639971048287731, - -0.11508060310516058, - -0.11357130030090608, - -0.11185159964241871, - -0.10998796603269168, - -0.10789274295403606, - -0.10559251474053823, - -0.10322724200257109, - -0.10075484097553263, - -0.09813469331213262, - -0.0952583610174085, - -0.09199558160263462, - -0.08838095940003993, - -0.08455498037044527, - -0.08046621225887328, - -0.0761720074366777, - -0.07164075853290208, - -0.06688851648477179, - -0.06213491165702574, - -0.057520132432105756, - -0.05306012984034603, - -0.04876004360217711, - -0.04455328837418075, - -0.04037870069287157, - -0.03639232653523433, - -0.03252167829170331, - -0.02869073367671067, - -0.02481738467972264, - -0.02082566900755256, - -0.016794769209803963, - -0.012928898968255362, - -0.009247988838876462, - -0.005738967077357227, - -0.002492519754027714, - 0.0004961124625615011, - 0.003021505516488285, - 0.004997628722751235, - 0.006526661834056683, - 0.007731925315640119, - 0.008640287855472033, - 0.009332202691254211, - 0.009732944185819728, - 0.009858126461278744, - 0.009892573014909806, - 0.009831407553756315, - 0.009642390083835004, - 0.009214943976480877, - 0.008397470845471927, - 0.007143093584768118, - 0.005584688774301666, - 0.003632873985933873, - 0.0012601181380153769, - -0.0015630670766271432, - -0.004855843494185992, - -0.008414124192562421, - -0.012052201479966124, - -0.01576211511249212, - -0.019561024389979243, - -0.023403718516280887, - -0.027334932598326485, - -0.031186121945817536, - -0.03497779281469019, - -0.038864254192726606, - -0.04292873265055837, - -0.04721450848096135, - -0.051709645195966415, - -0.05626718799215259, - -0.06085765796772751, - -0.06556476051060055, - -0.07027073197619524, - -0.07492991726212475, - -0.07936791148948555, - -0.08343643072389761, - -0.08718269007670042, - -0.09070798389465808, - -0.09398435932721241, - -0.09704832701583815, - -0.09984114687022486, - -0.10233611844017519, - -0.10473179535956817, - -0.10705758815798884, - -0.10931837053716516, - -0.11145388828944855, - -0.11332578245802036, - -0.114869870340842, - -0.11617280489291927, - -0.11716441343883148, - -0.11783048150072847, - -0.11809664224175428, - -0.11782429785429145, - -0.11712833745691813, - -0.11609965118808335, - -0.11481072216598093, - -0.11331989932698372, - -0.11159206339926261, - -0.10957486734038009, - -0.10743879555962654, - -0.10520551623028436, - -0.10289383547735058, - -0.10047176193702943, - -0.09774703416200922, - -0.09469099879720995, - -0.091352831091089, - -0.08774630787187837, - -0.08389705076722408, - -0.07980681933906021, - -0.07535027450731613, - -0.07069296546846748, - -0.06597661225520483, - -0.061313647437664924, - -0.05680856347740823, - -0.05239879769944841, - -0.0480218083214508, - -0.04378563429701005, - -0.03974635189555781, - -0.03582260422363661, - -0.03200386034091371, - -0.02808196476701945, - -0.024051991960586952, - -0.02004024306690145, - -0.016111449775765393, - -0.012289575923085853, - -0.008625338141794711, - -0.005087756378126995, - -0.0018044626816577148, - 0.0009929382943053686, - 0.0033259922501032756, - 0.005188694053576956, - 0.006682465173681381, - 0.007903007488390543, - 0.008812976337220023, - 0.009339989987549025, - 0.009655384131013332, - 0.009831917772614527, - 0.00992601543511479, - 0.00995161586614228, - 0.009697487479176679, - 0.009094139399137639, - 0.00818019197132744, - 0.006951642409360188, - 0.005341219199314659, - 0.0033340525343296045, - 0.000766356222826348, - -0.002257010975006603, - -0.005552889705160785, - -0.009050621939222408, - -0.012663471866537962, - -0.016390157027687938, - -0.020261681967200622, - -0.024160589173728073, - -0.02794093572475133, - -0.03171340033691147, - -0.03550815137114175, - -0.03947713899686917, - -0.04369021923419486, - -0.04803097783057515, - -0.05244227948180681, - -0.0569977783961156, - -0.06167417821465471, - -0.0664496940372219, - -0.07123888087337783, - -0.07577201081231129, - -0.08003558215540181, - -0.08403159324173512, - -0.08777480745613597, - -0.09129912452926699, - -0.09456813612030143, - -0.09747431096073438, - -0.10014444202663556, - -0.10267409423329915, - -0.10511060195820987, - -0.1075396417609488, - -0.10979133744027486, - -0.11179524033818708, - -0.11357581869857498, - -0.11512627595079453, - -0.11642261845619054, - -0.11743568057322573, - -0.11796235012530634, - -0.11800760854987193, - -0.1176412433400124, - -0.1168909426215235, - -0.11589543869373688, - -0.11462121764341193, - -0.1130194367958753, - -0.11117114358506182, - -0.10916452557831294, - -0.10704763965699943, - -0.10492987733662482, - -0.10263313600409177, - -0.10006326570107568, - -0.09723211306850751, - -0.09410921287406203, - -0.09076723743620074, - -0.08719319846235181, - -0.08325898019330367, - -0.07896308541068474, - -0.0744481839531852, - -0.06977395724590474, - -0.0651608493926044, - -0.060608162913968644, - -0.05605831557921532, - -0.05159327094514364, - -0.04727056816446167, - -0.04312289065568436, - -0.039189340623249004, - -0.035323149698504294, - -0.031343550476363675, - -0.027343396810450456, - -0.023316630287105712, - -0.01935052475671043, - -0.01548563637678915, - -0.011648407942797121, - -0.007867688790505365, - -0.004374808442181624, - -0.001266779803812998, - 0.0013847197045963075, - 0.0035615320903688032, - 0.00543527329245712, - 0.006951961496521137, - 0.008062085415332806, - 0.008815058319348342, - 0.009305462824981792, - 0.009616445377068414, - 0.009914310246994781, - 0.010072674115306298, - 0.009967027482701373, - 0.009618677718878059, - 0.00896533934394123, - 0.008041634085818731, - 0.006816633995154854, - 0.005119854487592537, - 0.002851980978729994, - 0.00016776051513357437, - -0.002890415037716486, - -0.006167486859054722, - -0.009616459985486523, - -0.013312981339599595, - -0.017155027491420494, - -0.02098381277582425, - -0.024759941554326984, - -0.028477730414629428, - -0.03220718076649415, - -0.036152963131376746, - -0.04022701452142175, - -0.04441021354220856, - -0.048721839164504455, - -0.05316264650089283, - -0.05778574609221628, - -0.06261402926473326, - -0.06742198025269848, - -0.07206079800302191, - -0.0765098626069818, - -0.08068239566121352, - -0.08468608245333885, - -0.08846554540420325, - -0.09189830978949673, - -0.09498847942140377, - -0.09782913992583306, - -0.10047894984057, - -0.10309855148310139, - -0.10563199208472672, - -0.10796220836813233, - -0.11013522229152803, - -0.11208992742811759, - -0.11386955311015039, - -0.11547642640491114, - -0.11675225408398111, - -0.11757140021123522, - -0.11795972182561094, - -0.11787790527458418, - -0.1174727509309098, - -0.11678378571506585, - -0.11571232395722444, - -0.11431361109719125, - -0.11262263618346675, - -0.11074149920657728, - -0.10881628517819132, - -0.10682480002268784, - -0.10462790011961862, - -0.10224711733470321, - -0.09958080508648229, - -0.09669077303884487, - -0.09363437084900993, - -0.09027350525254706, - -0.0865531096009136, - -0.08247691518147608, - -0.0780827904204708, - -0.07354508662391766, - -0.06901596899113352, - -0.06440710383906145, - -0.05980436534607809, - -0.055238691783212966, - -0.05079167077658866, - -0.04660147158017192, - -0.04260841619297062, - -0.038635810057957506, - -0.034654264813905676, - -0.030642570491276073, - -0.026606741856858875, - -0.022682656206611286, - -0.018743584587500972, - -0.014767535046169058, - -0.01085797073879118, - -0.007140741821911353, - -0.003752933942205226, - -0.0008407669807211504, - 0.0017105214825770677, - 0.0039387451706717575, - 0.0057372219964946115, - 0.007143838298266624, - 0.008117091487205675, - 0.00877079193770745, - 0.009300962354724907, - 0.009760175380875764, - 0.010022332085015111, - 0.010103937605777928, - 0.009923839787496351, - 0.00950852248917383, - 0.008928932869532448, - 0.008006575255648409, - 0.006608003700372564, - 0.004713273834196263, - 0.002338111700591899, - -0.0004261371520429574, - -0.0034117551416990885, - -0.006727902518679058, - -0.010318663522370609, - -0.01406430092616529, - -0.017873840502438586, - -0.021612413889880014, - -0.02526406984641285, - -0.029004228935507834, - -0.03288391975349883, - -0.03683603889413827, - -0.040920126169687335, - -0.04505924878332832, - -0.04937453485571639, - -0.053968887251713685, - -0.058743083521505673, - -0.06353908168956778, - -0.0682736249857748, - -0.07281401101147132, - -0.07719377253760158, - -0.08145453462721326, - -0.0854178583358964, - -0.08906602088320004, - -0.09236500732784683, - -0.09535288228956716, - -0.09819290741989194, - -0.10096985991371629, - -0.10357893216536289, - -0.10604524631605594, - -0.1083204212274933, - -0.11041957608251693, - -0.11245629653191867, - -0.11429682840788907, - -0.11582223445387418, - -0.11695106892985944, - -0.1176192136850593, - -0.11787918213209485, - -0.11784719749052808, - -0.1174185650952581, - -0.11661785529345026, - -0.11544230272342089, - -0.11390858000524859, - -0.11222715226185091, - -0.11045968112530109, - -0.1085711841612959, - -0.10653039087790897, - -0.1042673410727151, - -0.10175444409672794, - -0.09913199657239763, - -0.09629495377985192, - -0.09317002928071974, - -0.08969588377720535, - -0.08579751112665855, - -0.08160725754702895, - -0.07727341052811501, - -0.07280087554165907, - -0.06821989148821245, - -0.06359251263666002, - -0.05891196288453696, - -0.054414049633600185, - -0.05014760252421569, - -0.04603712586307874, - -0.042012820520428075, - -0.03798690458487922, - -0.03392494517082791, - -0.029948740320624393, - -0.02603117324491205, - -0.022037150033830315, - -0.01801854712989523, - -0.013964375264791882, - -0.01006503681995563, - -0.006505127277465531, - -0.003295086053324845, - -0.0003794111528403076, - 0.0021542137942709982, - 0.004305708069225257, - 0.0059966934457559365, - 0.007186834569032803, - 0.008104253860592575, - 0.008842697438254426, - 0.009428916601602074, - 0.009856627866596404, - 0.010073068103437178, - 0.010030058089972003, - 0.009884488105524586, - 0.009557298727567757, - 0.008915412353597992, - 0.00786597563942487, - 0.0062849670710195815, - 0.004235196633443872, - 0.0018551733209873362, - -0.0008666418827988076, - -0.003987752154519033, - -0.0073977454431353945, - -0.011078717151229007, - -0.014805859158750828, - -0.018457248058999134, - -0.022119544890697, - -0.02585197462104282, - -0.02965285299824997, - -0.03355277536680313, - -0.03749336720123242, - -0.04147385016535366, - -0.04570961960170103, - -0.05018418326371849, - -0.054871038258800284, - -0.0596618377480914, - -0.06438952874101427, - -0.06901059060642668, - -0.07359561640091229, - -0.0780270644631468, - -0.08221442620739876, - -0.08608725852913833, - -0.08954286535386949, - -0.0927505275307768, - -0.09580467511121958, - -0.09870274494874892, - -0.10144188809686423, - -0.10400727325246203, - -0.10635659873585708, - -0.10864938104906899, - -0.11086406755711128, - -0.11289875980321554, - -0.11469190634030658, - -0.11606504241397149, - -0.11702837280344086, - -0.11765727860527733, - -0.11793939959790926, - -0.11783201622524465, - -0.1173279146458762, - -0.1163412320341089, - -0.11504967620637824, - -0.11358264200929649, - -0.11195703604125272, - -0.11022196088523362, - -0.10828625418792522, - -0.10611929314259544, - -0.10381607823339277, - -0.1013904090966141, - -0.09875914259831928, - -0.09589908077348923, - -0.09261906375502861, - -0.08895230815706379, - -0.0850175020779656, - -0.08085576531945361, - -0.07652607589502504, - -0.07203393666501455, - -0.0673535973008148, - -0.06264717414173471, - -0.05811476383645488, - -0.05373424785537886, - -0.04955478453721986, - -0.04543481442193553, - -0.041309634874025926, - -0.03726319076039048, - -0.03331680890175584, - -0.029372017194628525, - -0.02539726474377746, - -0.021319448765980163, - -0.01716519319424831, - -0.013188073918444457, - -0.009434310535314402, - -0.005951437720284512, - -0.0027592456536477085, - 0.00013062455678826662, - 0.002631501770050535, - 0.00457540740357052, - 0.006076171493149013, - 0.007258173349861069, - 0.00819443386284999, - 0.008992385168973771, - 0.009556033503932145, - 0.009858474454797265, - 0.010009565713582507, - 0.010075135152382104, - 0.009956159942806747, - 0.009615794981561034, - 0.00883545602107488, - 0.007565899075463796, - 0.005915820690534562, - 0.0038790354821082174, - 0.0014450179023739569, - -0.0013901807846530459, - -0.00463772740675544, - -0.008183473992894744, - -0.011763026563266922, - -0.015383325966433267, - -0.019017039020894685, - -0.02270998933592393, - -0.026514381872247427, - -0.030340098185472838, - -0.03412533955234877, - -0.03801942451579232, - -0.04212407912433622, - -0.046468667642432064, - -0.05108763463520503, - -0.05576549246418413, - -0.06045118701650235, - -0.06516546252681642, - -0.06986426583388454, - -0.07445840893655316, - -0.07886688732710564, - -0.08289613990456864, - -0.08657508042348905, - -0.09002439425149833, - -0.09324575247894777, - -0.09632758328603892, - -0.0992014236657254, - -0.10182651699405845, - -0.10430677752597924, - -0.10674520733742578, - -0.10909507510188131, - -0.1113537867133489, - -0.11332823597461049, - -0.11492355359111862, - -0.11621687780883205, - -0.11716663727152336, - -0.11778323984132885, - -0.11801675683953516, - -0.1177616134977906, - -0.11704939601693035, - -0.11603540895535855, - -0.1147536023308908, - -0.11334076281385574, - -0.1117458905812371, - -0.1098922994121221, - -0.107875338602504, - -0.10572830388961031, - -0.10347148569766616, - -0.10108932648830785, - -0.09841875227120458, - -0.09533761304787391, - -0.0919532313229706, - -0.08824708781918693, - -0.0843189260671745, - -0.08017833789564947, - -0.07574687093317925, - -0.07111169682329861, - -0.0664397451699457, - -0.06183430741541522, - -0.05740419437533867, - -0.05313804385025923, - -0.048872502064389194, - -0.04470223979717719, - -0.04063230334967532, - -0.036658441627781445, - -0.032752982327301575, - -0.028776131728196788, - -0.024629113233099485, - -0.02047525479113433, - -0.016420378853175686, - -0.012509696065059223, - -0.008843094295348351, - -0.00534431474482243, - -0.0021192408979012235, - 0.0006550485693538027, - 0.002921846413385712, - 0.004752104666761893, - 0.00618676721189457, - 0.007407852076808535, - 0.008397416406418074, - 0.009072147108765118, - 0.00954111336975374, - 0.009848125352951763, - 0.010061506021002985, - 0.010187879050778129, - 0.010075553392874205, - 0.009526052152530289, - 0.008614729944063563, - 0.00730651797603954, - 0.005620463951834218, - 0.003554597643371411, - 0.00097888763765882, - -0.0020653026583427334, - -0.005373551349384611, - -0.008824803989232442, - -0.012365313245526683, - -0.01593220436517782, - -0.019652489497058574, - -0.02342121905177571, - -0.02714698470296529, - -0.030867100309486875, - -0.03465766201225857, - -0.038616777658253, - -0.04287925858770678, - -0.04734487010077146, - -0.05188477225294774, - -0.056546801720329005, - -0.06125057346915195, - -0.06602733368816804, - -0.07079322764952514, - -0.07533584402986489, - -0.07953556069166848, - -0.08346181974542011, - -0.0871073338381826, - -0.09056510352661366, - -0.0938390482351863, - -0.09680118648558525, - -0.09955233418856077, - -0.10216483253248818, - -0.10470504641723376, - -0.10722408011363664, - -0.10963007586250759, - -0.11174612665174313, - -0.11360750084466384, - -0.11515932806490549, - -0.11641877745346907, - -0.11739986927867492, - -0.11792466056903358, - -0.117957489092181, - -0.11755946125984597, - -0.11679420518638242, - -0.11578216050074361, - -0.1145918639996553, - -0.11309840672744195, - -0.11139263575461601, - -0.10950711441661416, - -0.10749279882308746, - -0.10544185599062361, - -0.10323080021838245, - -0.10072497727462877, - -0.09790304506134004, - -0.09474575977192216, - -0.09129030421239416, - -0.08764857115382084, - -0.08367118414914798, - -0.07937487895335105, - -0.07484793697539685, - -0.07019120206126436, - -0.06559844949077824, - -0.06114905984855485, - -0.056738800050067664, - -0.05238297640015577, - -0.048147849790867434, - -0.04400553723749686, - -0.040053043654558244, - -0.03613991540720903, - -0.03211852681239311, - -0.02799895449500076, - -0.023847423657556974, - -0.01971749575350816, - -0.01575056700155831, - -0.011893517327553418, - -0.008124039060916704, - -0.004655273000937888, - -0.0015646560415523585, - 0.0010348161330103415, - 0.0031470904226083827, - 0.004916305449562295, - 0.006438773684798963, - 0.007599627172648624, - 0.008467304719390743, - 0.009081708012430871, - 0.009516038837250817, - 0.009934395101063693, - 0.010241836885482301, - 0.010285210034801057, - 0.010012127731577745, - 0.009400298078659289, - 0.008412688439960984, - 0.007133011792714101, - 0.0053831679965703665, - 0.0030944461528674303, - 0.00036265021982445796, - -0.002721899327062195, - -0.006011797864210131, - -0.0093890384580459, - -0.012928007058833933, - -0.016636140331544168, - -0.020336315470882695, - -0.024038299397165012, - -0.027676666189161387, - -0.031351115322921695, - -0.03524665026911611, - -0.03938554100694606, - -0.0436638845313124, - -0.04809805882609053, - -0.0526460321732666, - -0.057316248761300204, - -0.06217643288367995, - -0.0670000433576795, - -0.0716520568806554, - -0.07605484524352278, - -0.08016536090376841, - -0.0840397525886679, - -0.08775559724142806, - -0.0911715004342854, - -0.09429493585505552, - -0.0971887008715833, - -0.09988951319341918, - -0.10258083609162379, - -0.10523848483698647, - -0.10773329042396562, - -0.11001995476403588, - -0.11207619285259371, - -0.11386505562363289, - -0.1154729165441898, - -0.11673899721513331, - -0.11755533650516027, - -0.11792387571695631, - -0.11781093866980406, - -0.11735200542962626, - -0.11664228998242801, - -0.11563372907527553, - -0.11432267491662983, - -0.11277353302576261, - -0.11098428115989957, - -0.10915529831326992, - -0.10726673155948296, - -0.10519280833645, - -0.10288707895690591, - -0.10025902372779849, - -0.0973292391985539, - -0.0941916421606139, - -0.09078060292859605, - -0.08700110741386578, - -0.08291073791399661, - -0.07848311431191297, - -0.07392902753613408, - -0.06940184447784017, - -0.06488964395548782, - -0.060403301724840035, - -0.05597916698767114, - -0.05161549545737446, - -0.04744318078254712, - -0.04347854970870344, - -0.03950643050205969, - -0.035498875343996886, - -0.03138287782241796, - -0.02721381167248693, - -0.023114683450176202, - -0.019093115885515034, - -0.015054429496147364, - -0.011121873962915158, - -0.00739765000558877, - -0.0040139482952781585, - -0.0011480400242223153, - 0.0013176115303529829, - 0.0034466834637354804, - 0.005220500994094258, - 0.0066351472036648125, - 0.007715808277165271, - 0.008453248066189082, - 0.009084121446797676, - 0.00966545157673637, - 0.010098227102504126, - 0.010341036602049401, - 0.010284757658613607, - 0.009909095292011685, - 0.009289700086848129, - 0.00836023745519009, - 0.006920308024181066, - 0.004994502022930971, - 0.0025480998921891284, - -0.0002702545190760563, - -0.0032911700237291154, - -0.006535614854951002, - -0.010021214916336584, - -0.013638681015540683, - -0.01732045986919484, - -0.02097588230038295, - -0.02451805953156675, - -0.028166526783179123, - -0.031977240353982715, - -0.03595837596471649, - -0.040112701348971935, - -0.04439048065739141, - -0.048783128809848635, - -0.053434699947854915, - -0.058271652619917534, - -0.06312021753265819, - -0.06789093183204692, - -0.07240373473944531, - -0.07670210727259223, - -0.0808448903121685, - -0.08475766050740756, - -0.08835644072704431, - -0.09166945063743537, - -0.09466651218343099, - -0.09753362911912665, - -0.10037481263075469, - -0.10310299531996231, - -0.10572018068530674, - -0.10814234300350938, - -0.11034449912347771, - -0.11240015452761219, - -0.11428043701930483, - -0.11581295013913442, - -0.11696491843096403, - -0.11761052187717744, - -0.1178136122446651, - -0.117713131386264, - -0.11727440936122568, - -0.11650567252774037, - -0.11540437401491106, - -0.11397513260471284, - -0.11236681546415836, - -0.11071424835917894, - -0.1089304281011057, - -0.10702871666217958, - -0.10487536501357934, - -0.10242098746835245, - -0.09976315734436662, - -0.09688319285416092, - -0.093707391519515, - -0.09019699634738756, - -0.08627544364689779, - -0.082008813645921, - -0.07763266388974177, - -0.07315519031426604, - -0.06865524364386956, - -0.06412977775123208, - -0.05958135061279661, - -0.05515177355630872, - -0.05095679447019106, - -0.04689700878009754, - -0.04290159576484697, - -0.038882995308307175, - -0.03473890066443287, - -0.030629196178523364, - -0.026553842367442074, - -0.022463834712805462, - -0.018356289713823377, - -0.014275070096115205, - -0.010312356903891104, - -0.006730104339353324, - -0.0035642399269345984, - -0.0007462353752824486, - 0.0016918584519002482, - 0.003796559349402269, - 0.005492265709374153, - 0.00674220240530053, - 0.007690882086872931, - 0.008527183889689077, - 0.009226625706230736, - 0.009831581202175562, - 0.010219757879728519, - 0.010317817047884271 + 0.0, + -9.9999972522722e-5, + -0.0004017754201457377, + -0.0008792639021254125, + -0.0014698619560269393, + -0.002401396577811402, + -0.003790451884072593, + -0.0056328895406657494, + -0.007950170399951304, + -0.01060536005594776, + -0.01356570895419228, + -0.016911648253035625, + -0.020600257077109344, + -0.02443646300510608, + -0.02835207308271733, + -0.032174572933033996, + -0.0359590507406028, + -0.03984193918443984, + -0.04378087240471843, + -0.04773885667217311, + -0.05174579087891735, + -0.05580765829346273, + -0.06003902658456762, + -0.06457691212100433, + -0.06924182716791297, + -0.07396649515655952, + -0.07864223748074199, + -0.08319051466958452, + -0.08764948196928689, + -0.09199165140294387, + -0.09602570748859454, + -0.09970414733710964, + -0.10302756184690186, + -0.10602018636439417, + -0.10889033218456645, + -0.11159706336855418, + -0.11409538482286123, + -0.11640718846843087, + -0.11854288616430568, + -0.12055139525206852, + -0.12252687363398398, + -0.12430571793994595, + -0.12577589989419785, + -0.12689452921019884, + -0.1275665703909394, + -0.12790629651976834, + -0.1279219981420552, + -0.12752865287024526, + -0.12670442404531182, + -0.12547194273724102, + -0.1238718813857606, + -0.12213726192125415, + -0.12027574202746534, + -0.1182449821813424, + -0.1160650057951082, + -0.1136594293158479, + -0.11111010721985337, + -0.10847931697531162, + -0.10566647986938933, + -0.10255573867452145, + -0.09912156120801463, + -0.09527000643162871, + -0.0911686829637631, + -0.08690316526774, + -0.08243766226816843, + -0.07782390308145995, + -0.07308413082619954, + -0.0683188881304433, + -0.06374050359550477, + -0.05941089146875812, + -0.05520058980238842, + -0.05111967665372357, + -0.0470620938833673, + -0.043075308205940466, + -0.03923530632361693, + -0.03543268456133867, + -0.031546947208853544, + -0.02761082712800767, + -0.02365888130800107, + -0.01983367534689891, + -0.01633112100875468, + -0.013064958719995124, + -0.010083451959594774, + -0.007455780360557853, + -0.005252257948546738, + -0.003555105670489541, + -0.0023718406600840127, + -0.001472458578565608, + -0.0007836852578613825, + -0.00032428499237630894, + -4.93655783646383e-5, + -4.302124357079447e-5, + -0.0002053931516368887, + -0.00043350087769053816, + -0.0008060666143826136, + -0.0014989903946666435, + -0.002559753864378852, + -0.00411303434581275, + -0.006070161020950791, + -0.008342631767171073, + -0.011038628559994788, + -0.014158825352635816, + -0.017635589578358164, + -0.021370753158815703, + -0.025182765206654918, + -0.02892978364310827, + -0.032751244930238656, + -0.03661373081889362, + -0.04051964927725816, + -0.04445085999502093, + -0.048338974921111916, + -0.05227480051708911, + -0.056447849615413194, + -0.0608587948891786, + -0.06543435833305769, + -0.07012623931432467, + -0.07475355475967753, + -0.079391359672094, + -0.08402949458090414, + -0.08852661016125588, + -0.092767972953653, + -0.09667521559034244, + -0.1001833449528497, + -0.10344335488612551, + -0.10652931020023365, + -0.10937567976329855, + -0.11203541710180599, + -0.11444616106563202, + -0.11667892247799262, + -0.11886831504998503, + -0.12099909389535767, + -0.12295236971647353, + -0.12466877936438543, + -0.1259922137483497, + -0.12697076963598397, + -0.1276764693197253, + -0.12800131153473612, + -0.12793404788857854, + -0.12740121347350244, + -0.12639971048287732, + -0.1250806031051606, + -0.12357130030090607, + -0.1218515996424187, + -0.11998796603269167, + -0.11789274295403605, + -0.11559251474053822, + -0.11322724200257109, + -0.11075484097553262, + -0.10813469331213262, + -0.1052583610174085, + -0.10199558160263461, + -0.09838095940003992, + -0.09455498037044527, + -0.09046621225887327, + -0.08617200743667769, + -0.08164075853290208, + -0.07688851648477178, + -0.07213491165702574, + -0.06752013243210575, + -0.06306012984034604, + -0.05876004360217711, + -0.054553288374180754, + -0.05037870069287157, + -0.046392326535234334, + -0.042521678291703315, + -0.03869073367671067, + -0.03481738467972264, + -0.030825669007552563, + -0.026794769209803962, + -0.02292889896825536, + -0.019247988838876462, + -0.015738967077357228, + -0.012492519754027714, + -0.009503887537438499, + -0.006978494483511715, + -0.005002371277248765, + -0.0034733381659433175, + -0.0022680746843598814, + -0.0013597121445279668, + -0.0006677973087457888, + -0.00026705581418027223, + -0.0001418735387212558, + -0.00010742698509019419, + -0.00016859244624368476, + -0.00035760991616499635, + -0.0007850560235191234, + -0.0016025291545280727, + -0.002856906415231882, + -0.004415311225698334, + -0.0063671260140661275, + -0.008739881861984624, + -0.011563067076627144, + -0.014855843494185991, + -0.01841412419256242, + -0.022052201479966123, + -0.025762115112492122, + -0.02956102438997924, + -0.033403718516280885, + -0.03733493259832649, + -0.041186121945817535, + -0.04497779281469019, + -0.04886425419272661, + -0.05292873265055837, + -0.05721450848096135, + -0.06170964519596642, + -0.06626718799215259, + -0.07085765796772751, + -0.07556476051060054, + -0.08027073197619523, + -0.08492991726212475, + -0.08936791148948554, + -0.09343643072389761, + -0.09718269007670041, + -0.10070798389465807, + -0.10398435932721241, + -0.10704832701583815, + -0.10984114687022485, + -0.11233611844017519, + -0.11473179535956816, + -0.11705758815798883, + -0.11931837053716515, + -0.12145388828944854, + -0.12332578245802035, + -0.124869870340842, + -0.12617280489291927, + -0.12716441343883148, + -0.12783048150072848, + -0.1280966422417543, + -0.12782429785429145, + -0.12712833745691812, + -0.12609965118808336, + -0.12481072216598092, + -0.12331989932698371, + -0.12159206339926261, + -0.11957486734038009, + -0.11743879555962654, + -0.11520551623028435, + -0.11289383547735057, + -0.11047176193702943, + -0.10774703416200922, + -0.10469099879720994, + -0.101352831091089, + -0.09774630787187837, + -0.09389705076722407, + -0.0898068193390602, + -0.08535027450731612, + -0.08069296546846748, + -0.07597661225520483, + -0.07131364743766493, + -0.06680856347740823, + -0.062398797699448415, + -0.058021808321450805, + -0.053785634297010054, + -0.04974635189555781, + -0.04582260422363661, + -0.04200386034091371, + -0.03808196476701945, + -0.034051991960586954, + -0.03004024306690145, + -0.02611144977576539, + -0.022289575923085853, + -0.018625338141794713, + -0.015087756378126996, + -0.011804462681657715, + -0.009007061705694631, + -0.006674007749896725, + -0.004811305946423044, + -0.003317534826318619, + -0.002096992511609457, + -0.0011870236627799773, + -0.0006600100124509751, + -0.0003446158689866686, + -0.00016808222738547325, + -7.398456488521069e-5, + -4.838413385772032e-5, + -0.00030251252082332154, + -0.0009058606008623613, + -0.00181980802867256, + -0.003048357590639812, + -0.004658780800685341, + -0.006665947465670396, + -0.009233643777173652, + -0.012257010975006604, + -0.015552889705160784, + -0.01905062193922241, + -0.022663471866537964, + -0.02639015702768794, + -0.030261681967200624, + -0.03416058917372807, + -0.03794093572475133, + -0.04171340033691147, + -0.04550815137114175, + -0.049477138996869174, + -0.05369021923419486, + -0.058030977830575155, + -0.06244227948180681, + -0.06699777839611559, + -0.0716741782146547, + -0.07644969403722189, + -0.08123888087337783, + -0.08577201081231128, + -0.0900355821554018, + -0.09403159324173511, + -0.09777480745613597, + -0.10129912452926698, + -0.10456813612030143, + -0.10747431096073437, + -0.11014444202663555, + -0.11267409423329915, + -0.11511060195820987, + -0.11753964176094879, + -0.11979133744027486, + -0.12179524033818707, + -0.12357581869857498, + -0.12512627595079454, + -0.12642261845619054, + -0.12743568057322574, + -0.12796235012530635, + -0.12800760854987192, + -0.1276412433400124, + -0.1268909426215235, + -0.12589543869373687, + -0.12462121764341193, + -0.12301943679587529, + -0.12117114358506181, + -0.11916452557831293, + -0.11704763965699942, + -0.11492987733662481, + -0.11263313600409176, + -0.11006326570107568, + -0.10723211306850751, + -0.10410921287406202, + -0.10076723743620074, + -0.0971931984623518, + -0.09325898019330367, + -0.08896308541068473, + -0.0844481839531852, + -0.07977395724590473, + -0.0751608493926044, + -0.07060816291396864, + -0.06605831557921532, + -0.06159327094514364, + -0.057270568164461674, + -0.05312289065568436, + -0.049189340623249006, + -0.045323149698504296, + -0.04134355047636368, + -0.03734339681045046, + -0.033316630287105714, + -0.029350524756710433, + -0.02548563637678915, + -0.02164840794279712, + -0.017867688790505366, + -0.014374808442181624, + -0.011266779803812998, + -0.008615280295403692, + -0.0064384679096311966, + -0.00456472670754288, + -0.003048038503478863, + -0.0019379145846671938, + -0.0011849416806516584, + -0.0006945371750182085, + -0.000383554622931586, + -8.568975300521885e-5, + 7.26741153062975e-5, + -3.2972517298626713e-5, + -0.0003813222811219416, + -0.0010346606560587696, + -0.001958365914181269, + -0.003183366004845146, + -0.0048801455124074635, + -0.007148019021270007, + -0.009832239484866426, + -0.012890415037716487, + -0.01616748685905472, + -0.01961645998548652, + -0.023312981339599595, + -0.027155027491420493, + -0.03098381277582425, + -0.03475994155432698, + -0.03847773041462943, + -0.04220718076649415, + -0.04615296313137675, + -0.05022701452142175, + -0.05441021354220856, + -0.05872183916450446, + -0.06316264650089283, + -0.06778574609221628, + -0.07261402926473326, + -0.07742198025269847, + -0.0820607980030219, + -0.08650986260698179, + -0.09068239566121351, + -0.09468608245333884, + -0.09846554540420324, + -0.10189830978949672, + -0.10498847942140377, + -0.10782913992583305, + -0.11047894984057, + -0.11309855148310138, + -0.11563199208472671, + -0.11796220836813233, + -0.12013522229152802, + -0.12208992742811758, + -0.12386955311015038, + -0.12547642640491113, + -0.1267522540839811, + -0.12757140021123523, + -0.12795972182561094, + -0.12787790527458417, + -0.1274727509309098, + -0.12678378571506585, + -0.12571232395722445, + -0.12431361109719125, + -0.12262263618346675, + -0.12074149920657727, + -0.11881628517819132, + -0.11682480002268783, + -0.11462790011961861, + -0.1122471173347032, + -0.10958080508648228, + -0.10669077303884486, + -0.10363437084900992, + -0.10027350525254705, + -0.0965531096009136, + -0.09247691518147608, + -0.08808279042047079, + -0.08354508662391766, + -0.07901596899113351, + -0.07440710383906145, + -0.06980436534607809, + -0.06523869178321297, + -0.06079167077658866, + -0.056601471580171925, + -0.052608416192970624, + -0.04863581005795751, + -0.04465426481390568, + -0.04064257049127607, + -0.036606741856858874, + -0.03268265620661129, + -0.028743584587500974, + -0.02476753504616906, + -0.02085797073879118, + -0.017140741821911352, + -0.013752933942205225, + -0.01084076698072115, + -0.008289478517422932, + -0.006061254829328243, + -0.004262778003505389, + -0.0028561617017333766, + -0.0018829085127943252, + -0.0012292080622925503, + -0.0006990376452750934, + -0.00023982461912423585, + 2.2332085015111178e-5, + 0.00010393760577792795, + -7.616021250364882e-5, + -0.0004914775108261701, + -0.001071067130467552, + -0.0019934247443515914, + -0.003391996299627436, + -0.005286726165803737, + -0.007661888299408101, + -0.010426137152042958, + -0.013411755141699089, + -0.016727902518679057, + -0.02031866352237061, + -0.02406430092616529, + -0.027873840502438588, + -0.031612413889880016, + -0.03526406984641285, + -0.03900422893550783, + -0.04288391975349883, + -0.046836038894138274, + -0.05092012616968734, + -0.055059248783328324, + -0.05937453485571639, + -0.06396888725171368, + -0.06874308352150567, + -0.07353908168956777, + -0.0782736249857748, + -0.08281401101147132, + -0.08719377253760158, + -0.09145453462721326, + -0.09541785833589639, + -0.09906602088320003, + -0.10236500732784683, + -0.10535288228956716, + -0.10819290741989193, + -0.11096985991371629, + -0.11357893216536288, + -0.11604524631605594, + -0.1183204212274933, + -0.12041957608251692, + -0.12245629653191867, + -0.12429682840788907, + -0.1258222344538742, + -0.12695106892985944, + -0.1276192136850593, + -0.12787918213209484, + -0.1278471974905281, + -0.1274185650952581, + -0.12661785529345027, + -0.12544230272342088, + -0.12390858000524858, + -0.12222715226185091, + -0.12045968112530109, + -0.11857118416129589, + -0.11653039087790897, + -0.11426734107271509, + -0.11175444409672794, + -0.10913199657239762, + -0.10629495377985192, + -0.10317002928071974, + -0.09969588377720534, + -0.09579751112665855, + -0.09160725754702895, + -0.087273410528115, + -0.08280087554165906, + -0.07821989148821244, + -0.07359251263666002, + -0.06891196288453696, + -0.06441404963360019, + -0.06014760252421569, + -0.05603712586307874, + -0.05201282052042808, + -0.047986904584879225, + -0.043924945170827914, + -0.03994874032062439, + -0.03603117324491205, + -0.032037150033830314, + -0.02801854712989523, + -0.023964375264791882, + -0.020065036819955633, + -0.01650512727746553, + -0.013295086053324846, + -0.010379411152840308, + -0.007845786205729002, + -0.0056942919307747435, + -0.004003306554244064, + -0.002813165430967197, + -0.001895746139407425, + -0.0011573025617455743, + -0.0005710833983979258, + -0.00014337213340359645, + 7.306810343717801e-5, + 3.005808997200328e-5, + -0.00011551189447541431, + -0.00044270127243224364, + -0.001084587646402008, + -0.0021340243605751305, + -0.0037150329289804187, + -0.005764803366556128, + -0.008144826679012665, + -0.010866641882798808, + -0.013987752154519032, + -0.017397745443135396, + -0.021078717151229005, + -0.024805859158750828, + -0.028457248058999136, + -0.032119544890697, + -0.03585197462104282, + -0.03965285299824997, + -0.04355277536680313, + -0.04749336720123242, + -0.05147385016535366, + -0.05570961960170103, + -0.060184183263718494, + -0.06487103825880028, + -0.0696618377480914, + -0.07438952874101426, + -0.07901059060642668, + -0.08359561640091229, + -0.0880270644631468, + -0.09221442620739875, + -0.09608725852913833, + -0.09954286535386948, + -0.10275052753077679, + -0.10580467511121958, + -0.10870274494874892, + -0.11144188809686423, + -0.11400727325246203, + -0.11635659873585708, + -0.11864938104906898, + -0.12086406755711128, + -0.12289875980321553, + -0.12469190634030658, + -0.12606504241397148, + -0.12702837280344087, + -0.12765727860527734, + -0.12793939959790926, + -0.12783201622524465, + -0.1273279146458762, + -0.1263412320341089, + -0.12504967620637825, + -0.12358264200929649, + -0.12195703604125271, + -0.12022196088523361, + -0.11828625418792521, + -0.11611929314259543, + -0.11381607823339276, + -0.1113904090966141, + -0.10875914259831927, + -0.10589908077348922, + -0.1026190637550286, + -0.09895230815706378, + -0.0950175020779656, + -0.09085576531945361, + -0.08652607589502503, + -0.08203393666501455, + -0.0773535973008148, + -0.0726471741417347, + -0.06811476383645487, + -0.06373424785537886, + -0.059554784537219865, + -0.055434814421935534, + -0.05130963487402593, + -0.04726319076039048, + -0.04331680890175584, + -0.039372017194628524, + -0.03539726474377746, + -0.03131944876598016, + -0.02716519319424831, + -0.023188073918444456, + -0.0194343105353144, + -0.01595143772028451, + -0.012759245653647708, + -0.009869375443211734, + -0.007368498229949465, + -0.00542459259642948, + -0.003923828506850987, + -0.0027418266501389316, + -0.0018055661371500099, + -0.0010076148310262292, + -0.0004439664960678557, + -0.00014152554520273537, + 9.565713582506893e-6, + 7.513515238210394e-5, + -4.384005719325346e-5, + -0.00038420501843896594, + -0.0011645439789251203, + -0.0024341009245362043, + -0.004084179309465438, + -0.006120964517891783, + -0.008554982097626044, + -0.011390180784653045, + -0.01463772740675544, + -0.018183473992894744, + -0.021763026563266924, + -0.025383325966433265, + -0.029017039020894683, + -0.03270998933592393, + -0.036514381872247426, + -0.040340098185472836, + -0.04412533955234877, + -0.048019424515792324, + -0.05212407912433622, + -0.056468667642432066, + -0.06108763463520503, + -0.06576549246418413, + -0.07045118701650235, + -0.07516546252681641, + -0.07986426583388453, + -0.08445840893655315, + -0.08886688732710564, + -0.09289613990456863, + -0.09657508042348904, + -0.10002439425149832, + -0.10324575247894777, + -0.10632758328603892, + -0.1092014236657254, + -0.11182651699405845, + -0.11430677752597923, + -0.11674520733742577, + -0.1190950751018813, + -0.1213537867133489, + -0.12332823597461048, + -0.12492355359111862, + -0.12621687780883206, + -0.12716663727152336, + -0.12778323984132886, + -0.12801675683953517, + -0.1277616134977906, + -0.12704939601693035, + -0.12603540895535856, + -0.12475360233089079, + -0.12334076281385574, + -0.1217458905812371, + -0.1198922994121221, + -0.117875338602504, + -0.1157283038896103, + -0.11347148569766616, + -0.11108932648830784, + -0.10841875227120458, + -0.10533761304787391, + -0.1019532313229706, + -0.09824708781918692, + -0.0943189260671745, + -0.09017833789564947, + -0.08574687093317925, + -0.0811116968232986, + -0.0764397451699457, + -0.07183430741541522, + -0.06740419437533866, + -0.06313804385025923, + -0.058872502064389196, + -0.05470223979717719, + -0.05063230334967532, + -0.04665844162778145, + -0.04275298232730158, + -0.038776131728196786, + -0.03462911323309949, + -0.030475254791134332, + -0.026420378853175684, + -0.022509696065059225, + -0.01884309429534835, + -0.01534431474482243, + -0.012119240897901224, + -0.009344951430646198, + -0.007078153586614289, + -0.005247895333238107, + -0.0038132327881054305, + -0.0025921479231914655, + -0.001602583593581926, + -0.0009278528912348826, + -0.00045888663024626006, + -0.00015187464704823767, + 6.150602100298518e-5, + 0.0001878790507781284, + 7.555339287420443e-5, + -0.00047394784746971133, + -0.001385270055936437, + -0.00269348202396046, + -0.004379536048165782, + -0.006445402356628589, + -0.009021112362341181, + -0.012065302658342734, + -0.01537355134938461, + -0.01882480398923244, + -0.022365313245526684, + -0.02593220436517782, + -0.029652489497058572, + -0.03342121905177571, + -0.03714698470296529, + -0.04086710030948688, + -0.04465766201225857, + -0.048616777658253, + -0.052879258587706784, + -0.05734487010077146, + -0.061884772252947744, + -0.06654680172032901, + -0.07125057346915195, + -0.07602733368816804, + -0.08079322764952514, + -0.08533584402986488, + -0.08953556069166847, + -0.0934618197454201, + -0.0971073338381826, + -0.10056510352661366, + -0.10383904823518629, + -0.10680118648558524, + -0.10955233418856077, + -0.11216483253248817, + -0.11470504641723375, + -0.11722408011363664, + -0.11963007586250758, + -0.12174612665174313, + -0.12360750084466383, + -0.12515932806490548, + -0.12641877745346908, + -0.12739986927867492, + -0.1279246605690336, + -0.127957489092181, + -0.12755946125984596, + -0.12679420518638243, + -0.12578216050074362, + -0.1245918639996553, + -0.12309840672744195, + -0.12139263575461601, + -0.11950711441661416, + -0.11749279882308745, + -0.1154418559906236, + -0.11323080021838244, + -0.11072497727462877, + -0.10790304506134003, + -0.10474575977192216, + -0.10129030421239416, + -0.09764857115382083, + -0.09367118414914798, + -0.08937487895335104, + -0.08484793697539685, + -0.08019120206126436, + -0.07559844949077824, + -0.07114905984855485, + -0.06673880005006766, + -0.06238297640015577, + -0.058147849790867435, + -0.05400553723749686, + -0.050053043654558246, + -0.046139915407209034, + -0.042118526812393114, + -0.03799895449500076, + -0.033847423657556976, + -0.029717495753508162, + -0.02575056700155831, + -0.021893517327553416, + -0.018124039060916704, + -0.014655273000937889, + -0.011564656041552358, + -0.008965183866989659, + -0.006852909577391618, + -0.0050836945504377055, + -0.003561226315201037, + -0.0024003728273513762, + -0.001532695280609257, + -0.0009182919875691288, + -0.0004839611627491837, + -6.560489893630769e-5, + 0.0002418368854823008, + 0.00028521003480105715, + 1.212773157774523e-5, + -0.0005997019213407114, + -0.0015873115600390161, + -0.0028669882072858994, + -0.004616832003429634, + -0.00690555384713257, + -0.009637349780175542, + -0.012721899327062195, + -0.016011797864210132, + -0.0193890384580459, + -0.02292800705883393, + -0.02663614033154417, + -0.030336315470882697, + -0.03403829939716501, + -0.037676666189161385, + -0.0413511153229217, + -0.04524665026911611, + -0.04938554100694606, + -0.0536638845313124, + -0.05809805882609053, + -0.0626460321732666, + -0.0673162487613002, + -0.07217643288367995, + -0.0770000433576795, + -0.0816520568806554, + -0.08605484524352278, + -0.09016536090376841, + -0.0940397525886679, + -0.09775559724142806, + -0.1011715004342854, + -0.10429493585505552, + -0.10718870087158329, + -0.10988951319341918, + -0.11258083609162378, + -0.11523848483698647, + -0.11773329042396562, + -0.12001995476403587, + -0.1220761928525937, + -0.12386505562363288, + -0.1254729165441898, + -0.12673899721513332, + -0.12755533650516027, + -0.12792387571695632, + -0.12781093866980406, + -0.12735200542962627, + -0.12664228998242802, + -0.12563372907527554, + -0.12432267491662982, + -0.1227735330257626, + -0.12098428115989956, + -0.11915529831326992, + -0.11726673155948296, + -0.11519280833645, + -0.1128870789569059, + -0.11025902372779849, + -0.10732923919855389, + -0.1041916421606139, + -0.10078060292859604, + -0.09700110741386578, + -0.09291073791399661, + -0.08848311431191297, + -0.08392902753613407, + -0.07940184447784017, + -0.07488964395548782, + -0.07040330172484004, + -0.06597916698767115, + -0.061615495457374464, + -0.05744318078254712, + -0.05347854970870344, + -0.04950643050205969, + -0.04549887534399689, + -0.04138287782241796, + -0.037213811672486934, + -0.0331146834501762, + -0.029093115885515032, + -0.025054429496147362, + -0.021121873962915157, + -0.01739765000558877, + -0.014013948295278158, + -0.011148040024222315, + -0.008682388469647017, + -0.00655331653626452, + -0.0047794990059057425, + -0.0033648527963351877, + -0.0022841917228347292, + -0.0015467519338109182, + -0.0009158785532023244, + -0.0003345484232636295, + 9.822710250412606e-5, + 0.0003410366020494011, + 0.0002847576586136064, + -9.090470798831483e-5, + -0.0007102999131518711, + -0.0016397625448099102, + -0.003079691975818934, + -0.005005497977069029, + -0.007451900107810872, + -0.010270254519076056, + -0.013291170023729116, + -0.016535614854951003, + -0.020021214916336585, + -0.02363868101554068, + -0.02732045986919484, + -0.03097588230038295, + -0.03451805953156675, + -0.038166526783179125, + -0.04197724035398272, + -0.04595837596471649, + -0.05011270134897194, + -0.05439048065739141, + -0.05878312880984864, + -0.06343469994785492, + -0.06827165261991754, + -0.07312021753265818, + -0.07789093183204691, + -0.0824037347394453, + -0.08670210727259223, + -0.0908448903121685, + -0.09475766050740755, + -0.0983564407270443, + -0.10166945063743536, + -0.10466651218343098, + -0.10753362911912664, + -0.11037481263075469, + -0.1131029953199623, + -0.11572018068530673, + -0.11814234300350937, + -0.12034449912347771, + -0.12240015452761219, + -0.12428043701930483, + -0.12581295013913443, + -0.12696491843096402, + -0.12761052187717745, + -0.12781361224466511, + -0.127713131386264, + -0.1272744093612257, + -0.12650567252774036, + -0.12540437401491106, + -0.12397513260471284, + -0.12236681546415835, + -0.12071424835917893, + -0.1189304281011057, + -0.11702871666217958, + -0.11487536501357934, + -0.11242098746835244, + -0.10976315734436662, + -0.10688319285416091, + -0.103707391519515, + -0.10019699634738756, + -0.09627544364689779, + -0.09200881364592099, + -0.08763266388974177, + -0.08315519031426603, + -0.07865524364386955, + -0.07412977775123207, + -0.0695813506127966, + -0.06515177355630872, + -0.06095679447019106, + -0.05689700878009754, + -0.05290159576484697, + -0.04888299530830718, + -0.044738900664432875, + -0.04062919617852336, + -0.03655384236744207, + -0.032463834712805464, + -0.028356289713823375, + -0.024275070096115205, + -0.020312356903891104, + -0.016730104339353326, + -0.013564239926934599, + -0.010746235375282449, + -0.008308141548099751, + -0.006203440650597731, + -0.004507734290625847, + -0.00325779759469947, + -0.002309117913127069, + -0.0014728161103109236, + -0.0007733742937692644, + -0.0001684187978244385, + 0.00021975787972851844, + 0.00031781704788427095 ], "datatype": "Float64", "type": "series" }, - "mid_point_x_solid_1": { + "deflection_x_solid_1": { "n_values": 1001, "time": [ 0.0, @@ -3023,1007 +3023,1007 @@ ], "system_name": "solid", "values": [ - 0.4, - 0.39999999975087647, - 0.3999997685917326, - 0.3999980137707291, - 0.3999927035937933, - 0.39998279780798035, - 0.39996708478954407, - 0.39994324690449257, - 0.3999054272915937, - 0.3998385476275208, - 0.39972986433370244, - 0.39956914083785855, - 0.3993411419477183, - 0.3990507189696701, - 0.3987049507039811, - 0.3983194848375019, - 0.39789643635129474, - 0.39743187443911954, - 0.3969242731866516, - 0.39636939639367486, - 0.39575357585903514, - 0.3950587807517414, - 0.394268590060281, - 0.3933498695098687, - 0.3923125639857112, - 0.3911607716871264, - 0.3899176555285561, - 0.3886015441238695, - 0.38724621060639597, - 0.38587975210030734, - 0.384559848549976, - 0.3833323652656341, - 0.38220636569128585, - 0.3811777964152057, - 0.38019108301195315, - 0.3792488795717905, - 0.37833363049529833, - 0.37744282298516924, - 0.3765530005497395, - 0.3756639668546601, - 0.37476229786995274, - 0.37389929687005496, - 0.37314156394437736, - 0.37253611127955955, - 0.3721353250472256, - 0.3719330425646021, - 0.3719502219788595, - 0.37218640572677414, - 0.3726547429527143, - 0.3733101418729932, - 0.37410527928973836, - 0.3749472352954738, - 0.3758132708957546, - 0.37669141777890214, - 0.3775744612095784, - 0.3784792973606718, - 0.3793912235191037, - 0.38032341243390455, - 0.38129513386835606, - 0.38236061048922704, - 0.38352567112239944, - 0.3848021312828017, - 0.3861365069312178, - 0.38749626241661506, - 0.3888460181685501, - 0.39015034379279856, - 0.3913873590475208, - 0.3925184956231022, - 0.39352222190063874, - 0.39439701642224856, - 0.39516955180131563, - 0.3958474493901661, - 0.3964582203109533, - 0.3970077884527934, - 0.39750585823685153, - 0.3979617917452567, - 0.39838519146830725, - 0.3987738561001889, - 0.39911490678168826, - 0.3993923732034911, - 0.39960264608326895, - 0.3997548204281139, - 0.39985206799487794, - 0.39991182767472405, - 0.3999486091393075, - 0.39997168169953656, - 0.39998593635908597, - 0.39999408207161435, - 0.3999990887926806, - 0.4000006851649551, - 0.3999996034495466, - 0.3999994388085971, - 0.4000003184391625, - 0.3999994161078275, - 0.39999609374487727, - 0.39999057610525035, - 0.39997973019260247, - 0.39996375420790137, - 0.3999391160717518, - 0.3998963999898439, - 0.3998229430485824, - 0.39970342303488493, - 0.39952705681716444, - 0.39928914449739383, - 0.39898881209400533, - 0.398644065368061, - 0.39825437597905083, - 0.39782418763958394, - 0.3973534009444251, - 0.3968439756608539, - 0.3962862600377282, - 0.3956614962298161, - 0.39494407286291233, - 0.3941140260960919, - 0.39317142314672787, - 0.39210663222734543, - 0.39094421628546444, - 0.3896828661535189, - 0.38834717205789565, - 0.38697495884101896, - 0.38562963704204256, - 0.38434921472980077, - 0.38316566089414944, - 0.38206617467356874, - 0.381025332698331, - 0.3800473263493643, - 0.37910835209535293, - 0.37821057601778074, - 0.3773147364253905, - 0.3764043904810585, - 0.37546872868252973, - 0.3745588615200806, - 0.3737138378605628, - 0.3730031804767219, - 0.3724509735680446, - 0.3720680311444684, - 0.37190028040803697, - 0.37196274767375137, - 0.3722800067633465, - 0.37281064500781896, - 0.3735024452199343, - 0.3742738418857634, - 0.3751040699982606, - 0.37595679076277255, - 0.37683901139017356, - 0.37773226345111166, - 0.3786171878454986, - 0.3795108516094124, - 0.38043150766204265, - 0.38143265353701983, - 0.3825395350367589, - 0.3837565111223604, - 0.385039501437614, - 0.3863801258800954, - 0.3877378993806518, - 0.389092908482974, - 0.3904009899516654, - 0.39161352083085677, - 0.3927066210820967, - 0.3936720705274129, - 0.3945238796823642, - 0.395276133812861, - 0.3959500647050181, - 0.3965448460336702, - 0.3970828093022105, - 0.3975726949330792, - 0.398030997699756, - 0.3984597800925539, - 0.3988461075697446, - 0.39917366960275413, - 0.3994369253332962, - 0.3996356756317122, - 0.3997741213416085, - 0.39986500792757784, - 0.3999197924239995, - 0.3999543986477541, - 0.3999753410364855, - 0.39998833255815547, - 0.3999962373976589, - 0.3999994465841923, - 0.3999998921145806, - 0.3999997861000775, - 0.39999977247748353, - 0.3999994081609662, - 0.39999873518235185, - 0.399995336670144, - 0.39998769088255137, - 0.3999768277709659, - 0.3999611116159443, - 0.39993432331022943, - 0.39988535548312015, - 0.3998029909998203, - 0.3996740642262948, - 0.399484533774517, - 0.3992353389833877, - 0.39893432657823974, - 0.39858046396732955, - 0.39818390162460643, - 0.3977464365204667, - 0.3972800053280246, - 0.39677228678857823, - 0.3962048553063313, - 0.395556356723011, - 0.39481130896194255, - 0.39395580880561326, - 0.39298721953221594, - 0.39191264194955416, - 0.3907175867403981, - 0.38942883863814914, - 0.38807517137545994, - 0.3867185067342322, - 0.38540449143324984, - 0.3841671607896112, - 0.3829976200747143, - 0.38190078747350015, - 0.380871167927429, - 0.3799077348946444, - 0.3790003070263645, - 0.3780895526303543, - 0.3771648372753321, - 0.3762128826560879, - 0.3752702545075975, - 0.37436927673162274, - 0.3735702475418869, - 0.37287947932962573, - 0.37234013633105933, - 0.3719909026873043, - 0.37187540994227636, - 0.37202969204789516, - 0.37241070360596323, - 0.37297811047712026, - 0.3736582354874149, - 0.3744252005105708, - 0.3752500012538897, - 0.37612724027091277, - 0.3770014079833954, - 0.3778690682498705, - 0.37872910738786336, - 0.3796075140203919, - 0.3805577700890823, - 0.3816016547448476, - 0.3827463716053318, - 0.3839696359576948, - 0.38526756507471244, - 0.38661431345310665, - 0.38799925642122557, - 0.38935516596999614, - 0.390644589107269, - 0.3918226583842312, - 0.39287484019983726, - 0.393814986557815, - 0.39465226466648917, - 0.3953921390438477, - 0.3960413688139324, - 0.39662481129569344, - 0.3971510884358195, - 0.397646399338554, - 0.3981105949923677, - 0.3985380629616003, - 0.3989130201795993, - 0.39922671902901197, - 0.39947805154188853, - 0.39966676313248234, - 0.3997944376592648, - 0.39987628470256115, - 0.3999283696124835, - 0.39995927680960575, - 0.39997818265488333, - 0.3999901267872945, - 0.3999975689708351, - 0.3999999690220473, - 0.3999992485603873, - 0.399999340231284, - 0.39999993085282803, - 0.39999957169514166, - 0.39999768573476424, - 0.3999937132874755, - 0.3999858403147778, - 0.39997455791595043, - 0.3999570042110395, - 0.39992648427303046, - 0.3998733653442186, - 0.39978232224012933, - 0.39964116579297204, - 0.3994428272053311, - 0.3991855874298836, - 0.3988732514782191, - 0.39851203891585985, - 0.3981090069140642, - 0.39768026926650707, - 0.39721325236160426, - 0.39669894668900757, - 0.3961128716606319, - 0.39544053080903596, - 0.39467100388775955, - 0.3938005897410062, - 0.3928125612161865, - 0.3916993759384476, - 0.3904754183995048, - 0.3891602880678682, - 0.3878196748525996, - 0.38648781778331476, - 0.3852036125307019, - 0.38397276004004655, - 0.38281480077318325, - 0.38173219422630955, - 0.3807400345318644, - 0.3798021264956212, - 0.3788778566213145, - 0.3779453498277844, - 0.3769786876407886, - 0.37601925490759497, - 0.37508678148653224, - 0.37421561433728423, - 0.3734137010366485, - 0.3727335192781485, - 0.37221355352646746, - 0.3719331560970065, - 0.3719097980680135, - 0.37212540818761325, - 0.372545099995246, - 0.3731073019684151, - 0.3737986320783386, - 0.37458340380833854, - 0.37543191758776245, - 0.3762902243108387, - 0.3771455138819726, - 0.3779728877430121, - 0.3788241506675563, - 0.37973009338099395, - 0.38071429458578704, - 0.3817869255100324, - 0.38293695388456045, - 0.38417464184643485, - 0.38549569002820294, - 0.3868819368507554, - 0.3882698505545929, - 0.389618479599653, - 0.3908661331813008, - 0.39201030808656034, - 0.3930435538474126, - 0.39396473394270465, - 0.3947797893168826, - 0.3954953772803462, - 0.39612706728097613, - 0.3966962789540493, - 0.3972302527032201, - 0.39772827057244775, - 0.39819369283333506, - 0.39860932302734536, - 0.3989727508741237, - 0.39927931219232976, - 0.3995203383296346, - 0.3996946468833505, - 0.39981326020824626, - 0.39988838071609323, - 0.39993439398300823, - 0.3999626086830688, - 0.3999808894855939, - 0.3999930074876597, - 0.39999778992805457, - 0.3999992790494716, - 0.39999987418313665, - 0.39999965348870353, - 0.3999993089366585, - 0.39999961685024116, - 0.39999734553246064, - 0.3999914682381586, - 0.3999832397535043, - 0.39997119265013353, - 0.39995230611785143, - 0.3999183935411651, - 0.39985961012493787, - 0.39976127208893797, - 0.3996087291760632, - 0.39939899368175313, - 0.399131615667237, - 0.39880769856960635, - 0.3984416463513996, - 0.39804658806084775, - 0.39761823075843866, - 0.3971482598953851, - 0.39661305286354853, - 0.3960105968597554, - 0.39532311498196254, - 0.3945385837626081, - 0.3936402271362414, - 0.3926205071742308, - 0.39146989916815966, - 0.39021709282844774, - 0.3889124437718885, - 0.38758094471165955, - 0.3862691278904769, - 0.38498585102121474, - 0.3837681015398386, - 0.38263384379609794, - 0.3815990777699244, - 0.38062638913329905, - 0.3796849515401633, - 0.37873072026159227, - 0.37776316717770364, - 0.37680313901251783, - 0.3758457988153868, - 0.37492260769314123, - 0.3740384034058073, - 0.37323658416315575, - 0.3725720792400895, - 0.37213136093294363, - 0.3719260298435925, - 0.371970259363182, - 0.3722181266696069, - 0.3726452723024399, - 0.37323901104447516, - 0.37395940397327804, - 0.3747719026197295, - 0.37560688497111483, - 0.3764344217376344, - 0.3772442321464853, - 0.37807977613005916, - 0.3789430826255356, - 0.3798770618950195, - 0.3808772023326025, - 0.3819497131933717, - 0.3831198262897129, - 0.3843937568068654, - 0.38575761725265845, - 0.3871575970810396, - 0.3885395485584856, - 0.3898496146919153, - 0.3910787811598162, - 0.3921984816343902, - 0.3932136656451785, - 0.39411165333335096, - 0.3948949231573502, - 0.3955845731453656, - 0.3962075733712076, - 0.39678086974391963, - 0.39731438290975746, - 0.3978135145929172, - 0.3982662489932458, - 0.39867736638122714, - 0.39903499748566196, - 0.3993323598215013, - 0.3995607630669147, - 0.3997214146661284, - 0.3998286606687495, - 0.39989782406846414, - 0.39993956049268775, - 0.3999663385852537, - 0.39998414521742603, - 0.39999419757700116, - 0.3999984682749843, - 0.3999993359435775, - 0.39999961452506627, - 0.4000000741825685, - 0.3999999999740929, - 0.3999987393339958, - 0.3999956631474058, - 0.3999892323805484, - 0.3999799655225598, - 0.39996744125408656, - 0.3999469486570545, - 0.39991211843234, - 0.39984580115205376, - 0.39973640992620085, - 0.3995741199791836, - 0.3993515136238631, - 0.39907053936346276, - 0.39874347257477605, - 0.39838126342450864, - 0.39798837357630307, - 0.39755496953816327, - 0.39706793383976474, - 0.3965262444487155, - 0.3959083033446711, - 0.3952080504361328, - 0.394400087838443, - 0.39346833439230333, - 0.3924040011556366, - 0.39123382627907344, - 0.3899788041258084, - 0.388673291856768, - 0.38735021851224516, - 0.3860290106485138, - 0.38476495565252333, - 0.3835780841680076, - 0.38249187098202764, - 0.38147924677990447, - 0.3805065080062141, - 0.3795318195929858, - 0.3785672484443111, - 0.3776006121690369, - 0.3766375521483082, - 0.37568335791329727, - 0.37473161497583973, - 0.3738349067745596, - 0.37305215799996033, - 0.3724612019351851, - 0.37208646791239264, - 0.37194618898933224, - 0.3720079982199936, - 0.3722885560193887, - 0.37275847808459395, - 0.37339569645102383, - 0.37415133416337365, - 0.3749448864255055, - 0.3757467262238321, - 0.37654288450731055, - 0.3773567643377601, - 0.37819540405867935, - 0.3790876024199957, - 0.38001517905378446, - 0.38101524250410906, - 0.3821095236342425, - 0.3833238368885702, - 0.3846488733096524, - 0.38603140519249907, - 0.3874236814367707, - 0.38878261082796395, - 0.3900805500755632, - 0.39128755632573897, - 0.3923976059719915, - 0.3933772101493126, - 0.3942393014764774, - 0.39499744953073557, - 0.39567695665852065, - 0.3962961930589216, - 0.3968700703663698, - 0.39740043112353945, - 0.39788818662575015, - 0.39833988489187905, - 0.3987465474061265, - 0.3991021523507573, - 0.399384209375753, - 0.39959509775852803, - 0.3997446268217933, - 0.39984320177884825, - 0.3999046230452398, - 0.3999446484930809, - 0.3999711760086041, - 0.3999872397131938, - 0.399994839799771, - 0.3999985508477, - 0.40000023342149593, - 0.39999986902296036, - 0.3999994204374176, - 0.40000003067189976, - 0.3999984086225179, - 0.3999929382116391, - 0.3999860607224217, - 0.3999769003621363, - 0.3999645655494562, - 0.39994377524919994, - 0.399903146380398, - 0.39983060209562604, - 0.39970945464147056, - 0.399533548891733, - 0.399299030895069, - 0.3990126896516049, - 0.39868658581506505, - 0.39832628910617796, - 0.3979258569081659, - 0.3974820840509239, - 0.39699023374938225, - 0.3964377344349868, - 0.39581399274012913, - 0.39508631934075317, - 0.394244560407618, - 0.39327617906258083, - 0.3921916826316257, - 0.39100530942789813, - 0.38974817591711675, - 0.38843195891068716, - 0.38709652539147055, - 0.3857937464970981, - 0.38455910579909, - 0.38342576825139163, - 0.38236087774881167, - 0.3813452436209261, - 0.38035041356823535, - 0.3793795618728514, - 0.37841172494910985, - 0.37745339795232735, - 0.3764718796040298, - 0.3754789117721366, - 0.3745168661418613, - 0.3736353044309834, - 0.37291450074983723, - 0.37238086765195944, - 0.3720563558811711, - 0.37193417402561024, - 0.3720449972606178, - 0.372372685423961, - 0.3729125702709978, - 0.373581085100413, - 0.37431887539093983, - 0.3750862197352162, - 0.3758622189089094, - 0.37666363112424417, - 0.3774866509297669, - 0.37833417556560106, - 0.3792034311369132, - 0.38013738934140645, - 0.3811528647445794, - 0.3823017961993247, - 0.38356467794643656, - 0.38491031220683386, - 0.3862925102482185, - 0.3876726125922815, - 0.389025127395567, - 0.3903159160035535, - 0.3915099531976712, - 0.39257639633181446, - 0.39352460366640896, - 0.39435438513276055, - 0.3951007313218493, - 0.39577563163613816, - 0.3963908077057172, - 0.39695335152370004, - 0.3974760933913134, - 0.3979645817416738, - 0.3984180193181087, - 0.39882447683876404, - 0.3991625082693523, - 0.3994304260140289, - 0.39962666061107743, - 0.39976419395642215, - 0.3998550516809584, - 0.3999130341106381, - 0.39995095125553887, - 0.3999748818663137, - 0.3999888000457903, - 0.39999629766765404, - 0.3999992873717136, - 0.39999968046960244, - 0.399999786593869, - 0.400000031227346, - 0.39999899623931867, - 0.39999618672059073, - 0.3999908703535771, - 0.3999833317123974, - 0.3999747361883479, - 0.3999624869018363, - 0.39993986089126726, - 0.39989331608168704, - 0.3998096675832021, - 0.39967960535343816, - 0.3994902793894601, - 0.39924818795811523, - 0.3989600578070003, - 0.39863308226242783, - 0.39826495951878205, - 0.3978570501538612, - 0.39740970375739787, - 0.39691675172453345, - 0.39635631359533824, - 0.3957051445402176, - 0.3949515772996186, - 0.39407395251251387, - 0.3930834511942966, - 0.39198337038246983, - 0.3907853972483996, - 0.3894986730972446, - 0.38817277465703454, - 0.38684770684065817, - 0.38557987329349447, - 0.3843926802705917, - 0.3832731376587904, - 0.3822146773645399, - 0.3811872870412485, - 0.38020265173857315, - 0.37923934417584815, - 0.3782794952693759, - 0.3772835817734579, - 0.3762720732525387, - 0.3752579062225191, - 0.37430840268631155, - 0.3734832929346857, - 0.37280294025750804, - 0.3723013219533583, - 0.37199611834934354, - 0.3719305606831565, - 0.3721074544481819, - 0.3725147861703484, - 0.37307511675816346, - 0.3737440027812757, - 0.37445471275564146, - 0.375208449221909, - 0.3759980965851516, - 0.3768019167087485, - 0.37761626809920334, - 0.37844046876779547, - 0.3793067457588364, - 0.3802540882202206, - 0.38133373537337417, - 0.38252084031730793, - 0.3838096640495693, - 0.3851535749363682, - 0.38653776038336973, - 0.3879294498349564, - 0.3892819761438429, - 0.39055413023786556, - 0.391710921973163, - 0.3927415187148356, - 0.39365334356815956, - 0.3944769149672955, - 0.3952104848370023, - 0.39587425950831656, - 0.396475523686294, - 0.39703144367202314, - 0.39755450474500653, - 0.3980501580381896, - 0.39850301277667044, - 0.3988965190984922, - 0.3992191619697347, - 0.39946944714996846, - 0.399656666018076, - 0.39978321352813323, - 0.39986669711519096, - 0.39992153483893184, - 0.39995670485756446, - 0.3999778855666164, - 0.3999900888509506, - 0.39999713622332944, - 0.3999998442782547, - 0.3999993363950667, - 0.39999928305663907, - 0.39999990180702094, - 0.39999842355105875, - 0.3999937904414548, - 0.39998847710391333, - 0.3999817681243615, - 0.39997363483248505, - 0.39996006224736597, - 0.39993261973199506, - 0.399880770511802, - 0.3997882163939158, - 0.3996445738380997, - 0.39944936121774066, - 0.39920080881519887, - 0.3989086186066893, - 0.398571891706838, - 0.3981989577932568, - 0.39779212714078743, - 0.3973467536861819, - 0.3968434115885348, - 0.396264045974167, - 0.39558710895315286, - 0.39480090535636847, - 0.39390878497859216, - 0.3928960030548, - 0.3917730762788311, - 0.3905424010916847, - 0.38924154696157043, - 0.3879161946393369, - 0.38662962941110196, - 0.38539418008950704, - 0.38422366721588563, - 0.3831094613004334, - 0.38204611861720555, - 0.3810470715492806, - 0.38007612071714025, - 0.3791108576210728, - 0.37811339354951323, - 0.3770884130799685, - 0.37604742398357704, - 0.3750568942333477, - 0.37413891843010894, - 0.3733378322473657, - 0.37267827935889236, - 0.3721950304914356, - 0.371951738693764, - 0.37196447909461033, - 0.3722199450607851, - 0.3726546785620345, - 0.3732213282006292, - 0.37386456136599966, - 0.37459162956073344, - 0.37535565749596733, - 0.37614389985887964, - 0.3769307881641287, - 0.3777128939647476, - 0.3785286586571472, - 0.3794186524073383, - 0.38041903625052875, - 0.3815288286826547, - 0.38274500779410187, - 0.38403104806121935, - 0.3853976079202189, - 0.3868005662885306, - 0.3882007653294385, - 0.38954101377456835, - 0.39077513238850786, - 0.39189042871159063, - 0.39289438813580285, - 0.3937956484476981, - 0.3945974981650745, - 0.395318453092196, - 0.39596099169794385, - 0.39655497007726453, - 0.3971136382872568, - 0.39764551721949876, - 0.3981403449353937, - 0.39858319060115643, - 0.39896004091202975, - 0.39927058279812255, - 0.3995110022081293, - 0.39968270761824654, - 0.3998016242253241, - 0.399878691234675, - 0.39992893508174215, - 0.399960287210917, - 0.39998027442039574, - 0.3999926478411091, - 0.39999758999072343, - 0.3999985370668351, - 0.399999387504309, - 0.4000000406854919, - 0.3999989591707115, - 0.39999697596078215, - 0.39999291743847243, - 0.3999865375566009, - 0.39997974935429537, - 0.3999709978421504, - 0.3999563261871862, - 0.39992542688022853, - 0.3998653706516252, - 0.39976527289731406, - 0.39961245514968446, - 0.3994068721255536, - 0.39915328200990524, - 0.398849803451555, - 0.39851039636453495, - 0.3981380995569299, - 0.3977354978266683, - 0.397283227518802, - 0.39676308553184847, - 0.39615728614875645, - 0.3954610836500264, - 0.3946589599264458, - 0.3937393183926086, - 0.39270285310628766, - 0.39153981046124786, - 0.39028794934777694, - 0.388988343121987, - 0.38769252841931984, - 0.3864234752251136, - 0.38520573084861076, - 0.38403506574210616, - 0.38293687113253105, - 0.38190682285291006, - 0.3809211906169942, - 0.3799530430604693, - 0.37895120957438055, - 0.3779194183662454, - 0.37687430136640976, - 0.3758554848763128, - 0.3748731556663674, - 0.37397452366284467, - 0.3731697708480556, - 0.3725316200246957, - 0.3721173985629222, - 0.3719554584113086, - 0.37204455170437944, - 0.37232871697779246, - 0.3727724307944743, - 0.37333750658561754, - 0.3740110252465423, - 0.3747426636172125, - 0.3755163209872489, - 0.3762712893332508, - 0.3770220559874597, - 0.3777980529797777, - 0.3786350972786615, - 0.37956656380082565, - 0.38059630049443655, - 0.3817222891260382, - 0.3829415307449899, - 0.3842667180550403, - 0.3856582147569749, - 0.38708592937900244, - 0.3884692815390493, - 0.38977410917388966, - 0.39097564686303726, - 0.39206761301873094, - 0.39305179993710215, - 0.3939342540706393, - 0.39471568593873996, - 0.3954074258933849, - 0.39604549553661916, - 0.39663994189548646, - 0.3972081175416107, - 0.39773930844356603, - 0.3982251667420313, - 0.39865492252870954, - 0.3990236358525855, - 0.3993218109951477, - 0.3995495422039558, - 0.3997097237867153, - 0.3998169227369808, - 0.3998890233232952, - 0.39993457853321335, - 0.39996423457666447, - 0.3999831016582412, - 0.39999350115434884, - 0.39999761352429825, - 0.3999986197338261, - 0.39999926689212734, - 0.4000000160441306, - 0.3999990999556508, - 0.39999554394666675, - 0.39999090933055176, - 0.3999845747055973, - 0.3999769650364866, - 0.3999681177594456, - 0.3999514207578778, - 0.39991781109351704, - 0.39985136921098857, - 0.3997396311086307, - 0.39957883881096473, - 0.3993635267940255, - 0.3990971268858027, - 0.3987917101362144, - 0.3984530835374079, - 0.3980878969757125, - 0.39767651569590323, - 0.3972093287684575, - 0.39667123257874887, - 0.3960522939737397, - 0.3953352086486521, - 0.3945128905838373, - 0.3935639691241302, - 0.392482919032576, - 0.391299990224501, - 0.3900425065403315, - 0.38876026175137873, - 0.387474938216629, - 0.38621490164009564, - 0.384996679507083, - 0.3838576036020594, - 0.38278958153640846, - 0.3817881230625163, - 0.3807999333408953, - 0.37979159622332703, - 0.3787677785760734, - 0.3777246394664662, - 0.3766887406888693, - 0.37566913131749297, - 0.3746913725912662, - 0.37377069324493456, - 0.37299692707154314, - 0.3724162894083513, - 0.3720872513725028, - 0.3719963031523839, - 0.37211161247645164, - 0.3724146241114546, - 0.3728757533872519, - 0.3734790331864639, - 0.37417362669363047, - 0.3749101236149626, - 0.3756338009515502, - 0.37636657425842357, - 0.37710634444596874, - 0.37790182918838267, - 0.378771122542093, - 0.3797204304409463, - 0.38075655397326214, - 0.3818978660202394, - 0.3831592582869024, - 0.3845235097013534, - 0.3859482829177346, - 0.3873563669289275, - 0.3887195439468662, - 0.3899919045022865, - 0.39117350022436703, - 0.392250005162869, - 0.3932120316552729, - 0.3940594943970294, - 0.39481448220803805, - 0.3955001530399134, - 0.39613470514889104, - 0.39673892159230606, - 0.39730258994139533, - 0.3978276549995741, - 0.39830384328779683, - 0.3987279395256311, - 0.3990883884406058, - 0.39937424477256245, - 0.3995835871314519, - 0.39973197230910656, - 0.39983206355645773, - 0.39989677986645844, - 0.3999399172225342, - 0.39996840245859616, - 0.3999859106282609, - 0.3999935989342228, - 0.39999708745459334, - 0.3999993537077946, - 0.4000003337412692, - 0.399999428284417, - 0.3999981012608997 + 0.0, + -2.491235551183024e-10, + -2.31408267437061e-7, + -1.986229270944939e-6, + -7.2964062067248925e-6, + -1.720219201967188e-5, + -3.291521045595269e-5, + -5.6753095507455775e-5, + -9.457270840634857e-5, + -0.0001614523724792205, + -0.00027013566629757735, + -0.0004308591621414726, + -0.0006588580522817189, + -0.0009492810303299293, + -0.0012950492960189242, + -0.0016805151624981196, + -0.0021035636487052867, + -0.0025681255608804854, + -0.003075726813348445, + -0.0036306036063251668, + -0.004246424140964877, + -0.004941219248258633, + -0.0057314099397190454, + -0.006650130490131301, + -0.00768743601428884, + -0.008839228312873648, + -0.010082344471443905, + -0.011398455876130531, + -0.012753789393604054, + -0.014120247899692684, + -0.015440151450024031, + -0.016667634734365944, + -0.017793634308714168, + -0.018822203584794306, + -0.019808916988046876, + -0.020751120428209535, + -0.021666369504701688, + -0.022557177014830787, + -0.02344699945026052, + -0.02433603314533994, + -0.02523770213004728, + -0.026100703129945058, + -0.02685843605562266, + -0.027463888720440477, + -0.02786467495277445, + -0.028066957435397943, + -0.028049778021140503, + -0.027813594273225883, + -0.027345257047285743, + -0.026689858127006805, + -0.025894720710261665, + -0.02505276470452622, + -0.024186729104245408, + -0.023308582221097884, + -0.02242553879042164, + -0.021520702639328204, + -0.020608776480896318, + -0.01967658756609547, + -0.01870486613164396, + -0.017639389510772985, + -0.016474328877600586, + -0.015197868717198304, + -0.013863493068782207, + -0.012503737583384966, + -0.011153981831449944, + -0.009849656207201463, + -0.008612640952479211, + -0.0074815043768978184, + -0.006477778099361287, + -0.005602983577751464, + -0.0048304481986843895, + -0.004152550609833938, + -0.0035417796890467312, + -0.0029922115472066357, + -0.002494141763148494, + -0.0020382082547433233, + -0.0016148085316927685, + -0.0012261438998111274, + -0.000885093218311761, + -0.0006076267965089421, + -0.0003973539167310691, + -0.0002451795718861338, + -0.0001479320051220867, + -8.81723252759703e-5, + -5.139086069250176e-5, + -2.8318300463459067e-5, + -1.4063640914052655e-5, + -5.91792838566807e-6, + -9.112073194317283e-7, + 6.851649551053995e-7, + -3.96550453418687e-7, + -5.611914029035603e-7, + 3.184391624833083e-7, + -5.838921725009882e-7, + -3.906255122754221e-6, + -9.423894749671646e-6, + -2.0269807397554906e-5, + -3.624579209865475e-5, + -6.0883928248212094e-5, + -0.00010360001015613518, + -0.00017705695141762012, + -0.0002965769651150918, + -0.00047294318283558345, + -0.0007108555026061891, + -0.0010111879059946927, + -0.0013559346319390042, + -0.001745624020949188, + -0.002175812360416085, + -0.0026465990555749053, + -0.003156024339146135, + -0.0037137399622718115, + -0.00433850377018391, + -0.00505592713708769, + -0.005885973903908104, + -0.00682857685327215, + -0.007893367772654591, + -0.009055783714535581, + -0.010317133846481141, + -0.011652827942104371, + -0.013025041158981066, + -0.014370362957957461, + -0.015650785270199252, + -0.016834339105850582, + -0.017933825326431285, + -0.018974667301669024, + -0.019952673650635744, + -0.020891647904647093, + -0.02178942398221928, + -0.022685263574609538, + -0.023595609518941518, + -0.024531271317470293, + -0.025441138479919412, + -0.02628616213943724, + -0.02699681952327815, + -0.027549026431955448, + -0.02793196885553162, + -0.028099719591963057, + -0.02803725232624865, + -0.02771999323665353, + -0.02718935499218106, + -0.026497554780065713, + -0.02572615811423662, + -0.024895930001739397, + -0.02404320923722747, + -0.02316098860982646, + -0.02226773654888836, + -0.02138281215450144, + -0.02048914839058763, + -0.019568492337957377, + -0.018567346462980194, + -0.017460464963241107, + -0.0162434888776396, + -0.014960498562386015, + -0.013619874119904618, + -0.012262100619348237, + -0.010907091517026013, + -0.009599010048334633, + -0.008386479169143257, + -0.007293378917903326, + -0.006327929472587146, + -0.005476120317635835, + -0.0047238661871390475, + -0.004049935294981932, + -0.003455153966329838, + -0.002917190697789507, + -0.0024273050669208485, + -0.0019690023002440493, + -0.0015402199074461276, + -0.001153892430255432, + -0.0008263303972458891, + -0.0005630746667038, + -0.0003643243682878161, + -0.00022587865839152066, + -0.0001349920724221798, + -8.020757600052386e-5, + -4.5601352245905336e-5, + -2.4658963514501142e-5, + -1.1667441844553927e-5, + -3.762602341139676e-6, + -5.534158077358242e-7, + -1.0788541943140828e-7, + -2.13899922496541e-7, + -2.275225164938277e-7, + -5.918390338366386e-7, + -1.2648176481722118e-6, + -4.663329856047227e-6, + -1.2309117448650042e-5, + -2.3172229034140734e-5, + -3.888838405574635e-5, + -6.567668977058849e-5, + -0.00011464451687986932, + -0.00019700900017971534, + -0.00032593577370521043, + -0.0005154662254830411, + -0.0007646610166123224, + -0.0010656734217602826, + -0.0014195360326704765, + -0.0018160983753935933, + -0.002253563479533316, + -0.002719994671975423, + -0.00322771321142179, + -0.003795144693668706, + -0.00444364327698904, + -0.005188691038057469, + -0.006044191194386761, + -0.0070127804677840855, + -0.008087358050445859, + -0.00928241325960194, + -0.010571161361850878, + -0.011924828624540085, + -0.01328149326576783, + -0.014595508566750182, + -0.015832839210388805, + -0.01700237992528575, + -0.018099212526499875, + -0.019128832072571045, + -0.02009226510535561, + -0.02099969297363552, + -0.021910447369645702, + -0.0228351627246679, + -0.023787117343912145, + -0.024729745492402533, + -0.025630723268377287, + -0.02642975245811313, + -0.027120520670374293, + -0.027659863668940687, + -0.02800909731269574, + -0.028124590057723664, + -0.027970307952104867, + -0.02758929639403679, + -0.02702188952287976, + -0.02634176451258513, + -0.0255747994894292, + -0.024749998746110335, + -0.023872759729087256, + -0.022998592016604646, + -0.022130931750129534, + -0.02127089261213666, + -0.020392485979608133, + -0.019442229910917708, + -0.018398345255152437, + -0.017253628394668208, + -0.016030364042305234, + -0.014732434925287585, + -0.013385686546893372, + -0.012000743578774453, + -0.01064483403000388, + -0.009355410892731009, + -0.00817734161576883, + -0.007125159800162761, + -0.006185013442185028, + -0.00534773533351085, + -0.004607860956152343, + -0.003958631186067596, + -0.0033751887043065865, + -0.002848911564180545, + -0.0023536006614460203, + -0.0018894050076323499, + -0.0014619370383996966, + -0.0010869798204007353, + -0.000773280970988055, + -0.0005219484581114875, + -0.00033323686751768333, + -0.0002055623407352103, + -0.00012371529743887555, + -7.163038751650808e-5, + -4.072319039427619e-5, + -2.1817345116692533e-5, + -9.873212705513446e-6, + -2.431029164917664e-6, + -3.097795270301518e-8, + -7.514396127006329e-7, + -6.597687160492249e-7, + -6.91471719882486e-8, + -4.2830485835754217e-7, + -2.3142652357810434e-6, + -6.286712524505855e-6, + -1.4159685222225882e-5, + -2.5442084049587255e-5, + -4.299578896049816e-5, + -7.35157269695641e-5, + -0.0001266346557814435, + -0.0002176777598706936, + -0.0003588342070279804, + -0.0005571727946689364, + -0.0008144125701164406, + -0.001126748521780907, + -0.001487961084140177, + -0.0018909930859358215, + -0.002319730733492953, + -0.002786747638395759, + -0.0033010533109924522, + -0.0038871283393681066, + -0.0045594691909640606, + -0.005328996112240469, + -0.006199410258993843, + -0.0071874387838135045, + -0.008300624061552409, + -0.009524581600495241, + -0.010839711932131846, + -0.012180325147400417, + -0.013512182216685265, + -0.014796387469298122, + -0.016027239959953477, + -0.017185199226816772, + -0.01826780577369047, + -0.01925996546813563, + -0.02019787350437885, + -0.02112214337868551, + -0.02205465017221564, + -0.0230213123592114, + -0.023980745092405054, + -0.024913218513467783, + -0.025784385662715792, + -0.026586298963351518, + -0.027266480721851505, + -0.027786446473532567, + -0.02806684390299352, + -0.028090201931986525, + -0.027874591812386773, + -0.027454900004754035, + -0.02689269803158495, + -0.026201367921661445, + -0.025416596191661478, + -0.02456808241223757, + -0.023709775689161328, + -0.02285448611802743, + -0.022027112256987946, + -0.021175849332443708, + -0.020269906619006073, + -0.019285705414212984, + -0.018213074489967618, + -0.017063046115439573, + -0.015825358153565172, + -0.01450430997179708, + -0.01311806314924463, + -0.011730149445407123, + -0.01038152040034701, + -0.00913386681869921, + -0.007989691913439678, + -0.006956446152587448, + -0.006035266057295374, + -0.005220210683117399, + -0.004504622719653795, + -0.0038729327190238916, + -0.003303721045950725, + -0.002769747296779923, + -0.0022717294275522715, + -0.0018063071666649666, + -0.0013906769726546586, + -0.0010272491258763172, + -0.0007206878076702616, + -0.00047966167036544993, + -0.0003053531166495316, + -0.00018673979175376498, + -0.00011161928390679421, + -6.560601699179269e-5, + -3.7391316931201235e-5, + -1.9110514406117662e-5, + -6.992512340320278e-6, + -2.2100719454520856e-6, + -7.209505284433426e-7, + -1.2581686337220788e-7, + -3.465112964895489e-7, + -6.910633414958234e-7, + -3.8314975886466485e-7, + -2.6544675393869177e-6, + -8.531761841401586e-6, + -1.676024649571728e-5, + -2.8807349866488696e-5, + -4.7693882148591715e-5, + -8.160645883492634e-5, + -0.0001403898750621524, + -0.00023872791106205327, + -0.0003912708239368068, + -0.0006010063182468883, + -0.0008683843327630392, + -0.0011923014303936719, + -0.001558353648600408, + -0.001953411939152272, + -0.00238176924156136, + -0.0028517401046149193, + -0.0033869471364514903, + -0.003989403140244596, + -0.00467688501803748, + -0.005461416237391936, + -0.006359772863758606, + -0.007379492825769218, + -0.00853010083184036, + -0.00978290717155228, + -0.011087556228111528, + -0.012419055288340475, + -0.013730872109523118, + -0.01501414897878528, + -0.01623189846016143, + -0.017366156203902083, + -0.01840092223007561, + -0.019373610866700974, + -0.020315048459836726, + -0.021269279738407754, + -0.022236832822296382, + -0.023196860987482193, + -0.0241542011846132, + -0.025077392306858792, + -0.025961596594192726, + -0.026763415836844273, + -0.027427920759910518, + -0.02786863906705639, + -0.0280739701564075, + -0.028029740636818012, + -0.027781873330393114, + -0.027354727697560144, + -0.026760988955524867, + -0.026040596026721985, + -0.025228097380270542, + -0.024393115028885193, + -0.023565578262365605, + -0.02275576785351474, + -0.021920223869940858, + -0.021056917374464412, + -0.020122938104980503, + -0.019122797667397495, + -0.018050286806628346, + -0.016880173710287105, + -0.015606243193134639, + -0.014242382747341575, + -0.012842402918960438, + -0.011460451441514419, + -0.010150385308084708, + -0.00892121884018382, + -0.0078015183656098275, + -0.0067863343548215105, + -0.005888346666649058, + -0.005105076842649825, + -0.004415426854634419, + -0.0037924266287924224, + -0.0032191302560803936, + -0.0026856170902425647, + -0.0021864854070828277, + -0.001733751006754214, + -0.0013226336187728838, + -0.0009650025143380647, + -0.0006676401784987407, + -0.00043923693308534073, + -0.0002785853338715949, + -0.0001713393312505196, + -0.00010217593153588611, + -6.043950731227099e-5, + -3.3661414746311014e-5, + -1.5854782573987425e-5, + -5.8024229988573595e-6, + -1.5317250157131923e-6, + -6.640564225168788e-7, + -3.8547493375062913e-7, + 7.41825684769104e-8, + -2.590710979077926e-11, + -1.2606660041991624e-6, + -4.336852594211127e-6, + -1.0767619451623744e-5, + -2.0034477440200593e-5, + -3.2558745913457976e-5, + -5.305134294553149e-5, + -8.788156766004196e-5, + -0.00015419884794626304, + -0.0002635900737991692, + -0.00042588002081644927, + -0.0006484863761369031, + -0.0009294606365372604, + -0.0012565274252239744, + -0.0016187365754913863, + -0.002011626423696955, + -0.00244503046183675, + -0.0029320661602352804, + -0.003473755551284541, + -0.004091696655328936, + -0.004791949563867248, + -0.00559991216155703, + -0.006531665607696691, + -0.007595998844363405, + -0.008766173720926584, + -0.010021195874191646, + -0.011326708143232, + -0.012649781487754863, + -0.013970989351486218, + -0.01523504434747669, + -0.01642191583199243, + -0.017508129017972385, + -0.018520753220095554, + -0.019493491993785916, + -0.020468180407014203, + -0.02143275155568891, + -0.022399387830963124, + -0.023362447851691837, + -0.024316642086702756, + -0.02526838502416029, + -0.026165093225440417, + -0.02694784200003969, + -0.027538798064814907, + -0.027913532087607384, + -0.028053811010667784, + -0.027992001780006437, + -0.027711443980611317, + -0.027241521915406075, + -0.026604303548976194, + -0.025848665836626372, + -0.025055113574494525, + -0.024253273776167927, + -0.023457115492689473, + -0.022643235662239913, + -0.02180459594132067, + -0.02091239758000435, + -0.019984820946215565, + -0.018984757495890958, + -0.017890476365757524, + -0.01667616311142983, + -0.015351126690347605, + -0.013968594807500956, + -0.012576318563229327, + -0.011217389172036074, + -0.00991944992443683, + -0.00871244367426105, + -0.007602394028008497, + -0.006622789850687427, + -0.005760698523522623, + -0.005002550469264455, + -0.004323043341479371, + -0.0037038069410784136, + -0.003129929633630235, + -0.0025995688764605673, + -0.0021118133742498713, + -0.0016601151081209742, + -0.0012534525938735497, + -0.0008978476492427223, + -0.0006157906242470479, + -0.00040490224147199383, + -0.00025537317820673033, + -0.0001567982211517771, + -9.53769547601957e-5, + -5.535150691909907e-5, + -2.8823991395920956e-5, + -1.2760286806245968e-5, + -5.160200229004097e-6, + -1.449152300048162e-6, + 2.3342149590988015e-7, + -1.309770396584753e-7, + -5.795625824256412e-7, + 3.067189974226281e-8, + -1.5913774821241233e-6, + -7.061788360906984e-6, + -1.3939277578312037e-5, + -2.3099637863732703e-5, + -3.5434450543825324e-5, + -5.622475080008238e-5, + -9.68536196020442e-5, + -0.00016939790437398017, + -0.0002905453585294593, + -0.00046645110826704084, + -0.0007009691049310041, + -0.0009873103483951096, + -0.001313414184934969, + -0.0016737108938220668, + -0.002074143091834124, + -0.0025179159490761327, + -0.0030097662506177736, + -0.003562265565013212, + -0.004186007259870894, + -0.004913680659246855, + -0.005755439592382006, + -0.006723820937419189, + -0.00780831736837434, + -0.008994690572101893, + -0.010251824082883276, + -0.011568041089312864, + -0.012903474608529475, + -0.014206253502901944, + -0.01544089420091005, + -0.016574231748608392, + -0.017639122251188355, + -0.018654756379073933, + -0.019649586431764676, + -0.020620438127148644, + -0.02158827505089017, + -0.02254660204767267, + -0.023528120395970242, + -0.02452108822786342, + -0.025483133858138718, + -0.026364695569016605, + -0.027085499250162792, + -0.027619132348040587, + -0.027943644118828936, + -0.02806582597438978, + -0.02795500273938223, + -0.027627314576039008, + -0.027087429729002244, + -0.02641891489958703, + -0.02568112460906019, + -0.024913780264783802, + -0.024137781091090604, + -0.023336368875755853, + -0.022513349070233113, + -0.02166582443439896, + -0.02079656886308684, + -0.01986261065859357, + -0.018847135255420644, + -0.017698203800675327, + -0.01643532205356346, + -0.015089687793166162, + -0.013707489751781543, + -0.012327387407718549, + -0.010974872604433028, + -0.009684083996446546, + -0.008490046802328843, + -0.007423603668185563, + -0.006475396333591066, + -0.005645614867239468, + -0.004899268678150714, + -0.004224368363861863, + -0.0036091922942828036, + -0.0030466484762999846, + -0.0025239066086866213, + -0.002035418258326205, + -0.001581980681891304, + -0.0011755231612359807, + -0.0008374917306477325, + -0.000569573985971128, + -0.0003733393889225889, + -0.0002358060435778686, + -0.00014494831904160455, + -8.696588936191185e-5, + -4.904874446115537e-5, + -2.5118133686330424e-5, + -1.1199954209728524e-5, + -3.7023323459783875e-6, + -7.126282864367006e-7, + -3.195303975855879e-7, + -2.1340613104436912e-7, + 3.122734598681731e-8, + -1.0037606813506628e-6, + -3.813279409292658e-6, + -9.129646422911808e-6, + -1.6668287602605858e-5, + -2.5263811652131984e-5, + -3.751309816374393e-5, + -6.013910873275963e-5, + -0.00010668391831297752, + -0.00019033241679794477, + -0.00032039464656186123, + -0.0005097206105399432, + -0.0007518120418847918, + -0.0010399421929997432, + -0.001366917737572193, + -0.0017350404812179754, + -0.0021429498461388308, + -0.0025902962426021525, + -0.003083248275466577, + -0.0036436864046617834, + -0.004294855459782421, + -0.005048422700381416, + -0.005926047487486152, + -0.006916548805703415, + -0.008016629617530191, + -0.00921460275160041, + -0.010501326902755403, + -0.011827225342965486, + -0.013152293159341855, + -0.014420126706505554, + -0.01560731972940832, + -0.016726862341209625, + -0.01778532263546012, + -0.018812712958751532, + -0.019797348261426873, + -0.020760655824151875, + -0.021720504730624146, + -0.022716418226542134, + -0.023727926747461325, + -0.024742093777480934, + -0.025691597313688475, + -0.026516707065314338, + -0.02719705974249198, + -0.027698678046641723, + -0.02800388165065648, + -0.028069439316843525, + -0.027892545551818138, + -0.027485213829651634, + -0.02692488324183656, + -0.026255997218724347, + -0.02554528724435856, + -0.02479155077809103, + -0.024001903414848424, + -0.023198083291251503, + -0.022383731900796677, + -0.021559531232204554, + -0.02069325424116364, + -0.019745911779779413, + -0.01866626462662585, + -0.01747915968269209, + -0.016190335950430734, + -0.014846425063631818, + -0.01346223961663029, + -0.012070550165043603, + -0.01071802385615711, + -0.009445869762134462, + -0.008289078026837038, + -0.007258481285164431, + -0.006346656431840458, + -0.005523085032704544, + -0.004789515162997748, + -0.004125740491683461, + -0.0035244763137060042, + -0.002968556327976879, + -0.0024454952549934905, + -0.0019498419618104168, + -0.0014969872233295822, + -0.0011034809015078029, + -0.0007808380302652962, + -0.0005305528500315626, + -0.0003433339819240433, + -0.00021678647186679223, + -0.00013330288480906116, + -7.846516106818635e-5, + -4.3295142435562095e-5, + -2.2114433383624288e-5, + -9.911149049413037e-6, + -2.8637766705807977e-6, + -1.5572174533184935e-7, + -6.636049333375027e-7, + -7.169433609566234e-7, + -9.819297908109093e-8, + -1.5764489412761762e-6, + -6.209558545244853e-6, + -1.1522896086690881e-5, + -1.823187563854134e-5, + -2.636516751497453e-5, + -3.993775263405608e-5, + -6.738026800495733e-5, + -0.00011922948819803603, + -0.00021178360608420377, + -0.0003554261619003185, + -0.0005506387822593606, + -0.0007991911848011513, + -0.0010913813933107197, + -0.0014281082931620337, + -0.0018010422067432086, + -0.0022078728592125896, + -0.002653246313818136, + -0.003156588411465211, + -0.0037359540258330437, + -0.004412891046847167, + -0.005199094643631552, + -0.006091215021407859, + -0.007103996945200031, + -0.0082269237211689, + -0.009457598908315323, + -0.010758453038429594, + -0.012083805360663114, + -0.013370370588898062, + -0.014605819910492979, + -0.01577633278411439, + -0.016890538699566637, + -0.017953881382794468, + -0.018952928450719442, + -0.01992387928285977, + -0.020889142378927195, + -0.02188660645048679, + -0.022911586920031535, + -0.023952576016422977, + -0.024943105766652318, + -0.025861081569891087, + -0.026662167752634303, + -0.02732172064110766, + -0.027804969508564426, + -0.028048261306236, + -0.028035520905389688, + -0.027780054939214927, + -0.02734532143796553, + -0.026778671799370823, + -0.026135438634000363, + -0.02540837043926658, + -0.02464434250403269, + -0.023856100141120384, + -0.023069211835871295, + -0.022287106035252413, + -0.021471341342852834, + -0.020581347592661725, + -0.01958096374947127, + -0.018471171317345325, + -0.017254992205898156, + -0.015968951938780673, + -0.014602392079781146, + -0.013199433711469422, + -0.011799234670561543, + -0.010458986225431677, + -0.00922486761149216, + -0.00810957128840939, + -0.00710561186419717, + -0.006204351552301923, + -0.005402501834925522, + -0.004681546907804035, + -0.0040390083020561685, + -0.0034450299227354875, + -0.0028863617127432017, + -0.002354482780501266, + -0.001859655064606336, + -0.0014168093988435881, + -0.001039959087970277, + -0.0007294172018774692, + -0.0004889977918707267, + -0.00031729238175348673, + -0.0001983757746759074, + -0.00012130876532501222, + -7.10649182578682e-5, + -3.971278908304621e-5, + -1.9725579604279453e-5, + -7.352158890916449e-6, + -2.4100092765877434e-6, + -1.4629331649418376e-6, + -6.12495690999193e-7, + 4.068549186442283e-8, + -1.0408292885344395e-6, + -3.024039217869312e-6, + -7.082561527593789e-6, + -1.3462443399114843e-5, + -2.0250645704655845e-5, + -2.9002157849622456e-5, + -4.3673812813838087e-5, + -7.457311977149272e-5, + -0.0001346293483748262, + -0.00023472710268596098, + -0.00038754485031555763, + -0.0005931278744464308, + -0.0008467179900947808, + -0.0011501965484450039, + -0.0014896036354650755, + -0.001861900443070108, + -0.0022645021733317394, + -0.0027167724811980043, + -0.0032369144681515527, + -0.0038427138512435732, + -0.00453891634997361, + -0.005341040073554237, + -0.006260681607391405, + -0.0072971468937123585, + -0.00846018953875216, + -0.009712050652223081, + -0.011011656878013032, + -0.012307471580680185, + -0.013576524774886412, + -0.014794269151389261, + -0.01596493425789386, + -0.01706312886746897, + -0.018093177147089967, + -0.019078809383005824, + -0.020046956939530736, + -0.021048790425619468, + -0.022080581633754648, + -0.023125698633590264, + -0.024144515123687205, + -0.025126844333632603, + -0.02602547633715535, + -0.02683022915194444, + -0.027468379975304325, + -0.027882601437077825, + -0.028044541588691407, + -0.027955448295620577, + -0.02767128302220756, + -0.027227569205525715, + -0.026662493414382482, + -0.02598897475345774, + -0.025257336382787543, + -0.024483679012751114, + -0.023728710666749198, + -0.02297794401254033, + -0.022201947020222323, + -0.021364902721338508, + -0.02043343619917437, + -0.019403699505563476, + -0.01827771087396185, + -0.017058469255010145, + -0.01573328194495971, + -0.014341785243025096, + -0.012914070620997586, + -0.011530718460950717, + -0.010225890826110362, + -0.00902435313696276, + -0.00793238698126908, + -0.006948200062897869, + -0.006065745929360711, + -0.005284314061260065, + -0.0045925741066151216, + -0.003954504463380859, + -0.0033600581045135636, + -0.00279188245838935, + -0.0022606915564339913, + -0.0017748332579687331, + -0.001345077471290479, + -0.0009763641474145324, + -0.0006781890048523365, + -0.00045045779604424574, + -0.00029027621328470143, + -0.00018307726301924898, + -0.00011097667670484368, + -6.542146678667482e-5, + -3.5765423335554214e-5, + -1.689834175883087e-5, + -6.4988456511816395e-6, + -2.386475701776636e-6, + -1.3802661739115152e-6, + -7.331078726857676e-7, + 1.604413057965104e-8, + -9.000443492168664e-7, + -4.456053333268262e-6, + -9.090669448263977e-6, + -1.5425294402737766e-5, + -2.3034963513413054e-5, + -3.188224055444833e-5, + -4.8579242122204214e-5, + -8.218890648298283e-5, + -0.00014863078901145022, + -0.0002603688913693225, + -0.00042116118903529065, + -0.0006364732059745415, + -0.0009028731141973445, + -0.0012082898637856276, + -0.0015469164625921406, + -0.0019121030242875148, + -0.00232348430409679, + -0.0027906712315425297, + -0.0033287674212511553, + -0.0039477060262603225, + -0.004664791351347897, + -0.005487109416162705, + -0.006436030875869803, + -0.007517080967424039, + -0.008700009775499007, + -0.00995749345966851, + -0.01123973824862129, + -0.012525061783371039, + -0.01378509835990438, + -0.015003320492917027, + -0.016142396397940628, + -0.01721041846359156, + -0.018211876937483717, + -0.01920006665910473, + -0.02020840377667299, + -0.02123222142392661, + -0.022275360533533795, + -0.023311259311130705, + -0.024330868682507056, + -0.025308627408733797, + -0.026229306755065462, + -0.027003072928456884, + -0.027583710591648714, + -0.027912748627497208, + -0.02800369684761611, + -0.027888387523548386, + -0.027585375888545427, + -0.02712424661274815, + -0.026520966813536107, + -0.025826373306369554, + -0.025089876385037402, + -0.024366199048449833, + -0.023633425741576453, + -0.022893655554031278, + -0.022098170811617357, + -0.021228877457907025, + -0.020279569559053745, + -0.019243446026737887, + -0.018102133979760626, + -0.01684074171309763, + -0.015476490298646617, + -0.014051717082265436, + -0.012643633071072524, + -0.011280456053133825, + -0.010008095497713532, + -0.00882649977563299, + -0.0077499948371310134, + -0.006787968344727113, + -0.005940505602970603, + -0.005185517791961969, + -0.004499846960086595, + -0.00386529485110898, + -0.0032610784076939625, + -0.002697410058604688, + -0.0021723450004259015, + -0.0016961567122031895, + -0.0012720604743688968, + -0.000911611559394232, + -0.0006257552274375744, + -0.00041641286854809945, + -0.00026802769089345757, + -0.00016793644354229365, + -0.00010322013354158166, + -6.0082777465830794e-5, + -3.159754140386051e-5, + -1.4089371739134382e-5, + -6.401065777206227e-6, + -2.9125454066858403e-6, + -6.46292205419563e-7, + 3.3374126917617986e-7, + -5.717155830420317e-7, + -1.898739100336666e-6 ], "datatype": "Float64", "type": "series" diff --git a/validation/oscillating_beam_2d/validation_reference_35.json b/validation/oscillating_beam_2d/validation_reference_35.json index 4cb325e0f..40eeab8d6 100644 --- a/validation/oscillating_beam_2d/validation_reference_35.json +++ b/validation/oscillating_beam_2d/validation_reference_35.json @@ -4,7 +4,7 @@ "solver_version": "c6184f4-dirty", "solver_name": "TrixiParticles.jl" }, - "mid_point_y_solid_1": { + "deflection_y_solid_1": { "n_values": 1001, "time": [ 0.0, @@ -1011,1012 +1011,1012 @@ ], "system_name": "solid", "values": [ - 0.010000000000000002, - 0.009900000025642794, - 0.009598529242323321, - 0.009118461363504844, - 0.008531184606357609, - 0.00760970328510565, - 0.006232812740357872, - 0.004399269824378867, - 0.002090063372588566, - -0.0005700289332573109, - -0.0035283567563404454, - -0.006870969185704868, - -0.010573962855279404, - -0.01443688801707456, - -0.018396396410209036, - -0.02227454004816315, - -0.026098665229548526, - -0.030002672275381018, - -0.033982861625231835, - -0.03797063325792887, - -0.042015500598899615, - -0.046100377080675325, - -0.050319619495603485, - -0.05484324648311285, - -0.059536977150607684, - -0.06430485385435428, - -0.06904555554438935, - -0.07367317882569623, - -0.07818807437602897, - -0.08263423690091602, - -0.08680064335245198, - -0.09062377038468071, - -0.09408703217410656, - -0.09719472915260254, - -0.10012470506701983, - -0.10291841624411675, - -0.10550662486574151, - -0.10789961342164847, - -0.1101225502735139, - -0.11216299165803617, - -0.11417822903728127, - -0.11605853615685308, - -0.11767636785278891, - -0.11896066691524392, - -0.11982069278444021, - -0.12029133252223834, - -0.12047067399050757, - -0.12026883294521035, - -0.11963708360844034, - -0.11859984937020183, - -0.11713081158690274, - -0.1154460489979447, - -0.11362667614613067, - -0.11165865180558557, - -0.10954006771522978, - -0.10723988006346787, - -0.104714471035255, - -0.10211094125106755, - -0.09938573697704216, - -0.09642447223918355, - -0.09318291798518666, - -0.08952543007674958, - -0.08552779756918924, - -0.08132817003271552, - -0.07695149142353935, - -0.07237663263255062, - -0.06768027062592678, - -0.0628412053259151, - -0.05807702509827262, - -0.05353797944910765, - -0.049182910743526584, - -0.04498294319174507, - -0.04087354960748235, - -0.03678211688800534, - -0.03279514012065914, - -0.02895573573769592, - -0.0250864385409927, - -0.02118105914148227, - -0.017190652672160096, - -0.013203138207482597, - -0.009417101256332628, - -0.00593446790667583, - -0.0026784058208489834, - 0.0002694489606531966, - 0.0028597569304989693, - 0.005026100466821322, - 0.006622759472359959, - 0.007781807780025798, - 0.008655036585546533, - 0.0093012037877486, - 0.009733456724510122, - 0.009978589950292374, - 0.009935929737047797, - 0.009759990560078976, - 0.009514231340646662, - 0.009090006996364919, - 0.008389888465866371, - 0.007286789519690981, - 0.005691041036520415, - 0.0037095991357367943, - 0.0014123560194998536, - -0.0013285845563261018, - -0.004463722989554431, - -0.007992457053347023, - -0.011783450833591577, - -0.01562604741705615, - -0.01943518131231216, - -0.023312465556476928, - -0.02721622282490208, - -0.03117088351313101, - -0.03516034339786789, - -0.03907371421483408, - -0.04305170674736156, - -0.04723209056509438, - -0.051642486048762655, - -0.0562468136609951, - -0.06097658796027289, - -0.06564133645817417, - -0.07032583878807758, - -0.07501263529500829, - -0.07958034655100256, - -0.08393912738349023, - -0.08795065674454879, - -0.09156110070082873, - -0.09490864854263024, - -0.09805958185601425, - -0.1009744493124699, - -0.10371577399876418, - -0.106184487382034, - -0.10845651316070477, - -0.11066434241290794, - -0.1128099310131291, - -0.1148255876962717, - -0.11664319509406672, - -0.11808079233261087, - -0.11917056662310734, - -0.11997873858624919, - -0.12042673424080763, - -0.12052394674392357, - -0.12016050113036157, - -0.11930649748197353, - -0.11808873896093514, - -0.11662899252853152, - -0.11494880613436859, - -0.11314369635667451, - -0.11110190641946704, - -0.1088362677602173, - -0.10647100796200944, - -0.10399871022225811, - -0.10142919281172376, - -0.09867513341917196, - -0.0955648794300381, - -0.09208404164530262, - -0.0883490720848719, - -0.0843340541627772, - -0.08013484274096735, - -0.07569369018667901, - -0.07098434384433275, - -0.0661665715431359, - -0.061406429405655924, - -0.056771253714931476, - -0.05234572400207638, - -0.0480424027059013, - -0.0437619290427919, - -0.03963959457923443, - -0.03565125927228184, - -0.03177466843839782, - -0.027931365137940273, - -0.023995210882623075, - -0.019926641453510904, - -0.01594426779400348, - -0.01209498725923668, - -0.00842402109741076, - -0.004986111030972451, - -0.001742547625259988, - 0.0011622545028273264, - 0.0035575505516731547, - 0.005441433967644109, - 0.006909655535007493, - 0.008001177593883795, - 0.00888950781831967, - 0.009501226154961675, - 0.00979692618279693, - 0.0098884319199284, - 0.009867214832861744, - 0.009744660951990034, - 0.009526106522222294, - 0.009024526467850139, - 0.008085974030840621, - 0.006810413118603427, - 0.005164674826775656, - 0.0031486916264338396, - 0.0007187299327271382, - -0.002196925683821958, - -0.0055768925140071155, - -0.009161202032907878, - -0.012883054978223528, - -0.016673781602734753, - -0.020500822268291, - -0.024446887125306033, - -0.028425968005891998, - -0.03232217687369646, - -0.03617795849842163, - -0.04011030466675731, - -0.04417299108203722, - -0.0485270877632607, - -0.05303935070945834, - -0.05760589177576121, - -0.06225177991922979, - -0.06697345383665125, - -0.07172208929495394, - -0.07645414322092992, - -0.08095080476101622, - -0.08508538376434022, - -0.08894147623286175, - -0.09249762000158647, - -0.09584237340113481, - -0.09897317361207429, - -0.10180342023945597, - -0.10435093466997587, - -0.1067676309167078, - -0.10906510131316507, - -0.11134468459051394, - -0.11352239232872267, - -0.11541581315859092, - -0.11704427227482146, - -0.11838902022406528, - -0.11944577209690219, - -0.12021776370372757, - -0.12059087236418013, - -0.12044074632171818, - -0.11987556767666839, - -0.1188995663483621, - -0.11765261653926584, - -0.11621575331434027, - -0.11450687078615458, - -0.11254289074303314, - -0.1104025993576305, - -0.10811867161629832, - -0.10579624665275308, - -0.10340956580806192, - -0.10074378347286278, - -0.09780474971715018, - -0.09454255869335855, - -0.09099594377670532, - -0.08724280773573402, - -0.0832348826874506, - -0.07887488305050179, - -0.0742764490101986, - -0.0695060576652634, - -0.06472060819146595, - -0.06010531114691696, - -0.05557001520121182, - -0.05110564541267346, - -0.046753572474082156, - -0.04254283434769279, - -0.03850410524949715, - -0.03466018449846295, - -0.030760938200303217, - -0.02677069082908608, - -0.02274745902429836, - -0.01872618136536787, - -0.014826763161516657, - -0.011076039645143051, - -0.007403520251634691, - -0.00390922746755818, - -0.0007925764249737163, - 0.001911204704859239, - 0.004075786944001233, - 0.00580504861106753, - 0.007234660082989077, - 0.00834750651804078, - 0.009089512994201153, - 0.009552461412202319, - 0.009754316480539543, - 0.009840612280761898, - 0.009924729899369794, - 0.009822307221315238, - 0.009446445121268514, - 0.008758835921916678, - 0.007735284952528809, - 0.006384963904828848, - 0.0047295878092717585, - 0.002548080602999668, - -0.0001389647292191835, - -0.003237225893457821, - -0.006656080571746948, - -0.010227459067595422, - -0.013900668495806505, - -0.017752933137312854, - -0.021712769365999342, - -0.025635938018742824, - -0.02953557831244761, - -0.03333092978299964, - -0.037179275058121526, - -0.04123897373622836, - -0.04548359477702767, - -0.049832389773373904, - -0.05431862903450409, - -0.05887669969226335, - -0.06357663128703052, - -0.06843342271228828, - -0.073214696843236, - -0.07781057946817063, - -0.08213700430340529, - -0.08615955531670802, - -0.08994691869408483, - -0.09354870873919652, - -0.0968091213792886, - -0.09977938018026784, - -0.10246924901637786, - -0.10495814890832929, - -0.107420933128259, - -0.10982542017058594, - -0.11205480590641705, - -0.11408896390466361, - -0.1158780947803593, - -0.11741339454678788, - -0.11878293155799172, - -0.11980814552300147, - -0.12041840368596278, - -0.12056906969603819, - -0.12023637312981893, - -0.11953882323669927, - -0.11858765905234085, - -0.117316112181951, - -0.11575846908062805, - -0.1139253974119432, - -0.11184139095035373, - -0.10971993901566589, - -0.10754176944633664, - -0.10522944818920611, - -0.10271754653323208, - -0.09992200904656158, - -0.09682275782777974, - -0.0935534224272066, - -0.09001724486745627, - -0.08616967932235439, - -0.08200383160283217, - -0.07748348281829416, - -0.07279343672893598, - -0.06810623765537929, - -0.06344690461966707, - -0.05882157757428924, - -0.05427617912703834, - -0.04976929317534604, - -0.04549401718515254, - -0.04145678572793198, - -0.03751612387632308, - -0.03358498097197174, - -0.029600075383463386, - -0.025540361661146087, - -0.02155232988190741, - -0.01766160771349666, - -0.013763433750404161, - -0.00995445185279881, - -0.00627427472652648, - -0.0028847865486843834, - 3.6139582909404516e-5, - 0.0024746016112401465, - 0.004568195388238494, - 0.006270216628589413, - 0.0076215421189892146, - 0.008595573004641224, - 0.009156639906763405, - 0.009510414573627356, - 0.009789552775437504, - 0.009966135001853981, - 0.009979462432731546, - 0.0097762722502994, - 0.009230181284693956, - 0.008474226141237029, - 0.007461361449923086, - 0.006051703411873441, - 0.004170121304132516, - 0.001777951554336057, - -0.0011008709357744355, - -0.004257688219703984, - -0.007616705081751277, - -0.011240570790894988, - -0.01502847529412171, - -0.01896257725747264, - -0.02290721006231497, - -0.026731062974850388, - -0.0304874329791801, - -0.03436295075075233, - -0.03833997701966533, - -0.04248169945046918, - -0.04674011269606311, - -0.05104641769675078, - -0.055533811597088735, - -0.060242634289665184, - -0.0650706042493673, - -0.069903793645392, - -0.07460665209441224, - -0.07901991404110281, - -0.08326460989513178, - -0.08729986185005664, - -0.09107115586424831, - -0.09454392486367573, - -0.09765177763559119, - -0.10044406467003399, - -0.10312159229706008, - -0.10571076261152176, - -0.10818082068646043, - -0.11053419569142695, - -0.1126339484022309, - -0.1145584866255402, - -0.11634824187550134, - -0.11792392026285746, - -0.11919866376077684, - -0.12008573215428493, - -0.12045265941029037, - -0.12042023200464654, - -0.12004518896809563, - -0.11932347708499262, - -0.11830269537236847, - -0.11689597060868825, - -0.11515496315981488, - -0.11324777820419611, - -0.11125309217830465, - -0.1091661181873598, - -0.10699664837665489, - -0.10455785101608842, - -0.10188496842047544, - -0.09902843430849625, - -0.09594732124478084, - -0.09263888213369188, - -0.08901404743066711, - -0.0849684053340414, - -0.08060506139842409, - -0.07608150323471838, - -0.07144028247103161, - -0.06681733936191163, - -0.06214140293006011, - -0.05744056607708669, - -0.05287884050668054, - -0.048545884676742194, - -0.044401544232480966, - -0.04042504726579407, - -0.0364367796486725, - -0.03237993296948527, - -0.028386037198256695, - -0.024420117954029107, - -0.02048521294316586, - -0.016556161515046363, - -0.012607232293597467, - -0.008731757968818091, - -0.005202919985740651, - -0.0020385804512722495, - 0.0007190750492684896, - 0.003089485218300432, - 0.005136488341658708, - 0.006758949000878437, - 0.007887887862682817, - 0.00865633268276393, - 0.009208984353938719, - 0.009598612377723324, - 0.00993387112002435, - 0.010054460716604121, - 0.009917503220091717, - 0.009588663925234012, - 0.009075085728246012, - 0.008294809997463914, - 0.007200149662444554, - 0.005594113363531058, - 0.0034405881305380947, - 0.0009049876566736835, - -0.001984275168674756, - -0.005162737831681018, - -0.008619733007150632, - -0.012362298246892512, - -0.016282794739576688, - -0.020130399591896244, - -0.02394020991602086, - -0.027716678869198725, - -0.03154028738431199, - -0.03551540832545848, - -0.039574133836585736, - -0.04365428999100177, - -0.047864537056453584, - -0.0522782546441756, - -0.056889019344970225, - -0.06173117041623196, - -0.06656007874916292, - -0.07126472631002208, - -0.07583804050301361, - -0.08025644607533389, - -0.08448640353867412, - -0.08850179707260199, - -0.092122116440839, - -0.09536593233821734, - -0.09837491955659924, - -0.10118382507364902, - -0.10390706668414489, - -0.10650321123103947, - -0.10887952925742954, - -0.11107805351100737, - -0.1131748400541516, - -0.11511081390296198, - -0.11692436148632457, - -0.11843364668973466, - -0.11950297162770747, - -0.12016834717713264, - -0.12042806927077673, - -0.12033944708505212, - -0.11993563593223935, - -0.11911363418812684, - -0.11785971319048912, - -0.1163271456259784, - -0.11454770375475029, - -0.11269573486961725, - -0.11075916907950895, - -0.10862304720247627, - -0.1062915638381674, - -0.10377861925095419, - -0.10106824215306863, - -0.09822651604724107, - -0.09514459443744763, - -0.09165813977103106, - -0.08782560285205404, - -0.08364663765584576, - -0.07926156006076211, - -0.07478366935226148, - -0.07017920798933104, - -0.06542864539177326, - -0.06070288037262206, - -0.05605402336830976, - -0.05162463218673837, - -0.04745125064573106, - -0.04334524166312556, - -0.03926776285793492, - -0.03522913864705365, - -0.03122336822354946, - -0.027274706733716892, - -0.02338377367109436, - -0.019360276286984664, - -0.015312123414438694, - -0.011368205533840834, - -0.00764768256672877, - -0.004283563996631154, - -0.0012736517210371777, - 0.0014635303823576642, - 0.003807880394807918, - 0.005651954437205684, - 0.007059455643978291, - 0.008026188281724871, - 0.008757427848405967, - 0.00936638409616403, - 0.00979262322034862, - 0.00997896915352589, - 0.010000539165343566, - 0.009808748785903564, - 0.009488709156571597, - 0.00900466569489985, - 0.008121358960010863, - 0.006768103892888963, - 0.004952977339788685, - 0.0027056911538283117, - 0.0001091509117213482, - -0.002793402688179274, - -0.0061441169111475695, - -0.009784864642063767, - -0.01357692279456177, - -0.017404330467758106, - -0.021170463562466164, - -0.02492484643388411, - -0.02880287268678671, - -0.03273370510613284, - -0.03666820774333663, - -0.040681715909597176, - -0.04475216110646159, - -0.049051918504664, - -0.053640089008064815, - -0.05838557444069477, - -0.06315317237058116, - -0.06791158338298042, - -0.07254720536900591, - -0.07712996841939292, - -0.0815975201765823, - -0.0857474274863094, - -0.08954801626802306, - -0.09299888794277163, - -0.09616007478381598, - -0.09917165594767248, - -0.10205294835150748, - -0.10468666296676654, - -0.10716575572383588, - -0.10946112974230095, - -0.11164815054967091, - -0.11379953888338852, - -0.11578088002360092, - -0.11745153447306707, - -0.11877298853098568, - -0.11967812160395866, - -0.12023031844280513, - -0.1204986869603907, - -0.12032903099083431, - -0.11973869995769784, - -0.1187191453431458, - -0.11733742373962547, - -0.11577048053303793, - -0.11408789099541755, - -0.11221287510304763, - -0.11018655655590079, - -0.10794811047825123, - -0.10552273993721129, - -0.10303833025709415, - -0.1003810634657801, - -0.097458544945939, - -0.0941937426801486, - -0.09053082843165744, - -0.08654779955983705, - -0.08241058713376931, - -0.07803903648683819, - -0.07348213022089498, - -0.06877142083922445, - -0.06396473781867325, - -0.05928186472962635, - -0.05482080251588788, - -0.05050791507815128, - -0.04630339485092869, - -0.04217437760731341, - -0.038049168944470184, - -0.034079779316220644, - -0.030184129885420217, - -0.026235888094440492, - -0.022201756347357902, - -0.018111939592285794, - -0.014054816847078372, - -0.010254542697696089, - -0.006717139346610517, - -0.0033877178327878436, - -0.00038743037919688176, - 0.002247599050168502, - 0.004399293514311419, - 0.0060180009066009696, - 0.007237662558812412, - 0.008240984462311576, - 0.008983895019423002, - 0.009539739704680262, - 0.009859471532560159, - 0.009934162849708468, - 0.00991406254306527, - 0.009817672167945412, - 0.009497482230821563, - 0.008847464739761671, - 0.007777133875820488, - 0.006211691995709241, - 0.004326124388570751, - 0.002064725791556759, - -0.0006429464508137991, - -0.0037780759429392454, - -0.007260316986270538, - -0.010969670798187416, - -0.014675930199752036, - -0.018397997561029153, - -0.022212777628792462, - -0.026057315556593016, - -0.029963406711904617, - -0.0338629028171411, - -0.03772841400085742, - -0.041706428191318735, - -0.04595848433142596, - -0.05040837888245725, - -0.05506696168669896, - -0.05978433886552502, - -0.06447398272636372, - -0.06921146688988312, - -0.07395079514409776, - -0.07853630173056755, - -0.08287202432500837, - -0.08685287967585768, - -0.09045617622407896, - -0.09387291947535914, - -0.0970693904204421, - -0.1000565136992465, - -0.10283089678925582, - -0.10536168961991069, - -0.10773275040763822, - -0.11009265871198906, - -0.11236299842141513, - -0.11448056333645994, - -0.1163514125791902, - -0.11782704842423336, - -0.11900630500769234, - -0.11989241815338708, - -0.12042036870700357, - -0.12054372567601791, - -0.12020178751104288, - -0.1193715100539536, - -0.11825580342186136, - -0.11689586550121382, - -0.11534156962381645, - -0.11362388430430274, - -0.11164761229435785, - -0.10948037037434227, - -0.10723070750841361, - -0.10488422678707471, - -0.10239101257920617, - -0.09967251775159927, - -0.09653692877948064, - -0.0930889826262007, - -0.08937590362050914, - -0.08540926397364144, - -0.08121855065110527, - -0.07676180084355412, - -0.07204335975934044, - -0.0672727973881395, - -0.06258886320722129, - -0.058024260106628436, - -0.053652975538410926, - -0.04932701853369977, - -0.04505858031802393, - -0.04094085370431276, - -0.03697086736549912, - -0.03304814552264803, - -0.029128349621370207, - -0.02505491800353671, - -0.020906795462007275, - -0.016873973939295447, - -0.012971486927680735, - -0.009244363658718922, - -0.0057149593238817395, - -0.002414251845385822, - 0.0005156699924896167, - 0.0028854860444630444, - 0.004811020008157848, - 0.006323538751778172, - 0.007532302408464992, - 0.008514405899178122, - 0.009204334899296077, - 0.009581387913596544, - 0.009806799100663097, - 0.009944398361818683, - 0.009972126780570854, - 0.00987192736770374, - 0.009402580318895447, - 0.008530581003647616, - 0.007316741294790484, - 0.005756495066398492, - 0.003775197921108356, - 0.0013697481416230235, - -0.0015634023337797722, - -0.00488465734433276, - -0.008377395661221795, - -0.011998554757539703, - -0.01569528861037097, - -0.019470738953340384, - -0.02335320134390053, - -0.027251536435291213, - -0.031033883599953946, - -0.03485463456249343, - -0.03876725846978058, - -0.04289352690806382, - -0.04728196622964148, - -0.051807377456638305, - -0.05637745183236629, - -0.061069351794467416, - -0.06585116208036071, - -0.07065374611614333, - -0.07540624563446623, - -0.07985416983863035, - -0.08398171819893697, - -0.08783792616996143, - -0.09144720444238477, - -0.09483432373317313, - -0.09800661567746848, - -0.10084415412483931, - -0.10346579824121502, - -0.1059852828232393, - -0.108424053671122, - -0.11083953590062824, - -0.11308988731819242, - -0.11504776500511393, - -0.11674371189386629, - -0.11818965449689249, - -0.11932988312093419, - -0.12018119842616803, - -0.1205537434371531, - -0.12043355287176204, - -0.11990456091771788, - -0.11901582470233593, - -0.1178810004098773, - -0.11653790081354218, - -0.11489591577352454, - -0.11300711013471136, - -0.11097911435579735, - -0.10881810820343904, - -0.1066452809551401, - -0.10431469833309848, - -0.10168714420319015, - -0.0987570372095139, - -0.09553275343932663, - -0.09202842932955739, - -0.08832124053878959, - -0.08429570220167017, - -0.07991523928875618, - -0.07532205621702213, - -0.07058203145904414, - -0.06589188724209882, - -0.06133233059242786, - -0.0568288608897292, - -0.05236171532449746, - -0.04804730933309153, - -0.04385362505995708, - -0.03986095311832092, - -0.03596999333235117, - -0.03197656662916431, - -0.02789100532077461, - -0.02379011958178177, - -0.019719312548448848, - -0.01576087172385308, - -0.011931525001127912, - -0.008144709266361468, - -0.004618876098901083, - -0.0014713024548382227, - 0.0012135573242220666, - 0.003404482593224901, - 0.0051981729963116565, - 0.0067276931461846155, - 0.00789712861372361, - 0.008705627441197626, - 0.009255387019023162, - 0.009577907978416931, - 0.009852208043247379, - 0.010073451512010362, - 0.010073192566874882, - 0.009755633902045533, - 0.009159140746972983, - 0.008204477937230831, - 0.006960769867755033, - 0.005328485574236298, - 0.003147275891705634, - 0.00047014947113345506, - -0.0025813688027842637, - -0.00591246753580128, - -0.009388792251005145, - -0.012988170262751994, - -0.0168075567373929, - -0.020667160179693896, - -0.0245043102749791, - -0.028281560525609713, - -0.03202039535249098, - -0.03586490571993358, - -0.03996539976360275, - -0.04420735219408397, - -0.04856338280310379, - -0.05306443821455971, - -0.057663606776236255, - -0.062455864168249456, - -0.06735195205053833, - -0.0721406524090841, - -0.07670443478744363, - -0.08102784585363303, - -0.08505207023726141, - -0.08890404582935123, - -0.09251698610192106, - -0.0957891168757867, - -0.09877451557714308, - -0.10151871538989428, - -0.10412468216132136, - -0.1067242710918697, - -0.10923719155913254, - -0.11153332465012455, - -0.11365585887081779, - -0.11551583870907181, - -0.11718300112395875, - -0.11863645110229071, - -0.11971627840788522, - -0.12034104353902737, - -0.12051495892794015, - -0.12022671568990996, - -0.1196280454590859, - -0.11876950761500818, - -0.11755941488375078, - -0.1160743648253698, - -0.11430117785237508, - -0.11235217589735165, - -0.11037210293994754, - -0.10832200074298254, - -0.10607132734500047, - -0.10361256804485248, - -0.10083596512558163, - -0.09780638164484322, - -0.09459318404069415, - -0.09107443187422855, - -0.08722134825237288, - -0.08302073323255942, - -0.07850751312482016, - -0.07386497551170644, - -0.06926222461633637, - -0.06462831482504458, - -0.060044706019436955, - -0.05549652581252942, - -0.051043583379862985, - -0.046830252959141304, - -0.042821679197087105, - -0.03883974956108419, - -0.03483462961339149, - -0.030768361265267597, - -0.02664148985805036, - -0.022626013667822454, - -0.018639070491096393, - -0.014651699347382762, - -0.010736298362117296, - -0.007009665678437957, - -0.0036007879804476426, - -0.0007005555088988633, - 0.0017905838255978432, - 0.0039459723744691075, - 0.005712659930884548, - 0.007119754801429087, - 0.00812534846408982, - 0.008774554672865873, - 0.00926832709613598, - 0.009723254108538387, - 0.01001376041030307, - 0.010148431454834425, - 0.010004648944651699, - 0.009570122266157444, - 0.008923915243958764, - 0.007997448682831955, - 0.006612362855501948, - 0.004737739131555759, - 0.002354227424681067, - -0.00047828641475234425, - -0.0035307038469158847, - -0.006838092307512065, - -0.010399055941116214, - -0.014145610999619432, - -0.01798421559249063, - -0.021817065838934727, - -0.02550739031596941, - -0.029225060079223597, - -0.033083198685414254, - -0.03706109411615984, - -0.04119838950655734, - -0.045432762888086085, - -0.04976120136849687, - -0.054312264362043255, - -0.0591062337163449, - -0.06396117177490179, - -0.06881764312132906, - -0.07347778837911935, - -0.07790524373468685, - -0.08217684310764843, - -0.08624794141059475, - -0.09002187031485867, - -0.09348735884891199, - -0.09659574869433776, - -0.09945001671955372, - -0.1022518237561332, - -0.1049378079090263, - -0.10751634947088544, - -0.10992783277079521, - -0.1121188463567528, - -0.11415261416814133, - -0.11607410217244331, - -0.11772824931870536, - -0.11906242673843283, - -0.11995779519236018, - -0.12035214786920415, - -0.1203949002675571, - -0.12009666574578708, - -0.11945870929753138, - -0.11848087760103702, - -0.11712562318025087, - -0.11546107980997809, - -0.11370352243394416, - -0.11183332303051895, - -0.10987939151675079, - -0.1077701496029094, - -0.10538293899379488, - -0.10277669654330925, - -0.09999463214923228, - -0.09697557491382858, - -0.0936863561701228, - -0.09004481963284026, - -0.0859593829058373, - -0.0816334787332555, - -0.0771428559154555, - -0.07257320913584124, - -0.06797052483200998, - -0.06330796319168708, - -0.05863013100191305, - -0.05414707711006224, - -0.049875986439735766, - -0.04576327207959925, - -0.041765585545726146, - -0.037696481405342236, - -0.03360008967751574, - -0.0295570397965379, - -0.02554858086238199, - -0.02151610458327314, - -0.017489728319094594, - -0.013417592647674387, - -0.009513189825014982, - -0.0059675862064839285, - -0.0027885764053810942, - 1.2739131466392624e-5 + 0.0, + -9.999997435720769e-5, + -0.00040147075767668107, + -0.0008815386364951581, + -0.001468815393642393, + -0.002390296714894352, + -0.00376718725964213, + -0.005600730175621135, + -0.007909936627411436, + -0.010570028933257312, + -0.013528356756340447, + -0.01687096918570487, + -0.020573962855279404, + -0.02443688801707456, + -0.028396396410209038, + -0.03227454004816315, + -0.03609866522954853, + -0.04000267227538102, + -0.04398286162523184, + -0.04797063325792887, + -0.05201550059889962, + -0.05610037708067533, + -0.06031961949560349, + -0.06484324648311285, + -0.06953697715060769, + -0.07430485385435429, + -0.07904555554438936, + -0.08367317882569622, + -0.08818807437602896, + -0.09263423690091602, + -0.09680064335245198, + -0.1006237703846807, + -0.10408703217410656, + -0.10719472915260253, + -0.11012470506701982, + -0.11291841624411675, + -0.11550662486574151, + -0.11789961342164848, + -0.1201225502735139, + -0.12216299165803618, + -0.12417822903728126, + -0.12605853615685308, + -0.1276763678527889, + -0.1289606669152439, + -0.12982069278444022, + -0.13029133252223835, + -0.13047067399050757, + -0.13026883294521036, + -0.12963708360844034, + -0.12859984937020183, + -0.12713081158690273, + -0.1254460489979447, + -0.12362667614613068, + -0.12165865180558558, + -0.11954006771522979, + -0.11723988006346786, + -0.114714471035255, + -0.11211094125106755, + -0.10938573697704215, + -0.10642447223918355, + -0.10318291798518667, + -0.09952543007674958, + -0.09552779756918925, + -0.09132817003271551, + -0.08695149142353936, + -0.08237663263255063, + -0.07768027062592678, + -0.07284120532591509, + -0.06807702509827263, + -0.06353797944910766, + -0.059182910743526586, + -0.05498294319174507, + -0.05087354960748235, + -0.04678211688800534, + -0.042795140120659145, + -0.03895573573769592, + -0.03508643854099271, + -0.03118105914148227, + -0.027190652672160098, + -0.0232031382074826, + -0.019417101256332628, + -0.015934467906675832, + -0.012678405820848986, + -0.009730551039346806, + -0.007140243069501033, + -0.0049738995331786795, + -0.003377240527640043, + -0.0022181922199742037, + -0.0013449634144534692, + -0.000698796212251402, + -0.0002665432754898802, + -2.1410049707628123e-5, + -6.407026295220455e-5, + -0.00024000943992102605, + -0.0004857686593533403, + -0.0009099930036350831, + -0.0016101115341336306, + -0.0027132104803090206, + -0.004308958963479587, + -0.006290400864263208, + -0.008587643980500149, + -0.011328584556326104, + -0.014463722989554433, + -0.017992457053347025, + -0.02178345083359158, + -0.025626047417056153, + -0.029435181312312163, + -0.03331246555647693, + -0.037216222824902084, + -0.041170883513131015, + -0.04516034339786789, + -0.04907371421483408, + -0.05305170674736156, + -0.05723209056509438, + -0.06164248604876266, + -0.06624681366099511, + -0.0709765879602729, + -0.07564133645817417, + -0.08032583878807759, + -0.0850126352950083, + -0.08958034655100255, + -0.09393912738349022, + -0.09795065674454878, + -0.10156110070082874, + -0.10490864854263024, + -0.10805958185601425, + -0.11097444931246991, + -0.11371577399876417, + -0.11618448738203399, + -0.11845651316070477, + -0.12066434241290794, + -0.12280993101312909, + -0.1248255876962717, + -0.1266431950940667, + -0.12808079233261088, + -0.12917056662310733, + -0.1299787385862492, + -0.13042673424080764, + -0.13052394674392356, + -0.13016050113036157, + -0.12930649748197354, + -0.12808873896093514, + -0.12662899252853152, + -0.1249488061343686, + -0.12314369635667452, + -0.12110190641946705, + -0.1188362677602173, + -0.11647100796200943, + -0.1139987102222581, + -0.11142919281172375, + -0.10867513341917195, + -0.10556487943003809, + -0.10208404164530263, + -0.0983490720848719, + -0.09433405416277721, + -0.09013484274096736, + -0.08569369018667902, + -0.08098434384433276, + -0.07616657154313591, + -0.07140642940565592, + -0.06677125371493148, + -0.06234572400207638, + -0.0580424027059013, + -0.0537619290427919, + -0.04963959457923443, + -0.04565125927228184, + -0.04177466843839782, + -0.03793136513794028, + -0.03399521088262308, + -0.029926641453510906, + -0.02594426779400348, + -0.022094987259236684, + -0.018424021097410762, + -0.014986111030972454, + -0.01174254762525999, + -0.008837745497172676, + -0.006442449448326847, + -0.004558566032355893, + -0.003090344464992509, + -0.0019988224061162074, + -0.0011104921816803316, + -0.0004987738450383267, + -0.00020307381720307237, + -0.00011156808007160152, + -0.00013278516713825794, + -0.0002553390480099678, + -0.00047389347777770756, + -0.0009754735321498634, + -0.001914025969159381, + -0.003189586881396575, + -0.004835325173224346, + -0.006851308373566163, + -0.009281270067272864, + -0.01219692568382196, + -0.015576892514007117, + -0.01916120203290788, + -0.02288305497822353, + -0.026673781602734755, + -0.030500822268291, + -0.03444688712530604, + -0.038425968005892, + -0.04232217687369646, + -0.04617795849842163, + -0.05011030466675731, + -0.05417299108203722, + -0.0585270877632607, + -0.06303935070945835, + -0.0676058917757612, + -0.07225177991922979, + -0.07697345383665125, + -0.08172208929495395, + -0.08645414322092992, + -0.09095080476101622, + -0.09508538376434023, + -0.09894147623286176, + -0.10249762000158646, + -0.10584237340113481, + -0.10897317361207429, + -0.11180342023945597, + -0.11435093466997587, + -0.1167676309167078, + -0.11906510131316508, + -0.12134468459051395, + -0.12352239232872267, + -0.12541581315859093, + -0.12704427227482146, + -0.1283890202240653, + -0.1294457720969022, + -0.13021776370372756, + -0.13059087236418013, + -0.13044074632171818, + -0.12987556767666839, + -0.1288995663483621, + -0.12765261653926585, + -0.12621575331434026, + -0.12450687078615458, + -0.12254289074303315, + -0.12040259935763051, + -0.11811867161629833, + -0.1157962466527531, + -0.11340956580806191, + -0.11074378347286279, + -0.10780474971715018, + -0.10454255869335854, + -0.10099594377670532, + -0.09724280773573402, + -0.09323488268745062, + -0.08887488305050179, + -0.0842764490101986, + -0.07950605766526339, + -0.07472060819146595, + -0.07010531114691695, + -0.06557001520121182, + -0.061105645412673465, + -0.05675357247408216, + -0.052542834347692795, + -0.04850410524949715, + -0.04466018449846295, + -0.040760938200303215, + -0.036770690829086086, + -0.03274745902429836, + -0.02872618136536787, + -0.02482676316151666, + -0.021076039645143055, + -0.01740352025163469, + -0.013909227467558183, + -0.010792576424973718, + -0.008088795295140764, + -0.005924213055998769, + -0.004194951388932472, + -0.002765339917010925, + -0.0016524934819592222, + -0.000910487005798849, + -0.00044753858779768285, + -0.00024568351946045903, + -0.00015938771923810352, + -7.527010063020784e-5, + -0.00017769277868476437, + -0.0005535548787314881, + -0.001241164078083324, + -0.0022647150474711933, + -0.0036150360951711542, + -0.0052704121907282435, + -0.007451919397000334, + -0.010138964729219185, + -0.013237225893457823, + -0.016656080571746952, + -0.020227459067595426, + -0.023900668495806507, + -0.027752933137312856, + -0.031712769365999344, + -0.035635938018742826, + -0.03953557831244761, + -0.04333092978299964, + -0.04717927505812153, + -0.05123897373622836, + -0.05548359477702767, + -0.059832389773373906, + -0.06431862903450408, + -0.06887669969226334, + -0.07357663128703051, + -0.07843342271228829, + -0.08321469684323601, + -0.08781057946817064, + -0.0921370043034053, + -0.09615955531670803, + -0.09994691869408484, + -0.10354870873919653, + -0.10680912137928861, + -0.10977938018026784, + -0.11246924901637786, + -0.11495814890832928, + -0.11742093312825899, + -0.11982542017058595, + -0.12205480590641704, + -0.12408896390466362, + -0.1258780947803593, + -0.12741339454678788, + -0.12878293155799173, + -0.12980814552300146, + -0.13041840368596277, + -0.13056906969603818, + -0.13023637312981892, + -0.12953882323669927, + -0.12858765905234085, + -0.127316112181951, + -0.12575846908062804, + -0.1239253974119432, + -0.12184139095035373, + -0.11971993901566588, + -0.11754176944633665, + -0.11522944818920611, + -0.11271754653323207, + -0.10992200904656158, + -0.10682275782777975, + -0.10355342242720661, + -0.10001724486745628, + -0.0961696793223544, + -0.09200383160283218, + -0.08748348281829416, + -0.08279343672893599, + -0.0781062376553793, + -0.07344690461966707, + -0.06882157757428925, + -0.06427617912703834, + -0.059769293175346044, + -0.05549401718515254, + -0.05145678572793198, + -0.047516123876323084, + -0.04358498097197174, + -0.039600075383463385, + -0.03554036166114609, + -0.03155232988190741, + -0.027661607713496662, + -0.023763433750404163, + -0.019954451852798812, + -0.016274274726526483, + -0.012884786548684385, + -0.009963860417090598, + -0.007525398388759855, + -0.005431804611761508, + -0.0037297833714105893, + -0.0023784578810107874, + -0.0014044269953587783, + -0.0008433600932365969, + -0.0004895854263726462, + -0.00021044722456249783, + -3.386499814602047e-5, + -2.053756726845546e-5, + -0.0002237277497006019, + -0.0007698187153060455, + -0.0015257738587629733, + -0.0025386385500769156, + -0.003948296588126561, + -0.005829878695867486, + -0.008222048445663946, + -0.011100870935774438, + -0.014257688219703985, + -0.01761670508175128, + -0.02124057079089499, + -0.025028475294121715, + -0.028962577257472644, + -0.03290721006231497, + -0.03673106297485039, + -0.0404874329791801, + -0.044362950750752334, + -0.04833997701966533, + -0.05248169945046918, + -0.05674011269606311, + -0.06104641769675078, + -0.06553381159708874, + -0.07024263428966518, + -0.07507060424936729, + -0.07990379364539199, + -0.08460665209441223, + -0.08901991404110282, + -0.09326460989513177, + -0.09729986185005665, + -0.10107115586424831, + -0.10454392486367572, + -0.1076517776355912, + -0.11044406467003398, + -0.11312159229706009, + -0.11571076261152177, + -0.11818082068646044, + -0.12053419569142695, + -0.12263394840223091, + -0.1245584866255402, + -0.12634824187550134, + -0.12792392026285745, + -0.12919866376077685, + -0.13008573215428493, + -0.13045265941029038, + -0.13042023200464653, + -0.13004518896809564, + -0.12932347708499262, + -0.12830269537236846, + -0.12689597060868826, + -0.1251549631598149, + -0.1232477782041961, + -0.12125309217830466, + -0.11916611818735981, + -0.11699664837665488, + -0.11455785101608842, + -0.11188496842047543, + -0.10902843430849626, + -0.10594732124478085, + -0.10263888213369188, + -0.09901404743066711, + -0.09496840533404141, + -0.09060506139842409, + -0.08608150323471839, + -0.0814402824710316, + -0.07681733936191162, + -0.0721414029300601, + -0.06744056607708669, + -0.06287884050668055, + -0.058545884676742196, + -0.05440154423248097, + -0.050425047265794075, + -0.0464367796486725, + -0.04237993296948527, + -0.0383860371982567, + -0.034420117954029106, + -0.030485212943165862, + -0.026556161515046365, + -0.02260723229359747, + -0.018731757968818093, + -0.015202919985740653, + -0.012038580451272252, + -0.009280924950731512, + -0.00691051478169957, + -0.004863511658341294, + -0.0032410509991215647, + -0.0021121121373171847, + -0.0013436673172360723, + -0.0007910156460612834, + -0.0004013876222766777, + -6.612887997565174e-5, + 5.4460716604119025e-5, + -8.249677990828513e-5, + -0.00041133607476599027, + -0.0009249142717539897, + -0.0017051900025360882, + -0.0027998503375554476, + -0.004405886636468944, + -0.006559411869461907, + -0.009095012343326318, + -0.011984275168674757, + -0.01516273783168102, + -0.018619733007150634, + -0.022362298246892516, + -0.02628279473957669, + -0.030130399591896246, + -0.03394020991602086, + -0.03771667886919873, + -0.041540287384311994, + -0.04551540832545848, + -0.04957413383658574, + -0.053654289991001775, + -0.057864537056453585, + -0.0622782546441756, + -0.06688901934497023, + -0.07173117041623196, + -0.07656007874916293, + -0.08126472631002207, + -0.08583804050301361, + -0.0902564460753339, + -0.09448640353867413, + -0.09850179707260198, + -0.10212211644083899, + -0.10536593233821734, + -0.10837491955659925, + -0.11118382507364902, + -0.11390706668414488, + -0.11650321123103946, + -0.11887952925742953, + -0.12107805351100737, + -0.12317484005415161, + -0.12511081390296197, + -0.12692436148632458, + -0.12843364668973467, + -0.12950297162770746, + -0.13016834717713263, + -0.13042806927077674, + -0.13033944708505213, + -0.12993563593223936, + -0.12911363418812685, + -0.1278597131904891, + -0.1263271456259784, + -0.1245477037547503, + -0.12269573486961724, + -0.12075916907950895, + -0.11862304720247627, + -0.11629156383816741, + -0.1137786192509542, + -0.11106824215306862, + -0.10822651604724107, + -0.10514459443744764, + -0.10165813977103105, + -0.09782560285205405, + -0.09364663765584577, + -0.08926156006076211, + -0.08478366935226148, + -0.08017920798933104, + -0.07542864539177327, + -0.07070288037262207, + -0.06605402336830976, + -0.06162463218673837, + -0.05745125064573106, + -0.05334524166312556, + -0.049267762857934924, + -0.04522913864705365, + -0.04122336822354947, + -0.0372747067337169, + -0.033383773671094366, + -0.029360276286984666, + -0.025312123414438698, + -0.021368205533840834, + -0.017647682566728773, + -0.014283563996631155, + -0.01127365172103718, + -0.008536469617642338, + -0.006192119605192083, + -0.004348045562794318, + -0.002940544356021711, + -0.001973811718275131, + -0.001242572151594035, + -0.0006336159038359719, + -0.00020737677965138208, + -2.1030846474111298e-5, + 5.391653435642824e-7, + -0.00019125121409643842, + -0.0005112908434284046, + -0.0009953343051001522, + -0.001878641039989139, + -0.0032318961071110385, + -0.005047022660211317, + -0.00729430884617169, + -0.009890849088278654, + -0.012793402688179276, + -0.01614411691114757, + -0.01978486464206377, + -0.02357692279456177, + -0.027404330467758108, + -0.031170463562466166, + -0.03492484643388411, + -0.03880287268678671, + -0.04273370510613284, + -0.04666820774333663, + -0.05068171590959718, + -0.05475216110646159, + -0.059051918504664, + -0.06364008900806481, + -0.06838557444069476, + -0.07315317237058117, + -0.07791158338298043, + -0.08254720536900592, + -0.08712996841939291, + -0.09159752017658229, + -0.0957474274863094, + -0.09954801626802307, + -0.10299888794277162, + -0.10616007478381598, + -0.10917165594767247, + -0.11205294835150748, + -0.11468666296676655, + -0.11716575572383589, + -0.11946112974230094, + -0.1216481505496709, + -0.12379953888338852, + -0.1257808800236009, + -0.12745153447306706, + -0.12877298853098568, + -0.12967812160395867, + -0.13023031844280514, + -0.13049868696039071, + -0.13032903099083432, + -0.12973869995769785, + -0.1287191453431458, + -0.12733742373962548, + -0.12577048053303794, + -0.12408789099541756, + -0.12221287510304762, + -0.1201865565559008, + -0.11794811047825124, + -0.1155227399372113, + -0.11303833025709414, + -0.11038106346578011, + -0.10745854494593901, + -0.10419374268014861, + -0.10053082843165745, + -0.09654779955983706, + -0.09241058713376932, + -0.0880390364868382, + -0.08348213022089498, + -0.07877142083922445, + -0.07396473781867324, + -0.06928186472962636, + -0.06482080251588788, + -0.06050791507815128, + -0.056303394850928695, + -0.05217437760731341, + -0.048049168944470186, + -0.044079779316220646, + -0.04018412988542022, + -0.03623588809444049, + -0.032201756347357904, + -0.028111939592285796, + -0.024054816847078372, + -0.02025454269769609, + -0.016717139346610517, + -0.013387717832787846, + -0.010387430379196884, + -0.0077524009498314995, + -0.005600706485688583, + -0.003981999093399032, + -0.00276233744118759, + -0.001759015537688426, + -0.0010161049805770001, + -0.0004602602953197397, + -0.00014052846743984292, + -6.583715029153357e-5, + -8.593745693473258e-5, + -0.00018232783205458965, + -0.0005025177691784389, + -0.0011525352602383306, + -0.0022228661241795143, + -0.003788308004290761, + -0.005673875611429251, + -0.007935274208443243, + -0.010642946450813802, + -0.013778075942939248, + -0.01726031698627054, + -0.020969670798187418, + -0.02467593019975204, + -0.028397997561029155, + -0.03221277762879246, + -0.036057315556593014, + -0.03996340671190462, + -0.0438629028171411, + -0.04772841400085742, + -0.05170642819131874, + -0.05595848433142596, + -0.06040837888245725, + -0.06506696168669895, + -0.06978433886552501, + -0.07447398272636371, + -0.07921146688988312, + -0.08395079514409776, + -0.08853630173056756, + -0.09287202432500838, + -0.09685287967585768, + -0.10045617622407896, + -0.10387291947535915, + -0.10706939042044211, + -0.11005651369924649, + -0.11283089678925581, + -0.1153616896199107, + -0.11773275040763823, + -0.12009265871198907, + -0.12236299842141513, + -0.12448056333645993, + -0.1263514125791902, + -0.12782704842423337, + -0.12900630500769233, + -0.1298924181533871, + -0.13042036870700358, + -0.1305437256760179, + -0.1302017875110429, + -0.12937151005395361, + -0.12825580342186135, + -0.12689586550121382, + -0.12534156962381646, + -0.12362388430430274, + -0.12164761229435786, + -0.11948037037434228, + -0.1172307075084136, + -0.11488422678707472, + -0.11239101257920617, + -0.10967251775159928, + -0.10653692877948065, + -0.1030889826262007, + -0.09937590362050913, + -0.09540926397364144, + -0.09121855065110526, + -0.08676180084355412, + -0.08204335975934043, + -0.0772727973881395, + -0.0725888632072213, + -0.06802426010662843, + -0.06365297553841093, + -0.059327018533699774, + -0.05505858031802393, + -0.05094085370431276, + -0.046970867365499124, + -0.04304814552264803, + -0.03912834962137021, + -0.03505491800353672, + -0.030906795462007277, + -0.02687397393929545, + -0.022971486927680737, + -0.019244363658718924, + -0.01571495932388174, + -0.012414251845385825, + -0.009484330007510386, + -0.007114513955536958, + -0.005188979991842154, + -0.00367646124822183, + -0.00246769759153501, + -0.0014855941008218802, + -0.0007956651007039253, + -0.0004186120864034578, + -0.00019320089933690457, + -5.560163818131916e-5, + -2.7873219429147902e-5, + -0.00012807263229626213, + -0.0005974196811045548, + -0.0014694189963523861, + -0.0026832587052095175, + -0.00424350493360151, + -0.0062248020788916465, + -0.008630251858376979, + -0.011563402333779775, + -0.014884657344332763, + -0.018377395661221797, + -0.021998554757539705, + -0.025695288610370973, + -0.029470738953340386, + -0.03335320134390053, + -0.037251536435291215, + -0.04103388359995395, + -0.04485463456249343, + -0.04876725846978058, + -0.05289352690806382, + -0.05728196622964148, + -0.06180737745663831, + -0.06637745183236629, + -0.07106935179446741, + -0.07585116208036072, + -0.08065374611614334, + -0.08540624563446622, + -0.08985416983863034, + -0.09398171819893697, + -0.09783792616996143, + -0.10144720444238478, + -0.10483432373317314, + -0.10800661567746847, + -0.1108441541248393, + -0.11346579824121503, + -0.1159852828232393, + -0.11842405367112199, + -0.12083953590062824, + -0.12308988731819243, + -0.12504776500511394, + -0.1267437118938663, + -0.12818965449689249, + -0.12932988312093419, + -0.13018119842616804, + -0.1305537434371531, + -0.13043355287176203, + -0.12990456091771788, + -0.12901582470233594, + -0.1278810004098773, + -0.1265379008135422, + -0.12489591577352455, + -0.12300711013471136, + -0.12097911435579736, + -0.11881810820343905, + -0.1166452809551401, + -0.11431469833309849, + -0.11168714420319015, + -0.10875703720951391, + -0.10553275343932664, + -0.10202842932955739, + -0.0983212405387896, + -0.09429570220167016, + -0.0899152392887562, + -0.08532205621702213, + -0.08058203145904413, + -0.07589188724209883, + -0.07133233059242786, + -0.0668288608897292, + -0.06236171532449746, + -0.05804730933309153, + -0.05385362505995708, + -0.04986095311832092, + -0.045969993332351175, + -0.04197656662916431, + -0.037891005320774614, + -0.03379011958178177, + -0.02971931254844885, + -0.025760871723853083, + -0.021931525001127914, + -0.01814470926636147, + -0.014618876098901085, + -0.011471302454838225, + -0.008786442675777936, + -0.006595517406775101, + -0.0048018270036883455, + -0.0032723068538153864, + -0.002102871386276392, + -0.0012943725588023761, + -0.0007446129809768401, + -0.00042209202158307105, + -0.00014779195675262286, + 7.345151201035988e-5, + 7.319256687488007e-5, + -0.0002443660979544685, + -0.0008408592530270188, + -0.0017955220627691709, + -0.003039230132244969, + -0.004671514425763704, + -0.0068527241082943675, + -0.009529850528866547, + -0.012581368802784265, + -0.01591246753580128, + -0.01938879225100515, + -0.022988170262751996, + -0.026807556737392903, + -0.030667160179693898, + -0.034504310274979105, + -0.038281560525609715, + -0.04202039535249098, + -0.04586490571993358, + -0.04996539976360275, + -0.05420735219408397, + -0.05856338280310379, + -0.0630644382145597, + -0.06766360677623626, + -0.07245586416824945, + -0.07735195205053833, + -0.08214065240908411, + -0.08670443478744363, + -0.09102784585363302, + -0.09505207023726142, + -0.09890404582935122, + -0.10251698610192106, + -0.10578911687578671, + -0.10877451557714307, + -0.11151871538989427, + -0.11412468216132135, + -0.1167242710918697, + -0.11923719155913254, + -0.12153332465012456, + -0.12365585887081779, + -0.12551583870907182, + -0.12718300112395875, + -0.12863645110229072, + -0.12971627840788522, + -0.13034104353902737, + -0.13051495892794016, + -0.13022671568990996, + -0.1296280454590859, + -0.1287695076150082, + -0.12755941488375078, + -0.1260743648253698, + -0.12430117785237507, + -0.12235217589735164, + -0.12037210293994755, + -0.11832200074298255, + -0.11607132734500047, + -0.11361256804485248, + -0.11083596512558164, + -0.10780638164484321, + -0.10459318404069415, + -0.10107443187422854, + -0.09722134825237289, + -0.09302073323255941, + -0.08850751312482016, + -0.08386497551170644, + -0.07926222461633636, + -0.07462831482504459, + -0.07004470601943696, + -0.06549652581252942, + -0.06104358337986299, + -0.056830252959141306, + -0.05282167919708711, + -0.048839749561084195, + -0.04483462961339149, + -0.0407683612652676, + -0.036641489858050366, + -0.03262601366782246, + -0.028639070491096395, + -0.024651699347382764, + -0.020736298362117298, + -0.01700966567843796, + -0.013600787980447645, + -0.010700555508898865, + -0.008209416174402158, + -0.0060540276255308945, + -0.0042873400691154535, + -0.002880245198570915, + -0.0018746515359101823, + -0.0012254453271341292, + -0.0007316729038640227, + -0.0002767458914616147, + 1.3760410303067377e-5, + 0.0001484314548344228, + 4.6489446516966015e-6, + -0.0004298777338425583, + -0.001076084756041238, + -0.002002551317168047, + -0.003387637144498054, + -0.005262260868444243, + -0.007645772575318935, + -0.010478286414752347, + -0.013530703846915886, + -0.016838092307512067, + -0.020399055941116215, + -0.024145610999619434, + -0.027984215592490633, + -0.03181706583893473, + -0.03550739031596942, + -0.0392250600792236, + -0.043083198685414256, + -0.04706109411615984, + -0.05119838950655734, + -0.05543276288808609, + -0.05976120136849687, + -0.06431226436204326, + -0.0691062337163449, + -0.0739611717749018, + -0.07881764312132905, + -0.08347778837911934, + -0.08790524373468686, + -0.09217684310764843, + -0.09624794141059476, + -0.10002187031485868, + -0.103487358848912, + -0.10659574869433777, + -0.10945001671955373, + -0.11225182375613321, + -0.1149378079090263, + -0.11751634947088543, + -0.11992783277079522, + -0.1221188463567528, + -0.12415261416814133, + -0.1260741021724433, + -0.12772824931870536, + -0.12906242673843282, + -0.12995779519236017, + -0.13035214786920415, + -0.1303949002675571, + -0.13009666574578707, + -0.1294587092975314, + -0.12848087760103702, + -0.12712562318025086, + -0.1254610798099781, + -0.12370352243394417, + -0.12183332303051894, + -0.11987939151675078, + -0.11777014960290941, + -0.11538293899379487, + -0.11277669654330924, + -0.10999463214923227, + -0.10697557491382859, + -0.10368635617012281, + -0.10004481963284026, + -0.0959593829058373, + -0.0916334787332555, + -0.08714285591545551, + -0.08257320913584124, + -0.07797052483200997, + -0.07330796319168709, + -0.06863013100191305, + -0.06414707711006223, + -0.05987598643973577, + -0.05576327207959925, + -0.05176558554572615, + -0.04769648140534224, + -0.04360008967751574, + -0.0395570397965379, + -0.035548580862381995, + -0.03151610458327314, + -0.027489728319094596, + -0.023417592647674387, + -0.019513189825014984, + -0.01596758620648393, + -0.012788576405381096, + -0.00998726086853361 ], "datatype": "Float64", "type": "series" }, - "mid_point_x_solid_1": { + "deflection_x_solid_1": { "n_values": 1001, "time": [ 0.0, @@ -3023,1007 +3023,1007 @@ ], "system_name": "solid", "values": [ - 0.4, - 0.39999999974225997, - 0.39999976623090666, - 0.39999799761121113, - 0.3999926610011586, - 0.3999826527419404, - 0.3999668270445292, - 0.39994285402080304, - 0.39990545607945444, - 0.3998393250365364, - 0.3997315517646374, - 0.39957216161039727, - 0.3993445334781353, - 0.39905198083702087, - 0.39870158460002714, - 0.3983090191034258, - 0.3978774866226446, - 0.3974057747157464, - 0.3968885014365186, - 0.3963259136498855, - 0.39570266370692675, - 0.3950038419228168, - 0.3942118132999215, - 0.39329362017001807, - 0.3922501902879486, - 0.39108680635262816, - 0.38982706727884664, - 0.3884829215800469, - 0.3870949094740106, - 0.38567808823937333, - 0.38429653439526895, - 0.3829952740542575, - 0.3818021511928941, - 0.3807107642196332, - 0.3796795357995005, - 0.37869360211371816, - 0.3777392041836874, - 0.3768159125173208, - 0.37589575551206705, - 0.37498792661762853, - 0.37405766366223625, - 0.3731484273138404, - 0.37231135507726354, - 0.3716180055432207, - 0.3711105684236986, - 0.3708139014401648, - 0.37072638274048375, - 0.37086131997166777, - 0.37123651971506416, - 0.37182375069872414, - 0.37259119076990765, - 0.37343830451316007, - 0.37433219423611397, - 0.3752334316422915, - 0.3761481320413753, - 0.37706960679886353, - 0.3780155280910067, - 0.3789655212828599, - 0.37994040637406007, - 0.3809808163727515, - 0.38211447992119824, - 0.38336916306287033, - 0.38470924804948115, - 0.3861027497190414, - 0.38749988011858016, - 0.3888807892425687, - 0.39020521265293373, - 0.39145281620626815, - 0.392575429522646, - 0.39356875982978684, - 0.39443989594767753, - 0.39520244142488037, - 0.39587975113659674, - 0.3964900103512137, - 0.397041642480629, - 0.3975377491584472, - 0.3979984530113996, - 0.3984235713694601, - 0.3988138177330575, - 0.39914960604224226, - 0.3994208506551483, - 0.39962551710162153, - 0.3997684874782983, - 0.39986036858528085, - 0.39991786060192563, - 0.3999515074364325, - 0.39997250394589284, - 0.3999870012094942, - 0.3999953145067718, - 0.3999988637161575, - 0.3999999801545136, - 0.40000018685912186, - 0.3999998483729921, - 0.39999956841588347, - 0.3999993255098781, - 0.3999966687660344, - 0.3999893522058359, - 0.39997753171875056, - 0.3999619997145939, - 0.3999351042334939, - 0.3998894999158813, - 0.3998133098669886, - 0.39969030326051413, - 0.39950769637217837, - 0.39926153394316993, - 0.398953121843555, - 0.39859637585572033, - 0.3981925139026697, - 0.397747639731867, - 0.39726288845475577, - 0.39673532944131706, - 0.39616450538383274, - 0.39552608291868907, - 0.3947973652991905, - 0.39395435921506783, - 0.3929984592628998, - 0.3919158771637259, - 0.3907311634529576, - 0.3894447958574257, - 0.3880757794270997, - 0.3866589974750519, - 0.3852536002114514, - 0.38391324164676854, - 0.382666518675324, - 0.381510337997011, - 0.3804196095112997, - 0.3793983814650433, - 0.3784183908090778, - 0.37749093257363264, - 0.376575587558793, - 0.3756507619917191, - 0.37469735497357026, - 0.37375508630836374, - 0.37285996064900095, - 0.3720830722924322, - 0.37146011603521134, - 0.3710023635967423, - 0.37074841336533126, - 0.3707163620950601, - 0.3709499589616591, - 0.37141856774971804, - 0.37208090175970115, - 0.3728534733584303, - 0.3737019949589949, - 0.37457689766194396, - 0.37548997714483556, - 0.37642023134182595, - 0.377346848793396, - 0.37827171249143693, - 0.37920535259401006, - 0.3801949633654984, - 0.3812774181674148, - 0.38247738397713, - 0.38376075857730874, - 0.38511613584612503, - 0.3865000144048281, - 0.38790524710891827, - 0.38928608145344784, - 0.3905973363569672, - 0.3918004228241543, - 0.3928759143593361, - 0.39382164220448385, - 0.3946565360169683, - 0.3954023734226452, - 0.39605990945341096, - 0.3966489494647963, - 0.39717682711693514, - 0.39766551362767005, - 0.39812202406665037, - 0.3985474028885972, - 0.3989228079791511, - 0.3992391290223143, - 0.3994872823035788, - 0.3996716950570985, - 0.3998004334481598, - 0.3998801923497575, - 0.39992910563659906, - 0.3999594985412323, - 0.3999786480659127, - 0.39999018984153173, - 0.399996359479426, - 0.3999996795506511, - 0.40000052943981684, - 0.39999939155908953, - 0.39999916670727786, - 0.3999999272988257, - 0.39999889355925033, - 0.3999939325707399, - 0.399986209075592, - 0.3999744179059349, - 0.39995591437187905, - 0.39992463688065366, - 0.3998702943988908, - 0.39978198417364286, - 0.39964054609038274, - 0.39943903169646694, - 0.3991770200863563, - 0.398856969566719, - 0.3984854676848683, - 0.3980671658047902, - 0.39761058940517274, - 0.3971199442627373, - 0.39659196284731696, - 0.3960017734901501, - 0.3953358940027475, - 0.39456404443288756, - 0.39368534279479334, - 0.3926945020099995, - 0.39159031374509057, - 0.39036466916235124, - 0.38903854731187626, - 0.38764229085886936, - 0.3862298858913535, - 0.38486539909281015, - 0.38356416191928494, - 0.38234602749165786, - 0.3811940767660344, - 0.38012231546876174, - 0.37911996695400824, - 0.3781825124645126, - 0.37725497223874305, - 0.3763225636568148, - 0.37535788076623766, - 0.37438747632696595, - 0.37346562839150804, - 0.3726210873036678, - 0.37188971280494526, - 0.37129088842778296, - 0.3708775687676329, - 0.37068492049684204, - 0.370770363610839, - 0.37109664079185517, - 0.37163881549685485, - 0.372315807663016, - 0.37309247545967905, - 0.3739449493936207, - 0.37484829114457613, - 0.3757735116224678, - 0.3766929600526376, - 0.3775955299044562, - 0.37849263942325384, - 0.3794509502436006, - 0.38048396415677205, - 0.38162169852961414, - 0.38284270473300014, - 0.3841421469819127, - 0.38550211805169304, - 0.3869136843209839, - 0.38832741082736727, - 0.3896979773644251, - 0.39097206841916854, - 0.39212004270730083, - 0.3931529446067065, - 0.3940669325096426, - 0.3948799331013525, - 0.3955957660448497, - 0.39622923613270516, - 0.39679000330528724, - 0.39731131572262746, - 0.3977992768693478, - 0.39825462664209793, - 0.3986669014388353, - 0.3990221226367607, - 0.39931738188194293, - 0.3995485809730382, - 0.39971576392184877, - 0.39982791234765463, - 0.39989799121276, - 0.3999397989760107, - 0.3999666569364724, - 0.3999823802260336, - 0.3999922778411565, - 0.3999984300216462, - 0.3999999679248971, - 0.3999994347173138, - 0.39999926167576316, - 0.399999932797384, - 0.39999960567546866, - 0.3999974129883621, - 0.39999211545030144, - 0.3999836324959998, - 0.39996958328951615, - 0.39994756312249397, - 0.39991187390752464, - 0.39984823337734243, - 0.3997438865095456, - 0.3995876148732429, - 0.39936882557522396, - 0.3990897016040159, - 0.3987540019151949, - 0.39836434557914047, - 0.3979382057245399, - 0.3974777031723045, - 0.39698721698128003, - 0.39644282801784725, - 0.3958263146137349, - 0.3951205247163643, - 0.3943240782455363, - 0.3934158035315237, - 0.3923910783531591, - 0.39124361833598187, - 0.38997082898102914, - 0.38861328293704434, - 0.3872181754838875, - 0.38583785873085175, - 0.3844942200641107, - 0.38321691189067586, - 0.3820004148100094, - 0.38088182415649496, - 0.37984526975485, - 0.3788829212591375, - 0.37794781824654716, - 0.3769965029428369, - 0.3760243711706132, - 0.3750528419687533, - 0.3741097367340113, - 0.3732101331262365, - 0.3723953204569335, - 0.37166919214830546, - 0.37111214949713095, - 0.37077120023857596, - 0.3706972296384622, - 0.3708750228917907, - 0.37127163363744253, - 0.3718310747376181, - 0.37253020459739145, - 0.3733374992569695, - 0.37422051417773095, - 0.375143668320603, - 0.376042496045376, - 0.3769283620429394, - 0.37781158989905983, - 0.378738689071268, - 0.37972813513565795, - 0.38080845163547183, - 0.3819576330251792, - 0.3831945281342103, - 0.38451703772519413, - 0.3859137145108462, - 0.387349668751263, - 0.3887552015657975, - 0.39008846776469464, - 0.3913135292966282, - 0.3924272217354911, - 0.3934239502415771, - 0.39431664830464325, - 0.3950921430216876, - 0.3957730675650719, - 0.39637995307653695, - 0.3969353526690971, - 0.3974533782439147, - 0.3979388000248745, - 0.3983817157378583, - 0.3987744061873139, - 0.39911473051766827, - 0.3993922668571949, - 0.39960687651088783, - 0.3997551152126983, - 0.3998520175663883, - 0.39991302164147086, - 0.3999491325802789, - 0.39997114597581646, - 0.39998614991647347, - 0.399994844586263, - 0.3999989271690888, - 0.3999997384271962, - 0.39999947910677225, - 0.3999994919668774, - 0.4000002097977651, - 0.39999931490449486, - 0.39999599924928925, - 0.3999897140054491, - 0.3999795320518198, - 0.39996402439687595, - 0.39993797731849756, - 0.3998958734807433, - 0.3998236216968388, - 0.39970340911320523, - 0.3995296785207943, - 0.3992940250398652, - 0.3989952729150091, - 0.39863920845489664, - 0.3982430071953142, - 0.39781465103916824, - 0.3973557114999231, - 0.3968455423869088, - 0.3962778891654846, - 0.39563466433640426, - 0.3949053542458691, - 0.39408096114072605, - 0.39314007134405243, - 0.39206651815529997, - 0.39086359522049957, - 0.3895668096961034, - 0.38819927689036404, - 0.3868223534455133, - 0.38545026853297304, - 0.38411871843630424, - 0.38284724724804925, - 0.3816723971453399, - 0.3805996051339936, - 0.3796066112533247, - 0.37864175598432337, - 0.377674993254742, - 0.37670728008647325, - 0.3757299290550733, - 0.3747801833898391, - 0.37384799982664924, - 0.3729553530467968, - 0.3721293137528044, - 0.3714505841958088, - 0.3709665263838327, - 0.370739369550144, - 0.37075496245944173, - 0.37099087305929146, - 0.37141978592153746, - 0.37201533983365814, - 0.3727708362100829, - 0.3736217603383086, - 0.37451640592955165, - 0.37540042508191934, - 0.37627838856939333, - 0.3771447427627905, - 0.3780558710182729, - 0.37901302520970803, - 0.3800288134046091, - 0.38111237679942744, - 0.3822811491607388, - 0.3835544169659486, - 0.3849243842657865, - 0.3863558918555437, - 0.3877820804654426, - 0.38916106272682616, - 0.3904480648450898, - 0.3916477300569331, - 0.39273339547949765, - 0.3936986995971981, - 0.3945436924420517, - 0.3952849729704237, - 0.39593832668991763, - 0.39653387500787884, - 0.39708847820214693, - 0.39759914368521576, - 0.39807032137414977, - 0.3984966891244314, - 0.398879326539903, - 0.3992053800361956, - 0.39946599672811167, - 0.39965777559038534, - 0.3997898179182987, - 0.3998722966142965, - 0.3999242163974356, - 0.39995650101172137, - 0.3999760921839897, - 0.3999893271259221, - 0.39999694406960784, - 0.3999997510629285, - 0.3999994322218917, - 0.39999965370725094, - 0.4000003731935026, - 0.3999999069648029, - 0.39999807227790224, - 0.39999446613430295, - 0.39998682877150077, - 0.3999738181385358, - 0.399956805501918, - 0.3999292993730693, - 0.3998788151244801, - 0.39979366120123055, - 0.39966004702859936, - 0.3994656679797543, - 0.3992089514816541, - 0.39888994759422414, - 0.3985282813157369, - 0.39812895760289463, - 0.39769665491071043, - 0.3972216240476586, - 0.39669257762579546, - 0.39610214489266654, - 0.3954422814300035, - 0.39469288123004664, - 0.39382547326994266, - 0.3928372373819705, - 0.3917135668893558, - 0.3904815864907149, - 0.38916700427908213, - 0.38780774040356564, - 0.3864206864947696, - 0.3850494231063863, - 0.3837277297721354, - 0.382504704094282, - 0.38138771201307065, - 0.38034468737852906, - 0.37935082985262214, - 0.3783642878868963, - 0.37739016020791266, - 0.37642404144499086, - 0.37547252528461783, - 0.37450829901326427, - 0.37356637849304175, - 0.372662560988745, - 0.37187581858855673, - 0.3712724976078406, - 0.3708918346542918, - 0.37074203089678115, - 0.37080583859448796, - 0.3710865685372027, - 0.3715746490474808, - 0.3722546037577725, - 0.37304605960063014, - 0.37390934900377326, - 0.3747690747423569, - 0.37563071048249874, - 0.3765016092068756, - 0.3773980227527897, - 0.3783225739901393, - 0.3792885296423098, - 0.3803070680959672, - 0.3814062509184527, - 0.38262709192441774, - 0.3839529411492219, - 0.38536345140027195, - 0.38678648284820716, - 0.3881902066672244, - 0.3895403314225329, - 0.390816167772361, - 0.3919819180636102, - 0.39303152555097814, - 0.3939500511226857, - 0.394751207336589, - 0.39546553654780514, - 0.3961084389252356, - 0.3966975384828907, - 0.3972368594984813, - 0.3977353655765372, - 0.3981919598924016, - 0.3986138568231418, - 0.39898391328529625, - 0.3992944555133267, - 0.39953247460922964, - 0.3997013181205875, - 0.39981685814022627, - 0.39989025194334077, - 0.3999342423058758, - 0.3999627569051186, - 0.39998157478492447, - 0.3999931101246152, - 0.39999798662845704, - 0.39999931678025197, - 0.40000023190664236, - 0.40000029314429275, - 0.39999952980333925, - 0.3999992961237556, - 0.3999976294590278, - 0.3999913453517534, - 0.39998191841967357, - 0.39996954206573077, - 0.3999508517921804, - 0.39991879375165024, - 0.3998585913135434, - 0.3997602080427923, - 0.39960806620234396, - 0.3993923792690333, - 0.39911603927194494, - 0.39878987283635026, - 0.39842121938251635, - 0.3980160014048169, - 0.39756810294827766, - 0.3970751555269196, - 0.3965363138618237, - 0.39593146138740304, - 0.3952494783515056, - 0.39446019805217614, - 0.3935492562523711, - 0.3925081769061361, - 0.39135941346911896, - 0.3901053194065201, - 0.38877857507799546, - 0.3873974102118941, - 0.3859998080931012, - 0.38464543522520234, - 0.3833751407894403, - 0.3822056469483469, - 0.38111241147266217, - 0.38007398847669555, - 0.37906074043010185, - 0.3780895504788238, - 0.3771243267038296, - 0.3761692131406861, - 0.3751961306689713, - 0.37421132125777523, - 0.3732508385444134, - 0.3723870426150306, - 0.37167477853599645, - 0.3711505483350672, - 0.37083568697160496, - 0.37072168505472997, - 0.3708533389445204, - 0.371214074629334, - 0.37179454489731123, - 0.37251662130780605, - 0.3733189549107275, - 0.3741481094343086, - 0.3750029228183486, - 0.3758684976686802, - 0.37675596211090684, - 0.37766290969119426, - 0.37857744571903323, - 0.3795389689775153, - 0.38057825707213777, - 0.38173875213035213, - 0.38301243979844113, - 0.38437893505690485, - 0.3857788720544914, - 0.38719739616075294, - 0.3885896379292477, - 0.38993158583574533, - 0.39118214004633295, - 0.3923061055718647, - 0.393301850941477, - 0.3941776858127248, - 0.394955085306537, - 0.39564928908267993, - 0.3962830051518634, - 0.3968518959748302, - 0.3973761068224016, - 0.39786336679185763, - 0.39831923065664054, - 0.39873302308401143, - 0.3990885817325615, - 0.3993725175032572, - 0.39958800711131504, - 0.3997404190759884, - 0.39984059992329696, - 0.39990491381755994, - 0.3999440764285255, - 0.39997014299805206, - 0.3999862198900498, - 0.3999946435254662, - 0.39999886011326025, - 0.4000004220597278, - 0.39999981763864, - 0.39999936092877986, - 0.39999989182098666, - 0.399998885517204, - 0.3999949357908362, - 0.3999880612485402, - 0.39997870266793817, - 0.39996605010228875, - 0.3999437724761242, - 0.39990458675803964, - 0.3998354518230543, - 0.3997186941835657, - 0.3995475683578831, - 0.39931479344643217, - 0.39902607899873954, - 0.3986911198241174, - 0.398311503886171, - 0.3978920185143149, - 0.3974315591452631, - 0.3969326548257678, - 0.39638174051946806, - 0.3957604742428835, - 0.3950361074576025, - 0.39420549745211014, - 0.393252711331798, - 0.3921831935129629, - 0.3910051273260115, - 0.3897274225057207, - 0.38836471165751896, - 0.3869657256334924, - 0.38559211870958837, - 0.3842795382826184, - 0.38306013547472056, - 0.38190452955743404, - 0.3808186723123431, - 0.37977968223787856, - 0.3787920437427274, - 0.37783213021829476, - 0.376877827019525, - 0.3758898179207213, - 0.37488226206879766, - 0.37389170121495185, - 0.3729623102800658, - 0.37216438891253406, - 0.3715090631725452, - 0.37103000192399516, - 0.37074997270741583, - 0.3707229464421881, - 0.3709465264670728, - 0.37141011128260026, - 0.3720303914236756, - 0.37276201584850144, - 0.37355168607693084, - 0.374381636390462, - 0.3752519167456091, - 0.3761339247741565, - 0.3770159001911352, - 0.37789457237779267, - 0.378811028603819, - 0.3797917212042068, - 0.38089778316319295, - 0.3821078102225966, - 0.3834125201006218, - 0.3847771647714222, - 0.38618573313531057, - 0.3876103217180677, - 0.38900646415731915, - 0.39032383428691964, - 0.3915262883533503, - 0.39260319764546725, - 0.39355128111129134, - 0.3944029957363565, - 0.3951599605429149, - 0.39583646377314485, - 0.39644112371738277, - 0.3969960975925041, - 0.3975111381577431, - 0.3980003386491395, - 0.39845174186118504, - 0.39884821360387074, - 0.39918020304012963, - 0.3994415427508539, - 0.3996385309466498, - 0.3997747154731298, - 0.3998623753659934, - 0.3999184920317445, - 0.3999541125755435, - 0.39997560401055754, - 0.3999891546391445, - 0.3999966573165025, - 0.3999996285168199, - 0.3999998403187683, - 0.39999947276234166, - 0.39999947912549144, - 0.3999994042315414, - 0.3999976767884355, - 0.39999285324381517, - 0.3999854831267889, - 0.3999755985051322, - 0.3999614232298254, - 0.399934818159181, - 0.3998866942542933, - 0.3998054269433189, - 0.3996731443422765, - 0.39948289156305533, - 0.3992364060219965, - 0.39893637076939137, - 0.39858556356011565, - 0.39819266747133414, - 0.397762111502184, - 0.3973028364196399, - 0.3967938283251919, - 0.3962235751993683, - 0.39556609447144825, - 0.3948070235384893, - 0.39393625247790953, - 0.3929576785005311, - 0.3918586184871025, - 0.39063545283585077, - 0.38931826928051005, - 0.38793610882272767, - 0.38655677688316303, - 0.3852155396197892, - 0.38394319546585914, - 0.382730660071285, - 0.38159054472281434, - 0.38051449127015663, - 0.3795140016203001, - 0.37854865386192527, - 0.37758219192791864, - 0.37659442861145087, - 0.37557374067262944, - 0.37456156582071726, - 0.37359932289797504, - 0.37272634946055966, - 0.371949500773, - 0.3713280692055868, - 0.37088872565686626, - 0.37070541429549464, - 0.37078216452872403, - 0.37110344142194307, - 0.37161032368746694, - 0.37224524549736493, - 0.3729778433849762, - 0.3737878513846185, - 0.3746497163496909, - 0.3755173885881505, - 0.3763882810501062, - 0.37723442177758654, - 0.37811177134242113, - 0.37905574324887276, - 0.3801011188931363, - 0.3812412621104222, - 0.38247624043919637, - 0.38378901238739427, - 0.38517586805302906, - 0.3866113120842035, - 0.38804148312159115, - 0.38942163932877794, - 0.39069020566222973, - 0.3918434489680618, - 0.3928788644990426, - 0.39380705067017896, - 0.39462674215428506, - 0.39535872217151957, - 0.39600452484656723, - 0.3965898736550134, - 0.39713929236674633, - 0.3976587020349369, - 0.39814210996095, - 0.39857554937422013, - 0.3989516012719805, - 0.3992631795079376, - 0.3995080664822808, - 0.39968390561960654, - 0.3998058748463197, - 0.3998823749303232, - 0.39993014579758834, - 0.3999613703853521, - 0.39998056016931466, - 0.39999181944261497, - 0.3999978763827741, - 0.399999803874825, - 0.39999937461755075, - 0.3999990270857816, - 0.3999997980861276, - 0.3999994103071853, - 0.39999611946669805, - 0.3999904798990737, - 0.3999835333730849, - 0.39997177913633847, - 0.3999533952730454, - 0.39992378885033936, - 0.3998669957672487, - 0.39977036687257267, - 0.3996233387948289, - 0.39941719172866275, - 0.39915530381578734, - 0.3988359803975, - 0.3984725330387327, - 0.3980725248921446, - 0.3976429248676949, - 0.3971739555926526, - 0.3966501922145464, - 0.3960457211209203, - 0.3953553596156753, - 0.394571168807722, - 0.393672275043939, - 0.3926538628556342, - 0.3915054041686367, - 0.3902425788428991, - 0.38889740319329386, - 0.3875320563184459, - 0.38617162144912737, - 0.3848567324827554, - 0.38358727144984406, - 0.38239125123516815, - 0.3812817881074146, - 0.3802503779554594, - 0.3792700042280499, - 0.37829606227837526, - 0.3772981990600845, - 0.37627361104848445, - 0.3752667907950337, - 0.37427447828554744, - 0.37334081749076314, - 0.3724708930984057, - 0.3717186629510265, - 0.37113866607915436, - 0.3708021399677288, - 0.3707238481286351, - 0.3708920168338568, - 0.3712585727145814, - 0.3717810850673913, - 0.37245071259424595, - 0.37321627647960426, - 0.37406181110866116, - 0.37491956894441103, - 0.37576482706585407, - 0.3765920797780905, - 0.3774507142949507, - 0.3783559351172256, - 0.3793459051681743, - 0.38041924201004484, - 0.3815752869248869, - 0.38282933259013635, - 0.3841762143103714, - 0.3856045855292859, - 0.38705522773577333, - 0.38847179348530714, - 0.3898005074228845, - 0.39103479635513533, - 0.39214963694335003, - 0.39315918058165183, - 0.3940553595984641, - 0.3948412501964441, - 0.39553410073857603, - 0.39616257044852443, - 0.3967462467931029, - 0.39729326360018546, - 0.39780693410461365, - 0.398272426123965, - 0.3986909242134577, - 0.3990491283439463, - 0.39934383443903126, - 0.39956933772282793, - 0.3997269559248173, - 0.3998307782021847, - 0.399898914365569, - 0.39994087268378314, - 0.39996707735336245, - 0.3999843217808336, - 0.3999945391070274, - 0.39999882587724533, - 0.39999900860572307, - 0.3999991970872223, - 0.4000001440950682, - 0.40000006296751167, - 0.39999797099269796, - 0.3999947914383718, - 0.39998863850702737, - 0.399978920531413, - 0.39996654405945686, - 0.3999461790513626, - 0.39991055336957526, - 0.39984389582358265, - 0.39973291246377873, - 0.3995691268121864, - 0.39934634565579497, - 0.39906239700980434, - 0.39873112121273385, - 0.39836002753535726, - 0.39796173206215546, - 0.3975254760359114, - 0.39703680734771823, - 0.3964859660026623, - 0.3958594328719472, - 0.3951466966955643, - 0.39433064057734546, - 0.39339606812658384, - 0.39232092664586327, - 0.391130690974315, - 0.38984139565959736, - 0.3885011080106159, - 0.3871412679117514, - 0.38579230135001347, - 0.38447465674070735, - 0.3832286937547377, - 0.38207464781820805, - 0.38101022987399824, - 0.3800075448381193, - 0.37900603293001317, - 0.37800606703098877, - 0.37698975712768057, - 0.3759812800972085, - 0.3749794541192018, - 0.37400301386750384, - 0.3730525088110202, - 0.3721964022449802, - 0.3714941265910668, - 0.3710093537808852, - 0.370778936276989, - 0.37077678997369945, - 0.370990809100327, - 0.37138868656298374, - 0.37196786781681895, - 0.3726855602221878, - 0.37349883683455204, - 0.3743246030338424, - 0.3751545583209907, - 0.37597163765446734, - 0.376808630557494, - 0.37769260584456277, - 0.37863291338147775, - 0.3796367071544038, - 0.38071793030934453, - 0.38190479258600085, - 0.3832009002431873, - 0.38460650200941354, - 0.38604939871233646, - 0.38748981614310435, - 0.3888669415639746, - 0.3901663636176307, - 0.3913697990125811, - 0.3924632004640476, - 0.393430778756802, - 0.39428171941216716, - 0.39503366410271445, - 0.39570536340409945, - 0.3963292153039344, - 0.3969077738797642, - 0.3974470326431988, - 0.39794250369512973, - 0.3983971401652699, - 0.39880117930980113, - 0.39914810265507145, - 0.3994208871898264, - 0.3996227989138774, - 0.3997624913418358, - 0.399853321001195 + 0.0, + -2.577400515235695e-10, + -2.3376909336070284e-7, + -2.0023887888909186e-6, + -7.338998841421862e-6, + -1.734725805963011e-5, + -3.3172955470839316e-5, + -5.7145979196981944e-5, + -9.454392054558669e-5, + -0.00016067496346361398, + -0.000268448235362595, + -0.00042783838960275267, + -0.0006554665218647115, + -0.0009480191629791523, + -0.0012984153999728854, + -0.0016909808965742124, + -0.0021225133773554172, + -0.002594225284253626, + -0.0031114985634814185, + -0.003674086350114514, + -0.004297336293073273, + -0.004996158077183233, + -0.005788186700078524, + -0.006706379829981957, + -0.007749809712051414, + -0.008913193647371864, + -0.010172932721153383, + -0.011517078419953142, + -0.012905090525989427, + -0.014321911760626693, + -0.01570346560473107, + -0.017004725945742538, + -0.0181978488071059, + -0.019289235780366842, + -0.020320464200499544, + -0.021306397886281858, + -0.02226079581631263, + -0.02318408748267925, + -0.02410424448793297, + -0.02501207338237149, + -0.02594233633776377, + -0.02685157268615962, + -0.027688644922736483, + -0.028381994456779303, + -0.028889431576301416, + -0.029186098559835227, + -0.02927361725951627, + -0.029138680028332253, + -0.02876348028493586, + -0.02817624930127588, + -0.027408809230092368, + -0.026561695486839954, + -0.025667805763886054, + -0.02476656835770852, + -0.023851867958624706, + -0.02293039320113649, + -0.02198447190899333, + -0.021034478717140148, + -0.020059593625939953, + -0.019019183627248526, + -0.017885520078801787, + -0.01663083693712969, + -0.015290751950518877, + -0.013897250280958617, + -0.012500119881419858, + -0.01111921075743133, + -0.009794787347066292, + -0.008547183793731872, + -0.007424570477354009, + -0.006431240170213182, + -0.00556010405232249, + -0.004797558575119654, + -0.004120248863403286, + -0.003509989648786349, + -0.002958357519371013, + -0.0024622508415528266, + -0.0020015469886004444, + -0.0015764286305399167, + -0.0011861822669425037, + -0.0008503939577577668, + -0.0005791493448517038, + -0.000374482898378492, + -0.00023151252170172665, + -0.00013963141471917684, + -8.213939807438786e-5, + -4.849256356753706e-5, + -2.7496054107178924e-5, + -1.2998790505813762e-5, + -4.6854932282403006e-6, + -1.136283842517738e-6, + -1.9845486420866365e-8, + 1.868591218423532e-7, + -1.516270079493509e-7, + -4.3158411655586093e-7, + -6.74490121921334e-7, + -3.331233965619962e-6, + -1.0647794164098112e-5, + -2.246828124946587e-5, + -3.8000285406125656e-5, + -6.489576650614559e-5, + -0.00011050008411872536, + -0.00018669013301142456, + -0.0003096967394858874, + -0.0004923036278216553, + -0.0007384660568300894, + -0.001046878156444997, + -0.0014036241442796915, + -0.0018074860973303353, + -0.0022523602681330246, + -0.002737111545244253, + -0.0032646705586829583, + -0.0038354946161672787, + -0.004473917081310952, + -0.005202634700809505, + -0.006045640784932194, + -0.0070015407371002425, + -0.008084122836274132, + -0.009268836547042414, + -0.010555204142574326, + -0.011924220572900324, + -0.013341002524948131, + -0.014746399788548636, + -0.01608675835323148, + -0.017333481324676048, + -0.018489662002989016, + -0.019580390488700306, + -0.020601618534956734, + -0.021581609190922224, + -0.02250906742636738, + -0.02342441244120702, + -0.024349238008280927, + -0.02530264502642976, + -0.026244913691636285, + -0.027140039350999068, + -0.027916927707567818, + -0.02853988396478868, + -0.0289976364032577, + -0.029251586634668758, + -0.02928363790493993, + -0.029050041038340912, + -0.02858143225028198, + -0.027919098240298867, + -0.027146526641569746, + -0.0262980050410051, + -0.02542310233805606, + -0.02451002285516446, + -0.023579768658174072, + -0.02265315120660405, + -0.021728287508563093, + -0.020794647405989963, + -0.019805036634501616, + -0.01872258183258524, + -0.01752261602287003, + -0.016239241422691286, + -0.014883864153874993, + -0.013499985595171904, + -0.01209475289108175, + -0.010713918546552181, + -0.009402663643032827, + -0.00819957717584574, + -0.007124085640663913, + -0.006178357795516176, + -0.005343463983031704, + -0.004597626577354796, + -0.003940090546589059, + -0.0033510505352037367, + -0.002823172883064884, + -0.002334486372329969, + -0.0018779759333496515, + -0.0014525971114028313, + -0.0010771920208489383, + -0.0007608709776857348, + -0.0005127176964212499, + -0.0003283049429015361, + -0.00019956655184022454, + -0.00011980765024249829, + -7.0894363400964e-5, + -4.05014587677166e-5, + -2.1351934087310287e-5, + -9.810158468293029e-6, + -3.6405205739997726e-6, + -3.2044934894503996e-7, + 5.294398168209646e-7, + -6.084409104878397e-7, + -8.33292722157708e-7, + -7.270117430291378e-8, + -1.106440749687465e-6, + -6.067429260125934e-6, + -1.379092440800811e-5, + -2.5582094065113026e-5, + -4.4085628120971165e-5, + -7.536311934636108e-5, + -0.00012970560110919793, + -0.0002180158263571652, + -0.00035945390961727997, + -0.0005609683035330826, + -0.0008229799136437177, + -0.0011430304332810115, + -0.0015145323151317114, + -0.0019328341952098427, + -0.0023894105948272792, + -0.0028800557372627433, + -0.0034080371526830633, + -0.003998226509849934, + -0.004664105997252532, + -0.00543595556711246, + -0.006314657205206686, + -0.00730549799000052, + -0.008409686254909454, + -0.009635330837648781, + -0.010961452688123763, + -0.012357709141130657, + -0.013770114108646536, + -0.015134600907189877, + -0.01643583808071508, + -0.017653972508342164, + -0.018805923233965627, + -0.019877684531238282, + -0.020880033045991786, + -0.0218174875354874, + -0.022745027761256975, + -0.0236774363431852, + -0.02464211923376236, + -0.02561252367303407, + -0.02653437160849198, + -0.027378912696332247, + -0.02811028719505476, + -0.02870911157221706, + -0.02912243123236713, + -0.02931507950315798, + -0.02922963638916104, + -0.028903359208144852, + -0.028361184503145176, + -0.027684192336984048, + -0.02690752454032097, + -0.026055050606379304, + -0.025151708855423893, + -0.024226488377532218, + -0.02330703994736244, + -0.022404470095543805, + -0.021507360576746182, + -0.02054904975639943, + -0.019516035843227975, + -0.018378301470385883, + -0.017157295266999883, + -0.015857853018087342, + -0.014497881948306979, + -0.013086315679016136, + -0.011672589172632752, + -0.010302022635574948, + -0.009027931580831483, + -0.007879957292699191, + -0.0068470553932935, + -0.005933067490357435, + -0.005120066898647524, + -0.004404233955150327, + -0.0037707638672948574, + -0.00320999669471278, + -0.002688684277372566, + -0.002200723130652227, + -0.0017453733579020914, + -0.0013330985611647028, + -0.0009778773632393434, + -0.0006826181180570878, + -0.0004514190269618301, + -0.0002842360781512565, + -0.00017208765234538737, + -0.0001020087872400377, + -6.020102398934801e-5, + -3.33430635276466e-5, + -1.761977396641523e-5, + -7.722158843537219e-6, + -1.569978353821444e-6, + -3.2075102907036523e-8, + -5.652826862156957e-7, + -7.383242368597109e-7, + -6.720261602755073e-8, + -3.943245313609012e-7, + -2.5870116379111963e-6, + -7.884549698577992e-6, + -1.6367504000247557e-5, + -3.0416710483871512e-5, + -5.2436877506056856e-5, + -8.812609247538239e-5, + -0.00015176662265758978, + -0.00025611349045440157, + -0.0004123851267571199, + -0.0006311744247760598, + -0.0009102983959841104, + -0.0012459980848051333, + -0.0016356544208595558, + -0.002061794275460105, + -0.0025222968276955027, + -0.003012783018719989, + -0.0035571719821527736, + -0.0041736853862651135, + -0.004879475283635748, + -0.005675921754463742, + -0.0065841964684763, + -0.007608921646840905, + -0.008756381664018154, + -0.010029171018970884, + -0.011386717062955687, + -0.012781824516112539, + -0.014162141269148276, + -0.015505779935889308, + -0.016783088109324162, + -0.01799958518999062, + -0.01911817584350506, + -0.02015473024515002, + -0.02111707874086255, + -0.02205218175345286, + -0.023003497057163147, + -0.023975628829386808, + -0.024947158031246697, + -0.0258902632659887, + -0.0267898668737635, + -0.0276046795430665, + -0.02833080785169456, + -0.028887850502869072, + -0.029228799761424062, + -0.029302770361537833, + -0.029124977108209327, + -0.02872836636255749, + -0.028168925262381905, + -0.027469795402608577, + -0.026662500743030504, + -0.025779485822269077, + -0.024856331679397048, + -0.023957503954624038, + -0.02307163795706063, + -0.022188410100940192, + -0.021261310928732013, + -0.02027186486434207, + -0.019191548364528188, + -0.01804236697482081, + -0.016805471865789734, + -0.01548296227480589, + -0.014086285489153805, + -0.012650331248737046, + -0.011244798434202508, + -0.009911532235305387, + -0.008686470703371807, + -0.007572778264508917, + -0.006576049758422908, + -0.005683351695356775, + -0.004907856978312419, + -0.00422693243492811, + -0.0036200469234630717, + -0.0030646473309029476, + -0.002546621756085332, + -0.0020611999751255494, + -0.0016182842621417226, + -0.00122559381268611, + -0.000885269482331752, + -0.0006077331428051003, + -0.0003931234891121904, + -0.0002448847873017246, + -0.00014798243361174857, + -8.697835852916613e-5, + -5.0867419721101204e-5, + -2.885402418356664e-5, + -1.3850083526556478e-5, + -5.155413737023551e-6, + -1.0728309112195689e-6, + -2.615728038057874e-7, + -5.20893227773378e-7, + -5.080331226259283e-7, + 2.0979776510499093e-7, + -6.850955051596053e-7, + -4.000750710775325e-6, + -1.028599455094037e-5, + -2.0467948180225015e-5, + -3.597560312407211e-5, + -6.202268150246049e-5, + -0.00010412651925673089, + -0.0001763783031611954, + -0.00029659088679478973, + -0.0004703214792057264, + -0.0007059749601348031, + -0.0010047270849909418, + -0.0013607915451033792, + -0.0017569928046858307, + -0.002185348960831779, + -0.002644288500076919, + -0.003154457613091244, + -0.003722110834515402, + -0.00436533566359576, + -0.005094645754130933, + -0.005919038859273973, + -0.006859928655947589, + -0.007933481844700052, + -0.009136404779500451, + -0.010433190303896611, + -0.01180072310963598, + -0.013177646554486722, + -0.014549731467026983, + -0.01588128156369578, + -0.017152752751950773, + -0.01832760285466012, + -0.01940039486600642, + -0.020393388746675345, + -0.021358244015676653, + -0.022325006745258003, + -0.02329271991352677, + -0.024270070944926725, + -0.025219816610160928, + -0.026152000173350787, + -0.027044646953203244, + -0.02787068624719563, + -0.028549415804191236, + -0.029033473616167316, + -0.029260630449855995, + -0.029245037540558294, + -0.029009126940708563, + -0.028580214078462562, + -0.02798466016634188, + -0.027229163789917132, + -0.02637823966169145, + -0.025483594070448368, + -0.02459957491808068, + -0.023721611430606693, + -0.022855257237209547, + -0.021944128981727096, + -0.02098697479029199, + -0.019971186595390933, + -0.01888762320057258, + -0.017718850839261224, + -0.016445583034051414, + -0.01507561573421351, + -0.013644108144456324, + -0.01221791953455742, + -0.010838937273173865, + -0.009551935154910207, + -0.008352269943066926, + -0.007266604520502373, + -0.006301300402801913, + -0.005456307557948348, + -0.004715027029576324, + -0.004061673310082392, + -0.003466124992121178, + -0.0029115217978530894, + -0.002400856314784261, + -0.0019296786258502507, + -0.0015033108755685975, + -0.0011206734600970325, + -0.0007946199638044216, + -0.0005340032718883503, + -0.0003422244096146776, + -0.00021018208170131558, + -0.0001277033857035037, + -7.578360256443872e-5, + -4.349898827865628e-5, + -2.390781601030456e-5, + -1.067287407791051e-5, + -3.0559303921817715e-6, + -2.4893707151196764e-7, + -5.677781083068822e-7, + -3.4629274908715146e-7, + 3.731935026007882e-7, + -9.303519710179842e-8, + -1.9277220977831355e-6, + -5.533865697071594e-6, + -1.3171228499253562e-5, + -2.618186146424728e-5, + -4.319449808204423e-5, + -7.070062693070867e-5, + -0.00012118487551993073, + -0.0002063387987694676, + -0.00033995297140065883, + -0.0005343320202457202, + -0.0007910485183459381, + -0.0011100524057758854, + -0.0014717186842631014, + -0.0018710423971053936, + -0.002303345089289588, + -0.0027783759523414275, + -0.0033074223742045605, + -0.003897855107333481, + -0.004557718569996538, + -0.005307118769953378, + -0.006174526730057361, + -0.007162762618029506, + -0.008286433110644198, + -0.009518413509285117, + -0.010832995720917893, + -0.012192259596434385, + -0.013579313505230395, + -0.014950576893613732, + -0.01627227022786465, + -0.017495295905718022, + -0.018612287986929377, + -0.019655312621470966, + -0.020649170147377882, + -0.021635712113103722, + -0.02260983979208736, + -0.023575958555009158, + -0.02452747471538219, + -0.025491700986735755, + -0.02643362150695827, + -0.027337439011255016, + -0.028124181411443294, + -0.028727502392159432, + -0.029108165345708203, + -0.029257969103218873, + -0.029194161405512065, + -0.028913431462797345, + -0.028425350952519246, + -0.02774539624222755, + -0.02695394039936988, + -0.02609065099622676, + -0.025230925257643144, + -0.02436928951750128, + -0.023498390793124435, + -0.022601977247210303, + -0.021677426009860723, + -0.02071147035769022, + -0.019692931904032818, + -0.018593749081547317, + -0.017372908075582283, + -0.016047058850778118, + -0.014636548599728072, + -0.013213517151792864, + -0.011809793332775598, + -0.010459668577467107, + -0.009183832227639022, + -0.00801808193638981, + -0.0069684744490218775, + -0.006049948877314304, + -0.005248792663410995, + -0.004534463452194881, + -0.0038915610747644047, + -0.003302461517109334, + -0.0027631405015187127, + -0.002264634423462808, + -0.001808040107598441, + -0.001386143176858201, + -0.0010160867147037678, + -0.0007055444866733152, + -0.0004675253907703847, + -0.0002986818794125101, + -0.00018314185977374997, + -0.00010974805665925347, + -6.575769412420218e-5, + -3.724309488140065e-5, + -1.8425215075557055e-5, + -6.889875384830102e-6, + -2.0133715429859755e-6, + -6.832197480544089e-7, + 2.3190664233396774e-7, + 2.9314429272897513e-7, + -4.7019666077341427e-7, + -7.038762444011581e-7, + -2.3705409722407644e-6, + -8.654648246619878e-6, + -1.808158032645668e-5, + -3.0457934269256803e-5, + -4.914820781964924e-5, + -8.120624834978551e-5, + -0.0001414086864566233, + -0.0002397919572077467, + -0.0003919337976560633, + -0.000607620730966707, + -0.0008839607280550776, + -0.0012101271636497657, + -0.0015787806174836772, + -0.001983998595183112, + -0.002431897051722365, + -0.0029248444730804457, + -0.003463686138176325, + -0.004068538612596984, + -0.004750521648494432, + -0.005539801947823886, + -0.00645074374762894, + -0.007491823093863925, + -0.008640586530881067, + -0.009894680593479921, + -0.011221424922004564, + -0.012602589788105911, + -0.014000191906898829, + -0.015354564774797685, + -0.016624859210559728, + -0.01779435305165311, + -0.01888758852733785, + -0.019926011523304477, + -0.020939259569898172, + -0.021910449521176212, + -0.022875673296170407, + -0.023830786859313946, + -0.02480386933102874, + -0.02578867874222479, + -0.026749161455586645, + -0.02761295738496944, + -0.02832522146400357, + -0.0288494516649328, + -0.02916431302839506, + -0.029278314945270056, + -0.02914666105547964, + -0.028785925370666043, + -0.028205455102688792, + -0.02748337869219397, + -0.026681045089272548, + -0.025851890565691427, + -0.024997077181651395, + -0.024131502331319832, + -0.023244037889093183, + -0.022337090308805763, + -0.021422554280966788, + -0.0204610310224847, + -0.01942174292786225, + -0.01826124786964789, + -0.016987560201558893, + -0.015621064943095175, + -0.014221127945508616, + -0.012802603839247084, + -0.0114103620707523, + -0.010068414164254691, + -0.008817859953667073, + -0.007693894428135339, + -0.006698149058523006, + -0.005822314187275246, + -0.005044914693463021, + -0.004350710917320089, + -0.0037169948481366455, + -0.0031481040251697956, + -0.0026238931775984242, + -0.002136633208142391, + -0.0016807693433594784, + -0.0012669769159885935, + -0.000911418267438513, + -0.0006274824967428261, + -0.0004119928886849866, + -0.00025958092401162647, + -0.00015940007670306455, + -9.508618244008504e-5, + -5.592357147454763e-5, + -2.9857001947963813e-5, + -1.3780109950234376e-5, + -5.356474533813049e-6, + -1.1398867397760526e-6, + 4.220597277782012e-7, + -1.8236136001270609e-7, + -6.39071220165377e-7, + -1.08179013358356e-7, + -1.1144827960496428e-6, + -5.0642091637964626e-6, + -1.1938751459827923e-5, + -2.129733206185369e-5, + -3.394989771127177e-5, + -5.622752387579588e-5, + -9.541324196038481e-5, + -0.00016454817694572244, + -0.0002813058164343185, + -0.0004524316421169461, + -0.000685206553567852, + -0.0009739210012604804, + -0.0013088801758825985, + -0.001688496113829041, + -0.0021079814856851398, + -0.0025684408547368975, + -0.003067345174232239, + -0.00361825948053196, + -0.004239525757116502, + -0.004963892542397541, + -0.005794502547889879, + -0.006747288668202012, + -0.007816806487037142, + -0.008994872673988519, + -0.010272577494279345, + -0.011635288342481065, + -0.013034274366507614, + -0.01440788129041165, + -0.015720461717381617, + -0.016939864525279458, + -0.018095470442565986, + -0.0191813276876569, + -0.020220317762121465, + -0.02120795625727262, + -0.022167869781705263, + -0.02312217298047503, + -0.02411018207927873, + -0.025117737931202366, + -0.026108298785048167, + -0.0270376897199342, + -0.02783561108746596, + -0.02849093682745485, + -0.028969998076004866, + -0.02925002729258419, + -0.029277053557811905, + -0.0290534735329272, + -0.02858988871739976, + -0.027969608576324412, + -0.027237984151498584, + -0.026448313923069178, + -0.02561836360953801, + -0.02474808325439093, + -0.023866075225843497, + -0.022984099808864844, + -0.022105427622207352, + -0.021188971396181033, + -0.020208278795793233, + -0.019102216836807073, + -0.017892189777403422, + -0.0165874798993782, + -0.015222835228577813, + -0.01381426686468945, + -0.012389678281932326, + -0.010993535842680868, + -0.009676165713080387, + -0.008473711646649729, + -0.007396802354532772, + -0.006448718888708682, + -0.0055970042636435124, + -0.00484003945708511, + -0.004163536226855169, + -0.0035588762826172515, + -0.0030039024074959286, + -0.0024888618422569397, + -0.0019996613508605487, + -0.001548258138814984, + -0.001151786396129284, + -0.0008197969598703891, + -0.0005584572491461048, + -0.0003614690533502163, + -0.0002252845268702064, + -0.00013762463400662783, + -8.150796825551199e-5, + -4.58874244565477e-5, + -2.439598944248278e-5, + -1.0845360855549213e-5, + -3.3426834974981112e-6, + -3.7148318010604697e-7, + -1.5968123173726312e-7, + -5.27237658365376e-7, + -5.208745085805155e-7, + -5.957684586221923e-7, + -2.323211564514427e-6, + -7.146756184850389e-6, + -1.4516873211134484e-5, + -2.4401494867820617e-5, + -3.857677017460315e-5, + -6.518184081899525e-5, + -0.00011330574570672658, + -0.00019457305668113545, + -0.00032685565772350156, + -0.000517108436944691, + -0.0007635939780035184, + -0.0010636292306086537, + -0.00141443643988437, + -0.0018073325286658837, + -0.002237888497816032, + -0.0026971635803600957, + -0.0032061716748081337, + -0.003776424800631728, + -0.004433905528551774, + -0.005192976461510734, + -0.00606374752209049, + -0.007042321499468929, + -0.008141381512897505, + -0.00936454716414925, + -0.010681730719489968, + -0.012063891177272357, + -0.013443223116836989, + -0.014784460380210807, + -0.01605680453414088, + -0.017269339928715044, + -0.018409455277185682, + -0.019485508729843393, + -0.020485998379699943, + -0.021451346138074756, + -0.02241780807208138, + -0.02340557138854915, + -0.02442625932737058, + -0.025438434179282765, + -0.026400677102024983, + -0.027273650539440364, + -0.028050499227000036, + -0.028671930794413214, + -0.029111274343133764, + -0.029294585704505383, + -0.029217835471275988, + -0.028896558578056952, + -0.028389676312533085, + -0.027754754502635093, + -0.02702215661502383, + -0.026212148615381514, + -0.025350283650309113, + -0.024482611411849542, + -0.023611718949893834, + -0.022765578222413485, + -0.02188822865757889, + -0.020944256751127266, + -0.01989888110686372, + -0.018758737889577826, + -0.017523759560803653, + -0.016210987612605754, + -0.014824131946970964, + -0.013388687915796504, + -0.011958516878408876, + -0.010578360671222087, + -0.009309794337770294, + -0.008156551031938242, + -0.007121135500957443, + -0.0061929493298210625, + -0.005373257845714963, + -0.00464127782848045, + -0.003995475153432793, + -0.003410126344986608, + -0.0028607076332536896, + -0.002341297965063105, + -0.0018578900390500142, + -0.001424450625779894, + -0.0010483987280195395, + -0.0007368204920624177, + -0.0004919335177192008, + -0.0003160943803934835, + -0.00019412515368033567, + -0.00011762506967682995, + -6.985420241167883e-5, + -3.862961464790038e-5, + -1.9439830685363813e-5, + -8.180557385051301e-6, + -2.1236172259020414e-6, + -1.9612517504485893e-7, + -6.253824492707949e-7, + -9.729142184111694e-7, + -2.0191387239965053e-7, + -5.896928147453018e-7, + -3.880533301969802e-6, + -9.52010092630795e-6, + -1.6466626915123683e-5, + -2.8220863661554407e-5, + -4.660472695461326e-5, + -7.621114966066544e-5, + -0.00013300423275131035, + -0.0002296331274273533, + -0.0003766612051711027, + -0.0005828082713372762, + -0.0008446961842126788, + -0.0011640196025000105, + -0.0015274669612673208, + -0.001927475107855403, + -0.0023570751323050976, + -0.0028260444073474056, + -0.003349807785453629, + -0.003954278879079731, + -0.004644640384324716, + -0.00542883119227805, + -0.006327724956061043, + -0.007346137144365827, + -0.008494595831363305, + -0.009757421157100932, + -0.011102596806706166, + -0.012467943681554128, + -0.013828378550872655, + -0.015143267517244596, + -0.016412728550155964, + -0.017608748764831872, + -0.018718211892585435, + -0.019749622044540616, + -0.020729995771950116, + -0.021703937721624766, + -0.02270180093991553, + -0.023726388951515576, + -0.0247332092049663, + -0.02572552171445258, + -0.02665918250923688, + -0.027529106901594325, + -0.02828133704897351, + -0.028861333920845667, + -0.029197860032271206, + -0.029276151871364897, + -0.029107983166143214, + -0.02874142728541862, + -0.028218914932608696, + -0.027549287405754075, + -0.026783723520395764, + -0.025938188891338865, + -0.025080431055588992, + -0.024235172934145954, + -0.023407920221909517, + -0.022549285705049327, + -0.021644064882774428, + -0.02065409483182573, + -0.019580757989955178, + -0.01842471307511312, + -0.01717066740986367, + -0.01582378568962861, + -0.01439541447071413, + -0.01294477226422669, + -0.011528206514692885, + -0.010199492577115499, + -0.008965203644864694, + -0.00785036305664999, + -0.006840819418348187, + -0.005944640401535917, + -0.0051587498035559065, + -0.004465899261423989, + -0.0038374295514755907, + -0.0032537532068971364, + -0.0027067363998145577, + -0.00219306589538637, + -0.0017275738760350046, + -0.0013090757865423241, + -0.0009508716560537311, + -0.0006561655609687578, + -0.00043066227717208916, + -0.000273044075182749, + -0.000169221797815311, + -0.00010108563443100849, + -5.912731621687817e-5, + -3.292264663756761e-5, + -1.56782191664262e-5, + -5.460892972597442e-6, + -1.1741227546879784e-6, + -9.913942769501638e-7, + -8.029127777087197e-7, + 1.4409506815526996e-7, + 6.296751164924785e-8, + -2.0290073020623467e-6, + -5.2085616282226965e-6, + -1.1361492972650211e-5, + -2.1079468587037464e-5, + -3.3455940543158924e-5, + -5.382094863742859e-5, + -8.944663042476098e-5, + -0.00015610417641737095, + -0.0002670875362212888, + -0.0004308731878135963, + -0.0006536543442050569, + -0.000937602990195685, + -0.00126887878726617, + -0.0016399724646427583, + -0.0020382679378445623, + -0.0024745239640886485, + -0.0029631926522817875, + -0.00351403399733774, + -0.00414056712805283, + -0.00485330330443573, + -0.005669359422654563, + -0.00660393187341618, + -0.007679073354136756, + -0.008869309025685002, + -0.010158604340402666, + -0.011498891989384141, + -0.012858732088248614, + -0.014207698649986555, + -0.015525343259292668, + -0.016771306245262296, + -0.017925352181791976, + -0.01898977012600178, + -0.019992455161880696, + -0.020993967069986852, + -0.021993932969011254, + -0.023010242872319453, + -0.02401871990279153, + -0.025020545880798217, + -0.02599698613249618, + -0.026947491188979822, + -0.027803597755019838, + -0.028505873408933236, + -0.028990646219114846, + -0.02922106372301103, + -0.029223210026300572, + -0.02900919089967302, + -0.028611313437016284, + -0.02803213218318107, + -0.027314439777812227, + -0.026501163165447983, + -0.025675396966157615, + -0.024845441679009317, + -0.024028362345532683, + -0.02319136944250605, + -0.022307394155437255, + -0.02136708661852227, + -0.020363292845596237, + -0.01928206969065549, + -0.01809520741399917, + -0.016799099756812708, + -0.01539349799058648, + -0.013950601287663567, + -0.012510183856895674, + -0.011133058436025411, + -0.009833636382369337, + -0.008630200987418901, + -0.007536799535952432, + -0.006569221243198031, + -0.005718280587832858, + -0.004966335897285568, + -0.0042946365959005695, + -0.003670784696065632, + -0.003092226120235797, + -0.0025529673568012168, + -0.0020574963048702877, + -0.0016028598347301304, + -0.0011988206901988874, + -0.000851897344928576, + -0.0005791128101736431, + -0.0003772010861226027, + -0.00023750865816424271, + -0.00014667899880504986 ], "datatype": "Float64", "type": "series" diff --git a/validation/oscillating_beam_2d/validation_reference_5.json b/validation/oscillating_beam_2d/validation_reference_5.json index 67d0a0628..837584531 100644 --- a/validation/oscillating_beam_2d/validation_reference_5.json +++ b/validation/oscillating_beam_2d/validation_reference_5.json @@ -4,7 +4,7 @@ "solver_version": "cbeee99-dirty", "solver_name": "TrixiParticles.jl" }, - "mid_point_y_solid_1": { + "deflection_y_solid_1": { "n_values": 201, "time": [ 0.0, @@ -211,212 +211,212 @@ ], "system_name": "solid", "values": [ - 0.01, - 0.009900000003057264, - 0.009599789546828065, - 0.009118370698679776, - 0.008518033420726054, - 0.007578812044666174, - 0.0061923485126022595, - 0.0043513746327066855, - 0.0020580496242352422, - -0.0005798406500071957, - -0.003510514846166772, - -0.0068200653320975805, - -0.010458797938149331, - -0.014231236645932368, - -0.018077953699214073, - -0.021847333363430834, - -0.025580878320669805, - -0.029393923523497706, - -0.03329172609215341, - -0.03719185434606216, - -0.0411624876173075, - -0.04518439745891413, - -0.04937833045400679, - -0.05385371519288999, - -0.058471958172015656, - -0.0631040228812182, - -0.06768658744102923, - -0.0721454466541176, - -0.07648071483059049, - -0.08070298388259853, - -0.08460137146757643, - -0.08815230844962407, - -0.09135640992891196, - -0.09426394882957183, - -0.09700744294793011, - -0.09964558693185724, - -0.10205455483488089, - -0.10428052241019263, - -0.10634870619619144, - -0.10827644344403074, - -0.11014611574645099, - -0.1118218369051334, - -0.11315797029541358, - -0.11411960509168075, - -0.11467800850678962, - -0.11484504262839616, - -0.11472731547042021, - -0.11419298502770492, - -0.11323087582387606, - -0.11188967560501728, - -0.11023189132155821, - -0.10841218104211296, - -0.10652290339197558, - -0.10445399768890086, - -0.10220748543661398, - -0.09979560604339374, - -0.09718784805816087, - -0.0944896196977692, - -0.0916077568765125, - -0.08840525938954175, - -0.0848459900443991, - -0.08095094072826964, - -0.076764436299159, - -0.07247510060297314, - -0.06802761801651501, - -0.06341837037971738, - -0.05876124021669529, - -0.0541451451796428, - -0.04969611554909209, - -0.045512910846534194, - -0.04146846199343597, - -0.037464278084344, - -0.033546758327335696, - -0.029658606750787693, - -0.02587279909332117, - -0.022147466738992774, - -0.01834718713416385, - -0.014464315062448786, - -0.010682219245645571, - -0.007061868431165168, - -0.0037599368719649392, - -0.0007933325904006025, - 0.0019059367915453388, - 0.004233484171564698, - 0.006079409941293344, - 0.007465099654798107, - 0.008422332869024343, - 0.009065113886272088, - 0.009590010400372544, - 0.00990601095869174, - 0.009995263733218976, - 0.009886131120761688, - 0.009606049352542115, - 0.009179996251848914, - 0.008618971971316605, - 0.00767955812777912, - 0.006283899698034218, - 0.004467219204136206, - 0.00222578273585947, - -0.00036038449104736233, - -0.003274413437741526, - -0.006593663880806339, - -0.010236688637536084, - -0.01399014542903491, - -0.017802273111815238, - -0.021547785531123045, - -0.025293898620849957, - -0.02913947790033047, - -0.033039660219049624, - -0.036908695620814336, - -0.04084264779778111, - -0.044859685397983566, - -0.04907627967125113, - -0.053568656534813526, - -0.05816910490946189, - -0.06277443864151402, - -0.06734594495232597, - -0.07182352790807489, - -0.07619999781758931, - -0.08045307404114331, - -0.08434906471003331, - -0.08788490123680973, - -0.09109737115022189, - -0.09404751739637067, - -0.09684035277392224, - -0.09948773193607081, - -0.10187927834209837, - -0.10409742646629329, - -0.10618471464801782, - -0.10814872922504842, - -0.11005725700707901, - -0.11174578046786672, - -0.11307576455051499, - -0.11403853733455371, - -0.11462852302063793, - -0.11485565323995087, - -0.11478384662873367, - -0.1142556140034486, - -0.1132845013802224, - -0.11195455390339915, - -0.1103322277513747, - -0.10855897276267205, - -0.10669158706819837, - -0.10461607632794258, - -0.10235541099125794, - -0.09994766222448197, - -0.09737438188404118, - -0.094725512279956, - -0.09186120646065714, - -0.08864403849757936, - -0.0850788353520208, - -0.08120709110231814, - -0.07706663887278485, - -0.07280851331141348, - -0.06835738741825421, - -0.06372456083866038, - -0.05905534283034235, - -0.05444476854846088, - -0.05002188038387304, - -0.045846721880096385, - -0.04177018433883645, - -0.037725525893851905, - -0.033802408565275055, - -0.029940460972162793, - -0.026178939967640782, - -0.02243957156753779, - -0.018598918505154247, - -0.014698350032650067, - -0.010922966183224036, - -0.007314170529729425, - -0.0040039131198071525, - -0.0009995570848110014, - 0.0017559720413796941, - 0.004111858337608319, - 0.005959667013574326, - 0.007342967151121229, - 0.008326071683030282, - 0.00902398228876772, - 0.009590839803111595, - 0.009902021960537927, - 0.009972704851717135, - 0.009872993936227717, - 0.009629907504675322, - 0.009250640034104467, - 0.008710749404480307, - 0.007768035108443492, - 0.006373968401693793, - 0.004589709347840719, - 0.002399263810263675, - -0.00013612784730573913, - -0.0030418236985947375, - -0.006379723116155152, - -0.010019321120756847, - -0.01373497747811938, - -0.017511929592617236, - -0.021251982348258126, - -0.02502268042576975, - -0.02888986794127188, - -0.032775371414900535, - -0.036614076730865794, - -0.04052362837635896 + 0.0, + -9.999999694273662e-5, + -0.00040021045317193554, + -0.0008816293013202241, + -0.001481966579273946, + -0.002421187955333826, + -0.0038076514873977407, + -0.005648625367293315, + -0.007941950375764758, + -0.010579840650007196, + -0.013510514846166772, + -0.01682006533209758, + -0.02045879793814933, + -0.024231236645932366, + -0.02807795369921407, + -0.03184733336343083, + -0.035580878320669806, + -0.03939392352349771, + -0.04329172609215341, + -0.04719185434606216, + -0.0511624876173075, + -0.05518439745891413, + -0.05937833045400679, + -0.06385371519288999, + -0.06847195817201565, + -0.0731040228812182, + -0.07768658744102923, + -0.08214544665411759, + -0.08648071483059049, + -0.09070298388259852, + -0.09460137146757643, + -0.09815230844962407, + -0.10135640992891196, + -0.10426394882957182, + -0.1070074429479301, + -0.10964558693185723, + -0.11205455483488089, + -0.11428052241019263, + -0.11634870619619143, + -0.11827644344403074, + -0.12014611574645098, + -0.1218218369051334, + -0.12315797029541357, + -0.12411960509168074, + -0.12467800850678962, + -0.12484504262839616, + -0.12472731547042021, + -0.12419298502770491, + -0.12323087582387605, + -0.12188967560501728, + -0.1202318913215582, + -0.11841218104211296, + -0.11652290339197557, + -0.11445399768890085, + -0.11220748543661398, + -0.10979560604339374, + -0.10718784805816087, + -0.1044896196977692, + -0.1016077568765125, + -0.09840525938954174, + -0.0948459900443991, + -0.09095094072826963, + -0.08676443629915899, + -0.08247510060297314, + -0.078027618016515, + -0.07341837037971738, + -0.06876124021669529, + -0.0641451451796428, + -0.05969611554909209, + -0.055512910846534196, + -0.05146846199343597, + -0.047464278084344, + -0.0435467583273357, + -0.039658606750787695, + -0.03587279909332117, + -0.032147466738992776, + -0.02834718713416385, + -0.024464315062448786, + -0.02068221924564557, + -0.017061868431165167, + -0.01375993687196494, + -0.010793332590400603, + -0.008094063208454662, + -0.005766515828435302, + -0.0039205900587066566, + -0.0025349003452018936, + -0.001577667130975657, + -0.0009348861137279119, + -0.00040998959962745656, + -9.398904130825982e-5, + -4.736266781024331e-6, + -0.00011386887923831197, + -0.00039395064745788473, + -0.0008200037481510859, + -0.0013810280286833954, + -0.00232044187222088, + -0.003716100301965782, + -0.005532780795863794, + -0.0077742172641405306, + -0.010360384491047363, + -0.013274413437741526, + -0.01659366388080634, + -0.020236688637536082, + -0.02399014542903491, + -0.02780227311181524, + -0.03154778553112304, + -0.03529389862084996, + -0.03913947790033047, + -0.043039660219049626, + -0.04690869562081434, + -0.05084264779778111, + -0.05485968539798357, + -0.05907627967125113, + -0.06356865653481353, + -0.06816910490946189, + -0.07277443864151402, + -0.07734594495232597, + -0.08182352790807489, + -0.0861999978175893, + -0.0904530740411433, + -0.0943490647100333, + -0.09788490123680972, + -0.10109737115022188, + -0.10404751739637066, + -0.10684035277392223, + -0.10948773193607081, + -0.11187927834209836, + -0.11409742646629328, + -0.11618471464801781, + -0.11814872922504842, + -0.120057257007079, + -0.12174578046786672, + -0.12307576455051498, + -0.12403853733455371, + -0.12462852302063793, + -0.12485565323995086, + -0.12478384662873367, + -0.12425561400344859, + -0.1232845013802224, + -0.12195455390339914, + -0.1203322277513747, + -0.11855897276267205, + -0.11669158706819836, + -0.11461607632794257, + -0.11235541099125794, + -0.10994766222448196, + -0.10737438188404118, + -0.104725512279956, + -0.10186120646065713, + -0.09864403849757936, + -0.0950788353520208, + -0.09120709110231813, + -0.08706663887278485, + -0.08280851331141348, + -0.07835738741825421, + -0.07372456083866037, + -0.06905534283034234, + -0.06444476854846087, + -0.060021880383873044, + -0.05584672188009639, + -0.05177018433883645, + -0.04772552589385191, + -0.04380240856527506, + -0.03994046097216279, + -0.03617893996764078, + -0.03243957156753779, + -0.028598918505154246, + -0.024698350032650068, + -0.020922966183224034, + -0.017314170529729424, + -0.014003913119807154, + -0.010999557084811002, + -0.008244027958620306, + -0.005888141662391681, + -0.004040332986425674, + -0.0026570328488787712, + -0.0016739283169697177, + -0.0009760177112322806, + -0.0004091601968884053, + -9.79780394620728e-5, + -2.729514828286525e-5, + -0.00012700606377228328, + -0.0003700924953246778, + -0.0007493599658955335, + -0.001289250595519693, + -0.002231964891556508, + -0.0036260315983062076, + -0.005410290652159281, + -0.007600736189736325, + -0.01013612784730574, + -0.013041823698594739, + -0.016379723116155154, + -0.02001932112075685, + -0.023734977478119382, + -0.027511929592617237, + -0.03125198234825813, + -0.03502268042576975, + -0.03888986794127188, + -0.04277537141490054, + -0.046614076730865796, + -0.05052362837635896 ], "datatype": "Float64", "type": "series" }, - "mid_point_x_solid_1": { + "deflection_x_solid_1": { "n_values": 201, "time": [ 0.0, @@ -623,207 +623,207 @@ ], "system_name": "solid", "values": [ - 0.4, - 0.3999999997824367, - 0.3999997789958192, - 0.39999806620694045, - 0.3999928428024424, - 0.39998300585054947, - 0.3999675218618222, - 0.3999436659354054, - 0.39990580833431155, - 0.399839234990466, - 0.3997313746962118, - 0.39957178812928623, - 0.399347445055603, - 0.3990631110340628, - 0.39872559423040754, - 0.3983496069626268, - 0.3979362967099483, - 0.3974848366413246, - 0.3969876565351798, - 0.39644634645703847, - 0.3958398519571036, - 0.3951572006475971, - 0.3943766124756363, - 0.39347728040460894, - 0.39245781348060577, - 0.3913336935845073, - 0.3901241793111952, - 0.3888478194347051, - 0.3875432786821061, - 0.38623412842963145, - 0.38498463988319975, - 0.383817983657794, - 0.38275732790742917, - 0.3817772860756451, - 0.3808514371519754, - 0.37994742387320823, - 0.37907834881330327, - 0.3782242086815014, - 0.3773729270579829, - 0.3765230838285794, - 0.3756748328260026, - 0.3748775638863493, - 0.3741893974782273, - 0.373672864900755, - 0.37334747629362214, - 0.37323907621561286, - 0.37332689387681645, - 0.37364095614461246, - 0.3741532468159804, - 0.3748382246646243, - 0.37562987733324865, - 0.37646657076440593, - 0.37730631991182406, - 0.37815726724345583, - 0.3790184571880302, - 0.37988851026494563, - 0.3807844775244541, - 0.38170115400018884, - 0.38267635495705954, - 0.3837343552123141, - 0.38490148914352784, - 0.38615239663022, - 0.38745695810321945, - 0.38875593210799997, - 0.39003545646243615, - 0.3912551055772839, - 0.3923870145601527, - 0.3934121243458913, - 0.3943169031557319, - 0.39510258645298607, - 0.39578995641636694, - 0.39640355548171213, - 0.3969518172682867, - 0.39745117555067705, - 0.3979028679252927, - 0.39831974010224236, - 0.3987009043785601, - 0.3990421239071712, - 0.39933104891011584, - 0.3995600385287601, - 0.3997223124973209, - 0.3998320381230018, - 0.3999020131940758, - 0.3999422382828337, - 0.3999658835913331, - 0.3999817114590693, - 0.39999338843673266, - 0.39999836275343365, - 0.3999987920858129, - 0.4000000610998933, - 0.40000099021194013, - 0.3999995284182771, - 0.39999884462744745, - 0.3999988749171032, - 0.39999377823600457, - 0.3999827031135402, - 0.39996843089349565, - 0.39994708141599306, - 0.39990954796326234, - 0.3998441514316594, - 0.39974066880777337, - 0.3995847596155587, - 0.39936240631050657, - 0.39908294122615084, - 0.3987520705402826, - 0.3983795807082439, - 0.3979671696320562, - 0.3975179906543821, - 0.3970251852029529, - 0.396488375344724, - 0.3958888223530197, - 0.3952127805982676, - 0.39443584695046197, - 0.3935396399565496, - 0.3925297658695064, - 0.3914156965903248, - 0.3902116679654676, - 0.38893665758992124, - 0.38763084537319065, - 0.3863176385142378, - 0.38506710610588374, - 0.38390454402653307, - 0.38284247175345587, - 0.38185100188595716, - 0.38091361767776666, - 0.38001027894945283, - 0.3791448045612632, - 0.37829126979226013, - 0.3774364879136963, - 0.3765803030888833, - 0.375720953090891, - 0.3749178249190803, - 0.3742291955555547, - 0.37370814459649715, - 0.3733671066423486, - 0.3732365199428526, - 0.3733061845944545, - 0.37361096079708866, - 0.3741216773411531, - 0.3748018724107235, - 0.3755816974294828, - 0.37640495915019134, - 0.37724169611068215, - 0.3780946808727151, - 0.3789581753044554, - 0.3798276839293431, - 0.3807180230586862, - 0.3816231818315242, - 0.3825925254218996, - 0.38365401177441205, - 0.3848225213587522, - 0.3860676988129094, - 0.38736564379057525, - 0.3886649575781712, - 0.3899480836276167, - 0.3911747421462554, - 0.39231572053136327, - 0.3933481080620862, - 0.39425465305085106, - 0.3950450736495997, - 0.39574143339084455, - 0.396362386664725, - 0.39691389451831705, - 0.3974157649647909, - 0.3978699259885784, - 0.3982892038870415, - 0.39867529079797676, - 0.39902243587384434, - 0.3993150686341553, - 0.399545859592759, - 0.3997124403675941, - 0.39982663283043146, - 0.39989778327979797, - 0.39993891840172924, - 0.3999652863203745, - 0.3999819573333857, - 0.3999922633591487, - 0.39999767994874175, - 0.3999997816710297, - 0.40000024258315464, - 0.39999986324041964, - 0.39999969365898863, - 0.399999781344013, - 0.3999983693489697, - 0.39999331254182957, - 0.3999841650374032, - 0.3999700090654538, - 0.39994848101795727, - 0.39991323117202143, - 0.3998507547869959, - 0.3997486226404035, - 0.39959565021061505, - 0.3993787518691433, - 0.39910441850172623, - 0.3987771299999775, - 0.3984084656492843, - 0.3979987936073304, - 0.3975503373166449, - 0.3970617586661804, - 0.39653211243506725, - 0.39593872593663565 + 0.0, + -2.1756330070843433e-10, + -2.2100418084480822e-7, + -1.9337930595719754e-6, + -7.15719755761679e-6, + -1.699414945055544e-5, + -3.247813817780498e-5, + -5.6334064594598665e-5, + -9.419166568847004e-5, + -0.00016076500953404738, + -0.0002686253037882391, + -0.0004282118707137905, + -0.0006525549443970324, + -0.0009368889659372437, + -0.0012744057695924793, + -0.0016503930373732434, + -0.0020637032900517327, + -0.0025151633586754096, + -0.0030123434648202108, + -0.0035536535429615546, + -0.004160148042896439, + -0.004842799352402949, + -0.005623387524363699, + -0.00652271959539108, + -0.007542186519394256, + -0.008666306415492708, + -0.009875820688804826, + -0.011152180565294934, + -0.012456721317893937, + -0.01376587157036857, + -0.01501536011680027, + -0.016182016342206007, + -0.017242672092570854, + -0.018222713924354927, + -0.01914856284802463, + -0.020052576126791788, + -0.020921651186696755, + -0.021775791318498605, + -0.0226270729420171, + -0.023476916171420614, + -0.02432516717399741, + -0.025122436113650726, + -0.025810602521772696, + -0.026327135099245003, + -0.026652523706377884, + -0.02676092378438716, + -0.026673106123183576, + -0.026359043855387565, + -0.025846753184019633, + -0.025161775335375725, + -0.02437012266675137, + -0.023533429235594094, + -0.02269368008817596, + -0.021842732756544192, + -0.020981542811969844, + -0.02011148973505439, + -0.01921552247554592, + -0.018298845999811186, + -0.017323645042940483, + -0.01626564478768594, + -0.01509851085647218, + -0.013847603369780026, + -0.012543041896780571, + -0.011244067892000054, + -0.009964543537563875, + -0.008744894422716143, + -0.007612985439847342, + -0.0065878756541087324, + -0.0056830968442680985, + -0.004897413547013951, + -0.004210043583633083, + -0.003596444518287889, + -0.0030481827317133114, + -0.002548824449322973, + -0.0020971320747072975, + -0.0016802598977576633, + -0.0012990956214399274, + -0.0009578760928288244, + -0.0006689510898841844, + -0.0004399614712399247, + -0.000277687502679147, + -0.00016796187699824605, + -9.798680592421061e-5, + -5.776171716631584e-5, + -3.411640866690657e-5, + -1.8288540930722075e-5, + -6.611563267366893e-6, + -1.637246566377204e-6, + -1.2079141871179644e-6, + 6.109989325597809e-8, + 9.90211940110619e-7, + -4.7158172294947676e-7, + -1.155372552574807e-6, + -1.125082896846763e-6, + -6.221763995450935e-6, + -1.7296886459849947e-5, + -3.156910650436995e-5, + -5.291858400696681e-5, + -9.045203673768709e-5, + -0.00015584856834061078, + -0.0002593311922266528, + -0.0004152403844412955, + -0.0006375936894934542, + -0.0009170587738491776, + -0.0012479294597174118, + -0.0016204192917561033, + -0.0020328303679438275, + -0.0024820093456179304, + -0.002974814797047143, + -0.0035116246552760466, + -0.004111177646980324, + -0.004787219401732434, + -0.0055641530495380565, + -0.006460360043450408, + -0.007470234130493636, + -0.008584303409675198, + -0.009788332034532443, + -0.01106334241007878, + -0.012369154626809375, + -0.01368236148576224, + -0.014932893894116284, + -0.016095455973466954, + -0.01715752824654415, + -0.018148998114042858, + -0.019086382322233364, + -0.019989721050547193, + -0.020855195438736818, + -0.02170873020773989, + -0.02256351208630375, + -0.023419696911116727, + -0.024279046909109037, + -0.0250821750809197, + -0.02577080444444535, + -0.026291855403502873, + -0.0266328933576514, + -0.026763480057147404, + -0.026693815405545496, + -0.026389039202911357, + -0.02587832265884693, + -0.02519812758927653, + -0.024418302570517247, + -0.02359504084980868, + -0.022758303889317877, + -0.02190531912728494, + -0.02104182469554461, + -0.020172316070656948, + -0.01928197694131384, + -0.018376818168475806, + -0.017407474578100435, + -0.01634598822558797, + -0.015177478641247799, + -0.013932301187090601, + -0.012634356209424769, + -0.011335042421828811, + -0.01005191637238334, + -0.008825257853744606, + -0.007684279468636757, + -0.006651891937913823, + -0.005745346949148966, + -0.004954926350400346, + -0.0042585666091554675, + -0.003637613335275014, + -0.003086105481682977, + -0.0025842350352091037, + -0.0021300740114216232, + -0.0017107961129585458, + -0.0013247092020232665, + -0.0009775641261556833, + -0.0006849313658447431, + -0.00045414040724101046, + -0.0002875596324058982, + -0.00017336716956856124, + -0.00010221672020205297, + -6.108159827078463e-5, + -3.471367962554206e-5, + -1.8042666614315195e-5, + -7.736640851296883e-6, + -2.3200512582755017e-6, + -2.1832897034723686e-7, + 2.4258315461933577e-7, + -1.3675958038250613e-7, + -3.0634101139126457e-7, + -2.1865598703874056e-7, + -1.6306510303154553e-6, + -6.687458170451244e-6, + -1.583496259682793e-5, + -2.9990934546197945e-5, + -5.151898204275307e-5, + -8.676882797858942e-5, + -0.0001492452130041344, + -0.0002513773595965163, + -0.00040434978938497235, + -0.000621248130856733, + -0.0008955814982737897, + -0.0012228700000225246, + -0.0015915343507157398, + -0.0020012063926695967, + -0.002449662683355114, + -0.0029382413338196467, + -0.00346788756493277, + -0.004061274063364373 ], "datatype": "Float64", "type": "series" diff --git a/validation/oscillating_beam_2d/validation_reference_9.json b/validation/oscillating_beam_2d/validation_reference_9.json index 27d64c988..929b94beb 100644 --- a/validation/oscillating_beam_2d/validation_reference_9.json +++ b/validation/oscillating_beam_2d/validation_reference_9.json @@ -4,7 +4,7 @@ "solver_version": "c6184f4-dirty", "solver_name": "TrixiParticles.jl" }, - "mid_point_y_solid_1": { + "deflection_y_solid_1": { "n_values": 1001, "time": [ 0.0, @@ -1011,1012 +1011,1012 @@ ], "system_name": "solid", "values": [ - 0.01, - 0.00990000000509576, - 0.009598716780332335, - 0.009120875012238476, - 0.008525556087139008, - 0.0075870198207858, - 0.006194865293138953, - 0.004349345125559572, - 0.0020368414837839558, - -0.0006090912651748233, - -0.003561356329041525, - -0.006896326592064282, - -0.01056378440171105, - -0.014366309924391495, - -0.018242666143839265, - -0.022025908765049416, - -0.0257804099891023, - -0.02963397995354452, - -0.03354399583885791, - -0.03747120034038949, - -0.04145279506305573, - -0.045499474428649635, - -0.04972468274468592, - -0.05424750472493311, - -0.058885467339755374, - -0.06356900750970179, - -0.06818926647607539, - -0.07268045611921191, - -0.07707993886870672, - -0.08134924325232577, - -0.08528800576441274, - -0.08887067611626687, - -0.09210780294565608, - -0.095038890894997, - -0.09785356922202339, - -0.10050446794168155, - -0.10294366108244588, - -0.10520068314183542, - -0.10729836860390322, - -0.10927052968923083, - -0.11119954977230323, - -0.11290476246240039, - -0.11427960262081248, - -0.11528553089476556, - -0.1158529593090568, - -0.11609103518027038, - -0.11600518255763424, - -0.11549282080062871, - -0.11454311429610142, - -0.11321527992042962, - -0.11155815824214803, - -0.10979351074143331, - -0.10790421898371008, - -0.10583562084827075, - -0.10360941536229529, - -0.1011801374810048, - -0.09860164523825718, - -0.0959362746335227, - -0.09305943879194005, - -0.08984735488017478, - -0.08630206104088668, - -0.08236328146622887, - -0.0782089088752725, - -0.07391243687243125, - -0.06942619811100194, - -0.06478752459696983, - -0.06008688710364543, - -0.05541538258441259, - -0.050969291497549404, - -0.046762837052809196, - -0.042636994352999544, - -0.03861425956434256, - -0.03463177463211459, - -0.03072097245066487, - -0.026925641809701247, - -0.023149308328871663, - -0.019256431102829746, - -0.015345265248515478, - -0.011476786243251382, - -0.00780000828778654, - -0.004466204336282469, - -0.0013865974141626877, - 0.0014076595431873696, - 0.0037993717748830177, - 0.0057207725559476, - 0.007158865331696217, - 0.008137633396629873, - 0.008909693494679535, - 0.009491539498536256, - 0.009838258951233374, - 0.009981355122154372, - 0.00991125401758055, - 0.009685054360445491, - 0.009380170474170581, - 0.00886637452647606, - 0.0079536732438411, - 0.006643841688235364, - 0.004852241661885256, - 0.0026823455247848914, - 0.00018936470949852194, - -0.0027162471276134157, - -0.006049313597476328, - -0.009649867974345921, - -0.013416080979991333, - -0.01718649109210308, - -0.02089678704383296, - -0.024705794421393305, - -0.02856816678893326, - -0.032443891400851986, - -0.03632601510685425, - -0.040230578695751654, - -0.04424350119179409, - -0.04855288198915646, - -0.05305749786109926, - -0.05766538739818639, - -0.062324097390700224, - -0.0669137162131423, - -0.07147671809248175, - -0.07599069923260864, - -0.08028640423664737, - -0.08424107670440577, - -0.08785999467181375, - -0.09111371307403096, - -0.09419074860025953, - -0.09710415811190419, - -0.099775920946307, - -0.10224189728330609, - -0.10452239965585577, - -0.1066720197811933, - -0.10879644452890429, - -0.11080957236633794, - -0.11254098665096395, - -0.11398129124668205, - -0.11501640415648207, - -0.11571654571309532, - -0.11611668380726145, - -0.11611419676264081, - -0.11565553217245016, - -0.11476585339803101, - -0.11347147672516776, - -0.1119598967643281, - -0.11032186549848137, - -0.10846435259520457, - -0.10644468391914311, - -0.10421870733795663, - -0.10184077393765716, - -0.09939806479396429, - -0.09682506258090416, - -0.0939681893704046, - -0.09080560934688212, - -0.08725568047763257, - -0.08340209829080997, - -0.07938268810710306, - -0.07511960699952074, - -0.07063962909951478, - -0.06598692377423274, - -0.0612582452656782, - -0.056637498353225006, - -0.052258731786493866, - -0.047985013810995215, - -0.043821845831147, - -0.03973900710184165, - -0.03572739160815349, - -0.03187712216862, - -0.028093324161804115, - -0.024229492135202, - -0.020282528558262833, - -0.0163243860013382, - -0.012420924008752228, - -0.008784230826099474, - -0.005357903991347236, - -0.0021396388866570253, - 0.0007518998994200226, - 0.003223074473954689, - 0.005201188281509898, - 0.006661217845882009, - 0.00778871825626515, - 0.00870766099224805, - 0.009339259138219312, - 0.00974952026736696, - 0.009908881853015802, - 0.00989245914581763, - 0.009815371100606261, - 0.009632089834326667, - 0.009140507704265539, - 0.008301849033336148, - 0.00703841805937299, - 0.005358021477648473, - 0.0033683372356377523, - 0.0009519685723149777, - -0.0019340239545356894, - -0.005213062406229529, - -0.008762313553376363, - -0.012443434130476674, - -0.01609139909351414, - -0.01983227871684172, - -0.02366341457571404, - -0.027502248098068355, - -0.031343111818558554, - -0.035146681882760045, - -0.03899040370919372, - -0.04306270747359594, - -0.04738883114550445, - -0.051846268336048724, - -0.05643738107382051, - -0.06103012364509748, - -0.06565303320993866, - -0.07032376870379399, - -0.07488539588039583, - -0.07918451661436329, - -0.08317320660979297, - -0.08679576884475158, - -0.09015869847825023, - -0.09336996216710187, - -0.09631264233043814, - -0.09901867116068061, - -0.10149758053832006, - -0.10381169483874299, - -0.10609007505715286, - -0.10833000108230396, - -0.11036219470780013, - -0.112155211519349, - -0.1136194755331182, - -0.11474342744464049, - -0.1156180631460188, - -0.11611972227419395, - -0.11617962650736256, - -0.11578016854177639, - -0.1149276769220799, - -0.11374553111200775, - -0.11239575332378211, - -0.11080485445913783, - -0.10900528956169553, - -0.1069956621695975, - -0.1047905491676683, - -0.10253837779786497, - -0.10020796565350244, - -0.09766989479860018, - -0.09485651776935647, - -0.09170303298874578, - -0.08819549196680979, - -0.08449611457942045, - -0.08053810115255519, - -0.0763023659825911, - -0.0718233677829476, - -0.06714414181280001, - -0.06244924650642106, - -0.05792036890254661, - -0.0535154048830566, - -0.049194763339576085, - -0.044987976450555175, - -0.04084040670700258, - -0.03688403246286254, - -0.0330671596267089, - -0.029227507331532874, - -0.025297116804959136, - -0.02131052561461157, - -0.017302127007068503, - -0.013449773570929182, - -0.009777393916507792, - -0.006216961479606769, - -0.0029050278839044125, - 8.022610298206793e-5, - 0.0026097952721350092, - 0.004606910746325181, - 0.006169291485409618, - 0.007473872369390442, - 0.008460208259411508, - 0.009169127705237406, - 0.009602760096672418, - 0.009786822704919077, - 0.009901567012838777, - 0.009961029812572682, - 0.009822026151168681, - 0.009384512388791903, - 0.008598811022782059, - 0.00739852125256891, - 0.005910668610697942, - 0.004028766598757717, - 0.0016529296525323119, - -0.001184300923748326, - -0.004407613112754888, - -0.00788195774303957, - -0.011420415418619632, - -0.015045694918086095, - -0.01882300195827447, - -0.02262707128399744, - -0.026455032904147833, - -0.030214954132452156, - -0.033939856277923425, - -0.037807085680429925, - -0.0419245689165019, - -0.04620333931482644, - -0.050642786510230756, - -0.05516059624760778, - -0.059730848160057644, - -0.0644508953207509, - -0.0691730388428178, - -0.07374577541043316, - -0.07806182252445115, - -0.08205198769556808, - -0.08573618578735258, - -0.08925565919311514, - -0.09251221234430514, - -0.09549174523653742, - -0.09821843156928817, - -0.10070651952337431, - -0.10312626746570223, - -0.10553238765307564, - -0.10781179718674745, - -0.10988464967648068, - -0.11171170503669149, - -0.11321784140865009, - -0.11451467828337852, - -0.11550480718797895, - -0.11607883377339025, - -0.11620374579592739, - -0.11583951853155194, - -0.11507284086747241, - -0.1140616515640764, - -0.11279725243398099, - -0.11125788785735259, - -0.10949856754326003, - -0.10748278242950457, - -0.10538849394370202, - -0.10325586615142723, - -0.10098436389599753, - -0.09848798665468651, - -0.0956933101952322, - -0.09255380345056431, - -0.08918864783395267, - -0.0855904496955354, - -0.0816662916772691, - -0.07746415131158677, - -0.07295502979808544, - -0.06830176013216571, - -0.06370071479938563, - -0.05919847643102073, - -0.05474850250343657, - -0.050400094264142575, - -0.04611277370772373, - -0.04199284262711722, - -0.03809531881405239, - -0.03424077328053848, - -0.030345877972646873, - -0.02636618346597365, - -0.022328814816656464, - -0.01835220139497868, - -0.014525361172776806, - -0.010736022501411577, - -0.007088751176200681, - -0.003678608370587935, - -0.0006239613085418777, - 0.0019177626771442878, - 0.003985236211993985, - 0.005718129405901778, - 0.007125956909635872, - 0.008189640407288316, - 0.008953832265026504, - 0.00938184749631737, - 0.009679048160168947, - 0.009934742329666152, - 0.010066170852829081, - 0.009971566686725677, - 0.009587587874577409, - 0.008836855433116344, - 0.00780295278037058, - 0.006462834098685713, - 0.004632270822596594, - 0.0023188797042718867, - -0.0004727514777571354, - -0.003620847837936334, - -0.006951882368418429, - -0.010408089451213774, - -0.014067219271925445, - -0.01781863190844931, - -0.021618529772388328, - -0.02538471486809803, - -0.02904325578171386, - -0.03276494079705346, - -0.036678401836961944, - -0.04077360472448696, - -0.045021827686316185, - -0.049401417671247956, - -0.05384401392664287, - -0.05848870103302884, - -0.06326265426291694, - -0.06799973558983392, - -0.0725814465974657, - -0.07688918992925155, - -0.0809059523742098, - -0.0847338391501076, - -0.08833508994438027, - -0.09162121416897467, - -0.09463965735689737, - -0.09735433238321328, - -0.09992763625557816, - -0.10247686577551156, - -0.10494651388462714, - -0.10725476768793873, - -0.10936657829635622, - -0.11120684384954761, - -0.11285392891194829, - -0.11429352590614243, - -0.11535539895902656, - -0.11600627797919587, - -0.11616186421565007, - -0.1158680748283833, - -0.11525830526322059, - -0.1143721446123763, - -0.11316230742023145, - -0.11168617417007899, - -0.10991453912122318, - -0.10797917723841169, - -0.10602068665841734, - -0.1039583051842346, - -0.10173829956592645, - -0.09926312564878766, - -0.0964736965140838, - -0.09343768001958493, - -0.09020959182559062, - -0.08665571312999645, - -0.08278844012649453, - -0.07856578275012799, - -0.07406839205018412, - -0.06951155403640459, - -0.06497147234136977, - -0.06045064870618512, - -0.05597817285978229, - -0.05155992073389257, - -0.04725386116718869, - -0.04321517146094083, - -0.039298312704618955, - -0.035402991194024694, - -0.0314510387913845, - -0.027416760533332828, - -0.023390777847849042, - -0.01947093552830646, - -0.015570400469522853, - -0.011691916825314582, - -0.007962029398679295, - -0.0044579306543020445, - -0.0014034155655434674, - 0.0011842446123752723, - 0.0033946209875529683, - 0.005265079527989661, - 0.0067530182003360684, - 0.00789923382862267, - 0.008654565731886657, - 0.009159346642838934, - 0.009605176609036838, - 0.00994755095515291, - 0.010138150400880456, - 0.010084368238316314, - 0.009725559722169133, - 0.009093052336595561, - 0.008239646875238494, - 0.0069619183667881555, - 0.005205439675326147, - 0.0029376893097575003, - 0.00020700554343234138, - -0.002799507004671748, - -0.006007042166076634, - -0.009460814142837773, - -0.013109914276729837, - -0.01684373020653816, - -0.020614734018916215, - -0.024259221806278656, - -0.027891093292647013, - -0.031646728801111454, - -0.03556259235293241, - -0.03962846979604252, - -0.04382866859276572, - -0.048105503505981764, - -0.052573209056379556, - -0.05728566938852463, - -0.06206392757424871, - -0.06681618472019285, - -0.0713731430562555, - -0.07568310187703031, - -0.07980697030050325, - -0.08374894057504663, - -0.0873808802212675, - -0.09071544431569775, - -0.09372048932711555, - -0.09648413226419435, - -0.0991925314108934, - -0.10181851122460003, - -0.10432623440751518, - -0.10666528186822742, - -0.10878296652766341, - -0.1107134086776956, - -0.11252326766882645, - -0.11403687720326501, - -0.1151817404313312, - -0.11586925957201494, - -0.11607078331009245, - -0.11592035397189825, - -0.1154566313064785, - -0.11464642217182527, - -0.1135041114416203, - -0.11203763569236742, - -0.11030460291359255, - -0.10851535890880268, - -0.10663835230130156, - -0.10464186907932924, - -0.10245035339678, - -0.09997106698977863, - -0.09725293774187466, - -0.09436196745240368, - -0.09120294801239126, - -0.08770992047898062, - -0.08385588012758624, - -0.07961751810108396, - -0.0752175866904953, - -0.07074464779150132, - -0.06622533724426842, - -0.06168991274017625, - -0.05716532864288356, - -0.052698704796399834, - -0.04846779024085524, - -0.04444211124136884, - -0.04048870631520615, - -0.036552182641964706, - -0.032525907375631165, - -0.0284897286646938, - -0.024525725231562105, - -0.020586960558205584, - -0.016597165547943295, - -0.012655684776948804, - -0.008820244722589195, - -0.00530767442529818, - -0.0022405665881991685, - 0.0004623336817325673, - 0.002813195008115951, - 0.004786534205469504, - 0.006366785157754755, - 0.0075265490742896755, - 0.008314219354261953, - 0.008973156101280333, - 0.00951523912849459, - 0.00993468828605093, - 0.010167705983786968, - 0.01012837141904994, - 0.00984550966500239, - 0.009391918852756437, - 0.008632840344064509, - 0.007424638173688787, - 0.005730949406306819, - 0.003498750873826151, - 0.0009086037060825512, - -0.001953919207402524, - -0.005111150207755924, - -0.008556840863220451, - -0.012177022268364545, - -0.015903291274528567, - -0.019555717901015308, - -0.023132273210085166, - -0.02679153343117845, - -0.03055471694393443, - -0.03445921749254441, - -0.038479952315100506, - -0.04257931024603125, - -0.046823393671965086, - -0.05136079428039122, - -0.05607237239208719, - -0.06086835972264101, - -0.06559004112361436, - -0.07011563091225208, - -0.07450074220465909, - -0.07874322826440054, - -0.08273353297440174, - -0.08640890344974107, - -0.0897499082322298, - -0.0927605252054191, - -0.09565718663382455, - -0.09845484224502411, - -0.10113349379444693, - -0.10366860512869666, - -0.10600877715484962, - -0.10817800407078432, - -0.11026337691407777, - -0.11216557566646843, - -0.11375389689913051, - -0.11495573947453308, - -0.11565988488052695, - -0.11599018353105149, - -0.11599072422166415, - -0.11563047961964937, - -0.1148919841677468, - -0.11378405118347819, - -0.1123311561929654, - -0.11073276401666497, - -0.10904970665909992, - -0.10724118610945493, - -0.10529650082592815, - -0.10308943186194477, - -0.1006601209181833, - -0.09807073472873579, - -0.09528079649547203, - -0.09218172272718442, - -0.08873325525292708, - -0.08485161107951864, - -0.08069497449582848, - -0.0764002628804804, - -0.07197415965003057, - -0.06747108247002966, - -0.06289453423437574, - -0.058315797780030834, - -0.053895173767615864, - -0.049717626908965924, - -0.04565692006216931, - -0.04168244003940532, - -0.0376608815965094, - -0.033610773517656366, - -0.029631615775391636, - -0.025685318339404076, - -0.02168291847005077, - -0.017632745047570297, - -0.01359654102873562, - -0.009724211901139646, - -0.00623767510539141, - -0.003077084700876565, - -0.00025117779204852534, - 0.002222143841664529, - 0.004297397974670214, - 0.005918345087503594, - 0.007084058486452115, - 0.00800509235855709, - 0.008784209877659037, - 0.009408713711399863, - 0.009894366004155747, - 0.010125539315769665, - 0.01013964665297557, - 0.010005957712071618, - 0.009679918993527138, - 0.008986803585857775, - 0.00785781660023666, - 0.006183919660033518, - 0.004069046139917442, - 0.0016448991312943743, - -0.001132620095569088, - -0.0042585937541761215, - -0.007678430046853225, - -0.011286220251999664, - -0.014922473231210896, - -0.018462988125578075, - -0.022053884586635184, - -0.025716284779237285, - -0.02948665812611111, - -0.03335988683600126, - -0.03728207535056098, - -0.04131129467845686, - -0.04560231015092775, - -0.050153339388265154, - -0.05486669629768532, - -0.059648166209026035, - -0.0643026941681358, - -0.06887055267124975, - -0.07335739741004968, - -0.07767119452389251, - -0.08170155317205435, - -0.08539574849455543, - -0.08872012475461895, - -0.09183914549192577, - -0.09484680220799943, - -0.09770038541681052, - -0.10042441318132933, - -0.10295062506571472, - -0.10531615382636583, - -0.1076115056774952, - -0.10981515110619772, - -0.1117818956004674, - -0.11344007724303752, - -0.11464790266984015, - -0.11544978021065133, - -0.11593485788015896, - -0.11605215267123195, - -0.11578309731351062, - -0.11508933877480529, - -0.11399233431616415, - -0.1126434983847923, - -0.1111809403647398, - -0.10956743342107428, - -0.10783381090028103, - -0.10587742552376257, - -0.10369380756761994, - -0.10137540788567881, - -0.098900598223088, - -0.09618440115361479, - -0.09314101460764963, - -0.08967757717391657, - -0.08584201824084403, - -0.08181136030072733, - -0.07757975260848927, - -0.07320483866298264, - -0.06867843186151892, - -0.06404954355929852, - -0.05948996738894092, - -0.05514198983945185, - -0.050953447582872145, - -0.04687761088665062, - -0.042831632118628456, - -0.03874937535445945, - -0.03475356622182196, - -0.030806455785345535, - -0.026833201022843974, - -0.022771843653422958, - -0.018643507438798407, - -0.014544103613646135, - -0.010714574802701217, - -0.007176034683411909, - -0.003907410719349495, - -0.0009630059531357805, - 0.0016332516679745859, - 0.003762828982492431, - 0.005390744158987948, - 0.006649353730664833, - 0.007712291022905681, - 0.00857666288162401, - 0.009296506186158928, - 0.009779801259578648, - 0.01003581746800573, - 0.010171397521294789, - 0.010176883220028403, - 0.00993110607272463, - 0.009315657702663478, - 0.008214374342903633, - 0.006613406819716747, - 0.004679092523190954, - 0.002362110980384998, - -0.0003486422713368084, - -0.003447078861774855, - -0.006849317870113628, - -0.010390820087613523, - -0.013891874196115817, - -0.017411473911316127, - -0.021008560994910077, - -0.02467391086768647, - -0.028444454248869846, - -0.032222036708078126, - -0.0360574369613888, - -0.04009178580208723, - -0.044412770802064454, - -0.04895369855854519, - -0.05366643296992802, - -0.058362105411144595, - -0.06301285590008032, - -0.06766653344163441, - -0.07222455786327028, - -0.07658943571693223, - -0.08063942722209706, - -0.08431555404436678, - -0.08770144359905097, - -0.09095235241464117, - -0.09401994446049293, - -0.09693682902378362, - -0.09965326154237433, - -0.10218214576109715, - -0.10464595946173044, - -0.10706342970089956, - -0.10933946295358501, - -0.11137478495286823, - -0.1130472676313888, - -0.11430493653834627, - -0.11526642550762368, - -0.11587138687414353, - -0.11609854890922855, - -0.11588627725853456, - -0.1152100214475324, - -0.11418759828236531, - -0.11298215093987228, - -0.11160910114501675, - -0.11007976134460103, - -0.10836018370350545, - -0.10639448733750234, - -0.10431292372350041, - -0.10210335840032005, - -0.09972145363283756, - -0.09706805601240931, - -0.09403095665408331, - -0.0905802435148532, - -0.08686914026356776, - -0.08292618202030387, - -0.07876467751043288, - -0.0744049872064585, - -0.06982423706072417, - -0.0652070407649915, - -0.06071377734961524, - -0.05639203229486822, - -0.05219176396611372, - -0.04807231350421648, - -0.04393485069194269, - -0.03988779626270897, - -0.03593815077496781, - -0.03198743602537618, - -0.027975538671256996, - -0.02383977396546826, - -0.019643412658590053, - -0.01557141126783298, - -0.011742273974271314, - -0.008108986511232989, - -0.004746200164006955, - -0.0016608627920292362, - 0.001005890765771269, - 0.003145738600292489, - 0.0048356676760933056, - 0.006234599552534393, - 0.007400060771231877, - 0.008369898061076913, - 0.009119312154037728, - 0.009594346852542268, - 0.00995304905064691, - 0.010215467940660338, - 0.01032533489874252, - 0.010154587384035595, - 0.009577390722907447, - 0.008513312693109808, - 0.0070823989182157215, - 0.00528178622813799, - 0.003050770594423193, - 0.00039526842145554646, - -0.0026919720318170155, - -0.006035603329030596, - -0.009444939018414715, - -0.012874120738082008, - -0.016399170506229018, - -0.019987098741796064, - -0.02367626902181299, - -0.027367612663063423, - -0.031043889590583514, - -0.034855846106752617, - -0.03891244031229204, - -0.04323211051651107, - -0.04777123071747395, - -0.05240655623753994, - -0.05704237917216881, - -0.06176201860949449, - -0.06647354302710211, - -0.07109330320939787, - -0.07548003210046338, - -0.07951094660367342, - -0.08321247064138258, - -0.08672521303553592, - -0.09005420820715684, - -0.09318903423710619, - -0.09612228506925691, - -0.09881364111117702, - -0.1014209460749505, - -0.10399730330826555, - -0.10650333694563438, - -0.10884253955360966, - -0.11090382619149931, - -0.11259126419515218, - -0.11399044991327283, - -0.11508102269955851, - -0.11580117586691314, - -0.11611036698129072, - -0.11591217255281853, - -0.11529730752397976, - -0.114408423722252, - -0.11331941387715248, - -0.112032276389598, - -0.11055188445860258, - -0.10880610252233393, - -0.10691978094677232, - -0.10494518706342319, - -0.1028369208485534, - -0.10053495386270091, - -0.0978954548298006, - -0.09486140592171916, - -0.09151015227562823, - -0.08791183118190027, - -0.08404482780444571, - -0.07994432842717042, - -0.07553551973941032, - -0.070957294110648, - -0.06640182760709283, - -0.06196144610365778, - -0.05764665330655428, - -0.05341964231525313, - -0.049208004510991436, - -0.04506558599704013, - -0.0410786036153278, - -0.037132222295390774, - -0.033176262856051714, - -0.02908927965848404, - -0.024883237712210165, - -0.020693956035067074, - -0.016659181657536475, - -0.012763523367169885, - -0.009053512514506465, - -0.005559108098266782, - -0.0023721760005490497, - 0.00030152234150816943, - 0.002489405650510641, - 0.004292107188384204, - 0.005816938823197188, - 0.007092642394893765, - 0.008131113667587044, - 0.008854686553812477, - 0.009407849957529246, - 0.009883678250044613, - 0.010256535240276882, - 0.010458077836501125, - 0.010325298024424945, - 0.009769379720215349, - 0.008833247964618856, - 0.007565382832531308, - 0.005859631065608996, - 0.003718093183474711, - 0.0010714356735214894, - -0.001964409915722163, - -0.005184148187593981, - -0.008486808725459738, - -0.011895111094046848, - -0.0154071616289345, - -0.019020292419637767, - -0.02267022778679988, - -0.026240442344885012, - -0.029878576925871415, - -0.03368948638897835, - -0.03775912495672156, - -0.04207533361795416, - -0.04655671904551609, - -0.051094963328562205, - -0.055760345480864774, - -0.06053004296350948, - -0.06529662436070194, - -0.06995566349609598, - -0.0743104389130836, - -0.07834775821963136, - -0.0821458030544696, - -0.08575904573803096, - -0.08915413044374636, - -0.0923357785783209, - -0.09523097221674294, - -0.09797159210001229, - -0.1006843830761446, - -0.10335217697805815, - -0.10593149319899936, - -0.10829721193825366, - -0.11036082996108262, - -0.11214750668476992, - -0.11368915850432107, - -0.11488850454291354, - -0.1157177488057579, - -0.11604390860065611, - -0.11589240800931616, - -0.1153966330262159, - -0.11463682946665532, - -0.11365021060334422, - -0.11243287343176721, - -0.11093735877364252, - -0.10923406962632014, - -0.10746088437869628, - -0.10557835763391912, - -0.10357376272746893, - -0.10129539503116881, - -0.09865445620676754, - -0.0956887725302643, - -0.09245946227749137, - -0.08895135955506653, - -0.08516980111324991, - -0.08105199694891473, - -0.0766268724228843, - -0.07211429228861166, - -0.06761506173252906, - -0.06321769972643637, - -0.05889219398459339, - -0.05458834409111546, - -0.05033264377515836, - -0.046250610393929574, - -0.042277839525693924, - -0.038343234946927394, - -0.03433544340856156, - -0.03016458518421576, - -0.025953638745379638, - -0.0218057837212888, - -0.01775279575744693, - -0.013793185247857147, - -0.009979038241475028, - -0.006355956351756888, - -0.003159547603906818, - -0.00045140443038940747, - 0.0018260975435088881, - 0.0037519283849972813, - 0.00540187118927042, - 0.006771907106233313, - 0.007801236214068674, - 0.008562106412589941, - 0.009231481574554798, - 0.009807663438772733, - 0.010295455448836161, - 0.010537059669869382, - 0.01041889974777223, - 0.00994943445351582, - 0.009177816491016436, - 0.00802041312678988, - 0.006423486359378787, - 0.004313429996777155 + 0.0, + -9.999999490424051e-5, + -0.0004012832196676648, + -0.0008791249877615238, + -0.0014744439128609923, + -0.0024129801792142002, + -0.003805134706861047, + -0.005650654874440428, + -0.007963158516216044, + -0.010609091265174824, + -0.013561356329041525, + -0.016896326592064283, + -0.020563784401711048, + -0.024366309924391497, + -0.028242666143839266, + -0.03202590876504942, + -0.0357804099891023, + -0.03963397995354452, + -0.04354399583885791, + -0.04747120034038949, + -0.05145279506305573, + -0.05549947442864964, + -0.059724682744685925, + -0.06424750472493311, + -0.06888546733975537, + -0.07356900750970179, + -0.07818926647607538, + -0.0826804561192119, + -0.08707993886870671, + -0.09134924325232577, + -0.09528800576441274, + -0.09887067611626686, + -0.10210780294565608, + -0.10503889089499699, + -0.10785356922202338, + -0.11050446794168155, + -0.11294366108244587, + -0.11520068314183542, + -0.11729836860390322, + -0.11927052968923083, + -0.12119954977230323, + -0.12290476246240038, + -0.12427960262081247, + -0.12528553089476557, + -0.1258529593090568, + -0.12609103518027037, + -0.12600518255763424, + -0.1254928208006287, + -0.12454311429610142, + -0.12321527992042962, + -0.12155815824214802, + -0.11979351074143331, + -0.11790421898371008, + -0.11583562084827075, + -0.11360941536229528, + -0.11118013748100479, + -0.10860164523825717, + -0.10593627463352269, + -0.10305943879194004, + -0.09984735488017478, + -0.09630206104088668, + -0.09236328146622887, + -0.0882089088752725, + -0.08391243687243125, + -0.07942619811100193, + -0.07478752459696983, + -0.07008688710364543, + -0.06541538258441258, + -0.060969291497549406, + -0.0567628370528092, + -0.052636994352999546, + -0.04861425956434256, + -0.04463177463211459, + -0.04072097245066487, + -0.036925641809701246, + -0.03314930832887166, + -0.029256431102829744, + -0.025345265248515478, + -0.021476786243251382, + -0.01780000828778654, + -0.01446620433628247, + -0.011386597414162689, + -0.00859234045681263, + -0.006200628225116982, + -0.0042792274440524, + -0.0028411346683037833, + -0.0018623666033701271, + -0.0010903065053204652, + -0.0005084605014637443, + -0.00016174104876662612, + -1.864487784562774e-5, + -8.87459824194508e-5, + -0.0003149456395545088, + -0.0006198295258294188, + -0.0011336254735239398, + -0.0020463267561589005, + -0.0033561583117646364, + -0.005147758338114744, + -0.007317654475215108, + -0.009810635290501479, + -0.012716247127613416, + -0.016049313597476328, + -0.01964986797434592, + -0.023416080979991333, + -0.027186491092103082, + -0.03089678704383296, + -0.03470579442139331, + -0.03856816678893326, + -0.04244389140085199, + -0.04632601510685425, + -0.050230578695751656, + -0.054243501191794094, + -0.05855288198915646, + -0.06305749786109927, + -0.0676653873981864, + -0.07232409739070023, + -0.07691371621314229, + -0.08147671809248175, + -0.08599069923260863, + -0.09028640423664737, + -0.09424107670440576, + -0.09785999467181375, + -0.10111371307403096, + -0.10419074860025952, + -0.10710415811190419, + -0.10977592094630699, + -0.11224189728330608, + -0.11452239965585577, + -0.11667201978119329, + -0.11879644452890428, + -0.12080957236633794, + -0.12254098665096394, + -0.12398129124668204, + -0.12501640415648207, + -0.12571654571309532, + -0.12611668380726146, + -0.12611419676264082, + -0.12565553217245015, + -0.124765853398031, + -0.12347147672516776, + -0.1219598967643281, + -0.12032186549848137, + -0.11846435259520456, + -0.1164446839191431, + -0.11421870733795662, + -0.11184077393765715, + -0.10939806479396429, + -0.10682506258090416, + -0.1039681893704046, + -0.10080560934688211, + -0.09725568047763257, + -0.09340209829080996, + -0.08938268810710305, + -0.08511960699952073, + -0.08063962909951478, + -0.07598692377423273, + -0.0712582452656782, + -0.06663749835322501, + -0.06225873178649387, + -0.05798501381099522, + -0.053821845831147, + -0.049739007101841655, + -0.04572739160815349, + -0.04187712216862, + -0.03809332416180412, + -0.034229492135202, + -0.030282528558262835, + -0.0263243860013382, + -0.02242092400875223, + -0.018784230826099473, + -0.015357903991347236, + -0.012139638886657025, + -0.009248100100579977, + -0.006776925526045311, + -0.0047988117184901025, + -0.003338782154117991, + -0.0022112817437348505, + -0.0012923390077519501, + -0.0006607408617806884, + -0.00025047973263304067, + -9.111814698419853e-5, + -0.00010754085418237039, + -0.00018462889939373922, + -0.0003679101656733335, + -0.0008594922957344611, + -0.001698150966663852, + -0.00296158194062701, + -0.004641978522351527, + -0.006631662764362248, + -0.009048031427685023, + -0.01193402395453569, + -0.015213062406229529, + -0.01876231355337636, + -0.022443434130476676, + -0.026091399093514142, + -0.02983227871684172, + -0.03366341457571404, + -0.037502248098068354, + -0.041343111818558556, + -0.04514668188276005, + -0.04899040370919372, + -0.05306270747359594, + -0.05738883114550445, + -0.061846268336048726, + -0.06643738107382051, + -0.07103012364509748, + -0.07565303320993866, + -0.08032376870379399, + -0.08488539588039583, + -0.08918451661436329, + -0.09317320660979296, + -0.09679576884475158, + -0.10015869847825022, + -0.10336996216710187, + -0.10631264233043813, + -0.1090186711606806, + -0.11149758053832005, + -0.11381169483874298, + -0.11609007505715285, + -0.11833000108230396, + -0.12036219470780013, + -0.122155211519349, + -0.1236194755331182, + -0.12474342744464048, + -0.1256180631460188, + -0.12611972227419396, + -0.12617962650736256, + -0.1257801685417764, + -0.1249276769220799, + -0.12374553111200774, + -0.12239575332378211, + -0.12080485445913783, + -0.11900528956169552, + -0.11699566216959749, + -0.1147905491676683, + -0.11253837779786496, + -0.11020796565350244, + -0.10766989479860017, + -0.10485651776935646, + -0.10170303298874578, + -0.09819549196680978, + -0.09449611457942045, + -0.09053810115255519, + -0.0863023659825911, + -0.08182336778294759, + -0.07714414181280001, + -0.07244924650642105, + -0.0679203689025466, + -0.0635154048830566, + -0.05919476333957609, + -0.05498797645055518, + -0.05084040670700258, + -0.04688403246286254, + -0.0430671596267089, + -0.03922750733153287, + -0.03529711680495914, + -0.03131052561461157, + -0.0273021270070685, + -0.023449773570929183, + -0.01977739391650779, + -0.01621696147960677, + -0.012905027883904413, + -0.009919773897017932, + -0.007390204727864991, + -0.005393089253674819, + -0.003830708514590382, + -0.002526127630609558, + -0.001539791740588492, + -0.0008308722947625944, + -0.00039723990332758176, + -0.0002131772950809234, + -9.843298716122328e-5, + -3.897018742731774e-5, + -0.00017797384883131914, + -0.0006154876112080977, + -0.0014011889772179414, + -0.00260147874743109, + -0.004089331389302058, + -0.005971233401242284, + -0.008347070347467688, + -0.011184300923748326, + -0.014407613112754888, + -0.01788195774303957, + -0.02142041541861963, + -0.025045694918086094, + -0.028823001958274468, + -0.03262707128399744, + -0.03645503290414783, + -0.04021495413245216, + -0.04393985627792343, + -0.04780708568042993, + -0.0519245689165019, + -0.05620333931482644, + -0.06064278651023076, + -0.06516059624760778, + -0.06973084816005765, + -0.0744508953207509, + -0.07917303884281779, + -0.08374577541043315, + -0.08806182252445115, + -0.09205198769556808, + -0.09573618578735257, + -0.09925565919311513, + -0.10251221234430513, + -0.10549174523653741, + -0.10821843156928816, + -0.1107065195233743, + -0.11312626746570223, + -0.11553238765307564, + -0.11781179718674745, + -0.11988464967648067, + -0.12171170503669149, + -0.12321784140865008, + -0.12451467828337852, + -0.12550480718797896, + -0.12607883377339024, + -0.12620374579592739, + -0.12583951853155195, + -0.12507284086747242, + -0.12406165156407639, + -0.12279725243398099, + -0.12125788785735259, + -0.11949856754326002, + -0.11748278242950456, + -0.11538849394370201, + -0.11325586615142723, + -0.11098436389599753, + -0.10848798665468651, + -0.10569331019523219, + -0.10255380345056431, + -0.09918864783395266, + -0.0955904496955354, + -0.0916662916772691, + -0.08746415131158676, + -0.08295502979808543, + -0.07830176013216571, + -0.07370071479938563, + -0.06919847643102073, + -0.06474850250343657, + -0.06040009426414258, + -0.05611277370772373, + -0.051992842627117224, + -0.04809531881405239, + -0.044240773280538485, + -0.040345877972646875, + -0.03636618346597365, + -0.03232881481665646, + -0.028352201394978682, + -0.024525361172776806, + -0.02073602250141158, + -0.017088751176200682, + -0.013678608370587935, + -0.010623961308541877, + -0.008082237322855712, + -0.006014763788006015, + -0.004281870594098222, + -0.0028740430903641282, + -0.0018103595927116845, + -0.0010461677349734959, + -0.0006181525036826306, + -0.00032095183983105353, + -6.525767033384831e-5, + 6.617085282908074e-5, + -2.8433313274322733e-5, + -0.0004124121254225916, + -0.001163144566883656, + -0.0021970472196294203, + -0.003537165901314287, + -0.005367729177403406, + -0.0076811202957281135, + -0.010472751477757135, + -0.013620847837936333, + -0.01695188236841843, + -0.020408089451213772, + -0.024067219271925445, + -0.027818631908449312, + -0.031618529772388326, + -0.03538471486809803, + -0.03904325578171386, + -0.04276494079705346, + -0.046678401836961946, + -0.05077360472448696, + -0.05502182768631619, + -0.05940141767124796, + -0.06384401392664286, + -0.06848870103302884, + -0.07326265426291693, + -0.07799973558983392, + -0.08258144659746569, + -0.08688918992925154, + -0.0909059523742098, + -0.0947338391501076, + -0.09833508994438027, + -0.10162121416897467, + -0.10463965735689737, + -0.10735433238321328, + -0.10992763625557815, + -0.11247686577551155, + -0.11494651388462714, + -0.11725476768793873, + -0.11936657829635622, + -0.12120684384954761, + -0.12285392891194828, + -0.12429352590614243, + -0.12535539895902656, + -0.12600627797919586, + -0.12616186421565007, + -0.1258680748283833, + -0.1252583052632206, + -0.12437214461237629, + -0.12316230742023145, + -0.12168617417007899, + -0.11991453912122317, + -0.11797917723841168, + -0.11602068665841733, + -0.1139583051842346, + -0.11173829956592644, + -0.10926312564878765, + -0.1064736965140838, + -0.10343768001958492, + -0.10020959182559061, + -0.09665571312999645, + -0.09278844012649452, + -0.08856578275012798, + -0.08406839205018411, + -0.07951155403640459, + -0.07497147234136976, + -0.07045064870618511, + -0.06597817285978229, + -0.06155992073389257, + -0.05725386116718869, + -0.05321517146094083, + -0.04929831270461896, + -0.045402991194024696, + -0.0414510387913845, + -0.03741676053333283, + -0.033390777847849044, + -0.029470935528306458, + -0.02557040046952285, + -0.021691916825314583, + -0.017962029398679295, + -0.014457930654302044, + -0.011403415565543468, + -0.008815755387624727, + -0.006605379012447032, + -0.004734920472010339, + -0.0032469817996639318, + -0.0021007661713773294, + -0.0013454342681133435, + -0.0008406533571610666, + -0.0003948233909631619, + -5.244904484709087e-5, + 0.00013815040088045565, + 8.43682383163142e-5, + -0.00027444027783086675, + -0.000906947663404439, + -0.001760353124761506, + -0.0030380816332118447, + -0.004794560324673854, + -0.0070623106902425, + -0.009792994456567658, + -0.012799507004671747, + -0.016007042166076634, + -0.019460814142837773, + -0.023109914276729836, + -0.026843730206538158, + -0.030614734018916213, + -0.034259221806278654, + -0.03789109329264701, + -0.041646728801111456, + -0.04556259235293241, + -0.049628469796042525, + -0.05382866859276572, + -0.058105503505981766, + -0.06257320905637956, + -0.06728566938852462, + -0.0720639275742487, + -0.07681618472019285, + -0.0813731430562555, + -0.08568310187703031, + -0.08980697030050325, + -0.09374894057504662, + -0.0973808802212675, + -0.10071544431569775, + -0.10372048932711554, + -0.10648413226419434, + -0.1091925314108934, + -0.11181851122460003, + -0.11432623440751517, + -0.11666528186822742, + -0.1187829665276634, + -0.12071340867769559, + -0.12252326766882644, + -0.124036877203265, + -0.1251817404313312, + -0.12586925957201495, + -0.12607078331009244, + -0.12592035397189824, + -0.1254566313064785, + -0.12464642217182527, + -0.1235041114416203, + -0.12203763569236742, + -0.12030460291359255, + -0.11851535890880267, + -0.11663835230130155, + -0.11464186907932923, + -0.11245035339678, + -0.10997106698977863, + -0.10725293774187465, + -0.10436196745240367, + -0.10120294801239126, + -0.09770992047898061, + -0.09385588012758624, + -0.08961751810108395, + -0.0852175866904953, + -0.08074464779150131, + -0.07622533724426842, + -0.07168991274017625, + -0.06716532864288356, + -0.06269870479639983, + -0.058467790240855244, + -0.05444211124136884, + -0.050488706315206154, + -0.04655218264196471, + -0.04252590737563117, + -0.0384897286646938, + -0.0345257252315621, + -0.030586960558205582, + -0.026597165547943294, + -0.022655684776948806, + -0.018820244722589197, + -0.01530767442529818, + -0.012240566588199168, + -0.009537666318267433, + -0.007186804991884049, + -0.0052134657945304965, + -0.003633214842245245, + -0.0024734509257103247, + -0.0016857806457380477, + -0.0010268438987196676, + -0.00048476087150541025, + -6.531171394907019e-5, + 0.00016770598378696745, + 0.00012837141904993923, + -0.0001544903349976097, + -0.0006080811472435627, + -0.0013671596559354914, + -0.002575361826311213, + -0.004269050593693181, + -0.00650124912617385, + -0.00909139629391745, + -0.011953919207402524, + -0.015111150207755924, + -0.01855684086322045, + -0.022177022268364543, + -0.02590329127452857, + -0.029555717901015306, + -0.03313227321008517, + -0.03679153343117845, + -0.04055471694393443, + -0.04445921749254441, + -0.04847995231510051, + -0.052579310246031255, + -0.05682339367196509, + -0.06136079428039122, + -0.06607237239208719, + -0.07086835972264101, + -0.07559004112361435, + -0.08011563091225207, + -0.08450074220465909, + -0.08874322826440054, + -0.09273353297440173, + -0.09640890344974107, + -0.09974990823222979, + -0.10276052520541909, + -0.10565718663382455, + -0.10845484224502411, + -0.11113349379444692, + -0.11366860512869666, + -0.11600877715484961, + -0.11817800407078431, + -0.12026337691407776, + -0.12216557566646842, + -0.12375389689913051, + -0.12495573947453308, + -0.12565988488052696, + -0.1259901835310515, + -0.12599072422166416, + -0.12563047961964938, + -0.1248919841677468, + -0.12378405118347818, + -0.12233115619296539, + -0.12073276401666497, + -0.11904970665909992, + -0.11724118610945493, + -0.11529650082592814, + -0.11308943186194477, + -0.1106601209181833, + -0.10807073472873578, + -0.10528079649547202, + -0.10218172272718441, + -0.09873325525292707, + -0.09485161107951863, + -0.09069497449582847, + -0.08640026288048039, + -0.08197415965003056, + -0.07747108247002965, + -0.07289453423437574, + -0.06831579778003083, + -0.06389517376761586, + -0.059717626908965926, + -0.05565692006216931, + -0.05168244003940532, + -0.0476608815965094, + -0.04361077351765637, + -0.039631615775391635, + -0.035685318339404075, + -0.031682918470050773, + -0.027632745047570295, + -0.02359654102873562, + -0.019724211901139647, + -0.01623767510539141, + -0.013077084700876564, + -0.010251177792048526, + -0.007777856158335471, + -0.005702602025329786, + -0.004081654912496406, + -0.002915941513547885, + -0.00199490764144291, + -0.0012157901223409633, + -0.0005912862886001367, + -0.00010563399584425336, + 0.0001255393157696648, + 0.00013964665297556966, + 5.957712071617827e-6, + -0.000320081006472862, + -0.001013196414142225, + -0.0021421833997633394, + -0.0038160803399664824, + -0.005930953860082558, + -0.008355100868705626, + -0.011132620095569088, + -0.01425859375417612, + -0.017678430046853225, + -0.021286220251999666, + -0.024922473231210898, + -0.028462988125578077, + -0.03205388458663518, + -0.03571628477923729, + -0.03948665812611111, + -0.04335988683600126, + -0.04728207535056098, + -0.05131129467845686, + -0.05560231015092775, + -0.060153339388265156, + -0.06486669629768532, + -0.06964816620902603, + -0.0743026941681358, + -0.07887055267124975, + -0.08335739741004967, + -0.0876711945238925, + -0.09170155317205435, + -0.09539574849455543, + -0.09872012475461894, + -0.10183914549192577, + -0.10484680220799943, + -0.10770038541681051, + -0.11042441318132933, + -0.11295062506571471, + -0.11531615382636583, + -0.11761150567749519, + -0.11981515110619771, + -0.1217818956004674, + -0.12344007724303752, + -0.12464790266984015, + -0.12544978021065134, + -0.12593485788015896, + -0.12605215267123196, + -0.12578309731351062, + -0.1250893387748053, + -0.12399233431616415, + -0.1226434983847923, + -0.1211809403647398, + -0.11956743342107427, + -0.11783381090028103, + -0.11587742552376257, + -0.11369380756761993, + -0.1113754078856788, + -0.108900598223088, + -0.10618440115361479, + -0.10314101460764963, + -0.09967757717391657, + -0.09584201824084403, + -0.09181136030072733, + -0.08757975260848927, + -0.08320483866298263, + -0.07867843186151892, + -0.07404954355929852, + -0.06948996738894092, + -0.06514198983945185, + -0.06095344758287215, + -0.05687761088665062, + -0.05283163211862846, + -0.04874937535445945, + -0.044753566221821965, + -0.04080645578534554, + -0.03683320102284397, + -0.032771843653422957, + -0.028643507438798406, + -0.024544103613646135, + -0.020714574802701217, + -0.01717603468341191, + -0.013907410719349495, + -0.01096300595313578, + -0.008366748332025414, + -0.00623717101750757, + -0.004609255841012052, + -0.0033506462693351675, + -0.002287708977094319, + -0.0014233371183759898, + -0.0007034938138410721, + -0.00022019874042135228, + 3.5817468005730144e-5, + 0.0001713975212947888, + 0.0001768832200284027, + -6.889392727536976e-5, + -0.0006843422973365227, + -0.0017856256570963677, + -0.003386593180283253, + -0.005320907476809046, + -0.0076378890196150025, + -0.010348642271336809, + -0.013447078861774856, + -0.01684931787011363, + -0.020390820087613525, + -0.02389187419611582, + -0.027411473911316125, + -0.031008560994910075, + -0.034673910867686474, + -0.038444454248869844, + -0.04222203670807813, + -0.0460574369613888, + -0.05009178580208723, + -0.054412770802064456, + -0.058953698558545195, + -0.06366643296992802, + -0.0683621054111446, + -0.07301285590008032, + -0.0776665334416344, + -0.08222455786327028, + -0.08658943571693223, + -0.09063942722209706, + -0.09431555404436677, + -0.09770144359905096, + -0.10095235241464116, + -0.10401994446049292, + -0.10693682902378361, + -0.10965326154237433, + -0.11218214576109714, + -0.11464595946173044, + -0.11706342970089956, + -0.11933946295358501, + -0.12137478495286823, + -0.12304726763138879, + -0.12430493653834626, + -0.12526642550762368, + -0.12587138687414354, + -0.12609854890922856, + -0.12588627725853457, + -0.1252100214475324, + -0.12418759828236531, + -0.12298215093987228, + -0.12160910114501675, + -0.12007976134460102, + -0.11836018370350544, + -0.11639448733750234, + -0.11431292372350041, + -0.11210335840032004, + -0.10972145363283756, + -0.1070680560124093, + -0.10403095665408331, + -0.1005802435148532, + -0.09686914026356776, + -0.09292618202030387, + -0.08876467751043288, + -0.08440498720645849, + -0.07982423706072417, + -0.07520704076499149, + -0.07071377734961524, + -0.06639203229486822, + -0.06219176396611372, + -0.05807231350421648, + -0.05393485069194269, + -0.04988779626270897, + -0.04593815077496781, + -0.04198743602537618, + -0.037975538671257, + -0.03383977396546826, + -0.02964341265859005, + -0.02557141126783298, + -0.021742273974271316, + -0.018108986511232987, + -0.014746200164006955, + -0.011660862792029237, + -0.00899410923422873, + -0.006854261399707511, + -0.005164332323906695, + -0.0037654004474656074, + -0.0025999392287681233, + -0.001630101938923087, + -0.0008806878459622722, + -0.0004056531474577324, + -4.695094935308966e-5, + 0.00021546794066033825, + 0.0003253348987425197, + 0.00015458738403559442, + -0.0004226092770925529, + -0.0014866873068901925, + -0.0029176010817842787, + -0.00471821377186201, + -0.006949229405576808, + -0.009604731578544454, + -0.012691972031817015, + -0.016035603329030597, + -0.019444939018414716, + -0.02287412073808201, + -0.026399170506229017, + -0.029987098741796066, + -0.03367626902181299, + -0.037367612663063425, + -0.04104388959058351, + -0.04485584610675262, + -0.04891244031229204, + -0.05323211051651107, + -0.057771230717473955, + -0.06240655623753994, + -0.0670423791721688, + -0.0717620186094945, + -0.0764735430271021, + -0.08109330320939787, + -0.08548003210046337, + -0.08951094660367341, + -0.09321247064138258, + -0.09672521303553591, + -0.10005420820715684, + -0.10318903423710618, + -0.1061222850692569, + -0.10881364111117701, + -0.1114209460749505, + -0.11399730330826555, + -0.11650333694563438, + -0.11884253955360966, + -0.12090382619149931, + -0.12259126419515218, + -0.12399044991327282, + -0.1250810226995585, + -0.12580117586691314, + -0.12611036698129072, + -0.12591217255281853, + -0.12529730752397977, + -0.124408423722252, + -0.12331941387715248, + -0.122032276389598, + -0.12055188445860257, + -0.11880610252233392, + -0.11691978094677231, + -0.11494518706342319, + -0.1128369208485534, + -0.1105349538627009, + -0.10789545482980059, + -0.10486140592171915, + -0.10151015227562822, + -0.09791183118190026, + -0.0940448278044457, + -0.08994432842717041, + -0.08553551973941032, + -0.08095729411064799, + -0.07640182760709283, + -0.07196144610365778, + -0.06764665330655428, + -0.06341964231525313, + -0.05920800451099144, + -0.05506558599704013, + -0.0510786036153278, + -0.047132222295390776, + -0.043176262856051716, + -0.03908927965848404, + -0.03488323771221016, + -0.030693956035067076, + -0.026659181657536474, + -0.022763523367169886, + -0.019053512514506467, + -0.015559108098266782, + -0.012372176000549049, + -0.009698477658491831, + -0.007510594349489359, + -0.005707892811615796, + -0.004183061176802812, + -0.0029073576051062353, + -0.0018688863324129567, + -0.001145313446187523, + -0.000592150042470754, + -0.00011632174995538681, + 0.00025653524027688217, + 0.00045807783650112475, + 0.0003252980244249446, + -0.00023062027978465113, + -0.0011667520353811443, + -0.0024346171674686926, + -0.004140368934391004, + -0.006281906816525289, + -0.00892856432647851, + -0.011964409915722164, + -0.01518414818759398, + -0.018486808725459738, + -0.02189511109404685, + -0.0254071616289345, + -0.029020292419637765, + -0.03267022778679988, + -0.036240442344885014, + -0.03987857692587141, + -0.04368948638897835, + -0.04775912495672156, + -0.05207533361795416, + -0.05655671904551609, + -0.06109496332856221, + -0.06576034548086478, + -0.07053004296350948, + -0.07529662436070193, + -0.07995566349609598, + -0.0843104389130836, + -0.08834775821963135, + -0.0921458030544696, + -0.09575904573803096, + -0.09915413044374635, + -0.1023357785783209, + -0.10523097221674294, + -0.10797159210001228, + -0.1106843830761446, + -0.11335217697805815, + -0.11593149319899936, + -0.11829721193825365, + -0.12036082996108262, + -0.12214750668476991, + -0.12368915850432106, + -0.12488850454291353, + -0.1257177488057579, + -0.12604390860065612, + -0.12589240800931617, + -0.1253966330262159, + -0.12463682946665532, + -0.12365021060334422, + -0.1224328734317672, + -0.12093735877364252, + -0.11923406962632013, + -0.11746088437869627, + -0.11557835763391912, + -0.11357376272746893, + -0.11129539503116881, + -0.10865445620676753, + -0.10568877253026429, + -0.10245946227749136, + -0.09895135955506652, + -0.09516980111324991, + -0.09105199694891472, + -0.08662687242288429, + -0.08211429228861165, + -0.07761506173252905, + -0.07321769972643637, + -0.06889219398459338, + -0.06458834409111545, + -0.06033264377515836, + -0.056250610393929576, + -0.052277839525693925, + -0.048343234946927396, + -0.04433544340856156, + -0.04016458518421576, + -0.035953638745379636, + -0.031805783721288804, + -0.02775279575744693, + -0.023793185247857146, + -0.01997903824147503, + -0.01635595635175689, + -0.013159547603906818, + -0.010451404430389407, + -0.008173902456491113, + -0.006248071615002719, + -0.004598128810729581, + -0.0032280928937666875, + -0.0021987637859313264, + -0.001437893587410059, + -0.0007685184254452027, + -0.00019233656122726733, + 0.00029545544883616097, + 0.0005370596698693816, + 0.0004188997477722299, + -5.056554648417977e-5, + -0.0008221835089835643, + -0.0019795868732101207, + -0.003576513640621213, + -0.005686570003222845 ], "datatype": "Float64", "type": "series" }, - "mid_point_x_solid_1": { + "deflection_x_solid_1": { "n_values": 1001, "time": [ 0.0, @@ -3023,1007 +3023,1007 @@ ], "system_name": "solid", "values": [ - 0.4, - 0.39999999979728634, - 0.3999997781177494, - 0.39999806667465837, - 0.39999284158039095, - 0.39998306422772956, - 0.39996758787974435, - 0.3999439511456976, - 0.3999061994717787, - 0.39983977887158256, - 0.39973181878060726, - 0.3995720750870086, - 0.3993468819053718, - 0.3990617959877447, - 0.3987229007007335, - 0.3983461890897384, - 0.3979325983335376, - 0.39747815866152403, - 0.396981250685435, - 0.3964379046450675, - 0.39583228541020155, - 0.39514685460060495, - 0.39436610469807676, - 0.39346010511734447, - 0.39243915250326633, - 0.3913079019395572, - 0.39009183806874803, - 0.3888089321149231, - 0.38749231352681324, - 0.3861723298435519, - 0.3849098038919999, - 0.3837380527522159, - 0.38266451923526185, - 0.38168043767908927, - 0.38073399613444137, - 0.37982690165327776, - 0.3789452374206431, - 0.37808421711390916, - 0.37721802057864506, - 0.37635566051396796, - 0.3754870738475809, - 0.3746712321888947, - 0.3739688781154372, - 0.3734304639883497, - 0.3730967142546369, - 0.372959364786561, - 0.37303651253552067, - 0.37333200894008123, - 0.37384521327621956, - 0.3745208651596761, - 0.37531473832130496, - 0.37613768385847596, - 0.37697898913816896, - 0.3778303513696736, - 0.3786893282733405, - 0.37956412188711575, - 0.3804539516541779, - 0.38137049997939276, - 0.38233972755558854, - 0.3834080709853328, - 0.38457617075585276, - 0.38584491855857356, - 0.3871508004642634, - 0.38846816224786135, - 0.38976375026756865, - 0.3910041821894216, - 0.3921585741080628, - 0.39320568471967493, - 0.3941264356701611, - 0.39492619142518376, - 0.3956346808560798, - 0.39626128591485077, - 0.3968267100634205, - 0.3973354532228258, - 0.39780154232889126, - 0.3982301738166438, - 0.39862575743022355, - 0.39897980747950723, - 0.3992848806197303, - 0.39952331946594294, - 0.3996950743215812, - 0.3998152623081552, - 0.3998912590547159, - 0.39993533382866797, - 0.39996158942545507, - 0.3999808754624371, - 0.3999930837729136, - 0.3999966795113278, - 0.3999986982424709, - 0.4000014593350106, - 0.4000004420604036, - 0.39999827404949384, - 0.3999997988876305, - 0.39999987393707304, - 0.39999306105818866, - 0.3999837171784309, - 0.3999726094988871, - 0.3999535023381898, - 0.399918190187456, - 0.3998601784242599, - 0.3997665062300543, - 0.3996158164432257, - 0.39940516237130524, - 0.39913915776694264, - 0.3988193654268896, - 0.39845684820413113, - 0.3980540422432952, - 0.3976156140465287, - 0.3971340399150859, - 0.39660887292554214, - 0.39602543139908364, - 0.39536484279817924, - 0.3945928715655493, - 0.3937103272628974, - 0.39271833723598654, - 0.3916128328492118, - 0.3904147293503343, - 0.3891430621514253, - 0.387826144411381, - 0.3865046515014841, - 0.385248510806135, - 0.3840743932033735, - 0.38299772484489153, - 0.3819784262247657, - 0.38101605862514787, - 0.3801008755024107, - 0.37921459788565803, - 0.37834311832777395, - 0.3774659872911153, - 0.3765677934258114, - 0.3756662403601399, - 0.3748387694288974, - 0.37411096509480923, - 0.3735462720279769, - 0.3731539658467432, - 0.3729626168662139, - 0.37298731356492737, - 0.3732519093232679, - 0.3737361956980234, - 0.37438897256461073, - 0.3751336790331212, - 0.37592080127689986, - 0.37675096425907106, - 0.3775867316965575, - 0.37844404097937534, - 0.3793036894481414, - 0.3801698646739469, - 0.38105648576925016, - 0.38202235125094863, - 0.38308378037534263, - 0.3842529794925402, - 0.38550550852775145, - 0.3868025447502561, - 0.38812596697629176, - 0.3894313852813727, - 0.3906980257393616, - 0.3918781412475722, - 0.39294104813358804, - 0.3938740226679273, - 0.3947041031980078, - 0.39543340999164955, - 0.39608096349136457, - 0.39666359943276924, - 0.39718737300611034, - 0.39766472915741885, - 0.39810820993366125, - 0.3985246126137955, - 0.3988986552405215, - 0.39921566777857104, - 0.39946636589867696, - 0.3996583886007603, - 0.3997890736512709, - 0.3998715695410199, - 0.3999250065033258, - 0.39995849110802956, - 0.39997762669380893, - 0.3999887622250559, - 0.39999713601703357, - 0.4000007810146111, - 0.3999992533565463, - 0.3999989210797495, - 0.4000007831281585, - 0.4000001206574324, - 0.3999971411781919, - 0.3999945093488825, - 0.399987612030103, - 0.3999750217959638, - 0.39995858424140546, - 0.39993139849139936, - 0.39988033929473665, - 0.39979239321369386, - 0.39965644378025716, - 0.39946529043770135, - 0.39921137681385216, - 0.39890950178968604, - 0.39856281089707607, - 0.3981723086599191, - 0.3977443929973221, - 0.3972829356451139, - 0.3967803818277374, - 0.39621511828848344, - 0.3955667542094948, - 0.3948156602236194, - 0.3939620631193063, - 0.3929898697069873, - 0.3919140774775046, - 0.39073484193901314, - 0.3894680199244331, - 0.3881509148917769, - 0.3868462300665516, - 0.38559181268772524, - 0.3844152682912862, - 0.3833187207888844, - 0.3822767933527409, - 0.3813040438034377, - 0.38037910829681854, - 0.37949534519517164, - 0.37861075754707924, - 0.37770588450173637, - 0.3767745766531013, - 0.3758676293421188, - 0.3750154481221163, - 0.3742685615290572, - 0.37366527556335527, - 0.37321306868005405, - 0.37296691885922145, - 0.3729545967870115, - 0.37319359039819294, - 0.37364256684286085, - 0.3742536645592868, - 0.3749500103812333, - 0.375718081454693, - 0.37652406213784984, - 0.37736079382889876, - 0.3782080968344403, - 0.379039199141342, - 0.3798769155708606, - 0.3807546026018362, - 0.38171254259617626, - 0.38276644565613066, - 0.3839302208879423, - 0.3851594838031786, - 0.38645187278703247, - 0.38777704162332455, - 0.38910642785412025, - 0.3903928943316532, - 0.3915873537206072, - 0.3926647348575619, - 0.393623743290543, - 0.3944747889202052, - 0.39522636379277876, - 0.3959007647101688, - 0.3964941826717887, - 0.39702898635559325, - 0.3975229035817792, - 0.3979881718557692, - 0.39841960926479886, - 0.3988094778857409, - 0.399141322025552, - 0.3994096944402292, - 0.3996143243103894, - 0.39975829497612053, - 0.39985482481967355, - 0.39991353216432696, - 0.3999504172275494, - 0.39997398054390704, - 0.39998766275405095, - 0.3999953598877379, - 0.3999993958525358, - 0.4000001448367308, - 0.39999937710074673, - 0.39999942685951945, - 0.3999999321173253, - 0.3999986755995132, - 0.39999453688856934, - 0.3999880145033375, - 0.39997924944882146, - 0.39996439990611965, - 0.39993980317549527, - 0.3998964521955841, - 0.3998184147548527, - 0.3996954966744497, - 0.3995174762684556, - 0.3992826279323796, - 0.39899620836468147, - 0.3986591280695695, - 0.39828380444348843, - 0.3978717575738082, - 0.3974295515969343, - 0.3969445167718609, - 0.3963970530170649, - 0.39576137471435013, - 0.3950353219107688, - 0.3942051102987231, - 0.3932624295330811, - 0.39220999870907824, - 0.3910417544961566, - 0.3897859929393914, - 0.388481834064924, - 0.3871889334475185, - 0.3859374821838814, - 0.3847565907781903, - 0.38362938026463034, - 0.3825792385612237, - 0.38159805428306875, - 0.3806721571950183, - 0.37978057532781634, - 0.3788762637695418, - 0.3779432495011907, - 0.37699549230552637, - 0.3760792603078944, - 0.37520942628667764, - 0.37444048631631527, - 0.3737769176545832, - 0.373278555610755, - 0.3729875604319806, - 0.3729445321134937, - 0.3731508163331112, - 0.37356050122093604, - 0.3741142786214713, - 0.37477446717969665, - 0.3755238381697182, - 0.37631603861758617, - 0.377148542816226, - 0.3779668798948894, - 0.3787748882577191, - 0.37958971881927966, - 0.3804603048384848, - 0.38141147889139254, - 0.3824607131132056, - 0.3835955804771919, - 0.3848097082091941, - 0.38610081484249603, - 0.3874319339452916, - 0.38878272683456044, - 0.39008171495600413, - 0.39128864479752745, - 0.39238161964024604, - 0.3933677357948394, - 0.3942416391991251, - 0.3950203272524786, - 0.39570879207833715, - 0.39631654391965004, - 0.3968671262245287, - 0.39737759543317364, - 0.3978628135680502, - 0.39831189126436656, - 0.3987137831142739, - 0.3990600753004132, - 0.399348706897933, - 0.3995676726013482, - 0.3997261270117838, - 0.39983390324767953, - 0.3999014366729129, - 0.399941963973817, - 0.39996778215100615, - 0.39998570653512794, - 0.3999946819919351, - 0.39999744270496745, - 0.3999998321286095, - 0.40000068154116236, - 0.3999989487428273, - 0.39999876998078887, - 0.3999998267232612, - 0.39999574257177345, - 0.3999882714533148, - 0.39998094078683427, - 0.3999697896910335, - 0.39994767272155907, - 0.3999083999564472, - 0.3998428549268752, - 0.399733049794469, - 0.3995664169996196, - 0.39934890980685056, - 0.3990764381520013, - 0.3987524640365302, - 0.39838877761008207, - 0.3979969042799853, - 0.3975748444792874, - 0.3971025812393237, - 0.39656724584116654, - 0.39595409576104035, - 0.395252129406747, - 0.3944431052468077, - 0.39353258126053053, - 0.39249678600292526, - 0.3913419307256825, - 0.3900999062895627, - 0.388818336700998, - 0.3875348963931994, - 0.38628444909822995, - 0.3850846766276482, - 0.38394451116192607, - 0.3828872391064095, - 0.38189838658019176, - 0.38097807330472555, - 0.38006531520264786, - 0.37913555152102413, - 0.37818344222957767, - 0.37723478944347305, - 0.3763000169565856, - 0.3754186823939601, - 0.3746078649699448, - 0.3738927856052649, - 0.3733513225809135, - 0.3730261200171764, - 0.3729584138798001, - 0.37311692527406004, - 0.3734735873048873, - 0.3739776276698729, - 0.3746128951932141, - 0.3753355741657247, - 0.3761291268110091, - 0.3769364025427768, - 0.37772188315739313, - 0.378507944250262, - 0.37931269182564714, - 0.380176435425344, - 0.3811173250949519, - 0.3821499698369716, - 0.3832555056974095, - 0.3844596142441091, - 0.3857457367230819, - 0.387098447549412, - 0.38845491002264093, - 0.38975910522744717, - 0.39098155295077847, - 0.39209772173038443, - 0.39310449166584016, - 0.3940063386474646, - 0.3948104400976927, - 0.3955077036030826, - 0.3961311431091842, - 0.39670039607777136, - 0.39723364574549314, - 0.3977322687590052, - 0.39819525932038113, - 0.39861329193089734, - 0.3989771096228407, - 0.399279537048098, - 0.39951882216024664, - 0.39969478920150725, - 0.3998092123381671, - 0.3998843320936858, - 0.3999335699379967, - 0.39996325363121304, - 0.39998009491214775, - 0.3999919246265908, - 0.3999993184920275, - 0.39999949185075045, - 0.3999980665845488, - 0.4000000602493737, - 0.4000012816742158, - 0.3999979192513247, - 0.39999467642873954, - 0.39999158796910367, - 0.39998282580313665, - 0.3999702281614605, - 0.39995393247599004, - 0.3999233981480203, - 0.3998638117030707, - 0.3997636114911085, - 0.39961608365540796, - 0.39941139016674937, - 0.3991474528867311, - 0.39884046294929637, - 0.3984945553563351, - 0.39811992937131346, - 0.39770982660897164, - 0.3972546032875937, - 0.39673413452159384, - 0.39614007655949757, - 0.3954604300957999, - 0.39468459362463393, - 0.39379261511307156, - 0.39276942785897995, - 0.3916386565275583, - 0.3904174589156011, - 0.38915276075592026, - 0.38787832908764075, - 0.3866263294443084, - 0.3854055923360838, - 0.38426126463919424, - 0.3831989437801715, - 0.3822157829602436, - 0.3812791687351678, - 0.38034256311658987, - 0.37939778352427284, - 0.37843544603717055, - 0.37747904515256175, - 0.3765370821056727, - 0.37563279960625556, - 0.3747662591959534, - 0.37401815099037566, - 0.37344045700262934, - 0.37308939901421617, - 0.3729809682336243, - 0.3730885466870943, - 0.3733864846222222, - 0.37384964059166725, - 0.37446112568548473, - 0.3751733686208918, - 0.37594836978167934, - 0.3767162070080024, - 0.37748373328172025, - 0.37824754960338536, - 0.37904538106998636, - 0.3799036434949889, - 0.38083130825274103, - 0.3818278891256442, - 0.3829154501808498, - 0.38411258932170983, - 0.38540295582887085, - 0.3867638739280041, - 0.3881196919573498, - 0.3894343539927031, - 0.39066698762308427, - 0.39180757882933265, - 0.3928433617740409, - 0.39377146342851865, - 0.3945847956712859, - 0.3953013712335858, - 0.39594448922983044, - 0.39653056070967935, - 0.397083274163948, - 0.39759848101047174, - 0.3980737742257598, - 0.39850408923461034, - 0.39888813733555506, - 0.39921127804498274, - 0.3994680456386826, - 0.3996546123334622, - 0.3997837086881476, - 0.39986818386658957, - 0.3999207393019245, - 0.3999552376860563, - 0.39997738115117853, - 0.39999036265256455, - 0.3999967667335248, - 0.3999991629268288, - 0.399999519036888, - 0.3999998789830745, - 0.400000095989984, - 0.3999988855381064, - 0.3999959000198569, - 0.3999906420891463, - 0.3999833794983306, - 0.39997352399482894, - 0.3999589744604352, - 0.3999340453395752, - 0.39988370236783394, - 0.3997945924747667, - 0.3996588255495844, - 0.3994658423741863, - 0.3992184432727316, - 0.3989238629904276, - 0.39859604225593853, - 0.3982386224495453, - 0.3978407757304672, - 0.3973972217772391, - 0.3968948040310518, - 0.39632374565848333, - 0.3956676874393372, - 0.39491704153605756, - 0.3940404048141844, - 0.39304144895341314, - 0.39192969231403335, - 0.3907349924335699, - 0.38948912615799663, - 0.388218789721506, - 0.3869543950489341, - 0.3857306379284482, - 0.3845847033568692, - 0.3835200728791997, - 0.3825376540458876, - 0.3815750155628507, - 0.3806220572324563, - 0.3796625341984307, - 0.3787017596188514, - 0.3777380274046624, - 0.37678275148700885, - 0.3758369125222765, - 0.37493608457462485, - 0.3741558129245181, - 0.37354872679889023, - 0.3731744026003055, - 0.3730091600991936, - 0.373059139653957, - 0.3733041261232971, - 0.37374010945444597, - 0.374326667154453, - 0.3750265944380076, - 0.3757629291916252, - 0.3765013990007157, - 0.3772456079739104, - 0.37799776869472695, - 0.37879525269663966, - 0.3796356942305153, - 0.38053723020347363, - 0.3815043257875242, - 0.3825796389777927, - 0.38376802767948537, - 0.3850706073682648, - 0.386423045159535, - 0.3877777122264872, - 0.3890996608867673, - 0.3903504569895844, - 0.3915174054312022, - 0.39257882216860174, - 0.3935260090181809, - 0.3943527630986738, - 0.39508962069140646, - 0.3957501845452742, - 0.3963614059148584, - 0.39692791492241314, - 0.3974552406934863, - 0.3979445375258824, - 0.39839252664491576, - 0.39879447159532794, - 0.3991393538071778, - 0.3994129873312467, - 0.3996119152588196, - 0.39975379878919826, - 0.3998484652047487, - 0.39990836744377173, - 0.39994603665901696, - 0.3999726237509675, - 0.3999891014985131, - 0.3999949239487874, - 0.3999974902885761, - 0.40000066235861703, - 0.40000087272306756, - 0.3999986522408348, - 0.3999986259411658, - 0.3999974520918512, - 0.3999904269798153, - 0.3999823052862309, - 0.3999756409905476, - 0.39996554761161046, - 0.39994268743551226, - 0.39989976353208023, - 0.39982389574880084, - 0.3996974852920409, - 0.39951552623187125, - 0.3992848032586401, - 0.39900714813076404, - 0.39869513525589034, - 0.3983485687566191, - 0.39796665962001065, - 0.3975355269475755, - 0.39705043047424016, - 0.39650316167323957, - 0.3958744202231593, - 0.39513761100436867, - 0.3942804978209398, - 0.39330938821426903, - 0.39222130526991034, - 0.39105169191011957, - 0.389818934266577, - 0.3885519117211622, - 0.3872787660379173, - 0.386057789737936, - 0.3849136978945048, - 0.38385473299428385, - 0.3828483107867876, - 0.38186753070559387, - 0.3809048063295568, - 0.3799366455992515, - 0.3789764934571622, - 0.378007124895364, - 0.37702541353345836, - 0.37603723788490295, - 0.3751165781469121, - 0.3743083629100932, - 0.3736820306514586, - 0.37325912132151357, - 0.3730398608976617, - 0.3730312873211004, - 0.37323272967622384, - 0.3736459994450306, - 0.3742150801871464, - 0.374878952433878, - 0.3755727343526544, - 0.376293004202871, - 0.3770131227742962, - 0.3777644380201167, - 0.37855070012699404, - 0.37937002506327294, - 0.3802349733747548, - 0.3811828742245744, - 0.38224941906949045, - 0.3834387576782197, - 0.3847338063464159, - 0.3860752095441227, - 0.38743315873309053, - 0.3887569706176049, - 0.39003446309269346, - 0.3912286465792192, - 0.3923098993001354, - 0.3932671510513035, - 0.3941174046679904, - 0.39487387043137934, - 0.39555484037117633, - 0.39618628216824103, - 0.39676730832587465, - 0.3973065247666521, - 0.3978070213552649, - 0.3982773674394538, - 0.39870167284220476, - 0.3990624824850588, - 0.3993492705136879, - 0.3995682481969159, - 0.3997220414952453, - 0.39982389226961507, - 0.399893388791531, - 0.39993929968677905, - 0.39996711178343414, - 0.3999833219079496, - 0.3999942787909761, - 0.399998968052238, - 0.3999989099147147, - 0.39999936387254464, - 0.40000085979786754, - 0.3999991551165248, - 0.3999947971524351, - 0.39999085950113283, - 0.39998461858511203, - 0.39997622525356813, - 0.39996806323354084, - 0.3999526347397118, - 0.39991581949081717, - 0.3998454991853158, - 0.399731577412913, - 0.3995664396600175, - 0.3993463198592771, - 0.3990854367869416, - 0.3987900545255855, - 0.3984553634197628, - 0.39808245169499046, - 0.39766742313482734, - 0.39720701844035833, - 0.3966789640979377, - 0.39606797845278785, - 0.39535004904506577, - 0.39452029986765036, - 0.393567769778052, - 0.39251208327957543, - 0.39136611669875604, - 0.3901405436531091, - 0.38887213741443466, - 0.3876057331439355, - 0.38639169796738865, - 0.38524897788635815, - 0.38418397868246895, - 0.38315486010351507, - 0.38216321116671953, - 0.38118584415996853, - 0.3802266953033849, - 0.3792627545834406, - 0.3782735637825347, - 0.3772598147897247, - 0.37625248164454383, - 0.37530797776740454, - 0.37448023736068387, - 0.37382961991295766, - 0.37334646903949764, - 0.3730709525720445, - 0.37301007676093384, - 0.37318753454184284, - 0.3735715121894357, - 0.37411023567620205, - 0.374729970697512, - 0.37539273669150497, - 0.37608422435638067, - 0.3767990661183428, - 0.3775492253614373, - 0.3783064101526169, - 0.3790979016252986, - 0.3799363578400112, - 0.380871209380707, - 0.38192730585298934, - 0.38311757669448127, - 0.38439334647415696, - 0.3857236494725902, - 0.38707750812450015, - 0.38842034550821286, - 0.38972266680136713, - 0.39093175554519555, - 0.3920310803727421, - 0.39300619483138954, - 0.3938751732619709, - 0.3946513531810125, - 0.39536181178553303, - 0.39600512852856345, - 0.39659615803245163, - 0.3971492440771975, - 0.39767002958137826, - 0.39815889558240314, - 0.39860125122455875, - 0.3989805622207661, - 0.3992843759671969, - 0.39951696677195087, - 0.3996847365322879, - 0.3998016138417789, - 0.39987731521991077, - 0.3999275946764231, - 0.39996094853504693, - 0.39998066219078926, - 0.39999122899856626, - 0.39999725273246856, - 0.3999998388172056, - 0.3999995801817055, - 0.39999930825100705, - 0.3999990723156294, - 0.3999962254508177, - 0.39999022444975707, - 0.39998385464412145, - 0.3999790525265094, - 0.3999718083214847, - 0.39995794424343317, - 0.3999280089669272, - 0.39986722652450646, - 0.3997634632168057, - 0.39961027008750516, - 0.39940755798914535, - 0.3991626449998487, - 0.39887616666250464, - 0.398555015841833, - 0.3981951660931224, - 0.3977986216199328, - 0.3973570021988043, - 0.3968497636444798, - 0.3962544465136914, - 0.3955569641865608, - 0.3947512433539019, - 0.39382855046863985, - 0.3928020640268971, - 0.3916681412946326, - 0.39045512458312004, - 0.38919181490914107, - 0.3879362957124513, - 0.3867295070467884, - 0.3855912234139291, - 0.3845034255984985, - 0.38346061825402394, - 0.3824593949416633, - 0.38148207304420567, - 0.3805269903090735, - 0.37954847210150217, - 0.3785386202274089, - 0.37749752038064593, - 0.376477194082305, - 0.37551587596787456, - 0.374675382483868, - 0.3739714320691982, - 0.37343695776347113, - 0.373107341022431, - 0.37300814022179674, - 0.3731615328776988, - 0.37351248248741675, - 0.3740060253900149, - 0.3745790194694097, - 0.3752172379209714, - 0.37588916489532603, - 0.37660520762505173, - 0.3773307684998847, - 0.3780646039153998, - 0.37882234351603905, - 0.37964107788100204, - 0.3805690021301209, - 0.3816200932901708, - 0.3827903945962285, - 0.384044574289785, - 0.38536831650657377, - 0.3867206419785163, - 0.38808829129445355, - 0.3894057591963778, - 0.3906313535937774, - 0.39174146465544946, - 0.3927375655662232, - 0.3936291310740182, - 0.3944314476772008, - 0.39515925354393505, - 0.39581516454695465, - 0.39642060641257104, - 0.3969857067395732, - 0.39752933638442967, - 0.3980380805300554, - 0.39849649095385314, - 0.39889027644300556, - 0.39921416665883286, - 0.39946299491427745, - 0.39964570996560167, - 0.39977480126711973, - 0.399860488076863, - 0.3999158267574198, - 0.3999519276044031, - 0.39997650156333436, - 0.3999895352288566, - 0.39999513334427444, - 0.3999986923148317, - 0.40000032929780177, - 0.39999912086720396, - 0.39999795912430786, - 0.399996862655421, - 0.3999912628105704, - 0.3999837349670887, - 0.3999793148064427, - 0.3999750556658332, - 0.39996301460253025, - 0.3999365514442569, - 0.39988613781391175, - 0.3997944814848225, - 0.39965192307452657, - 0.3994648581063184, - 0.39923425855708783, - 0.3989591453674949, - 0.3986473030180346, - 0.3983038983304627, - 0.39792957942716006, - 0.3975019774566981, - 0.3970106804820383, - 0.396434326606543, - 0.3957606068986428, - 0.39497628446241867, - 0.39408783964832605, - 0.39308297976616763, - 0.39196294862463477, - 0.3907600483611513, - 0.3895118875458318, - 0.38827277271701593, - 0.3870695038521089, - 0.3859234201047978, - 0.38481917485972633, - 0.3837674878570029, - 0.38275686469716574, - 0.3817932730220915, - 0.3808282068897156, - 0.37983013991688147, - 0.378798606144511, - 0.37774603625394865, - 0.37671351323345437, - 0.37574137382502454, - 0.3748721767733644, - 0.3741135417426515, - 0.3735297247209204, - 0.37315294732795373, - 0.373034423862542, - 0.3731491863852479, - 0.37345687921646203, - 0.373900162600743, - 0.3744363696257824, - 0.3750472494482206, - 0.3757169130804434, - 0.37641956168523016, - 0.3771121722459004, - 0.3778194789831702, - 0.37855026073543174, - 0.3793607086668942, - 0.3802772297286728, - 0.3813174265145454, - 0.3824589136193614, - 0.3836932890601371, - 0.3850066165167234, - 0.3863765554490362, - 0.38775718786640045, - 0.3890820719978693, - 0.3903236218338344, - 0.39144757625282195, - 0.3924640750058743, - 0.39338112237124334, - 0.3942110811243659, - 0.3949486361678642, - 0.39561734781274716, - 0.39623725714416547, - 0.3968241822944717, - 0.3973850702372737, - 0.3979096938879524, - 0.398386632441441, - 0.39879639200242184, - 0.39913604662370933, - 0.3994055290881115, - 0.39960731310116754, - 0.399744713266889, - 0.3998387715984811, - 0.3999032969828926, - 0.3999443997626981, - 0.3999689260515926, - 0.39998560462590543, - 0.39999579366252314, - 0.39999760112922145, - 0.3999974819544468, - 0.3999999146705953, - 0.40000038601705235, - 0.3999954392975821, - 0.39999028021887045, - 0.399986460988963, - 0.3999802887474053, - 0.3999736843778419, - 0.3999663455963614, - 0.39994767412685295 + 0.0, + -2.0271367917601424e-10, + -2.2188225062835798e-7, + -1.9333253416520257e-6, + -7.158419609076816e-6, + -1.69357722704655e-5, + -3.241212025567597e-5, + -5.6048854302437334e-5, + -9.380052822133278e-5, + -0.00016022112841745928, + -0.0002681812193927602, + -0.00042792491299142865, + -0.0006531180946282023, + -0.0009382040122553059, + -0.0012770992992665042, + -0.0016538109102616216, + -0.0020674016664624095, + -0.002521841338475994, + -0.003018749314565028, + -0.003562095354932515, + -0.004167714589798477, + -0.004853145399395076, + -0.005633895301923264, + -0.00653989488265555, + -0.007560847496733691, + -0.008692098060442799, + -0.00990816193125199, + -0.0111910678850769, + -0.012507686473186785, + -0.013827670156448146, + -0.015090196108000109, + -0.016261947247784125, + -0.017335480764738176, + -0.018319562320910754, + -0.019266003865558656, + -0.020173098346722262, + -0.0210547625793569, + -0.021915782886090862, + -0.02278197942135496, + -0.023644339486032062, + -0.024512926152419123, + -0.025328767811105324, + -0.026031121884562802, + -0.026569536011650297, + -0.026903285745363104, + -0.027040635213439024, + -0.026963487464479352, + -0.026667991059918794, + -0.026154786723780465, + -0.025479134840323936, + -0.02468526167869506, + -0.023862316141524065, + -0.02302101086183106, + -0.022169648630326444, + -0.021310671726659514, + -0.020435878112884276, + -0.01954604834582213, + -0.01862950002060726, + -0.017660272444411484, + -0.016591929014667217, + -0.015423829244147258, + -0.014155081441426465, + -0.0128491995357366, + -0.011531837752138674, + -0.010236249732431368, + -0.0089958178105784, + -0.007841425891937204, + -0.006794315280325092, + -0.005873564329838932, + -0.005073808574816263, + -0.004365319143920243, + -0.003738714085149253, + -0.003173289936579504, + -0.0026645467771742037, + -0.0021984576711087667, + -0.001769826183356249, + -0.0013742425697764737, + -0.0010201925204927909, + -0.0007151193802697464, + -0.00047668053405708344, + -0.00030492567841883256, + -0.00018473769184484956, + -0.00010874094528412481, + -6.466617133205066e-5, + -3.841057454495589e-5, + -1.9124537562920096e-5, + -6.9162270864286945e-6, + -3.3204886722426608e-6, + -1.3017575291041084e-6, + 1.4593350105562841e-6, + 4.420604035604292e-7, + -1.7259505061817393e-6, + -2.011123695355721e-7, + -1.2606292698613686e-7, + -6.938941811363009e-6, + -1.628282156912464e-5, + -2.7390501112944943e-5, + -4.6497661810196433e-5, + -8.180981254402031e-5, + -0.00013982157574010667, + -0.00023349376994574733, + -0.00038418355677433125, + -0.0005948376286947776, + -0.0008608422330573795, + -0.0011806345731104062, + -0.0015431517958688912, + -0.001945957756704808, + -0.0023843859534713463, + -0.002865960084914132, + -0.003391127074457878, + -0.003974568600916384, + -0.004635157201820783, + -0.005407128434450736, + -0.006289672737102625, + -0.007281662764013486, + -0.008387167150788244, + -0.009585270649665745, + -0.010856937848574721, + -0.012173855588618998, + -0.013495348498515913, + -0.014751489193865042, + -0.015925606796626524, + -0.017002275155108493, + -0.018021573775234334, + -0.018983941374852153, + -0.01989912449758935, + -0.02078540211434199, + -0.02165688167222607, + -0.02253401270888472, + -0.023432206574188597, + -0.02433375963986012, + -0.025161230571102644, + -0.02588903490519079, + -0.02645372797202311, + -0.026846034153256815, + -0.02703738313378612, + -0.027012686435072653, + -0.026748090676732117, + -0.026263804301976612, + -0.02561102743538929, + -0.024866320966878797, + -0.02407919872310016, + -0.02324903574092896, + -0.022413268303442535, + -0.021555959020624682, + -0.02069631055185861, + -0.0198301353260531, + -0.01894351423074986, + -0.01797764874905139, + -0.01691621962465739, + -0.015747020507459797, + -0.014494491472248572, + -0.013197455249743917, + -0.011874033023708264, + -0.0105686147186273, + -0.009301974260638446, + -0.008121858752427824, + -0.007058951866411978, + -0.006125977332072707, + -0.005295896801992217, + -0.0045665900083504685, + -0.003919036508635454, + -0.0033364005672307795, + -0.0028126269938896775, + -0.002335270842581172, + -0.0018917900663387721, + -0.0014753873862045075, + -0.0011013447594785397, + -0.000784332221428985, + -0.0005336341013230661, + -0.0003416113992397163, + -0.00021092634872910132, + -0.00012843045898014438, + -7.499349667422495e-5, + -4.150889197046537e-5, + -2.2373306191092457e-5, + -1.123777494410616e-5, + -2.8639829664500738e-6, + 7.810146110953653e-7, + -7.466434537306554e-7, + -1.0789202505301354e-6, + 7.831281584880223e-7, + 1.206574323786569e-7, + -2.85882180811603e-6, + -5.490651117545653e-6, + -1.238796989699864e-5, + -2.497820403624118e-5, + -4.1415758594565144e-5, + -6.860150860066305e-5, + -0.00011966070526336914, + -0.00020760678630615814, + -0.00034355621974285766, + -0.0005347095622986742, + -0.0007886231861478632, + -0.0010904982103139838, + -0.0014371891029239525, + -0.001827691340080928, + -0.0022556070026779063, + -0.0027170643548861118, + -0.0032196181722626283, + -0.0037848817115165856, + -0.004433245790505247, + -0.005184339776380609, + -0.006037936880693706, + -0.0070101302930127285, + -0.008085922522495403, + -0.009265158060986878, + -0.010531980075566938, + -0.011849085108223134, + -0.013153769933448411, + -0.014408187312274778, + -0.015584731708713828, + -0.01668127921111562, + -0.017723206647259127, + -0.018695956196562336, + -0.019620891703181487, + -0.02050465480482838, + -0.021389242452920787, + -0.022294115498263656, + -0.0232254233468987, + -0.024132370657881208, + -0.02498455187788373, + -0.025731438470942836, + -0.026334724436644752, + -0.026786931319945972, + -0.02703308114077857, + -0.02704540321298854, + -0.02680640960180708, + -0.026357433157139176, + -0.025746335440713197, + -0.0250499896187667, + -0.024281918545307035, + -0.023475937862150187, + -0.022639206171101267, + -0.021791903165559734, + -0.020960800858658035, + -0.020123084429139404, + -0.019245397398163833, + -0.01828745740382376, + -0.01723355434386936, + -0.016069779112057703, + -0.014840516196821418, + -0.013548127212967553, + -0.012222958376675475, + -0.01089357214587977, + -0.009607105668346827, + -0.00841264627939281, + -0.007335265142438097, + -0.006376256709457018, + -0.005525211079794812, + -0.004773636207221266, + -0.004099235289831249, + -0.0035058173282113136, + -0.0029710136444067725, + -0.0024770964182208033, + -0.0020118281442308428, + -0.0015803907352011648, + -0.0011905221142591293, + -0.0008586779744479967, + -0.0005903055597707985, + -0.0003856756896106206, + -0.00024170502387949044, + -0.00014517518032647336, + -8.646783567306526e-5, + -4.958277245059595e-5, + -2.601945609298495e-5, + -1.2337245949067821e-5, + -4.640112262144225e-6, + -6.041474642226596e-7, + 1.448367307754772e-7, + -6.228992532886224e-7, + -5.731404805753293e-7, + -6.788267470358988e-8, + -1.3244004868351311e-6, + -5.463111430681344e-6, + -1.1985496662536566e-5, + -2.075055117856106e-5, + -3.560009388037244e-5, + -6.019682450475461e-5, + -0.00010354780441590439, + -0.000181585245147331, + -0.00030450332555032045, + -0.0004825237315444486, + -0.0007173720676204032, + -0.0010037916353185516, + -0.0013408719304305317, + -0.0017161955565115905, + -0.0021282424261918065, + -0.002570448403065695, + -0.003055483228139144, + -0.003602946982935118, + -0.0042386252856498885, + -0.004964678089231234, + -0.005794889701276895, + -0.0067375704669189185, + -0.0077900012909217775, + -0.008958245503843443, + -0.010214007060608599, + -0.011518165935076041, + -0.012811066552481543, + -0.014062517816118614, + -0.015243409221809723, + -0.016370619735369685, + -0.0174207614387763, + -0.018401945716931267, + -0.019327842804981732, + -0.020219424672183683, + -0.021123736230458212, + -0.02205675049880934, + -0.023004507694473653, + -0.02392073969210562, + -0.024790573713322384, + -0.025559513683684754, + -0.026223082345416815, + -0.026721444389245008, + -0.02701243956801941, + -0.027055467886506313, + -0.02684918366688882, + -0.026439498779063986, + -0.025885721378528737, + -0.025225532820303376, + -0.02447616183028184, + -0.023683961382413854, + -0.022851457183774015, + -0.022033120105110604, + -0.021225111742280922, + -0.020410281180720358, + -0.019539695161515214, + -0.01858852110860748, + -0.017539286886794403, + -0.016404419522808134, + -0.015190291790805943, + -0.01389918515750399, + -0.012568066054708449, + -0.011217273165439579, + -0.00991828504399589, + -0.00871135520247257, + -0.0076183803597539845, + -0.0066322642051606095, + -0.00575836080087494, + -0.004979672747521424, + -0.004291207921662876, + -0.0036834560803499783, + -0.0031328737754713343, + -0.0026224045668263862, + -0.0021371864319498224, + -0.0016881087356334645, + -0.0012862168857261103, + -0.0009399246995868138, + -0.0006512931020670187, + -0.0004323273986518439, + -0.0002738729882162394, + -0.00016609675232048815, + -9.856332708713111e-5, + -5.803602618303927e-5, + -3.221784899387625e-5, + -1.4293464872083828e-5, + -5.318008064914004e-6, + -2.5572950325680743e-6, + -1.6787139051066546e-7, + 6.815411623395384e-7, + -1.051257172701714e-6, + -1.2300192111514008e-6, + -1.7327673884626194e-7, + -4.257428226572824e-6, + -1.1728546685241259e-5, + -1.9059213165750766e-5, + -3.0210308966549526e-5, + -5.232727844095564e-5, + -9.16000435527975e-5, + -0.0001571450731248092, + -0.00026695020553102466, + -0.00043358300038043307, + -0.0006510901931494617, + -0.000923561847998744, + -0.0012475359634698258, + -0.0016112223899179545, + -0.002003095720014725, + -0.0024251555207125963, + -0.00289741876067634, + -0.0034327541588334842, + -0.0040459042389596744, + -0.004747870593253045, + -0.005556894753192321, + -0.006467418739469488, + -0.007503213997074765, + -0.008658069274317504, + -0.009900093710437319, + -0.011181663299001998, + -0.012465103606800643, + -0.013715550901770068, + -0.014915323372351796, + -0.01605548883807395, + -0.01711276089359054, + -0.01810161341980826, + -0.01902192669527447, + -0.019934684797352165, + -0.020864448478975894, + -0.02181655777042235, + -0.02276521055652697, + -0.02369998304341442, + -0.024581317606039932, + -0.02539213503005522, + -0.026107214394735123, + -0.026648677419086497, + -0.026973879982823634, + -0.027041586120199912, + -0.02688307472593998, + -0.026526412695112744, + -0.026022372330127108, + -0.02538710480678591, + -0.024664425834275305, + -0.02387087318899095, + -0.023063597457223195, + -0.022278116842606888, + -0.021492055749738004, + -0.02068730817435288, + -0.019823564574656005, + -0.018882674905048136, + -0.01785003016302844, + -0.016744494302590507, + -0.015540385755890895, + -0.014254263276918144, + -0.01290155245058805, + -0.011545089977359091, + -0.010240894772552855, + -0.009018447049221556, + -0.007902278269615592, + -0.006895508334159861, + -0.005993661352535429, + -0.005189559902307295, + -0.004492296396917395, + -0.0038688568908158416, + -0.0032996039222286666, + -0.0027663542545068864, + -0.0022677312409948303, + -0.001804740679618888, + -0.0013867080691026823, + -0.0010228903771593023, + -0.0007204629519020345, + -0.00048117783975337725, + -0.0003052107984927721, + -0.00019078766183294738, + -0.00011566790631423185, + -6.64300620032976e-5, + -3.6746368786977346e-5, + -1.9905087852267744e-5, + -8.075373409244246e-6, + -6.81507972499773e-7, + -5.081492495673245e-7, + -1.933415451238485e-6, + 6.02493736567844e-8, + 1.2816742157584216e-6, + -2.080748675303834e-6, + -5.323571260484883e-6, + -8.412030896354228e-6, + -1.717419686336763e-5, + -2.9771838539527362e-5, + -4.606752400998504e-5, + -7.660185197971847e-5, + -0.00013618829692929602, + -0.0002363885088915163, + -0.00038391634459206125, + -0.0005886098332506529, + -0.0008525471132689311, + -0.0011595370507036518, + -0.0015054446436649216, + -0.0018800706286865587, + -0.002290173391028383, + -0.0027453967124063117, + -0.0032658654784061825, + -0.003859923440502455, + -0.004539569904200125, + -0.005315406375366094, + -0.006207384886928458, + -0.007230572141020075, + -0.008361343472441718, + -0.009582541084398932, + -0.010847239244079765, + -0.012121670912359273, + -0.013373670555691608, + -0.014594407663916231, + -0.015738735360805778, + -0.016801056219828525, + -0.01778421703975641, + -0.018720831264832205, + -0.01965743688341015, + -0.020602216475727186, + -0.02156455396282947, + -0.022520954847438268, + -0.023462917894327306, + -0.02436720039374446, + -0.02523374080404661, + -0.025981849009624358, + -0.026559542997370678, + -0.02691060098578385, + -0.027019031766375712, + -0.02691145331290573, + -0.02661351537777784, + -0.02615035940833277, + -0.025538874314515292, + -0.024826631379108233, + -0.024051630218320685, + -0.02328379299199762, + -0.022516266718279776, + -0.021752450396614664, + -0.020954618930013658, + -0.020096356505011126, + -0.019168691747258992, + -0.01817211087435583, + -0.017084549819150197, + -0.015887410678290192, + -0.01459704417112917, + -0.013236126071995924, + -0.011880308042650223, + -0.010565646007296925, + -0.00933301237691575, + -0.008192421170667374, + -0.007156638225959133, + -0.006228536571481369, + -0.005415204328714118, + -0.004698628766414248, + -0.004055510770169579, + -0.003469439290320675, + -0.0029167258360520143, + -0.002401518989528284, + -0.0019262257742402311, + -0.0014959107653896853, + -0.0011118626644449625, + -0.0007887219550172797, + -0.0005319543613174216, + -0.00034538766653779973, + -0.00021629131185241235, + -0.00013181613341045617, + -7.926069807551173e-5, + -4.4762313943735865e-5, + -2.2618848821487347e-5, + -9.637347435476062e-6, + -3.233266475222152e-6, + -8.370731712226132e-7, + -4.809631120039626e-7, + -1.2101692553612153e-7, + 9.598998396143088e-8, + -1.1144618936032025e-6, + -4.099980143112969e-6, + -9.357910853713403e-6, + -1.6620501669395438e-5, + -2.6476005171083283e-5, + -4.102553956480959e-5, + -6.595466042480513e-5, + -0.00011629763216608469, + -0.0002054075252333476, + -0.00034117445041564887, + -0.0005341576258137137, + -0.0007815567272684287, + -0.001076137009572431, + -0.0014039577440614903, + -0.0017613775504547458, + -0.0021592242695328, + -0.0026027782227609486, + -0.0031051959689482045, + -0.0036762543415166937, + -0.004332312560662799, + -0.005082958463942466, + -0.005959595185815625, + -0.0069585510465868805, + -0.008070307685966671, + -0.009265007566430117, + -0.010510873842003388, + -0.011781210278494048, + -0.013045604951065937, + -0.014269362071551828, + -0.015415296643130849, + -0.01647992712080032, + -0.017462345954112446, + -0.01842498443714935, + -0.019377942767543732, + -0.02033746580156931, + -0.021298240381148636, + -0.02226197259533763, + -0.023217248512991173, + -0.0241630874777235, + -0.02506391542537517, + -0.025844187075481917, + -0.026451273201109793, + -0.026825597399694534, + -0.026990839900806418, + -0.02694086034604304, + -0.026695873876702914, + -0.026259890545554054, + -0.025673332845547014, + -0.0249734055619924, + -0.02423707080837484, + -0.023498600999284303, + -0.022754392026089643, + -0.022002231305273068, + -0.02120474730336036, + -0.020364305769484725, + -0.01946276979652639, + -0.018495674212475832, + -0.017420361022207342, + -0.016231972320514654, + -0.014929392631735205, + -0.013576954840465005, + -0.012222287773512808, + -0.010900339113232738, + -0.009649543010415595, + -0.008482594568797797, + -0.007421177831398285, + -0.006473990981819111, + -0.005647236901326236, + -0.00491037930859356, + -0.004249815454725803, + -0.003638594085141611, + -0.0030720850775868835, + -0.002544759306513711, + -0.002055462474117642, + -0.0016074733550842657, + -0.0012055284046720849, + -0.0008606461928222231, + -0.0005870126687533284, + -0.0003880847411804056, + -0.0002462012108017664, + -0.00015153479525131797, + -9.16325562282938e-5, + -5.396334098306532e-5, + -2.7376249032540212e-5, + -1.089850148694449e-5, + -5.076051212637989e-6, + -2.50971142390366e-6, + 6.623586170095841e-7, + 8.727230675353859e-7, + -1.3477591652155674e-6, + -1.3740588342137094e-6, + -2.547908148797795e-6, + -9.57302018472772e-6, + -1.7694713769111914e-5, + -2.435900945241265e-5, + -3.4452388389560884e-5, + -5.7312564487765894e-5, + -0.0001002364679197898, + -0.00017610425119918283, + -0.00030251470795911173, + -0.0004844737681287681, + -0.0007151967413599469, + -0.0009928518692359778, + -0.0013048647441096795, + -0.0016514312433809075, + -0.002033340379989368, + -0.0024644730524245317, + -0.0029495695257598653, + -0.003496838326760454, + -0.004125579776840749, + -0.00486238899563135, + -0.0057195021790601985, + -0.006690611785730993, + -0.007778694730089686, + -0.008948308089880452, + -0.010181065733423034, + -0.011448088278837809, + -0.012721233962082745, + -0.013942210262064048, + -0.01508630210549522, + -0.01614526700571617, + -0.017151689213212418, + -0.01813246929440615, + -0.01909519367044321, + -0.020063354400748523, + -0.0210235065428378, + -0.021992875104636045, + -0.022974586466541658, + -0.02396276211509707, + -0.024883421853087895, + -0.02569163708990685, + -0.026317969348541415, + -0.026740878678486457, + -0.0269601391023383, + -0.02696871267889961, + -0.026767270323776182, + -0.026354000554969448, + -0.025784919812853635, + -0.025121047566122046, + -0.024427265647345597, + -0.023706995797129038, + -0.022986877225703806, + -0.0222355619798833, + -0.021449299873005978, + -0.02062997493672708, + -0.019765026625245208, + -0.018817125775425603, + -0.017750580930509574, + -0.0165612423217803, + -0.015266193653584115, + -0.0139247904558773, + -0.01256684126690949, + -0.011243029382395131, + -0.00996553690730656, + -0.008771353420780836, + -0.007690100699864644, + -0.006732848948696524, + -0.0058825953320096325, + -0.005126129568620685, + -0.004445159628823692, + -0.0038137178317589893, + -0.0032326916741253764, + -0.0026934752333478973, + -0.0021929786447351107, + -0.0017226325605462223, + -0.0012983271577952649, + -0.0009375175149411996, + -0.0006507294863121182, + -0.00043175180308413497, + -0.00027795850475470507, + -0.00017610773038495564, + -0.00010661120846899852, + -6.07003132209738e-5, + -3.288821656588503e-5, + -1.667809205041504e-5, + -5.721209023923368e-6, + -1.0319477620202022e-6, + -1.090085285315734e-6, + -6.361274553778884e-7, + 8.597978675140006e-7, + -8.448834752372569e-7, + -5.2028475649446015e-6, + -9.140498867188374e-6, + -1.5381414887993827e-5, + -2.37747464318927e-5, + -3.1936766459184085e-5, + -4.7365260288201316e-5, + -8.41805091828518e-5, + -0.00015450081468421084, + -0.00026842258708703604, + -0.0004335603399825416, + -0.0006536801407229231, + -0.0009145632130584391, + -0.0012099454744144977, + -0.0015446365802372353, + -0.0019175483050095643, + -0.0023325768651726864, + -0.002792981559641694, + -0.0033210359020623414, + -0.003932021547212172, + -0.004649950954934257, + -0.005479700132349663, + -0.006432230221947999, + -0.007487916720424592, + -0.008633883301243983, + -0.009859456346890949, + -0.011127862585565362, + -0.01239426685606454, + -0.013608302032611375, + -0.014751022113641876, + -0.01581602131753107, + -0.01684513989648495, + -0.017836788833280492, + -0.018814155840031488, + -0.019773304696615146, + -0.020737245416559413, + -0.02172643621746534, + -0.02274018521027532, + -0.023747518355456187, + -0.02469202223259548, + -0.025519762639316157, + -0.026170380087042366, + -0.02665353096050238, + -0.026929047427955544, + -0.026989923239066183, + -0.026812465458157186, + -0.02642848781056434, + -0.02588976432379797, + -0.025270029302488006, + -0.024607263308495053, + -0.023915775643619352, + -0.023200933881657226, + -0.02245077463856271, + -0.02169358984738312, + -0.020902098374701417, + -0.020063642159988848, + -0.019128790619293012, + -0.01807269414701068, + -0.016882423305518757, + -0.015606653525843062, + -0.014276350527409831, + -0.012922491875499875, + -0.011579654491787161, + -0.010277333198632888, + -0.009068244454804475, + -0.007968919627257931, + -0.0069938051686104785, + -0.00612482673802911, + -0.005348646818987501, + -0.004638188214466987, + -0.003994871471436567, + -0.0034038419675483933, + -0.002850755922802539, + -0.002329970418621763, + -0.0018411044175968838, + -0.001398748775441272, + -0.0010194377792339115, + -0.0007156240328031194, + -0.0004830332280491567, + -0.00031526346771210134, + -0.00019838615822109773, + -0.00012268478008925499, + -7.240532357694063e-5, + -3.90514649530882e-5, + -1.9337809210762114e-5, + -8.771001433760528e-6, + -2.7472675314665906e-6, + -1.6118279444476968e-7, + -4.198182945169826e-7, + -6.917489929758602e-7, + -9.276843705996463e-7, + -3.774549182322673e-6, + -9.775550242951958e-6, + -1.61453558785718e-5, + -2.0947473490628976e-5, + -2.8191678515310237e-5, + -4.205575656685001e-5, + -7.199103307281574e-5, + -0.00013277347549356389, + -0.0002365367831942966, + -0.0003897299124948628, + -0.0005924420108546768, + -0.0008373550001513075, + -0.0011238333374953835, + -0.0014449841581670175, + -0.0018048339068776342, + -0.0022013783800672315, + -0.002642997801195701, + -0.0031502363555201973, + -0.003745553486308617, + -0.0044430358134392445, + -0.0052487566460981405, + -0.006171449531360174, + -0.00719793597310292, + -0.008331858705367401, + -0.009544875416879983, + -0.010808185090858957, + -0.012063704287548715, + -0.013270492953211643, + -0.014408776586070926, + -0.01549657440150154, + -0.01653938174597608, + -0.01754060505833671, + -0.01851792695579435, + -0.019473009690926524, + -0.020451527898497857, + -0.021461379772591105, + -0.022502479619354088, + -0.02352280591769501, + -0.024484124032125465, + -0.02532461751613202, + -0.026028567930801827, + -0.02656304223652889, + -0.02689265897756904, + -0.026991859778203287, + -0.0268384671223012, + -0.02648751751258327, + -0.02599397460998515, + -0.02542098053059033, + -0.02478276207902863, + -0.02411083510467399, + -0.023394792374948292, + -0.02266923150011535, + -0.02193539608460021, + -0.02117765648396097, + -0.02035892211899798, + -0.01943099786987912, + -0.018379906709829197, + -0.017209605403771533, + -0.01595542571021502, + -0.01463168349342625, + -0.013279358021483723, + -0.011911708705546475, + -0.010594240803622201, + -0.009368646406222647, + -0.008258535344550566, + -0.007262434433776832, + -0.006370868925981821, + -0.005568552322799236, + -0.0048407464560649704, + -0.004184835453045377, + -0.0035793935874289806, + -0.003014293260426848, + -0.0024706636155703565, + -0.0019619194699446174, + -0.001503509046146878, + -0.0011097235569944575, + -0.0007858333411671636, + -0.000537005085722575, + -0.0003542900343983524, + -0.00022519873288029402, + -0.00013951192313704786, + -8.417324258019887e-5, + -4.807239559689869e-5, + -2.3498436665658762e-5, + -1.0464771143414708e-5, + -4.866655725577207e-6, + -1.3076851683169188e-6, + 3.2929780174884016e-7, + -8.791327960611106e-7, + -2.0408756921663773e-6, + -3.137344579018375e-6, + -8.73718942961954e-6, + -1.6265032911300104e-5, + -2.0685193557301584e-5, + -2.494433416683206e-5, + -3.69853974697687e-5, + -6.344855574313968e-5, + -0.00011386218608827603, + -0.0002055185151775274, + -0.0003480769254734506, + -0.0005351418936816454, + -0.0007657414429121934, + -0.0010408546325051393, + -0.00135269698196544, + -0.0016961016695373199, + -0.0020704205728399594, + -0.0024980225433019476, + -0.0029893195179617194, + -0.003565673393457036, + -0.004239393101357236, + -0.0050237155375813525, + -0.005912160351673967, + -0.006917020233832394, + -0.008037051375365256, + -0.00923995163884872, + -0.010488112454168197, + -0.011727227282984087, + -0.012930496147891102, + -0.014076579895202224, + -0.01518082514027369, + -0.016232512142997146, + -0.017243135302834278, + -0.01820672697790854, + -0.01917179311028444, + -0.02016986008311855, + -0.021201393855489026, + -0.022253963746051375, + -0.023286486766545655, + -0.024258626174975484, + -0.02512782322663565, + -0.025886458257348532, + -0.026470275279079636, + -0.02684705267204629, + -0.026965576137458036, + -0.02685081361475211, + -0.026543120783537988, + -0.02609983739925703, + -0.025563630374217605, + -0.024952750551779423, + -0.024283086919556607, + -0.023580438314769858, + -0.022887827754099643, + -0.022180521016829824, + -0.02144973926456828, + -0.020639291333105825, + -0.01972277027132724, + -0.0186825734854546, + -0.017541086380638615, + -0.016306710939862912, + -0.014993383483276612, + -0.013623444550963815, + -0.012242812133599568, + -0.010917928002130706, + -0.009676378166165622, + -0.008552423747178073, + -0.007535924994125698, + -0.006618877628756681, + -0.005788918875634097, + -0.005051363832135836, + -0.004382652187252867, + -0.0037627428558345555, + -0.0031758177055283277, + -0.0026149297627263146, + -0.002090306112047635, + -0.001613367558559009, + -0.0012036079975781822, + -0.0008639533762906937, + -0.0005944709118885227, + -0.00039268689883248387, + -0.00025528673311103756, + -0.00016122840151894247, + -9.670301710740237e-5, + -5.5600237301944855e-5, + -3.107394840740074e-5, + -1.439537409458902e-5, + -4.206337476886368e-6, + -2.398870778574924e-6, + -2.51804555323476e-6, + -8.532940470873385e-8, + 3.860170523228845e-7, + -4.560702417943929e-6, + -9.71978112956906e-6, + -1.3539011037011495e-5, + -1.9711252594700746e-5, + -2.6315622158101792e-5, + -3.3654403638616603e-5, + -5.2325873147074375e-5 ], "datatype": "Float64", "type": "series" From 0bf9b8549e44b77417beb47a36717828a5ecd69b Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Wed, 28 Feb 2024 18:08:56 +0100 Subject: [PATCH 201/212] small fixes [skip ci] --- .../compare_reference_oscillating_beam_results.jl | 8 +++----- .../plot_oscillating_beam_results.jl | 10 +++++----- .../validation_oscillating_beam_2d.jl | 8 ++++---- 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl b/validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl index 0e4da640c..1a34380c5 100644 --- a/validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl +++ b/validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl @@ -8,13 +8,11 @@ trixi_include(@__MODULE__, "validation_oscillating_beam_2d.jl"), resolution=[5], tspan=(0, 2), saving_callback=nothing) -reference_file_name = joinpath(validation_dir(), - "oscillating_beam_2d/validation_reference_5.json") -run_file_name = joinpath(pkgdir(TrixiParticles), - "out/validation_run_oscillating_beam_2d_5.json") +reference_file_name = joinpath(validation_dir(), "oscillating_beam_2d", + "validation_reference_5.json") +run_file_name = joinpath("out", "validation_run_oscillating_beam_2d_5.json") reference_data = JSON.parsefile(reference_file_name) run_data = JSON.parsefile(run_file_name) error = calculate_error(reference_data, run_data) -error diff --git a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl index b415c2f65..d33a7c44f 100644 --- a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl +++ b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl @@ -1,7 +1,7 @@ include("../validation_util.jl") -# activate for interactive plot -#using GLMakie +# Activate for interactive plot +# using GLMakie using CairoMakie using CSV using DataFrames @@ -17,9 +17,9 @@ ref = CSV.read(joinpath(validation_dir(), "oscillating_beam_2d/reference_turek.c # Get the list of JSON files reference_files = glob("validation_reference_*.json", - joinpath(validation_dir(), "oscillating_beam_2d/")) + joinpath(validation_dir(), "oscillating_beam_2d")) simulation_files = glob("validation_run_oscillating_beam_2d_*.json", - joinpath(pkgdir(TrixiParticles), "out/")) + joinpath(pkgdir(TrixiParticles), "out")) merged_files = vcat(reference_files, simulation_files) input_files = sort(merged_files, by=extract_number) @@ -39,7 +39,7 @@ for file_name in input_files json_data = JSON.parsefile(file_name) resolution = parse(Int, split(split(file_name, "_")[end], ".")[1]) - particle_spacing = elastic_plate.thickness / resolution + particle_spacing = elastic_plate.thickness / (resolution - 1) matching_keys_x = sort(collect(filter(key -> occursin(key_pattern_x, key), keys(json_data)))) diff --git a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl index 93a7e5a05..7ba1c7c9f 100644 --- a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl +++ b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl @@ -18,6 +18,7 @@ tspan = (0, 10) # for the brave add 35 resolution = [9, 21] for res in resolution + # Overwrite `sol` assignment to skip time integration trixi_include(@__MODULE__, joinpath(examples_dir(), "solid", "oscillating_beam_2d.jl"), n_particles_y=res, sol=nothing, tspan=tspan, @@ -25,11 +26,10 @@ for res in resolution pp_callback = PostprocessCallback(; deflection_x, deflection_y, dt=0.01, output_directory="out", - filename="validation_run_oscillating_beam_2d_" * - string(res), write_csv=false, - write_file_interval=0) + filename="validation_run_oscillating_beam_2d_$res", + write_csv=false, write_file_interval=0) info_callback = InfoCallback(interval=2500) - saving_callback = SolutionSavingCallback(dt=0.5, prefix="validation_" * string(res)) + saving_callback = SolutionSavingCallback(dt=0.5, prefix="validation_$res") callbacks = CallbackSet(info_callback, saving_callback, pp_callback) From 162540a5bb23309d49c1f35bbf7119dcaa61b400 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 29 Feb 2024 03:26:35 +0100 Subject: [PATCH 202/212] update [skip ci] --- .../oscillating_beam_2d/validation_oscillating_beam_2d.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl index 7ba1c7c9f..5ccb30b60 100644 --- a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl +++ b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl @@ -33,6 +33,6 @@ for res in resolution callbacks = CallbackSet(info_callback, saving_callback, pp_callback) - sol = solve(ode, RDPK3SpFSAL49(), abstol=1e-8, reltol=1e-6, dtmax=1e-3, + sol = solve(ode, RDPK3SpFSAL49(), abstol=1e-8, reltol=1e-6, dt=1e-5, save_everystep=false, callback=callbacks) end From ccdf42c4bdc98bb10f34eb2f5866461920d0d8fb Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 29 Feb 2024 16:32:11 +0100 Subject: [PATCH 203/212] rename [skip ci] --- examples/solid/oscillating_beam_2d.jl | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/solid/oscillating_beam_2d.jl b/examples/solid/oscillating_beam_2d.jl index 1d87803ea..362b98c1e 100644 --- a/examples/solid/oscillating_beam_2d.jl +++ b/examples/solid/oscillating_beam_2d.jl @@ -10,25 +10,25 @@ n_particles_y = 5 gravity = 2.0 tspan = (0.0, 5.0) -elastic_plate = (length=0.35, thickness=0.02) +elastic_beam = (length=0.35, thickness=0.02) material = (density=1000.0, E=1.4e6, nu=0.4) clamp_radius = 0.05 # The structure starts at the position of the first particle and ends # at the position of the last particle. -particle_spacing = elastic_plate.thickness / (n_particles_y - 1) +particle_spacing = elastic_beam.thickness / (n_particles_y - 1) # Add particle_spacing/2 to the clamp_radius to ensure that particles are also placed on the radius fixed_particles = SphereShape(particle_spacing, clamp_radius + particle_spacing / 2, - (0.0, elastic_plate.thickness / 2), material.density, + (0.0, elastic_beam.thickness / 2), material.density, cutout_min=(0.0, 0.0), - cutout_max=(clamp_radius, elastic_plate.thickness), + cutout_max=(clamp_radius, elastic_beam.thickness), tlsph=true) n_particles_clamp_x = round(Int, clamp_radius / particle_spacing) # Beam and clamped particles -n_particles_per_dimension = (round(Int, elastic_plate.length / particle_spacing) + +n_particles_per_dimension = (round(Int, elastic_beam.length / particle_spacing) + n_particles_clamp_x + 1, n_particles_y) # Note that the `RectangularShape` puts the first particle half a particle spacing away From b2d66b96556f21290c6cfffd065ba5f99d19bb60 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Thu, 29 Feb 2024 16:38:05 +0100 Subject: [PATCH 204/212] update [skip ci] --- Project.toml | 2 -- 1 file changed, 2 deletions(-) diff --git a/Project.toml b/Project.toml index 2c203712e..9792edf8c 100644 --- a/Project.toml +++ b/Project.toml @@ -10,7 +10,6 @@ Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" DiffEqCallbacks = "459566f4-90b8-5000-8ac3-15dfb0a30def" FastPow = "c0e83750-1142-43a8-81cf-6c956b72b4d1" ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" -Glob = "c27321d9-0574-5035-807b-f59d2c89b15c" JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" Morton = "2a6d852e-3fac-5a38-885c-fe708af2d09e" @@ -33,7 +32,6 @@ DataFrames = "1.6" DiffEqCallbacks = "2.25, 3" FastPow = "0.1" ForwardDiff = "0.10" -Glob = "1.3" JSON = "0.21" Morton = "0.1" MuladdMacro = "0.2" From dbc0a7f3f93feeff9fb72f51dffa257e6761994b Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 1 Mar 2024 14:00:28 +0100 Subject: [PATCH 205/212] fix --- validation/oscillating_beam_2d/plot_oscillating_beam_results.jl | 1 + 1 file changed, 1 insertion(+) diff --git a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl index d33a7c44f..42a7d95e2 100644 --- a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl +++ b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl @@ -8,6 +8,7 @@ using DataFrames using JSON using Glob using Printf +using TrixiParticles elastic_plate = (length=0.35, thickness=0.02) From ea2684cc633deaf0719dd48cca614f80c61874ca Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 1 Mar 2024 14:42:09 +0100 Subject: [PATCH 206/212] exchange interpolation function --- validation/validation_util.jl | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/validation/validation_util.jl b/validation/validation_util.jl index c33a5833a..dbfaea71b 100644 --- a/validation/validation_util.jl +++ b/validation/validation_util.jl @@ -1,12 +1,15 @@ -function linear_interpolation(t, xp, yp) - for i in 1:(length(xp) - 1) - if xp[i] <= t && t <= xp[i + 1] - # Calculate the slope and interpolate - slope = (yp[i + 1] - yp[i]) / (xp[i + 1] - xp[i]) - return yp[i] + slope * (t - xp[i]) - end +function linear_interpolation(x, y, interpolation_point) + if !(first(x) <= interpolation_point <= last(x)) + throw(ArgumentError("`interpolation_point` with $interpolation_point is outside the interpolation range")) end - error("t $t is outside the interpolation range") + + i = searchsortedlast(x, interpolation_point) + # Handle right boundary + i == lastindex(x) && return last(y) + + # Linear interpolation + slope = (y[i + 1] - y[i]) / (x[i + 1] - x[i]) + return y[i] + slope * (interpolation_point - x[i]) end function calculate_mse(reference_time, reference_values, simulation_time, simulation_values) @@ -21,7 +24,7 @@ function calculate_mse(reference_time, reference_values, simulation_time, simula ]), reference_time) # Interpolate simulation data at the common time points - interpolated_values = [linear_interpolation(t, simulation_time, simulation_values) + interpolated_values = [linear_interpolation(simulation_time, simulation_values, t) for t in common_time_range] # Extract the corresponding reference displacement values From 9ae2ba28f423c8f8fd1c2c6dcb1becd88dded055 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 1 Mar 2024 14:43:07 +0100 Subject: [PATCH 207/212] rename --- .../oscillating_beam_2d/plot_oscillating_beam_results.jl | 4 ++-- validation/validation_util.jl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl index 42a7d95e2..2393aaa33 100644 --- a/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl +++ b/validation/oscillating_beam_2d/plot_oscillating_beam_results.jl @@ -60,8 +60,8 @@ for file_name in input_files displacements = Float64.(data["values"]) mse_results = occursin(key_pattern_x, key) ? - calculate_mse(ref.time, ref.Ux, data["time"], displacements) : - calculate_mse(ref.time, ref.Uy, data["time"], displacements) + interpolated_mse(ref.time, ref.Ux, data["time"], displacements) : + interpolated_mse(ref.time, ref.Uy, data["time"], displacements) label = "$label_prefix dp = $(@sprintf("%.8f", particle_spacing)) mse=$(@sprintf("%.8f", mse_results))" lines!(ax, times, displacements, label=label) diff --git a/validation/validation_util.jl b/validation/validation_util.jl index dbfaea71b..8434e58bc 100644 --- a/validation/validation_util.jl +++ b/validation/validation_util.jl @@ -12,7 +12,7 @@ function linear_interpolation(x, y, interpolation_point) return y[i] + slope * (interpolation_point - x[i]) end -function calculate_mse(reference_time, reference_values, simulation_time, simulation_values) +function interpolated_mse(reference_time, reference_values, simulation_time, simulation_values) # Find the common time range common_time_range = filter(t -> t >= maximum([ minimum(simulation_time), From f8362239510cb2cf25bc7b4c98719ead037d4e0b Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 1 Mar 2024 14:44:17 +0100 Subject: [PATCH 208/212] exchange common time range find code --- validation/validation_util.jl | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/validation/validation_util.jl b/validation/validation_util.jl index 8434e58bc..7e4819cbf 100644 --- a/validation/validation_util.jl +++ b/validation/validation_util.jl @@ -13,15 +13,10 @@ function linear_interpolation(x, y, interpolation_point) end function interpolated_mse(reference_time, reference_values, simulation_time, simulation_values) - # Find the common time range - common_time_range = filter(t -> t >= maximum([ - minimum(simulation_time), - minimum(reference_time), - ]) && - t <= minimum([ - maximum(simulation_time), - maximum(reference_time), - ]), reference_time) + # Remove reference time points outside the simulation time + start = searchsortedfirst(reference_time, first(simulation_time)) + end_ = searchsortedlast(reference_time, last(simulation_time)) + common_time_range = reference_time[start:end_] # Interpolate simulation data at the common time points interpolated_values = [linear_interpolation(simulation_time, simulation_values, t) From d92399e594f960903c3b5ef5e6b6f153df675ae6 Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 1 Mar 2024 15:02:47 +0100 Subject: [PATCH 209/212] update reference file --- .../validation_oscillating_beam_2d.jl | 5 +- .../validation_reference_5.json | 4016 +++++++++++++++-- 2 files changed, 3611 insertions(+), 410 deletions(-) diff --git a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl index 5ccb30b60..8be9e3e53 100644 --- a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl +++ b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl @@ -15,8 +15,9 @@ using OrdinaryDiffEq tspan = (0, 10) -# for the brave add 35 -resolution = [9, 21] +# Note: 35 takes a very long time! +# resolution = [5, 9, 21, 35] +resolution = [5] for res in resolution # Overwrite `sol` assignment to skip time integration trixi_include(@__MODULE__, diff --git a/validation/oscillating_beam_2d/validation_reference_5.json b/validation/oscillating_beam_2d/validation_reference_5.json index 837584531..da111b580 100644 --- a/validation/oscillating_beam_2d/validation_reference_5.json +++ b/validation/oscillating_beam_2d/validation_reference_5.json @@ -1,11 +1,11 @@ { "meta": { - "julia_version": "1.10.1", - "solver_version": "cbeee99-dirty", + "julia_version": "1.10.0", + "solver_version": "f836223-dirty", "solver_name": "TrixiParticles.jl" }, - "deflection_y_solid_1": { - "n_values": 201, + "deflection_x_solid_1": { + "n_values": 1001, "time": [ 0.0, 0.01, @@ -207,217 +207,1817 @@ 1.97, 1.98, 1.99, - 2.0 + 2.0, + 2.0100000000000002, + 2.02, + 2.0300000000000002, + 2.04, + 2.05, + 2.06, + 2.07, + 2.08, + 2.09, + 2.1, + 2.11, + 2.12, + 2.13, + 2.14, + 2.15, + 2.16, + 2.17, + 2.18, + 2.19, + 2.2, + 2.21, + 2.22, + 2.23, + 2.24, + 2.25, + 2.2600000000000002, + 2.27, + 2.2800000000000002, + 2.29, + 2.3000000000000003, + 2.31, + 2.32, + 2.33, + 2.34, + 2.35, + 2.36, + 2.37, + 2.38, + 2.39, + 2.4, + 2.41, + 2.42, + 2.43, + 2.44, + 2.45, + 2.46, + 2.47, + 2.48, + 2.49, + 2.5, + 2.5100000000000002, + 2.52, + 2.5300000000000002, + 2.54, + 2.5500000000000003, + 2.56, + 2.57, + 2.58, + 2.59, + 2.6, + 2.61, + 2.62, + 2.63, + 2.64, + 2.65, + 2.66, + 2.67, + 2.68, + 2.69, + 2.7, + 2.71, + 2.72, + 2.73, + 2.74, + 2.75, + 2.7600000000000002, + 2.77, + 2.7800000000000002, + 2.79, + 2.8000000000000003, + 2.81, + 2.82, + 2.83, + 2.84, + 2.85, + 2.86, + 2.87, + 2.88, + 2.89, + 2.9, + 2.91, + 2.92, + 2.93, + 2.94, + 2.95, + 2.96, + 2.97, + 2.98, + 2.99, + 3.0, + 3.0100000000000002, + 3.02, + 3.0300000000000002, + 3.04, + 3.0500000000000003, + 3.06, + 3.0700000000000003, + 3.08, + 3.09, + 3.1, + 3.11, + 3.12, + 3.13, + 3.14, + 3.15, + 3.16, + 3.17, + 3.18, + 3.19, + 3.2, + 3.21, + 3.22, + 3.23, + 3.24, + 3.25, + 3.2600000000000002, + 3.27, + 3.2800000000000002, + 3.29, + 3.3000000000000003, + 3.31, + 3.3200000000000003, + 3.33, + 3.34, + 3.35, + 3.36, + 3.37, + 3.38, + 3.39, + 3.4, + 3.41, + 3.42, + 3.43, + 3.44, + 3.45, + 3.46, + 3.47, + 3.48, + 3.49, + 3.5, + 3.5100000000000002, + 3.52, + 3.5300000000000002, + 3.54, + 3.5500000000000003, + 3.56, + 3.5700000000000003, + 3.58, + 3.59, + 3.6, + 3.61, + 3.62, + 3.63, + 3.64, + 3.65, + 3.66, + 3.67, + 3.68, + 3.69, + 3.7, + 3.71, + 3.72, + 3.73, + 3.74, + 3.75, + 3.7600000000000002, + 3.77, + 3.7800000000000002, + 3.79, + 3.8000000000000003, + 3.81, + 3.8200000000000003, + 3.83, + 3.84, + 3.85, + 3.86, + 3.87, + 3.88, + 3.89, + 3.9, + 3.91, + 3.92, + 3.93, + 3.94, + 3.95, + 3.96, + 3.97, + 3.98, + 3.99, + 4.0, + 4.01, + 4.0200000000000005, + 4.03, + 4.04, + 4.05, + 4.0600000000000005, + 4.07, + 4.08, + 4.09, + 4.1, + 4.11, + 4.12, + 4.13, + 4.14, + 4.15, + 4.16, + 4.17, + 4.18, + 4.19, + 4.2, + 4.21, + 4.22, + 4.23, + 4.24, + 4.25, + 4.26, + 4.2700000000000005, + 4.28, + 4.29, + 4.3, + 4.3100000000000005, + 4.32, + 4.33, + 4.34, + 4.3500000000000005, + 4.36, + 4.37, + 4.38, + 4.39, + 4.4, + 4.41, + 4.42, + 4.43, + 4.44, + 4.45, + 4.46, + 4.47, + 4.48, + 4.49, + 4.5, + 4.51, + 4.5200000000000005, + 4.53, + 4.54, + 4.55, + 4.5600000000000005, + 4.57, + 4.58, + 4.59, + 4.6000000000000005, + 4.61, + 4.62, + 4.63, + 4.64, + 4.65, + 4.66, + 4.67, + 4.68, + 4.69, + 4.7, + 4.71, + 4.72, + 4.73, + 4.74, + 4.75, + 4.76, + 4.7700000000000005, + 4.78, + 4.79, + 4.8, + 4.8100000000000005, + 4.82, + 4.83, + 4.84, + 4.8500000000000005, + 4.86, + 4.87, + 4.88, + 4.89, + 4.9, + 4.91, + 4.92, + 4.93, + 4.94, + 4.95, + 4.96, + 4.97, + 4.98, + 4.99, + 5.0, + 5.01, + 5.0200000000000005, + 5.03, + 5.04, + 5.05, + 5.0600000000000005, + 5.07, + 5.08, + 5.09, + 5.1000000000000005, + 5.11, + 5.12, + 5.13, + 5.14, + 5.15, + 5.16, + 5.17, + 5.18, + 5.19, + 5.2, + 5.21, + 5.22, + 5.23, + 5.24, + 5.25, + 5.26, + 5.2700000000000005, + 5.28, + 5.29, + 5.3, + 5.3100000000000005, + 5.32, + 5.33, + 5.34, + 5.3500000000000005, + 5.36, + 5.37, + 5.38, + 5.39, + 5.4, + 5.41, + 5.42, + 5.43, + 5.44, + 5.45, + 5.46, + 5.47, + 5.48, + 5.49, + 5.5, + 5.51, + 5.5200000000000005, + 5.53, + 5.54, + 5.55, + 5.5600000000000005, + 5.57, + 5.58, + 5.59, + 5.6000000000000005, + 5.61, + 5.62, + 5.63, + 5.64, + 5.65, + 5.66, + 5.67, + 5.68, + 5.69, + 5.7, + 5.71, + 5.72, + 5.73, + 5.74, + 5.75, + 5.76, + 5.7700000000000005, + 5.78, + 5.79, + 5.8, + 5.8100000000000005, + 5.82, + 5.83, + 5.84, + 5.8500000000000005, + 5.86, + 5.87, + 5.88, + 5.89, + 5.9, + 5.91, + 5.92, + 5.93, + 5.94, + 5.95, + 5.96, + 5.97, + 5.98, + 5.99, + 6.0, + 6.01, + 6.0200000000000005, + 6.03, + 6.04, + 6.05, + 6.0600000000000005, + 6.07, + 6.08, + 6.09, + 6.1000000000000005, + 6.11, + 6.12, + 6.13, + 6.140000000000001, + 6.15, + 6.16, + 6.17, + 6.18, + 6.19, + 6.2, + 6.21, + 6.22, + 6.23, + 6.24, + 6.25, + 6.26, + 6.2700000000000005, + 6.28, + 6.29, + 6.3, + 6.3100000000000005, + 6.32, + 6.33, + 6.34, + 6.3500000000000005, + 6.36, + 6.37, + 6.38, + 6.390000000000001, + 6.4, + 6.41, + 6.42, + 6.43, + 6.44, + 6.45, + 6.46, + 6.47, + 6.48, + 6.49, + 6.5, + 6.51, + 6.5200000000000005, + 6.53, + 6.54, + 6.55, + 6.5600000000000005, + 6.57, + 6.58, + 6.59, + 6.6000000000000005, + 6.61, + 6.62, + 6.63, + 6.640000000000001, + 6.65, + 6.66, + 6.67, + 6.68, + 6.69, + 6.7, + 6.71, + 6.72, + 6.73, + 6.74, + 6.75, + 6.76, + 6.7700000000000005, + 6.78, + 6.79, + 6.8, + 6.8100000000000005, + 6.82, + 6.83, + 6.84, + 6.8500000000000005, + 6.86, + 6.87, + 6.88, + 6.890000000000001, + 6.9, + 6.91, + 6.92, + 6.93, + 6.94, + 6.95, + 6.96, + 6.97, + 6.98, + 6.99, + 7.0, + 7.01, + 7.0200000000000005, + 7.03, + 7.04, + 7.05, + 7.0600000000000005, + 7.07, + 7.08, + 7.09, + 7.1000000000000005, + 7.11, + 7.12, + 7.13, + 7.140000000000001, + 7.15, + 7.16, + 7.17, + 7.18, + 7.19, + 7.2, + 7.21, + 7.22, + 7.23, + 7.24, + 7.25, + 7.26, + 7.2700000000000005, + 7.28, + 7.29, + 7.3, + 7.3100000000000005, + 7.32, + 7.33, + 7.34, + 7.3500000000000005, + 7.36, + 7.37, + 7.38, + 7.390000000000001, + 7.4, + 7.41, + 7.42, + 7.43, + 7.44, + 7.45, + 7.46, + 7.47, + 7.48, + 7.49, + 7.5, + 7.51, + 7.5200000000000005, + 7.53, + 7.54, + 7.55, + 7.5600000000000005, + 7.57, + 7.58, + 7.59, + 7.6000000000000005, + 7.61, + 7.62, + 7.63, + 7.640000000000001, + 7.65, + 7.66, + 7.67, + 7.68, + 7.69, + 7.7, + 7.71, + 7.72, + 7.73, + 7.74, + 7.75, + 7.76, + 7.7700000000000005, + 7.78, + 7.79, + 7.8, + 7.8100000000000005, + 7.82, + 7.83, + 7.84, + 7.8500000000000005, + 7.86, + 7.87, + 7.88, + 7.890000000000001, + 7.9, + 7.91, + 7.92, + 7.930000000000001, + 7.94, + 7.95, + 7.96, + 7.97, + 7.98, + 7.99, + 8.0, + 8.01, + 8.02, + 8.03, + 8.040000000000001, + 8.05, + 8.06, + 8.07, + 8.08, + 8.09, + 8.1, + 8.11, + 8.120000000000001, + 8.13, + 8.14, + 8.15, + 8.16, + 8.17, + 8.18, + 8.19, + 8.2, + 8.21, + 8.22, + 8.23, + 8.24, + 8.25, + 8.26, + 8.27, + 8.28, + 8.290000000000001, + 8.3, + 8.31, + 8.32, + 8.33, + 8.34, + 8.35, + 8.36, + 8.370000000000001, + 8.38, + 8.39, + 8.4, + 8.41, + 8.42, + 8.43, + 8.44, + 8.45, + 8.46, + 8.47, + 8.48, + 8.49, + 8.5, + 8.51, + 8.52, + 8.53, + 8.540000000000001, + 8.55, + 8.56, + 8.57, + 8.58, + 8.59, + 8.6, + 8.61, + 8.620000000000001, + 8.63, + 8.64, + 8.65, + 8.66, + 8.67, + 8.68, + 8.69, + 8.700000000000001, + 8.71, + 8.72, + 8.73, + 8.74, + 8.75, + 8.76, + 8.77, + 8.78, + 8.790000000000001, + 8.8, + 8.81, + 8.82, + 8.83, + 8.84, + 8.85, + 8.86, + 8.870000000000001, + 8.88, + 8.89, + 8.9, + 8.91, + 8.92, + 8.93, + 8.94, + 8.950000000000001, + 8.96, + 8.97, + 8.98, + 8.99, + 9.0, + 9.01, + 9.02, + 9.03, + 9.040000000000001, + 9.05, + 9.06, + 9.07, + 9.08, + 9.09, + 9.1, + 9.11, + 9.120000000000001, + 9.13, + 9.14, + 9.15, + 9.16, + 9.17, + 9.18, + 9.19, + 9.200000000000001, + 9.21, + 9.22, + 9.23, + 9.24, + 9.25, + 9.26, + 9.27, + 9.28, + 9.290000000000001, + 9.3, + 9.31, + 9.32, + 9.33, + 9.34, + 9.35, + 9.36, + 9.370000000000001, + 9.38, + 9.39, + 9.4, + 9.41, + 9.42, + 9.43, + 9.44, + 9.450000000000001, + 9.46, + 9.47, + 9.48, + 9.49, + 9.5, + 9.51, + 9.52, + 9.53, + 9.540000000000001, + 9.55, + 9.56, + 9.57, + 9.58, + 9.59, + 9.6, + 9.61, + 9.620000000000001, + 9.63, + 9.64, + 9.65, + 9.66, + 9.67, + 9.68, + 9.69, + 9.700000000000001, + 9.71, + 9.72, + 9.73, + 9.74, + 9.75, + 9.76, + 9.77, + 9.78, + 9.790000000000001, + 9.8, + 9.81, + 9.82, + 9.83, + 9.84, + 9.85, + 9.86, + 9.870000000000001, + 9.88, + 9.89, + 9.9, + 9.91, + 9.92, + 9.93, + 9.94, + 9.950000000000001, + 9.96, + 9.97, + 9.98, + 9.99, + 10.0 ], "system_name": "solid", "values": [ 0.0, - -9.999999694273662e-5, - -0.00040021045317193554, - -0.0008816293013202241, - -0.001481966579273946, - -0.002421187955333826, - -0.0038076514873977407, - -0.005648625367293315, - -0.007941950375764758, - -0.010579840650007196, - -0.013510514846166772, - -0.01682006533209758, - -0.02045879793814933, - -0.024231236645932366, - -0.02807795369921407, - -0.03184733336343083, - -0.035580878320669806, - -0.03939392352349771, - -0.04329172609215341, - -0.04719185434606216, - -0.0511624876173075, - -0.05518439745891413, - -0.05937833045400679, - -0.06385371519288999, - -0.06847195817201565, - -0.0731040228812182, - -0.07768658744102923, - -0.08214544665411759, - -0.08648071483059049, - -0.09070298388259852, - -0.09460137146757643, - -0.09815230844962407, - -0.10135640992891196, - -0.10426394882957182, - -0.1070074429479301, - -0.10964558693185723, - -0.11205455483488089, - -0.11428052241019263, - -0.11634870619619143, - -0.11827644344403074, - -0.12014611574645098, - -0.1218218369051334, - -0.12315797029541357, - -0.12411960509168074, - -0.12467800850678962, - -0.12484504262839616, - -0.12472731547042021, - -0.12419298502770491, - -0.12323087582387605, - -0.12188967560501728, - -0.1202318913215582, - -0.11841218104211296, - -0.11652290339197557, - -0.11445399768890085, - -0.11220748543661398, - -0.10979560604339374, - -0.10718784805816087, - -0.1044896196977692, - -0.1016077568765125, - -0.09840525938954174, - -0.0948459900443991, - -0.09095094072826963, - -0.08676443629915899, - -0.08247510060297314, - -0.078027618016515, - -0.07341837037971738, - -0.06876124021669529, - -0.0641451451796428, - -0.05969611554909209, - -0.055512910846534196, - -0.05146846199343597, - -0.047464278084344, - -0.0435467583273357, - -0.039658606750787695, - -0.03587279909332117, - -0.032147466738992776, - -0.02834718713416385, - -0.024464315062448786, - -0.02068221924564557, - -0.017061868431165167, - -0.01375993687196494, - -0.010793332590400603, - -0.008094063208454662, - -0.005766515828435302, - -0.0039205900587066566, - -0.0025349003452018936, - -0.001577667130975657, - -0.0009348861137279119, - -0.00040998959962745656, - -9.398904130825982e-5, - -4.736266781024331e-6, - -0.00011386887923831197, - -0.00039395064745788473, - -0.0008200037481510859, - -0.0013810280286833954, - -0.00232044187222088, - -0.003716100301965782, - -0.005532780795863794, - -0.0077742172641405306, - -0.010360384491047363, - -0.013274413437741526, - -0.01659366388080634, - -0.020236688637536082, - -0.02399014542903491, - -0.02780227311181524, - -0.03154778553112304, - -0.03529389862084996, - -0.03913947790033047, - -0.043039660219049626, - -0.04690869562081434, - -0.05084264779778111, - -0.05485968539798357, - -0.05907627967125113, - -0.06356865653481353, - -0.06816910490946189, - -0.07277443864151402, - -0.07734594495232597, - -0.08182352790807489, - -0.0861999978175893, - -0.0904530740411433, - -0.0943490647100333, - -0.09788490123680972, - -0.10109737115022188, - -0.10404751739637066, - -0.10684035277392223, - -0.10948773193607081, - -0.11187927834209836, - -0.11409742646629328, - -0.11618471464801781, - -0.11814872922504842, - -0.120057257007079, - -0.12174578046786672, - -0.12307576455051498, - -0.12403853733455371, - -0.12462852302063793, - -0.12485565323995086, - -0.12478384662873367, - -0.12425561400344859, - -0.1232845013802224, - -0.12195455390339914, - -0.1203322277513747, - -0.11855897276267205, - -0.11669158706819836, - -0.11461607632794257, - -0.11235541099125794, - -0.10994766222448196, - -0.10737438188404118, - -0.104725512279956, - -0.10186120646065713, - -0.09864403849757936, - -0.0950788353520208, - -0.09120709110231813, - -0.08706663887278485, - -0.08280851331141348, - -0.07835738741825421, - -0.07372456083866037, - -0.06905534283034234, - -0.06444476854846087, - -0.060021880383873044, - -0.05584672188009639, - -0.05177018433883645, - -0.04772552589385191, - -0.04380240856527506, - -0.03994046097216279, - -0.03617893996764078, - -0.03243957156753779, - -0.028598918505154246, - -0.024698350032650068, - -0.020922966183224034, - -0.017314170529729424, - -0.014003913119807154, - -0.010999557084811002, - -0.008244027958620306, - -0.005888141662391681, - -0.004040332986425674, - -0.0026570328488787712, - -0.0016739283169697177, - -0.0009760177112322806, - -0.0004091601968884053, - -9.79780394620728e-5, - -2.729514828286525e-5, - -0.00012700606377228328, - -0.0003700924953246778, - -0.0007493599658955335, - -0.001289250595519693, - -0.002231964891556508, - -0.0036260315983062076, - -0.005410290652159281, - -0.007600736189736325, - -0.01013612784730574, - -0.013041823698594739, - -0.016379723116155154, - -0.02001932112075685, - -0.023734977478119382, - -0.027511929592617237, - -0.03125198234825813, - -0.03502268042576975, - -0.03888986794127188, - -0.04277537141490054, - -0.046614076730865796, - -0.05052362837635896 + -2.1757223800378256e-10, + -2.210041758488046e-7, + -1.9337930592389085e-6, + -7.1571991772101384e-6, + -1.6994149638238643e-5, + -3.2478137831915e-5, + -5.633406530902718e-5, + -9.419166284874159e-5, + -0.00016076501782391617, + -0.0002686253109689396, + -0.00042821187380187586, + -0.0006525549711229872, + -0.000936888947216663, + -0.0012744057850360702, + -0.001650393019821561, + -0.002063703314995058, + -0.002515163371498541, + -0.0030123435221134365, + -0.0035536535380688017, + -0.004160148037059885, + -0.004842799354000726, + -0.00562338753213254, + -0.006522719644846742, + -0.007542186532157269, + -0.008666306451483141, + -0.009875820674804636, + -0.011152180599180328, + -0.012456721335600218, + -0.01376587160035131, + -0.015015360116654441, + -0.016182016343164074, + -0.017242672073206178, + -0.018222713933226553, + -0.019148562849787554, + -0.020052576157568947, + -0.020921651184946155, + -0.021775791306954173, + -0.022627072935196724, + -0.023476916164767603, + -0.02432516716435207, + -0.025122436116358726, + -0.0258106025260475, + -0.026327135096230136, + -0.026652523701658215, + -0.02676092379901812, + -0.026673106145067182, + -0.026359043884290945, + -0.025846753224236962, + -0.02516177533211511, + -0.02437012268161426, + -0.023533429239669, + -0.022693680053837095, + -0.021842732737344994, + -0.02098154281098441, + -0.020111489721573228, + -0.019215522460088508, + -0.01829884599673176, + -0.017323645051156078, + -0.016265644777484656, + -0.015098510828089329, + -0.013847603358807414, + -0.012543041895455909, + -0.011244067899301657, + -0.00996454354928783, + -0.008744894422668847, + -0.007612985447598031, + -0.006587875663196796, + -0.005683096861644754, + -0.0048974135269860275, + -0.004210043613220138, + -0.003596444550718114, + -0.0030481827690119756, + -0.0025488244908437596, + -0.002097132066416041, + -0.0016802599441831934, + -0.001299095600398037, + -0.0009578761146800119, + -0.000668951092493375, + -0.0004399614855792877, + -0.0002776874746146518, + -0.00016796190677448308, + -9.79867986298788e-5, + -5.7761720012428075e-5, + -3.4116410679241316e-5, + -1.8288542994904233e-5, + -6.611559290714553e-6, + -1.6372315041479624e-6, + -1.2079118914543052e-6, + 6.10941547352084e-8, + 9.902166537290036e-7, + -4.715764915785847e-7, + -1.1553848025536162e-6, + -1.1251065109019187e-6, + -6.221744145107344e-6, + -1.7296893458640383e-5, + -3.156910906426669e-5, + -5.291860426137607e-5, + -9.045205968177816e-5, + -0.0001558485449041358, + -0.00025933120401727683, + -0.000415240336925915, + -0.0006375937066485093, + -0.0009170587421326593, + -0.0012479294390301265, + -0.0016204192516569016, + -0.002032830301392008, + -0.0024820093581673364, + -0.0029748147813644654, + -0.0035116246597851064, + -0.00411117765072988, + -0.004787219415659849, + -0.005564153022060092, + -0.006460360006188326, + -0.007470234103252482, + -0.008584303481696143, + -0.009788331988026089, + -0.011063342304388435, + -0.012369154520479597, + -0.013682361480580996, + -0.014932893984042461, + -0.01609545603963569, + -0.017157528353801965, + -0.01814899826630234, + -0.019086382387870082, + -0.019989721101356883, + -0.020855195550158523, + -0.021708730279382304, + -0.022563512106858252, + -0.023419696905865206, + -0.02427904685393717, + -0.02508217512274591, + -0.025770804533396086, + -0.02629185539800316, + -0.026632893380958644, + -0.026763480066108625, + -0.026693815469648496, + -0.02638903925236824, + -0.02587832273154561, + -0.025198127678005222, + -0.024418302686328275, + -0.023595040863414518, + -0.022758303879443775, + -0.02190531915178906, + -0.021041824763442074, + -0.02017231618792631, + -0.019281976998383743, + -0.0183768181928865, + -0.01740747466726572, + -0.01634598836522061, + -0.015177478720859117, + -0.013932301292032323, + -0.01263435628506937, + -0.011335042537965634, + -0.010051916354108015, + -0.008825257910297313, + -0.007684279519602211, + -0.0066518919586496805, + -0.005745346932635398, + -0.0049549263381242215, + -0.004258566586721413, + -0.003637613289801056, + -0.0030861054746386674, + -0.0025842350261193747, + -0.0021300740327597767, + -0.0017107961162795005, + -0.0013247092226838508, + -0.0009775642060644296, + -0.0006849314048179012, + -0.0004541404488292988, + -0.0002875596660548707, + -0.00017336713575333285, + -0.00010221671745425098, + -6.108157489082e-5, + -3.471365775981061e-5, + -1.8042615821389774e-5, + -7.73664477426994e-6, + -2.3200247325494416e-6, + -2.183233836494658e-7, + 2.425614112344654e-7, + -1.3676430943299067e-7, + -3.06378828418552e-7, + -2.1871427596797943e-7, + -1.6306421244394187e-6, + -6.68744969001267e-6, + -1.5834927776237073e-5, + -2.999092012323512e-5, + -5.1519018775758596e-5, + -8.67687639381498e-5, + -0.00014924524658577187, + -0.00025137733296481946, + -0.00040434984703457966, + -0.0006212481283067728, + -0.0008955815535372502, + -0.0012228699924862751, + -0.0015915343573686402, + -0.002001206379899423, + -0.002449662676686837, + -0.002938241324709656, + -0.0034678875706877776, + -0.004061274061760434, + -0.004734253227115903, + -0.005506381199741284, + -0.006396553210166078, + -0.007398188300189845, + -0.008503161964160288, + -0.009699599592426278, + -0.010975470800937859, + -0.012286163636607117, + -0.01359866180741437, + -0.01484409803065423, + -0.01600802112145605, + -0.017078043732104864, + -0.018076920287072196, + -0.019021608491301967, + -0.019927249140723025, + -0.020789573202747658, + -0.021639065307619942, + -0.02250024323710398, + -0.023367452058888183, + -0.02423457381823213, + -0.02503731119806274, + -0.02572778364463091, + -0.026257435475019186, + -0.026616223642919434, + -0.026768640462244364, + -0.026714136706853908, + -0.026414552838175565, + -0.02590740496271987, + -0.0252367400707314, + -0.024468556837552558, + -0.023657276110074843, + -0.022823461351077545, + -0.021966561744809987, + -0.021098501067175646, + -0.02023436710454496, + -0.0193534912062035, + -0.018455044330362602, + -0.017486390651289818, + -0.01642576245664651, + -0.015258258717003204, + -0.014015959752745222, + -0.012725420213988481, + -0.011429386148631093, + -0.010138962068016621, + -0.008901631519945885, + -0.007755621955750636, + -0.006719632201221015, + -0.005807898194821304, + -0.005010327314959984, + -0.004307438649567952, + -0.0036794552003011627, + -0.0031232834720321123, + -0.0026202572172860372, + -0.002164767900682152, + -0.001740089138136558, + -0.0013488365562048243, + -0.0009987035425103596, + -0.0007021234072588922, + -0.0004668997846011824, + -0.0002976354662452829, + -0.00018092993310259153, + -0.00010594594269158764, + -6.250030276855334e-5, + -3.649197694649553e-5, + -1.932291492484639e-5, + -7.229831828714506e-6, + -2.3568008374885707e-6, + -1.2153606067100142e-6, + 4.7226337629435733e-7, + 6.953896418693262e-7, + -1.0038754632013536e-6, + -1.044585154208466e-6, + -6.132522608615076e-7, + -5.953229647137626e-6, + -1.614574357633458e-5, + -2.873844317641261e-5, + -4.828080313806771e-5, + -8.376924130831798e-5, + -0.00014497030892329787, + -0.00024259106823837362, + -0.0003921748821654192, + -0.0006064890675270274, + -0.0008753125953581131, + -0.0011965513322590993, + -0.00156313976333039, + -0.001972291914550728, + -0.002417438333136568, + -0.002900429634881907, + -0.0034250980357745098, + -0.004012958979170256, + -0.004681268277056894, + -0.00545020946668312, + -0.00633444348110751, + -0.007324358061099434, + -0.008420705033562015, + -0.00961510515722902, + -0.01089074943360302, + -0.01220063088040696, + -0.013513045317860795, + -0.014757055879426495, + -0.015919891557469645, + -0.016996870177587886, + -0.01800824273774637, + -0.01895949578374284, + -0.019860144616584918, + -0.0207192860663869, + -0.021572117924666734, + -0.02244014872044303, + -0.023314351903996777, + -0.024187954298184378, + -0.024990258835376644, + -0.025680956342308214, + -0.02622234304676424, + -0.02660259218051758, + -0.02677457851551579, + -0.026730215615941966, + -0.026435134701868035, + -0.02593374484792821, + -0.02527521918340553, + -0.02452172635110006, + -0.023719606410276373, + -0.02288393571110703, + -0.022023966756048452, + -0.021156713611292677, + -0.020296615548288377, + -0.019423837084435236, + -0.018534219918272754, + -0.01756540022429748, + -0.0165001408875437, + -0.015336220436216352, + -0.014104639465600699, + -0.012819854165666167, + -0.011519954549795208, + -0.01022353673145765, + -0.008980468225814331, + -0.007827660189481667, + -0.006786809845195918, + -0.0058722915316361535, + -0.005067250486187724, + -0.004354415609484019, + -0.0037210095109658226, + -0.0031630390731992586, + -0.0026572753987897935, + -0.002198269928904484, + -0.0017701859116257546, + -0.0013738730494830542, + -0.0010187289674827293, + -0.0007194720632828777, + -0.0004822803934063091, + -0.0003078858510680571, + -0.00018658226020273894, + -0.00011042856462106787, + -6.565776400835333e-5, + -3.6924434851259846e-5, + -1.928489280433876e-5, + -8.700080838863755e-6, + -2.8538682164680473e-6, + -2.5587951385519503e-7, + 3.416253768206978e-7, + -5.028587246602712e-7, + -5.259227431886337e-7, + -1.6093458837795893e-7, + -1.299500040685686e-6, + -6.220501801712519e-6, + -1.4500476503587212e-5, + -2.7226048710249362e-5, + -4.717112106294996e-5, + -8.0372355616809e-5, + -0.0001390839114496223, + -0.0002353906130209693, + -0.00038172835743760514, + -0.0005899484439310099, + -0.0008537743134678366, + -0.001172207986102125, + -0.0015359826577347468, + -0.0019427017286914872, + -0.0023855285904149093, + -0.0028626874101409516, + -0.003380896394380717, + -0.00396495662236207, + -0.004631122168438084, + -0.00539386004625636, + -0.006269866047421024, + -0.0072509180339794255, + -0.00833986163615924, + -0.00952974939635276, + -0.010806247088023857, + -0.012117579950429225, + -0.01342483018932128, + -0.014664574794959195, + -0.01583287686563073, + -0.016920600841885902, + -0.01793837591538716, + -0.018893470746799423, + -0.019792518829188088, + -0.020648501224371563, + -0.021503332452152635, + -0.0223819076680144, + -0.023264608772823103, + -0.024137709852652067, + -0.02493704766033855, + -0.025634148187589023, + -0.02619132955732051, + -0.026589832900452193, + -0.026779202369052513, + -0.026743329727690335, + -0.026452642207524024, + -0.025959919297556977, + -0.025316402043858877, + -0.024576001684823878, + -0.023781623725175838, + -0.0229440481373131, + -0.022079355848354187, + -0.021212923142103435, + -0.020362720211593632, + -0.0194993754823517, + -0.01861031913178901, + -0.017638895348894124, + -0.016576189095627247, + -0.015418630495016072, + -0.014192615370347272, + -0.01291414443718264, + -0.011612582519208381, + -0.01030765036123965, + -0.009056803167523442, + -0.007902127865942576, + -0.006857633151056086, + -0.0059359314314588185, + -0.0051224500292004205, + -0.004403041948471242, + -0.003763721397080644, + -0.0032021353923072926, + -0.0026955941222297497, + -0.0022333558269403975, + -0.0017987926350900851, + -0.001397756893141755, + -0.001041043595968405, + -0.000738059489625742, + -0.0004962097561451717, + -0.0003185760194767684, + -0.00019412332345469796, + -0.00011398110067911693, + -6.714993702872096e-5, + -3.8949443627256386e-5, + -2.051521951734747e-5, + -8.366690417538347e-6, + -3.149312242101132e-6, + -1.172342348698674e-6, + 6.58583763080145e-7, + 1.938748679930491e-7, + -1.3741993272753383e-6, + -6.810567595438854e-7, + -2.406609057037379e-7, + -5.70146646267089e-6, + -1.4702768077801132e-5, + -2.586191965192608e-5, + -4.445741019326599e-5, + -7.812468953316554e-5, + -0.00013504504538253137, + -0.0002269916213923362, + -0.0003699123686868311, + -0.0005749379937562971, + -0.0008330933717937694, + -0.0011467679354524307, + -0.0015097265408353655, + -0.0019147999196572063, + -0.0023524314038582683, + -0.0028235043363199486, + -0.003338554080590417, + -0.003918530295981049, + -0.004580155467895419, + -0.005338201912436669, + -0.00620635984716833, + -0.0071760686950277375, + -0.008258897402563636, + -0.009448568558327097, + -0.010723474943754474, + -0.012031112993470428, + -0.013335267016891195, + -0.014574374034379056, + -0.015746259704653875, + -0.016844690626222236, + -0.01787226072850323, + -0.018827235772671203, + -0.01971918446426213, + -0.02057763819290237, + -0.021441234909736095, + -0.022325945511241507, + -0.02321094823369746, + -0.02408599406731393, + -0.024884741754757966, + -0.02558691496621912, + -0.02616104049897139, + -0.026580588184817955, + -0.026783532545762934, + -0.026751843176847034, + -0.02646731583296602, + -0.02598656548694217, + -0.02536034938839349, + -0.024633022751518074, + -0.023842250580438595, + -0.022998509437386128, + -0.02213369640183266, + -0.021273264146013104, + -0.02043018093148008, + -0.019572102372389544, + -0.01868583889669312, + -0.01771203511994185, + -0.016648989617019883, + -0.015500600830515854, + -0.014285323478208767, + -0.013008581814738185, + -0.011700206330405138, + -0.01039066844893427, + -0.009136074353549128, + -0.007976402201404942, + -0.00692745808194456, + -0.006001276440078029, + -0.005177940883987653, + -0.004449099758628117, + -0.0038067169443470883, + -0.003244382596538753, + -0.002733566763107931, + -0.0022661827348934294, + -0.0018277520937683422, + -0.0014230044290495791, + -0.001062364638520108, + -0.0007570120207633368, + -0.0005121318412115716, + -0.00032874544561428687, + -0.00019994584907689905, + -0.00011880028207078563, + -7.026955685346392e-5, + -3.93123944363305e-5, + -2.1043172320267534e-5, + -1.004470535331814e-5, + -3.4510816437349767e-6, + -2.0122500371533292e-7, + 1.1072612887685906e-7, + -8.14789770153812e-7, + -5.422749823069672e-7, + 6.27241338313489e-8, + -1.059159796756859e-6, + -5.744878097180273e-6, + -1.2870795066510787e-5, + -2.478438987046916e-5, + -4.375155576341605e-5, + -7.493480577291933e-5, + -0.0001297812029851797, + -0.0002202977186380184, + -0.00035941446778303687, + -0.0005580024014845697, + -0.0008123480293034668, + -0.0011241962827003849, + -0.0014842425536704118, + -0.0018856506253807637, + -0.0023198613974684257, + -0.0027854928631174114, + -0.0032954273715928295, + -0.003872898745702791, + -0.0045318463636301876, + -0.005282418062057814, + -0.006140790955869113, + -0.007102385674121858, + -0.0081804548715812, + -0.009367351536382462, + -0.010641077629519657, + -0.011945228327893354, + -0.013242394347651731, + -0.01448173440875583, + -0.01566406869630893, + -0.01677227458400965, + -0.01780128916692325, + -0.018756437925535108, + -0.019647742486153363, + -0.020507875535287934, + -0.021376707987128152, + -0.02227083384699574, + -0.023158824372149778, + -0.02402936845158954, + -0.02482698938645811, + -0.025542106928282904, + -0.026134955874335453, + -0.026569620282258954, + -0.026782860983853685, + -0.02675621415858298, + -0.02647991972316799, + -0.026014990266564286, + -0.025406657135775723, + -0.02468848454778577, + -0.023898671045710584, + -0.023051800574779124, + -0.022187678445212022, + -0.021333475796673107, + -0.02049978711504946, + -0.01964588447367721, + -0.018756547468718632, + -0.017781345918814195, + -0.016725147336750623, + -0.015585476223627215, + -0.014376257461207298, + -0.013102169775174477, + -0.01178938917090927, + -0.010472012941775355, + -0.009214015112844753, + -0.008054389417985697, + -0.007000388379063194, + -0.0060640224928412145, + -0.00523175191642955, + -0.004498105474654401, + -0.0038514082294092145, + -0.0032855757011329145, + -0.0027722761525402206, + -0.002300274487967824, + -0.0018556635029858826, + -0.0014479287537327301, + -0.0010862231267032008, + -0.0007766401373119902, + -0.0005266199036893515, + -0.0003396825127887082, + -0.0002075312692001452, + -0.00012221591919364672, + -7.206916190244383e-5, + -4.174157378350474e-5, + -2.2369222938356526e-5, + -9.8192296593691e-6, + -3.807743266470709e-6, + -1.1984222759719998e-6, + 6.401650348153431e-7, + -2.08903263021476e-7, + -1.3999885458693129e-6, + -2.098056156585315e-7, + 3.4035294027567886e-9, + -5.2649621324896145e-6, + -1.3078436979452324e-5, + -2.34132528572073e-5, + -4.1602631561943326e-5, + -7.310546818012353e-5, + -0.00012587473657138526, + -0.00021189778069830023, + -0.00034785861608105373, + -0.0005432294702575335, + -0.0007923566769339474, + -0.0011004495182667662, + -0.001459444855253067, + -0.0018579073958476244, + -0.0022856848313481115, + -0.0027461249733946036, + -0.0032544436850382996, + -0.0038287201217548916, + -0.004482455599503998, + -0.005226034300107318, + -0.006075540742935259, + -0.007028177455179363, + -0.008103194330369656, + -0.009288868024486696, + -0.010557134059405726, + -0.011854967436759678, + -0.013149764293614863, + -0.014392237762357596, + -0.015580958189327476, + -0.016698413720176275, + -0.01773199389509944, + -0.018683744848951855, + -0.019571300585636775, + -0.020439111770080065, + -0.021318139626770483, + -0.022214968554680692, + -0.02310097438424047, + -0.023970648000920414, + -0.02477136875428726, + -0.02549803960569791, + -0.026109893679683416, + -0.026559353181497325, + -0.026778628778694802, + -0.026756215096743974, + -0.026493483973698273, + -0.02604703344905701, + -0.02545445059257151, + -0.024743471617882096, + -0.023952792694322433, + -0.023102930763377605, + -0.022243456238356663, + -0.021397756558367953, + -0.02056970781883205, + -0.01971749912443027, + -0.0188271551253702, + -0.017850923930038343, + -0.01680013247041723, + -0.015673258411948277, + -0.014471264280359608, + -0.013193599327391003, + -0.01187368404303879, + -0.01055565992725338, + -0.009296481900820386, + -0.008132039729191687, + -0.0070716362199005345, + -0.006128568898451259, + -0.0052865001340022255, + -0.0045456492825279304, + -0.0038973348009049835, + -0.003329389527091553, + -0.0028101339514203794, + -0.002332348945620233, + -0.0018849258190033469, + -0.001474238391484195, + -0.001109295740135685, + -0.0007967999728720199, + -0.0005427267950997017, + -0.00034962767642116033, + -0.00021355275962980924, + -0.00012754835863071357, + -7.521403997678977e-5, + -4.2377960831230244e-5, + -2.3399366072096583e-5, + -1.155246488493411e-5, + -3.857493830250469e-6, + -3.4004306626034264e-7, + -2.107237896953329e-7, + -8.525148202376265e-7, + -3.5957268218478333e-7, + 3.3989829417713224e-7, + -1.0427903164855756e-6, + -4.955870676892626e-6, + -1.1381443836333549e-5, + -2.2981306793623535e-5, + -4.112589832327984e-5, + -7.002082487772565e-5, + -0.00012083314322763883, + -0.00020556177858604974, + -0.0003370352944252475, + -0.0005264683267878212, + -0.000772918320887217, + -0.0010795608457576655, + -0.0014346703801064176, + -0.001828064719593292, + -0.002252134252928417, + -0.002708278842110834, + -0.003213433417906142, + -0.003785418191732781, + -0.004434236902257915, + -0.0051688304515364325, + -0.0060095114069020905, + -0.0069569174155765245, + -0.00802788227070067, + -0.009209556901219162, + -0.010473310991493234, + -0.011765708258581198, + -0.013055435808161986, + -0.014303078656939194, + -0.01550321864097326, + -0.016626285868811708, + -0.017657458647212965, + -0.018608652390867342, + -0.019499161136530052, + -0.020372782566926317, + -0.021258628143435043, + -0.022159840401203112, + -0.023042802830200493, + -0.02390785382808336, + -0.024715596307010423, + -0.02545957648271785, + -0.026086595248850875, + -0.02654370807121237, + -0.026770125233242403, + -0.026755689800704585, + -0.026507912746533024, + -0.026080258741740747, + -0.025503239941840894, + -0.024795491504948586, + -0.024003433908070415, + -0.023153198169063027, + -0.022299898085989978, + -0.02146316273406418, + -0.020641094374301394, + -0.019786863077577987, + -0.018891767657472025, + -0.01791992413173965, + -0.016880410577639948, + -0.015761973178840316, + -0.014561325227339716, + -0.013283631274602303, + -0.011959770179467033, + -0.010637958730366603, + -0.009377984134090689, + -0.008212656675826546, + -0.007143978679945429, + -0.006189806138338583, + -0.005340569005494122, + -0.004596221145796109, + -0.003943784376471804, + -0.0033715134448296658, + -0.002848517078785806, + -0.002365309066691912, + -0.0019127797343644337, + -0.0015009734838772326, + -0.0011347831940243247, + -0.0008168325898932349, + -0.0005570375970271879, + -0.0003607502198294532, + -0.00022133592781720113, + -0.00013110766850382705, + -7.764615910760275e-5, + -4.524018763080173e-5, + -2.4811084179288123e-5, + -1.1168774514236368e-5, + -4.5226900713957185e-6, + -1.2268116963976006e-6, + 5.341301866912396e-7, + -2.978481387638787e-7, + -1.2079390477315322e-6, + 1.4306435558442132e-7, + 1.0543318273992242e-7, + -4.740712521433821e-6, + -1.1663196914923901e-5, + -2.184795181264798e-5, + -3.924737535948575e-5, + -6.843595988886841e-5, + -0.00011691308435118897, + -0.0001971106890844565, + -0.00032588538937200484, + -0.0005122898084002347, + -0.0007543388203815615, + -0.001057458450361204, + -0.0014105691704512924, + -0.0017993994754232356, + -0.0022173723904829745, + -0.002670550338374378, + -0.0031750624753036916, + -0.0037427583461613345, + -0.004384547622783341, + -0.005111945255688255, + -0.0059448230191676, + -0.006885494459119901, + -0.007953907163347151, + -0.00913204599862788, + -0.010387325018339999, + -0.011672810478946083, + -0.012963206075247369, + -0.01421741201987814, + -0.01542382471455822, + -0.01655200513160865, + -0.01758257958993975, + -0.01853130627063121, + -0.01942460428185716, + -0.020310100705586143, + -0.021201825633477445, + -0.02209965401805064, + -0.022978862498310826, + -0.023847200925220857, + -0.02466250752278243, + -0.025419308240895944, + -0.02606180904236921, + -0.026527228511130152, + -0.026757024773209404, + -0.026751417997558702, + -0.02652450229396547, + -0.026116574883419008, + -0.025550369769222037, + -0.024843676450873375, + -0.02405059127566722, + -0.02320285071701006, + -0.022359541743848632, + -0.021530894789630384, + -0.020708832464720106, + -0.019852188895760015, + -0.018957729794692735, + -0.01799027839221151, + -0.016959793050773886, + -0.01585195044468496, + -0.014653387975238408, + -0.013370227697641957, + -0.012042935422095002, + -0.010723990282565599, + -0.00946360631749793, + -0.008291662321220916, + -0.007214981825172495, + -0.006253332658071431, + -0.0053952895745129625, + -0.004646061055782746, + -0.003992450078615983, + -0.0034158463831954755, + -0.0028849003212356727, + -0.002396853676758015, + -0.0019435497800917023, + -0.001529314289388628, + -0.0011591010514387934, + -0.0008371895555017161, + -0.0005730830424552358, + -0.00037067947691438174, + -0.0002280888887371546, + -0.0001368748839220002, + -8.100953435008496e-5, + -4.621152390943406e-5, + -2.6128808832015515e-5, + -1.2804485700623758e-5, + -4.28958953191394e-6, + -6.50288889181283e-7, + -2.9569733528411746e-7, + -6.888021282236423e-7, + -2.713417557309583e-8, + 3.4271082727244107e-7, + -9.394340142465651e-7, + -4.14514631869034e-6, + -1.0359989626951283e-5, + -2.17607158166655e-5, + -3.880220780067001e-5, + -6.52015094205205e-5, + -0.00011211132637162224, + -0.00019086148878633136, + -0.00031507016629045426, + -0.0004965495696440669, + -0.0007366331563553041, + -0.0010376133744781635, + -0.001385055371008359, + -0.0017687249664692928, + -0.002184007491714879, + -0.002634131064755074, + -0.00313588902368378, + -0.0037001489299952617, + -0.0043358237445217385, + -0.005053530027821995, + -0.005879702092965899, + -0.006816788439631627, + -0.007881289002144187, + -0.00905219387097278, + -0.010300026683833952, + -0.011580427478964261, + -0.012870780247450753, + -0.01413309032829696, + -0.015347381981574093, + -0.016475076255822174, + -0.0175019512396824, + -0.018454937807445393, + -0.019355529969345364, + -0.02024696040827456, + -0.0211420787506032, + -0.022040233239898566, + -0.02291510620777487, + -0.02378320601265732, + -0.024611051766874226, + -0.025385365155208894, + -0.026036261155826412, + -0.026503663687356183, + -0.026741564968396137, + -0.02675113611142199, + -0.026544001881338042, + -0.026154092400091034, + -0.025596250517267438, + -0.02488884981023637, + -0.024096846131145544, + -0.023255584127896856, + -0.022421441585677437, + -0.021598500527533204, + -0.020776628710940326, + -0.01991629215503865, + -0.019021202868165776, + -0.018062551458301934, + -0.017044180510609075, + -0.015941264958230117, + -0.014740785561412895, + -0.013456985856615922, + -0.01212845544973623, + -0.010809518161555454, + -0.009549344155971085, + -0.008373450978070462, + -0.007285478330960604, + -0.006313682574516699, + -0.005451356324852774, + -0.004699617547942514, + -0.004040367463081784, + -0.003457478054184393, + -0.0029225121849951186, + -0.0024298566692764756, + -0.0019731505968220153, + -0.0015578717960547106, + -0.0011853376596910326, + -0.0008568856691547055, + -0.0005874386200567239, + -0.00038234241269580194, + -0.00023609566313376185, + -0.0001409715445409021, + -8.411603209990126e-5, + -4.9491409891744276e-5, + -2.7171895532251966e-5, + -1.2426705093881996e-5, + -5.252977560377126e-6, + -1.3257582618941832e-6, + 5.953077203413315e-7, + -1.6176274608703523e-7, + -1.068350602873025e-6, + 3.7989227741341836e-7, + 1.3343631233286857e-7, + -4.2344827840823385e-6, + -1.0831069474137589e-5, + -2.063140231695071e-5, + -3.7033891220172865e-5, + -6.379577195553265e-5, + -0.0001078944078590216, + -0.00018266797672522594 ], "datatype": "Float64", "type": "series" }, - "deflection_x_solid_1": { - "n_values": 201, + "deflection_y_solid_1": { + "n_values": 1001, "time": [ 0.0, 0.01, @@ -619,211 +2219,1811 @@ 1.97, 1.98, 1.99, - 2.0 + 2.0, + 2.0100000000000002, + 2.02, + 2.0300000000000002, + 2.04, + 2.05, + 2.06, + 2.07, + 2.08, + 2.09, + 2.1, + 2.11, + 2.12, + 2.13, + 2.14, + 2.15, + 2.16, + 2.17, + 2.18, + 2.19, + 2.2, + 2.21, + 2.22, + 2.23, + 2.24, + 2.25, + 2.2600000000000002, + 2.27, + 2.2800000000000002, + 2.29, + 2.3000000000000003, + 2.31, + 2.32, + 2.33, + 2.34, + 2.35, + 2.36, + 2.37, + 2.38, + 2.39, + 2.4, + 2.41, + 2.42, + 2.43, + 2.44, + 2.45, + 2.46, + 2.47, + 2.48, + 2.49, + 2.5, + 2.5100000000000002, + 2.52, + 2.5300000000000002, + 2.54, + 2.5500000000000003, + 2.56, + 2.57, + 2.58, + 2.59, + 2.6, + 2.61, + 2.62, + 2.63, + 2.64, + 2.65, + 2.66, + 2.67, + 2.68, + 2.69, + 2.7, + 2.71, + 2.72, + 2.73, + 2.74, + 2.75, + 2.7600000000000002, + 2.77, + 2.7800000000000002, + 2.79, + 2.8000000000000003, + 2.81, + 2.82, + 2.83, + 2.84, + 2.85, + 2.86, + 2.87, + 2.88, + 2.89, + 2.9, + 2.91, + 2.92, + 2.93, + 2.94, + 2.95, + 2.96, + 2.97, + 2.98, + 2.99, + 3.0, + 3.0100000000000002, + 3.02, + 3.0300000000000002, + 3.04, + 3.0500000000000003, + 3.06, + 3.0700000000000003, + 3.08, + 3.09, + 3.1, + 3.11, + 3.12, + 3.13, + 3.14, + 3.15, + 3.16, + 3.17, + 3.18, + 3.19, + 3.2, + 3.21, + 3.22, + 3.23, + 3.24, + 3.25, + 3.2600000000000002, + 3.27, + 3.2800000000000002, + 3.29, + 3.3000000000000003, + 3.31, + 3.3200000000000003, + 3.33, + 3.34, + 3.35, + 3.36, + 3.37, + 3.38, + 3.39, + 3.4, + 3.41, + 3.42, + 3.43, + 3.44, + 3.45, + 3.46, + 3.47, + 3.48, + 3.49, + 3.5, + 3.5100000000000002, + 3.52, + 3.5300000000000002, + 3.54, + 3.5500000000000003, + 3.56, + 3.5700000000000003, + 3.58, + 3.59, + 3.6, + 3.61, + 3.62, + 3.63, + 3.64, + 3.65, + 3.66, + 3.67, + 3.68, + 3.69, + 3.7, + 3.71, + 3.72, + 3.73, + 3.74, + 3.75, + 3.7600000000000002, + 3.77, + 3.7800000000000002, + 3.79, + 3.8000000000000003, + 3.81, + 3.8200000000000003, + 3.83, + 3.84, + 3.85, + 3.86, + 3.87, + 3.88, + 3.89, + 3.9, + 3.91, + 3.92, + 3.93, + 3.94, + 3.95, + 3.96, + 3.97, + 3.98, + 3.99, + 4.0, + 4.01, + 4.0200000000000005, + 4.03, + 4.04, + 4.05, + 4.0600000000000005, + 4.07, + 4.08, + 4.09, + 4.1, + 4.11, + 4.12, + 4.13, + 4.14, + 4.15, + 4.16, + 4.17, + 4.18, + 4.19, + 4.2, + 4.21, + 4.22, + 4.23, + 4.24, + 4.25, + 4.26, + 4.2700000000000005, + 4.28, + 4.29, + 4.3, + 4.3100000000000005, + 4.32, + 4.33, + 4.34, + 4.3500000000000005, + 4.36, + 4.37, + 4.38, + 4.39, + 4.4, + 4.41, + 4.42, + 4.43, + 4.44, + 4.45, + 4.46, + 4.47, + 4.48, + 4.49, + 4.5, + 4.51, + 4.5200000000000005, + 4.53, + 4.54, + 4.55, + 4.5600000000000005, + 4.57, + 4.58, + 4.59, + 4.6000000000000005, + 4.61, + 4.62, + 4.63, + 4.64, + 4.65, + 4.66, + 4.67, + 4.68, + 4.69, + 4.7, + 4.71, + 4.72, + 4.73, + 4.74, + 4.75, + 4.76, + 4.7700000000000005, + 4.78, + 4.79, + 4.8, + 4.8100000000000005, + 4.82, + 4.83, + 4.84, + 4.8500000000000005, + 4.86, + 4.87, + 4.88, + 4.89, + 4.9, + 4.91, + 4.92, + 4.93, + 4.94, + 4.95, + 4.96, + 4.97, + 4.98, + 4.99, + 5.0, + 5.01, + 5.0200000000000005, + 5.03, + 5.04, + 5.05, + 5.0600000000000005, + 5.07, + 5.08, + 5.09, + 5.1000000000000005, + 5.11, + 5.12, + 5.13, + 5.14, + 5.15, + 5.16, + 5.17, + 5.18, + 5.19, + 5.2, + 5.21, + 5.22, + 5.23, + 5.24, + 5.25, + 5.26, + 5.2700000000000005, + 5.28, + 5.29, + 5.3, + 5.3100000000000005, + 5.32, + 5.33, + 5.34, + 5.3500000000000005, + 5.36, + 5.37, + 5.38, + 5.39, + 5.4, + 5.41, + 5.42, + 5.43, + 5.44, + 5.45, + 5.46, + 5.47, + 5.48, + 5.49, + 5.5, + 5.51, + 5.5200000000000005, + 5.53, + 5.54, + 5.55, + 5.5600000000000005, + 5.57, + 5.58, + 5.59, + 5.6000000000000005, + 5.61, + 5.62, + 5.63, + 5.64, + 5.65, + 5.66, + 5.67, + 5.68, + 5.69, + 5.7, + 5.71, + 5.72, + 5.73, + 5.74, + 5.75, + 5.76, + 5.7700000000000005, + 5.78, + 5.79, + 5.8, + 5.8100000000000005, + 5.82, + 5.83, + 5.84, + 5.8500000000000005, + 5.86, + 5.87, + 5.88, + 5.89, + 5.9, + 5.91, + 5.92, + 5.93, + 5.94, + 5.95, + 5.96, + 5.97, + 5.98, + 5.99, + 6.0, + 6.01, + 6.0200000000000005, + 6.03, + 6.04, + 6.05, + 6.0600000000000005, + 6.07, + 6.08, + 6.09, + 6.1000000000000005, + 6.11, + 6.12, + 6.13, + 6.140000000000001, + 6.15, + 6.16, + 6.17, + 6.18, + 6.19, + 6.2, + 6.21, + 6.22, + 6.23, + 6.24, + 6.25, + 6.26, + 6.2700000000000005, + 6.28, + 6.29, + 6.3, + 6.3100000000000005, + 6.32, + 6.33, + 6.34, + 6.3500000000000005, + 6.36, + 6.37, + 6.38, + 6.390000000000001, + 6.4, + 6.41, + 6.42, + 6.43, + 6.44, + 6.45, + 6.46, + 6.47, + 6.48, + 6.49, + 6.5, + 6.51, + 6.5200000000000005, + 6.53, + 6.54, + 6.55, + 6.5600000000000005, + 6.57, + 6.58, + 6.59, + 6.6000000000000005, + 6.61, + 6.62, + 6.63, + 6.640000000000001, + 6.65, + 6.66, + 6.67, + 6.68, + 6.69, + 6.7, + 6.71, + 6.72, + 6.73, + 6.74, + 6.75, + 6.76, + 6.7700000000000005, + 6.78, + 6.79, + 6.8, + 6.8100000000000005, + 6.82, + 6.83, + 6.84, + 6.8500000000000005, + 6.86, + 6.87, + 6.88, + 6.890000000000001, + 6.9, + 6.91, + 6.92, + 6.93, + 6.94, + 6.95, + 6.96, + 6.97, + 6.98, + 6.99, + 7.0, + 7.01, + 7.0200000000000005, + 7.03, + 7.04, + 7.05, + 7.0600000000000005, + 7.07, + 7.08, + 7.09, + 7.1000000000000005, + 7.11, + 7.12, + 7.13, + 7.140000000000001, + 7.15, + 7.16, + 7.17, + 7.18, + 7.19, + 7.2, + 7.21, + 7.22, + 7.23, + 7.24, + 7.25, + 7.26, + 7.2700000000000005, + 7.28, + 7.29, + 7.3, + 7.3100000000000005, + 7.32, + 7.33, + 7.34, + 7.3500000000000005, + 7.36, + 7.37, + 7.38, + 7.390000000000001, + 7.4, + 7.41, + 7.42, + 7.43, + 7.44, + 7.45, + 7.46, + 7.47, + 7.48, + 7.49, + 7.5, + 7.51, + 7.5200000000000005, + 7.53, + 7.54, + 7.55, + 7.5600000000000005, + 7.57, + 7.58, + 7.59, + 7.6000000000000005, + 7.61, + 7.62, + 7.63, + 7.640000000000001, + 7.65, + 7.66, + 7.67, + 7.68, + 7.69, + 7.7, + 7.71, + 7.72, + 7.73, + 7.74, + 7.75, + 7.76, + 7.7700000000000005, + 7.78, + 7.79, + 7.8, + 7.8100000000000005, + 7.82, + 7.83, + 7.84, + 7.8500000000000005, + 7.86, + 7.87, + 7.88, + 7.890000000000001, + 7.9, + 7.91, + 7.92, + 7.930000000000001, + 7.94, + 7.95, + 7.96, + 7.97, + 7.98, + 7.99, + 8.0, + 8.01, + 8.02, + 8.03, + 8.040000000000001, + 8.05, + 8.06, + 8.07, + 8.08, + 8.09, + 8.1, + 8.11, + 8.120000000000001, + 8.13, + 8.14, + 8.15, + 8.16, + 8.17, + 8.18, + 8.19, + 8.2, + 8.21, + 8.22, + 8.23, + 8.24, + 8.25, + 8.26, + 8.27, + 8.28, + 8.290000000000001, + 8.3, + 8.31, + 8.32, + 8.33, + 8.34, + 8.35, + 8.36, + 8.370000000000001, + 8.38, + 8.39, + 8.4, + 8.41, + 8.42, + 8.43, + 8.44, + 8.45, + 8.46, + 8.47, + 8.48, + 8.49, + 8.5, + 8.51, + 8.52, + 8.53, + 8.540000000000001, + 8.55, + 8.56, + 8.57, + 8.58, + 8.59, + 8.6, + 8.61, + 8.620000000000001, + 8.63, + 8.64, + 8.65, + 8.66, + 8.67, + 8.68, + 8.69, + 8.700000000000001, + 8.71, + 8.72, + 8.73, + 8.74, + 8.75, + 8.76, + 8.77, + 8.78, + 8.790000000000001, + 8.8, + 8.81, + 8.82, + 8.83, + 8.84, + 8.85, + 8.86, + 8.870000000000001, + 8.88, + 8.89, + 8.9, + 8.91, + 8.92, + 8.93, + 8.94, + 8.950000000000001, + 8.96, + 8.97, + 8.98, + 8.99, + 9.0, + 9.01, + 9.02, + 9.03, + 9.040000000000001, + 9.05, + 9.06, + 9.07, + 9.08, + 9.09, + 9.1, + 9.11, + 9.120000000000001, + 9.13, + 9.14, + 9.15, + 9.16, + 9.17, + 9.18, + 9.19, + 9.200000000000001, + 9.21, + 9.22, + 9.23, + 9.24, + 9.25, + 9.26, + 9.27, + 9.28, + 9.290000000000001, + 9.3, + 9.31, + 9.32, + 9.33, + 9.34, + 9.35, + 9.36, + 9.370000000000001, + 9.38, + 9.39, + 9.4, + 9.41, + 9.42, + 9.43, + 9.44, + 9.450000000000001, + 9.46, + 9.47, + 9.48, + 9.49, + 9.5, + 9.51, + 9.52, + 9.53, + 9.540000000000001, + 9.55, + 9.56, + 9.57, + 9.58, + 9.59, + 9.6, + 9.61, + 9.620000000000001, + 9.63, + 9.64, + 9.65, + 9.66, + 9.67, + 9.68, + 9.69, + 9.700000000000001, + 9.71, + 9.72, + 9.73, + 9.74, + 9.75, + 9.76, + 9.77, + 9.78, + 9.790000000000001, + 9.8, + 9.81, + 9.82, + 9.83, + 9.84, + 9.85, + 9.86, + 9.870000000000001, + 9.88, + 9.89, + 9.9, + 9.91, + 9.92, + 9.93, + 9.94, + 9.950000000000001, + 9.96, + 9.97, + 9.98, + 9.99, + 10.0 ], "system_name": "solid", "values": [ 0.0, - -2.1756330070843433e-10, - -2.2100418084480822e-7, - -1.9337930595719754e-6, - -7.15719755761679e-6, - -1.699414945055544e-5, - -3.247813817780498e-5, - -5.6334064594598665e-5, - -9.419166568847004e-5, - -0.00016076500953404738, - -0.0002686253037882391, - -0.0004282118707137905, - -0.0006525549443970324, - -0.0009368889659372437, - -0.0012744057695924793, - -0.0016503930373732434, - -0.0020637032900517327, - -0.0025151633586754096, - -0.0030123434648202108, - -0.0035536535429615546, - -0.004160148042896439, - -0.004842799352402949, - -0.005623387524363699, - -0.00652271959539108, - -0.007542186519394256, - -0.008666306415492708, - -0.009875820688804826, - -0.011152180565294934, - -0.012456721317893937, - -0.01376587157036857, - -0.01501536011680027, - -0.016182016342206007, - -0.017242672092570854, - -0.018222713924354927, - -0.01914856284802463, - -0.020052576126791788, - -0.020921651186696755, - -0.021775791318498605, - -0.0226270729420171, - -0.023476916171420614, - -0.02432516717399741, - -0.025122436113650726, - -0.025810602521772696, - -0.026327135099245003, - -0.026652523706377884, - -0.02676092378438716, - -0.026673106123183576, - -0.026359043855387565, - -0.025846753184019633, - -0.025161775335375725, - -0.02437012266675137, - -0.023533429235594094, - -0.02269368008817596, - -0.021842732756544192, - -0.020981542811969844, - -0.02011148973505439, - -0.01921552247554592, - -0.018298845999811186, - -0.017323645042940483, - -0.01626564478768594, - -0.01509851085647218, - -0.013847603369780026, - -0.012543041896780571, - -0.011244067892000054, - -0.009964543537563875, - -0.008744894422716143, - -0.007612985439847342, - -0.0065878756541087324, - -0.0056830968442680985, - -0.004897413547013951, - -0.004210043583633083, - -0.003596444518287889, - -0.0030481827317133114, - -0.002548824449322973, - -0.0020971320747072975, - -0.0016802598977576633, - -0.0012990956214399274, - -0.0009578760928288244, - -0.0006689510898841844, - -0.0004399614712399247, - -0.000277687502679147, - -0.00016796187699824605, - -9.798680592421061e-5, - -5.776171716631584e-5, - -3.411640866690657e-5, - -1.8288540930722075e-5, - -6.611563267366893e-6, - -1.637246566377204e-6, - -1.2079141871179644e-6, - 6.109989325597809e-8, - 9.90211940110619e-7, - -4.7158172294947676e-7, - -1.155372552574807e-6, - -1.125082896846763e-6, - -6.221763995450935e-6, - -1.7296886459849947e-5, - -3.156910650436995e-5, - -5.291858400696681e-5, - -9.045203673768709e-5, - -0.00015584856834061078, - -0.0002593311922266528, - -0.0004152403844412955, - -0.0006375936894934542, - -0.0009170587738491776, - -0.0012479294597174118, - -0.0016204192917561033, - -0.0020328303679438275, - -0.0024820093456179304, - -0.002974814797047143, - -0.0035116246552760466, - -0.004111177646980324, - -0.004787219401732434, - -0.0055641530495380565, - -0.006460360043450408, - -0.007470234130493636, - -0.008584303409675198, - -0.009788332034532443, - -0.01106334241007878, - -0.012369154626809375, - -0.01368236148576224, - -0.014932893894116284, - -0.016095455973466954, - -0.01715752824654415, - -0.018148998114042858, - -0.019086382322233364, - -0.019989721050547193, - -0.020855195438736818, - -0.02170873020773989, - -0.02256351208630375, - -0.023419696911116727, - -0.024279046909109037, - -0.0250821750809197, - -0.02577080444444535, - -0.026291855403502873, - -0.0266328933576514, - -0.026763480057147404, - -0.026693815405545496, - -0.026389039202911357, - -0.02587832265884693, - -0.02519812758927653, - -0.024418302570517247, - -0.02359504084980868, - -0.022758303889317877, - -0.02190531912728494, - -0.02104182469554461, - -0.020172316070656948, - -0.01928197694131384, - -0.018376818168475806, - -0.017407474578100435, - -0.01634598822558797, - -0.015177478641247799, - -0.013932301187090601, - -0.012634356209424769, - -0.011335042421828811, - -0.01005191637238334, - -0.008825257853744606, - -0.007684279468636757, - -0.006651891937913823, - -0.005745346949148966, - -0.004954926350400346, - -0.0042585666091554675, - -0.003637613335275014, - -0.003086105481682977, - -0.0025842350352091037, - -0.0021300740114216232, - -0.0017107961129585458, - -0.0013247092020232665, - -0.0009775641261556833, - -0.0006849313658447431, - -0.00045414040724101046, - -0.0002875596324058982, - -0.00017336716956856124, - -0.00010221672020205297, - -6.108159827078463e-5, - -3.471367962554206e-5, - -1.8042666614315195e-5, - -7.736640851296883e-6, - -2.3200512582755017e-6, - -2.1832897034723686e-7, - 2.4258315461933577e-7, - -1.3675958038250613e-7, - -3.0634101139126457e-7, - -2.1865598703874056e-7, - -1.6306510303154553e-6, - -6.687458170451244e-6, - -1.583496259682793e-5, - -2.9990934546197945e-5, - -5.151898204275307e-5, - -8.676882797858942e-5, - -0.0001492452130041344, - -0.0002513773595965163, - -0.00040434978938497235, - -0.000621248130856733, - -0.0008955814982737897, - -0.0012228700000225246, - -0.0015915343507157398, - -0.0020012063926695967, - -0.002449662683355114, - -0.0029382413338196467, - -0.00346788756493277, - -0.004061274063364373 + -9.999999694490329e-5, + -0.0004002104529763906, + -0.0008816290135478869, + -0.0014819663072841004, + -0.002421187979073078, + -0.0038076516010521547, + -0.005648625489504275, + -0.00794195040440847, + -0.01057984081113615, + -0.013510515094945429, + -0.016820065447425037, + -0.02045879820954074, + -0.024231236677467745, + -0.02807795374790227, + -0.03184733328762023, + -0.035580878461099114, + -0.03939392365112303, + -0.04329172639672841, + -0.04719185436188409, + -0.05116248753925238, + -0.055184397479241934, + -0.05937833046436138, + -0.06385371540538595, + -0.06847195825413889, + -0.07310402288419833, + -0.07768658744086562, + -0.08214544666638714, + -0.08648071487522539, + -0.09070298393819466, + -0.09460137144941656, + -0.09815230845427837, + -0.10135640984341644, + -0.10426394883091958, + -0.10700744297735773, + -0.10964558698706617, + -0.11205455485746765, + -0.11428052238175226, + -0.11634870618017153, + -0.11827644343025388, + -0.1201461157255695, + -0.12182183690468204, + -0.12315797030595457, + -0.12411960507860448, + -0.12467800850071943, + -0.12484504264410638, + -0.12472731552108443, + -0.12419298508048728, + -0.12323087588306189, + -0.1218896755918661, + -0.12023189134501368, + -0.118412181042298, + -0.11652290333100561, + -0.11445399765358626, + -0.11220748543553088, + -0.10979560602751454, + -0.10718784802737048, + -0.10448961970524452, + -0.10160775689027104, + -0.09840525934865241, + -0.09484598997917568, + -0.0909509406985766, + -0.08676443629119322, + -0.08247510059422765, + -0.07802761801321086, + -0.07341837038186773, + -0.06876124025208676, + -0.06414514522320548, + -0.05969611561757681, + -0.05551291087453288, + -0.05146846208633783, + -0.047464278195200015, + -0.04354675848780695, + -0.03965860701421804, + -0.035872799120218804, + -0.03214746679191203, + -0.028347187289547222, + -0.02446431513593806, + -0.020682219452483393, + -0.01706186818068746, + -0.013759936717255304, + -0.010793332629496978, + -0.008094063054269773, + -0.0057665158743375475, + -0.003920589809450354, + -0.0025349004046703004, + -0.0015776671684910003, + -0.0009348859526168273, + -0.0004099895799291025, + -9.398894440573041e-5, + -4.736086471085477e-6, + -0.00011386859676626969, + -0.0003939504718591443, + -0.0008200036963300645, + -0.0013810280765953649, + -0.002320441704724026, + -0.0037161000908306025, + -0.005532780824517324, + -0.007774217411311773, + -0.010360384576840244, + -0.013274413165278984, + -0.01659366350142498, + -0.020236688666540974, + -0.02399014534357772, + -0.02780227298386176, + -0.03154778527946199, + -0.03529389833073747, + -0.03913947790999718, + -0.04303966011385506, + -0.04690869550675093, + -0.0508426478417904, + -0.05485968542761958, + -0.059076279772555765, + -0.06356865632142941, + -0.06816910490969925, + -0.07277443889510046, + -0.07734594478681064, + -0.08182352771011481, + -0.08619999746839815, + -0.09045307405772851, + -0.09434906492776392, + -0.0978849013290862, + -0.10109737130330974, + -0.10404751768986385, + -0.1068403529781939, + -0.10948773205323356, + -0.11187927858162461, + -0.1140974266463228, + -0.11618471469547437, + -0.11814872923437206, + -0.12005725682093603, + -0.12174578056363054, + -0.12307576469817712, + -0.12403853738902056, + -0.12462852305270511, + -0.12485565321249395, + -0.12478384675645764, + -0.12425561420036642, + -0.12328450157174989, + -0.12195455408658434, + -0.12033222792017643, + -0.11855897283035584, + -0.11669158703394931, + -0.11461607626494254, + -0.11235541113382133, + -0.10994766241946005, + -0.10737438199367492, + -0.10472551231379372, + -0.10186120663345342, + -0.09864403884227516, + -0.09507883580610925, + -0.0912070913332146, + -0.08706663901985813, + -0.08280851355206793, + -0.07835738745869326, + -0.07372456097649331, + -0.06905534282071156, + -0.06444476857337827, + -0.06002188044735792, + -0.05584672184557242, + -0.05177018433291986, + -0.04772552583294914, + -0.043802408607105235, + -0.03994046094796023, + -0.036178939954043726, + -0.032439571618765095, + -0.028598918297801784, + -0.024698350137036, + -0.02092296643509245, + -0.017314170479862646, + -0.014003912988280909, + -0.010999556905126811, + -0.008244028029048833, + -0.005888141561253805, + -0.004040332862647818, + -0.002657032746404167, + -0.0016739284176130655, + -0.0009760176275631083, + -0.0004091601464740139, + -9.797819695604726e-5, + -2.7295376154144388e-5, + -0.00012700611487175516, + -0.0003700924271035685, + -0.0007493600722452889, + -0.0012892507017099007, + -0.002231964728974944, + -0.003626031556716886, + -0.00541029058475084, + -0.007600736131332679, + -0.010136127934572579, + -0.01304182357046666, + -0.016379723160080812, + -0.020019321114126375, + -0.023734977525507094, + -0.02751192983352494, + -0.03125198234038298, + -0.03502268039315235, + -0.03888986799954096, + -0.04277537143167436, + -0.04661407672764943, + -0.050523628366006726, + -0.054541164604606396, + -0.05878021413463055, + -0.06328663066841025, + -0.06786010033805061, + -0.07243304553226082, + -0.07700116551696876, + -0.08151428362024096, + -0.08593390065670065, + -0.09019749831343955, + -0.09407640046893129, + -0.09761202205141058, + -0.10085222960994816, + -0.10384186952468648, + -0.10667155153735706, + -0.10932340957587817, + -0.11169892389121738, + -0.11391086617103857, + -0.11602377410790925, + -0.11803427331703435, + -0.11997655848869196, + -0.12165717635604736, + -0.12297673588003794, + -0.1239597387830286, + -0.12459523888805693, + -0.12487450372802887, + -0.12483411193995783, + -0.12430690333761234, + -0.12333336527109107, + -0.12202142288866298, + -0.12043984645574984, + -0.11871637646038978, + -0.11685934106785505, + -0.11476279798859952, + -0.11249300364063052, + -0.11010901307355268, + -0.10757663514325431, + -0.10496283666904319, + -0.10210055472040508, + -0.09887344367642242, + -0.09531284576468638, + -0.09146732066271081, + -0.08737380832463251, + -0.0831462043872528, + -0.07867858693407202, + -0.07401533594851034, + -0.06934594867254573, + -0.06475898127302941, + -0.06036013659244854, + -0.056169616921540405, + -0.05205183612717804, + -0.0479848003786445, + -0.04407143263315339, + -0.040227936822849975, + -0.03647993872089339, + -0.032723173374200464, + -0.028844734315906513, + -0.0249298882528938, + -0.021168866217836806, + -0.01757602077523127, + -0.014249585040511957, + -0.011190011809819825, + -0.008383126989390092, + -0.006020615664724746, + -0.004177690840429584, + -0.0027788044867968053, + -0.0017559514599616403, + -0.0010088828129994603, + -0.0004145154261475433, + -0.00011350618028307773, + -5.3973021163470844e-5, + -0.00013820162282369985, + -0.0003396580384425179, + -0.0006725352314661866, + -0.0012025313767029637, + -0.00216098010374724, + -0.0035438520695702767, + -0.005277507472826582, + -0.007414917033782482, + -0.009919312527913293, + -0.012828409870973173, + -0.016174258338952575, + -0.019793838439816032, + -0.023474078534502216, + -0.02722453663502898, + -0.030962245773689008, + -0.034760826806396306, + -0.03864889185957176, + -0.042508861593863335, + -0.046307603263455135, + -0.05020277038942568, + -0.05423938096966105, + -0.05850179521592251, + -0.06299923456245723, + -0.06753391253370737, + -0.07208940305078514, + -0.0766709128627516, + -0.08121487965306493, + -0.085666362899278, + -0.08993470324410258, + -0.09379757298155667, + -0.09733537721518525, + -0.10061032075204074, + -0.10364818743684431, + -0.10650747310426481, + -0.10914452573186331, + -0.11150146781614644, + -0.1137280891121079, + -0.11587753119253641, + -0.11792436756329687, + -0.1198853070383163, + -0.12155573195920368, + -0.1228719369317116, + -0.12388114249183743, + -0.12456705764948445, + -0.12489983602507015, + -0.12487756518873395, + -0.12433839380350595, + -0.1233709854795002, + -0.12209639214191845, + -0.12056017422282612, + -0.11886983140332583, + -0.11701066952157757, + -0.11489918245667204, + -0.11263134137544537, + -0.11027189583197927, + -0.10778339216095568, + -0.10520255562658468, + -0.10232962318110317, + -0.0990854211202378, + -0.0955435366863083, + -0.09174287312356087, + -0.08769242052993295, + -0.08347226714640471, + -0.07898166227783487, + -0.07430582283546514, + -0.06964831240633301, + -0.06508092088405354, + -0.06069768590573297, + -0.05648830284623558, + -0.05232731341010083, + -0.04824289791269005, + -0.04434748019501816, + -0.040529904205849135, + -0.0367840330858683, + -0.03299294746210016, + -0.02908067893407397, + -0.025174331942030805, + -0.02143348634264395, + -0.0178407515105106, + -0.014485645259109767, + -0.01137566328626518, + -0.008529174940091672, + -0.006164521856747209, + -0.004324092194034236, + -0.002904630526853645, + -0.0018333717723350886, + -0.0010326396951369273, + -0.00042671645018787716, + -0.0001488115328156809, + -8.985469788583625e-5, + -0.00013763292978582163, + -0.00029803738319932223, + -0.0006017269388264926, + -0.0011330835167534716, + -0.002097162985517929, + -0.003456083117925293, + -0.0051399243654926385, + -0.007228329580372004, + -0.009704615889094608, + -0.012624132253576543, + -0.01597848218307694, + -0.019563715167582867, + -0.02319765154855885, + -0.026931169411892025, + -0.030687096713370686, + -0.034513962996129285, + -0.03840029480627755, + -0.04222245987977599, + -0.04599759398334125, + -0.04989283241215139, + -0.05394481746057069, + -0.05822141501157831, + -0.06270478094818882, + -0.06719983086270614, + -0.07174033222810089, + -0.07634366605422836, + -0.08092623668724039, + -0.0854012183116379, + -0.08965426064074622, + -0.09350215336178835, + -0.0970639185295955, + -0.10038204635648715, + -0.1034561242202705, + -0.10633251307184928, + -0.1089540531430461, + -0.11130009726136825, + -0.11354706565457338, + -0.11573805111533227, + -0.11782168231439356, + -0.11978622695373695, + -0.1214356661590669, + -0.12276102236255353, + -0.12381563106822807, + -0.1245505814450735, + -0.12492112993146973, + -0.12490591325726555, + -0.12436269198032388, + -0.12341199260505452, + -0.12217645726608518, + -0.12068662205081972, + -0.11902716397585823, + -0.11715339914979925, + -0.11502158907157072, + -0.11277009547060306, + -0.11045255040847093, + -0.1080027428303059, + -0.10543081752199751, + -0.10254194595768816, + -0.09929841311694276, + -0.09578637874223314, + -0.09202432529326057, + -0.08801275112279494, + -0.08379460857658172, + -0.07927678545565081, + -0.07459194056151994, + -0.069959821721668, + -0.06541841791956886, + -0.06103764660562671, + -0.05679118750339832, + -0.05259405622781933, + -0.04851258129951599, + -0.044638462889809966, + -0.040833664751586, + -0.037079701687477415, + -0.03325514466852906, + -0.029317394360745888, + -0.025426384734283623, + -0.02170598124926365, + -0.018110139808860816, + -0.014713063504629243, + -0.011548308961391033, + -0.00867893920115831, + -0.006327773508623471, + -0.00447753788613424, + -0.00301774270510162, + -0.0018968104294643032, + -0.0010600303808038346, + -0.0004522352787185418, + -0.00018804494782152618, + -0.0001199257478792428, + -0.00013253384420712153, + -0.00025092770807910204, + -0.0005282103892910051, + -0.001073122789129589, + -0.0020449006338289118, + -0.0033637638315066184, + -0.004984919400364783, + -0.00703586939338538, + -0.009505126856887263, + -0.012435460889324111, + -0.015775387528777614, + -0.01931707870947693, + -0.022918172487975185, + -0.026646044835014912, + -0.03041912509976545, + -0.03426913851261677, + -0.03814710567414445, + -0.04192788932346079, + -0.0456824231095636, + -0.04958872518132916, + -0.05366480741151396, + -0.05794554276554512, + -0.06239531852782126, + -0.06685370877925731, + -0.07140001245884185, + -0.07603179847012383, + -0.08064151954229924, + -0.08512718381748763, + -0.08936506009882411, + -0.0932061501110891, + -0.09679652261368332, + -0.10016297127031155, + -0.10327332209819283, + -0.10615114919021465, + -0.10874623110361194, + -0.11109762004746747, + -0.11338380115660714, + -0.11561121742131265, + -0.1177125391770883, + -0.11967361704087508, + -0.12131272899584344, + -0.12265570139891456, + -0.12375512653928007, + -0.1245405193012797, + -0.12494364766552819, + -0.12492260171230463, + -0.12437398339499398, + -0.12345558321854647, + -0.12227277594276266, + -0.12082137171165214, + -0.1191715575122866, + -0.11727881150035989, + -0.11514462655871859, + -0.11291875472149857, + -0.1106382743509186, + -0.10822049291152525, + -0.10565236377457421, + -0.10274308055888884, + -0.09950456596364746, + -0.09603510371961552, + -0.09231950245822561, + -0.08833067917560727, + -0.08409684270780463, + -0.07956042679125351, + -0.0748868318614719, + -0.0702813151459741, + -0.06575512037652446, + -0.061369489040207004, + -0.05708482111651993, + -0.05285640902240557, + -0.04878458168267406, + -0.04493882995626368, + -0.041142169196863365, + -0.037362786487135674, + -0.03349965757195231, + -0.029557509605273292, + -0.025695949614874827, + -0.02198504617970102, + -0.018367028530740435, + -0.01492832629309842, + -0.011723700926138374, + -0.00884145064663597, + -0.006496563027509996, + -0.0046308616640061105, + -0.0031288619572619946, + -0.001954509290705805, + -0.0010856665337335564, + -0.0004901514327725603, + -0.00024263260761042509, + -0.0001479834100660618, + -0.00011188822797258621, + -0.00019916438774087927, + -0.00047272487737141933, + -0.0010309755897445674, + -0.0019895896667258307, + -0.0032600973422534383, + -0.004830640651745115, + -0.00685196063989864, + -0.009315608382456248, + -0.012254665883650494, + -0.015573810799493323, + -0.019062948182060314, + -0.02263329535506315, + -0.026369759575746762, + -0.03016949428966808, + -0.0340289890187689, + -0.03787951378166193, + -0.04162434843297616, + -0.04537683031851471, + -0.049298610034787596, + -0.0533894688856315, + -0.05766423179690899, + -0.06207827174161872, + -0.06650518852881297, + -0.07106352178269883, + -0.07572955378943198, + -0.08036382074689444, + -0.08484374740465392, + -0.0890570994490535, + -0.09290794805013436, + -0.0965450317687463, + -0.09995314041777552, + -0.10307973877612586, + -0.10595305710220362, + -0.10853498705881547, + -0.11090012509908524, + -0.11322297243380572, + -0.11548680042571921, + -0.11760209603494683, + -0.11954705309153338, + -0.12117494707861971, + -0.12255452446910187, + -0.12370962835351504, + -0.12453271280716824, + -0.12494855952871435, + -0.12492266013505902, + -0.12438549923153346, + -0.12350742839695027, + -0.12237242723243706, + -0.12095405928741214, + -0.11930702661183658, + -0.11739227446444579, + -0.11526252372458566, + -0.11307617607830538, + -0.11083609898494973, + -0.10843446952709383, + -0.10585477727579422, + -0.10293469630923588, + -0.09972010251427747, + -0.09629374692731855, + -0.09261484069732108, + -0.08864232338989445, + -0.08439164354622082, + -0.07983897791233661, + -0.07518512610909613, + -0.07061582123564412, + -0.06610139638786403, + -0.06169003726695431, + -0.05736275490246115, + -0.053124166420799694, + -0.049077496869536705, + -0.045246931433540145, + -0.0414411277686435, + -0.037635822861452534, + -0.033747614816537326, + -0.029807638384979955, + -0.025971918974827056, + -0.022268378115890098, + -0.018623751789922725, + -0.01513533323880436, + -0.011896195974166551, + -0.00901891728563155, + -0.00668250072910291, + -0.004782716362729492, + -0.003224576130636714, + -0.0020081423096889733, + -0.00112713217183418, + -0.0005443106735833567, + -0.00029494713264578525, + -0.00016682038639725082, + -8.823331223451435e-5, + -0.0001514035473367016, + -0.0004258291603224506, + -0.0009985227518015272, + -0.0019354837613342196, + -0.0031466556150023025, + -0.004667809203077947, + -0.006675867873802708, + -0.009144712911133198, + -0.012077265533852768, + -0.015355872799355243, + -0.018798977463642445, + -0.02235554492246317, + -0.026103382902888488, + -0.029922169084309003, + -0.03378387782112914, + -0.03760376415862829, + -0.041313921700745014, + -0.045071599650551415, + -0.04901949166806913, + -0.053122553365136195, + -0.05737129350753655, + -0.06174203264813847, + -0.06615699803523403, + -0.0707429028225572, + -0.0754347673149791, + -0.08007514681340645, + -0.08454471390663347, + -0.08874618627240177, + -0.0926149160066846, + -0.09629683927275175, + -0.09974536667475406, + -0.10288414751799867, + -0.10574139956969063, + -0.10831197281739399, + -0.11070923011525376, + -0.11307844259087146, + -0.11536394962361503, + -0.11747411115900777, + -0.119406561099642, + -0.12104278476443316, + -0.12246336264008535, + -0.12366774993756662, + -0.12452293096958449, + -0.12494555102785898, + -0.12491163165781592, + -0.12439561458742429, + -0.12357187324573987, + -0.12248488753733948, + -0.12108180437463689, + -0.11942498762388083, + -0.11750120295693146, + -0.1153924209491895, + -0.1132442959969702, + -0.11103502329219907, + -0.10864395807152441, + -0.10604987379344331, + -0.10312181483053481, + -0.09993923882253522, + -0.09656718386341727, + -0.0929182029804503, + -0.08894077956981224, + -0.08466931313912664, + -0.08012305148432114, + -0.07550183525021122, + -0.07095728927706696, + -0.06643833585341584, + -0.06200083853419657, + -0.05764171863947108, + -0.05339844390089505, + -0.049375842267407655, + -0.04556050197274683, + -0.0417380382303386, + -0.03789594522870311, + -0.033989093024443154, + -0.030069963658488463, + -0.02626341072377468, + -0.02254772203334071, + -0.01886269964156099, + -0.015335307972828168, + -0.012081514318284955, + -0.009207956338419403, + -0.006866262027360945, + -0.0049265420323131035, + -0.003314058220584717, + -0.0020590719618660096, + -0.0011748301880232515, + -0.0006088969157684587, + -0.00034766531450835733, + -0.00017120674113636943, + -5.2494384531996674e-5, + -0.00011066167693721089, + -0.00039628608312212814, + -0.0009677011911824913, + -0.0018669820762690532, + -0.0030247491930061625, + -0.004510174448682878, + -0.006509337831775424, + -0.008979225831788123, + -0.011899411735163063, + -0.015132345607620752, + -0.018527321485830927, + -0.02207819894128932, + -0.02585192704287074, + -0.02968679808156232, + -0.033528510901452604, + -0.03731011613809524, + -0.041006153541128236, + -0.044785108070461606, + -0.04875074698230589, + -0.052847492143434274, + -0.057068352209293606, + -0.061406518134411024, + -0.06581579837543679, + -0.0704288637336824, + -0.07514674887725449, + -0.07978602777335866, + -0.08423417737917614, + -0.08842732330148624, + -0.09233287674252406, + -0.0960662550498834, + -0.09953909776905069, + -0.10267229067671771, + -0.10552014565837353, + -0.10809725017316713, + -0.11052994330920252, + -0.11293806211132361, + -0.11523907292886576, + -0.11733877104716897, + -0.11925625320238636, + -0.12091121579107944, + -0.12238556010404279, + -0.12363556967152595, + -0.12450276822203347, + -0.124923711056109, + -0.12489635319462783, + -0.12441630529578412, + -0.12364326914796808, + -0.12259485284680594, + -0.1212013444503644, + -0.1195338511365069, + -0.11760298960642844, + -0.11552472208750911, + -0.11342484234046626, + -0.11123821587124835, + -0.10883612679181204, + -0.1062261198164682, + -0.10331234459625234, + -0.10017391957448434, + -0.09684339475384357, + -0.09320899844993644, + -0.08922741955298831, + -0.08494394016015168, + -0.08040801604497255, + -0.0758229791314535, + -0.0713051612194031, + -0.06677047273680466, + -0.06229544917887479, + -0.05791310731064705, + -0.05368495934868686, + -0.049688320576745534, + -0.045869528730992336, + -0.04201774837312567, + -0.038149135563949825, + -0.034240099717408705, + -0.030342596839255775, + -0.026556082156023307, + -0.02282251337063189, + -0.019094821215556182, + -0.015532106336726633, + -0.012274633989825874, + -0.009412622379166765, + -0.0070550808945133645, + -0.0050582302737519425, + -0.0033928929033376094, + -0.0021209537406373918, + -0.00124251272295226, + -0.0006773565009494421, + -0.00038997522844125623, + -0.00017079182729826461, + -2.172708812204875e-5, + -7.856800432571101e-5, + -0.0003750725920272733, + -0.0009425107997523535, + -0.0017951590173074274, + -0.002893575880858804, + -0.004354222810911348, + -0.006361853169552359, + -0.008828796482965787, + -0.011712634454515742, + -0.01489321794507327, + -0.01825866182623011, + -0.021819373351129927, + -0.02561053147020926, + -0.029445907973030774, + -0.033264294769461876, + -0.03701574814957759, + -0.0407023866590263, + -0.044506005005833064, + -0.04849024226228266, + -0.052572293151726464, + -0.05675188505428302, + -0.061063157479460096, + -0.06548548401951348, + -0.07013092405937985, + -0.07485721651803406, + -0.07947912379929421, + -0.08391329038558809, + -0.08811480659323143, + -0.09205956116254431, + -0.09583649118291936, + -0.0993283153520731, + -0.10245008933744143, + -0.10528726357973878, + -0.10788250337852645, + -0.11036406403583839, + -0.11280436128068753, + -0.11510011522903313, + -0.11718351694036692, + -0.11910532196828526, + -0.1207908259834254, + -0.1223121199491993, + -0.12359783093612023, + -0.12447383368941863, + -0.12489159250665498, + -0.12487447919704299, + -0.1244409900992068, + -0.12372639930113177, + -0.12270562006246072, + -0.12130275443818031, + -0.11962616086372688, + -0.11770991463585383, + -0.11567242792396135, + -0.11360836193103283, + -0.1114295082424883, + -0.10901721171521932, + -0.10640060697411957, + -0.10350485449018161, + -0.10041468190590813, + -0.09712728566300485, + -0.09349575083100506, + -0.08949745420779852, + -0.08521227090099928, + -0.0807076158810287, + -0.07616007027012299, + -0.07164960832623513, + -0.06708905738931217, + -0.06258648622291971, + -0.058193796944810125, + -0.05398105950461923, + -0.050007174336087715, + -0.04617840070164624, + -0.04228938310713032, + -0.03839599722413501, + -0.03450016619864185, + -0.030632979884378228, + -0.026854197036077172, + -0.023084070819193878, + -0.019316300654275226, + -0.015739465734268304, + -0.012486572432303023, + -0.009621762339744181, + -0.007236721437564715, + -0.00518549253820615, + -0.0034742162338689906, + -0.002189696251042407, + -0.0013190110109719804, + -0.0007532396008951316, + -0.0004282390052312325, + -0.00015735120622161446, + 1.0761437444358271e-5, + -6.550213665884423e-5, + -0.00036750403459956393, + -0.0009070668499435528, + -0.0017063247717944777, + -0.002763619096903286, + -0.00421313937105779, + -0.006222818803056789, + -0.008672973324212688, + -0.011518501435152888, + -0.01464942292460087, + -0.0179885910518986, + -0.021566305758867768, + -0.02537876999088532, + -0.029201670373018136, + -0.032982900459146945, + -0.03671179198435025, + -0.04040823088584618, + -0.04424117659856801, + -0.04822704769115748, + -0.0522809022200054, + -0.056426660976299024, + -0.06072478146063106, + -0.0651625457811867, + -0.06983661491646002, + -0.07456414505166098, + -0.07916160496156768, + -0.08358178366557578, + -0.08780479054887443, + -0.09180009700807969, + -0.09561395420591635, + -0.09910262699543627, + -0.10221002558971513, + -0.10505714331978058, + -0.10768218038191583, + -0.11020312958759915, + -0.11266543515834669, + -0.11495471001311622, + -0.11702296853812448, + -0.11895130850840598, + -0.12067753215236078, + -0.12225323890189918, + -0.12356043668735009, + -0.1244264517421286, + -0.12484822522076632, + -0.12486336023904451, + -0.12448159947223543, + -0.1238125202147845, + -0.1228063980646356, + -0.12139594977321504, + -0.11971806171201547, + -0.11782173937322159, + -0.11582942494548737, + -0.11379981990843613, + -0.11161496366675397, + -0.1091835629990543, + -0.10657102464359028, + -0.10371142403895783, + -0.10066922278002967, + -0.09740624197189696, + -0.09376704562221938, + -0.08976229088043064, + -0.08548587014911739, + -0.08101306881135616, + -0.07650270600041102, + -0.0719936644567013, + -0.06739608547924998, + -0.0628664882132618, + -0.05848046958533503, + -0.05429454100889909, + -0.05032938793789524, + -0.046469609115102235, + -0.04254702476833992, + -0.038650546102512826, + -0.03477264511501836, + -0.030923950726945787, + -0.027144927945569837, + -0.023338350296810327, + -0.019533639154211864, + -0.015948180035625086, + -0.01270645551110428, + -0.009838877106964143, + -0.0074118400566889325, + -0.00529547189151134, + -0.003552723542395988, + -0.0022758426393272154, + -0.0014074895997711577, + -0.00081908490197251, + -0.00045030444443963126, + -0.00014200634580975764, + 3.0540905429511656e-5, + -6.045722102597517e-5, + -0.00035839935921143026, + -0.0008667149910605125, + -0.001612678514687764, + -0.0026314915407621604, + -0.004081992173109879, + -0.0060984406760742765, + -0.008518046499513144, + -0.011309724617622183 ], "datatype": "Float64", "type": "series" From 8324939aad08a2c898d1d406b5e67713dc67ee3f Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 1 Mar 2024 15:37:34 +0100 Subject: [PATCH 210/212] update [skip ci] --- ...pare_reference_oscillating_beam_results.jl | 18 ------ .../validation_oscillating_beam_2d.jl | 61 ++++++++++++------- validation/validation_util.jl | 55 +++-------------- 3 files changed, 50 insertions(+), 84 deletions(-) delete mode 100644 validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl diff --git a/validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl b/validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl deleted file mode 100644 index 1a34380c5..000000000 --- a/validation/oscillating_beam_2d/compare_reference_oscillating_beam_results.jl +++ /dev/null @@ -1,18 +0,0 @@ -include("../validation_util.jl") - -using TrixiParticles -using JSON - -trixi_include(@__MODULE__, - joinpath(validation_dir(), "oscillating_beam_2d", - "validation_oscillating_beam_2d.jl"), - resolution=[5], tspan=(0, 2), saving_callback=nothing) - -reference_file_name = joinpath(validation_dir(), "oscillating_beam_2d", - "validation_reference_5.json") -run_file_name = joinpath("out", "validation_run_oscillating_beam_2d_5.json") - -reference_data = JSON.parsefile(reference_file_name) -run_data = JSON.parsefile(run_file_name) - -error = calculate_error(reference_data, run_data) diff --git a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl index 8be9e3e53..37ca171e5 100644 --- a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl +++ b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl @@ -15,25 +15,44 @@ using OrdinaryDiffEq tspan = (0, 10) +# Can be used to set the width wise resolution of beam, which needs to be odd, +# use 9, 21, 35 for validation # Note: 35 takes a very long time! -# resolution = [5, 9, 21, 35] -resolution = [5] -for res in resolution - # Overwrite `sol` assignment to skip time integration - trixi_include(@__MODULE__, - joinpath(examples_dir(), "solid", "oscillating_beam_2d.jl"), - n_particles_y=res, sol=nothing, tspan=tspan, - penalty_force=PenaltyForceGanzenmueller(alpha=0.01)) - - pp_callback = PostprocessCallback(; deflection_x, deflection_y, dt=0.01, - output_directory="out", - filename="validation_run_oscillating_beam_2d_$res", - write_csv=false, write_file_interval=0) - info_callback = InfoCallback(interval=2500) - saving_callback = SolutionSavingCallback(dt=0.5, prefix="validation_$res") - - callbacks = CallbackSet(info_callback, saving_callback, pp_callback) - - sol = solve(ode, RDPK3SpFSAL49(), abstol=1e-8, reltol=1e-6, dt=1e-5, - save_everystep=false, callback=callbacks) -end +n_particles_beam_y = 5 + +# Overwrite `sol` assignment to skip time integration +trixi_include(@__MODULE__, + joinpath(examples_dir(), "solid", "oscillating_beam_2d.jl"), + n_particles_y=n_particles_beam_y, sol=nothing, tspan=tspan, + penalty_force=PenaltyForceGanzenmueller(alpha=0.01)) + +pp_callback = PostprocessCallback(; deflection_x, deflection_y, dt=0.01, + output_directory="out", + filename="validation_run_oscillating_beam_2d_$n_particles_beam_y", + write_csv=false, write_file_interval=0) +info_callback = InfoCallback(interval=2500) +saving_callback = SolutionSavingCallback(dt=0.5, prefix="validation_$n_particles_beam_y") + +callbacks = CallbackSet(info_callback, saving_callback, pp_callback) + +sol = solve(ode, RDPK3SpFSAL49(), abstol=1e-8, reltol=1e-6, dt=1e-5, + save_everystep=false, callback=callbacks) + +reference_file_name = joinpath(validation_dir(), "oscillating_beam_2d", + "validation_reference_5.json") +run_file_name = joinpath("out", "validation_run_oscillating_beam_2d_5.json") + +reference_data = JSON.parsefile(reference_file_name) +run_data = JSON.parsefile(run_file_name) + +# error_ = calculate_error(reference_data, run_data) + +error_deflection_x = calculate_mse(reference_data["deflection_x_solid_1"]["time"], + reference_data["deflection_x_solid_1"]["values"], + run_data["deflection_x_solid_1"]["time"], + run_data["deflection_x_solid_1"]["values"]) + +error_deflection_y = calculate_mse(reference_data["deflection_y_solid_1"]["time"], + reference_data["deflection_y_solid_1"]["values"], + run_data["deflection_y_solid_1"]["time"], + run_data["deflection_y_solid_1"]["values"]) diff --git a/validation/validation_util.jl b/validation/validation_util.jl index 7e4819cbf..c814acd77 100644 --- a/validation/validation_util.jl +++ b/validation/validation_util.jl @@ -12,64 +12,29 @@ function linear_interpolation(x, y, interpolation_point) return y[i] + slope * (interpolation_point - x[i]) end -function interpolated_mse(reference_time, reference_values, simulation_time, simulation_values) - # Remove reference time points outside the simulation time - start = searchsortedfirst(reference_time, first(simulation_time)) - end_ = searchsortedlast(reference_time, last(simulation_time)) - common_time_range = reference_time[start:end_] +function interpolated_mse(reference_time, reference_values, simulation_time, + simulation_values) + # Remove reference time points outside the simulation time + start = searchsortedfirst(reference_time, first(simulation_time)) + end_ = searchsortedlast(reference_time, last(simulation_time)) + common_time_range = reference_time[start:end_] # Interpolate simulation data at the common time points interpolated_values = [linear_interpolation(simulation_time, simulation_values, t) for t in common_time_range] - # Extract the corresponding reference displacement values - filtered_values = [reference_values[findfirst(==(t), - reference_time)] - for t in common_time_range] + filtered_values = reference_values[start:end_] # Calculate MSE only over the common time range mse = sum((interpolated_values .- filtered_values) .^ 2) / length(common_time_range) return mse end -function extract_number(filename) +function extract_number_from_filename(filename) # This regex matches the last sequence of digits in the filename m = match(r"(\d+)(?!.*\d)", filename) if m !== nothing - num = parse(Int, m.captures[1]) - return num - else - println("No numeric sequence found in filename: ", filename) - return -1 + return parse(Int, m.captures[1]) end -end - -function find_and_compare_values(ref_data, run_data, errors=[]) - if isa(ref_data, Dict) && isa(run_data, Dict) - for key in keys(ref_data) - if key == "values" && haskey(run_data, key) - ref_values = ref_data[key] - run_values = run_data[key] - if isa(ref_values, Array) && isa(run_values, Array) - for (ref_value, run_value) in zip(ref_values, run_values) - if isa(ref_value, Number) && isa(run_value, Number) - push!(errors, (ref_value - run_value)^2) - else - println("Non-numeric data encountered under 'values' key.") - end - end - end - elseif haskey(run_data, key) - # Recursively search for "values" keys in nested dictionaries - find_and_compare_values(ref_data[key], run_data[key], errors) - end - end - end - return errors -end - -# Returns the MSE of json-based dicts -function calculate_error(ref_data, run_data) - errors = find_and_compare_values(ref_data, run_data) - return sum(errors) / length(errors) + return -1 end From 2f26a1886908f9002cf86922299f22b01d3ea95d Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 1 Mar 2024 15:37:46 +0100 Subject: [PATCH 211/212] format [skip ci] --- .../validation_oscillating_beam_2d.jl | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl index 37ca171e5..18b04a398 100644 --- a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl +++ b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl @@ -22,14 +22,14 @@ n_particles_beam_y = 5 # Overwrite `sol` assignment to skip time integration trixi_include(@__MODULE__, - joinpath(examples_dir(), "solid", "oscillating_beam_2d.jl"), - n_particles_y=n_particles_beam_y, sol=nothing, tspan=tspan, - penalty_force=PenaltyForceGanzenmueller(alpha=0.01)) + joinpath(examples_dir(), "solid", "oscillating_beam_2d.jl"), + n_particles_y=n_particles_beam_y, sol=nothing, tspan=tspan, + penalty_force=PenaltyForceGanzenmueller(alpha=0.01)) pp_callback = PostprocessCallback(; deflection_x, deflection_y, dt=0.01, - output_directory="out", - filename="validation_run_oscillating_beam_2d_$n_particles_beam_y", - write_csv=false, write_file_interval=0) + output_directory="out", + filename="validation_run_oscillating_beam_2d_$n_particles_beam_y", + write_csv=false, write_file_interval=0) info_callback = InfoCallback(interval=2500) saving_callback = SolutionSavingCallback(dt=0.5, prefix="validation_$n_particles_beam_y") @@ -39,7 +39,7 @@ sol = solve(ode, RDPK3SpFSAL49(), abstol=1e-8, reltol=1e-6, dt=1e-5, save_everystep=false, callback=callbacks) reference_file_name = joinpath(validation_dir(), "oscillating_beam_2d", - "validation_reference_5.json") + "validation_reference_5.json") run_file_name = joinpath("out", "validation_run_oscillating_beam_2d_5.json") reference_data = JSON.parsefile(reference_file_name) From d2ba9c8ba8cff8a1c995f81222329506c9ca017a Mon Sep 17 00:00:00 2001 From: Sven Berger Date: Fri, 1 Mar 2024 18:20:27 +0100 Subject: [PATCH 212/212] update --- .../validation_oscillating_beam_2d.jl | 26 ++++++++++--------- validation/validation_util.jl | 6 ++++- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl index 18b04a398..884e78460 100644 --- a/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl +++ b/validation/oscillating_beam_2d/validation_oscillating_beam_2d.jl @@ -10,13 +10,17 @@ # In: Fluid-structure interaction. Springer; 2006. p. 371–85 . # https://doi.org/10.1007/3-540-34596-5_15 +include("../validation_util.jl") using TrixiParticles using OrdinaryDiffEq +using JSON tspan = (0, 10) -# Can be used to set the width wise resolution of beam, which needs to be odd, -# use 9, 21, 35 for validation +# `n_particles_beam_y = 5` means that the beam is 5 particles thick. +# This number is used to set the resolution of the simulation. +# It has to be odd, so that a particle is exactly in the middle of the tip of the beam. +# Use 5, 9, 21, 35 for validation. # Note: 35 takes a very long time! n_particles_beam_y = 5 @@ -45,14 +49,12 @@ run_file_name = joinpath("out", "validation_run_oscillating_beam_2d_5.json") reference_data = JSON.parsefile(reference_file_name) run_data = JSON.parsefile(run_file_name) -# error_ = calculate_error(reference_data, run_data) +error_deflection_x = interpolated_mse(reference_data["deflection_x_solid_1"]["time"], + reference_data["deflection_x_solid_1"]["values"], + run_data["deflection_x_solid_1"]["time"], + run_data["deflection_x_solid_1"]["values"]) -error_deflection_x = calculate_mse(reference_data["deflection_x_solid_1"]["time"], - reference_data["deflection_x_solid_1"]["values"], - run_data["deflection_x_solid_1"]["time"], - run_data["deflection_x_solid_1"]["values"]) - -error_deflection_y = calculate_mse(reference_data["deflection_y_solid_1"]["time"], - reference_data["deflection_y_solid_1"]["values"], - run_data["deflection_y_solid_1"]["time"], - run_data["deflection_y_solid_1"]["values"]) +error_deflection_y = interpolated_mse(reference_data["deflection_y_solid_1"]["time"], + reference_data["deflection_y_solid_1"]["values"], + run_data["deflection_y_solid_1"]["time"], + run_data["deflection_y_solid_1"]["values"]) diff --git a/validation/validation_util.jl b/validation/validation_util.jl index c814acd77..a6e20c834 100644 --- a/validation/validation_util.jl +++ b/validation/validation_util.jl @@ -1,6 +1,6 @@ function linear_interpolation(x, y, interpolation_point) if !(first(x) <= interpolation_point <= last(x)) - throw(ArgumentError("`interpolation_point` with $interpolation_point is outside the interpolation range")) + throw(ArgumentError("`interpolation_point` at $interpolation_point is outside the interpolation range")) end i = searchsortedlast(x, interpolation_point) @@ -14,6 +14,10 @@ end function interpolated_mse(reference_time, reference_values, simulation_time, simulation_values) + if last(simulation_time) > last(reference_time) + @warn "simulation time range is larger than reference time range. " * + "Only checking values within reference time range." + end # Remove reference time points outside the simulation time start = searchsortedfirst(reference_time, first(simulation_time)) end_ = searchsortedlast(reference_time, last(simulation_time))