Rigid Bodies

Rigid bodies in TrixiParticles.jl are represented by particles whose motion is evolved with rigid-body translation and rotation. This allows fluid-structure interaction while keeping the structure kinematics rigid.

API

TrixiParticles.RigidBodySystemType
RigidBodySystem(initial_condition;
               boundary_model=nothing,
               contact_model=nothing,
               acceleration=ntuple(_ -> 0.0, ndims(initial_condition)),
               particle_spacing=initial_condition.particle_spacing,
               max_manifolds=8,
               source_terms=nothing, adhesion_coefficient=0.0,
               color_value=0)

System for particles of a rigid structure.

The rigid body is represented by particles and advanced with rigid-body translation and rotation. Fluid-structure interaction forces are reduced to resultant force and torque and applied consistently to all rigid particles.

Arguments

  • initial_condition: Initial condition representing the rigid particles.

Keywords

  • boundary_model: Boundary model for fluid-structure interaction (see Boundary Models).
  • contact_model: Optional rigid contact model. If specified, rigid-wall and rigid-rigid collisions are enabled.
  • acceleration: Global acceleration vector applied to all rigid particles.
  • particle_spacing: Reference particle spacing used for time-step estimation.
  • max_manifolds: Maximum number of wall-contact manifolds cached per rigid particle.
  • source_terms: Optional source terms of the form (coords, velocity, density, pressure, t) -> source.
  • adhesion_coefficient: Wall-adhesion strength used by Akinci-type surface tension models when fluids interact with this rigid body. This is only evaluated for fluid-structure interaction with surface-tension-enabled fluid systems.
  • color_value: Integer label stored as system.cache.color. Currently this is used with BoundaryModelDummyParticles during colorfield initialization so fluids using ColorfieldSurfaceNormal can detect contact with rigid bodies, it participates in the multi-system color sanity check for surface-tension setups, and it is written to VTK output as "color".
source

Contact Models

Rigid contact is configured through the contact model. This is separate from the boundary model used for fluid-structure interaction; see Boundary Models for that part of the rigid-body setup.

TrixiParticles.RigidContactModelType
RigidContactModel(; normal_stiffness,
                  normal_damping=0.0,
                  contact_distance=0.0)

Basic rigid contact model stored on a rigid body. It is currently used for both rigid-wall and rigid-rigid contact. The contact force consists of a linear normal spring-dashpot contribution only. If contact_distance == 0, the particle spacing of the RigidBodySystem will be used as contact distance.

Experimental implementation

This is an experimental feature and may change in future releases.

source