| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ResPart_set), | intent(inout) | :: | this |
Collection of Resolved Particles |
subroutine ResPart_set_UpdateMonitor(this) class(ResPart_set), intent(inout) :: this !! Collection of Resolved Particles ! Work variables integer :: n real(wp):: Xp(3) real(wp):: Vp(3) real(wp):: Ap(3) real(wp):: Fh(3) real(wp):: Th(3) real(wp):: Fc(3) real(wp):: Tc(3) real(wp):: buff(3) Xp = 0.0_wp Vp = 0.0_wp Ap = 0.0_wp Fh = 0.0_wp Th = 0.0_wp Fc = 0.0_wp Tc = 0.0_wp select type (centroid => this%p) type is (ResPart_obj) do n=1,this%count_ ! Position Xp = Xp + centroid(n)%p ! Velocity Vp = Vp + centroid(n)%v ! Angular velocity Ap = Ap + centroid(n)%w ! Hydrodynamic force Fh = Fh + centroid(n)%Fh ! Hydrodynamic torque Th = Th + centroid(n)%Th ! Collision force Fc = Fc + centroid(n)%Fc ! Collision torque Tc = Tc + centroid(n)%Tc end do end select call this%parallel%Sum(Xp, buff); Xp = buff/this%count call this%parallel%Sum(Vp, buff); Vp = buff/this%count call this%parallel%Sum(Ap, buff); Ap = buff/this%count call this%parallel%Sum(Fh, buff); Fh = buff/this%count call this%parallel%Sum(Th, buff); Th = buff/this%count call this%parallel%Sum(Fc, buff); Fc = buff/this%count call this%parallel%Sum(Tc, buff); Tc = buff/this%count call this%monitors%Set('ResPart_1', 1,this%timer%iter) call this%monitors%Set('ResPart_1', 2,this%timer%time) call this%monitors%Set('ResPart_1', 3,this%count ) call this%monitors%Set('ResPart_1', 4,this%ib%count ) call this%monitors%Set('ResPart_1', 5,Xp(1) ) call this%monitors%Set('ResPart_1', 6,Xp(2) ) call this%monitors%Set('ResPart_1', 7,Xp(3) ) call this%monitors%Set('ResPart_1', 8,Vp(1) ) call this%monitors%Set('ResPart_1', 9,Vp(2) ) call this%monitors%Set('ResPart_1',10,Vp(3) ) call this%monitors%Set('ResPart_1',11,Ap(1) ) call this%monitors%Set('ResPart_1',12,Ap(2) ) call this%monitors%Set('ResPart_1',13,Ap(3) ) call this%monitors%Set('ResPart_2', 1,this%timer%iter) call this%monitors%Set('ResPart_2', 2,this%timer%time) call this%monitors%Set('ResPart_2', 3,this%count ) call this%monitors%Set('ResPart_2', 4,this%ib%count ) call this%monitors%Set('ResPart_2', 5,Fh(1) ) call this%monitors%Set('ResPart_2', 6,Fh(2) ) call this%monitors%Set('ResPart_2', 7,Fh(3) ) call this%monitors%Set('ResPart_2', 8,Th(1) ) call this%monitors%Set('ResPart_2', 9,Th(2) ) call this%monitors%Set('ResPart_2',10,Th(3) ) call this%monitors%Set('ResPart_3', 1,this%timer%iter) call this%monitors%Set('ResPart_3', 2,this%timer%time) call this%monitors%Set('ResPart_3', 3,this%count ) call this%monitors%Set('ResPart_3', 4,this%ib%count ) call this%monitors%Set('ResPart_3', 5,Fc(1) ) call this%monitors%Set('ResPart_3', 6,Fc(2) ) call this%monitors%Set('ResPart_3', 7,Fc(3) ) call this%monitors%Set('ResPart_3', 8,Tc(1) ) call this%monitors%Set('ResPart_3', 9,Tc(2) ) call this%monitors%Set('ResPart_3',10,Tc(3) ) return end subroutine ResPart_set_UpdateMonitor