vr_class Derived Type

type, public :: vr_class

Vortex ring class


Components

Type Visibility Attributes Name Initial
type(vf_class), public, dimension(4) :: vf
real(kind=dp), public :: gam

Circulation

real(kind=dp), public :: skew

Skew parameter


Type-Bound Procedures

procedure, public :: vind => vr_vind

  • public pure function vr_vind(this, P) result(vind)

    Compute induced velocity by unit strength 4-element vortex ring

    Arguments

    Type IntentOptional Attributes Name
    class(vr_class), intent(in) :: this
    real(kind=dp), intent(in), dimension(3) :: P

    Return Value real(kind=dp), dimension(3)

procedure, public :: vindSource => vr_vindSource

  • public pure function vr_vindSource(this, P, nCap) result(vind)

    Compute induced velocity by unit strength 3-element source ring

    Arguments

    Type IntentOptional Attributes Name
    class(vr_class), intent(in) :: this
    real(kind=dp), intent(in), dimension(3) :: P
    real(kind=dp), intent(in), dimension(3) :: nCap

    Return Value real(kind=dp), dimension(3)

procedure, public :: assignP => vr_assignP

  • public subroutine vr_assignP(this, n, P)

    Assign coordinates to nth corner

    Arguments

    Type IntentOptional Attributes Name
    class(vr_class) :: this
    integer, intent(in) :: n
    real(kind=dp), dimension(3) :: P

procedure, public :: shiftdP => vr_shiftdP

  • public subroutine vr_shiftdP(this, n, dshift)

    Shift coordinates of nth corner by dshift distance (usually for U*dt convection)

    Arguments

    Type IntentOptional Attributes Name
    class(vr_class) :: this
    integer, intent(in) :: n
    real(kind=dp), intent(in), dimension(3) :: dshift

procedure, public :: rot => vr_rot

  • public subroutine vr_rot(this, Tmat, originVec)

    Rotate vortex ring using Tmat about origin

    Arguments

    Type IntentOptional Attributes Name
    class(vr_class) :: this
    real(kind=dp), intent(in), dimension(3, 3) :: Tmat
    real(kind=dp), optional, dimension(3) :: originVec

procedure, public :: calclength => vr_calclength

  • public subroutine vr_calclength(this, isOriginal)

    Calculate length of filaments in vortex ring

    Arguments

    Type IntentOptional Attributes Name
    class(vr_class) :: this
    logical, intent(in) :: isOriginal

procedure, public :: strain => vr_strain

  • public subroutine vr_strain(this)

    Arguments

    Type IntentOptional Attributes Name
    class(vr_class) :: this

procedure, public :: decay => vr_decay

  • public subroutine vr_decay(this, dt, decayCoeff)

    Arguments

    Type IntentOptional Attributes Name
    class(vr_class), intent(inout) :: this
    real(kind=dp), intent(in) :: dt
    real(kind=dp), intent(in) :: decayCoeff

procedure, public :: calc_skew

  • public subroutine calc_skew(this)

    Compute skew

    Arguments

    Type IntentOptional Attributes Name
    class(vr_class) :: this

procedure, public :: burst => vr_burst

  • public subroutine vr_burst(this, skewLimit)

    Burst vortex filaments if skewLimit is exceeded

    Arguments

    Type IntentOptional Attributes Name
    class(vr_class) :: this
    real(kind=dp), intent(in) :: skewLimit

procedure, public :: mirror => vr_mirror

  • public subroutine vr_mirror(this, coordNum)

    Mirror gamma and coordinates about a specified plane

    Arguments

    Type IntentOptional Attributes Name
    class(vr_class) :: this
    integer, intent(in) :: coordNum