DEMDomain_ Derived Type

type, public :: DEMDomain_


Components

Type Visibility Attributes Name Initial
integer(kind=int32), public :: timestep
real(kind=real64), public, allocatable :: xyz(:,:)
real(kind=real64), public, allocatable :: r(:)
real(kind=real64), public, allocatable :: m(:)
real(kind=real64), public, allocatable :: u(:,:)
real(kind=real64), public, allocatable :: v(:,:)
real(kind=real64), public, allocatable :: a(:,:)
real(kind=real64), public, allocatable :: f(:,:)
real(kind=real64), public, allocatable :: g(:,:)
real(kind=real64), public, allocatable :: contactForce(:,:)
integer(kind=int32), public, allocatable :: status(:)
real(kind=real64), public, allocatable :: wall(:,:,:)
type(DEM_3D_NeighborList_), public :: NeighborList
real(kind=real64), public :: contact_stiffness
real(kind=real64), public :: k_N = 1.0d0
real(kind=real64), public :: k_T = 0.50d0
real(kind=real64), public :: contact_damping
real(kind=real64), public :: grid_scale_factor = 5.0d0

Type-Bound Procedures

procedure, public :: init => initDEMDomainClass

  • public subroutine initDEMDomainClass(this, x_axis, y_axis, z_axis, radius)

    Arguments

    Type IntentOptional Attributes Name
    class(DEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: x_axis(:)
    real(kind=real64), intent(in) :: y_axis(:)
    real(kind=real64), intent(in) :: z_axis(:)
    real(kind=real64), intent(in) :: radius(:)

procedure, public :: closepack => closepackDEMDomainClass

  • public subroutine closepackDEMDomainClass(this, radius, length)

    Arguments

    Type IntentOptional Attributes Name
    class(DEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: radius
    real(kind=real64), intent(in) :: length(3)

procedure, public :: closepack2D => closepack2DDEMDomainClass

  • public subroutine closepack2DDEMDomainClass(this, radius, length)

    Arguments

    Type IntentOptional Attributes Name
    class(DEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: radius
    real(kind=real64), intent(in) :: length(2)

procedure, public :: np => getNumberOfPointDEMDomain

  • public elemental function getNumberOfPointDEMDomain(this) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    class(DEMDomain_), intent(in) :: this

    Return Value integer(kind=int32)

procedure, public :: nd => getNumberOfDimDEMDomain

  • public elemental function getNumberOfDimDEMDomain(this) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    class(DEMDomain_), intent(in) :: this

    Return Value integer(kind=int32)

procedure, public :: setWall => setWallDEMDomain

  • public subroutine setWallDEMDomain(this, range)

    Arguments

    Type IntentOptional Attributes Name
    class(DEMDomain_), intent(inout) :: this
    type(Range_), intent(in) :: range

procedure, public :: getStiffnessMatrix => getStiffnessMatrixDEMDomain

  • public function getStiffnessMatrixDEMDomain(this, u) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    class(DEMDomain_), intent(in) :: this
    real(kind=real64), intent(in), optional :: u(:)

    Return Value type(CRS_)

procedure, public, pass :: addDEMDomain

  • public subroutine addDEMDomain(this, position, r, m, status)

    Arguments

    Type IntentOptional Attributes Name
    class(DEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: position(:)
    real(kind=real64), intent(in) :: r
    real(kind=real64), intent(in) :: m
    integer(kind=int32), intent(in), optional :: status

procedure, public, pass :: addDEMDomain_to_DEMDomain

generic, public :: add => addDEMDomain, addDEMDomain_to_DEMDomain

  • public subroutine addDEMDomain(this, position, r, m, status)

    Arguments

    Type IntentOptional Attributes Name
    class(DEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: position(:)
    real(kind=real64), intent(in) :: r
    real(kind=real64), intent(in) :: m
    integer(kind=int32), intent(in), optional :: status
  • public subroutine addDEMDomain_to_DEMDomain(this, DEMDomain)

    Arguments

    Type IntentOptional Attributes Name
    class(DEMDomain_), intent(inout) :: this
    type(DEMDomain_), intent(in) :: DEMDomain

procedure, public :: updateneighborList => updateNeighborListDEMDomain

procedure, public :: updateForce => updateForceDEMDomain

  • public subroutine updateForceDEMDomain(this, dt)

    do pointIdx=1,this%np() this%NeighborList%add(row=pointIdx,col=,value=) enddo

    Arguments

    Type IntentOptional Attributes Name
    class(DEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: dt

procedure, public :: updateDisplacement => updateDisplacementDEMDomain

  • public subroutine updateDisplacementDEMDomain(this, dt, active_range)

    Arguments

    Type IntentOptional Attributes Name
    class(DEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: dt
    type(Range_), intent(in) :: active_range

procedure, public :: move => moveDEMDomain

  • public subroutine moveDEMDomain(this, displacement)

    Arguments

    Type IntentOptional Attributes Name
    class(DEMDomain_), intent(inout) :: this
    real(kind=real64), intent(in) :: displacement(:)

procedure, public :: StiffnessMatrix => StiffnessMatrixDEMDomain

  • public function StiffnessMatrixDEMDomain(this, springCoefficient) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    class(DEMDomain_), intent(in) :: this
    real(kind=real64), intent(in) :: springCoefficient(:)

    Return Value type(CRS_)

procedure, public :: distance => distanceDEMDomain

  • public function distanceDEMDomain(this, idx1, idx2) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    class(DEMDomain_), intent(in) :: this
    integer(kind=int32), intent(in) :: idx1
    integer(kind=int32), intent(in) :: idx2

    Return Value real(kind=real64)

procedure, public :: vtk => vtkDEMDomain

  • public subroutine vtkDEMDomain(this, name, displacement)

    Arguments

    Type IntentOptional Attributes Name
    class(DEMDomain_), intent(in) :: this
    character(len=*), intent(in) :: name
    real(kind=real64), intent(in), optional :: displacement(:)

procedure, public :: gnuplot2D => gnuplot2DDEMDomain

  • public subroutine gnuplot2DDEMDomain(this, name)

    Arguments

    Type IntentOptional Attributes Name
    class(DEMDomain_), intent(in) :: this
    character(len=*), intent(in) :: name