Skip to main content

Rocky Solver SDK 2024 R2

IRockySPHElementHost Struct Reference

Last update: 08.07.2024

#include <rocky_sph_element_api.hpp>

Inherits IRockySPHElementImpl< RockyModel, SPHModel >.

Public Member Functions

ROCKY_FUNCTIONS IRockyParticleHost get_linked_dem_particle () const
 
ROCKY_FUNCTIONS bool is_dem_coupled () const
 
ROCKY_FUNCTIONS float get_density () const
 
ROCKY_FUNCTIONS float get_pressure () const
 
ROCKY_FUNCTIONS float get_release_time () const
 
ROCKY_FUNCTIONS float3 get_position () const
 
ROCKY_FUNCTIONS float3 get_velocity () const
 
ROCKY_FUNCTIONS float3 get_normal () const
 
ROCKY_FUNCTIONS float3 get_force () const
 
ROCKY_FUNCTIONS float3 get_acceleration () const
 
ROCKY_FUNCTIONS IRockySPHElementScalars get_scalars ()
 

Detailed Description

IRockySPHElementHost is the host counterpart of IRockySPHElement. Both share the same data, the main difference between them is that the data of IRockySPHElementHost resides within the host memory; therefore, it is used exclusively within initialization hooks, which are executed always in the host.

Member Function Documentation

◆ get_acceleration()

ROCKY_FUNCTIONS float3 IRockySPHElementHost::get_acceleration ( ) const

Returns
The current acceleration resultant vector of the SPH element, expressed in Cartesian coordinates. If this method is called before the stage of force calculation, a zero vector will be returned.

◆ get_density()

ROCKY_FUNCTIONS float IRockySPHElementHost::get_density ( ) const

Returns
The current value of density calculated for the SPH element.

◆ get_force()

ROCKY_FUNCTIONS float3 IRockySPHElementHost::get_force ( ) const

Returns
The resultant of the forces currently acting over the SPH element, expressed in Cartesian coordinates. If this method is called before the stage of force calculation, a zero vector will be returned.

◆ get_linked_dem_particle()

ROCKY_FUNCTIONS IRockyParticleHost IRockySPHElementHost::get_linked_dem_particle ( ) const
Returns
An IRockyParticleHost object representing the DEM particle linked to the SPH particle, if the latter is actually a DEM-coupled SPH element.

◆ get_normal()

ROCKY_FUNCTIONS float3 IRockySPHElementHost::get_normal ( ) const

Returns
An approximation of the normal vector to a free surface, if the SPH element is located near one, for use on the implementation of custom surface tension models. This vector is obtained by using the standard continuum approximation of interfaces, which is based on the gradient of the so called color function. In this approximation, an interface has a finite thickness over which the color function varies smoothly between zero and one. Because of this, a normal vector is calculated for every SPH element in the solution domain. However, only elements located near a free surface will have a normal vector with length significantly different from zero. It is worth noting that this vector is not normalized, therefore, its length will vary from one element to another. Moreover, these normal vectors are calculated internally only if a surface tension model is active in the simulation, therefore, a runtime error will be generated if this method is used otherwise.

◆ get_position()

ROCKY_FUNCTIONS float3 IRockySPHElementHost::get_position ( ) const

Returns
The Cartesian coordinates of the point at which the SPH element is currently located.

◆ get_pressure()

ROCKY_FUNCTIONS float IRockySPHElementHost::get_pressure ( ) const

Returns
The current value of the pressure at the location coincident with the SPH element.

◆ get_release_time()

ROCKY_FUNCTIONS float IRockySPHElementHost::get_release_time ( ) const

Returns
The time at which the SPH element entered into the simulation.

◆ get_scalars()

ROCKY_FUNCTIONS IRockySPHElementScalars IRockySPHElementHost::get_scalars ( )

Returns
An IRockySPHElementScalars object that gives access to all SPH element scalars variables defined in the project.

◆ get_velocity()

ROCKY_FUNCTIONS float3 IRockySPHElementHost::get_velocity ( ) const

Returns
The velocity vector at which the SPH element is currently moving, expressed in Cartesian coordinates.

◆ is_dem_coupled()

ROCKY_FUNCTIONS bool IRockySPHElementHost::is_dem_coupled ( ) const

Returns
True, if the SPH element is placed inside a DEM particle in order to model the interaction between the fluid flow and the DEM particles. False, otherwise.