Skip to content

Releases: trixi-framework/TrixiParticles.jl

v0.5.0

29 Apr 12:20
d205497

Choose a tag to compare

TrixiParticles v0.5.0

Diff since v0.4.4

Breaking Changes

  • Clipping of negative pressure values in the BoundaryModelDummyParticles is now disabled
    by default and can be enabled with the keyword argument clip_negative_pressure=true (#1143).
  • The example files are now loading sub-packages of OrdinaryDiffEq.jl instead of
    OrdinaryDiffEq.jl itself. For example, using OrdinaryDiffEqLowStorageRK instead of
    using OrdinaryDiffEq (#1154).
  • DensityDiffusionAntuono now only has the kwarg delta and no positional
    arguments (#1142).
  • Return type of vtk2trixi changed to NamedTuple including an optional
    :initial_condition field if create_initial_condition=true is passed (#959).
  • Public system constructors now use keyword arguments for configuration values.
    This affects WeaklyCompressibleSPHSystem, EntropicallyDampedSPHSystem,
    ImplicitIncompressibleSPHSystem, TotalLagrangianSPHSystem, DEMSystem,
    and BoundaryDEMSystem.

Migration Guide for Keyword-Based System Constructors

The initial condition remains the only positional argument for the affected system
constructors. All method, material, and configuration arguments that were previously
passed positionally now need to be passed as keywords.
Existing optional keyword arguments remain available. For example, the
density_calculator keyword of EntropicallyDampedSPHSystem still defaults to
SummationDensity().

Here are examples, where ic is the initial condition, kernel is the
smoothing kernel, and h is the smoothing length:

WeaklyCompressibleSPHSystem(ic, density_calculator, state_equation, kernel, h;
                            kwargs...)
# becomes
WeaklyCompressibleSPHSystem(ic; smoothing_kernel=kernel, smoothing_length=h,
                            density_calculator, state_equation, kwargs...)

EntropicallyDampedSPHSystem(ic, kernel, h, sound_speed; kwargs...)
# becomes
EntropicallyDampedSPHSystem(ic; smoothing_kernel=kernel, smoothing_length=h,
                            sound_speed, kwargs...)

ImplicitIncompressibleSPHSystem(ic, kernel, h, reference_density; kwargs...)
# becomes
ImplicitIncompressibleSPHSystem(ic; smoothing_kernel=kernel, smoothing_length=h,
                                reference_density, kwargs...)

TotalLagrangianSPHSystem(ic, kernel, h, young_modulus, poisson_ratio; kwargs...)
# becomes
TotalLagrangianSPHSystem(ic; smoothing_kernel=kernel, smoothing_length=h,
                         young_modulus, poisson_ratio, kwargs...)

DEMSystem(ic, contact_model; kwargs...)
# becomes
DEMSystem(ic; contact_model, kwargs...)

BoundaryDEMSystem(ic, normal_stiffness)
# becomes
BoundaryDEMSystem(ic; normal_stiffness)

Performance

Features

  • Added a SortingCallback that can be used to sort particles by their spatial location
    to improve performance (#1044).

Important Bugfixes

  • Fixed a bug where DensityDiffusionAntuono could not be used together with open
    boundaries and BoundaryModelDynamicalPressureZhang (#1043).
  • Fixed a bug where no-slip boundary conditions were not applied correctly when not using
    ViscosityAdami (#1089).

Merged pull requests:

Closed issues:

  • How to improve performance (#37)
  • Calculation of the continuity density (#132)
  • Wrapping u_ode and v_ode inside the update_* functions (#296)
  • Road to TrixiParticles.jl on GPUs (#484)
  • compute_smoothed_velocity! is dispatched incorrectly (#1071)
  • Zhang open boundaries don't implement density diffusion correctly (#1072)
  • GPU Tests are still broken on Julia 1.12 (#1115)

v0.4.4

18 Mar 10:53
adf92b4

Choose a tag to compare

TrixiParticles v0.4.4

Diff since v0.4.3

Merged pull requests:

Closed issues:

  • Apply transfer2cpu before calling custom_quantity in PostprocessCallback (#1063)
  • get_du is super annoying (#1080)

v0.4.3

12 Jan 15:20
e088c97

Choose a tag to compare

TrixiParticles v0.4.3

Diff since v0.4.2

Merged pull requests:

Closed issues:

  • Add tutorials (#399)
  • Revise structure of tutorials (#874)
  • The validation case oscillating_beam_2d is failing (#978)

v0.4.2

06 Nov 10:02
b867aae

Choose a tag to compare

TrixiParticles v0.4.2

Diff since v0.4.1

Merged pull requests:

Closed issues:

  • extrude_geometry auto-adjusts the particle_spacing (#965)

v0.4.1

01 Oct 12:21
976d4c7

Choose a tag to compare

TrixiParticles v0.4.1

Diff since v0.4.0

Merged pull requests:

  • Implement Implicit Incompressible SPH (IISPH) (#751) (@noahstruschka)
  • Split fluid and TLSPH time integration to allow for TLSPH substeps (#794) (@efaulhaber)
  • Make kernel_grad threshold compatible with single precision and small particle spacing (#913) (@LasNikas)
  • Fix bib (#914) (@svchb)
  • Set 0.4.1-dev (#916) (@svchb)
  • Update program flow diagram (and use Mermaid.js to make it easy to modify) (#917) (@efaulhaber)
  • CompatHelper: add new compat entry for Statistics at version 1, (keep existing compat) (#918) (@github-actions[bot])
  • Remove test set steady state reached (interval) (#920) (@LasNikas)
  • Fix eltype in compact_support (#921) (@LasNikas)
  • Fix update_callback_used when SaveSolutionCallback comes first (#924) (@efaulhaber)
  • Fix requires_update_callback of shifting techniques (#925) (@efaulhaber)
  • Fix convert_particle! (#926) (@LasNikas)
  • Refactoring of IISPH Code (#927) (@noahstruschka)
  • Prepare 0.4.1 release (#930) (@efaulhaber)

Closed issues:

  • Inconsistencies in naming abstract types (#898)

v0.4.0

19 Sep 11:38
cecb8c0

Choose a tag to compare

TrixiParticles v0.4.0

Diff since v0.3.2

Breaking changes

  • Renamed BoundarySPHSystem to WallBoundarySystem and the keyword argument
    movement to prescribed_motion.

  • Renamed OpenBoundarySPHSystem to OpenBoundarySystem.

  • Renamed BoundaryMovement to PrescribedMotion. The movement_function must now be
    a function of (x, t) returning the new position instead of an offset.
    For example, movement_function(t) = SVector(t, 0.0) now needs to be
    movement_function(x, t) = x + SVector(t, 0.0).

  • Renamed directory solid to structure in the examples file tree.
    VTK files for the TotalLagrangianSPHSystem are now also called structure_*.

  • Renamed keyword argument n_fixed_particles of the TotalLagrangianSPHSystem
    to n_clamped_particles.

  • API for OpenBoundarySystem and BoundaryZone changed.
    It is now possible to pass multiple BoundaryZones to a single OpenBoundarySystem.
    Reference values are now assigned individually to each BoundaryZone. (#866)

  • Rename keyword arguments plane and plane_normal for BoundaryZone to boundary_face and face_normal (#597).

  • The argument of TransportVelocityAdami is now a keyword argument.
    TransportVelocityAdami(1000.0) now becomes
    TransportVelocityAdami(background_pressure=1000.0) (#884).

  • Combined transport velocity formulation (TVF) and particle shifting technique (PST) into
    one unified framework.
    The keyword argument transport_velocity now changed to shifting_technique.
    The ParticleShiftingCallback has been removed. To use PST, use the UpdateCallback
    instead, and pass shifting_technique=ParticleShiftingTechniqueSun2017() to the system (#884).

  • Renamed the keyword argument tlsph to place_on_shell for ParticlePackingSystem,
    sample_boundary, extrude_geometry, RectangularShape, and SphereShape (#814).

  • Custom quantity functions passed to SolutionSavingCallback or PostprocessCallback
    that were not using the documented API but were functions of
    (system, v_ode, u_ode, semi, t) now need to be functions
    of (system, dv_ode, du_ode, v_ode, u_ode, semi, t) (#879).

  • Renamed each_moving_particle to each_integrated_particle,
    n_moving_particles to n_integrated_particles
    and active_particles to each_active_particle.

Features

  • Added consistent particle shifting by Sun et al. (2019) as ConsistentShiftingSun2019 (#888).

Merged pull requests:

v0.3.2

11 Sep 17:25
63c4382

Choose a tag to compare

TrixiParticles v0.3.2

Diff since v0.3.1

Merged pull requests:

Closed issues:

  • Verify FSI with results from the paper (#23)
  • Basic sea spray simulation (#43)
  • Fix BoundaryModelDummyParticles() for FSI (#53)
  • Visualization master plan (#71)
  • Before Public Release (#95)
  • Data format definition for 2D geometries is unclear (#818)
  • Call of evaluate_characteristics! is misleading (#823)
  • Change indexing approach for active_particles (#850)
  • custom_quantities not GPU compatible (#859)
  • More descriptive names for open boundary models (#861)

v0.3.1

16 Jun 17:11
24bf9cd

Choose a tag to compare

TrixiParticles v0.3.1

Diff since v0.3.0

Merged pull requests:

Closed issues:

  • Drop Support for Julia 1.9 (#672)
  • No error is thrown when using TVF without UpdateCallback (#767)
  • Disabling multithreading is broken (#788)
  • Interpolation returns computed density rather than the interpolated density (#796)
  • NUMA awareness (#805)
  • Density diffusion update doesn't scale nicely inside a simulation (#806)

v0.3.0

12 May 14:06
36cb645

Choose a tag to compare

TrixiParticles v0.3.0

Diff since v0.2.7

Breaking Changes

  • Rescaled the Wendland kernels by a factor of 2 to be consistent with literature.
    This requires adjusting the previously used smoothing length for the Wendland Kernels
    by dividing them by 2 as well to obtain the same results (#775).

  • The API for custom quantities and functions in the PostprocessCallback changed (#755).

  • The API for choosing parallelization backends changed. The keyword argument data_type
    in semidiscretize was removed and a keyword argument parallelization_backend was added
    to Semidiscretization. See the docs on GPU support for more details.

  • The API for the DEMSystem changed (#756).

Merged pull requests:

Closed issues:

  • Improve custom quantities API (#424)
  • Dam Break 2D Validation after #475 (#530)
  • Time Integration page in the docs is empty (#683)

v0.2.7

03 Apr 09:11
aa110a6

Choose a tag to compare

TrixiParticles v0.2.7

Diff since v0.2.6

Merged pull requests: