Computes collisions between all added objects.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(collision_obj), | intent(inout) | :: | this |
Collision utility |
pure subroutine collision_obj_ComputeCollisions(this) !> Computes collisions between all added objects. implicit none class(collision_obj), intent(inout) :: this !! Collision utility ! Work variable integer :: n ! Initialize collision force and torque if (associated(this%RP)) then select type (center=>this%RP%p) type is (ResPart_obj) do n=1,this%RP%count_ center(n)%Fc = 0.0_wp center(n)%Tc = 0.0_wp end do end select end if if (associated(this%PP)) then select type (particle=>this%PP%p) type is (particle_obj) do n=1,this%PP%count_ particle(n)%Fc = 0.0_wp particle(n)%Tc = 0.0_wp end do end select end if if (associated(this%RP)) call collision_obj_ComputeCollisionsRPvRP(this) if (associated(this%RP).and.associated(this%IB)) & call collision_obj_ComputeCollisionsRPvIB(this) if (associated(this%RP).and.this%use_wall) & call collision_obj_ComputeCollisionsRPvWALL(this) if (associated(this%PP)) call collision_obj_ComputeCollisionsPPvPP(this) if (associated(this%PP).and.associated(this%RP)) & call collision_obj_ComputeCollisionsRPvPP(this) if (associated(this%PP).and.this%use_wall) & call collision_obj_ComputeCollisionsPPvWALL(this) if (associated(this%RP).and.associated(this%PP)) & call collision_obj_ComputeCollisionsRPvPP(this) return end subroutine collision_obj_ComputeCollisions