Advances solution from n to n+1.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(grans_obj), | intent(inout) | :: | this |
GRANS solver |
module subroutine grans_obj_AdvanceSolution(this) !> Advances solution from n to n+1. implicit none class(grans_obj), intent(inout) :: this !! GRANS solver ! Work variable integer :: it real(wp):: dtp ! Store old states if (this%use_PP) call this%PP%StoreOld() if (this%use_RP) call this%RP%StoreOld() dtp = this%timer%dt/real(this%subit,wp) do it=1,this%subit ! Update Collisions if (this%use_col) call grans_obj_AdvanceSolution_ComputeCollisionForces(this) ! Update Centroids if (this%use_RP) then call this%RP%AdvanceCenters(dtp) call this%RP%ApplyPeriodicity call this%RP%Communicate call this%RP%Localize end if if (this%use_PP) then call this%PP%AdvanceCenters(dtp) call this%PP%ApplyPeriodicity call this%PP%Communicate call this%PP%Localize end if end do ! Update surface elements if (this%use_RP) then call this%RP%Regroup() call this%RP%UpdateLookup() call this%RP%AdvanceMarkers(this%timer%dt) call this%RP%ib%ApplyPeriodicity call this%RP%ib%Communicate call this%RP%ib%Localize end if ! Update timing info call this%timer%UpdateTiming('Advance') return end subroutine grans_obj_AdvanceSolution