mus_particle_module Module

mus_particle_module contains the main control routines for LBM-DEM simulations of particles in a flow.



Subroutines

public subroutine swapFBuff(this)

Swap index of the particle force buffer

Arguments

Type IntentOptional Attributes Name
type(mus_particle_MEM_type), intent(inout) :: this

public subroutine mus_particles_initialize(particleGroup, scheme, geometry, params)

Initialization for particleGroup and all the particles in it Includes: * Assigning the required procedure pointers for particleGroup and particles * Initializing loggers * Initializing communication routines * Building the representation of the particles on the grid

Arguments

Type IntentOptional Attributes Name
type(mus_particle_group_type), target :: particleGroup

Array of particles

type(mus_scheme_type), intent(inout) :: scheme

Scheme for access to leveldescriptor

type(mus_geom_type), intent(in) :: geometry

Geometry for access to tree

type(mus_param_type), intent(in) :: params

Params for access to dt, dx, etc.

public subroutine mus_particles_move(particleGroup, scheme, geometry, params)

This routine moves all particles in particleArray.

Arguments

Type IntentOptional Attributes Name
class(mus_particle_group_type), intent(inout) :: particleGroup

Array of particles

type(mus_scheme_type), intent(inout) :: scheme

Scheme for access to leveldescriptor

type(mus_geom_type), intent(in) :: geometry

Geometry for access to tree

type(mus_param_type), intent(in) :: params

Params for access to dt, dx, etc.

public subroutine mus_particles_move_DPS(particleGroup, scheme, geometry, params)

This routine moves all particles in particleArray.

Arguments

Type IntentOptional Attributes Name
class(mus_particle_group_type), intent(inout) :: particleGroup

Array of particles

type(mus_scheme_type), intent(inout) :: scheme

Scheme for access to leveldescriptor

type(mus_geom_type), intent(in) :: geometry

Geometry for access to tree

type(mus_param_type), intent(in) :: params

Params for access to dt, dx, etc.

public subroutine mus_particles_move_DPS_onewaycoupled(particleGroup, scheme, geometry, params)

This routine moves all particles in particleArray.

Arguments

Type IntentOptional Attributes Name
class(mus_particle_group_type), intent(inout) :: particleGroup

Array of particles

type(mus_scheme_type), intent(inout) :: scheme

Scheme for access to leveldescriptor

type(mus_geom_type), intent(in) :: geometry

Geometry for access to tree

type(mus_param_type), intent(in) :: params

Params for access to dt, dx, etc.

public subroutine mus_particles_mapping_MEM(particleGroup, scheme, geometry, params)

mus_particles_mapping maps the current particle positions to the lattice This means the exclusionLists are updated, connectivity of solid and fluid neighbor particles is modified, new fluid particles are initialized and have their connectivity restored. Also particles that have no more elements on this process (either local or halo) get removed from this process. Should be called once per LBM time step.

Arguments

Type IntentOptional Attributes Name
class(mus_particle_group_type), intent(inout) :: particleGroup

Array of particles

type(mus_scheme_type), intent(inout) :: scheme

Scheme for access to leveldescriptor

type(mus_geom_type), intent(in) :: geometry

Geometry for access to tree

type(mus_param_type), intent(in) :: params

Params for access to dt, dx, etc.

public subroutine mus_particles_mapping_DPS(particleGroup, scheme, geometry, params)

Arguments

Type IntentOptional Attributes Name
class(mus_particle_group_type), intent(inout) :: particleGroup

Array of particles

type(mus_scheme_type), intent(inout) :: scheme

Scheme for access to leveldescriptor

type(mus_geom_type), intent(in) :: geometry

Geometry for access to tree

type(mus_param_type), intent(in) :: params

Params for access to dt, dx, etc.

public subroutine mus_particles_applyHydrodynamicForces_MEM(particleGroup, scheme, geometry, params)

Arguments

Type IntentOptional Attributes Name
class(mus_particle_group_type), intent(inout) :: particleGroup

Array of particles

type(mus_scheme_type), intent(inout) :: scheme

Scheme for access to leveldescriptor

type(mus_geom_type), intent(in) :: geometry

Geometry for access to tree

type(mus_param_type), intent(in) :: params

Params for access to dt, dx, etc.

public subroutine mus_particles_applyHydrodynamicForces_DPS(particleGroup, scheme, geometry, params)

Arguments

Type IntentOptional Attributes Name
class(mus_particle_group_type), intent(inout) :: particleGroup

Array of particles

type(mus_scheme_type), intent(inout) :: scheme

Scheme for access to leveldescriptor

type(mus_geom_type), intent(in) :: geometry

Geometry for access to tree

type(mus_param_type), intent(in) :: params

Params for access to dt, dx, etc.

public subroutine mus_particles_applyHydrodynamicForces_DPS_onewaycoupled(particleGroup, scheme, geometry, params)

Arguments

Type IntentOptional Attributes Name
class(mus_particle_group_type), intent(inout) :: particleGroup

Array of particles

type(mus_scheme_type), intent(inout) :: scheme

Scheme for access to leveldescriptor

type(mus_geom_type), intent(in) :: geometry

Geometry for access to tree

type(mus_param_type), intent(in) :: params

Params for access to dt, dx, etc.

public subroutine mus_particles_transferMomentumToFluid_MEM(particleGroup, scheme, geometry, params)

Arguments

Type IntentOptional Attributes Name
class(mus_particle_group_type), intent(inout) :: particleGroup

Array of particles

type(mus_scheme_type), intent(inout) :: scheme

Scheme for access to leveldescriptor

type(mus_geom_type), intent(in) :: geometry

Geometry for access to tree

type(mus_param_type), intent(in) :: params

Params for access to dt, dx, etc.

public subroutine mus_particles_transferMomentumToFluid_DPS(particleGroup, scheme, geometry, params)

Arguments

Type IntentOptional Attributes Name
class(mus_particle_group_type), intent(inout) :: particleGroup

Array of particles

type(mus_scheme_type), intent(inout) :: scheme

Scheme for access to leveldescriptor

type(mus_geom_type), intent(in) :: geometry

Geometry for access to tree

type(mus_param_type), intent(in) :: params

Params for access to dt, dx, etc.

public subroutine mus_particles_addSourceTermsToAuxField_DPS(particleGroup, scheme, geometry, params)

Arguments

Type IntentOptional Attributes Name
class(mus_particle_group_type), intent(inout) :: particleGroup

Array of particles

type(mus_scheme_type), intent(inout) :: scheme

Scheme for access to leveldescriptor

type(mus_geom_type), intent(in) :: geometry

Geometry for access to tree

type(mus_param_type), intent(in) :: params

Params for access to dt, dx, etc.

public subroutine testParticleConnectivity(scheme, particle, lev)

Routine for manually checking connectivity of particle elements, to be removed later

Arguments

Type IntentOptional Attributes Name
type(mus_scheme_type) :: scheme
type(mus_particle_MEM_type) :: particle
integer :: lev

public subroutine printTotalElemList(scheme, geometry, lev, proc, plogUnit)

Arguments

Type IntentOptional Attributes Name
type(mus_scheme_type), intent(in) :: scheme
type(mus_geom_type), intent(in) :: geometry
integer, intent(in) :: lev
integer, intent(in) :: proc
integer, intent(in) :: plogUnit

public subroutine printNeighList(scheme, geometry, lev, proc, plogUnit)

Arguments

Type IntentOptional Attributes Name
type(mus_scheme_type), intent(in) :: scheme
type(mus_geom_type), intent(in) :: geometry
integer, intent(in) :: lev
integer, intent(in) :: proc
integer, intent(in) :: plogUnit

public subroutine test_loopOverLocalLinks(this, scheme, stencil, params)

Arguments

Type IntentOptional Attributes Name
type(mus_particle_MEM_type), intent(inout) :: this
type(mus_scheme_type), intent(inout) :: scheme

Scheme for access to level descriptor

type(tem_stencilHeader_type), intent(in) :: stencil

fluid stencil

type(mus_param_type), intent(in) :: params

Parameters for access to conversion factors between units