Particle_t Derived Type

type, public :: Particle_t


Components

Type Visibility Attributes Name Initial
real(kind=RP), public :: pos(3)
real(kind=RP), public :: pos_old(3)
real(kind=RP), public :: vel(3)
real(kind=RP), public :: vel_old(3)
real(kind=RP), public :: temp
real(kind=RP), public :: temp_old
real(kind=RP), public :: fluidVel(3)
real(kind=RP), public :: fluidTemp
logical, public :: active
integer, public :: eID
integer, public :: eID_old
real(kind=RP), public :: x(3)
real(kind=RP), public :: xi(3)
real(kind=RP), public :: xi_old(3)
real(kind=RP), public, allocatable :: lxi(:)
real(kind=RP), public, allocatable :: leta(:)
real(kind=RP), public, allocatable :: lzeta(:)

Type-Bound Procedures

procedure, public :: init => particle_init

  • private subroutine particle_init(self, mesh)

    Arguments

    Type IntentOptional Attributes Name
    class(Particle_t) :: self
    type(HexMesh), target :: mesh

procedure, public :: set_pos => particle_set_pos

  • private subroutine particle_set_pos(self, pos)

    Arguments

    Type IntentOptional Attributes Name
    class(Particle_t) :: self
    real(kind=RP) :: pos(3)

procedure, public :: set_vel => particle_set_vel

  • private subroutine particle_set_vel(self, vel)

    Arguments

    Type IntentOptional Attributes Name
    class(Particle_t) :: self
    real(kind=RP) :: vel(3)

procedure, public :: set_temp => particle_set_temp

  • private subroutine particle_set_temp(self, temp)

    Arguments

    Type IntentOptional Attributes Name
    class(Particle_t) :: self
    real(kind=RP) :: temp

procedure, public :: setGlobalPos => particle_setGlobalPos

  • private subroutine particle_setGlobalPos(self, mesh)

    Arguments

    Type IntentOptional Attributes Name
    class(Particle_t), intent(inout) :: self
    class(HexMesh), intent(in) :: mesh

procedure, public :: getFluidVelandTemp => particle_getFluidVelandTemp

  • private subroutine particle_getFluidVelandTemp(self, mesh)

    Arguments

    Type IntentOptional Attributes Name
    class(Particle_t), intent(inout) :: self
    class(HexMesh) :: mesh

procedure, public :: show => particle_show

  • private subroutine particle_show(self)

    Arguments

    Type IntentOptional Attributes Name
    class(Particle_t), intent(inout) :: self

procedure, public :: integrate => particle_integrate

  • private subroutine particle_integrate(self, mesh, dt, St, Nu, phim, I0, gammaDiv3cvpdivcvStPr, minbox, maxbox, bcbox)

    Arguments

    Type IntentOptional Attributes Name
    class(Particle_t), intent(inout) :: self
    type(HexMesh), intent(in) :: mesh
    real(kind=RP), intent(in) :: dt
    real(kind=RP), intent(in) :: St
    real(kind=RP), intent(in) :: Nu
    real(kind=RP), intent(in) :: phim
    real(kind=RP), intent(in) :: I0
    real(kind=RP), intent(in) :: gammaDiv3cvpdivcvStPr
    real(kind=RP), intent(in) :: minbox(3)
    real(kind=RP), intent(in) :: maxbox(3)
    integer, intent(in) :: bcbox(3)

procedure, public :: source => particle_source

  • private subroutine particle_source(self, e, source, highordersource)

    Arguments

    Type IntentOptional Attributes Name
    class(Particle_t), intent(in) :: self
    class(element), intent(in) :: e
    real(kind=RP), intent(inout) :: source(:,0:,0:,0:)
    logical :: highordersource

procedure, public :: updateVelRK3 => particle_updateVelRK3

  • private function particle_updateVelRK3(self, dt, mu, St, invFr2, gravity) result(Q)

    Arguments

    Type IntentOptional Attributes Name
    class(Particle_t), intent(in) :: self
    real(kind=RP), intent(in) :: dt
    real(kind=RP), intent(in) :: mu
    real(kind=RP), intent(in) :: St
    real(kind=RP), intent(in) :: invFr2
    real(kind=RP), intent(in) :: gravity(3)

    Return Value real(kind=RP), (3)

procedure, public :: updateTempRK3 => particle_updateTempRK3

  • private function particle_updateTempRK3(self, dt, I0, Nu, gammaDiv3cvpdivcvStPr) result(Q)

    Arguments

    Type IntentOptional Attributes Name
    class(Particle_t), intent(in) :: self
    real(kind=RP), intent(in) :: dt
    real(kind=RP), intent(in) :: I0
    real(kind=RP), intent(in) :: Nu
    real(kind=RP), intent(in) :: gammaDiv3cvpdivcvStPr

    Return Value real(kind=RP)