mus_particle_DPS_type Derived Type

type, public :: mus_particle_DPS_type

Basic particle type for Discrete Particle Simulations In DPS particles are unresolved i.e. they are not represented on the grid. Instead, their effect on the flow is considered using the volume fraction in the fluid_GNS scheme's equilibrium distribution functions and forcing terms. Hence the scheme kind should be set to 'fluid_GNS' when using these kinds of particles.


Components

Type Visibility Attributes Name Initial
integer, public :: particleID
integer, public :: owner
integer, public :: previousOwner

Previous owner of this particle. Used to determine when to Send data like particle%momInc to new owner

logical, public, allocatable :: existsOnProc(:)
logical, public, allocatable :: addToProc(:)
logical, public, allocatable :: removeFromProc(:)
logical, public :: newForMe = .FALSE.

Logical which tells us whether to initialize this particle or not is set to true only immediately after receiving this particle from a neighboring process

logical, public :: hasCollided = .FALSE.

hasCollided tells us whether particle has just had its velocity modified in a collision and that this information needs to be sent to other processes

logical, public :: removeParticle_global = .FALSE.

removeParticle_global indicates that this particle needs to be removed after e.g. hitting an open boundary. This information is first sent to all other procs that know about this particle, then the particle is actually removed from the particleGroup.

logical, public :: removeParticle_local = .FALSE.

removeParticle_local indicates that this particle needs to be removed from this process's particleGroup because its coordOfOrigin is not within one lattice site of a local fluid cell

real(kind=rk), public :: radius
integer, public :: Rn
real(kind=rk), public :: mass
real(kind=rk), public :: rotInertia
real(kind=rk), public :: vel(6)
real(kind=rk), public :: pos(6)
real(kind=rk), public :: oldPos(6)
integer, public :: coordOfOrigin(4)
integer, public :: oldCoordOfOrigin(4)
integer, public :: posOfOrigin
real(kind=rk), public :: F(6) = 0.0_rk
real(kind=rk), public :: Favg(3) = 0.0_rk
real(kind=rk), public :: u_fluid(3) = 0.0_rk
real(kind=rk), public :: rho_fluid = 0.0_rk
real(kind=rk), public :: eps_f_fluid = 0.0_rk
real(kind=rk), public :: grad_p_fluid(3) = 0.0_rk
real(kind=rk), public :: curl_u_fluid(3) = 0.0_rk
real(kind=rk), public :: Fext(6) = 0.0_rk
real(kind=rk), public :: F_DEM(2,6) = 0.0_rk
integer, public :: F_DEM_now = 1
integer, public :: F_DEM_next = 2
type(dyn_intarray_type), public :: DEM_neighborlist

List containing indices of nearby particles to check for collisions during the DEM subcycles

integer, public :: nWallPos = 0
real(kind=rk), public :: avgWallPos(3) = 0.0_rk
real(kind=rk), public :: rwall(3) = 0.0_rk
logical, public :: interactWithWall = .FALSE.